Introduction

This document outlines the analyses from Study 1 in insert article title here (insert authors, 2019). The rising prevalence of smartphones has prompted research about how they can impact cognitive abilities. Therefore, the purpose of this study was to investigate what aspects of cognition, if any, are affected by smartphones. To do so, we examined a variety of cognitive mechanisms using the 12 Cambridge Brain Sciences (CBS) Tasks. These short, computer-based tasks assess various aspects of cognition, such as: reasoning, memory, attention, and verbal ability (Hampshire et al., 2012).

For this study, we conducted a pilot study and a main study. We explored: (1) individual differences in how people feel towards and interact with their smartphones, (2) how smartphones affect different aspects of cognition, and (3) interactions between individual differences and these effects.

Pilot Study: Guaging Typical Smartphone Use

There were two goals for the pilot study: (1) to determine the design of the main study and (2) individual differences in how people feel towards and interact with their smartphones. Therefore, participants completed four questionnaires in an online survey:

  1. The Smartphone Attachment and Dependency Questionnaire (Ward et al., 2017)
  • Measures the level to which someone feels attached and or dependent on their smartphone
  1. The Mobile Phone Involvement Questionnaire (MPIQ; Walsh et al., 2010)
  • Measures the level of connection to one’s phone, it makes a distinction between phone involvement and frequency of phone use
  1. The Nomophobia Questionnaire (NMP-Q; Yildirim & Correia, 2015)
  • Measures people’s severity of nomophobia
  • Nomophobia is the modern fear of not being able to communicate through a mobile phone or the internet. It is a situational phobia that refers to a group of symptoms or behaviours that are associated with mobile phone use.
  1. A Smartphone Use Questionnaire
  • Designed for the pilot study to measure typical smartphone use, frequency of use, and to make a paradigm decision for the main study.

Results will demonstrate how participants tend to use their smartphones with respect to their (1) power (i.e., either turned ON or OFF) and (2) location (i.e., either on their desk, in their pocket/bag, or outside of the room) during a typical day. This information will be used to determine the design for the main study. We predict that, as seen in Ward et al. and our replication study, the smartphone power conditions are not necessary. For smartphone location, participants’ typical smartphone use (including placement) will be assessed to determine if all three locations should be used. This leaves two most likely possible outcomes for smartphone location: using two locations or using three locations. For both outcomes, the “other room” location will be used because it will allow us to see how a non-typical situation can impact people. Two locations will be used if participants report only “on desk” or “in pocket/bag” as typical. Then, the most used location would be implemented alongside the “other room” location (i.e., either “on desk” and “other room” or “in pocket/bag” and “other room”). Three locations will be used if participants report both “on desk” or “in pocket/bag” as typical.

Additionally, results will assess individual difference measures (i.e., Smartphone Attachment and Dependency Questionnaire, MPIQ, and NMP-Q). These will give insight to how participants feel and interact with their smartphones and provide an opportunity to explore possible relationships between these measures.

A total of 35 undergraduate students participated in this study.

Main Study: What Aspects of Cognition are Affected by Smartphones?

The goals for the main study were to: (1) investigate how smartphones affect different aspects of cognition and (2) explore interactions between individual differences and these effects.

Participants were randomly assigned to their condition (i.e., design was decided using the pilot study) and then randomly completed all 12 CBS tasks. Therefore, participants placed their smartphones in one of three locations: (1) on the participant’s desk, (2) in their pocket/bag, or (3) outside the testing room. All participants were instructed to keep their phones on “silent” (i.e., to prevent any notifications) and those in the “on desk” location condition kept their devices facing down.

As in the pilot, participants completed three questionnaires to determine how individual differences may be moderating the smartphone effects: (1) the Smartphone Attachment and Dependency Questionnaire, (2) the MPIQ, and (3) the NMP-Q. Finally, to check that the main study’s participants are similar to the pilot study, all participants will complete the same Smartphone Use Questionnaire from the pilot. Our predictions for this study were mainly exploratory: we investigated which aspects of cognition were affected by smartphones and, therefore, we did not have explicit predictions for each aspect of cognition. We think that using the CBS tasks will help to answer this question because they cover a variety of measures of cognition. The only specific predictions we have are with respect to the attentionally-demanding tasks (e.g. Double Trouble), where we predict lower performance with smartphone presence (e.g., Stothart et al., 2015).

Cambridge Brain Science (CBS) Tasks

The CBS trials consisted of 12 cognitive tasks: Double Trouble Task, Odd One Out Task, Digit Span Task, Feature Match Task, Polygons Task, Paired Associates Task, Monkey Ladder Task, Grammatical Reasoning Task, Rotations Task, Spatial Span Task, Token Search Task, and the Spatial Planning Task. These 12 tasks measure four fundamental cognitive areas, which are described as follows by Hampshire et al. (2012): memory, reasoning, verbal ability, and concentration. The following task descriptions are from the CBS Website (www.cambridgebrainsciences.com). (click to see details)

Memory

Visuospatial Working Memory Task (Monkey Ladder) - A variant on a task from the non-human primate literature (Inoue & Matsuzawa, 2007). Sets of numbered squares are displayed on the screen at random locations. After a variable interval of time, the numbers disappear leaving just the blank squares and participants must respond by clicking the squares in ascending numerical sequence. Difficulty is increased or decreased by one numbered box depending on whether the participant got the previous trial correct. After three errors, the task will end.

Spatial Short-Term Memory (Spatial Span Task) - A variant on the CorsiBlock Tapping Task (Corsi, 1972), used for measuring spatial short-term memory capacity. 16 squares are displayed in a 4 x 4 grid. A sub-set of the squares will flash in a random sequence at a rate of 1 flash every 900 ms. Subsequently, participants must repeat the sequence by clicking on the squares in the same order in which they flashed. Difficulty is increased or decreased by one box depending on whether the participant got the previous trial correct. After three errors, the task will end.

Working Memory (Token Search) - Based on a test that is used to measure strategy during search behaviours (Collins et al., 1998). Boxes are displayed in random locations. Participants must find a hidden “token” by clicking on the boxes one at a time. When the token is found, it is hidden within another box. The token will not appear within the same box twice, thus, participants must search the boxes until the token has been found once in each box. If they search the same empty box twice, or search a box in which the token has previously been found, this is an error and the trial ends. Difficulty is increased or decreased by one box depending on whether the participant got the previous trial correct. After three errors, the task will end. Outcome measure is the maximum level completed (e.g. the problem with the most tokens that the user successfully completed).

Episodic Memory (Paired Associates Task) - A variant on a paradigm that is commonly used to assess memory impairments in aging clinical populations (Gould et al., 2005). Boxes are displayed at random locations on the screen. The boxes are opened one after another to reveal an enclosed object. Subsequently, the objects are displayed in random order in the centre of the screen and participants must determine which box contains the object that is presented. Difficulty is increased or decreased by one box depending on whether the participant got the previous trial correct. After three errors, the task will end.

Reasoning

Mental Rotation (Rotations) - Often used for measuring the ability to manipulate objects spatially in mind (Silverman et al., 2000). Two grids of coloured squared are displayed to either side of the screen with one of the grids rotated by a multiple of 90 degrees. When rotated, the grids are either identical or differ by the position of just one square. Participants must indicate whether or not the grids are identical. Participants have 90 seconds to solve as many problems as possible. Primary outcome measure is overall score - the sum of the difficulties of all successfully answered problems, minus the sum of the difficulties of all incorrectly answered problems.

Visuospatial Processing (Polygons) - Based on the Interlocking Pentagons Task, which is often used in the assessment of age- related disorders (Folstein et al., 1975). A pair of overlapping polygons is displayed on one side of the screen. Participants must indicate whether a polygon displayed on the other side of the screen is identical to one of the interlocking polygons. Difficulty is increased by making the differences between the polygons more subtle or decreased by making the differences between the polygons more pronounced. Participants have 90 seconds to solve as many problems as possible. Primary outcome measure is overall score - the sum of the difficulties of all successfully answered problems, minus the sum of the difficulties of all incorrectly answered problems.

Deductive Reasoning (Odd One Out) - Based on a sub-set of problems from the Cattell Culture Fair Intelligence Test (Cattell, 1949). Nine patterns will appear on the screen. The features that make up the patterns are colour, shape, and number and are related to each other according to a set of rules. Participants must deduce the rules that relate the object features and select the pattern that do not correspond to those rules. Difficulty is increased or decreased depending on whether the participant got the previous trial correct. Participants have 3 minutes to solve as many problems as possible. Primary outcome measure is the number of correctly answered problems, minus the number of incorrectly answered problems.

Planning (Spatial Planning) - A direct descendant of the “Tower of London” task, Spatial Planning is a classic neuropsychological test of planning (Shallice, 1982). When the test begins, numbered beads are positioned on a tree-shaped frame. Participants must reposition the beads so they are configured in ascending numerical order, in as few moves as possible. Problems become progressively harder, and participants have three minutes to solve as many as possible. The primary outcome measure is the overall score, calculated by subtracting the number of moves made from twice the minimum number of moves required.

Verbal Ability

Verbal Reasoning (Grammatical Reasoning) - Based on Alan Baddeley’s three minute grammatical reasoning test (Baddeley, 1968). Short sentences describing the relationship of two shapes along with an image of the shapes are displayed on the screen. Participants must indicate whether the sentence correctly describes the pair of objects displayed on the screen. Participants have 90 seconds to solve as many problems as possible. Primary outcome measure is the number of problems solved correctly, minus the number of problems answered incorrectly.

Verbal Short-Term Memory (Digit Span) - A variant on the verbal working memory component of the WAIS-R intelligent test (Weschler, 1981). A sequence of numbers will appear on the screen one after another. Once the sequence is complete, participants must repeat the sequence. Difficulty is increased or decreased by one number depending on whether the participant got the previous trial correct. After three errors, the task ends. Primary outcome measure is the maximum level (i.e. the problem with the highest number of digits) that the player successfully completed.

Concentration

Attention (Feature Match) - Based on the classical feature search tasks that have been used to measure attentional processing (Treisman & Gelade, 1980). Two grids are displayed on the screen, each containing an array of abstract shapes. In half of the trials the grids differ by just one shape. Participants must indicate whether or not the grid’s contents are identical. Difficulty is increased or decreased by one shape depending on whether the participant got the previous trial correct. Participants have 90 seconds to solve as many problems as possible. Primary outcome measure is overall score - the sum of the difficulties of all successfully answered problems, minus the sum of the difficulties of all incorrectly answered problems.

Response Inhibition (Double Trouble, Colour-Word Remapping Task) - A variant on the Stroop test (Stroop, 1935). Three coloured words are displayed on the screen: one at the top and two at the bottom. Participants must indicate which of two coloured words at the bottom of the screen correctly describes the colour that the word at the top of the screen is written in. The colour word mappings may be congruent, incongruent, or doubly incongruent, depending on whether or not the colour of the top word matches the colour that it is written in. Participants have 90 seconds to solve as many problems as possible.

A total of ### undergraduate students participated in this study.

Analysis Prep

Load Libraries

Before importing the raw data, the required libraries were loaded.

Additional Functions

Rounding p-values

This rounding function was adapted from Dr. Emily Nielsen’s Rpubs. The function (“p_round(x)”) was created to assess and print p-values. If \(p \ge .005\), the function will display “$p = $” and the value rounded to two decimal places. If $ .0005 p <.005\(, the function will display “\)p = $" and the value rounded to three decimal places. If \(p < .0005\), the function will display “\(p < .001\)”. (click to expand)


p_round <- function(x){
  if(x > .005)
    {x1 = (paste("= ", gsub("0\\.","\\.", round(x, digits = 2)), sep = ''))
  }  
  else if(x == .005){x1 = (paste("=", gsub("0\\.","\\.", 0.01)))
  }
  else if(x > .0005 & x < .005)
    {x1 = (paste("= ", gsub("0\\.","\\.", round(x, digits = 3)), sep = ''))
  }  
  else if(x == .0005){x1 = (paste("=", gsub("0\\.","\\.", 0.001)))
  }
  else{x1 = (paste("<", gsub("0\\.","\\.", 0.001)))
  } 
  (x1)
}
# ++++++++++++++++++++++++++++
# flattenCorrMatrix
# ++++++++++++++++++++++++++++
# cormat : matrix of the correlation coefficients
# pmat : matrix of the correlation p-values
flattenCorrMatrix <- function(cormat, pmat) {
  ut <- upper.tri(cormat)
  data.frame(
    row = rownames(cormat)[row(cormat)[ut]],
    column = rownames(cormat)[col(cormat)[ut]],
    cor  =(cormat)[ut],
    p = pmat[ut]
    )
}

Import Raw Data Files

There are four raw data for the analyses.

Pilot Study 1. Pilot Study - Survey Data - csv file exported from Qualtrics - data collected online

Main Study

  1. Main Study - Survey Data
    • csv file exported from Qualtrics
    • data collected in-person
  2. Main Study - Test Tracking Sheet
    • excel file, collected manually from each participant by experimenter
    • data collected in-person
  3. Main Study - CBS data
    • csv file exported from online platform
    • data collected in-perdom

1. Pilot Data

First, the raw data was imported.

# this will import the raw excel data file for the pilot study
  # this file has been anonymized, so any identifiable information has been removed
pilot_survey_raw <- read.csv("Pilot_survey_data(june7).csv", header = TRUE)

After importing the raw data, the file is cleaned by removing participants based on several criteria:

  • Testing Data: experimenter data (i.e., testing prior to data collection), any irrelevant rows

  • Incomplete Data: participants who did not complete the study

    • 4 removed
  • Unnecessary Variables: columns which are not relevant to the analyses (e.g., distribution type, distribution langauge)

# clean the data
pilot_sur_data_temp <- 
  # start with removing experimenter and irrelevant rows from the data
    # there is no need to count the ps removed at this stage 
  pilot_survey_raw %>% 
  # remove row 1 & 2 -- not data
  slice(3:nrow(pilot_survey_raw)) %>% 
  # remove testing data
  filter(DistributionChannel != "test") %>% 

  # next, remove ps w/ incomplete data -- include only thos who have finished (i.e., "1")
  filter(Finished == 1) %>% 
  
  # remove unnecessary columns
    # should be done after others since columns used to filter
  select(-c(Status:IPAddress, ResponseId:ExternalReference, DistributionChannel:Q1.2, SC0))

Additionally, a “participant” column was added to denote the participant ID, the columns were renamed for easier reference, any unclear or inappropriate responses (e.g., non-numeric response for items requiring a numeric response) were removed, and all variables were formatted as numeric or factor as appropriate.

# add a participant column to data
pilot_sur_data <- 
  cbind(data.frame("participant" = c(1:nrow(pilot_sur_data_temp))), pilot_sur_data_temp)

pilot_sur_data <- 
  # change data file type to tibble 
  as.tibble(pilot_sur_data) %>% 
  # rename columns...
  dplyr::rename(duration_sec = Duration..in.seconds., age = Q1.3, gender = Q1.4, genderO = Q1.5, lang = Q1.6, langO = Q1.7, prof = Q1.8, 
                program = Q2.1, programO = Q2.2, year = Q2.3, 
                age_first_phone = Q3.1, app_most_used = Q3.2, app_most_usedO = Q3.3, app_most_used_text = Q3.4, 
                iphone = Q4.1, ST_app_most_used = Q4.2, ST_app_most_usedO = Q4.3, ST_app_text_mess = Q4.4, ST_weekly_tot_hours = Q4.5, ST_daily_pickups = Q4.6, ST_daily_not = Q4.7, 
                phone_value = Q5.1, phantom = Q5.2, dist_daily = Q5.3_1, dist_study = Q5.3_2, dist_device = Q5.4, dist_deviceO = Q5.5, dist_device_studywork = Q5.6, dist_device_studyworkO = Q5.7, 
                dist_device_social = Q5.8, dist_device_socialO = Q5.9, 
                pow_not_using = Q6.1_1, pow_notifications_on = Q6.1_2, pow_vibrate = Q6.1_3, pow_study = Q6.1_4, pow_exam = Q6.1_5, pow_lec = Q6.1_6, pow_sleep = Q6.1_7, loc_typical = Q6.2, loc_study = Q6.3, 
                loc_exam = Q6.4, loc_lec = Q6.5, loc_social = Q6.6, com_gen = Q6.7_1, com_unattended = Q6.7_2, com_leave_with_others = Q6.7_3, com_locked = Q6.7_4, com_room_task = Q6.7_5, 
                communicate = Q7.1, communicateO = Q7.2, phone_use = Q7.3, phone_useO = Q7.4, 
                NMPQ_1 = Q8.1_1, NMPQ_2 = Q8.1_2, NMPQ_3 = Q8.1_3, NMPQ_4 = Q8.1_4, NMPQ_5 = Q8.1_5, NMPQ_6 = Q8.1_6, NMPQ_7 = Q8.1_7, NMPQ_8 = Q8.1_8, NMPQ_9 = Q8.1_9, NMPQ_10 = Q8.2_1, NMPQ_11 = Q8.2_2, 
                NMPQ_12 = Q8.2_3, 
                NMPQ_13 = Q8.2_4, NMPQ_14 = Q8.2_5, NMPQ_15 = Q8.2_6, NMPQ_16 = Q8.2_7, NMPQ_17 = Q8.2_8, NMPQ_18 = Q8.2_9, NMPQ_19 = Q8.2_10, NMPQ_20 = Q8.2_11, 
                MPIQ_1 = Q9.1_1, MPIQ_2 = Q9.1_2, MPIQ_3 = Q9.1_3, MPIQ_4 = Q9.1_4, MPIQ_5 = Q9.1_5, MPIQ_6 = Q9.1_6, MPIQ_7 = Q9.1_7, MPIQ_8 = Q9.1_8, MPIQ_SI_1 = Q9.2_1, MPIQ_SI_2 = Q9.2_2, MPIQ_SI_3 = Q9.2_3, 
                MPIQ_VFO_1 = Q9.3_1, MPIQ_VFO_2 = Q9.3_2, MPIQ_VFO_3 = Q9.3_3, 
                SAD_1 = Q10.1_1, SAD_2 = Q10.1_2, SAD_3 = Q10.1_3, SAD_4 = Q10.1_4, SAD_5 = Q10.1_5, SAD_6 = Q10.1_6, SAD_7 = Q10.1_7, SAD_8 = Q10.1_8, SAD_9 = Q10.1_9, SAD_10 = Q10.1_10, SAD_11 = Q10.1_11, 
                SAD_12 = Q10.1_12, SAD_13 = Q10.1_13
                ) %>% 
  
# replace unclear/inappropriate responses
  # remove non-numeric responses to "age_first_phone"
    # this will force all non-numeric value to "NA"
  mutate(age_first_phone = as.numeric(age_first_phone)) %>% 
  
  # change variables to numeric or factor as needed
  mutate(age = as.numeric(age), age = as.numeric(age), gender = factor(gender, levels = c(1:4), labels = c("Male", "Female", "Prefer not to say", "Other")), lang = factor(lang, levels = c(1:2), labels = c("English", "Other")), prof = factor(prof, levels = c(1:3), labels = c("Low", "Moderate", "High")), program = factor(program, levels = c(1:13), labels = c("Arts & Humanities", "Music", "Education", "Engineering", "Haalth Science", "Information & Media Studies", "Law", "Business", "Science", "Social Science", "Schulich Dentistry", "Graduate Studies", "Other")), year = factor(year, levels = c(1:6), labels = c("First Year", "Second Year", "Third Year", "Fourth Year", "Fifth Year+", "Graduate Student")), app_most_used = factor(app_most_used, levels = c(1:4), labels = c("Games", "Social Networking", "Entertainment", "Other")), iphone = factor(iphone, levels = c(1:2), labels = c("yes", "no")), ST_app_most_used = factor(ST_app_most_used, levels = c(1:4), labels = c("Games", "Social Networking", "Entertainment", "Other")), ST_app_text_mess = factor(ST_app_text_mess, levels = c(1:2), labels = c("yes", "no")), ST_weekly_tot_hours = factor(ST_weekly_tot_hours, levels = c(1:5), labels = c("0-10", "11-20", "21-30", "31-40", "40+")), ST_daily_pickups = factor(ST_daily_pickups, levels = c(1:5), labels = c("0-50", "51-100", "101-150", "151-200", "200+")), ST_daily_not = factor(ST_daily_not, levels = c(1:5), labels = c("0-50", "51-100", "101-150", "151-200", "200+")), phone_value = factor(phone_value, levels = c(1:4), labels = c("$0-$20", "$21-$40", "$41-$60", ">$60")), phantom = factor(phantom, levels = c(1:2), labels = c("yes", "no")), dist_daily = as.numeric(dist_daily), dist_study = as.numeric(dist_study), dist_device = factor(dist_device, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), dist_device_studywork = factor(dist_device_studywork, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), dist_device_social = factor(dist_device_social, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), pow_not_using = as.numeric(pow_not_using), pow_notifications_on = as.numeric(pow_notifications_on), pow_vibrate = as.numeric(pow_vibrate), pow_study = as.numeric(pow_study), pow_exam = as.numeric(pow_exam), pow_lec = as.numeric(pow_lec), pow_sleep = as.numeric(pow_sleep), loc_typical = factor(loc_typical, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_study = factor(loc_study, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_exam = factor(loc_exam, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_lec = factor(loc_lec, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_social = factor(loc_social, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), com_gen = as.numeric(com_gen), com_unattended = as.numeric(com_unattended), com_leave_with_others = as.numeric(com_leave_with_others), com_locked = as.numeric(com_locked), com_room_task = as.numeric(com_room_task), communicate = factor(communicate, levels = c(1:4), labels = c("Family", "Friends", "Work", "Other")), phone_use = factor(phone_use, levels = c(1,2, 5, 3, 4), labels = c("Calling/Texting", "Social Media", "Games", "Email", "Other"))
         ) %>% 
  mutate_at(vars(starts_with("NMPQ")),funs(as.numeric)) %>% 
  mutate_at(vars(starts_with("MPIQ")),funs(as.numeric)) %>% 
  mutate_at(vars(starts_with("SAD")),funs(as.numeric)) %>% 
  
  # reverse code items...
  mutate(MPIQ_VFO_2R = 8-MPIQ_VFO_2) %>% 
  
  # add scores for each questionnaire... 
  # for each p....
  rowwise() %>% 
  mutate(
    # get NMPQ score -- SUM
    NMPQ_sum = NMPQ_1 + NMPQ_2 + NMPQ_3 + NMPQ_4 + NMPQ_5 + NMPQ_6 + NMPQ_7 + NMPQ_8 + NMPQ_9 + NMPQ_10 + NMPQ_11 + NMPQ_12 + NMPQ_13 + NMPQ_14 + NMPQ_15 + NMPQ_16 + NMPQ_17 + NMPQ_18 + NMPQ_19 + NMPQ_20, 
    # get NMPQ score -- MEAN
    NMPQ_mean = mean(NMPQ_1, NMPQ_2, NMPQ_3, NMPQ_4, NMPQ_5, NMPQ_6, NMPQ_7, NMPQ_8, NMPQ_9, NMPQ_10, NMPQ_11, NMPQ_12, NMPQ_13, NMPQ_14, NMPQ_15, NMPQ_16, NMPQ_17, NMPQ_18, NMPQ_19, NMPQ_20), 
    
    # get MPIQ score -- SUM
    MPIQ_sum = MPIQ_1 + MPIQ_2 + MPIQ_3 + MPIQ_4 + MPIQ_5 + MPIQ_6 + MPIQ_7 + MPIQ_8,  
    # get MPIQ score -- MEAN
    MPIQ_mean = mean(MPIQ_1, MPIQ_2, MPIQ_3, MPIQ_4, MPIQ_5, MPIQ_6, MPIQ_7, MPIQ_8), 
    
    # get MPIQ_SI score -- SUM
    MPIQ_SI_sum = MPIQ_SI_1 + MPIQ_SI_2 + MPIQ_SI_3,  
    # get MPIQ_SI score -- MEAN
    MPIQ_SI_mean = mean(MPIQ_SI_1, MPIQ_SI_2, MPIQ_SI_3), 
    
    # get MPIQ_VFO score -- SUM
    MPIQ_VFO_sum = MPIQ_VFO_1 + MPIQ_VFO_2R + MPIQ_VFO_3,  
    # get MPIQ_VFO score -- MEAN
    MPIQ_VFO_mean = mean(MPIQ_VFO_1, MPIQ_VFO_2R, MPIQ_VFO_3), 
    
    # get SAD score -- SUM
    SAD_sum = SAD_1 + SAD_2 + SAD_3 + SAD_4 + SAD_5 + SAD_6 + SAD_7 + SAD_8 + SAD_9 + SAD_10 + SAD_11 + SAD_12 + SAD_13, 
    # get SAD score -- MEAN
    SAD_mean = mean(SAD_1, SAD_2, SAD_3, SAD_4, SAD_5, SAD_6, SAD_7, SAD_8, SAD_9, SAD_10, SAD_11, SAD_12, SAD_13),
    
    # get SAD_dep score -- SUM
    SAD_dep_sum = SAD_1 + SAD_2 + SAD_3 + SAD_4 + SAD_5, 
    # get SAD_dep score -- MEAN
    SAD_dep_mean = mean(SAD_1, SAD_2, SAD_3, SAD_4, SAD_5),
    
    # get SAD_ea score -- SUM
    SAD_ea_sum = SAD_8 + SAD_9 + SAD_10 + SAD_11, 
    # get SAD_ea score -- MEAN
    SAD_ea_mean = mean(SAD_8, SAD_9, SAD_10, SAD_11), 
    
    # get SAD_dist score -- SUM
    SAD_dist_sum = SAD_7 + SAD_12 + SAD_13, 
    # get SAD_dist score -- MEAN
    SAD_dist_mean = mean(SAD_7, SAD_12,SAD_13)
         )

This is the primary data file for the pilot study. It contains responses to the 4 pilot questionnaires: - (1) A Smartphone Use Questionnaire (made for the present study) - (2) The Nomophobia Questionnaire (NMP-Q; Yildirim & Correia, 2015) - (3) The Mobile Phone Involvement Questionnaire (MPIQ; Walsh et al., 2010) - (4) The Smartphone Attachment and Dependency Questionnaire (SAD; Ward et al., 2017)

(1) Smartphone Use Questionnaire - General Notes:

  • participant denotes participant number.

  • StartDate denotes the date participants started the pilot study.

  • End Date denotes the date participants ended the pilot study.

  • Progress denotes how much of the pilot study the participant has completed (i.e., out of 100%).

  • DurationInSec denotes how long participants took to complete the pilot study in seconds.

  • Finished denotes if participants completed the study. This was coded as follows:

    • 1 = TRUE
    • 2 = FALSE
  • RecordedDate denotes the date participants’ data was recorded.

  • Age shows each participant’s self-reported age.

  • Gender refers to participant’s self-reported gender. This was coded as follows:

    • 1 = Male
    • 2 = Female
    • 3 = Other
  • GenderOther refers to participant’s gender if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • FirstLanguage refers to self-reported first language. This was coded as follows:

    • 1 = English
    • 2 = Any other language
  • FirstLanguageOther refers to participant’s first language if ‘any other language’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • EnglishProficiency refers to participant’s self-reported proficiency in English. This was asked of all participants, regarless of their first language. This was coded as follows:

    • 1 = Low
    • 2 = Moderate
    • 3 = High
  • Program refers to participant’s program of study. This was coded as follows:

    .
    1 = Arts & Humanities 8 = Business
    2 = Music 9 = Science
    3 = Education 10 = Social Science
    4 = Engineering 11 = Schulich Dentistry
    5 = Health Science 12 = Graduate Studies
    6 = Information & Media Studies 13 = Other
    7 = Law
  • ProgramOther refers to participant’s program if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • YearOfStudy refers to which year of study participants were in during testing. This was coded as follows:

    • 1 = First Year
    • 2 = Second Year
    • 3 = Third Year
    • 4 = fourth Year
    • 5 = 5th+ Year
    • 6 = Graduate Student
  • AgeFirstPhone refers to the self-reported age when participants got their first smartphone. This was a open response item, where “NA” denotes no response.

  • AppMostUsedCat refers to participant’s most used smartphone application, chosen from (and coded as) the following categories:

    • 1 = Games (e.g., candy crush, clash of clans)
    • 2 = Social Networking (e.g., Instagram, Facebook, Snapchat)
    • 3 = Entertainment (e.g., music, YouTube)
    • 4 = Other
  • AppMostUsedCatOther refers to participant’s most used smartphone application (from a category) if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • AppMostUsedFree refers to participant’s most used smartphone application. Here, participant specified the specific application they use the most on their smartphone. This was a open response item, where “NA” denotes no response.

  • Other refers to participant’s if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

Paradigm Decision Questions
  • These questions asked participants to report their general smartphone use with respect to (1) Power, (2) Location, and (3) Comfort Level. These are the key questions in the pilot that were used to decide the design of the main study.
Power Questions
  • All power questions were answered on a 7-point likert scale as follows:

    • 1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • PD_P_1: “I tend to turn my phone off when I am not using it.”.

  • PD_P_2: “I tend to have my notifications turned on.”

  • PD_P_3: “I tend to have my phone on vibrate.”

  • PD_P_4: “When I study, I typically keep my phone on.”

  • PD_P_5: “When I write an exam, I tend to keep my phone on.”

  • PD_P_6: “When I am in a lecture, I tend to keep my phone on.”

  • PD_P_7: “When I sleep, I tend to keep my phone turned on.”

Location Questions
  • All power questions were coded as follows:

    • 1 = Desk 2 = Pocket/Bag 3 = Other Room
  • PD_L_1: “Typically, I keep my phone:”

  • PD_L_2: “When I study, I keep my phone:”

  • PD_L_3: “When I write an exam, I keep my phone:”

  • PD_L_4: “When I am in a lecture, I keep my phone:”

  • PD_L_5: “When I am in a social setting (i.e., with friends, family), I keep my phone:”

Comfort Level Questions
  • All comfort level questions were answered on a 7-point likert scale as follows:

    • 1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • PD_C_1: “I am comfortable with letting others use my phone.”

  • PD_C_2: “I leave my phone unattended.”

  • PD_C_3: “I leave my phone with other people.”

  • PD_C_4: “I make sure my phone is locked when it is not in my hands.”

  • PD_C_5: “I would feel comfortable leaving my phone in another room while completing a task.”"

Exploratory Questions
  • The following provides some notes on the exploratory quesitons in the study
Screen Time Questions
  • Screentime (ST) is an Apple application which tracks your device usage over time. This includes, but is not limited to: total hours used, notifications received, most used application, etc. The following provides some notes on the ST-specific questions (7 items in total).

  • ST_1 refers to whether a participant reported currently owning an iPhone. Note: it was assumed that all iPhone users had access to the ST application on their smartphone. This was coded as follows:

    • 1 = Yes
    • 2 = No
  • ST_2 refers to participant’s mosted used application (according to ST). This was coded as follows:

    • 1 = Games (e.g., candy crush, clash of clans)
    • 2 = Social Networking (e.g., Instagram, Facebook, Snapchat)
    • 3 = Entertainment (e.g., music, YouTube)
    • 4 = Other
  • ST_3 refers to participant’s most used application was ‘other’ (according to ST). This was a open response item, where “NA” denotes “other” was not chosen.

  • ST_4 refers to whether a participant’s most used application was their text / messenger application (according to ST). This was coded as follows:

    • 1 = Yes
    • 2 = No
  • ST_5 refers to participant’s weekly total screen time in hours (according to ST). This was coded as follows:

    • 1 = 0-10
    • 2 = 11-20
    • 3 = 21-30
    • 4 = 31-40
    • 5 = 40+
  • ST_6 refers to participant’s total “Pick-ups” per day (according to ST). “Pick-ups” refers to the number of times someone picks up their smartphone, regarless of whether the smartphone was used. This was coded as follows:

    • 1 = 0-50
    • 2 = 51-100
    • 3 = 101-150
    • 4 = 151-200
    • 5 = 200+
  • ST_7 refers to participant’s average notifications per day (according to ST). This was coded as follows:

    • 1 = 0-50
    • 2 = 51-100
    • 3 = 101-150
    • 4 = 151-200
    • 5 = 200+
Distraction Questions
  • These explored how participants report feeling or being distracted by their smartphones during various settings.

  • Distr_1 shows the response to the question: “I find my phone can distract me from my daily activities (e.g., work, school, social interactions).”. This was coded as follows:

    • 1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • Distr_2 shows the response to the question: “I find my phone distracting during this study.”. This was coded as follows:

    • 1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • Distr_3 shows the response to the question: “In general, I find the following the most distracting electronic device:”. This was coded as follows:

    • 1 = Computer
    • 2 = Phone
    • 3 = iPad / Tablet
    • 4 = Smartwatch
    • 5 = Other
  • Distr_4 shows refers Distr_3 if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • Distr_5 shows the response to the question: “I find the following the most distracting when I am studying/working:”. This was coded as follows:

    • 1 = Computer
    • 2 = Phone
    • 3 = iPad / Tablet
    • 4 = Smartwatch
    • 5 = Other
  • Distr_6 shows refers Distr_5 if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • Distr_7 shows the response to the question: “I find the following the most distracting when I am in a social context (e.g., with friends):”. This was coded as follows:

    • 1 = Computer
    • 2 = Phone
    • 3 = iPad / Tablet
    • 4 = Smartwatch
    • 5 = Other
  • Distr_8 shows refers Distr_7 if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

General Exploratory Questions
  • Exp_1 shows the response to the question: “How much money would it take for you to give up your phone for a full day?”. This was coded as follows:

    • 1 = $0-20
    • 2 = $21-40
    • 3 = $41-60
    • 4 = >$60
  • Exp_2 shows the response to the question: “Have you ever thought you heard your phone ring or thought you felt it vibrate, only to find out you were wrong?”. This was coded as follows:

    • 1 = Yes
    • 2 = No
  • Exp_3 shows the response to the question: “Who do you mostly communicate with on your phone?”. This was coded as follows:

    • 1 = Family
    • 2 = Friends
    • 3 = Work
    • 4 = Other
  • Exp_4 shows refers to Exp_3 if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

  • Exp_5: shows the response to the question: “What do you use your phone for the most?”. This was coded as follows:

    • 1 = Calling / Texting
    • 2 = Social Media (e.g., Facebook, Instagram, Twitter, Snapchat)
    • 3 = Email
    • 4 = Other
    • 5 = Games (e.g., candy crush, clash of clans)
  • Exp_6 shows refers to Exp_5 if ‘other’ was selected. This was a open response item, where “NA” denotes “other” was not chosen.

(2) The Nomophobia Questionnaire (NMP-Q; Yildirim & Correia, 2015)

  • NMP_Q_1 - NMP_Q_20 shows the responses to the 20 items in the NMP-Q. Participants were asked to indicate how much they agree or disagree to the statements on a 7-point likert scale (where, “1” = Strongly Disagree, and 7 = “Strongly Agree”).

  • The score was the sum of all responses (range is from 20–140), with higher scores corresponding to greater nomophobia severity. This range was interpreted as follows: 20 = absence of nomophobia, 21–59 = mild level of nomophobia, 60–99 = moderate level of nomophobia, ≥ 100 = severe nomophobia. This was coded as follows:

    • For Q12 – Q24, coding was as follows:
      1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • The items were as follows:

    • NMP_Q_1: I would feel uncomfortable without constant access to information through my smartphone.
    • NMP_Q_2: I would be annoyed if I could not look information up on my smartphone when I wanted to do so.
    • NMP_Q_3: Being unable to get the news(e.g., happenings, weather, etc.) on my smartphone would make me nervous.
    • NMP_Q_4: I would be annoyed if I could not use my smartphone and/or its capabilities when I wanted to do so.
    • NMP_Q_5: Running out of battery in my smartphone would scare me.
    • NMP_Q_6: If I were to run out of credits or hit my monthly data limit, I would panic.
    • NMP_Q_7: If I did not have a data signal or could not connect to Wi-Fi, then I would constantly check to see if I had a signal or could find a Wi-Fi Network.
    • NMP_Q_8: If I could not use my smartphone, I would be afraid of getting stranded somewhere.
    • NMP_Q_9: If I could not check my smartphone for a while, I would feel a desire to check it.

    If I did not have my smartphone with me,

    • NMP_Q_10: I would feel anxious because I could not instantly communicate with my family and/or friends.
    • NMP_Q_11: I would be worried because my family and/or friends could not reach me.
    • NMP_Q_12: I would feel nervous because I would not be able to receive text messages and calls.
    • NMP_Q_13: I would be anxious because I could not keep in touch with my family and/or friends.
    • NMP_Q_14: I would be nervous because I could not know if someone had tried to get a hold of me.
    • NMP_Q_15: I would feel anxious because my constant connection to my family and friends would be broken.
    • NMP_Q_16: I would be nervous because I would be disconnected from my online identity.
    • NMP_Q_17: I would be uncomfortable because I could not stay up-to-date with social media and online networks.
    • NMP_Q_18: I would feel awkward because I could not check my notifications for updates from myconnections and online networks.
    • NMP_Q_19: I would feel anxious because I could not check my email messages.
    • NMP_Q_20: I would feel weird because I would not know what to do.

(3) The Mobile Phone Involvement Questionnaire (MPIQ; Walsh et al., 2010)

  • The MPIQ consists of 14 items and has three subscales, which measure: (1) The MPIQ, (2) The Self-Identity, and (3) Validation from Others. For each subscale, participants were asked to indicate how much they agree or disagree to the statements on a 7-point likert scale (where, “1” = Strongly Disagree, and 7 = “Strongly Agree”). The score was the average for each subscale. Each subscale was coded as follows:
    • For Q12 – Q24, coding was as follows:
      1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • MPIQ_1 - MPIQ_8 shows the responses to the 8 items in the MPIQ subscale. The items were as follows:
    • MPIQ_1: I often think about my mobile phone when I am not using it. [cognitive salience]
    • MPIQ_2: I often use my mobile phone for no particular reason. [behavioural salience]
    • MPIQ_3: Arguments have arisen with others because of my mobile phone use. [interpersonal conflict]
    • MPIQ_4: I interrupt whatever else I am doing when I am contacted on my mobile phone. [conflict with other activities]
    • MPIQ_5: I feel connected to others when I use my mobile phone. [euphoria]
    • MPIQ_6: I lose track of how much I am using my mobile phone. [loss of control]
    • MPIQ_7: The thought of being without my mobile phone makes me feel distressed. [withdrawal]
    • MPIQ_8: I have been unable to reduce my mobile phone use. [relapse & reinstatement]
  • MPIQ_SI_1 - MPIQ_SI_3 shows the responses to the 3 items in the Self-Identity subscale. The items were as follows:
    • MPIQ_self_ID_1: Using a mobile phone is very important to me.
    • MPIQ_self_ID_2: I feel as though a part of me is missing when I am without my mobile phone.
    • MPIQ_self_ID_3: I cannot imagine life without my mobile phone.
  • MPIQ_VFO_1 - MPIQ_VFO_3 shows the responses to the 8 items in the Validation from Others subscale. The items were as follows:
    • MPIQ_Validation_1: I feel valued when I receive lots of mobile calls or messages.
    • MPIQ_Validation_2_rev: Receiving mobile phone calls or messages does not make me feel special.
      • Note, here MPIQ_Validation_2_rev denotes that this item should be reverse coded for final analysis.
    • MPIQ_Validation_3: Receiving a mobile phone call makes me feel loved.

(4) The Smartphone Attachment and Dependency Questionnaire (SAD; Ward et al., 2017)

  • SAD_1 - SAD_13 shows the responses to the 13 items in the SAD. Participants were asked to indicate how much they agree or disagree to the statements on a 7-point likert scale (where, “1” = Strongly Disagree, and 7 = “Strongly Agree”).

  • The score was the sum of all responses (range is from 13–91), with higher scores corresponding to greater smartphone attachment and dependency. This range was interpreted (for the pirposes of this study) as follows: 13 = absence of attachment & dependency, 14–39 = mild level of attachment & dependency, 40–65 = moderate level of attachment & dependency, ≥ 66 = severe attachment & dependency.

    • For Q12 – Q24, coding was as follows:
      1 = Strongly Disagree 2 = Disagree 3 = Somewhat Disagree 4 = Neutral 5 = Somewhat Agree 6 = Agree 7 = Strongly Agree
  • The items were as follows:

    • Q12: I would have trouble getting through a normal day without my smartphone.
    • Q13: It would be painful for me to give up my smartphone for a day.
    • Q14: I feel like I could not live without my smartphone.
    • Q15: If I forgot to bring my smartphone with me, I would feel anxious.
    • Q16: It drives me crazy when my smartphone runs out of battery.
    • Q17: I am upset and annoyed when I find I do not have reception on my smartphone.
    • Q18: I feel impatient when the Internet connection speed on my smartphone is slow.
    • Q19: I feel lonely when my smartphone does not ring or vibrate for several hours.
    • Q20: Using my smartphone relieves me of my stress.
    • Q21: I feel excited when I have a new message or notification.
    • Q22: Using my smartphone makes me feel happy.
    • Q23: I find it tough to focus whenever my smartphone is nearby.
    • Q24: I become less attentive to my surroundings when I’m using my smartphone.

2. Main Study Data

Import data

Import raw data for main study…

#this will import the raw excel data file for the main study
  #this file has been anonymized, so any identifiable information has been removed
main_survey_raw <- read.csv("Main_survey_data(june7).csv", header = TRUE)

CBS_raw <- read.csv("CBS_data(june7).csv", header = TRUE)

#this file contains the condition information for each participant in the main study
tracking_raw <- read.csv("Tracking_data(june7).csv", header = TRUE)

Clean data

After importing the raw data, the file is cleaned by removing participants based on several criteria:

  • Testing Data: experimenter data (i.e., testing prior to data collection), any irrelevant rows
    • 5 removed for being testing data
  • Incomplete Data: participants who did not complete the study
    • 0 removed from the survey data
    • 20 removed from the tracking data for either only completing part of the study (2), the CBS link did not work (7), or being excluded due to experimental error (e.g., external distractor like construction, inaccurate condition assignment; 11)
  • Unnecessary Variables: columns which are not relevant to the analyses (e.g., distribution type, distribution language) – none removed (not needed)
# clean the data
  # survey data
main_sur_data_temp <- 
  # start with removing experimenter and irrelevant rows from the data
    # there is no need to count the ps removed at this stage 
  main_survey_raw %>% 
  # remove row 1 & 2 -- not data
  slice(3:nrow(main_survey_raw)) %>% 
  # remove testing data
  filter(DistributionChannel != "test") %>% 

  # next, remove ps w/ incomplete data -- include only those who have finished (i.e., "1")
  filter(Finished == 1) %>% 
  
  # remove unnecessary columns
    # should be done after others since columns used to filter
  select(-c(Status:IPAddress, ResponseId:ExternalReference, DistributionChannel:UserLanguage, SC0))
# clean the data
  # survey data
tracking_data_temp <- 
  # start with removing experimenter and irrelevant rows from the data
    # there is no need to count the ps removed at this stage 
  tracking_raw %>% 
  # remove testing data
  filter(type != "OTHER") %>% 

  # next, remove ps w/ incomplete data -- include only those who have valid as "1"
  filter(valid == 1) %>% 
  
  # name condition a factor
  mutate(condition = factor(condition, levels = c(1:3), labels = c("desk", "pocket/bag", "outside")))

Additionally, the columns were renamed for easier reference, any unclear or inappropriate responses (e.g., non-numeric response for items requiring a numeric response) were removed, and all variables were formatted as numeric or factor as appropriate.

# rename columns in main survey data
main_sur_data <- 
  # change data file type to tibble 
  as.tibble(main_sur_data_temp) %>% 
# rename columns...
  dplyr::rename(duration_sec = Duration..in.seconds., date_sur = Q59, participant = Q56, type = Q58, CBS_know = Q60, CBS_done_tasks = Q61, age = Q1.3, gender = Q1.4, genderO = Q1.5, lang = Q1.6, langO = Q1.7, prof = Q1.8, 
                program = Q2.1, programO = Q2.2, year = Q2.3, age_first_phone = Q3.1, app_most_used = Q3.2, app_most_usedO = Q3.3, app_most_used_text = Q3.4, iphone = Q4.1, ST_app_most_used = Q4.2, ST_app_most_usedO = Q4.3, ST_app_text_mess = Q4.4, ST_weekly_tot_hours = Q4.5, ST_daily_pickups = Q4.6, ST_daily_not = Q4.7, phone_value = Q5.1, phantom = Q5.2, dist_daily = Q5.3_1, dist_study = Q5.3_2, dist_device = Q5.4, dist_deviceO = Q5.5, dist_device_studywork = Q5.6, dist_device_studyworkO = Q5.7, dist_device_social = Q5.8, dist_device_socialO = Q5.9, pow_not_using = Q6.1_1, pow_notifications_on = Q6.1_2, pow_vibrate = Q6.1_3, pow_study = Q6.1_4, pow_exam = Q6.1_5, pow_lec = Q6.1_6, pow_sleep = Q6.1_7, loc_typical = Q6.2, loc_study = Q6.3, loc_exam = Q6.4, loc_lec = Q6.5, loc_social = Q6.6, com_gen = Q6.7_1, com_unattended = Q6.7_2, com_leave_with_other = Q6.7_3, com_locked = Q6.7_4, com_room_task = Q6.7_5, communicate = Q7.1, communicateO = Q7.2, phone_use = Q7.3, phone_useO = Q7.4, NMPQ_1 = Q8.1_1, NMPQ_2 = Q8.1_2, NMPQ_3 = Q8.1_3, NMPQ_4 = Q8.1_4, NMPQ_5 = Q8.1_5, NMPQ_6 = Q8.1_6, NMPQ_7 = Q8.1_7, NMPQ_8 = Q8.1_8, NMPQ_9 = Q8.1_9, NMPQ_10 = Q8.2_1, NMPQ_11 = Q8.2_2, NMPQ_12 = Q8.2_3, NMPQ_13 = Q8.2_4, NMPQ_14 = Q8.2_5, NMPQ_15 = Q8.2_6, NMPQ_16 = Q8.2_7, NMPQ_17 = Q8.2_8, NMPQ_18 = Q8.2_9, NMPQ_19 = Q8.2_10, NMPQ_20 = Q8.2_11, MPIQ_1 = Q9.1_1, MPIQ_2 = Q9.1_2, MPIQ_3 = Q9.1_3, MPIQ_4 = Q9.1_4, MPIQ_5 = Q9.1_5, MPIQ_6 = Q9.1_6, MPIQ_7 = Q9.1_7, MPIQ_8 = Q9.1_8, MPIQ_SI_1 = Q9.2_1, MPIQ_SI_2 = Q9.2_2, MPIQ_SI_3 = Q9.2_3, MPIQ_VFO_1 = Q9.3_1, MPIQ_VFO_2 = Q9.3_2, MPIQ_VFO_3 = Q9.3_3, SAD_1 = Q10.1_1, SAD_2 = Q10.1_2, SAD_3 = Q10.1_3, SAD_4 = Q10.1_4, SAD_5 = Q10.1_5, SAD_6 = Q10.1_6, SAD_7 = Q10.1_7, SAD_8 = Q10.1_8, SAD_9 = Q10.1_9, SAD_10 = Q10.1_10, SAD_11 = Q10.1_11, SAD_12 = Q10.1_12, SAD_13 = Q10.1_13) %>% 
  
  # replace unclear/inappropriate responses
  # remove non-numeric responses to "age_first_phone"
    # this will force all non-numeric value to "NA"
  mutate(age_first_phone = as.numeric(age_first_phone)) %>% 

  # remove any responses longer than 2 digits from "age_first_phone"
  mutate_at("age_first_phone", ~replace(., nchar(as.integer(age_first_phone)) > 2, NA)) %>% 
  
  # change variables to numeric or factor as needed
  mutate(participant = as.numeric(participant), age = as.numeric(age), CBS_know = factor(CBS_know, levels = c(1:2), labels = c("yes", "no")), CBS_done_tasks = factor(CBS_done_tasks, levels = c(1:2), labels = c("yes", "no")), age = as.numeric(age), gender = factor(gender, levels = c(1:4), labels = c("Male", "Female", "Prefer not to say", "Other")), lang = factor(lang, levels = c(1:2), labels = c("English", "Other")), prof = factor(prof, levels = c(1:3), labels = c("Low", "Moderate", "High")), program = factor(program, levels = c(1:13), labels = c("Arts & Humanities", "Music", "Education", "Engineering", "Haalth Science", "Information & Media Studies", "Law", "Business", "Science", "Social Science", "Schulich Dentistry", "Graduate Studies", "Other")), year = factor(year, levels = c(1:6), labels = c("First Year", "Second Year", "Third Year", "Fourth Year", "Fifth Year+", "Graduate Student")), app_most_used = factor(app_most_used, levels = c(1:4), labels = c("Games", "Social Networking", "Entertainment", "Other")), iphone = factor(iphone, levels = c(1:2), labels = c("yes", "no")), ST_app_most_used = factor(ST_app_most_used, levels = c(1:4), labels = c("Games", "Social Networking", "Entertainment", "Other")), ST_app_text_mess = factor(ST_app_text_mess, levels = c(1:2), labels = c("yes", "no")), ST_weekly_tot_hours = factor(ST_weekly_tot_hours, levels = c(1:5), labels = c("0-10", "11-20", "21-30", "31-40", "40+")), ST_daily_pickups = factor(ST_daily_pickups, levels = c(1:5), labels = c("0-50", "51-100", "101-150", "151-200", "200+")), ST_daily_not = factor(ST_daily_not, levels = c(1:5), labels = c("0-50", "51-100", "101-150", "151-200", "200+")), phone_value = factor(phone_value, levels = c(1:4), labels = c("$0-$20", "$21-$40", "$41-$60", ">$60")), phantom = factor(phantom, levels = c(1:2), labels = c("yes", "no")), dist_daily = as.numeric(dist_daily), dist_study = as.numeric(dist_study), dist_device = factor(dist_device, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), dist_device_studywork = factor(dist_device_studywork, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), dist_device_social = factor(dist_device_social, levels = c(1:5), labels = c("Computer", "Phone", "iPad/Tablet", "Smartwatch", "Other")), pow_not_using = as.numeric(pow_not_using), pow_notifications_on = as.numeric(pow_notifications_on), pow_vibrate = as.numeric(pow_vibrate), pow_study = as.numeric(pow_study), pow_exam = as.numeric(pow_exam), pow_lec = as.numeric(pow_lec), pow_sleep = as.numeric(pow_sleep), loc_typical = factor(loc_typical, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_study = factor(loc_study, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_exam = factor(loc_exam, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_lec = factor(loc_lec, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), loc_social = factor(loc_social, levels = c(1:3), labels = c("On my desk", "In my pocket or bag", "In another room")), com_gen = as.numeric(com_gen), com_unattended = as.numeric(com_unattended), com_leave_with_other = as.numeric(com_leave_with_other), com_locked = as.numeric(com_locked), com_room_task = as.numeric(com_room_task), communicate = factor(communicate, levels = c(1:4), labels = c("Family", "Friends", "Work", "Other")), phone_use = factor(phone_use, levels = c(1,2, 5, 3, 4), labels = c("Calling/Texting", "Social Media", "Games", "Email", "Other"))
         ) %>% 
  mutate_at(vars(starts_with("NMPQ")),funs(as.numeric)) %>% 
  mutate_at(vars(starts_with("MPIQ")),funs(as.numeric)) %>% 
  mutate_at(vars(starts_with("SAD")),funs(as.numeric)) %>% 
  
  # reverse code items...
  mutate(MPIQ_VFO_2R = 8-MPIQ_VFO_2) %>% 
  
  # add scores for each questionnaire... 
  # for each p....
  rowwise() %>% 
  mutate(
    # get NMPQ score -- SUM
    NMPQ_sum = NMPQ_1 + NMPQ_2 + NMPQ_3 + NMPQ_4 + NMPQ_5 + NMPQ_6 + NMPQ_7 + NMPQ_8 + NMPQ_9 + NMPQ_10 + NMPQ_11 + NMPQ_12 + NMPQ_13 + NMPQ_14 + NMPQ_15 + NMPQ_16 + NMPQ_17 + NMPQ_18 + NMPQ_19 + NMPQ_20, 
    # get NMPQ score -- MEAN
    NMPQ_mean = mean(NMPQ_1, NMPQ_2, NMPQ_3, NMPQ_4, NMPQ_5, NMPQ_6, NMPQ_7, NMPQ_8, NMPQ_9, NMPQ_10, NMPQ_11, NMPQ_12, NMPQ_13, NMPQ_14, NMPQ_15, NMPQ_16, NMPQ_17, NMPQ_18, NMPQ_19, NMPQ_20), 
    
    # get MPIQ score -- SUM
    MPIQ_sum = MPIQ_1 + MPIQ_2 + MPIQ_3 + MPIQ_4 + MPIQ_5 + MPIQ_6 + MPIQ_7 + MPIQ_8,  
    # get MPIQ score -- MEAN
    MPIQ_mean = mean(MPIQ_1, MPIQ_2, MPIQ_3, MPIQ_4, MPIQ_5, MPIQ_6, MPIQ_7, MPIQ_8), 
    
    # get MPIQ_SI score -- SUM
    MPIQ_SI_sum = MPIQ_SI_1 + MPIQ_SI_2 + MPIQ_SI_3,  
    # get MPIQ_SI score -- MEAN
    MPIQ_SI_mean = mean(MPIQ_SI_1, MPIQ_SI_2, MPIQ_SI_3), 
    
    # get MPIQ_VFO score -- SUM
    MPIQ_VFO_sum = MPIQ_VFO_1 + MPIQ_VFO_2R + MPIQ_VFO_3,  
    # get MPIQ_VFO score -- MEAN
    MPIQ_VFO_mean = mean(MPIQ_VFO_1, MPIQ_VFO_2R, MPIQ_VFO_3), 
    
    # get SAD score -- SUM
    SAD_sum = SAD_1 + SAD_2 + SAD_3 + SAD_4 + SAD_5 + SAD_6 + SAD_7 + SAD_8 + SAD_9 + SAD_10 + SAD_11 + SAD_12 + SAD_13, 
    # get SAD score -- MEAN
    SAD_mean = mean(SAD_1, SAD_2, SAD_3, SAD_4, SAD_5, SAD_6, SAD_7, SAD_8, SAD_9, SAD_10, SAD_11, SAD_12, SAD_13),
    
    # get SAD_dep score -- SUM
    SAD_dep_sum = SAD_1 + SAD_2 + SAD_3 + SAD_4 + SAD_5, 
    # get SAD_dep score -- MEAN
    SAD_dep_mean = mean(SAD_1, SAD_2, SAD_3, SAD_4, SAD_5),
    
    # get SAD_ea score -- SUM
    SAD_ea_sum = SAD_8 + SAD_9 + SAD_10 + SAD_11, 
    # get SAD_ea score -- MEAN
    SAD_ea_mean = mean(SAD_8, SAD_9, SAD_10, SAD_11), 
    
    # get SAD_dist score -- SUM
    SAD_dist_sum = SAD_7 + SAD_12 + SAD_13, 
    # get SAD_dist score -- MEAN
    SAD_dist_mean = mean(SAD_7, SAD_12,SAD_13)
    
         )

Organize CBS data …

CBS_data <- 
  # change data file type to tibble 
  as.tibble(CBS_raw) %>% 
  # make Valid a factor -- true vs false
  mutate(Valid = factor(Valid)) %>% 
  # make test name a factor
  mutate(Test.Name = factor(Test.Name)) %>% 
  # remove email domain to get participant numbers
  mutate_at("User.Email", str_replace, "@researcher-159542.autoregister.com", "") %>% 
  # make list as numeric
  mutate(User.Email = as.numeric(User.Email)) %>% 
  # make all scores & raw scores numeric
  mutate_at(vars(starts_with("Score")),funs(as.numeric)) %>% 
  # make all percentiles numeric
  mutate(Percentile = as.numeric(Percentile))

Removing Non-Valid Scores: CBS

Remove non-valid data from CBS scores.

  • 30 scores were removed for being invalid.
# Exclude ps with non-valid CBS scores
CBS_ex_notvalid <- CBS_raw %>% filter(Valid == "false")

# make frequency table
CBS_ex_notvalid_t <- plyr::count(CBS_ex_notvalid$Test.Name)

# show table using kable
kable(CBS_ex_notvalid_t, caption = "Frequency table of CBS Tasks with Non-Valid Scores", align = rep('c'), col.names = c("Task", "Non-Valid Scores"), row.names = TRUE) %>% 
  footnote(general = "Participants who had any non-valid scores were removed form the final analyses. Not all tasks had a non-valid score.") %>% 
  column_spec(2, bold = T) %>%
  row_spec(0, bold = T) %>% 
  # column_spec(9, border_left = T) %>%
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency table of CBS Tasks with Non-Valid Scores
Task Non-Valid Scores
1 Digit Span 3
2 Double Trouble 3
3 Monkey Ladder 5
4 Paired Associates 4
5 Polygons 4
6 Rotations 4
7 Spatial Planning 2
8 Spatial Span 1
9 Token Search 4
Note:
Participants who had any non-valid scores were removed form the final analyses. Not all tasks had a non-valid score.
  • To maintain only ps who completed all 12 CBS tasks, r ps were removed, leaving a total of r who completed all 12 CBS trials with a valid score

Removing Ouliers: CBS

This code cleaned all_data based on (1) exclusion criteria, (2) outliers, and (3) incomplete/missing data. (click to see code)

# get list of ps to remove for various reasons...

# Exclude ps with non-valid CBS scores -- grabbed from above
# CBS_ex_notvalid <- CBS_data %>% filter(Valid == "false")

# Outliers -- remove ps who are greater than 3 SDs away from the M for each task
  # the tasks & their acronyms:
    # Digit Span (DS), Double Trouble (DT), Feature Match (FM), Grammatical Reasoning (GR), Monkey Ladder (ML), Odd One Out (OOO), 
    # Paired Associates (PA), Polygons (P), Rotations (R), Spatial Planning (SP), Spatial Span (SS), Token Search (TS)
# Digit Span (DS)
CBS_ex_out_DS <- 
  CBS_data %>% 
  # select the task in question
  filter(Test.Name == "Digit Span") %>% 
  # remove ps that have > 3SD from the mean
  filter(Score > (mean(Score) + 3*sd(Score)) | 
  # remove ps that have < 3SD from the mean
         Score < (mean(Score) - 3*sd(Score)))
# Double Trouble (DT)
CBS_ex_out_DT <- CBS_data %>% filter(Test.Name == "Double Trouble") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Feature Match (FM) 
CBS_ex_out_FM <- CBS_data %>% filter(Test.Name == "Feature Match") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Grammatical Reasoning (GR)
CBS_ex_out_GR <- CBS_data %>% filter(Test.Name == "Grammatical Reasoning") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Monkey Ladder (ML)
CBS_ex_out_ML <- CBS_data %>% filter(Test.Name == "Monkey Ladder") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Odd One Out (OOO)
CBS_ex_out_OOO <- CBS_data %>% filter(Test.Name == "Odd One Out") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Paired Associates (PA)
CBS_ex_out_PA <- CBS_data %>% filter(Test.Name == "Paired Associates") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Polygons (P)
CBS_ex_out_P <- CBS_data %>% filter(Test.Name == "Polygons") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Rotations (R)
CBS_ex_out_R <- CBS_data %>% filter(Test.Name == "Rotations") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Spatial Planning (SP)
CBS_ex_out_SP <- CBS_data %>% filter(Test.Name == "Spatial Planning") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Spatial Span (SS)
CBS_ex_out_SS <- CBS_data %>% filter(Test.Name == "Spatial Span") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))

# Token Search (TS)
CBS_ex_out_TS <- CBS_data %>% filter(Test.Name == "Token Search") %>% filter(Score > (mean(Score) + 3*sd(Score)) | Score < (mean(Score) - 3*sd(Score)))
    
# create list of ps to remove with reason for removal -- CBS_remove
CBS_remove <- 
  # bind the ps who will be removed
  rbind(CBS_ex_out_DS, CBS_ex_out_DT, CBS_ex_out_FM, CBS_ex_out_GR, CBS_ex_out_ML, CBS_ex_out_OOO, 
        CBS_ex_out_PA, CBS_ex_out_P, CBS_ex_out_R, CBS_ex_out_SP, CBS_ex_out_SS, CBS_ex_out_TS) %>% 
  # group by task
  group_by(Test.Name) %>% 
  # count by participant number
  count(User.Email) %>% 
  # remove excess column "n"
  select(-n)


# create list of ps to remove without duplicates to use to filter final data
CBS_remove_list <- 
  CBS_remove %>% 
  # based on User.Email
  select(User.Email) %>% 
  # remove any duplicated participant IDs
  distinct()
Adding missing grouping variables: `Test.Name`
# show table of outliers by task using kable
kable(plyr::count(CBS_remove$Test.Name), caption = "Frequency table of CBS Tasks with Non-Valid Scores", align = rep('c'), col.names = c("Task", "Outlier Scores"), row.names = TRUE) %>% 
  footnote(general = "Participants who had any non-valid scores were removed form the final analyses. Not all tasks had a non-valid score.") %>% 
  column_spec(2, bold = T) %>%
  row_spec(0, bold = T) %>% 
  # column_spec(9, border_left = T) %>%
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency table of CBS Tasks with Non-Valid Scores
Task Outlier Scores
1 Digit Span 3
2 Grammatical Reasoning 1
3 Monkey Ladder 2
4 Odd One Out 3
5 Polygons 1
6 Rotations 2
7 Spatial Planning 2
8 Spatial Span 2
9 Token Search 7
Note:
Participants who had any non-valid scores were removed form the final analyses. Not all tasks had a non-valid score.
# clean CBS_data using CBS_remove_list
CBS_data_noout <- 
  CBS_data %>% filter(!User.Email %in% CBS_remove_list$User.Email)

# get list of ps with all 12 tasks after removing outliers
  # get frequency counts of number of tasks per p
  CBS_tasknum_p_freq <- CBS_data_noout %>% count(User.Email) %>% filter(n != 12)
  # remove any ps with less than 12 tasks
  CBS_data_final <- 
    CBS_data_noout %>% 
    filter(!User.Email %in% CBS_tasknum_p_freq$User.Email)


# compare frequency tables form before to after p removal
# get frequency tables
  # before removal
  CBS_p_freq <- plyr::count(CBS_data$Test.Name)
  # after outlier removal
  CBS_noout_p_freq <- plyr::count(CBS_data_noout$Test.Name)
  # after removing incomplete ps
  CBS_final_p_freq <- plyr::count(CBS_data_final$Test.Name)
# join into 1 table
CBS_compare_p_freq_t <- 
  data.frame("task" = CBS_p_freq$x, "freq_intitial" = CBS_p_freq$freq, "freq_noout" = CBS_noout_p_freq$freq, "freq_final" = CBS_final_p_freq$freq, "removed" = (CBS_p_freq$freq - CBS_noout_p_freq$freq), "missing" = (CBS_noout_p_freq$freq - CBS_final_p_freq$freq))

# show table using kable
kable(CBS_compare_p_freq_t, caption = "Frequency table of CBS Tasks before and after extreme outliers removed.", align = rep('rccccc'),
      col.names = c("Task", "Initial", "No Outliers", "Final", "Outliers", "Missing Task(s)"), row.names = TRUE) %>% 
  footnote(general = "Extreme outlier defined as any score that was >3SD from the mean. Final sample size ensured all participants completed all 12 CBS tasks.") %>% 
  add_header_above(c(" " = 2, "Sample Size" = 3, "Removed N" = 2), bold = T) %>% 
  column_spec(2, bold = T) %>%
  column_spec(5, border_right = T) %>% 
  row_spec(0, bold = T) %>%
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency table of CBS Tasks before and after extreme outliers removed.
Sample Size
Removed N
Task Initial No Outliers Final Outliers Missing Task(s)
1 Digit Span 295 274 272 21 2
2 Double Trouble 296 275 272 21 3
3 Feature Match 295 274 272 21 2
4 Grammatical Reasoning 293 273 272 20 1
5 Monkey Ladder 293 273 272 20 1
6 Odd One Out 295 274 272 21 2
7 Paired Associates 295 274 272 21 2
8 Polygons 295 274 272 21 2
9 Rotations 293 273 272 20 1
10 Spatial Planning 295 274 272 21 2
11 Spatial Span 293 273 272 20 1
12 Token Search 295 274 272 21 2
Note:
Extreme outlier defined as any score that was >3SD from the mean. Final sample size ensured all participants completed all 12 CBS tasks.

Linking Main Study Data

Next, we linked the data between the different data sets: “main_sur_data”, “tracking_data_temp”, “CBS_data_final”

  • main_sur_data has the following variables: StartDate, EndDate, Progress, duration_sec, Finished, RecordedDate, LocationLatitude, LocationLongitude, date_sur, participant, type, CBS_know, CBS_done_tasks, age, gender, genderO, lang, langO, prof, program, programO, year, age_first_phone, app_most_used, app_most_usedO, app_most_used_text, iphone, ST_app_most_used, ST_app_most_usedO, ST_app_text_mess, ST_weekly_tot_hours, ST_daily_pickups, ST_daily_not, phone_value, phantom, dist_daily, dist_study, dist_device, dist_deviceO, dist_device_studywork, dist_device_studyworkO, dist_device_social, dist_device_socialO, pow_not_using, pow_notifications_on, pow_vibrate, pow_study, pow_exam, pow_lec, pow_sleep, loc_typical, loc_study, loc_exam, loc_lec, loc_social, com_gen, com_unattended, com_leave_with_other, com_locked, com_room_task, communicate, communicateO, phone_use, phone_useO, NMPQ_1, NMPQ_2, NMPQ_3, NMPQ_4, NMPQ_5, NMPQ_6, NMPQ_7, NMPQ_8, NMPQ_9, NMPQ_10, NMPQ_11, NMPQ_12, NMPQ_13, NMPQ_14, NMPQ_15, NMPQ_16, NMPQ_17, NMPQ_18, NMPQ_19, NMPQ_20, MPIQ_1, MPIQ_2, MPIQ_3, MPIQ_4, MPIQ_5, MPIQ_6, MPIQ_7, MPIQ_8, MPIQ_SI_1, MPIQ_SI_2, MPIQ_SI_3, MPIQ_VFO_1, MPIQ_VFO_2, MPIQ_VFO_3, SAD_1, SAD_2, SAD_3, SAD_4, SAD_5, SAD_6, SAD_7, SAD_8, SAD_9, SAD_10, SAD_11, SAD_12, SAD_13, MPIQ_VFO_2R, NMPQ_sum, NMPQ_mean, MPIQ_sum, MPIQ_mean, MPIQ_SI_sum, MPIQ_SI_mean, MPIQ_VFO_sum, MPIQ_VFO_mean, SAD_sum, SAD_mean, SAD_dep_sum, SAD_dep_mean, SAD_ea_sum, SAD_ea_mean, SAD_dist_sum, SAD_dist_mean
    • At this point, this file has 295 participants
  • tracking_data_temp has the following variables: date, time, participant, type, condition, valid, exp_initials_main, exp_initials_secondary
    • At this point, this file has 275 participants
  • CBS_data_final has the following variables: Id, User, User.Email, Test, Test.Name, Locale, Skipped, Version, Tutorial.Version, Trial, Trial.Name, Batch, Batch.Name, Batch.Page, Time.Point, Load.Count, User.Agent, Device.Type, Browser, Os, Screen.Height, Screen.Width, Created.At, Updated.At, Score, Raw.Score, Percentile, Valid, Legacy.Raw.Score, Legacy.Raw.Data, Session.Data, Report
    • At this point, this file has 272 participants
# start by removing unwanted columns from CBS_final_data to make things more simple...
CBS_data_final_simple <- 
  CBS_data_final %>% 
  select(User.Email, Test.Name, Score, Raw.Score, Percentile)

# next, change CBS data to wide format
CBS_data_finalW <- 
  # use simplified data
  CBS_data_final_simple %>% 
  # perform the long>wide function for each participant
  group_by(User.Email) %>% 
  # make data wide
  pivot_wider(names_from = Test.Name, # Variable whose values will be converted to column names -- enter multiple with "c()"
              values_from = c(Score, Raw.Score, Percentile)) %>%  # Variable whose values will populate the table’s block of cell values.
  # rename "User.Email" as "participant" to link files
  rename(participant = User.Email) 
  
  # change scores to numeric 


# since CBS has been reduced the most, use a list from CBS_data_final
  # create freq list from CBS_data_final
  # note: this list may include ps who were remove either in tracking or survey components
# main_all_participants <- plyr::count(c(main_sur_data$participant, CBS_data_finalW$participant, tracking_data_temp$participant)) %>% filter(freq == 3) ##fix to use later... 

# link all data b/w the 3 data files
main_all_data <- 
  main_sur_data %>% inner_join(CBS_data_finalW, by = "participant") %>% inner_join(tracking_data_temp, by = "participant")

Get z scores for CBs tasks…

# get z score for each CBS tasks

# Digit Span (DS)
ZScore_DS = as.numeric(scale(main_all_data$`Score_Digit Span`))
ZRaw_DS = as.numeric(scale(main_all_data$`Raw.Score_Digit Span`))

# Double Trouble (DT)
ZScore_DT = as.numeric(scale(main_all_data$`Score_Double Trouble`))
ZRaw_DT = as.numeric(scale(main_all_data$`Raw.Score_Double Trouble`))

# Feature Match (FM)
ZScore_FM = as.numeric(scale(main_all_data$`Score_Feature Match`))
ZRaw_FM = as.numeric(scale(main_all_data$`Raw.Score_Feature Match`))

# Grammatical Reasoning (GR)
ZScore_GR = as.numeric(scale(main_all_data$`Score_Grammatical Reasoning`))
ZRaw_GR = as.numeric(scale(main_all_data$`Raw.Score_Grammatical Reasoning`))

# Monkey Ladder (ML)
ZScore_ML = as.numeric(scale(main_all_data$`Score_Monkey Ladder`))
ZRaw_ML = as.numeric(scale(main_all_data$`Raw.Score_Monkey Ladder`))

# Odd One Out (OOO)
ZScore_OOO = as.numeric(scale(main_all_data$`Score_Odd One Out`))
ZRaw_OOO = as.numeric(scale(main_all_data$`Raw.Score_Odd One Out`))

# Paired Associates (PA)
ZScore_PA = as.numeric(scale(main_all_data$`Score_Paired Associates`))
ZRaw_PA = as.numeric(scale(main_all_data$`Raw.Score_Paired Associates`))

# Polygons (P)
ZScore_P = as.numeric(scale(main_all_data$Score_Polygons))
ZRaw_P = as.numeric(scale(main_all_data$Raw.Score_Polygons))

# Rotations (R)
ZScore_R = as.numeric(scale(main_all_data$Score_Rotations))
ZRaw_R = as.numeric(scale(main_all_data$Raw.Score_Rotations))

# Spatial Planning (SP)
ZScore_SP = as.numeric(scale(main_all_data$`Score_Spatial Planning`))
ZRaw_SP = as.numeric(scale(main_all_data$`Raw.Score_Spatial Planning`))

# Spatial Span (SS)
ZScore_SS = as.numeric(scale(main_all_data$`Score_Spatial Span`))
ZRaw_SS = as.numeric(scale(main_all_data$`Raw.Score_Spatial Planning`))

# Token Search (TS)
ZScore_TS = as.numeric(scale(main_all_data$`Score_Token Search`))
ZRaw_TS = as.numeric(scale(main_all_data$`Raw.Score_Token Search`))

# add z-score all CBS scores (& Raw scores) to main data -- creating "main_data_final"
  # mutate_at(var(starts_with("Score")), funs(scale)) ## wont work, needs "selecting" function...
  # mutate(ScoreZ_DS = scale(`Score_Digit Span`))
  # mutate_at(vars(starts_with("Score")), list(z = ~as.vector(scale(.))))
main_all_data_final <- 
  # join main data & new zscores
  cbind(main_all_data, ZScore_DS, ZRaw_DS, ZScore_DT, ZRaw_DT, ZScore_FM, ZRaw_FM, ZScore_GR, ZRaw_GR, ZScore_ML, ZRaw_ML, ZScore_OOO, ZRaw_OOO, ZScore_PA, ZRaw_PA, ZScore_P, ZRaw_P, ZScore_R, ZRaw_R, ZScore_SP, ZRaw_SP, ZScore_SS, ZRaw_SS, ZScore_TS, ZRaw_TS) %>%
  
  # for each p...
  rowwise() %>% 
  # add composite score -- overall CBS score
  mutate(CBS_overall = mean(ZScore_DS, ZScore_DT, ZScore_FM, ZScore_GR, ZScore_ML, ZScore_OOO, ZScore_PA, ZScore_P, ZScore_R, ZScore_SP, ZScore_SS, ZScore_TS)) %>% 
  # add composite score -- overall CBS raw score
  mutate(CBS_overallR = mean(ZRaw_DS, ZRaw_DT, ZRaw_FM, ZRaw_GR, ZRaw_ML, ZRaw_OOO, ZRaw_PA, ZRaw_P, ZRaw_R, ZRaw_SP, ZRaw_SS, ZRaw_TS)) %>% 
  
  ## FROM HAMPSHIRE ET AL. (2012) --PCA (DATA-DRIVEN)
  # add composite score -- STM CBS score
  mutate(CBS_STM = mean(ZScore_ML, ZScore_PA, ZScore_SS, ZScore_TS)) %>% 
  # add composite score -- STM CBS raw score
  mutate(CBS_STMR = mean(ZRaw_ML, ZRaw_PA, ZRaw_SS, ZRaw_TS)) %>% 

  # add composite score -- Reasoning CBS score
  mutate(CBS_reason = mean(ZScore_FM, ZScore_OOO, ZScore_P, ZScore_R, ZScore_SP)) %>% 
  # add composite score -- Reasoning CBS raw score
  mutate(CBS_reasonR = mean(ZRaw_FM, ZRaw_OOO, ZRaw_P, ZRaw_R, ZRaw_SP)) %>% 
  
  # add composite score -- Verbal CBS score
  mutate(CBS_verbal = mean(ZScore_GR, ZScore_DS, ZScore_DT)) %>% 
  # add composite score -- Verbal CBS raw score
  mutate(CBS_verbalR = mean(ZRaw_DS, ZRaw_DT, ZRaw_GR)) %>% 
  
  ## FROM CBS TASK SELECTION GUIDE --CONCEPTS (FOR CLINICAL APPS)
  # add composite score -- MEMORY CBS score
  mutate(CBS_ts_memory = mean(ZScore_ML, ZScore_SS, ZScore_TS, ZScore_PA)) %>% 
  # add composite score -- MEMORY CBS raw score
  mutate(CBS_ts_memoryR = mean(ZRaw_ML, ZRaw_SS, ZRaw_TS, ZRaw_PA)) %>% 
  
  # add composite score -- REASONING CBS score
  mutate(CBS_ts_reason = mean(ZScore_P, ZScore_R, ZScore_OOO, ZScore_SP)) %>% 
  # add composite score -- REASONING CBS raw score
  mutate(CBS_ts_reasonR = mean(ZRaw_P, ZRaw_R, ZRaw_OOO, ZRaw_SP)) %>% 
  
  # add composite score -- VERBAL ABILITY CBS score
  mutate(CBS_ts_verbalab = mean(ZScore_GR, ZScore_DS)) %>% 
  # add composite score -- VERBAL ABILITY CBS raw score
  mutate(CBS_ts_verbalabR = mean(ZRaw_GR, ZRaw_DS)) %>% 
  
  # add composite score -- CONCENTRATION CBS score
  mutate(CBS_ts_con = mean(ZScore_FM, ZScore_DT)) %>% 
  # add composite score -- CONCENTRATION CBS raw score
  mutate(CBS_ts_conR = mean(ZRaw_FM, ZRaw_DT))

Descriptives

NOMINAL (pilot & main)

Demographic & Typical Smartphone Use


# output is a list of tibbles, each with: $xxx = var name, x = level(s), n = count, pct = percentage

## FOR PILOT DATA
pilot_nom_demo <- 
  pilot_sur_data %>% 
  # get subset of data with only nominal vars
  select(gender, lang, prof, program, year, app_most_used, iphone, ST_app_most_used, ST_app_text_mess:phantom, dist_device, dist_device_studywork, dist_device_social, loc_typical:loc_social, communicate, phone_use) %>% 
  # get freq & proportion for each var
  purrr::map(~ count(tibble(x = .x), x) %>% 
               mutate(pct = (n / sum(n) * 100)))

# make list into 1 long data frame to show as table...
pilot_nom_demo_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(pilot_nom_demo, bind_rows, .id = "tib")

## FOR MAIN DATA -- OVERALL
main_nom_demo <- 
main_all_data_final %>% 
  # get subset of nominal vars
  select(condition, gender, lang, prof, program, year, CBS_know, CBS_done_tasks, app_most_used, iphone, ST_app_most_used, ST_app_text_mess:phantom, dist_device, dist_device_studywork, dist_device_social, loc_typical:loc_social, communicate, phone_use) %>% 
  purrr::map(~ count(tibble(x = .x), x) %>%
               mutate(pct = (n / sum(n) * 100)))
# make list into 1 long data frame to show as table...
main_nom_demo_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(main_nom_demo, bind_rows, .id = "tib")

## FOR MAIN DATA -- DESK
main_nom_demo_desk <- 
main_all_data_final %>% 
  # get subset of nominal vars
  select(condition, gender, lang, prof, program, year, CBS_know, CBS_done_tasks, app_most_used, iphone, ST_app_most_used, ST_app_text_mess:phantom, dist_device, dist_device_studywork, dist_device_social, loc_typical:loc_social, communicate, phone_use) %>% 
  # for desk condition
  filter(condition == "desk") %>% 
  purrr::map(~ count(tibble(x = .x), x) %>%
               mutate(pct = (n / sum(n) * 100)))
# make list into 1 long data frame to show as table...
main_nom_demo_desk_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(main_nom_demo_desk, bind_rows, .id = "tib")

## FOR MAIN DATA -- POCKET/BAG
main_nom_demo_pb <- 
main_all_data_final %>% 
  # get subset of nominal vars
  select(condition, gender, lang, prof, program, year, CBS_know, CBS_done_tasks, app_most_used, iphone, ST_app_most_used, ST_app_text_mess:phantom, dist_device, dist_device_studywork, dist_device_social, loc_typical:loc_social, communicate, phone_use) %>% 
  # for pocket/bag condition
  filter(condition == "pocket/bag") %>% 
  purrr::map(~ count(tibble(x = .x), x) %>%
               mutate(pct = (n / sum(n) * 100)))
# make list into 1 long data frame to show as table...
main_nom_demo_pb_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(main_nom_demo_pb, bind_rows, .id = "tib")

## FOR MAIN DATA -- OUTSIDE
main_nom_demo_out <- 
main_all_data_final %>% 
  # get subset of nominal vars
  select(condition, gender, lang, prof, program, year, CBS_know, CBS_done_tasks, app_most_used, iphone, ST_app_most_used, ST_app_text_mess:phantom, dist_device, dist_device_studywork, dist_device_social, loc_typical:loc_social, communicate, phone_use) %>% 
  # for pocket/bag condition
  filter(condition == "outside") %>% 
  purrr::map(~ count(tibble(x = .x), x) %>%
               mutate(pct = (n / sum(n) * 100)))
# make list into 1 long data frame to show as table...
main_nom_demo_out_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(main_nom_demo_out, bind_rows, .id = "tib")
kable(pilot_nom_demo_t, caption = "Frequency & percentage for nominal vars - demo - PILOT.", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - demo - PILOT.
Var level n %
1 gender Male 59 48.3606557
2 gender Female 63 51.6393443
3 lang English 85 69.6721311
4 lang Other 37 30.3278689
5 prof Moderate 23 18.8524590
6 prof High 99 81.1475410
7 program Arts & Humanities 4 3.2786885
8 program Music 2 1.6393443
9 program Engineering 1 0.8196721
10 program Haalth Science 11 9.0163934
11 program Information & Media Studies 2 1.6393443
12 program Business 21 17.2131148
13 program Science 45 36.8852459
14 program Social Science 36 29.5081967
15 year First Year 88 72.1311475
16 year Second Year 14 11.4754098
17 year Third Year 5 4.0983607
18 year Fourth Year 10 8.1967213
19 year Fifth Year+ 4 3.2786885
20 year Graduate Student 1 0.8196721
21 app_most_used Games 4 3.2786885
22 app_most_used Social Networking 101 82.7868852
23 app_most_used Entertainment 17 13.9344262
24 iphone yes 97 79.5081967
25 iphone no 25 20.4918033
26 ST_app_most_used Games 7 5.7377049
27 ST_app_most_used Social Networking 75 61.4754098
28 ST_app_most_used Entertainment 15 12.2950820
29 ST_app_most_used NA 25 20.4918033
30 ST_app_text_mess yes 39 31.9672131
31 ST_app_text_mess no 58 47.5409836
32 ST_app_text_mess NA 25 20.4918033
33 ST_weekly_tot_hours 0-10 8 6.5573770
34 ST_weekly_tot_hours 11-20 21 17.2131148
35 ST_weekly_tot_hours 21-30 24 19.6721311
36 ST_weekly_tot_hours 31-40 18 14.7540984
37 ST_weekly_tot_hours 40+ 26 21.3114754
38 ST_weekly_tot_hours NA 25 20.4918033
39 ST_daily_pickups 0-50 11 9.0163934
40 ST_daily_pickups 51-100 33 27.0491803
41 ST_daily_pickups 101-150 30 24.5901639
42 ST_daily_pickups 151-200 15 12.2950820
43 ST_daily_pickups 200+ 8 6.5573770
44 ST_daily_pickups NA 25 20.4918033
45 ST_daily_not 0-50 16 13.1147541
46 ST_daily_not 51-100 15 12.2950820
47 ST_daily_not 101-150 13 10.6557377
48 ST_daily_not 151-200 15 12.2950820
49 ST_daily_not 200+ 38 31.1475410
50 ST_daily_not NA 25 20.4918033
51 phone_value $0-$20 38 31.1475410
52 phone_value $21-$40 26 21.3114754
53 phone_value $41-$60 22 18.0327869
54 phone_value >$60 36 29.5081967
55 phantom yes 100 81.9672131
56 phantom no 22 18.0327869
57 dist_device Computer 10 8.1967213
58 dist_device Phone 107 87.7049180
59 dist_device iPad/Tablet 4 3.2786885
60 dist_device Other 1 0.8196721
61 dist_device_studywork Computer 14 11.4754098
62 dist_device_studywork Phone 104 85.2459016
63 dist_device_studywork iPad/Tablet 4 3.2786885
64 dist_device_social Computer 4 3.2786885
65 dist_device_social Phone 117 95.9016393
66 dist_device_social Smartwatch 1 0.8196721
67 loc_typical On my desk 53 43.4426230
68 loc_typical In my pocket or bag 69 56.5573770
69 loc_study On my desk 85 69.6721311
70 loc_study In my pocket or bag 33 27.0491803
71 loc_study In another room 4 3.2786885
72 loc_exam On my desk 3 2.4590164
73 loc_exam In my pocket or bag 111 90.9836066
74 loc_exam In another room 8 6.5573770
75 loc_lec On my desk 41 33.6065574
76 loc_lec In my pocket or bag 80 65.5737705
77 loc_lec In another room 1 0.8196721
78 loc_social On my desk 35 28.6885246
79 loc_social In my pocket or bag 87 71.3114754
80 communicate Family 11 9.0163934
81 communicate Friends 110 90.1639344
82 communicate Work 1 0.8196721
83 phone_use Calling/Texting 21 17.2131148
84 phone_use Social Media 95 77.8688525
85 phone_use Games 2 1.6393443
86 phone_use Other 4 3.2786885
Note:
There was no task completed during the pilot study.

kable(main_nom_demo_t, caption = "Frequency & percentage for nominal vars - demo - MAIN OVERALL", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - demo - MAIN OVERALL
Var level n %
1 condition desk 81 32.4
2 condition pocket/bag 88 35.2
3 condition outside 81 32.4
4 gender Male 77 30.8
5 gender Female 173 69.2
6 lang English 191 76.4
7 lang Other 59 23.6
8 prof Moderate 25 10.0
9 prof High 225 90.0
10 program Arts & Humanities 6 2.4
11 program Music 1 0.4
12 program Haalth Science 38 15.2
13 program Information & Media Studies 9 3.6
14 program Business 37 14.8
15 program Science 85 34.0
16 program Social Science 73 29.2
17 program Other 1 0.4
18 year First Year 213 85.2
19 year Second Year 22 8.8
20 year Third Year 6 2.4
21 year Fourth Year 8 3.2
22 year Fifth Year+ 1 0.4
23 CBS_know yes 30 12.0
24 CBS_know no 220 88.0
25 CBS_done_tasks yes 52 20.8
26 CBS_done_tasks no 198 79.2
27 app_most_used Games 2 0.8
28 app_most_used Social Networking 190 76.0
29 app_most_used Entertainment 55 22.0
30 app_most_used Other 3 1.2
31 iphone yes 168 67.2
32 iphone no 82 32.8
33 ST_app_most_used Games 3 1.2
34 ST_app_most_used Social Networking 126 50.4
35 ST_app_most_used Entertainment 35 14.0
36 ST_app_most_used Other 4 1.6
37 ST_app_most_used NA 82 32.8
38 ST_app_text_mess yes 48 19.2
39 ST_app_text_mess no 120 48.0
40 ST_app_text_mess NA 82 32.8
41 ST_weekly_tot_hours 0-10 36 14.4
42 ST_weekly_tot_hours 11-20 39 15.6
43 ST_weekly_tot_hours 21-30 47 18.8
44 ST_weekly_tot_hours 31-40 29 11.6
45 ST_weekly_tot_hours 40+ 17 6.8
46 ST_weekly_tot_hours NA 82 32.8
47 ST_daily_pickups 0-50 21 8.4
48 ST_daily_pickups 51-100 45 18.0
49 ST_daily_pickups 101-150 55 22.0
50 ST_daily_pickups 151-200 25 10.0
51 ST_daily_pickups 200+ 22 8.8
52 ST_daily_pickups NA 82 32.8
53 ST_daily_not 0-50 15 6.0
54 ST_daily_not 51-100 34 13.6
55 ST_daily_not 101-150 30 12.0
56 ST_daily_not 151-200 20 8.0
57 ST_daily_not 200+ 69 27.6
58 ST_daily_not NA 82 32.8
59 phone_value $0-$20 89 35.6
60 phone_value $21-$40 56 22.4
61 phone_value $41-$60 52 20.8
62 phone_value >$60 53 21.2
63 phantom yes 191 76.4
64 phantom no 59 23.6
65 dist_device Computer 15 6.0
66 dist_device Phone 228 91.2
67 dist_device iPad/Tablet 4 1.6
68 dist_device Smartwatch 3 1.2
69 dist_device_studywork Computer 24 9.6
70 dist_device_studywork Phone 221 88.4
71 dist_device_studywork iPad/Tablet 2 0.8
72 dist_device_studywork Smartwatch 3 1.2
73 dist_device_social Computer 4 1.6
74 dist_device_social Phone 242 96.8
75 dist_device_social iPad/Tablet 1 0.4
76 dist_device_social Smartwatch 2 0.8
77 dist_device_social Other 1 0.4
78 loc_typical On my desk 81 32.4
79 loc_typical In my pocket or bag 169 67.6
80 loc_study On my desk 186 74.4
81 loc_study In my pocket or bag 48 19.2
82 loc_study In another room 16 6.4
83 loc_exam On my desk 1 0.4
84 loc_exam In my pocket or bag 227 90.8
85 loc_exam In another room 22 8.8
86 loc_lec On my desk 79 31.6
87 loc_lec In my pocket or bag 171 68.4
88 loc_social On my desk 40 16.0
89 loc_social In my pocket or bag 206 82.4
90 loc_social In another room 4 1.6
91 communicate Family 37 14.8
92 communicate Friends 211 84.4
93 communicate Work 1 0.4
94 communicate Other 1 0.4
95 phone_use Calling/Texting 60 24.0
96 phone_use Social Media 178 71.2
97 phone_use Games 5 2.0
98 phone_use Email 2 0.8
99 phone_use Other 5 2.0
Note:
There was no task completed during the pilot study.

kable(main_nom_demo_desk_t, caption = "Frequency & percentage for nominal vars - demo - MAIN - DESK", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - demo - MAIN - DESK
Var level n %
1 condition desk 81 100.000000
2 gender Male 26 32.098765
3 gender Female 55 67.901235
4 lang English 65 80.246914
5 lang Other 16 19.753086
6 prof Moderate 8 9.876543
7 prof High 73 90.123457
8 program Arts & Humanities 2 2.469136
9 program Haalth Science 19 23.456790
10 program Information & Media Studies 1 1.234568
11 program Business 16 19.753086
12 program Science 27 33.333333
13 program Social Science 15 18.518518
14 program Other 1 1.234568
15 year First Year 68 83.950617
16 year Second Year 6 7.407407
17 year Third Year 4 4.938272
18 year Fourth Year 3 3.703704
19 CBS_know yes 10 12.345679
20 CBS_know no 71 87.654321
21 CBS_done_tasks yes 15 18.518518
22 CBS_done_tasks no 66 81.481482
23 app_most_used Social Networking 58 71.604938
24 app_most_used Entertainment 23 28.395062
25 iphone yes 60 74.074074
26 iphone no 21 25.925926
27 ST_app_most_used Games 1 1.234568
28 ST_app_most_used Social Networking 42 51.851852
29 ST_app_most_used Entertainment 16 19.753086
30 ST_app_most_used Other 1 1.234568
31 ST_app_most_used NA 21 25.925926
32 ST_app_text_mess yes 17 20.987654
33 ST_app_text_mess no 43 53.086420
34 ST_app_text_mess NA 21 25.925926
35 ST_weekly_tot_hours 0-10 14 17.283951
36 ST_weekly_tot_hours 11-20 11 13.580247
37 ST_weekly_tot_hours 21-30 16 19.753086
38 ST_weekly_tot_hours 31-40 12 14.814815
39 ST_weekly_tot_hours 40+ 7 8.641975
40 ST_weekly_tot_hours NA 21 25.925926
41 ST_daily_pickups 0-50 9 11.111111
42 ST_daily_pickups 51-100 13 16.049383
43 ST_daily_pickups 101-150 22 27.160494
44 ST_daily_pickups 151-200 10 12.345679
45 ST_daily_pickups 200+ 6 7.407407
46 ST_daily_pickups NA 21 25.925926
47 ST_daily_not 0-50 6 7.407407
48 ST_daily_not 51-100 12 14.814815
49 ST_daily_not 101-150 13 16.049383
50 ST_daily_not 151-200 8 9.876543
51 ST_daily_not 200+ 21 25.925926
52 ST_daily_not NA 21 25.925926
53 phone_value $0-$20 31 38.271605
54 phone_value $21-$40 18 22.222222
55 phone_value $41-$60 18 22.222222
56 phone_value >$60 14 17.283951
57 phantom yes 64 79.012346
58 phantom no 17 20.987654
59 dist_device Computer 6 7.407407
60 dist_device Phone 73 90.123457
61 dist_device Smartwatch 2 2.469136
62 dist_device_studywork Computer 8 9.876543
63 dist_device_studywork Phone 71 87.654321
64 dist_device_studywork Smartwatch 2 2.469136
65 dist_device_social Phone 80 98.765432
66 dist_device_social Smartwatch 1 1.234568
67 loc_typical On my desk 28 34.567901
68 loc_typical In my pocket or bag 53 65.432099
69 loc_study On my desk 58 71.604938
70 loc_study In my pocket or bag 19 23.456790
71 loc_study In another room 4 4.938272
72 loc_exam On my desk 1 1.234568
73 loc_exam In my pocket or bag 73 90.123457
74 loc_exam In another room 7 8.641975
75 loc_lec On my desk 21 25.925926
76 loc_lec In my pocket or bag 60 74.074074
77 loc_social On my desk 15 18.518518
78 loc_social In my pocket or bag 63 77.777778
79 loc_social In another room 3 3.703704
80 communicate Family 11 13.580247
81 communicate Friends 70 86.419753
82 phone_use Calling/Texting 18 22.222222
83 phone_use Social Media 61 75.308642
84 phone_use Games 1 1.234568
85 phone_use Email 1 1.234568
Note:
There was no task completed during the pilot study.

kable(main_nom_demo_pb_t, caption = "Frequency & percentage for nominal vars - demo - MAIN - POCKET/BAG", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - demo - MAIN - POCKET/BAG
Var level n %
1 condition pocket/bag 88 100.000000
2 gender Male 33 37.500000
3 gender Female 55 62.500000
4 lang English 63 71.590909
5 lang Other 25 28.409091
6 prof Moderate 6 6.818182
7 prof High 82 93.181818
8 program Arts & Humanities 2 2.272727
9 program Music 1 1.136364
10 program Haalth Science 10 11.363636
11 program Information & Media Studies 4 4.545454
12 program Business 11 12.500000
13 program Science 32 36.363636
14 program Social Science 28 31.818182
15 year First Year 77 87.500000
16 year Second Year 7 7.954546
17 year Fourth Year 3 3.409091
18 year Fifth Year+ 1 1.136364
19 CBS_know yes 10 11.363636
20 CBS_know no 78 88.636364
21 CBS_done_tasks yes 21 23.863636
22 CBS_done_tasks no 67 76.136364
23 app_most_used Games 1 1.136364
24 app_most_used Social Networking 64 72.727273
25 app_most_used Entertainment 21 23.863636
26 app_most_used Other 2 2.272727
27 iphone yes 53 60.227273
28 iphone no 35 39.772727
29 ST_app_most_used Social Networking 41 46.590909
30 ST_app_most_used Entertainment 11 12.500000
31 ST_app_most_used Other 1 1.136364
32 ST_app_most_used NA 35 39.772727
33 ST_app_text_mess yes 16 18.181818
34 ST_app_text_mess no 37 42.045454
35 ST_app_text_mess NA 35 39.772727
36 ST_weekly_tot_hours 0-10 10 11.363636
37 ST_weekly_tot_hours 11-20 16 18.181818
38 ST_weekly_tot_hours 21-30 14 15.909091
39 ST_weekly_tot_hours 31-40 11 12.500000
40 ST_weekly_tot_hours 40+ 2 2.272727
41 ST_weekly_tot_hours NA 35 39.772727
42 ST_daily_pickups 0-50 5 5.681818
43 ST_daily_pickups 51-100 14 15.909091
44 ST_daily_pickups 101-150 18 20.454545
45 ST_daily_pickups 151-200 9 10.227273
46 ST_daily_pickups 200+ 7 7.954546
47 ST_daily_pickups NA 35 39.772727
48 ST_daily_not 0-50 6 6.818182
49 ST_daily_not 51-100 10 11.363636
50 ST_daily_not 101-150 11 12.500000
51 ST_daily_not 151-200 3 3.409091
52 ST_daily_not 200+ 23 26.136364
53 ST_daily_not NA 35 39.772727
54 phone_value $0-$20 36 40.909091
55 phone_value $21-$40 15 17.045455
56 phone_value $41-$60 17 19.318182
57 phone_value >$60 20 22.727273
58 phantom yes 61 69.318182
59 phantom no 27 30.681818
60 dist_device Computer 6 6.818182
61 dist_device Phone 80 90.909091
62 dist_device iPad/Tablet 2 2.272727
63 dist_device_studywork Computer 11 12.500000
64 dist_device_studywork Phone 75 85.227273
65 dist_device_studywork iPad/Tablet 2 2.272727
66 dist_device_social Computer 3 3.409091
67 dist_device_social Phone 84 95.454545
68 dist_device_social Other 1 1.136364
69 loc_typical On my desk 25 28.409091
70 loc_typical In my pocket or bag 63 71.590909
71 loc_study On my desk 69 78.409091
72 loc_study In my pocket or bag 16 18.181818
73 loc_study In another room 3 3.409091
74 loc_exam In my pocket or bag 80 90.909091
75 loc_exam In another room 8 9.090909
76 loc_lec On my desk 25 28.409091
77 loc_lec In my pocket or bag 63 71.590909
78 loc_social On my desk 11 12.500000
79 loc_social In my pocket or bag 76 86.363636
80 loc_social In another room 1 1.136364
81 communicate Family 13 14.772727
82 communicate Friends 73 82.954545
83 communicate Work 1 1.136364
84 communicate Other 1 1.136364
85 phone_use Calling/Texting 24 27.272727
86 phone_use Social Media 56 63.636364
87 phone_use Games 3 3.409091
88 phone_use Email 1 1.136364
89 phone_use Other 4 4.545454
Note:
There was no task completed during the pilot study.

kable(main_nom_demo_out_t, caption = "Frequency & percentage for nominal vars - demo - MAIN - OUTSIDE", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - demo - MAIN - OUTSIDE
Var level n %
1 condition outside 81 100.000000
2 gender Male 18 22.222222
3 gender Female 63 77.777778
4 lang English 63 77.777778
5 lang Other 18 22.222222
6 prof Moderate 11 13.580247
7 prof High 70 86.419753
8 program Arts & Humanities 2 2.469136
9 program Haalth Science 9 11.111111
10 program Information & Media Studies 4 4.938272
11 program Business 10 12.345679
12 program Science 26 32.098765
13 program Social Science 30 37.037037
14 year First Year 68 83.950617
15 year Second Year 9 11.111111
16 year Third Year 2 2.469136
17 year Fourth Year 2 2.469136
18 CBS_know yes 10 12.345679
19 CBS_know no 71 87.654321
20 CBS_done_tasks yes 16 19.753086
21 CBS_done_tasks no 65 80.246914
22 app_most_used Games 1 1.234568
23 app_most_used Social Networking 68 83.950617
24 app_most_used Entertainment 11 13.580247
25 app_most_used Other 1 1.234568
26 iphone yes 55 67.901235
27 iphone no 26 32.098765
28 ST_app_most_used Games 2 2.469136
29 ST_app_most_used Social Networking 43 53.086420
30 ST_app_most_used Entertainment 8 9.876543
31 ST_app_most_used Other 2 2.469136
32 ST_app_most_used NA 26 32.098765
33 ST_app_text_mess yes 15 18.518518
34 ST_app_text_mess no 40 49.382716
35 ST_app_text_mess NA 26 32.098765
36 ST_weekly_tot_hours 0-10 12 14.814815
37 ST_weekly_tot_hours 11-20 12 14.814815
38 ST_weekly_tot_hours 21-30 17 20.987654
39 ST_weekly_tot_hours 31-40 6 7.407407
40 ST_weekly_tot_hours 40+ 8 9.876543
41 ST_weekly_tot_hours NA 26 32.098765
42 ST_daily_pickups 0-50 7 8.641975
43 ST_daily_pickups 51-100 18 22.222222
44 ST_daily_pickups 101-150 15 18.518518
45 ST_daily_pickups 151-200 6 7.407407
46 ST_daily_pickups 200+ 9 11.111111
47 ST_daily_pickups NA 26 32.098765
48 ST_daily_not 0-50 3 3.703704
49 ST_daily_not 51-100 12 14.814815
50 ST_daily_not 101-150 6 7.407407
51 ST_daily_not 151-200 9 11.111111
52 ST_daily_not 200+ 25 30.864197
53 ST_daily_not NA 26 32.098765
54 phone_value $0-$20 22 27.160494
55 phone_value $21-$40 23 28.395062
56 phone_value $41-$60 17 20.987654
57 phone_value >$60 19 23.456790
58 phantom yes 66 81.481482
59 phantom no 15 18.518518
60 dist_device Computer 3 3.703704
61 dist_device Phone 75 92.592593
62 dist_device iPad/Tablet 2 2.469136
63 dist_device Smartwatch 1 1.234568
64 dist_device_studywork Computer 5 6.172840
65 dist_device_studywork Phone 75 92.592593
66 dist_device_studywork Smartwatch 1 1.234568
67 dist_device_social Computer 1 1.234568
68 dist_device_social Phone 78 96.296296
69 dist_device_social iPad/Tablet 1 1.234568
70 dist_device_social Smartwatch 1 1.234568
71 loc_typical On my desk 28 34.567901
72 loc_typical In my pocket or bag 53 65.432099
73 loc_study On my desk 59 72.839506
74 loc_study In my pocket or bag 13 16.049383
75 loc_study In another room 9 11.111111
76 loc_exam In my pocket or bag 74 91.358025
77 loc_exam In another room 7 8.641975
78 loc_lec On my desk 33 40.740741
79 loc_lec In my pocket or bag 48 59.259259
80 loc_social On my desk 14 17.283951
81 loc_social In my pocket or bag 67 82.716049
82 communicate Family 13 16.049383
83 communicate Friends 68 83.950617
84 phone_use Calling/Texting 18 22.222222
85 phone_use Social Media 61 75.308642
86 phone_use Games 1 1.234568
87 phone_use Other 1 1.234568
Note:
There was no task completed during the pilot study.

Questionnaires (levels)


# output is a list of tibbles, each with: $xxx = var name, x = level(s), n = count, pct = percentage

## FOR PILOT DATA
pilot_nom_ques <- 
  pilot_sur_data %>% 
  # get subset of data with only nominal vars
  select(NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # divide sum scores into L>M>H
   # details provided for 1st instance... 
  mutate(NMPQ_sum = # name of var, this replaces existing b/c its the same
           cut(NMPQ_sum, # state var 
               breaks = seq(20, 140, 40), # this is providing a seq from 20 >> 140, with breaks of 40 (40 det by breaking up the range into 3: 140-20 = 120, 120/3 = 40)
               labels = c("low", "moderate", "high"))) %>% # state the new labels for the levels
  mutate(MPIQ_sum = cut(MPIQ_sum, breaks = seq(8, 56, 16), labels = c("low", "moderate", "high"))) %>% 
  mutate(MPIQ_SI_sum = cut(MPIQ_SI_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  mutate(MPIQ_VFO_sum = cut(MPIQ_VFO_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_sum = cut(SAD_sum, breaks = seq(13, 91, 26), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_dep_sum = cut(SAD_dep_sum, breaks = seq(5, 35, 10), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_ea_sum = cut(SAD_ea_sum, breaks = seq(4, 28, 8), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_dist_sum = cut(SAD_dist_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  # get freq & proportion for each var
  purrr::map(~ count(tibble(x = .x), x) %>% 
               mutate(pct = (n / sum(n) * 100)))

# make list into 1 long data frame to show as table...
pilot_nom_ques_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(pilot_nom_ques, bind_rows, .id = "tib")


## FOR MAIN DATA
main_nom_ques <- 
  main_all_data_final %>% 
  # get subset of data with only nominal vars
  select(NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # divide sum scores into L>M>H
   # details provided for 1st instance... 
  mutate(NMPQ_sum = # name of var, this replaces existing b/c its the same
           cut(NMPQ_sum, # state var 
               breaks = seq(20, 140, 40), # this is providing a seq from 20 >> 140, with breaks of 40 (40 det by breaking up the range into 3: 140-20 = 120, 120/3 = 40)
               labels = c("low", "moderate", "high"))) %>% # state the new labels for the levels
  mutate(MPIQ_sum = cut(MPIQ_sum, breaks = seq(8, 56, 16), labels = c("low", "moderate", "high"))) %>% 
  mutate(MPIQ_SI_sum = cut(MPIQ_SI_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  mutate(MPIQ_VFO_sum = cut(MPIQ_VFO_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_sum = cut(SAD_sum, breaks = seq(13, 91, 26), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_dep_sum = cut(SAD_dep_sum, breaks = seq(5, 35, 10), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_ea_sum = cut(SAD_ea_sum, breaks = seq(4, 28, 8), labels = c("low", "moderate", "high"))) %>% 
  mutate(SAD_dist_sum = cut(SAD_dist_sum, breaks = seq(3, 21, 6), labels = c("low", "moderate", "high"))) %>% 
  # get freq & proportion for each var
  purrr::map(~ count(tibble(x = .x), x) %>% 
               mutate(pct = (n / sum(n) * 100)))

# make list into 1 long data frame to show as table...
main_nom_ques_t <- 
  # this keeps the var name in the 1st column (using-- .id = "tib")
  map_dfr(main_nom_ques, bind_rows, .id = "tib")
kable(pilot_nom_ques_t, caption = "Frequency & percentage for nominal vars - ques - PILOT.", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - ques - PILOT.
Var level n %
1 NMPQ_sum low 16 13.114754
2 NMPQ_sum moderate 73 59.836066
3 NMPQ_sum high 33 27.049180
4 MPIQ_sum low 17 13.934426
5 MPIQ_sum moderate 72 59.016393
6 MPIQ_sum high 33 27.049180
7 MPIQ_SI_sum low 19 15.573771
8 MPIQ_SI_sum moderate 57 46.721311
9 MPIQ_SI_sum high 42 34.426229
10 MPIQ_SI_sum NA 4 3.278688
11 MPIQ_VFO_sum low 10 8.196721
12 MPIQ_VFO_sum moderate 78 63.934426
13 MPIQ_VFO_sum high 31 25.409836
14 MPIQ_VFO_sum NA 3 2.459016
15 SAD_sum low 12 9.836066
16 SAD_sum moderate 74 60.655738
17 SAD_sum high 36 29.508197
18 SAD_dep_sum low 22 18.032787
19 SAD_dep_sum moderate 63 51.639344
20 SAD_dep_sum high 37 30.327869
21 SAD_ea_sum low 19 15.573771
22 SAD_ea_sum moderate 69 56.557377
23 SAD_ea_sum high 34 27.868852
24 SAD_dist_sum low 3 2.459016
25 SAD_dist_sum moderate 61 50.000000
26 SAD_dist_sum high 58 47.540984
Note:
There was no task completed during the pilot study.

kable(main_nom_ques_t, caption = "Frequency & percentage for nominal vars - ques - MAIN - OVERALL", align = rep('crcc'), col.names = c("Var", "level" ,"n", "%"), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Frequency & percentage for nominal vars - ques - MAIN - OVERALL
Var level n %
1 NMPQ_sum low 38 15.2
2 NMPQ_sum moderate 147 58.8
3 NMPQ_sum high 65 26.0
4 MPIQ_sum low 49 19.6
5 MPIQ_sum moderate 160 64.0
6 MPIQ_sum high 41 16.4
7 MPIQ_SI_sum low 40 16.0
8 MPIQ_SI_sum moderate 140 56.0
9 MPIQ_SI_sum high 67 26.8
10 MPIQ_SI_sum NA 3 1.2
11 MPIQ_VFO_sum low 41 16.4
12 MPIQ_VFO_sum moderate 130 52.0
13 MPIQ_VFO_sum high 73 29.2
14 MPIQ_VFO_sum NA 6 2.4
15 SAD_sum low 29 11.6
16 SAD_sum moderate 145 58.0
17 SAD_sum high 76 30.4
18 SAD_dep_sum low 61 24.4
19 SAD_dep_sum moderate 109 43.6
20 SAD_dep_sum high 74 29.6
21 SAD_dep_sum NA 6 2.4
22 SAD_ea_sum low 45 18.0
23 SAD_ea_sum moderate 147 58.8
24 SAD_ea_sum high 56 22.4
25 SAD_ea_sum NA 2 0.8
26 SAD_dist_sum low 18 7.2
27 SAD_dist_sum moderate 110 44.0
28 SAD_dist_sum high 122 48.8
Note:
There was no task completed during the pilot study.

CONTINUOUS data (pilot & main)

Demographic & Typical Smartphone Use

## FOR PILOT
pilot_cont_demo <- 
  pilot_sur_data %>% 
  # select continuous vars
  select(age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task) %>% 
  # apply describe fn for: n  mean   sd median trimmed  mad min max range  skew kurtosis   se
  psych::describe()

## FOR MAIN -- OVERALL
main_cont_demo <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task) %>% 
  psych::describe()

## FOR MAIN -- DESK
main_cont_demo_desk <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task) %>% 
  # only desk condition
  filter(condition == "desk") %>% 
  psych::describe()

## FOR MAIN -- POCKET/BAG
main_cont_demo_pb <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task) %>% 
  # only pocket/bag condition
  filter(condition == "pocket/bag") %>% 
  psych::describe()

## FOR MAIN -- OUTSIDE
main_cont_demo_out <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task) %>% 
  # only outside condition
  filter(condition == "outside") %>% 
  psych::describe()
  
# show all with kable
## PILOT
kable(pilot_cont_demo, caption = "Descriptive statistics for continuous vars - demo - PILOT", align = rep('crcc'), row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - demo - PILOT
vars n mean sd median trimmed mad min max range skew kurtosis se
age 1 122 19.090164 1.488269 19 18.775510 1.4826 17 25 8 1.8609705 3.4123846 0.1347415
age_first_phone 2 120 12.941667 1.843890 13 12.937500 1.4826 9 18 9 0.0369901 -0.4600805 0.1683233
dist_daily 3 122 5.500000 1.560091 6 5.765306 1.4826 1 7 6 -1.3599747 1.4439088 0.1412440
dist_study 4 122 4.024590 2.074892 4 4.030612 2.9652 1 7 6 -0.0765562 -1.3657817 0.1878519
pow_not_using 5 122 2.688525 1.928824 2 2.418367 1.4826 1 7 6 0.9347415 -0.4592356 0.1746275
pow_notifications_on 6 122 4.754098 2.054270 6 4.938776 1.4826 1 7 6 -0.5895247 -1.1078307 0.1859848
pow_vibrate 7 122 5.147541 2.119068 6 5.428571 1.4826 1 7 6 -0.8742264 -0.7488319 0.1918514
pow_study 8 122 5.303279 1.650892 6 5.551020 1.4826 1 7 6 -1.0974979 0.4437636 0.1494647
pow_exam 9 122 2.672131 2.030522 2 2.408163 1.4826 1 7 6 0.9036955 -0.7282956 0.1838348
pow_lec 10 122 5.549180 1.554000 6 5.795918 1.4826 1 7 6 -1.1851904 0.5378671 0.1406926
pow_sleep 11 122 5.336066 1.856909 6 5.612245 1.4826 1 7 6 -1.0987358 -0.0765820 0.1681166
com_gen 12 122 3.795082 1.700455 4 3.806122 1.4826 1 7 6 0.0485743 -1.1976140 0.1539519
com_unattended 13 122 3.352459 1.661037 3 3.285714 1.4826 1 7 6 0.4447403 -0.8941459 0.1503832
com_leave_with_others 14 122 3.254098 1.603516 3 3.173469 1.4826 1 7 6 0.4449798 -0.8645136 0.1451755
com_locked 15 122 5.393443 1.561719 6 5.622449 1.4826 1 7 6 -1.1658448 0.8218282 0.1413914
com_room_task 16 122 4.557377 1.725114 5 4.612245 1.4826 1 7 6 -0.2351056 -1.0941452 0.1561845
Note:
There was no task completed during the pilot study.

## FOR MAIN -- OVERALL
kable(main_cont_demo, caption = "Descriptive statistics for continuous vars - demo - MAIN - OVERALL", align = rep('crcc'), row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - demo - MAIN - OVERALL
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 250 2.00000 0.8065993 2 2.0000 1.4826 1 3 2 0.0000000 -1.4691111 0.0510138
age 2 250 18.54800 1.1989353 18 18.3100 0.0000 17 27 10 2.8395686 12.0296924 0.0758273
age_first_phone 3 245 13.34286 1.6386720 13 13.3401 1.4826 8 19 11 0.0168875 0.5942425 0.1046909
dist_daily 4 250 5.73200 1.3985707 6 5.9950 1.4826 1 7 6 -1.4747812 2.0357326 0.0884534
dist_study 5 250 2.67200 1.9707744 2 2.4000 1.4826 1 7 6 0.9575951 -0.5374308 0.1246427
pow_not_using 6 250 2.58800 1.6605075 2 2.3400 1.4826 1 7 6 1.0178693 -0.0901602 0.1050197
pow_notifications_on 7 250 4.61200 1.9402356 5 4.7350 1.4826 1 7 6 -0.4727822 -1.1419706 0.1227113
pow_vibrate 8 250 4.94000 2.2513717 6 5.1750 1.4826 1 7 6 -0.7163907 -1.1090635 0.1423893
pow_study 9 250 5.20400 1.7058793 6 5.4350 1.4826 1 7 6 -1.0528088 0.0777604 0.1078893
pow_exam 10 250 2.19200 1.7502541 1 1.8350 0.0000 1 7 6 1.4076605 0.6698656 0.1106958
pow_lec 11 250 5.40000 1.6574040 6 5.6700 1.4826 1 7 6 -1.2746249 0.5718479 0.1048234
pow_sleep 12 250 5.11600 1.9342983 6 5.3650 1.4826 1 7 6 -0.9791634 -0.4415813 0.1223358
com_gen 13 250 4.41200 1.6797447 5 4.5500 1.4826 1 7 6 -0.5644958 -0.8372186 0.1062364
com_unattended 14 250 3.78000 1.8223292 4 3.8050 2.9652 1 7 6 0.0128333 -1.3274368 0.1152542
com_leave_with_other 15 250 3.68800 1.8319608 3 3.6850 2.9652 1 7 6 0.0961414 -1.3202143 0.1158634
com_locked 16 250 5.48000 1.4786296 6 5.7000 1.4826 1 7 6 -1.1897866 0.6872752 0.0935167
com_room_task 17 250 5.02800 1.7364553 6 5.2200 1.4826 1 7 6 -0.8174902 -0.4485778 0.1098231

## FOR MAIN -- DESK
kable(main_cont_demo_desk, caption = "Descriptive statistics for continuous vars - demo - MAIN - DESK", align = rep('crcc'), row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - demo - MAIN - DESK
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 1.000000 0.0000000 1 1.000000 0.0000 1 1 0 NA NA 0.0000000
age 2 81 18.555556 0.9354143 18 18.369231 0.0000 17 22 5 1.6055576 2.1779066 0.1039349
age_first_phone 3 78 13.269231 1.5763930 13 13.296875 1.4826 8 17 9 -0.3831433 0.6610870 0.1784914
dist_daily 4 81 5.716049 1.3344902 6 5.953846 1.4826 2 7 5 -1.2871828 1.1656755 0.1482767
dist_study 5 81 2.629630 1.9199248 2 2.369231 1.4826 1 7 6 0.9660318 -0.4975316 0.2133250
pow_not_using 6 81 2.679012 1.7876462 2 2.430769 1.4826 1 7 6 1.0002859 -0.1525799 0.1986274
pow_notifications_on 7 81 4.481482 2.0193508 5 4.600000 1.4826 1 7 6 -0.4636506 -1.2697297 0.2243723
pow_vibrate 8 81 4.691358 2.3486271 6 4.861538 1.4826 1 7 6 -0.5184292 -1.4449980 0.2609586
pow_study 9 81 5.024691 1.7318726 6 5.230769 1.4826 1 7 6 -0.9786502 -0.0800174 0.1924303
pow_exam 10 81 1.975309 1.6122601 1 1.600000 0.0000 1 7 6 1.7009446 1.6487608 0.1791400
pow_lec 11 81 5.271605 1.8097814 6 5.553846 1.4826 1 7 6 -1.2519906 0.3013311 0.2010868
pow_sleep 12 81 5.086420 2.0198857 6 5.338462 1.4826 1 7 6 -0.9433000 -0.6310964 0.2244317
com_gen 13 81 4.555556 1.6733201 5 4.723077 1.4826 1 7 6 -0.6962213 -0.7424578 0.1859245
com_unattended 14 81 4.074074 1.7376549 4 4.138462 2.9652 1 7 6 -0.1828572 -1.3356762 0.1930728
com_leave_with_other 15 81 4.074074 1.7591033 4 4.092308 2.9652 1 7 6 -0.0568024 -1.3506559 0.1954559
com_locked 16 81 5.320988 1.5233775 6 5.523077 0.0000 1 7 6 -1.1924180 0.4678592 0.1692642
com_room_task 17 81 5.296296 1.6389360 6 5.507692 1.4826 1 7 6 -1.0126976 0.0939113 0.1821040

## FOR MAIN -- POCKET/BAG
kable(main_cont_demo_pb, caption = "Descriptive statistics for continuous vars - demo - MAIN - POCKET/BAG", align = rep('crcc'), row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - demo - MAIN - POCKET/BAG
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 88 2.000000 0.000000 2 2.000000 0.0000 2 2 0 NA NA 0.0000000
age 2 88 18.465909 1.492886 18 18.180556 0.0000 17 27 10 3.2824525 13.0079226 0.1591422
age_first_phone 3 86 13.453488 1.726315 13 13.514286 1.4826 8 18 10 -0.2071338 0.4106327 0.1861534
dist_daily 4 88 5.772727 1.284096 6 5.972222 1.4826 1 7 6 -1.2835355 1.6889732 0.1368851
dist_study 5 88 2.522727 1.953348 2 2.250000 1.4826 1 7 6 1.1051872 -0.2887149 0.2082276
pow_not_using 6 88 2.556818 1.639021 2 2.333333 1.4826 1 7 6 0.9843280 -0.1840982 0.1747202
pow_notifications_on 7 88 4.727273 1.753337 5 4.833333 1.4826 1 7 6 -0.5468546 -0.9616783 0.1869063
pow_vibrate 8 88 5.147727 2.179000 6 5.402778 1.4826 1 7 6 -0.9054384 -0.7397691 0.2322822
pow_study 9 88 5.318182 1.664680 6 5.527778 1.4826 1 7 6 -1.0961064 0.0852784 0.1774555
pow_exam 10 88 2.409091 1.804441 2 2.138889 1.4826 1 7 6 1.0798764 -0.1858064 0.1923541
pow_lec 11 88 5.340909 1.618047 6 5.555556 1.4826 1 7 6 -1.1170995 0.1198756 0.1724844
pow_sleep 12 88 5.170454 1.782557 6 5.361111 1.4826 1 7 6 -0.9164575 -0.4314064 0.1900212
com_gen 13 88 4.318182 1.698853 5 4.458333 1.4826 1 7 6 -0.6084145 -0.7944414 0.1810984
com_unattended 14 88 3.522727 1.893590 3 3.472222 2.9652 1 7 6 0.1811358 -1.3032993 0.2018574
com_leave_with_other 15 88 3.250000 1.839853 3 3.152778 2.2239 1 7 6 0.4337992 -1.1321429 0.1961289
com_locked 16 88 5.443182 1.499869 6 5.625000 1.4826 1 7 6 -0.9930984 0.0935386 0.1598866
com_room_task 17 88 4.625000 1.827708 5 4.722222 1.4826 1 7 6 -0.4381419 -1.1151309 0.1948343

## FOR MAIN -- OUTSIDE
kable(main_cont_demo_out, caption = "Descriptive statistics for continuous vars - demo - MAIN - OUTSIDE", align = rep('crcc'), row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - demo - MAIN - OUTSIDE
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 3.000000 0.000000 3 3.000000 0.0000 3 3 0 NA NA 0.0000000
age 2 81 18.629630 1.077549 18 18.415385 0.0000 17 23 6 1.7694789 3.2973916 0.1197276
age_first_phone 3 81 13.296296 1.615893 13 13.215385 1.4826 10 19 9 0.6267939 0.6205712 0.1795437
dist_daily 4 81 5.703704 1.584649 6 6.030769 1.4826 1 7 6 -1.5988119 2.0646135 0.1760721
dist_study 5 81 2.876543 2.045622 2 2.630769 1.4826 1 7 6 0.7703602 -0.8727959 0.2272913
pow_not_using 6 81 2.530864 1.565938 2 2.323077 1.4826 1 6 5 0.9852882 -0.2937507 0.1739931
pow_notifications_on 7 81 4.617284 2.064993 5 4.753846 2.9652 1 7 6 -0.3712379 -1.3256232 0.2294437
pow_vibrate 8 81 4.962963 2.232960 6 5.200000 1.4826 1 7 6 -0.6993227 -1.1337036 0.2481067
pow_study 9 81 5.259259 1.730446 6 5.507692 1.4826 1 7 6 -1.0548289 0.0829485 0.1922718
pow_exam 10 81 2.172839 1.815146 1 1.800000 0.0000 1 7 6 1.4799452 0.8338342 0.2016828
pow_lec 11 81 5.592593 1.539300 6 5.876923 1.4826 1 7 6 -1.3601984 0.9958532 0.1710333
pow_sleep 12 81 5.086420 2.026065 6 5.353846 1.4826 1 7 6 -0.9978108 -0.4982323 0.2251183
com_gen 13 81 4.370370 1.676637 5 4.461538 1.4826 1 7 6 -0.3666912 -1.0615580 0.1862930
com_unattended 14 81 3.765432 1.804658 4 3.784615 2.9652 1 7 6 0.0575351 -1.3513295 0.2005175
com_leave_with_other 15 81 3.777778 1.816590 4 3.800000 2.9652 1 7 6 -0.0681896 -1.3492068 0.2018434
com_locked 16 81 5.679012 1.403809 6 5.923077 1.4826 1 7 6 -1.3812110 1.5595253 0.1559788
com_room_task 17 81 5.197531 1.668980 6 5.430769 1.4826 1 7 6 -1.0746587 0.1909720 0.1854422

Questionnaires

## FOR PILOT
pilot_cont_ques <- 
  pilot_sur_data %>% 
  # select continuous vars
  select(NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # apply describe fn for: n  mean   sd median trimmed  mad min max range  skew kurtosis   se
  psych::describe()

## FOR MAIN - overall
main_cont_ques <- 
  main_all_data_final %>% 
  select(condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  psych::describe()

## FOR MAIN -- DESK
main_cont_ques_desk <- 
  main_all_data_final %>% 
  select(condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # only desk condition
  filter(condition == "desk") %>% 
  psych::describe()

## FOR MAIN -- POCKET/BAG
main_cont_ques_pb <- 
  main_all_data_final %>% 
  select(condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # only pocket/bag condition
  filter(condition == "pocket/bag") %>% 
  psych::describe()

## FOR MAIN -- OUTSIDE
main_cont_ques_out <- 
  main_all_data_final %>% 
  select(condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  # only outside condition
  filter(condition == "outside") %>% 
  psych::describe()
# show all with kable
## PILOT
kable(pilot_cont_ques, caption = "Descriptive statistics for continuous vars - ques - PILOT", row.names = TRUE) %>% 
  footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - ques - PILOT
vars n mean sd median trimmed mad min max range skew kurtosis se
NMPQ_sum 1 122 87.03279 22.170986 85.5 87.27551 20.0151 30 140 110 -0.0869208 -0.1863144 2.0072668
MPIQ_sum 2 122 34.33607 9.438457 34.0 34.56122 8.8956 9 56 47 -0.2020979 -0.2370061 0.8545178
MPIQ_SI_sum 3 122 13.52459 4.533098 13.0 13.70408 4.4478 3 21 18 -0.2858652 -0.5536398 0.4104074
MPIQ_VFO_sum 4 122 13.49180 3.526162 14.0 13.75510 2.9652 3 21 18 -0.7957214 1.1647707 0.3192437
SAD_sum 5 122 58.52459 13.931481 56.0 58.43878 10.3782 21 91 70 0.1042368 -0.2226007 1.2612970
SAD_dep_sum 6 122 21.61475 6.777999 21.0 21.62245 7.4130 7 35 28 0.0647704 -0.7263248 0.6136512
SAD_ea_sum 7 122 17.51639 5.096156 17.0 17.62245 4.4478 6 28 22 -0.1213889 -0.4571027 0.4613843
SAD_dist_sum 8 122 15.06557 3.274590 15.0 15.07143 4.4478 6 21 15 -0.1067450 -0.7652502 0.2964674
Note:
There was no task completed during the pilot study.

## FOR MAIN -- OVERALL
kable(main_cont_ques, caption = "Descriptive statistics for continuous vars - ques - MAIN - OVERALL", row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - ques - MAIN - OVERALL
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 250 2.000 0.8065993 2.0 2.000 1.4826 1 3 2 0.0000000 -1.4691111 0.0510138
NMPQ_sum 2 250 83.740 21.7536499 86.5 84.430 24.4629 28 132 104 -0.2580520 -0.6962292 1.3758216
MPIQ_sum 3 250 32.400 8.5291845 33.0 32.715 8.8956 12 52 40 -0.3116000 -0.4828453 0.5394330
MPIQ_SI_sum 4 250 13.104 3.9348591 13.0 13.265 4.4478 3 21 18 -0.3148278 -0.1892256 0.2488623
MPIQ_VFO_sum 5 250 12.928 3.9386378 13.0 13.140 4.4478 3 21 18 -0.4622987 -0.1881025 0.2491013
SAD_sum 6 250 56.500 14.6463669 57.0 57.170 14.8260 18 91 73 -0.3398245 -0.2790964 0.9263176
SAD_dep_sum 7 250 20.632 7.3501479 21.0 20.830 8.8956 5 35 30 -0.2266530 -0.7380259 0.4648642
SAD_ea_sum 8 250 16.632 4.7786943 17.0 16.785 4.4478 4 28 24 -0.2227900 -0.3148668 0.3022312
SAD_dist_sum 9 250 15.072 3.4131237 15.0 15.330 4.4478 6 21 15 -0.6153429 -0.0674463 0.2158649

## FOR MAIN -- DESK
kable(main_cont_ques_desk, caption = "Descriptive statistics for continuous vars - ques - MAIN - DESK", row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - ques - MAIN - DESK
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 1.00000 0.000000 1 1.00000 0.0000 1 1 0 NA NA 0.0000000
NMPQ_sum 2 81 80.22222 22.562136 81 80.46154 23.7216 34 132 98 -0.0896353 -0.7488683 2.5069040
MPIQ_sum 3 81 31.20988 9.054993 32 31.38462 8.8956 12 49 37 -0.1571012 -0.6595328 1.0061104
MPIQ_SI_sum 4 81 12.61728 4.082180 13 12.72308 2.9652 3 21 18 -0.2856235 -0.2405000 0.4535756
MPIQ_VFO_sum 5 81 13.01235 3.909903 14 13.32308 2.9652 3 20 17 -0.6325051 -0.3670750 0.4344337
SAD_sum 6 81 54.48148 15.558045 56 55.12308 14.8260 19 91 72 -0.2671120 -0.3334489 1.7286717
SAD_dep_sum 7 81 19.02469 7.700609 19 19.00000 7.4130 5 35 30 0.0007731 -0.8776100 0.8556232
SAD_ea_sum 8 81 16.87654 4.856395 17 17.10769 4.4478 4 28 24 -0.3571088 0.1182345 0.5395994
SAD_dist_sum 9 81 14.72840 3.528500 15 15.01538 2.9652 6 21 15 -0.7303279 0.3856249 0.3920555

## FOR MAIN -- POCKET/BAG
kable(main_cont_ques_pb, caption = "Descriptive statistics for continuous vars - ques - MAIN - POCKET/BAG", row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - ques - MAIN - POCKET/BAG
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 88 2.00000 0.000000 2.0 2.00000 0.0000 2 2 0 NA NA 0.0000000
NMPQ_sum 2 88 84.45455 21.854224 85.5 85.36111 25.2042 28 122 94 -0.3682703 -0.6494107 2.3296681
MPIQ_sum 3 88 32.78409 8.533166 34.0 33.11111 8.8956 12 50 38 -0.3408465 -0.6313548 0.9096385
MPIQ_SI_sum 4 88 13.11364 4.009849 14.0 13.33333 4.4478 3 21 18 -0.3921624 -0.3632921 0.4274514
MPIQ_VFO_sum 5 88 12.73864 3.773758 13.0 12.90278 4.4478 3 20 17 -0.3624041 -0.5431421 0.4022839
SAD_sum 6 88 57.73864 14.304163 59.0 58.55556 14.8260 18 84 66 -0.5243068 -0.2738581 1.5248288
SAD_dep_sum 7 88 21.60227 7.314825 23.0 21.84722 7.4130 5 35 30 -0.3299735 -0.6092960 0.7797629
SAD_ea_sum 8 88 16.68182 4.649918 17.0 16.95833 4.4478 4 24 20 -0.4529639 -0.6092848 0.4956829
SAD_dist_sum 9 88 15.18182 3.347826 15.5 15.40278 3.7065 7 21 14 -0.5288974 -0.3944622 0.3568795

## FOR MAIN -- OUTSIDE
kable(main_cont_ques_out, caption = "Descriptive statistics for continuous vars - ques - MAIN - OUTSIDE", row.names = TRUE) %>% 
  # footnote(general = "There was no task completed during the pilot study.") %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - ques - MAIN - OUTSIDE
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 3.00000 0.000000 3 3.00000 0.0000 3 3 0 NA NA 0.0000000
NMPQ_sum 2 81 86.48148 20.585256 88 87.12308 23.7216 39 124 85 -0.2529793 -0.8275971 2.2872507
MPIQ_sum 3 81 33.17284 7.940073 34 33.53846 7.4130 14 52 38 -0.3879354 -0.1943091 0.8822303
MPIQ_SI_sum 4 81 13.58025 3.683966 14 13.63077 4.4478 4 21 17 -0.1582297 -0.2345959 0.4093295
MPIQ_VFO_sum 5 81 13.04938 4.177024 13 13.24615 4.4478 3 21 18 -0.4063565 0.0796604 0.4641138
SAD_sum 6 81 57.17284 14.030137 56 57.47692 14.8260 21 85 64 -0.1368060 -0.4460352 1.5589041
SAD_dep_sum 7 81 21.18519 6.833943 21 21.47692 7.4130 5 33 28 -0.3016055 -0.7479208 0.7593270
SAD_ea_sum 8 81 16.33333 4.881086 16 16.24615 4.4478 5 27 22 0.1365232 -0.4974017 0.5423429
SAD_dist_sum 9 81 15.29630 3.381732 16 15.53846 2.9652 7 21 14 -0.5360885 -0.5617450 0.3757480

Task Data


## FOR MAIN - overall
main_cont_task <- 
  main_all_data_final %>% 
  select(condition, `Score_Double Trouble`:`Score_Monkey Ladder`) %>% 
  psych::describe()

## FOR MAIN -- DESK
main_cont_task_desk <- 
  main_all_data_final %>% 
  select(condition, `Score_Double Trouble`:`Score_Monkey Ladder`) %>% 
  # only desk condition
  filter(condition == "desk") %>% 
  psych::describe()

## FOR MAIN -- POCKET/BAG
main_cont_task_pb <- 
  main_all_data_final %>% 
  select(condition, `Score_Double Trouble`:`Score_Monkey Ladder`) %>% 
  # only pocket/bag condition
  filter(condition == "pocket/bag") %>% 
  psych::describe()

## FOR MAIN -- OUTSIDE
main_cont_task_out <- 
  main_all_data_final %>% 
  select(condition, `Score_Double Trouble`:`Score_Monkey Ladder`) %>% 
  # only outside condition
  filter(condition == "outside") %>% 
  psych::describe()
## FOR MAIN -- OVERALL
kable(main_cont_task, caption = "Descriptive statistics for continuous vars - task - MAIN - OVERALL", row.names = TRUE) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - task - MAIN - OVERALL
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 250 2.000 0.8065993 2.0 2.000 1.4826 1 3 2 0.0000000 -1.4691111 0.0510138
Score_Double Trouble 2 250 24.988 14.6140390 28.0 25.565 14.8260 -5 59 64 -0.3813046 -0.8028999 0.9242730
Score_Odd One Out 3 250 10.036 3.3728636 10.0 10.190 2.9652 0 18 18 -0.4074954 -0.2794581 0.2133186
Score_Digit Span 4 250 6.852 1.4582875 7.0 6.765 1.4826 3 11 8 0.5042169 0.4182555 0.0922302
Score_Feature Match 5 250 126.404 27.6549447 123.5 126.595 30.3933 57 192 135 -0.0217546 -0.6029808 1.7490523
Score_Polygons 6 250 44.776 25.9994946 45.0 43.810 25.2042 -10 114 124 0.2786922 -0.2371108 1.6443524
Score_Paired Associates 7 250 4.908 1.0658707 5.0 4.895 1.4826 2 8 6 0.0636565 0.2408000 0.0674116
Score_Token Search 8 250 8.028 1.7364553 8.0 7.990 1.4826 3 13 10 0.0992587 0.0307941 0.1098231
Score_Spatial Planning 9 250 19.516 7.4463101 19.0 19.285 7.4130 2 41 39 0.2457500 -0.3425141 0.4709460
Score_Rotations 10 250 83.576 35.2958270 82.5 83.850 33.3585 -24 193 217 -0.0899655 0.2394381 2.2323041
Score_Spatial Span 11 250 5.996 1.0238050 6.0 5.955 1.4826 3 9 6 0.2763209 0.0515357 0.0647511
Score_Grammatical Reasoning 12 250 17.848 4.9366363 18.0 17.930 4.4478 2 32 30 -0.1141078 0.2550231 0.3122203
Score_Monkey Ladder 13 250 7.836 1.3053427 8.0 7.875 1.4826 4 11 7 -0.3329800 0.5888163 0.0825571

## FOR MAIN -- DESK
kable(main_cont_task_desk, caption = "Descriptive statistics for continuous vars - task - MAIN - DESK", row.names = TRUE) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - task - MAIN - DESK
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 1.000000 0.000000 1 1.000000 0.0000 1 1 0 NA NA 0.0000000
Score_Double Trouble 2 81 25.555556 14.713089 28 26.353846 13.3434 -3 51 54 -0.4705917 -0.7152504 1.6347877
Score_Odd One Out 3 81 9.888889 3.431472 10 10.092308 4.4478 0 15 15 -0.5649167 -0.4384963 0.3812747
Score_Digit Span 4 81 6.506173 1.324042 6 6.400000 1.4826 4 11 7 0.7527518 0.7179334 0.1471157
Score_Feature Match 5 81 127.901235 28.789584 123 128.553846 31.1346 61 182 121 -0.0812851 -0.7745411 3.1988426
Score_Polygons 6 81 42.172840 26.381239 42 41.338462 26.6868 -7 114 121 0.2589273 -0.2258585 2.9312487
Score_Paired Associates 7 81 4.975309 1.072093 5 4.923077 1.4826 2 7 5 0.1083276 -0.2270035 0.1191214
Score_Token Search 8 81 7.962963 1.600347 8 7.892308 1.4826 5 12 7 0.2944937 -0.2185377 0.1778164
Score_Spatial Planning 9 81 19.925926 7.998090 19 19.707692 7.4130 4 41 37 0.2661837 -0.4581190 0.8886767
Score_Rotations 10 81 83.172839 40.332614 82 86.215385 40.0302 -24 148 172 -0.5818064 -0.0731670 4.4814016
Score_Spatial Span 11 81 5.925926 1.009675 6 5.907692 1.4826 3 9 6 0.1458055 0.5508705 0.1121862
Score_Grammatical Reasoning 12 81 16.962963 5.374580 17 17.092308 4.4478 2 29 27 -0.2336508 -0.0529142 0.5971756
Score_Monkey Ladder 13 81 7.641975 1.344513 8 7.723077 1.4826 4 10 6 -0.5889818 0.3865006 0.1493904

## FOR MAIN -- POCKET/BAG
kable(main_cont_task_pb, caption = "Descriptive statistics for continuous vars - task - MAIN - POCKET/BAG", row.names = TRUE) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - task - MAIN - POCKET/BAG
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 88 2.000000 0.000000 2.0 2.000000 0.0000 2 2 0 NA NA 0.0000000
Score_Double Trouble 2 88 24.329545 15.136712 28.5 24.847222 14.8260 -5 49 54 -0.4315900 -1.1331416 1.6135789
Score_Odd One Out 3 88 10.170454 3.507698 11.0 10.347222 4.4478 1 18 17 -0.3977992 -0.2862740 0.3739219
Score_Digit Span 4 88 7.102273 1.462479 7.0 7.000000 1.4826 4 11 7 0.6096416 0.1265652 0.1559008
Score_Feature Match 5 88 127.329545 30.071838 130.5 127.638889 37.8063 57 192 135 -0.0529326 -0.8104027 3.2056687
Score_Polygons 6 88 46.272727 26.263356 44.5 45.541667 25.2042 -10 107 117 0.2430185 -0.3875870 2.7996831
Score_Paired Associates 7 88 4.829546 1.116456 5.0 4.861111 1.4826 2 8 6 -0.1070545 0.3284430 0.1190146
Score_Token Search 8 88 8.215909 1.865900 8.0 8.208333 1.4826 3 13 10 -0.0386249 0.1735310 0.1989056
Score_Spatial Planning 9 88 19.261364 7.171935 19.5 19.111111 8.1543 4 38 34 0.1688874 -0.3108005 0.7645308
Score_Rotations 10 88 84.363636 34.809888 80.5 82.597222 29.6520 10 193 183 0.5453289 0.3188544 3.7107466
Score_Spatial Span 11 88 6.125000 1.059305 6.0 6.055556 1.4826 4 9 5 0.3844884 -0.0965960 0.1129223
Score_Grammatical Reasoning 12 88 18.534091 4.801697 19.0 18.680556 4.4478 7 32 25 -0.1626292 0.1820232 0.5118626
Score_Monkey Ladder 13 88 8.068182 1.248406 8.0 8.041667 1.4826 5 11 6 0.1532408 0.1675400 0.1330805

## FOR MAIN -- OUTSIDE
kable(main_cont_task_out, caption = "Descriptive statistics for continuous vars - task - MAIN - OUTSIDE", row.names = TRUE) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Descriptive statistics for continuous vars - task - MAIN - OUTSIDE
vars n mean sd median trimmed mad min max range skew kurtosis se
condition* 1 81 3.000000 0.0000000 3 3.000000 0.0000 3 3 0 NA NA 0.0000000
Score_Double Trouble 2 81 25.135803 14.0807964 27 25.400000 13.3434 -3 59 62 -0.1836664 -0.6060065 1.5645329
Score_Odd One Out 3 81 10.037037 3.1954829 10 10.107692 2.9652 3 17 14 -0.2148214 -0.3251914 0.3550537
Score_Digit Span 4 81 6.925926 1.5311579 7 6.907692 1.4826 3 11 8 0.1640900 0.4050443 0.1701287
Score_Feature Match 5 81 123.901235 23.6345113 121 123.846154 29.6520 72 182 110 -0.0103606 -0.3323872 2.6260568
Score_Polygons 6 81 45.753086 25.4477557 46 44.476923 23.7216 -5 108 113 0.3495297 -0.2358320 2.8275284
Score_Paired Associates 7 81 4.925926 1.0096754 5 4.907692 1.4826 3 8 5 0.2897353 0.3080064 0.1121862
Score_Token Search 8 81 7.888889 1.7248188 8 7.861538 1.4826 4 12 8 0.0540000 -0.2334613 0.1916465
Score_Spatial Planning 9 81 19.382716 7.2397650 19 19.138461 7.4130 2 37 35 0.2488913 -0.4917800 0.8044183
Score_Rotations 10 81 83.123457 30.5288317 84 82.676923 34.0998 6 157 151 0.0383089 -0.3149771 3.3920924
Score_Spatial Span 11 81 5.925926 0.9972184 6 5.892308 1.4826 4 8 4 0.2205008 -0.6202187 0.1108020
Score_Grammatical Reasoning 12 81 17.987654 4.5345723 18 17.907692 4.4478 9 32 23 0.3225299 0.2428474 0.5038414
Score_Monkey Ladder 13 81 7.777778 1.3038405 8 7.830769 1.4826 4 11 7 -0.4592012 0.4953318 0.1448712

Pilot Study Analyses

Correlations

Get correlations b/w all cont vars

pilot_corr <- 
  pilot_sur_data %>% 
  select(age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum) %>% 
  as.matrix() %>% 
  rcorr(type = "pearson")

# create new pilot_corr to shown only lower triangle... 
pilot_corr2 <- pilot_corr
# round to 4 decimals... 
pilot_corr2$r <- round(pilot_corr2$r, 4)
pilot_corr2$P <- round(pilot_corr2$P, 4)
pilot_corr2$n <- round(pilot_corr2$n, 4)
# remove upper triangle form r, p, and n
pilot_corr2$r[upper.tri(pilot_corr2$r)] <- "-"
pilot_corr2$P[upper.tri(pilot_corr2$P)] <- "-"
pilot_corr2$n[upper.tri(pilot_corr2$n)] <- "-"

# show corr table with flattenCorr

kable(flattenCorrMatrix(pilot_corr$r, pilot_corr$P), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
row column cor p
age age_first_phone 0.1248959 0.1740915
age dist_daily -0.1050039 0.2497111
age_first_phone dist_daily -0.0016244 0.9859512
age dist_study -0.0863661 0.3442029
age_first_phone dist_study -0.1550098 0.0909308
dist_daily dist_study 0.5246638 0.0000000
age pow_not_using -0.2290923 0.0111421
age_first_phone pow_not_using 0.0587022 0.5242099
dist_daily pow_not_using -0.0576755 0.5280313
dist_study pow_not_using 0.0205149 0.8225353
age pow_notifications_on 0.0235310 0.7969716
age_first_phone pow_notifications_on -0.0499547 0.5879308
dist_daily pow_notifications_on 0.1934053 0.0328071
dist_study pow_notifications_on 0.1584835 0.0812421
pow_not_using pow_notifications_on 0.0201396 0.8257302
age pow_vibrate -0.0068735 0.9401035
age_first_phone pow_vibrate 0.1053979 0.2519253
dist_daily pow_vibrate 0.1524929 0.0935774
dist_study pow_vibrate -0.0139894 0.8784494
pow_not_using pow_vibrate -0.0958286 0.2937253
pow_notifications_on pow_vibrate 0.3900032 0.0000090
age pow_study 0.0560521 0.5397276
age_first_phone pow_study 0.0221158 0.8105166
dist_daily pow_study 0.2518928 0.0051280
dist_study pow_study -0.0335601 0.7136412
pow_not_using pow_study -0.2062700 0.0226407
pow_notifications_on pow_study 0.2512409 0.0052481
pow_vibrate pow_study 0.2871269 0.0013433
age pow_exam 0.1247248 0.1710618
age_first_phone pow_exam -0.1231801 0.1801291
dist_daily pow_exam 0.0130445 0.8866030
dist_study pow_exam 0.0509696 0.5771556
pow_not_using pow_exam -0.1043662 0.2526144
pow_notifications_on pow_exam 0.0340068 0.7099981
pow_vibrate pow_exam -0.0712552 0.4354322
pow_study pow_exam 0.2591909 0.0039413
age pow_lec -0.0537475 0.5565494
age_first_phone pow_lec 0.1656650 0.0705613
dist_daily pow_lec 0.1619225 0.0747722
dist_study pow_lec -0.0554851 0.5438428
pow_not_using pow_lec -0.2236961 0.0132551
pow_notifications_on pow_lec 0.2316380 0.0102523
pow_vibrate pow_lec 0.3441144 0.0001040
pow_study pow_lec 0.4274167 0.0000009
pow_exam pow_lec 0.2094440 0.0205959
age pow_sleep 0.0637073 0.4857185
age_first_phone pow_sleep 0.1413648 0.1235335
dist_daily pow_sleep 0.0385130 0.6736327
dist_study pow_sleep 0.0343025 0.7075907
pow_not_using pow_sleep -0.1735880 0.0558574
pow_notifications_on pow_sleep 0.2861608 0.0013968
pow_vibrate pow_sleep 0.2351292 0.0091337
pow_study pow_sleep 0.3169463 0.0003752
pow_exam pow_sleep 0.2530362 0.0049232
pow_lec pow_sleep 0.5655930 0.0000000
age com_gen 0.0334862 0.7142441
age_first_phone com_gen -0.0599383 0.5154963
dist_daily com_gen -0.0015576 0.9864145
dist_study com_gen -0.0594615 0.5153124
pow_not_using com_gen -0.0674962 0.4600966
pow_notifications_on com_gen 0.2527997 0.0049649
pow_vibrate com_gen 0.2630418 0.0034201
pow_study com_gen 0.0782561 0.3915646
pow_exam com_gen -0.0220128 0.8098145
pow_lec com_gen 0.1617845 0.0750236
pow_sleep com_gen 0.1162139 0.2024034
age com_unattended -0.0363635 0.6908924
age_first_phone com_unattended -0.0421182 0.6478472
dist_daily com_unattended -0.0430546 0.6377293
dist_study com_unattended 0.0286378 0.7541874
pow_not_using com_unattended 0.0732421 0.4227064
pow_notifications_on com_unattended -0.0034544 0.9698775
pow_vibrate com_unattended 0.0625866 0.4934407
pow_study com_unattended -0.1025933 0.2608077
pow_exam com_unattended 0.0590494 0.5182332
pow_lec com_unattended -0.0692045 0.4487930
pow_sleep com_unattended -0.0896296 0.3262094
com_gen com_unattended 0.3300833 0.0002048
age com_leave_with_others 0.0388033 0.6713149
age_first_phone com_leave_with_others -0.0625506 0.4973277
dist_daily com_leave_with_others -0.1470115 0.1061221
dist_study com_leave_with_others -0.0813805 0.3728743
pow_not_using com_leave_with_others 0.0658820 0.4709201
pow_notifications_on com_leave_with_others 0.1119546 0.2195547
pow_vibrate com_leave_with_others 0.1445355 0.1122039
pow_study com_leave_with_others -0.0543266 0.5522986
pow_exam com_leave_with_others 0.0384898 0.6738185
pow_lec com_leave_with_others 0.0563003 0.5379315
pow_sleep com_leave_with_others 0.0682287 0.4552303
com_gen com_leave_with_others 0.5132959 0.0000000
com_unattended com_leave_with_others 0.4904806 0.0000000
age com_locked -0.1362841 0.1344444
age_first_phone com_locked 0.1439653 0.1167090
dist_daily com_locked 0.1424660 0.1174927
dist_study com_locked 0.1423652 0.1177552
pow_not_using com_locked 0.2083779 0.0212642
pow_notifications_on com_locked -0.0314194 0.7311843
pow_vibrate com_locked -0.0176856 0.8466861
pow_study com_locked -0.0114031 0.9007936
pow_exam com_locked -0.0423824 0.6429927
pow_lec com_locked 0.0839054 0.3581759
pow_sleep com_locked -0.0174728 0.8485088
com_gen com_locked -0.1498887 0.0993826
com_unattended com_locked -0.0762005 0.4041617
com_leave_with_others com_locked -0.0996548 0.2747833
age com_room_task -0.0229549 0.8018390
age_first_phone com_room_task 0.0735384 0.4247411
dist_daily com_room_task 0.0399200 0.6624266
dist_study com_room_task -0.2001155 0.0271052
pow_not_using com_room_task -0.0020358 0.9822444
pow_notifications_on com_room_task -0.1312451 0.1495939
pow_vibrate com_room_task 0.1174847 0.1974780
pow_study com_room_task 0.1316784 0.1482430
pow_exam com_room_task 0.0266489 0.7707701
pow_lec com_room_task 0.1130024 0.2152430
pow_sleep com_room_task -0.0821768 0.3681993
com_gen com_room_task 0.3378902 0.0001411
com_unattended com_room_task 0.3577289 0.0000523
com_leave_with_others com_room_task 0.3517050 0.0000712
com_locked com_room_task -0.0268538 0.7690566
age NMPQ_sum -0.0759814 0.4055184
age_first_phone NMPQ_sum -0.2159165 0.0178604
dist_daily NMPQ_sum 0.4169415 0.0000018
dist_study NMPQ_sum 0.4568396 0.0000001
pow_not_using NMPQ_sum -0.0051704 0.9549261
pow_notifications_on NMPQ_sum 0.2054056 0.0232269
pow_vibrate NMPQ_sum -0.0335263 0.7139169
pow_study NMPQ_sum 0.1087842 0.2329732
pow_exam NMPQ_sum 0.2010757 0.0263629
pow_lec NMPQ_sum 0.0692757 0.4483258
pow_sleep NMPQ_sum -0.0135188 0.8825084
com_gen NMPQ_sum -0.1530496 0.0923720
com_unattended NMPQ_sum -0.1962300 0.0302940
com_leave_with_others NMPQ_sum -0.1359954 0.1352793
com_locked NMPQ_sum 0.1595439 0.0792010
com_room_task NMPQ_sum -0.2813839 0.0016913
age MPIQ_sum -0.1492613 0.1008227
age_first_phone MPIQ_sum -0.2358903 0.0094946
dist_daily MPIQ_sum 0.4363792 0.0000005
dist_study MPIQ_sum 0.4515425 0.0000002
pow_not_using MPIQ_sum 0.0471080 0.6063750
pow_notifications_on MPIQ_sum 0.2101722 0.0201499
pow_vibrate MPIQ_sum 0.0260118 0.7761039
pow_study MPIQ_sum 0.1541130 0.0901037
pow_exam MPIQ_sum 0.1278341 0.1605566
pow_lec MPIQ_sum 0.0870452 0.3404080
pow_sleep MPIQ_sum 0.0708361 0.4381445
com_gen MPIQ_sum -0.2109147 0.0197037
com_unattended MPIQ_sum -0.1457311 0.1092342
com_leave_with_others MPIQ_sum -0.0930585 0.3079670
com_locked MPIQ_sum 0.1770996 0.0510040
com_room_task MPIQ_sum -0.2562478 0.0043865
NMPQ_sum MPIQ_sum 0.7988664 0.0000000
age MPIQ_SI_sum -0.0817942 0.3704406
age_first_phone MPIQ_SI_sum -0.1638628 0.0737199
dist_daily MPIQ_SI_sum 0.3295480 0.0002101
dist_study MPIQ_SI_sum 0.3667785 0.0000325
pow_not_using MPIQ_SI_sum 0.0481436 0.5984753
pow_notifications_on MPIQ_SI_sum 0.2642384 0.0032713
pow_vibrate MPIQ_SI_sum 0.0082227 0.9283754
pow_study MPIQ_SI_sum 0.0889986 0.3296408
pow_exam MPIQ_SI_sum 0.1328696 0.1445758
pow_lec MPIQ_SI_sum 0.0631792 0.4893493
pow_sleep MPIQ_SI_sum 0.0613553 0.5019990
com_gen MPIQ_SI_sum -0.1028031 0.2598286
com_unattended MPIQ_SI_sum -0.1323226 0.1462510
com_leave_with_others MPIQ_SI_sum -0.1196793 0.1891771
com_locked MPIQ_SI_sum 0.2227614 0.0136547
com_room_task MPIQ_SI_sum -0.2437793 0.0068128
NMPQ_sum MPIQ_SI_sum 0.8045381 0.0000000
MPIQ_sum MPIQ_SI_sum 0.7912808 0.0000000
age MPIQ_VFO_sum -0.1911987 0.0348910
age_first_phone MPIQ_VFO_sum -0.0392036 0.6707477
dist_daily MPIQ_VFO_sum 0.0751160 0.4109035
dist_study MPIQ_VFO_sum 0.2615255 0.0036175
pow_not_using MPIQ_VFO_sum 0.1551571 0.0879199
pow_notifications_on MPIQ_VFO_sum 0.1377707 0.1302067
pow_vibrate MPIQ_VFO_sum -0.0175333 0.8479906
pow_study MPIQ_VFO_sum 0.0011404 0.9900534
pow_exam MPIQ_VFO_sum 0.2062346 0.0226645
pow_lec MPIQ_VFO_sum -0.0134997 0.8826736
pow_sleep MPIQ_VFO_sum 0.0540669 0.5542032
com_gen MPIQ_VFO_sum -0.0616173 0.5001714
com_unattended MPIQ_VFO_sum -0.1159118 0.2035871
com_leave_with_others MPIQ_VFO_sum -0.0193607 0.8323691
com_locked MPIQ_VFO_sum 0.2977398 0.0008664
com_room_task MPIQ_VFO_sum -0.1432553 0.1154532
NMPQ_sum MPIQ_VFO_sum 0.4091118 0.0000029
MPIQ_sum MPIQ_VFO_sum 0.4106803 0.0000026
MPIQ_SI_sum MPIQ_VFO_sum 0.4433675 0.0000003
age SAD_sum -0.1314461 0.1489660
age_first_phone SAD_sum -0.2106250 0.0209381
dist_daily SAD_sum 0.4836759 0.0000000
dist_study SAD_sum 0.4715794 0.0000000
pow_not_using SAD_sum -0.0403100 0.6593326
pow_notifications_on SAD_sum 0.1281404 0.1595482
pow_vibrate SAD_sum 0.0541854 0.5533340
pow_study SAD_sum 0.1216671 0.1818804
pow_exam SAD_sum 0.1709045 0.0598170
pow_lec SAD_sum 0.0621671 0.4963477
pow_sleep SAD_sum 0.0004766 0.9958432
com_gen SAD_sum -0.2047413 0.0236862
com_unattended SAD_sum -0.2191257 0.0153103
com_leave_with_others SAD_sum -0.2050498 0.0234720
com_locked SAD_sum 0.2483548 0.0058106
com_room_task SAD_sum -0.1958955 0.0305828
NMPQ_sum SAD_sum 0.8091196 0.0000000
MPIQ_sum SAD_sum 0.7974291 0.0000000
MPIQ_SI_sum SAD_sum 0.7832805 0.0000000
MPIQ_VFO_sum SAD_sum 0.4125993 0.0000023
age SAD_dep_sum -0.0243836 0.7897826
age_first_phone SAD_dep_sum -0.2161812 0.0177173
dist_daily SAD_dep_sum 0.4060212 0.0000035
dist_study SAD_dep_sum 0.4073320 0.0000032
pow_not_using SAD_dep_sum -0.0377010 0.6801332
pow_notifications_on SAD_dep_sum 0.1498367 0.0995011
pow_vibrate SAD_dep_sum 0.0126210 0.8902608
pow_study SAD_dep_sum 0.0873395 0.3387718
pow_exam SAD_dep_sum 0.1132464 0.2142474
pow_lec SAD_dep_sum 0.0594836 0.5151559
pow_sleep SAD_dep_sum 0.0451731 0.6212574
com_gen SAD_dep_sum -0.1481644 0.1033798
com_unattended SAD_dep_sum -0.1779624 0.0498665
com_leave_with_others SAD_dep_sum -0.1300713 0.1533008
com_locked SAD_dep_sum 0.1580949 0.0820007
com_room_task SAD_dep_sum -0.2232091 0.0134620
NMPQ_sum SAD_dep_sum 0.7973563 0.0000000
MPIQ_sum SAD_dep_sum 0.7457586 0.0000000
MPIQ_SI_sum SAD_dep_sum 0.8063058 0.0000000
MPIQ_VFO_sum SAD_dep_sum 0.3188569 0.0003442
SAD_sum SAD_dep_sum 0.9165849 0.0000000
age SAD_ea_sum -0.1859833 0.0402634
age_first_phone SAD_ea_sum -0.1506059 0.1006074
dist_daily SAD_ea_sum 0.3175654 0.0003649
dist_study SAD_ea_sum 0.3731687 0.0000230
pow_not_using SAD_ea_sum 0.0408809 0.6548151
pow_notifications_on SAD_ea_sum 0.1622217 0.0742295
pow_vibrate SAD_ea_sum 0.1260473 0.1665330
pow_study SAD_ea_sum 0.1531374 0.0921831
pow_exam SAD_ea_sum 0.2001898 0.0270472
pow_lec SAD_ea_sum 0.0630332 0.4903553
pow_sleep SAD_ea_sum -0.0202371 0.8249000
com_gen SAD_ea_sum -0.1707964 0.0599811
com_unattended SAD_ea_sum -0.2003459 0.0269255
com_leave_with_others SAD_ea_sum -0.1951975 0.0311929
com_locked SAD_ea_sum 0.2141339 0.0178662
com_room_task SAD_ea_sum -0.1683780 0.0637521
NMPQ_sum SAD_ea_sum 0.6817102 0.0000000
MPIQ_sum SAD_ea_sum 0.7032252 0.0000000
MPIQ_SI_sum SAD_ea_sum 0.6993791 0.0000000
MPIQ_VFO_sum SAD_ea_sum 0.5017657 0.0000000
SAD_sum SAD_ea_sum 0.8497567 0.0000000
SAD_dep_sum SAD_ea_sum 0.6733429 0.0000000
age SAD_dist_sum -0.1826745 0.0440185
age_first_phone SAD_dist_sum -0.1173076 0.2019552
dist_daily SAD_dist_sum 0.5548836 0.0000000
dist_study SAD_dist_sum 0.3780488 0.0000176
pow_not_using SAD_dist_sum -0.1001090 0.2725909
pow_notifications_on SAD_dist_sum -0.0393546 0.6669213
pow_vibrate SAD_dist_sum 0.0498074 0.5858807
pow_study SAD_dist_sum 0.0926027 0.3103525
pow_exam SAD_dist_sum 0.1300400 0.1534006
pow_lec SAD_dist_sum 0.0756926 0.4073107
pow_sleep SAD_dist_sum -0.0580201 0.5255650
com_gen SAD_dist_sum -0.2231654 0.0134807
com_unattended SAD_dist_sum -0.1790178 0.0485036
com_leave_with_others SAD_dist_sum -0.2597495 0.0038616
com_locked SAD_dist_sum 0.2664099 0.0030160
com_room_task SAD_dist_sum -0.0416351 0.6488660
NMPQ_sum SAD_dist_sum 0.4378903 0.0000005
MPIQ_sum SAD_dist_sum 0.5017203 0.0000000
MPIQ_SI_sum SAD_dist_sum 0.3317153 0.0001896
MPIQ_VFO_sum SAD_dist_sum 0.1768348 0.0513574
SAD_sum SAD_dist_sum 0.6872825 0.0000000
SAD_dep_sum SAD_dist_sum 0.4751545 0.0000000
SAD_ea_sum SAD_dist_sum 0.4406980 0.0000004

# print tables using kable
kable(as.data.frame(format(pilot_corr2$r, scientific = FALSE)), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_others com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum
age 1 - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.1249 1 - - - - - - - - - - - - - - - - - - - - - -
dist_daily -0.105 -0.0016 1 - - - - - - - - - - - - - - - - - - - - -
dist_study -0.0864 -0.155 0.5247 1 - - - - - - - - - - - - - - - - - - - -
pow_not_using -0.2291 0.0587 -0.0577 0.0205 1 - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.0235 -0.05 0.1934 0.1585 0.0201 1 - - - - - - - - - - - - - - - - - -
pow_vibrate -0.0069 0.1054 0.1525 -0.014 -0.0958 0.39 1 - - - - - - - - - - - - - - - - -
pow_study 0.0561 0.0221 0.2519 -0.0336 -0.2063 0.2512 0.2871 1 - - - - - - - - - - - - - - - -
pow_exam 0.1247 -0.1232 0.013 0.051 -0.1044 0.034 -0.0713 0.2592 1 - - - - - - - - - - - - - - -
pow_lec -0.0537 0.1657 0.1619 -0.0555 -0.2237 0.2316 0.3441 0.4274 0.2094 1 - - - - - - - - - - - - - -
pow_sleep 0.0637 0.1414 0.0385 0.0343 -0.1736 0.2862 0.2351 0.3169 0.253 0.5656 1 - - - - - - - - - - - - -
com_gen 0.0335 -0.0599 -0.0016 -0.0595 -0.0675 0.2528 0.263 0.0783 -0.022 0.1618 0.1162 1 - - - - - - - - - - - -
com_unattended -0.0364 -0.0421 -0.0431 0.0286 0.0732 -0.0035 0.0626 -0.1026 0.059 -0.0692 -0.0896 0.3301 1 - - - - - - - - - - -
com_leave_with_others 0.0388 -0.0626 -0.147 -0.0814 0.0659 0.112 0.1445 -0.0543 0.0385 0.0563 0.0682 0.5133 0.4905 1 - - - - - - - - - -
com_locked -0.1363 0.144 0.1425 0.1424 0.2084 -0.0314 -0.0177 -0.0114 -0.0424 0.0839 -0.0175 -0.1499 -0.0762 -0.0997 1 - - - - - - - - -
com_room_task -0.023 0.0735 0.0399 -0.2001 -0.002 -0.1312 0.1175 0.1317 0.0266 0.113 -0.0822 0.3379 0.3577 0.3517 -0.0269 1 - - - - - - - -
NMPQ_sum -0.076 -0.2159 0.4169 0.4568 -0.0052 0.2054 -0.0335 0.1088 0.2011 0.0693 -0.0135 -0.153 -0.1962 -0.136 0.1595 -0.2814 1 - - - - - - -
MPIQ_sum -0.1493 -0.2359 0.4364 0.4515 0.0471 0.2102 0.026 0.1541 0.1278 0.087 0.0708 -0.2109 -0.1457 -0.0931 0.1771 -0.2562 0.7989 1 - - - - - -
MPIQ_SI_sum -0.0818 -0.1639 0.3295 0.3668 0.0481 0.2642 0.0082 0.089 0.1329 0.0632 0.0614 -0.1028 -0.1323 -0.1197 0.2228 -0.2438 0.8045 0.7913 1 - - - - -
MPIQ_VFO_sum -0.1912 -0.0392 0.0751 0.2615 0.1552 0.1378 -0.0175 0.0011 0.2062 -0.0135 0.0541 -0.0616 -0.1159 -0.0194 0.2977 -0.1433 0.4091 0.4107 0.4434 1 - - - -
SAD_sum -0.1314 -0.2106 0.4837 0.4716 -0.0403 0.1281 0.0542 0.1217 0.1709 0.0622 5e-04 -0.2047 -0.2191 -0.205 0.2484 -0.1959 0.8091 0.7974 0.7833 0.4126 1 - - -
SAD_dep_sum -0.0244 -0.2162 0.406 0.4073 -0.0377 0.1498 0.0126 0.0873 0.1132 0.0595 0.0452 -0.1482 -0.178 -0.1301 0.1581 -0.2232 0.7974 0.7458 0.8063 0.3189 0.9166 1 - -
SAD_ea_sum -0.186 -0.1506 0.3176 0.3732 0.0409 0.1622 0.126 0.1531 0.2002 0.063 -0.0202 -0.1708 -0.2003 -0.1952 0.2141 -0.1684 0.6817 0.7032 0.6994 0.5018 0.8498 0.6733 1 -
SAD_dist_sum -0.1827 -0.1173 0.5549 0.378 -0.1001 -0.0394 0.0498 0.0926 0.13 0.0757 -0.058 -0.2232 -0.179 -0.2597 0.2664 -0.0416 0.4379 0.5017 0.3317 0.1768 0.6873 0.4752 0.4407 1
  

kable(as.data.frame(format(pilot_corr2$P, scientific = FALSE)), caption = "Pilot Study - Correlation: p values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: p values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_others com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum
age NA - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.1741 NA - - - - - - - - - - - - - - - - - - - - - -
dist_daily 0.2497 0.986 NA - - - - - - - - - - - - - - - - - - - - -
dist_study 0.3442 0.0909 0 NA - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.0111 0.5242 0.528 0.8225 NA - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.797 0.5879 0.0328 0.0812 0.8257 NA - - - - - - - - - - - - - - - - - -
pow_vibrate 0.9401 0.2519 0.0936 0.8784 0.2937 0 NA - - - - - - - - - - - - - - - - -
pow_study 0.5397 0.8105 0.0051 0.7136 0.0226 0.0052 0.0013 NA - - - - - - - - - - - - - - - -
pow_exam 0.1711 0.1801 0.8866 0.5772 0.2526 0.71 0.4354 0.0039 NA - - - - - - - - - - - - - - -
pow_lec 0.5565 0.0706 0.0748 0.5438 0.0133 0.0103 1e-04 0 0.0206 NA - - - - - - - - - - - - - -
pow_sleep 0.4857 0.1235 0.6736 0.7076 0.0559 0.0014 0.0091 4e-04 0.0049 0 NA - - - - - - - - - - - - -
com_gen 0.7142 0.5155 0.9864 0.5153 0.4601 0.005 0.0034 0.3916 0.8098 0.075 0.2024 NA - - - - - - - - - - - -
com_unattended 0.6909 0.6478 0.6377 0.7542 0.4227 0.9699 0.4934 0.2608 0.5182 0.4488 0.3262 2e-04 NA - - - - - - - - - - -
com_leave_with_others 0.6713 0.4973 0.1061 0.3729 0.4709 0.2196 0.1122 0.5523 0.6738 0.5379 0.4552 0 0 NA - - - - - - - - - -
com_locked 0.1344 0.1167 0.1175 0.1178 0.0213 0.7312 0.8467 0.9008 0.643 0.3582 0.8485 0.0994 0.4042 0.2748 NA - - - - - - - - -
com_room_task 0.8018 0.4247 0.6624 0.0271 0.9822 0.1496 0.1975 0.1482 0.7708 0.2152 0.3682 1e-04 1e-04 1e-04 0.7691 NA - - - - - - - -
NMPQ_sum 0.4055 0.0179 0 0 0.9549 0.0232 0.7139 0.233 0.0264 0.4483 0.8825 0.0924 0.0303 0.1353 0.0792 0.0017 NA - - - - - - -
MPIQ_sum 0.1008 0.0095 0 0 0.6064 0.0201 0.7761 0.0901 0.1606 0.3404 0.4381 0.0197 0.1092 0.308 0.051 0.0044 0 NA - - - - - -
MPIQ_SI_sum 0.3704 0.0737 2e-04 0 0.5985 0.0033 0.9284 0.3296 0.1446 0.4893 0.502 0.2598 0.1463 0.1892 0.0137 0.0068 0 0 NA - - - - -
MPIQ_VFO_sum 0.0349 0.6707 0.4109 0.0036 0.0879 0.1302 0.848 0.9901 0.0227 0.8827 0.5542 0.5002 0.2036 0.8324 9e-04 0.1155 0 0 0 NA - - - -
SAD_sum 0.149 0.0209 0 0 0.6593 0.1595 0.5533 0.1819 0.0598 0.4963 0.9958 0.0237 0.0153 0.0235 0.0058 0.0306 0 0 0 0 NA - - -
SAD_dep_sum 0.7898 0.0177 0 0 0.6801 0.0995 0.8903 0.3388 0.2142 0.5152 0.6213 0.1034 0.0499 0.1533 0.082 0.0135 0 0 0 3e-04 0 NA - -
SAD_ea_sum 0.0403 0.1006 4e-04 0 0.6548 0.0742 0.1665 0.0922 0.027 0.4904 0.8249 0.06 0.0269 0.0312 0.0179 0.0638 0 0 0 0 0 0 NA -
SAD_dist_sum 0.044 0.202 0 0 0.2726 0.6669 0.5859 0.3104 0.1534 0.4073 0.5256 0.0135 0.0485 0.0039 0.003 0.6489 0 0 2e-04 0.0514 0 0 0 NA

kable(as.data.frame(format(pilot_corr2$n, scientific = FALSE)), caption = "Pilot Study - Correlation: n values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: n values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_others com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum
age 122 - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 120 120 - - - - - - - - - - - - - - - - - - - - - -
dist_daily 122 120 122 - - - - - - - - - - - - - - - - - - - - -
dist_study 122 120 122 122 - - - - - - - - - - - - - - - - - - - -
pow_not_using 122 120 122 122 122 - - - - - - - - - - - - - - - - - - -
pow_notifications_on 122 120 122 122 122 122 - - - - - - - - - - - - - - - - - -
pow_vibrate 122 120 122 122 122 122 122 - - - - - - - - - - - - - - - - -
pow_study 122 120 122 122 122 122 122 122 - - - - - - - - - - - - - - - -
pow_exam 122 120 122 122 122 122 122 122 122 - - - - - - - - - - - - - - -
pow_lec 122 120 122 122 122 122 122 122 122 122 - - - - - - - - - - - - - -
pow_sleep 122 120 122 122 122 122 122 122 122 122 122 - - - - - - - - - - - - -
com_gen 122 120 122 122 122 122 122 122 122 122 122 122 - - - - - - - - - - - -
com_unattended 122 120 122 122 122 122 122 122 122 122 122 122 122 - - - - - - - - - - -
com_leave_with_others 122 120 122 122 122 122 122 122 122 122 122 122 122 122 - - - - - - - - - -
com_locked 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - - - - - - -
com_room_task 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - - - - - -
NMPQ_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - - - - -
MPIQ_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - - - -
MPIQ_SI_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - - -
MPIQ_VFO_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - - -
SAD_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - - -
SAD_dep_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 - -
SAD_ea_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 -
SAD_dist_sum 122 120 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122 122

# print corr matrix 
# chart.Correlation(pilot_all_data_final %>% select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum, `Score_Double Trouble`:`Score_Monkey Ladder`, CBS_overall, CBS_STM, CBS_reason, CBS_verbal, CBS_ts_memory, CBS_ts_reason, CBS_ts_verbalab, CBS_ts_con) %>% select(-condition), histogram=F, pch=19)
# library(corrr)

#gives corr matrix
# I like corrplot more... 
# pilot_corr$r %>% rplot(shape = 15, colours = (colorRampPalette(c("purple", "grey", "blue"))(50)), print_cor = F) + theme(axis.text.x = element_text(angle = 60, hjust = 1))

# give hist of each var
  # as.tibble(pilot_corr$r) %>%
  #   select(age:CBS_ts_con) %>% 
  #   gather() %>% 
  #   ggplot(aes(value)) +
  #     geom_histogram() +
  #     facet_wrap(~key)

corrplot(pilot_corr$r, method = "circle", col = (colorRampPalette(c("purple", "grey", "blue"))(50)),  
         type = "upper",
         # addCoef.col = "black", # Add coefficient of correlation
         tl.col = "darkblue", tl.srt = 90, tl.cex = .8, #Text label color and rotation & size
         # add corr numbers -- edit size
         # addCoef.col = "black", cl.cex = .01, cl.length = 2, 
         # grid colour
         addgrid.col = "white",
         # addCoefasPercent = T,
         # Combine with significance level
         p.mat = pilot_corr$P, sig.level = 0.05, 
         insig = "blank",
         # insig = "pch", pch = 10, pch.col = "red", pch.cex = .1, # add this instead of insig above to denot insig p values with red dot
         # hide correlation coefficient on the principal diagonal
         diag = FALSE, 
         win.asp = 1
         )

Main Study Analysis

Correlations

Get Correlations b/w all cont vars

Across conditions…

main_corr <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum, `Score_Double Trouble`:`Score_Monkey Ladder`, CBS_overall, CBS_STM, CBS_reason, CBS_verbal, CBS_ts_memory, CBS_ts_reason, CBS_ts_verbalab, CBS_ts_con) %>% 
  select(-condition) %>% 
  as.matrix() %>% 
  rcorr(type = "pearson")

# create new main_corr to shown only lower triangle... 
main_corr2 <- main_corr
# round to 4 decimals... 
main_corr2$r <- round(main_corr2$r, 4)
main_corr2$P <- round(main_corr2$P, 4)
main_corr2$n <- round(main_corr2$n, 4)
# remove upper triangle form r, p, and n
main_corr2$r[upper.tri(main_corr2$r)] <- "-"
main_corr2$P[upper.tri(main_corr2$P)] <- "-"
main_corr2$n[upper.tri(main_corr2$n)] <- "-"

# show corr table with flattenCorr

kable(flattenCorrMatrix(main_corr$r, main_corr$P), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
row column cor p
age age_first_phone 0.2709593 0.0000171
age dist_daily -0.1851016 0.0033090
age_first_phone dist_daily -0.1238587 0.0528381
age dist_study -0.0324028 0.6101222
age_first_phone dist_study 0.0074254 0.9079434
dist_daily dist_study 0.1632264 0.0097305
age pow_not_using -0.1100542 0.0824458
age_first_phone pow_not_using 0.0364595 0.5700677
dist_daily pow_not_using -0.0511948 0.4202816
dist_study pow_not_using -0.0390060 0.5392934
age pow_notifications_on -0.0428916 0.4996203
age_first_phone pow_notifications_on -0.0159644 0.8036547
dist_daily pow_notifications_on 0.1406059 0.0262098
dist_study pow_notifications_on 0.0464060 0.4651090
pow_not_using pow_notifications_on -0.1046643 0.0987116
age pow_vibrate 0.0851345 0.1796655
age_first_phone pow_vibrate 0.0387054 0.5465337
dist_daily pow_vibrate -0.0931346 0.1419956
dist_study pow_vibrate 0.0109341 0.8634201
pow_not_using pow_vibrate -0.0646494 0.3086114
pow_notifications_on pow_vibrate 0.1711717 0.0066687
age pow_study 0.0138474 0.8275381
age_first_phone pow_study -0.0598611 0.3508100
dist_daily pow_study 0.3159062 0.0000003
dist_study pow_study 0.0522366 0.4108744
pow_not_using pow_study -0.5047158 0.0000000
pow_notifications_on pow_study 0.2254320 0.0003270
pow_vibrate pow_study -0.0114399 0.8571681
age pow_exam 0.0242980 0.7022267
age_first_phone pow_exam -0.0390019 0.5434626
dist_daily pow_exam 0.0867312 0.1716113
dist_study pow_exam 0.0066877 0.9162067
pow_not_using pow_exam -0.2918784 0.0000027
pow_notifications_on pow_exam 0.0882518 0.1641932
pow_vibrate pow_exam -0.0103141 0.8710949
pow_study pow_exam 0.3378973 0.0000000
age pow_lec 0.1014566 0.1095405
age_first_phone pow_lec -0.0940652 0.1420825
dist_daily pow_lec 0.1833047 0.0036321
dist_study pow_lec -0.0186887 0.7687281
pow_not_using pow_lec -0.4316479 0.0000000
pow_notifications_on pow_lec 0.1733434 0.0059979
pow_vibrate pow_lec 0.1108568 0.0802199
pow_study pow_lec 0.5420413 0.0000000
pow_exam pow_lec 0.2904535 0.0000030
age pow_sleep 0.0781151 0.2183977
age_first_phone pow_sleep -0.0916610 0.1526031
dist_daily pow_sleep 0.0575587 0.3647910
dist_study pow_sleep -0.0721531 0.2557035
pow_not_using pow_sleep -0.4051829 0.0000000
pow_notifications_on pow_sleep 0.0387931 0.5415114
pow_vibrate pow_sleep 0.1187254 0.0608698
pow_study pow_sleep 0.5429321 0.0000000
pow_exam pow_sleep 0.2923299 0.0000026
pow_lec pow_sleep 0.5404169 0.0000000
age com_gen -0.0048737 0.9388821
age_first_phone com_gen 0.1026236 0.1090822
dist_daily com_gen -0.0844432 0.1832379
dist_study com_gen -0.1422025 0.0245385
pow_not_using com_gen 0.0020676 0.9740509
pow_notifications_on com_gen 0.0221363 0.7276186
pow_vibrate com_gen 0.0278022 0.6617679
pow_study com_gen -0.0084261 0.8945386
pow_exam com_gen 0.0126001 0.8428610
pow_lec com_gen 0.0732812 0.2483264
pow_sleep com_gen 0.1224326 0.0531860
age com_unattended 0.1289270 0.0416694
age_first_phone com_unattended 0.1289266 0.0437871
dist_daily com_unattended -0.0484388 0.4457653
dist_study com_unattended 0.0044282 0.9444593
pow_not_using com_unattended 0.1384790 0.0285874
pow_notifications_on com_unattended -0.0469559 0.4598314
pow_vibrate com_unattended -0.0012725 0.9840276
pow_study com_unattended -0.1276129 0.0438131
pow_exam com_unattended 0.0334427 0.5986992
pow_lec com_unattended -0.0585057 0.3569410
pow_sleep com_unattended -0.0702057 0.2687911
com_gen com_unattended 0.4128308 0.0000000
age com_leave_with_other 0.0233021 0.7138865
age_first_phone com_leave_with_other 0.0282941 0.6594333
dist_daily com_leave_with_other 0.0001505 0.9981111
dist_study com_leave_with_other -0.0217846 0.7317800
pow_not_using com_leave_with_other 0.0803534 0.2054488
pow_notifications_on com_leave_with_other -0.0353244 0.5782779
pow_vibrate com_leave_with_other 0.0032328 0.9594382
pow_study com_leave_with_other -0.0438064 0.4905086
pow_exam com_leave_with_other 0.0575857 0.3645659
pow_lec com_leave_with_other 0.0121687 0.8481756
pow_sleep com_leave_with_other -0.0486793 0.4435070
com_gen com_leave_with_other 0.5548417 0.0000000
com_unattended com_leave_with_other 0.6265590 0.0000000
age com_locked -0.0719492 0.2570525
age_first_phone com_locked -0.0382747 0.5510096
dist_daily com_locked 0.1498473 0.0177486
dist_study com_locked 0.0638922 0.3143242
pow_not_using com_locked 0.0023554 0.9704408
pow_notifications_on com_locked 0.0133827 0.8332396
pow_vibrate com_locked 0.0026541 0.9666942
pow_study com_locked 0.0788449 0.2141131
pow_exam com_locked -0.0140284 0.8253198
pow_lec com_locked 0.0163875 0.7965396
pow_sleep com_locked 0.0422373 0.5061916
com_gen com_locked -0.3257195 0.0000001
com_unattended com_locked -0.3302815 0.0000001
com_leave_with_other com_locked -0.3195901 0.0000002
age com_room_task 0.1662138 0.0084574
age_first_phone com_room_task 0.0626666 0.3286526
dist_daily com_room_task -0.0944651 0.1363634
dist_study com_room_task -0.1076189 0.0895057
pow_not_using com_room_task 0.0276949 0.6629934
pow_notifications_on com_room_task 0.0008535 0.9892870
pow_vibrate com_room_task 0.0024860 0.9688023
pow_study com_room_task -0.0019361 0.9757016
pow_exam com_room_task 0.0457946 0.4710166
pow_lec com_room_task 0.1705218 0.0068821
pow_sleep com_room_task 0.0767481 0.2265875
com_gen com_room_task 0.4049603 0.0000000
com_unattended com_room_task 0.4461542 0.0000000
com_leave_with_other com_room_task 0.3777106 0.0000000
com_locked com_room_task -0.1225666 0.0529241
age NMPQ_sum -0.1968488 0.0017629
age_first_phone NMPQ_sum -0.1247646 0.0511148
dist_daily NMPQ_sum 0.4120582 0.0000000
dist_study NMPQ_sum 0.2011876 0.0013844
pow_not_using NMPQ_sum -0.1247198 0.0488604
pow_notifications_on NMPQ_sum 0.1687772 0.0074854
pow_vibrate NMPQ_sum -0.1236499 0.0508458
pow_study NMPQ_sum 0.2268639 0.0002988
pow_exam NMPQ_sum 0.0365465 0.5651920
pow_lec NMPQ_sum 0.0874399 0.1681233
pow_sleep NMPQ_sum 0.0640939 0.3127955
com_gen NMPQ_sum -0.2428087 0.0001053
com_unattended NMPQ_sum -0.2482338 0.0000726
com_leave_with_other NMPQ_sum -0.1626789 0.0099814
com_locked NMPQ_sum 0.2228928 0.0003832
com_room_task NMPQ_sum -0.2903723 0.0000030
age MPIQ_sum -0.1468036 0.0202259
age_first_phone MPIQ_sum -0.1946368 0.0022112
dist_daily MPIQ_sum 0.4945058 0.0000000
dist_study MPIQ_sum 0.2491479 0.0000682
pow_not_using MPIQ_sum -0.1661123 0.0084981
pow_notifications_on MPIQ_sum 0.1603647 0.0111063
pow_vibrate MPIQ_sum -0.1731714 0.0060487
pow_study MPIQ_sum 0.3073789 0.0000007
pow_exam MPIQ_sum 0.1167029 0.0654332
pow_lec MPIQ_sum 0.2429019 0.0001046
pow_sleep MPIQ_sum 0.1283837 0.0425448
com_gen MPIQ_sum -0.2279540 0.0002789
com_unattended MPIQ_sum -0.1454704 0.0214021
com_leave_with_other MPIQ_sum -0.1007028 0.1122160
com_locked MPIQ_sum 0.1633620 0.0096692
com_room_task MPIQ_sum -0.2263664 0.0003084
NMPQ_sum MPIQ_sum 0.7428839 0.0000000
age MPIQ_SI_sum -0.0785295 0.2159575
age_first_phone MPIQ_SI_sum -0.2330582 0.0002332
dist_daily MPIQ_SI_sum 0.2619647 0.0000273
dist_study MPIQ_SI_sum 0.1675508 0.0079373
pow_not_using MPIQ_SI_sum -0.1765827 0.0051093
pow_notifications_on MPIQ_SI_sum 0.2172999 0.0005401
pow_vibrate MPIQ_SI_sum -0.0740939 0.2431047
pow_study MPIQ_SI_sum 0.2289692 0.0002614
pow_exam MPIQ_SI_sum 0.0320772 0.6137183
pow_lec MPIQ_SI_sum 0.2128221 0.0007065
pow_sleep MPIQ_SI_sum 0.1408748 0.0259217
com_gen MPIQ_SI_sum -0.3206455 0.0000002
com_unattended MPIQ_SI_sum -0.3188384 0.0000003
com_leave_with_other MPIQ_SI_sum -0.2606737 0.0000300
com_locked MPIQ_SI_sum 0.1874191 0.0029307
com_room_task MPIQ_SI_sum -0.2766801 0.0000090
NMPQ_sum MPIQ_SI_sum 0.7152065 0.0000000
MPIQ_sum MPIQ_SI_sum 0.6466170 0.0000000
age MPIQ_VFO_sum -0.0179755 0.7773175
age_first_phone MPIQ_VFO_sum 0.0242991 0.7050951
dist_daily MPIQ_VFO_sum 0.1926032 0.0022226
dist_study MPIQ_VFO_sum 0.1397449 0.0271511
pow_not_using MPIQ_VFO_sum -0.1181558 0.0621276
pow_notifications_on MPIQ_VFO_sum 0.1487343 0.0186220
pow_vibrate MPIQ_VFO_sum -0.0335512 0.5975121
pow_study MPIQ_VFO_sum 0.1050047 0.0976140
pow_exam MPIQ_VFO_sum 0.0247339 0.6971453
pow_lec MPIQ_VFO_sum 0.1588483 0.0119028
pow_sleep MPIQ_VFO_sum 0.0401095 0.5278687
com_gen MPIQ_VFO_sum -0.1017288 0.1085867
com_unattended MPIQ_VFO_sum -0.1499332 0.0176827
com_leave_with_other MPIQ_VFO_sum -0.0281726 0.6575467
com_locked MPIQ_VFO_sum 0.0928473 0.1432345
com_room_task MPIQ_VFO_sum -0.1347616 0.0331870
NMPQ_sum MPIQ_VFO_sum 0.4441833 0.0000000
MPIQ_sum MPIQ_VFO_sum 0.4275323 0.0000000
MPIQ_SI_sum MPIQ_VFO_sum 0.3666423 0.0000000
age SAD_sum -0.1467140 0.0203031
age_first_phone SAD_sum -0.2011748 0.0015497
dist_daily SAD_sum 0.4275062 0.0000000
dist_study SAD_sum 0.1679350 0.0077932
pow_not_using SAD_sum -0.2147535 0.0006297
pow_notifications_on SAD_sum 0.2280265 0.0002776
pow_vibrate SAD_sum -0.1009058 0.1114905
pow_study SAD_sum 0.2701226 0.0000149
pow_exam SAD_sum 0.0231863 0.7152463
pow_lec SAD_sum 0.1801649 0.0042658
pow_sleep SAD_sum 0.0735015 0.2469036
com_gen SAD_sum -0.2736724 0.0000114
com_unattended SAD_sum -0.3241831 0.0000002
com_leave_with_other SAD_sum -0.2361900 0.0001637
com_locked SAD_sum 0.2238302 0.0003615
com_room_task SAD_sum -0.3127390 0.0000004
NMPQ_sum SAD_sum 0.8122520 0.0000000
MPIQ_sum SAD_sum 0.7884465 0.0000000
MPIQ_SI_sum SAD_sum 0.7654937 0.0000000
MPIQ_VFO_sum SAD_sum 0.5240185 0.0000000
age SAD_dep_sum -0.1502017 0.0174781
age_first_phone SAD_dep_sum -0.2061094 0.0011764
dist_daily SAD_dep_sum 0.3650286 0.0000000
dist_study SAD_dep_sum 0.1333073 0.0351505
pow_not_using SAD_dep_sum -0.2122066 0.0007328
pow_notifications_on SAD_dep_sum 0.2132654 0.0006882
pow_vibrate SAD_dep_sum -0.0916215 0.1486145
pow_study SAD_dep_sum 0.2587277 0.0000346
pow_exam SAD_dep_sum 0.0417271 0.5113464
pow_lec SAD_dep_sum 0.1505921 0.0171842
pow_sleep SAD_dep_sum 0.0792830 0.2115701
com_gen SAD_dep_sum -0.2540772 0.0000482
com_unattended SAD_dep_sum -0.3235905 0.0000002
com_leave_with_other SAD_dep_sum -0.2113748 0.0007697
com_locked SAD_dep_sum 0.2188186 0.0004925
com_room_task SAD_dep_sum -0.3129050 0.0000004
NMPQ_sum SAD_dep_sum 0.7832841 0.0000000
MPIQ_sum SAD_dep_sum 0.6912748 0.0000000
MPIQ_SI_sum SAD_dep_sum 0.7694990 0.0000000
MPIQ_VFO_sum SAD_dep_sum 0.4436986 0.0000000
SAD_sum SAD_dep_sum 0.9280155 0.0000000
age SAD_ea_sum -0.0852260 0.1791965
age_first_phone SAD_ea_sum -0.1371806 0.0318417
dist_daily SAD_ea_sum 0.3301044 0.0000001
dist_study SAD_ea_sum 0.1402226 0.0266253
pow_not_using SAD_ea_sum -0.1689943 0.0074078
pow_notifications_on SAD_ea_sum 0.1712254 0.0066514
pow_vibrate SAD_ea_sum -0.0457353 0.4715923
pow_study SAD_ea_sum 0.2471986 0.0000780
pow_exam SAD_ea_sum 0.0329700 0.6038789
pow_lec SAD_ea_sum 0.1428907 0.0238470
pow_sleep SAD_ea_sum 0.1036978 0.1018811
com_gen SAD_ea_sum -0.2246918 0.0003426
com_unattended SAD_ea_sum -0.2523727 0.0000544
com_leave_with_other SAD_ea_sum -0.1682251 0.0076859
com_locked SAD_ea_sum 0.1541195 0.0147189
com_room_task SAD_ea_sum -0.2649425 0.0000219
NMPQ_sum SAD_ea_sum 0.6451368 0.0000000
MPIQ_sum SAD_ea_sum 0.6705993 0.0000000
MPIQ_SI_sum SAD_ea_sum 0.5985747 0.0000000
MPIQ_VFO_sum SAD_ea_sum 0.5303193 0.0000000
SAD_sum SAD_ea_sum 0.8298887 0.0000000
SAD_dep_sum SAD_ea_sum 0.6467192 0.0000000
age SAD_dist_sum -0.1117479 0.0778057
age_first_phone SAD_dist_sum -0.1871925 0.0032707
dist_daily SAD_dist_sum 0.4718357 0.0000000
dist_study SAD_dist_sum 0.1617436 0.0104233
pow_not_using SAD_dist_sum -0.1832354 0.0036451
pow_notifications_on SAD_dist_sum 0.1770734 0.0049855
pow_vibrate SAD_dist_sum -0.1280046 0.0431646
pow_study SAD_dist_sum 0.2395742 0.0001308
pow_exam SAD_dist_sum 0.0003657 0.9954094
pow_lec SAD_dist_sum 0.2128393 0.0007058
pow_sleep SAD_dist_sum 0.0449614 0.4791329
com_gen SAD_dist_sum -0.2181455 0.0005131
com_unattended SAD_dist_sum -0.2053542 0.0010926
com_leave_with_other SAD_dist_sum -0.2321140 0.0002136
com_locked SAD_dist_sum 0.1761523 0.0052201
com_room_task SAD_dist_sum -0.1961732 0.0018297
NMPQ_sum SAD_dist_sum 0.5853440 0.0000000
MPIQ_sum SAD_dist_sum 0.6806481 0.0000000
MPIQ_SI_sum SAD_dist_sum 0.5119831 0.0000000
MPIQ_VFO_sum SAD_dist_sum 0.3475304 0.0000000
SAD_sum SAD_dist_sum 0.7569406 0.0000000
SAD_dep_sum SAD_dist_sum 0.5791299 0.0000000
SAD_ea_sum SAD_dist_sum 0.5241292 0.0000000
age Score_Double Trouble -0.0576135 0.3643343
age_first_phone Score_Double Trouble -0.0557279 0.3851240
dist_daily Score_Double Trouble -0.0940814 0.1379696
dist_study Score_Double Trouble -0.1607743 0.0108994
pow_not_using Score_Double Trouble -0.1074465 0.0900233
pow_notifications_on Score_Double Trouble 0.0720699 0.2562535
pow_vibrate Score_Double Trouble -0.0175990 0.7818633
pow_study Score_Double Trouble 0.1392847 0.0276659
pow_exam Score_Double Trouble 0.0347898 0.5840461
pow_lec Score_Double Trouble 0.0094841 0.8813885
pow_sleep Score_Double Trouble 0.0422447 0.5061168
com_gen Score_Double Trouble -0.0442974 0.4856555
com_unattended Score_Double Trouble -0.0954056 0.1324864
com_leave_with_other Score_Double Trouble 0.0076600 0.9040791
com_locked Score_Double Trouble 0.0186671 0.7689873
com_room_task Score_Double Trouble -0.0042597 0.9465703
NMPQ_sum Score_Double Trouble -0.0907004 0.1527567
MPIQ_sum Score_Double Trouble -0.0898868 0.1564880
MPIQ_SI_sum Score_Double Trouble 0.0156658 0.8053165
MPIQ_VFO_sum Score_Double Trouble 0.0066133 0.9171354
SAD_sum Score_Double Trouble -0.0119801 0.8505005
SAD_dep_sum Score_Double Trouble -0.0219881 0.7293709
SAD_ea_sum Score_Double Trouble 0.0162685 0.7979851
SAD_dist_sum Score_Double Trouble -0.0055382 0.9305699
age Score_Odd One Out 0.0139714 0.8260190
age_first_phone Score_Odd One Out -0.0514889 0.4223570
dist_daily Score_Odd One Out 0.0854876 0.1778607
dist_study Score_Odd One Out -0.0725304 0.2532196
pow_not_using Score_Odd One Out 0.0922925 0.1456507
pow_notifications_on Score_Odd One Out 0.0236221 0.7101328
pow_vibrate Score_Odd One Out -0.0425534 0.5030105
pow_study Score_Odd One Out 0.0203564 0.7487539
pow_exam Score_Odd One Out -0.1413175 0.0254533
pow_lec Score_Odd One Out -0.0011495 0.9855723
pow_sleep Score_Odd One Out -0.0972874 0.1249852
com_gen Score_Odd One Out 0.0533713 0.4007718
com_unattended Score_Odd One Out 0.0150150 0.8132531
com_leave_with_other Score_Odd One Out 0.0024750 0.9689400
com_locked Score_Odd One Out 0.0126267 0.8425346
com_room_task Score_Odd One Out 0.0923976 0.1451908
NMPQ_sum Score_Odd One Out 0.0009491 0.9880867
MPIQ_sum Score_Odd One Out 0.0778146 0.2201793
MPIQ_SI_sum Score_Odd One Out 0.0260432 0.6819638
MPIQ_VFO_sum Score_Odd One Out -0.0345700 0.5864254
SAD_sum Score_Odd One Out 0.0595497 0.3484103
SAD_dep_sum Score_Odd One Out 0.0455716 0.4731819
SAD_ea_sum Score_Odd One Out -0.0054040 0.9322483
SAD_dist_sum Score_Odd One Out 0.1386198 0.0284245
Score_Double Trouble Score_Odd One Out 0.0814852 0.1991164
age Score_Digit Span -0.0200391 0.7525421
age_first_phone Score_Digit Span -0.1512425 0.0178432
dist_daily Score_Digit Span -0.0234641 0.7119852
dist_study Score_Digit Span 0.0193735 0.7605062
pow_not_using Score_Digit Span -0.0004047 0.9949204
pow_notifications_on Score_Digit Span -0.0388289 0.5411378
pow_vibrate Score_Digit Span -0.0125015 0.8440758
pow_study Score_Digit Span -0.0152592 0.8102724
pow_exam Score_Digit Span -0.0517606 0.4151569
pow_lec Score_Digit Span -0.1432308 0.0235115
pow_sleep Score_Digit Span -0.0622293 0.3271104
com_gen Score_Digit Span -0.1947017 0.0019833
com_unattended Score_Digit Span -0.2525870 0.0000536
com_leave_with_other Score_Digit Span -0.1797087 0.0043658
com_locked Score_Digit Span 0.0628783 0.3220811
com_room_task Score_Digit Span -0.1807430 0.0041422
NMPQ_sum Score_Digit Span 0.0772726 0.2234195
MPIQ_sum Score_Digit Span 0.0257663 0.6851634
MPIQ_SI_sum Score_Digit Span 0.1349719 0.0329109
MPIQ_VFO_sum Score_Digit Span -0.0487102 0.4432175
SAD_sum Score_Digit Span 0.1294588 0.0408273
SAD_dep_sum Score_Digit Span 0.1507656 0.0170551
SAD_ea_sum Score_Digit Span 0.1102945 0.0817742
SAD_dist_sum Score_Digit Span 0.0562100 0.3761541
Score_Double Trouble Score_Digit Span 0.1670681 0.0081217
Score_Odd One Out Score_Digit Span 0.0427293 0.5012455
age Score_Feature Match -0.1663461 0.0084046
age_first_phone Score_Feature Match -0.0523461 0.4146628
dist_daily Score_Feature Match -0.0733004 0.2482024
dist_study Score_Feature Match -0.0780251 0.2189302
pow_not_using Score_Feature Match 0.0682688 0.2822539
pow_notifications_on Score_Feature Match 0.0025589 0.9678886
pow_vibrate Score_Feature Match -0.1466117 0.0203917
pow_study Score_Feature Match -0.1486873 0.0186596
pow_exam Score_Feature Match -0.1639004 0.0094293
pow_lec Score_Feature Match -0.1198982 0.0583458
pow_sleep Score_Feature Match -0.1062120 0.0937996
com_gen Score_Feature Match -0.0915211 0.1490616
com_unattended Score_Feature Match -0.0293082 0.6446694
com_leave_with_other Score_Feature Match -0.1259203 0.0467101
com_locked Score_Feature Match -0.0478768 0.4510669
com_room_task Score_Feature Match -0.0251584 0.6922099
NMPQ_sum Score_Feature Match -0.0644186 0.3103455
MPIQ_sum Score_Feature Match -0.0509155 0.4228251
MPIQ_SI_sum Score_Feature Match 0.0124188 0.8450943
MPIQ_VFO_sum Score_Feature Match 0.0089327 0.8882380
SAD_sum Score_Feature Match 0.0041495 0.9479507
SAD_dep_sum Score_Feature Match -0.0380496 0.5492936
SAD_ea_sum Score_Feature Match 0.0447076 0.4816210
SAD_dist_sum Score_Feature Match 0.0176457 0.7812990
Score_Double Trouble Score_Feature Match 0.2434400 0.0001009
Score_Odd One Out Score_Feature Match 0.0311018 0.6245471
Score_Digit Span Score_Feature Match 0.1979656 0.0016574
age Score_Polygons -0.0535075 0.3995690
age_first_phone Score_Polygons -0.0193554 0.7630799
dist_daily Score_Polygons -0.0009949 0.9875121
dist_study Score_Polygons 0.0251308 0.6925305
pow_not_using Score_Polygons -0.1133099 0.0737160
pow_notifications_on Score_Polygons 0.0825798 0.1931278
pow_vibrate Score_Polygons 0.0227539 0.7203330
pow_study Score_Polygons 0.0400614 0.5283642
pow_exam Score_Polygons 0.0163051 0.7975405
pow_lec Score_Polygons 0.0455180 0.4737029
pow_sleep Score_Polygons -0.0271117 0.6696677
com_gen Score_Polygons -0.0138791 0.8271493
com_unattended Score_Polygons -0.0805525 0.2043245
com_leave_with_other Score_Polygons -0.0846949 0.1819311
com_locked Score_Polygons 0.0820980 0.1957473
com_room_task Score_Polygons 0.0655217 0.3021162
NMPQ_sum Score_Polygons 0.0651453 0.3049076
MPIQ_sum Score_Polygons 0.1080720 0.0881565
MPIQ_SI_sum Score_Polygons 0.0863171 0.1736735
MPIQ_VFO_sum Score_Polygons 0.0732587 0.2484723
SAD_sum Score_Polygons 0.1079428 0.0885396
SAD_dep_sum Score_Polygons 0.0581581 0.3598098
SAD_ea_sum Score_Polygons 0.1096560 0.0835683
SAD_dist_sum Score_Polygons 0.1635595 0.0095806
Score_Double Trouble Score_Polygons 0.1632853 0.0097038
Score_Odd One Out Score_Polygons 0.0738255 0.2448209
Score_Digit Span Score_Polygons 0.1746375 0.0056275
Score_Feature Match Score_Polygons 0.2337851 0.0001917
age Score_Paired Associates -0.0075299 0.9057011
age_first_phone Score_Paired Associates 0.0152750 0.8119715
dist_daily Score_Paired Associates 0.0076404 0.9043230
dist_study Score_Paired Associates -0.1272237 0.0444655
pow_not_using Score_Paired Associates 0.0284183 0.6547512
pow_notifications_on Score_Paired Associates 0.0312190 0.6232408
pow_vibrate Score_Paired Associates -0.0424757 0.5037916
pow_study Score_Paired Associates 0.0258248 0.6844876
pow_exam Score_Paired Associates -0.1304226 0.0393376
pow_lec Score_Paired Associates 0.0709288 0.2638791
pow_sleep Score_Paired Associates -0.0142822 0.8222118
com_gen Score_Paired Associates 0.0795770 0.2098760
com_unattended Score_Paired Associates 0.1363384 0.0311643
com_leave_with_other Score_Paired Associates 0.0942482 0.1372696
com_locked Score_Paired Associates -0.0177356 0.7802133
com_room_task Score_Paired Associates 0.1858358 0.0031846
NMPQ_sum Score_Paired Associates -0.1020151 0.1075906
MPIQ_sum Score_Paired Associates -0.0869388 0.1705838
MPIQ_SI_sum Score_Paired Associates -0.1097443 0.0833185
MPIQ_VFO_sum Score_Paired Associates -0.0647227 0.3080626
SAD_sum Score_Paired Associates -0.1086908 0.0863407
SAD_dep_sum Score_Paired Associates -0.1289068 0.0417016
SAD_ea_sum Score_Paired Associates -0.0500397 0.4308576
SAD_dist_sum Score_Paired Associates -0.0732396 0.2485962
Score_Double Trouble Score_Paired Associates 0.1515302 0.0164958
Score_Odd One Out Score_Paired Associates 0.0768887 0.2257350
Score_Digit Span Score_Paired Associates 0.0868042 0.1712495
Score_Feature Match Score_Paired Associates 0.1574038 0.0127079
Score_Polygons Score_Paired Associates 0.1262041 0.0462133
age Score_Token Search -0.0344064 0.5882000
age_first_phone Score_Token Search -0.0362432 0.5723597
dist_daily Score_Token Search -0.0068198 0.9145579
dist_study Score_Token Search 0.0132564 0.8347914
pow_not_using Score_Token Search -0.0168755 0.7906196
pow_notifications_on Score_Token Search 0.0735665 0.2464844
pow_vibrate Score_Token Search -0.0653146 0.3036498
pow_study Score_Token Search 0.0441604 0.4870068
pow_exam Score_Token Search -0.0493465 0.4372764
pow_lec Score_Token Search -0.0206524 0.7452256
pow_sleep Score_Token Search -0.0715158 0.2599370
com_gen Score_Token Search -0.0576689 0.3638718
com_unattended Score_Token Search -0.0475421 0.4542418
com_leave_with_other Score_Token Search -0.0540539 0.3947659
com_locked Score_Token Search 0.0260274 0.6821460
com_room_task Score_Token Search 0.0010709 0.9865588
NMPQ_sum Score_Token Search -0.0474368 0.4552431
MPIQ_sum Score_Token Search -0.0191983 0.7626076
MPIQ_SI_sum Score_Token Search -0.0139466 0.8263221
MPIQ_VFO_sum Score_Token Search -0.1036396 0.1020743
SAD_sum Score_Token Search -0.0111326 0.8609657
SAD_dep_sum Score_Token Search -0.0520522 0.4125301
SAD_ea_sum Score_Token Search -0.0089169 0.8884355
SAD_dist_sum Score_Token Search 0.0938474 0.1389563
Score_Double Trouble Score_Token Search 0.3010208 0.0000012
Score_Odd One Out Score_Token Search 0.2089677 0.0008864
Score_Digit Span Score_Token Search 0.2014748 0.0013622
Score_Feature Match Score_Token Search 0.1154244 0.0684599
Score_Polygons Score_Token Search 0.2424539 0.0001078
Score_Paired Associates Score_Token Search 0.2726304 0.0000123
age Score_Spatial Planning -0.0614903 0.3328987
age_first_phone Score_Spatial Planning 0.0265291 0.6794639
dist_daily Score_Spatial Planning 0.0283719 0.6552794
dist_study Score_Spatial Planning -0.0494484 0.4363301
pow_not_using Score_Spatial Planning -0.0912213 0.1504037
pow_notifications_on Score_Spatial Planning -0.0489091 0.4413559
pow_vibrate Score_Spatial Planning 0.0562341 0.3759499
pow_study Score_Spatial Planning 0.0571256 0.3684165
pow_exam Score_Spatial Planning 0.0521484 0.4116662
pow_lec Score_Spatial Planning 0.0629343 0.3216489
pow_sleep Score_Spatial Planning 0.0133938 0.8331040
com_gen Score_Spatial Planning 0.0050898 0.9361785
com_unattended Score_Spatial Planning -0.0149815 0.8136622
com_leave_with_other Score_Spatial Planning 0.0298078 0.6390376
com_locked Score_Spatial Planning -0.0182085 0.7745082
com_room_task Score_Spatial Planning 0.0582020 0.3594471
NMPQ_sum Score_Spatial Planning -0.0220771 0.7283191
MPIQ_sum Score_Spatial Planning -0.0152141 0.8108225
MPIQ_SI_sum Score_Spatial Planning -0.0532387 0.4019443
MPIQ_VFO_sum Score_Spatial Planning -0.0493940 0.4368353
SAD_sum Score_Spatial Planning -0.0573900 0.3662004
SAD_dep_sum Score_Spatial Planning -0.0492751 0.4379411
SAD_ea_sum Score_Spatial Planning -0.0641656 0.3122538
SAD_dist_sum Score_Spatial Planning -0.0084205 0.8946089
Score_Double Trouble Score_Spatial Planning 0.2028520 0.0012602
Score_Odd One Out Score_Spatial Planning 0.0918421 0.1476350
Score_Digit Span Score_Spatial Planning 0.0806596 0.2037212
Score_Feature Match Score_Spatial Planning 0.0940965 0.1379060
Score_Polygons Score_Spatial Planning 0.2746290 0.0000106
Score_Paired Associates Score_Spatial Planning 0.1760230 0.0052538
Score_Token Search Score_Spatial Planning 0.2740662 0.0000110
age Score_Rotations -0.0785716 0.2157104
age_first_phone Score_Rotations -0.0568342 0.3757458
dist_daily Score_Rotations -0.0267995 0.6732515
dist_study Score_Rotations -0.0220992 0.7280580
pow_not_using Score_Rotations -0.0483548 0.4465556
pow_notifications_on Score_Rotations 0.0839706 0.1857105
pow_vibrate Score_Rotations -0.0062851 0.9212345
pow_study Score_Rotations 0.1253051 0.0478018
pow_exam Score_Rotations 0.0920762 0.1466012
pow_lec Score_Rotations 0.1069176 0.0916261
pow_sleep Score_Rotations 0.1008416 0.1117195
com_gen Score_Rotations 0.0545748 0.3902193
com_unattended Score_Rotations 0.0109067 0.8637590
com_leave_with_other Score_Rotations -0.0664621 0.2952151
com_locked Score_Rotations -0.0043185 0.9458334
com_room_task Score_Rotations 0.0644100 0.3104106
NMPQ_sum Score_Rotations -0.0618853 0.3297972
MPIQ_sum Score_Rotations -0.0651093 0.3051756
MPIQ_SI_sum Score_Rotations -0.0680402 0.2838723
MPIQ_VFO_sum Score_Rotations -0.0154161 0.8083602
SAD_sum Score_Rotations -0.0900002 0.1559640
SAD_dep_sum Score_Rotations -0.1278679 0.0433900
SAD_ea_sum Score_Rotations -0.0736698 0.2458201
SAD_dist_sum Score_Rotations 0.0074885 0.9062163
Score_Double Trouble Score_Rotations 0.2507340 0.0000610
Score_Odd One Out Score_Rotations -0.0664301 0.2954483
Score_Digit Span Score_Rotations 0.0715733 0.2595528
Score_Feature Match Score_Rotations 0.2364281 0.0001612
Score_Polygons Score_Rotations 0.2391382 0.0001347
Score_Paired Associates Score_Rotations 0.1661313 0.0084904
Score_Token Search Score_Rotations 0.1957896 0.0018687
Score_Spatial Planning Score_Rotations 0.2106364 0.0008039
age Score_Spatial Span -0.1650692 0.0089265
age_first_phone Score_Spatial Span -0.0161242 0.8017297
dist_daily Score_Spatial Span -0.0203851 0.7484108
dist_study Score_Spatial Span 0.0272131 0.6685052
pow_not_using Score_Spatial Span -0.0623941 0.3258281
pow_notifications_on Score_Spatial Span 0.0517812 0.4149709
pow_vibrate Score_Spatial Span -0.0297245 0.6399746
pow_study Score_Spatial Span 0.0694544 0.2739602
pow_exam Score_Spatial Span 0.0340484 0.5920895
pow_lec Score_Spatial Span 0.0861502 0.1745100
pow_sleep Score_Spatial Span 0.0265988 0.6755599
com_gen Score_Spatial Span 0.0383267 0.5463867
com_unattended Score_Spatial Span -0.1102545 0.0818858
com_leave_with_other Score_Spatial Span -0.0413518 0.5151554
com_locked Score_Spatial Span -0.0597437 0.3468391
com_room_task Score_Spatial Span 0.0813879 0.1996548
NMPQ_sum Score_Spatial Span -0.1015688 0.1091466
MPIQ_sum Score_Spatial Span -0.0844401 0.1832543
MPIQ_SI_sum Score_Spatial Span -0.0607076 0.3391011
MPIQ_VFO_sum Score_Spatial Span -0.0498692 0.4324312
SAD_sum Score_Spatial Span -0.0649479 0.3063785
SAD_dep_sum Score_Spatial Span -0.0749127 0.2379220
SAD_ea_sum Score_Spatial Span -0.0807473 0.2032285
SAD_dist_sum Score_Spatial Span 0.0000827 0.9989613
Score_Double Trouble Score_Spatial Span 0.2066794 0.0010123
Score_Odd One Out Score_Spatial Span 0.0023679 0.9702840
Score_Digit Span Score_Spatial Span 0.1071989 0.0907707
Score_Feature Match Score_Spatial Span 0.2519720 0.0000560
Score_Polygons Score_Spatial Span 0.2941733 0.0000022
Score_Paired Associates Score_Spatial Span 0.1468719 0.0201671
Score_Token Search Score_Spatial Span 0.3569882 0.0000000
Score_Spatial Planning Score_Spatial Span 0.2863219 0.0000042
Score_Rotations Score_Spatial Span 0.2757958 0.0000096
age Score_Grammatical Reasoning -0.0299751 0.6371565
age_first_phone Score_Grammatical Reasoning -0.0100520 0.8756089
dist_daily Score_Grammatical Reasoning 0.0091999 0.8849187
dist_study Score_Grammatical Reasoning -0.1153609 0.0686132
pow_not_using Score_Grammatical Reasoning -0.1130039 0.0745031
pow_notifications_on Score_Grammatical Reasoning 0.1200244 0.0580793
pow_vibrate Score_Grammatical Reasoning 0.0085711 0.8927349
pow_study Score_Grammatical Reasoning 0.0842918 0.1840271
pow_exam Score_Grammatical Reasoning 0.0150113 0.8132987
pow_lec Score_Grammatical Reasoning 0.1350795 0.0327704
pow_sleep Score_Grammatical Reasoning 0.0228828 0.7188154
com_gen Score_Grammatical Reasoning -0.0582842 0.3587677
com_unattended Score_Grammatical Reasoning -0.0729270 0.2506265
com_leave_with_other Score_Grammatical Reasoning 0.0107217 0.8660485
com_locked Score_Grammatical Reasoning -0.0009683 0.9878456
com_room_task Score_Grammatical Reasoning 0.0272028 0.6686242
NMPQ_sum Score_Grammatical Reasoning -0.0025011 0.9686130
MPIQ_sum Score_Grammatical Reasoning -0.0253523 0.6899596
MPIQ_SI_sum Score_Grammatical Reasoning 0.0386519 0.5429857
MPIQ_VFO_sum Score_Grammatical Reasoning 0.0266994 0.6744026
SAD_sum Score_Grammatical Reasoning 0.0348263 0.5836517
SAD_dep_sum Score_Grammatical Reasoning 0.0298857 0.6381615
SAD_ea_sum Score_Grammatical Reasoning 0.0143028 0.8219591
SAD_dist_sum Score_Grammatical Reasoning 0.0240106 0.7055850
Score_Double Trouble Score_Grammatical Reasoning 0.2808712 0.0000065
Score_Odd One Out Score_Grammatical Reasoning 0.0787188 0.2148493
Score_Digit Span Score_Grammatical Reasoning 0.1179185 0.0626578
Score_Feature Match Score_Grammatical Reasoning 0.1681573 0.0077109
Score_Polygons Score_Grammatical Reasoning 0.2361604 0.0001641
Score_Paired Associates Score_Grammatical Reasoning 0.2568356 0.0000396
Score_Token Search Score_Grammatical Reasoning 0.1644721 0.0091803
Score_Spatial Planning Score_Grammatical Reasoning 0.2237048 0.0003644
Score_Rotations Score_Grammatical Reasoning 0.2440599 0.0000967
Score_Spatial Span Score_Grammatical Reasoning 0.2517696 0.0000568
age Score_Monkey Ladder -0.0526880 0.4068376
age_first_phone Score_Monkey Ladder -0.0011427 0.9858029
dist_daily Score_Monkey Ladder -0.1121656 0.0766945
dist_study Score_Monkey Ladder -0.0990506 0.1182591
pow_not_using Score_Monkey Ladder -0.0257395 0.6854741
pow_notifications_on Score_Monkey Ladder 0.0382027 0.5476863
pow_vibrate Score_Monkey Ladder -0.0552910 0.3840201
pow_study Score_Monkey Ladder 0.0241026 0.7045088
pow_exam Score_Monkey Ladder 0.0384471 0.5451264
pow_lec Score_Monkey Ladder 0.0304433 0.6319035
pow_sleep Score_Monkey Ladder -0.0321995 0.6123663
com_gen Score_Monkey Ladder -0.0606409 0.3396328
com_unattended Score_Monkey Ladder -0.0625008 0.3250001
com_leave_with_other Score_Monkey Ladder -0.0181243 0.7755231
com_locked Score_Monkey Ladder -0.0464420 0.4647627
com_room_task Score_Monkey Ladder 0.0640467 0.3131530
NMPQ_sum Score_Monkey Ladder -0.1208752 0.0563097
MPIQ_sum Score_Monkey Ladder -0.1441432 0.0226315
MPIQ_SI_sum Score_Monkey Ladder -0.0779828 0.2191809
MPIQ_VFO_sum Score_Monkey Ladder -0.1116658 0.0780256
SAD_sum Score_Monkey Ladder -0.0860201 0.1751642
SAD_dep_sum Score_Monkey Ladder -0.1038450 0.1013930
SAD_ea_sum Score_Monkey Ladder -0.0734525 0.2472192
SAD_dist_sum Score_Monkey Ladder -0.0144659 0.8199639
Score_Double Trouble Score_Monkey Ladder 0.2851592 0.0000046
Score_Odd One Out Score_Monkey Ladder 0.0122924 0.8466505
Score_Digit Span Score_Monkey Ladder 0.1538690 0.0148832
Score_Feature Match Score_Monkey Ladder 0.1836266 0.0035722
Score_Polygons Score_Monkey Ladder 0.1410329 0.0257536
Score_Paired Associates Score_Monkey Ladder 0.1709616 0.0067370
Score_Token Search Score_Monkey Ladder 0.2926077 0.0000025
Score_Spatial Planning Score_Monkey Ladder 0.2521018 0.0000554
Score_Rotations Score_Monkey Ladder 0.1343782 0.0336953
Score_Spatial Span Score_Monkey Ladder 0.3511038 0.0000000
Score_Grammatical Reasoning Score_Monkey Ladder 0.2740745 0.0000110
age CBS_overall -0.0200391 0.7525421
age_first_phone CBS_overall -0.1512425 0.0178432
dist_daily CBS_overall -0.0234641 0.7119852
dist_study CBS_overall 0.0193735 0.7605062
pow_not_using CBS_overall -0.0004047 0.9949204
pow_notifications_on CBS_overall -0.0388289 0.5411378
pow_vibrate CBS_overall -0.0125015 0.8440758
pow_study CBS_overall -0.0152592 0.8102724
pow_exam CBS_overall -0.0517606 0.4151569
pow_lec CBS_overall -0.1432308 0.0235115
pow_sleep CBS_overall -0.0622293 0.3271104
com_gen CBS_overall -0.1947017 0.0019833
com_unattended CBS_overall -0.2525870 0.0000536
com_leave_with_other CBS_overall -0.1797087 0.0043658
com_locked CBS_overall 0.0628783 0.3220811
com_room_task CBS_overall -0.1807430 0.0041422
NMPQ_sum CBS_overall 0.0772726 0.2234195
MPIQ_sum CBS_overall 0.0257663 0.6851634
MPIQ_SI_sum CBS_overall 0.1349719 0.0329109
MPIQ_VFO_sum CBS_overall -0.0487102 0.4432175
SAD_sum CBS_overall 0.1294588 0.0408273
SAD_dep_sum CBS_overall 0.1507656 0.0170551
SAD_ea_sum CBS_overall 0.1102945 0.0817742
SAD_dist_sum CBS_overall 0.0562100 0.3761541
Score_Double Trouble CBS_overall 0.1670681 0.0081217
Score_Odd One Out CBS_overall 0.0427293 0.5012455
Score_Digit Span CBS_overall 1.0000000 0.0000000
Score_Feature Match CBS_overall 0.1979656 0.0016574
Score_Polygons CBS_overall 0.1746375 0.0056275
Score_Paired Associates CBS_overall 0.0868042 0.1712495
Score_Token Search CBS_overall 0.2014748 0.0013622
Score_Spatial Planning CBS_overall 0.0806596 0.2037212
Score_Rotations CBS_overall 0.0715733 0.2595528
Score_Spatial Span CBS_overall 0.1071989 0.0907707
Score_Grammatical Reasoning CBS_overall 0.1179185 0.0626578
Score_Monkey Ladder CBS_overall 0.1538690 0.0148832
age CBS_STM -0.0526880 0.4068376
age_first_phone CBS_STM -0.0011427 0.9858029
dist_daily CBS_STM -0.1121656 0.0766945
dist_study CBS_STM -0.0990506 0.1182591
pow_not_using CBS_STM -0.0257395 0.6854741
pow_notifications_on CBS_STM 0.0382027 0.5476863
pow_vibrate CBS_STM -0.0552910 0.3840201
pow_study CBS_STM 0.0241026 0.7045088
pow_exam CBS_STM 0.0384471 0.5451264
pow_lec CBS_STM 0.0304433 0.6319035
pow_sleep CBS_STM -0.0321995 0.6123663
com_gen CBS_STM -0.0606409 0.3396328
com_unattended CBS_STM -0.0625008 0.3250001
com_leave_with_other CBS_STM -0.0181243 0.7755231
com_locked CBS_STM -0.0464420 0.4647627
com_room_task CBS_STM 0.0640467 0.3131530
NMPQ_sum CBS_STM -0.1208752 0.0563097
MPIQ_sum CBS_STM -0.1441432 0.0226315
MPIQ_SI_sum CBS_STM -0.0779828 0.2191809
MPIQ_VFO_sum CBS_STM -0.1116658 0.0780256
SAD_sum CBS_STM -0.0860201 0.1751642
SAD_dep_sum CBS_STM -0.1038450 0.1013930
SAD_ea_sum CBS_STM -0.0734525 0.2472192
SAD_dist_sum CBS_STM -0.0144659 0.8199639
Score_Double Trouble CBS_STM 0.2851592 0.0000046
Score_Odd One Out CBS_STM 0.0122924 0.8466505
Score_Digit Span CBS_STM 0.1538690 0.0148832
Score_Feature Match CBS_STM 0.1836266 0.0035722
Score_Polygons CBS_STM 0.1410329 0.0257536
Score_Paired Associates CBS_STM 0.1709616 0.0067370
Score_Token Search CBS_STM 0.2926077 0.0000025
Score_Spatial Planning CBS_STM 0.2521018 0.0000554
Score_Rotations CBS_STM 0.1343782 0.0336953
Score_Spatial Span CBS_STM 0.3511038 0.0000000
Score_Grammatical Reasoning CBS_STM 0.2740745 0.0000110
Score_Monkey Ladder CBS_STM 1.0000000 0.0000000
CBS_overall CBS_STM 0.1538690 0.0148832
age CBS_reason -0.1663461 0.0084046
age_first_phone CBS_reason -0.0523461 0.4146628
dist_daily CBS_reason -0.0733004 0.2482024
dist_study CBS_reason -0.0780251 0.2189302
pow_not_using CBS_reason 0.0682688 0.2822539
pow_notifications_on CBS_reason 0.0025589 0.9678886
pow_vibrate CBS_reason -0.1466117 0.0203917
pow_study CBS_reason -0.1486873 0.0186596
pow_exam CBS_reason -0.1639004 0.0094293
pow_lec CBS_reason -0.1198982 0.0583458
pow_sleep CBS_reason -0.1062120 0.0937996
com_gen CBS_reason -0.0915211 0.1490616
com_unattended CBS_reason -0.0293082 0.6446694
com_leave_with_other CBS_reason -0.1259203 0.0467101
com_locked CBS_reason -0.0478768 0.4510669
com_room_task CBS_reason -0.0251584 0.6922099
NMPQ_sum CBS_reason -0.0644186 0.3103455
MPIQ_sum CBS_reason -0.0509155 0.4228251
MPIQ_SI_sum CBS_reason 0.0124188 0.8450943
MPIQ_VFO_sum CBS_reason 0.0089327 0.8882380
SAD_sum CBS_reason 0.0041495 0.9479507
SAD_dep_sum CBS_reason -0.0380496 0.5492936
SAD_ea_sum CBS_reason 0.0447076 0.4816210
SAD_dist_sum CBS_reason 0.0176457 0.7812990
Score_Double Trouble CBS_reason 0.2434400 0.0001009
Score_Odd One Out CBS_reason 0.0311018 0.6245471
Score_Digit Span CBS_reason 0.1979656 0.0016574
Score_Feature Match CBS_reason 1.0000000 0.0000000
Score_Polygons CBS_reason 0.2337851 0.0001917
Score_Paired Associates CBS_reason 0.1574038 0.0127079
Score_Token Search CBS_reason 0.1154244 0.0684599
Score_Spatial Planning CBS_reason 0.0940965 0.1379060
Score_Rotations CBS_reason 0.2364281 0.0001612
Score_Spatial Span CBS_reason 0.2519720 0.0000560
Score_Grammatical Reasoning CBS_reason 0.1681573 0.0077109
Score_Monkey Ladder CBS_reason 0.1836266 0.0035722
CBS_overall CBS_reason 0.1979656 0.0016574
CBS_STM CBS_reason 0.1836266 0.0035722
age CBS_verbal -0.0299751 0.6371565
age_first_phone CBS_verbal -0.0100520 0.8756089
dist_daily CBS_verbal 0.0091999 0.8849187
dist_study CBS_verbal -0.1153609 0.0686132
pow_not_using CBS_verbal -0.1130039 0.0745031
pow_notifications_on CBS_verbal 0.1200244 0.0580793
pow_vibrate CBS_verbal 0.0085711 0.8927349
pow_study CBS_verbal 0.0842918 0.1840271
pow_exam CBS_verbal 0.0150113 0.8132987
pow_lec CBS_verbal 0.1350795 0.0327704
pow_sleep CBS_verbal 0.0228828 0.7188154
com_gen CBS_verbal -0.0582842 0.3587677
com_unattended CBS_verbal -0.0729270 0.2506265
com_leave_with_other CBS_verbal 0.0107217 0.8660485
com_locked CBS_verbal -0.0009683 0.9878456
com_room_task CBS_verbal 0.0272028 0.6686242
NMPQ_sum CBS_verbal -0.0025011 0.9686130
MPIQ_sum CBS_verbal -0.0253523 0.6899596
MPIQ_SI_sum CBS_verbal 0.0386519 0.5429857
MPIQ_VFO_sum CBS_verbal 0.0266994 0.6744026
SAD_sum CBS_verbal 0.0348263 0.5836517
SAD_dep_sum CBS_verbal 0.0298857 0.6381615
SAD_ea_sum CBS_verbal 0.0143028 0.8219591
SAD_dist_sum CBS_verbal 0.0240106 0.7055850
Score_Double Trouble CBS_verbal 0.2808712 0.0000065
Score_Odd One Out CBS_verbal 0.0787188 0.2148493
Score_Digit Span CBS_verbal 0.1179185 0.0626578
Score_Feature Match CBS_verbal 0.1681573 0.0077109
Score_Polygons CBS_verbal 0.2361604 0.0001641
Score_Paired Associates CBS_verbal 0.2568356 0.0000396
Score_Token Search CBS_verbal 0.1644721 0.0091803
Score_Spatial Planning CBS_verbal 0.2237048 0.0003644
Score_Rotations CBS_verbal 0.2440599 0.0000967
Score_Spatial Span CBS_verbal 0.2517696 0.0000568
Score_Grammatical Reasoning CBS_verbal 1.0000000 0.0000000
Score_Monkey Ladder CBS_verbal 0.2740745 0.0000110
CBS_overall CBS_verbal 0.1179185 0.0626578
CBS_STM CBS_verbal 0.2740745 0.0000110
CBS_reason CBS_verbal 0.1681573 0.0077109
age CBS_ts_memory -0.0526880 0.4068376
age_first_phone CBS_ts_memory -0.0011427 0.9858029
dist_daily CBS_ts_memory -0.1121656 0.0766945
dist_study CBS_ts_memory -0.0990506 0.1182591
pow_not_using CBS_ts_memory -0.0257395 0.6854741
pow_notifications_on CBS_ts_memory 0.0382027 0.5476863
pow_vibrate CBS_ts_memory -0.0552910 0.3840201
pow_study CBS_ts_memory 0.0241026 0.7045088
pow_exam CBS_ts_memory 0.0384471 0.5451264
pow_lec CBS_ts_memory 0.0304433 0.6319035
pow_sleep CBS_ts_memory -0.0321995 0.6123663
com_gen CBS_ts_memory -0.0606409 0.3396328
com_unattended CBS_ts_memory -0.0625008 0.3250001
com_leave_with_other CBS_ts_memory -0.0181243 0.7755231
com_locked CBS_ts_memory -0.0464420 0.4647627
com_room_task CBS_ts_memory 0.0640467 0.3131530
NMPQ_sum CBS_ts_memory -0.1208752 0.0563097
MPIQ_sum CBS_ts_memory -0.1441432 0.0226315
MPIQ_SI_sum CBS_ts_memory -0.0779828 0.2191809
MPIQ_VFO_sum CBS_ts_memory -0.1116658 0.0780256
SAD_sum CBS_ts_memory -0.0860201 0.1751642
SAD_dep_sum CBS_ts_memory -0.1038450 0.1013930
SAD_ea_sum CBS_ts_memory -0.0734525 0.2472192
SAD_dist_sum CBS_ts_memory -0.0144659 0.8199639
Score_Double Trouble CBS_ts_memory 0.2851592 0.0000046
Score_Odd One Out CBS_ts_memory 0.0122924 0.8466505
Score_Digit Span CBS_ts_memory 0.1538690 0.0148832
Score_Feature Match CBS_ts_memory 0.1836266 0.0035722
Score_Polygons CBS_ts_memory 0.1410329 0.0257536
Score_Paired Associates CBS_ts_memory 0.1709616 0.0067370
Score_Token Search CBS_ts_memory 0.2926077 0.0000025
Score_Spatial Planning CBS_ts_memory 0.2521018 0.0000554
Score_Rotations CBS_ts_memory 0.1343782 0.0336953
Score_Spatial Span CBS_ts_memory 0.3511038 0.0000000
Score_Grammatical Reasoning CBS_ts_memory 0.2740745 0.0000110
Score_Monkey Ladder CBS_ts_memory 1.0000000 0.0000000
CBS_overall CBS_ts_memory 0.1538690 0.0148832
CBS_STM CBS_ts_memory 1.0000000 0.0000000
CBS_reason CBS_ts_memory 0.1836266 0.0035722
CBS_verbal CBS_ts_memory 0.2740745 0.0000110
age CBS_ts_reason -0.0535075 0.3995690
age_first_phone CBS_ts_reason -0.0193554 0.7630799
dist_daily CBS_ts_reason -0.0009949 0.9875121
dist_study CBS_ts_reason 0.0251308 0.6925305
pow_not_using CBS_ts_reason -0.1133099 0.0737160
pow_notifications_on CBS_ts_reason 0.0825798 0.1931278
pow_vibrate CBS_ts_reason 0.0227539 0.7203330
pow_study CBS_ts_reason 0.0400614 0.5283642
pow_exam CBS_ts_reason 0.0163051 0.7975405
pow_lec CBS_ts_reason 0.0455180 0.4737029
pow_sleep CBS_ts_reason -0.0271117 0.6696677
com_gen CBS_ts_reason -0.0138791 0.8271493
com_unattended CBS_ts_reason -0.0805525 0.2043245
com_leave_with_other CBS_ts_reason -0.0846949 0.1819311
com_locked CBS_ts_reason 0.0820980 0.1957473
com_room_task CBS_ts_reason 0.0655217 0.3021162
NMPQ_sum CBS_ts_reason 0.0651453 0.3049076
MPIQ_sum CBS_ts_reason 0.1080720 0.0881565
MPIQ_SI_sum CBS_ts_reason 0.0863171 0.1736735
MPIQ_VFO_sum CBS_ts_reason 0.0732587 0.2484723
SAD_sum CBS_ts_reason 0.1079428 0.0885396
SAD_dep_sum CBS_ts_reason 0.0581581 0.3598098
SAD_ea_sum CBS_ts_reason 0.1096560 0.0835683
SAD_dist_sum CBS_ts_reason 0.1635595 0.0095806
Score_Double Trouble CBS_ts_reason 0.1632853 0.0097038
Score_Odd One Out CBS_ts_reason 0.0738255 0.2448209
Score_Digit Span CBS_ts_reason 0.1746375 0.0056275
Score_Feature Match CBS_ts_reason 0.2337851 0.0001917
Score_Polygons CBS_ts_reason 1.0000000 0.0000000
Score_Paired Associates CBS_ts_reason 0.1262041 0.0462133
Score_Token Search CBS_ts_reason 0.2424539 0.0001078
Score_Spatial Planning CBS_ts_reason 0.2746290 0.0000106
Score_Rotations CBS_ts_reason 0.2391382 0.0001347
Score_Spatial Span CBS_ts_reason 0.2941733 0.0000022
Score_Grammatical Reasoning CBS_ts_reason 0.2361604 0.0001641
Score_Monkey Ladder CBS_ts_reason 0.1410329 0.0257536
CBS_overall CBS_ts_reason 0.1746375 0.0056275
CBS_STM CBS_ts_reason 0.1410329 0.0257536
CBS_reason CBS_ts_reason 0.2337851 0.0001917
CBS_verbal CBS_ts_reason 0.2361604 0.0001641
CBS_ts_memory CBS_ts_reason 0.1410329 0.0257536
age CBS_ts_verbalab -0.0299751 0.6371565
age_first_phone CBS_ts_verbalab -0.0100520 0.8756089
dist_daily CBS_ts_verbalab 0.0091999 0.8849187
dist_study CBS_ts_verbalab -0.1153609 0.0686132
pow_not_using CBS_ts_verbalab -0.1130039 0.0745031
pow_notifications_on CBS_ts_verbalab 0.1200244 0.0580793
pow_vibrate CBS_ts_verbalab 0.0085711 0.8927349
pow_study CBS_ts_verbalab 0.0842918 0.1840271
pow_exam CBS_ts_verbalab 0.0150113 0.8132987
pow_lec CBS_ts_verbalab 0.1350795 0.0327704
pow_sleep CBS_ts_verbalab 0.0228828 0.7188154
com_gen CBS_ts_verbalab -0.0582842 0.3587677
com_unattended CBS_ts_verbalab -0.0729270 0.2506265
com_leave_with_other CBS_ts_verbalab 0.0107217 0.8660485
com_locked CBS_ts_verbalab -0.0009683 0.9878456
com_room_task CBS_ts_verbalab 0.0272028 0.6686242
NMPQ_sum CBS_ts_verbalab -0.0025011 0.9686130
MPIQ_sum CBS_ts_verbalab -0.0253523 0.6899596
MPIQ_SI_sum CBS_ts_verbalab 0.0386519 0.5429857
MPIQ_VFO_sum CBS_ts_verbalab 0.0266994 0.6744026
SAD_sum CBS_ts_verbalab 0.0348263 0.5836517
SAD_dep_sum CBS_ts_verbalab 0.0298857 0.6381615
SAD_ea_sum CBS_ts_verbalab 0.0143028 0.8219591
SAD_dist_sum CBS_ts_verbalab 0.0240106 0.7055850
Score_Double Trouble CBS_ts_verbalab 0.2808712 0.0000065
Score_Odd One Out CBS_ts_verbalab 0.0787188 0.2148493
Score_Digit Span CBS_ts_verbalab 0.1179185 0.0626578
Score_Feature Match CBS_ts_verbalab 0.1681573 0.0077109
Score_Polygons CBS_ts_verbalab 0.2361604 0.0001641
Score_Paired Associates CBS_ts_verbalab 0.2568356 0.0000396
Score_Token Search CBS_ts_verbalab 0.1644721 0.0091803
Score_Spatial Planning CBS_ts_verbalab 0.2237048 0.0003644
Score_Rotations CBS_ts_verbalab 0.2440599 0.0000967
Score_Spatial Span CBS_ts_verbalab 0.2517696 0.0000568
Score_Grammatical Reasoning CBS_ts_verbalab 1.0000000 0.0000000
Score_Monkey Ladder CBS_ts_verbalab 0.2740745 0.0000110
CBS_overall CBS_ts_verbalab 0.1179185 0.0626578
CBS_STM CBS_ts_verbalab 0.2740745 0.0000110
CBS_reason CBS_ts_verbalab 0.1681573 0.0077109
CBS_verbal CBS_ts_verbalab 1.0000000 0.0000000
CBS_ts_memory CBS_ts_verbalab 0.2740745 0.0000110
CBS_ts_reason CBS_ts_verbalab 0.2361604 0.0001641
age CBS_ts_con -0.1663461 0.0084046
age_first_phone CBS_ts_con -0.0523461 0.4146628
dist_daily CBS_ts_con -0.0733004 0.2482024
dist_study CBS_ts_con -0.0780251 0.2189302
pow_not_using CBS_ts_con 0.0682688 0.2822539
pow_notifications_on CBS_ts_con 0.0025589 0.9678886
pow_vibrate CBS_ts_con -0.1466117 0.0203917
pow_study CBS_ts_con -0.1486873 0.0186596
pow_exam CBS_ts_con -0.1639004 0.0094293
pow_lec CBS_ts_con -0.1198982 0.0583458
pow_sleep CBS_ts_con -0.1062120 0.0937996
com_gen CBS_ts_con -0.0915211 0.1490616
com_unattended CBS_ts_con -0.0293082 0.6446694
com_leave_with_other CBS_ts_con -0.1259203 0.0467101
com_locked CBS_ts_con -0.0478768 0.4510669
com_room_task CBS_ts_con -0.0251584 0.6922099
NMPQ_sum CBS_ts_con -0.0644186 0.3103455
MPIQ_sum CBS_ts_con -0.0509155 0.4228251
MPIQ_SI_sum CBS_ts_con 0.0124188 0.8450943
MPIQ_VFO_sum CBS_ts_con 0.0089327 0.8882380
SAD_sum CBS_ts_con 0.0041495 0.9479507
SAD_dep_sum CBS_ts_con -0.0380496 0.5492936
SAD_ea_sum CBS_ts_con 0.0447076 0.4816210
SAD_dist_sum CBS_ts_con 0.0176457 0.7812990
Score_Double Trouble CBS_ts_con 0.2434400 0.0001009
Score_Odd One Out CBS_ts_con 0.0311018 0.6245471
Score_Digit Span CBS_ts_con 0.1979656 0.0016574
Score_Feature Match CBS_ts_con 1.0000000 0.0000000
Score_Polygons CBS_ts_con 0.2337851 0.0001917
Score_Paired Associates CBS_ts_con 0.1574038 0.0127079
Score_Token Search CBS_ts_con 0.1154244 0.0684599
Score_Spatial Planning CBS_ts_con 0.0940965 0.1379060
Score_Rotations CBS_ts_con 0.2364281 0.0001612
Score_Spatial Span CBS_ts_con 0.2519720 0.0000560
Score_Grammatical Reasoning CBS_ts_con 0.1681573 0.0077109
Score_Monkey Ladder CBS_ts_con 0.1836266 0.0035722
CBS_overall CBS_ts_con 0.1979656 0.0016574
CBS_STM CBS_ts_con 0.1836266 0.0035722
CBS_reason CBS_ts_con 1.0000000 0.0000000
CBS_verbal CBS_ts_con 0.1681573 0.0077109
CBS_ts_memory CBS_ts_con 0.1836266 0.0035722
CBS_ts_reason CBS_ts_con 0.2337851 0.0001917
CBS_ts_verbalab CBS_ts_con 0.1681573 0.0077109

# print tables using kable
kable(as.data.frame(format(main_corr2$r, scientific = FALSE)), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.271 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily -0.1851 -0.1239 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study -0.0324 0.0074 0.1632 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using -0.1101 0.0365 -0.0512 -0.039 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on -0.0429 -0.016 0.1406 0.0464 -0.1047 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.0851 0.0387 -0.0931 0.0109 -0.0646 0.1712 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.0138 -0.0599 0.3159 0.0522 -0.5047 0.2254 -0.0114 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.0243 -0.039 0.0867 0.0067 -0.2919 0.0883 -0.0103 0.3379 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.1015 -0.0941 0.1833 -0.0187 -0.4316 0.1733 0.1109 0.542 0.2905 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.0781 -0.0917 0.0576 -0.0722 -0.4052 0.0388 0.1187 0.5429 0.2923 0.5404 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen -0.0049 0.1026 -0.0844 -0.1422 0.0021 0.0221 0.0278 -0.0084 0.0126 0.0733 0.1224 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.1289 0.1289 -0.0484 0.0044 0.1385 -0.047 -0.0013 -0.1276 0.0334 -0.0585 -0.0702 0.4128 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.0233 0.0283 2e-04 -0.0218 0.0804 -0.0353 0.0032 -0.0438 0.0576 0.0122 -0.0487 0.5548 0.6266 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked -0.0719 -0.0383 0.1498 0.0639 0.0024 0.0134 0.0027 0.0788 -0.014 0.0164 0.0422 -0.3257 -0.3303 -0.3196 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1662 0.0627 -0.0945 -0.1076 0.0277 9e-04 0.0025 -0.0019 0.0458 0.1705 0.0767 0.405 0.4462 0.3777 -0.1226 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum -0.1968 -0.1248 0.4121 0.2012 -0.1247 0.1688 -0.1236 0.2269 0.0365 0.0874 0.0641 -0.2428 -0.2482 -0.1627 0.2229 -0.2904 1 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum -0.1468 -0.1946 0.4945 0.2491 -0.1661 0.1604 -0.1732 0.3074 0.1167 0.2429 0.1284 -0.228 -0.1455 -0.1007 0.1634 -0.2264 0.7429 1 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum -0.0785 -0.2331 0.262 0.1676 -0.1766 0.2173 -0.0741 0.229 0.0321 0.2128 0.1409 -0.3206 -0.3188 -0.2607 0.1874 -0.2767 0.7152 0.6466 1 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum -0.018 0.0243 0.1926 0.1397 -0.1182 0.1487 -0.0336 0.105 0.0247 0.1588 0.0401 -0.1017 -0.1499 -0.0282 0.0928 -0.1348 0.4442 0.4275 0.3666 1 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum -0.1467 -0.2012 0.4275 0.1679 -0.2148 0.228 -0.1009 0.2701 0.0232 0.1802 0.0735 -0.2737 -0.3242 -0.2362 0.2238 -0.3127 0.8123 0.7884 0.7655 0.524 1 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum -0.1502 -0.2061 0.365 0.1333 -0.2122 0.2133 -0.0916 0.2587 0.0417 0.1506 0.0793 -0.2541 -0.3236 -0.2114 0.2188 -0.3129 0.7833 0.6913 0.7695 0.4437 0.928 1 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum -0.0852 -0.1372 0.3301 0.1402 -0.169 0.1712 -0.0457 0.2472 0.033 0.1429 0.1037 -0.2247 -0.2524 -0.1682 0.1541 -0.2649 0.6451 0.6706 0.5986 0.5303 0.8299 0.6467 1 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum -0.1117 -0.1872 0.4718 0.1617 -0.1832 0.1771 -0.128 0.2396 4e-04 0.2128 0.045 -0.2181 -0.2054 -0.2321 0.1762 -0.1962 0.5853 0.6806 0.512 0.3475 0.7569 0.5791 0.5241 1 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble -0.0576 -0.0557 -0.0941 -0.1608 -0.1074 0.0721 -0.0176 0.1393 0.0348 0.0095 0.0422 -0.0443 -0.0954 0.0077 0.0187 -0.0043 -0.0907 -0.0899 0.0157 0.0066 -0.012 -0.022 0.0163 -0.0055 1 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.014 -0.0515 0.0855 -0.0725 0.0923 0.0236 -0.0426 0.0204 -0.1413 -0.0011 -0.0973 0.0534 0.015 0.0025 0.0126 0.0924 9e-04 0.0778 0.026 -0.0346 0.0595 0.0456 -0.0054 0.1386 0.0815 1 - - - - - - - - - - - - - - - - - -
Score_Digit Span -0.02 -0.1512 -0.0235 0.0194 -4e-04 -0.0388 -0.0125 -0.0153 -0.0518 -0.1432 -0.0622 -0.1947 -0.2526 -0.1797 0.0629 -0.1807 0.0773 0.0258 0.135 -0.0487 0.1295 0.1508 0.1103 0.0562 0.1671 0.0427 1 - - - - - - - - - - - - - - - - -
Score_Feature Match -0.1663 -0.0523 -0.0733 -0.078 0.0683 0.0026 -0.1466 -0.1487 -0.1639 -0.1199 -0.1062 -0.0915 -0.0293 -0.1259 -0.0479 -0.0252 -0.0644 -0.0509 0.0124 0.0089 0.0041 -0.038 0.0447 0.0176 0.2434 0.0311 0.198 1 - - - - - - - - - - - - - - - -
Score_Polygons -0.0535 -0.0194 -0.001 0.0251 -0.1133 0.0826 0.0228 0.0401 0.0163 0.0455 -0.0271 -0.0139 -0.0806 -0.0847 0.0821 0.0655 0.0651 0.1081 0.0863 0.0733 0.1079 0.0582 0.1097 0.1636 0.1633 0.0738 0.1746 0.2338 1 - - - - - - - - - - - - - - -
Score_Paired Associates -0.0075 0.0153 0.0076 -0.1272 0.0284 0.0312 -0.0425 0.0258 -0.1304 0.0709 -0.0143 0.0796 0.1363 0.0942 -0.0177 0.1858 -0.102 -0.0869 -0.1097 -0.0647 -0.1087 -0.1289 -0.05 -0.0732 0.1515 0.0769 0.0868 0.1574 0.1262 1 - - - - - - - - - - - - - -
Score_Token Search -0.0344 -0.0362 -0.0068 0.0133 -0.0169 0.0736 -0.0653 0.0442 -0.0493 -0.0207 -0.0715 -0.0577 -0.0475 -0.0541 0.026 0.0011 -0.0474 -0.0192 -0.0139 -0.1036 -0.0111 -0.0521 -0.0089 0.0938 0.301 0.209 0.2015 0.1154 0.2425 0.2726 1 - - - - - - - - - - - - -
Score_Spatial Planning -0.0615 0.0265 0.0284 -0.0494 -0.0912 -0.0489 0.0562 0.0571 0.0521 0.0629 0.0134 0.0051 -0.015 0.0298 -0.0182 0.0582 -0.0221 -0.0152 -0.0532 -0.0494 -0.0574 -0.0493 -0.0642 -0.0084 0.2029 0.0918 0.0807 0.0941 0.2746 0.176 0.2741 1 - - - - - - - - - - - -
Score_Rotations -0.0786 -0.0568 -0.0268 -0.0221 -0.0484 0.084 -0.0063 0.1253 0.0921 0.1069 0.1008 0.0546 0.0109 -0.0665 -0.0043 0.0644 -0.0619 -0.0651 -0.068 -0.0154 -0.09 -0.1279 -0.0737 0.0075 0.2507 -0.0664 0.0716 0.2364 0.2391 0.1661 0.1958 0.2106 1 - - - - - - - - - - -
Score_Spatial Span -0.1651 -0.0161 -0.0204 0.0272 -0.0624 0.0518 -0.0297 0.0695 0.034 0.0862 0.0266 0.0383 -0.1103 -0.0414 -0.0597 0.0814 -0.1016 -0.0844 -0.0607 -0.0499 -0.0649 -0.0749 -0.0807 1e-04 0.2067 0.0024 0.1072 0.252 0.2942 0.1469 0.357 0.2863 0.2758 1 - - - - - - - - - -
Score_Grammatical Reasoning -0.03 -0.0101 0.0092 -0.1154 -0.113 0.12 0.0086 0.0843 0.015 0.1351 0.0229 -0.0583 -0.0729 0.0107 -0.001 0.0272 -0.0025 -0.0254 0.0387 0.0267 0.0348 0.0299 0.0143 0.024 0.2809 0.0787 0.1179 0.1682 0.2362 0.2568 0.1645 0.2237 0.2441 0.2518 1 - - - - - - - - -
Score_Monkey Ladder -0.0527 -0.0011 -0.1122 -0.0991 -0.0257 0.0382 -0.0553 0.0241 0.0384 0.0304 -0.0322 -0.0606 -0.0625 -0.0181 -0.0464 0.064 -0.1209 -0.1441 -0.078 -0.1117 -0.086 -0.1038 -0.0735 -0.0145 0.2852 0.0123 0.1539 0.1836 0.141 0.171 0.2926 0.2521 0.1344 0.3511 0.2741 1 - - - - - - - -
CBS_overall -0.02 -0.1512 -0.0235 0.0194 -4e-04 -0.0388 -0.0125 -0.0153 -0.0518 -0.1432 -0.0622 -0.1947 -0.2526 -0.1797 0.0629 -0.1807 0.0773 0.0258 0.135 -0.0487 0.1295 0.1508 0.1103 0.0562 0.1671 0.0427 1 0.198 0.1746 0.0868 0.2015 0.0807 0.0716 0.1072 0.1179 0.1539 1 - - - - - - -
CBS_STM -0.0527 -0.0011 -0.1122 -0.0991 -0.0257 0.0382 -0.0553 0.0241 0.0384 0.0304 -0.0322 -0.0606 -0.0625 -0.0181 -0.0464 0.064 -0.1209 -0.1441 -0.078 -0.1117 -0.086 -0.1038 -0.0735 -0.0145 0.2852 0.0123 0.1539 0.1836 0.141 0.171 0.2926 0.2521 0.1344 0.3511 0.2741 1 0.1539 1 - - - - - -
CBS_reason -0.1663 -0.0523 -0.0733 -0.078 0.0683 0.0026 -0.1466 -0.1487 -0.1639 -0.1199 -0.1062 -0.0915 -0.0293 -0.1259 -0.0479 -0.0252 -0.0644 -0.0509 0.0124 0.0089 0.0041 -0.038 0.0447 0.0176 0.2434 0.0311 0.198 1 0.2338 0.1574 0.1154 0.0941 0.2364 0.252 0.1682 0.1836 0.198 0.1836 1 - - - - -
CBS_verbal -0.03 -0.0101 0.0092 -0.1154 -0.113 0.12 0.0086 0.0843 0.015 0.1351 0.0229 -0.0583 -0.0729 0.0107 -0.001 0.0272 -0.0025 -0.0254 0.0387 0.0267 0.0348 0.0299 0.0143 0.024 0.2809 0.0787 0.1179 0.1682 0.2362 0.2568 0.1645 0.2237 0.2441 0.2518 1 0.2741 0.1179 0.2741 0.1682 1 - - - -
CBS_ts_memory -0.0527 -0.0011 -0.1122 -0.0991 -0.0257 0.0382 -0.0553 0.0241 0.0384 0.0304 -0.0322 -0.0606 -0.0625 -0.0181 -0.0464 0.064 -0.1209 -0.1441 -0.078 -0.1117 -0.086 -0.1038 -0.0735 -0.0145 0.2852 0.0123 0.1539 0.1836 0.141 0.171 0.2926 0.2521 0.1344 0.3511 0.2741 1 0.1539 1 0.1836 0.2741 1 - - -
CBS_ts_reason -0.0535 -0.0194 -0.001 0.0251 -0.1133 0.0826 0.0228 0.0401 0.0163 0.0455 -0.0271 -0.0139 -0.0806 -0.0847 0.0821 0.0655 0.0651 0.1081 0.0863 0.0733 0.1079 0.0582 0.1097 0.1636 0.1633 0.0738 0.1746 0.2338 1 0.1262 0.2425 0.2746 0.2391 0.2942 0.2362 0.141 0.1746 0.141 0.2338 0.2362 0.141 1 - -
CBS_ts_verbalab -0.03 -0.0101 0.0092 -0.1154 -0.113 0.12 0.0086 0.0843 0.015 0.1351 0.0229 -0.0583 -0.0729 0.0107 -0.001 0.0272 -0.0025 -0.0254 0.0387 0.0267 0.0348 0.0299 0.0143 0.024 0.2809 0.0787 0.1179 0.1682 0.2362 0.2568 0.1645 0.2237 0.2441 0.2518 1 0.2741 0.1179 0.2741 0.1682 1 0.2741 0.2362 1 -
CBS_ts_con -0.1663 -0.0523 -0.0733 -0.078 0.0683 0.0026 -0.1466 -0.1487 -0.1639 -0.1199 -0.1062 -0.0915 -0.0293 -0.1259 -0.0479 -0.0252 -0.0644 -0.0509 0.0124 0.0089 0.0041 -0.038 0.0447 0.0176 0.2434 0.0311 0.198 1 0.2338 0.1574 0.1154 0.0941 0.2364 0.252 0.1682 0.1836 0.198 0.1836 1 0.1682 0.1836 0.2338 0.1682 1
  

kable(as.data.frame(format(main_corr2$P, scientific = FALSE)), caption = "Pilot Study - Correlation: p values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: p values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 0.0033 0.0528 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 0.6101 0.9079 0.0097 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.0824 0.5701 0.4203 0.5393 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.4996 0.8037 0.0262 0.4651 0.0987 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.1797 0.5465 0.142 0.8634 0.3086 0.0067 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.8275 0.3508 0 0.4109 0 3e-04 0.8572 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.7022 0.5435 0.1716 0.9162 0 0.1642 0.8711 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.1095 0.1421 0.0036 0.7687 0 0.006 0.0802 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.2184 0.1526 0.3648 0.2557 0 0.5415 0.0609 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 0.9389 0.1091 0.1832 0.0245 0.9741 0.7276 0.6618 0.8945 0.8429 0.2483 0.0532 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.0417 0.0438 0.4458 0.9445 0.0286 0.4598 0.984 0.0438 0.5987 0.3569 0.2688 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.7139 0.6594 0.9981 0.7318 0.2054 0.5783 0.9594 0.4905 0.3646 0.8482 0.4435 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 0.2571 0.551 0.0177 0.3143 0.9704 0.8332 0.9667 0.2141 0.8253 0.7965 0.5062 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.0085 0.3287 0.1364 0.0895 0.663 0.9893 0.9688 0.9757 0.471 0.0069 0.2266 0 0 0 0.0529 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 0.0018 0.0511 0 0.0014 0.0489 0.0075 0.0508 3e-04 0.5652 0.1681 0.3128 1e-04 1e-04 0.01 4e-04 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 0.0202 0.0022 0 1e-04 0.0085 0.0111 0.006 0 0.0654 1e-04 0.0425 3e-04 0.0214 0.1122 0.0097 3e-04 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 0.216 2e-04 0 0.0079 0.0051 5e-04 0.2431 3e-04 0.6137 7e-04 0.0259 0 0 0 0.0029 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 0.7773 0.7051 0.0022 0.0272 0.0621 0.0186 0.5975 0.0976 0.6971 0.0119 0.5279 0.1086 0.0177 0.6575 0.1432 0.0332 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 0.0203 0.0015 0 0.0078 6e-04 3e-04 0.1115 0 0.7152 0.0043 0.2469 0 0 2e-04 4e-04 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 0.0175 0.0012 0 0.0352 7e-04 7e-04 0.1486 0 0.5113 0.0172 0.2116 0 0 8e-04 5e-04 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 0.1792 0.0318 0 0.0266 0.0074 0.0067 0.4716 1e-04 0.6039 0.0238 0.1019 3e-04 1e-04 0.0077 0.0147 0 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 0.0778 0.0033 0 0.0104 0.0036 0.005 0.0432 1e-04 0.9954 7e-04 0.4791 5e-04 0.0011 2e-04 0.0052 0.0018 0 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 0.3643 0.3851 0.138 0.0109 0.09 0.2563 0.7819 0.0277 0.584 0.8814 0.5061 0.4857 0.1325 0.9041 0.769 0.9466 0.1528 0.1565 0.8053 0.9171 0.8505 0.7294 0.798 0.9306 NA - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.826 0.4224 0.1779 0.2532 0.1457 0.7101 0.503 0.7488 0.0255 0.9856 0.125 0.4008 0.8133 0.9689 0.8425 0.1452 0.9881 0.2202 0.682 0.5864 0.3484 0.4732 0.9322 0.0284 0.1991 NA - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.7525 0.0178 0.712 0.7605 0.9949 0.5411 0.8441 0.8103 0.4152 0.0235 0.3271 0.002 1e-04 0.0044 0.3221 0.0041 0.2234 0.6852 0.0329 0.4432 0.0408 0.0171 0.0818 0.3762 0.0081 0.5012 NA - - - - - - - - - - - - - - - - -
Score_Feature Match 0.0084 0.4147 0.2482 0.2189 0.2823 0.9679 0.0204 0.0187 0.0094 0.0583 0.0938 0.1491 0.6447 0.0467 0.4511 0.6922 0.3103 0.4228 0.8451 0.8882 0.948 0.5493 0.4816 0.7813 1e-04 0.6245 0.0017 NA - - - - - - - - - - - - - - - -
Score_Polygons 0.3996 0.7631 0.9875 0.6925 0.0737 0.1931 0.7203 0.5284 0.7975 0.4737 0.6697 0.8271 0.2043 0.1819 0.1957 0.3021 0.3049 0.0882 0.1737 0.2485 0.0885 0.3598 0.0836 0.0096 0.0097 0.2448 0.0056 2e-04 NA - - - - - - - - - - - - - - -
Score_Paired Associates 0.9057 0.812 0.9043 0.0445 0.6548 0.6232 0.5038 0.6845 0.0393 0.2639 0.8222 0.2099 0.0312 0.1373 0.7802 0.0032 0.1076 0.1706 0.0833 0.3081 0.0863 0.0417 0.4309 0.2486 0.0165 0.2257 0.1712 0.0127 0.0462 NA - - - - - - - - - - - - - -
Score_Token Search 0.5882 0.5724 0.9146 0.8348 0.7906 0.2465 0.3036 0.487 0.4373 0.7452 0.2599 0.3639 0.4542 0.3948 0.6821 0.9866 0.4552 0.7626 0.8263 0.1021 0.861 0.4125 0.8884 0.139 0 9e-04 0.0014 0.0685 1e-04 0 NA - - - - - - - - - - - - -
Score_Spatial Planning 0.3329 0.6795 0.6553 0.4363 0.1504 0.4414 0.3759 0.3684 0.4117 0.3216 0.8331 0.9362 0.8137 0.639 0.7745 0.3594 0.7283 0.8108 0.4019 0.4368 0.3662 0.4379 0.3123 0.8946 0.0013 0.1476 0.2037 0.1379 0 0.0053 0 NA - - - - - - - - - - - -
Score_Rotations 0.2157 0.3757 0.6733 0.7281 0.4466 0.1857 0.9212 0.0478 0.1466 0.0916 0.1117 0.3902 0.8638 0.2952 0.9458 0.3104 0.3298 0.3052 0.2839 0.8084 0.156 0.0434 0.2458 0.9062 1e-04 0.2954 0.2596 2e-04 1e-04 0.0085 0.0019 8e-04 NA - - - - - - - - - - -
Score_Spatial Span 0.0089 0.8017 0.7484 0.6685 0.3258 0.415 0.64 0.274 0.5921 0.1745 0.6756 0.5464 0.0819 0.5152 0.3468 0.1997 0.1091 0.1833 0.3391 0.4324 0.3064 0.2379 0.2032 0.999 0.001 0.9703 0.0908 1e-04 0 0.0202 0 0 0 NA - - - - - - - - - -
Score_Grammatical Reasoning 0.6372 0.8756 0.8849 0.0686 0.0745 0.0581 0.8927 0.184 0.8133 0.0328 0.7188 0.3588 0.2506 0.866 0.9878 0.6686 0.9686 0.69 0.543 0.6744 0.5837 0.6382 0.822 0.7056 0 0.2148 0.0627 0.0077 2e-04 0 0.0092 4e-04 1e-04 1e-04 NA - - - - - - - - -
Score_Monkey Ladder 0.4068 0.9858 0.0767 0.1183 0.6855 0.5477 0.384 0.7045 0.5451 0.6319 0.6124 0.3396 0.325 0.7755 0.4648 0.3132 0.0563 0.0226 0.2192 0.078 0.1752 0.1014 0.2472 0.82 0 0.8467 0.0149 0.0036 0.0258 0.0067 0 1e-04 0.0337 0 0 NA - - - - - - - -
CBS_overall 0.7525 0.0178 0.712 0.7605 0.9949 0.5411 0.8441 0.8103 0.4152 0.0235 0.3271 0.002 1e-04 0.0044 0.3221 0.0041 0.2234 0.6852 0.0329 0.4432 0.0408 0.0171 0.0818 0.3762 0.0081 0.5012 0 0.0017 0.0056 0.1712 0.0014 0.2037 0.2596 0.0908 0.0627 0.0149 NA - - - - - - -
CBS_STM 0.4068 0.9858 0.0767 0.1183 0.6855 0.5477 0.384 0.7045 0.5451 0.6319 0.6124 0.3396 0.325 0.7755 0.4648 0.3132 0.0563 0.0226 0.2192 0.078 0.1752 0.1014 0.2472 0.82 0 0.8467 0.0149 0.0036 0.0258 0.0067 0 1e-04 0.0337 0 0 0 0.0149 NA - - - - - -
CBS_reason 0.0084 0.4147 0.2482 0.2189 0.2823 0.9679 0.0204 0.0187 0.0094 0.0583 0.0938 0.1491 0.6447 0.0467 0.4511 0.6922 0.3103 0.4228 0.8451 0.8882 0.948 0.5493 0.4816 0.7813 1e-04 0.6245 0.0017 0 2e-04 0.0127 0.0685 0.1379 2e-04 1e-04 0.0077 0.0036 0.0017 0.0036 NA - - - - -
CBS_verbal 0.6372 0.8756 0.8849 0.0686 0.0745 0.0581 0.8927 0.184 0.8133 0.0328 0.7188 0.3588 0.2506 0.866 0.9878 0.6686 0.9686 0.69 0.543 0.6744 0.5837 0.6382 0.822 0.7056 0 0.2148 0.0627 0.0077 2e-04 0 0.0092 4e-04 1e-04 1e-04 0 0 0.0627 0 0.0077 NA - - - -
CBS_ts_memory 0.4068 0.9858 0.0767 0.1183 0.6855 0.5477 0.384 0.7045 0.5451 0.6319 0.6124 0.3396 0.325 0.7755 0.4648 0.3132 0.0563 0.0226 0.2192 0.078 0.1752 0.1014 0.2472 0.82 0 0.8467 0.0149 0.0036 0.0258 0.0067 0 1e-04 0.0337 0 0 0 0.0149 0 0.0036 0 NA - - -
CBS_ts_reason 0.3996 0.7631 0.9875 0.6925 0.0737 0.1931 0.7203 0.5284 0.7975 0.4737 0.6697 0.8271 0.2043 0.1819 0.1957 0.3021 0.3049 0.0882 0.1737 0.2485 0.0885 0.3598 0.0836 0.0096 0.0097 0.2448 0.0056 2e-04 0 0.0462 1e-04 0 1e-04 0 2e-04 0.0258 0.0056 0.0258 2e-04 2e-04 0.0258 NA - -
CBS_ts_verbalab 0.6372 0.8756 0.8849 0.0686 0.0745 0.0581 0.8927 0.184 0.8133 0.0328 0.7188 0.3588 0.2506 0.866 0.9878 0.6686 0.9686 0.69 0.543 0.6744 0.5837 0.6382 0.822 0.7056 0 0.2148 0.0627 0.0077 2e-04 0 0.0092 4e-04 1e-04 1e-04 0 0 0.0627 0 0.0077 0 0 2e-04 NA -
CBS_ts_con 0.0084 0.4147 0.2482 0.2189 0.2823 0.9679 0.0204 0.0187 0.0094 0.0583 0.0938 0.1491 0.6447 0.0467 0.4511 0.6922 0.3103 0.4228 0.8451 0.8882 0.948 0.5493 0.4816 0.7813 1e-04 0.6245 0.0017 0 2e-04 0.0127 0.0685 0.1379 2e-04 1e-04 0.0077 0.0036 0.0017 0.0036 0 0.0077 0.0036 2e-04 0.0077 NA

kable(as.data.frame(format(main_corr2$n, scientific = FALSE)), caption = "Pilot Study - Correlation: n values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: n values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 245 245 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 250 245 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 250 245 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 250 245 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 250 245 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 250 245 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 250 245 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 250 245 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 250 245 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 250 245 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 250 245 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 250 245 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 250 245 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - - -
Score_Digit Span 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - - -
Score_Feature Match 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - - -
Score_Polygons 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - - -
Score_Paired Associates 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - - -
Score_Token Search 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - - -
Score_Spatial Planning 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - - -
Score_Rotations 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - - -
Score_Spatial Span 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - - -
Score_Grammatical Reasoning 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - - -
Score_Monkey Ladder 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - - -
CBS_overall 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - - -
CBS_STM 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - - -
CBS_reason 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - - -
CBS_verbal 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - - -
CBS_ts_memory 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - - -
CBS_ts_reason 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 - -
CBS_ts_verbalab 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 -
CBS_ts_con 250 245 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250

corrplot(main_corr$r, method = "circle", col = (colorRampPalette(c("purple", "grey", "blue"))(50)),  
         type = "upper",  
         # addCoef.col = "black", # Add coefficient of correlation
         tl.col = "darkblue", tl.srt = 90, tl.cex = .8, #Text label color and rotation
         # Combine with significance level
         p.mat = main_corr$P, sig.level = 0.05, 
         addgrid.col = "white",
         insig = "blank",# insig = "pch", pch = 10, pch.col = "red", pch.cex = .1, # add this instead of insig above to denot insig p values with red dot
         # hide correlation coefficient on the principal diagonal
         diag = FALSE, 
         win.asp = 1
         )

For Desk…

main_corr_desk <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum, `Score_Double Trouble`:`Score_Monkey Ladder`, CBS_overall, CBS_STM, CBS_reason, CBS_verbal, CBS_ts_memory, CBS_ts_reason, CBS_ts_verbalab, CBS_ts_con) %>% 
  filter(condition == "desk") %>% 
  select(-condition) %>% 
  as.matrix() %>%
  rcorr(type = "pearson")

# create new main_corr_desk to shown only lower triangle... 
main_corr_desk2 <- main_corr_desk
# round to 4 decimals... 
main_corr_desk2$r <- round(main_corr_desk2$r, 4)
main_corr_desk2$P <- round(main_corr_desk2$P, 4)
main_corr_desk2$n <- round(main_corr_desk2$n, 4)
# remove upper triangle form r, p, and n
main_corr_desk2$r[upper.tri(main_corr_desk2$r)] <- "-"
main_corr_desk2$P[upper.tri(main_corr_desk2$P)] <- "-"
main_corr_desk2$n[upper.tri(main_corr_desk2$n)] <- "-"

# show corr table with flattenCorr

kable(flattenCorrMatrix(main_corr_desk$r, main_corr_desk$P), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
row column cor p
age age_first_phone 0.2165088 0.0569191
age dist_daily -0.1924838 0.0851480
age_first_phone dist_daily -0.1374036 0.2302859
age dist_study -0.1415241 0.2075706
age_first_phone dist_study -0.0786081 0.4939125
dist_daily dist_study 0.1828636 0.1022585
age pow_not_using -0.1312318 0.2428927
age_first_phone pow_not_using 0.0432064 0.7072119
dist_daily pow_not_using -0.2325557 0.0366892
dist_study pow_not_using -0.0569237 0.6137275
age pow_notifications_on 0.1080859 0.3368182
age_first_phone pow_notifications_on -0.0243425 0.8324601
dist_daily pow_notifications_on 0.1070304 0.3415856
dist_study pow_notifications_on -0.0759464 0.5003951
pow_not_using pow_notifications_on -0.1921165 0.0857566
age pow_vibrate 0.0562651 0.6178420
age_first_phone pow_vibrate 0.0147146 0.8982561
dist_daily pow_vibrate -0.2396879 0.0311474
dist_study pow_vibrate 0.0547237 0.6275190
pow_not_using pow_vibrate -0.0358004 0.7510177
pow_notifications_on pow_vibrate 0.2267617 0.0417769
age pow_study -0.0394371 0.7266738
age_first_phone pow_study -0.0480221 0.6763033
dist_daily pow_study 0.3492170 0.0013967
dist_study pow_study 0.0065440 0.9537635
pow_not_using pow_study -0.5505455 0.0000001
pow_notifications_on pow_study 0.2360314 0.0338934
pow_vibrate pow_study -0.0073224 0.9482711
age pow_exam -0.0405211 0.7194687
age_first_phone pow_exam -0.1611783 0.1586160
dist_daily pow_exam 0.0780375 0.4886370
dist_study pow_exam 0.0091234 0.9355723
pow_not_using pow_exam -0.3627585 0.0008740
pow_notifications_on pow_exam 0.1841489 0.0998282
pow_vibrate pow_exam 0.1432114 0.2021481
pow_study pow_exam 0.3986483 0.0002277
age pow_lec -0.0237922 0.8330185
age_first_phone pow_lec -0.1262140 0.2708509
dist_daily pow_lec 0.3118195 0.0046002
dist_study pow_lec -0.1433667 0.2016543
pow_not_using pow_lec -0.5174960 0.0000008
pow_notifications_on pow_lec 0.1655709 0.1396238
pow_vibrate pow_lec 0.1376018 0.2205736
pow_study pow_lec 0.7356354 0.0000000
pow_exam pow_lec 0.2979226 0.0069077
age pow_sleep 0.0668926 0.5529528
age_first_phone pow_sleep -0.1103954 0.3359546
dist_daily pow_sleep 0.1297879 0.2481608
dist_study pow_sleep -0.1302447 0.2464859
pow_not_using pow_sleep -0.4353317 0.0000487
pow_notifications_on pow_sleep 0.2256441 0.0428227
pow_vibrate pow_sleep 0.1795982 0.1086403
pow_study pow_sleep 0.6175602 0.0000000
pow_exam pow_sleep 0.3269258 0.0028927
pow_lec pow_sleep 0.6431956 0.0000000
age com_gen 0.1517332 0.1763058
age_first_phone com_gen 0.1277102 0.2651650
dist_daily com_gen -0.2643395 0.0170948
dist_study com_gen -0.1374774 0.2209950
pow_not_using com_gen -0.1109698 0.3240078
pow_notifications_on com_gen 0.1751001 0.1179321
pow_vibrate com_gen -0.0098954 0.9301339
pow_study com_gen -0.0738063 0.5125798
pow_exam com_gen 0.1070821 0.3413512
pow_lec com_gen 0.0609978 0.5885411
pow_sleep com_gen 0.1372487 0.2217716
age com_unattended 0.3358091 0.0021779
age_first_phone com_unattended 0.0569678 0.6203138
dist_daily com_unattended -0.0716740 0.5248686
dist_study com_unattended 0.0083263 0.9411911
pow_not_using com_unattended -0.0244425 0.8285237
pow_notifications_on com_unattended 0.0573932 0.6108014
pow_vibrate com_unattended 0.1189992 0.2900044
pow_study com_unattended -0.1003031 0.3729578
pow_exam com_unattended 0.1077445 0.3383555
pow_lec com_unattended -0.0581505 0.6060939
pow_sleep com_unattended -0.1336181 0.2343558
com_gen com_unattended 0.2780020 0.0119751
age com_leave_with_other 0.0734330 0.5147203
age_first_phone com_leave_with_other -0.0146812 0.8984861
dist_daily com_leave_with_other -0.0867745 0.4411298
dist_study com_leave_with_other 0.0785462 0.4857987
pow_not_using com_leave_with_other -0.0877444 0.4360211
pow_notifications_on com_leave_with_other 0.0355800 0.7525015
pow_vibrate com_leave_with_other 0.0600628 0.5942796
pow_study com_leave_with_other 0.0075982 0.9463257
pow_exam com_leave_with_other 0.2606902 0.0187460
pow_lec com_leave_with_other 0.0328653 0.7708458
pow_sleep com_leave_with_other -0.0651476 0.5633795
com_gen com_leave_with_other 0.5081745 0.0000013
com_unattended com_leave_with_other 0.5257097 0.0000005
age com_locked -0.1881106 0.0926211
age_first_phone com_locked 0.0018686 0.9870457
dist_daily com_locked -0.0898781 0.4249013
dist_study com_locked 0.0283340 0.8017425
pow_not_using com_locked 0.0750281 0.5056050
pow_notifications_on com_locked -0.1321361 0.2396327
pow_vibrate com_locked 0.0455047 0.6866646
pow_study com_locked -0.0267312 0.8127472
pow_exam com_locked -0.1545044 0.1684466
pow_lec com_locked -0.0546872 0.6277485
pow_sleep com_locked -0.0172524 0.8785012
com_gen com_locked -0.2718827 0.0140746
com_unattended com_locked -0.4246429 0.0000778
com_leave_with_other com_locked -0.3774842 0.0005127
age com_room_task 0.1521986 0.1749674
age_first_phone com_room_task 0.0053245 0.9630986
dist_daily com_room_task -0.1267931 0.2593364
dist_study com_room_task -0.1633139 0.1451772
pow_not_using com_room_task -0.1719221 0.1248574
pow_notifications_on com_room_task 0.0961013 0.3934119
pow_vibrate com_room_task 0.0532812 0.6366318
pow_study com_room_task 0.0414288 0.7134539
pow_exam com_room_task 0.1399897 0.2125909
pow_lec com_room_task 0.1790282 0.1097851
pow_sleep com_room_task -0.0153833 0.8915793
com_gen com_room_task 0.4041377 0.0001828
com_unattended com_room_task 0.4442837 0.0000325
com_leave_with_other com_room_task 0.4301953 0.0000611
com_locked com_room_task -0.1987795 0.0752385
age NMPQ_sum -0.0438286 0.6976364
age_first_phone NMPQ_sum -0.1369074 0.2319894
dist_daily NMPQ_sum 0.5538681 0.0000001
dist_study NMPQ_sum 0.1845862 0.0990117
pow_not_using NMPQ_sum -0.1990369 0.0748539
pow_notifications_on NMPQ_sum 0.1144988 0.3087612
pow_vibrate NMPQ_sum -0.2133524 0.0558237
pow_study NMPQ_sum 0.2404224 0.0306190
pow_exam NMPQ_sum 0.0757520 0.5014960
pow_lec NMPQ_sum 0.1834049 0.1012293
pow_sleep NMPQ_sum 0.1416533 0.2071518
com_gen NMPQ_sum -0.2443471 0.0279219
com_unattended NMPQ_sum -0.2749422 0.0129881
com_leave_with_other NMPQ_sum -0.1956875 0.0799832
com_locked NMPQ_sum 0.1731936 0.1220501
com_room_task NMPQ_sum -0.3013061 0.0062676
age MPIQ_sum 0.0229564 0.8388045
age_first_phone MPIQ_sum -0.3844208 0.0005112
dist_daily MPIQ_sum 0.6680713 0.0000000
dist_study MPIQ_sum 0.2604963 0.0188374
pow_not_using MPIQ_sum -0.2289962 0.0397494
pow_notifications_on MPIQ_sum 0.1058334 0.3470431
pow_vibrate MPIQ_sum -0.2678782 0.0156148
pow_study MPIQ_sum 0.3368334 0.0021067
pow_exam MPIQ_sum 0.0842692 0.4544801
pow_lec MPIQ_sum 0.2634489 0.0174858
pow_sleep MPIQ_sum 0.1883065 0.0922756
com_gen MPIQ_sum -0.3023090 0.0060883
com_unattended MPIQ_sum -0.1646540 0.1418601
com_leave_with_other MPIQ_sum -0.1430277 0.2027335
com_locked MPIQ_sum 0.0340209 0.7630208
com_room_task MPIQ_sum -0.1811228 0.1056231
NMPQ_sum MPIQ_sum 0.7781585 0.0000000
age MPIQ_SI_sum 0.0007274 0.9948575
age_first_phone MPIQ_SI_sum -0.2981269 0.0080242
dist_daily MPIQ_SI_sum 0.4662521 0.0000115
dist_study MPIQ_SI_sum 0.2161386 0.0526249
pow_not_using MPIQ_SI_sum -0.2465754 0.0264819
pow_notifications_on MPIQ_SI_sum 0.1075502 0.3392327
pow_vibrate MPIQ_SI_sum -0.1363334 0.2248986
pow_study MPIQ_SI_sum 0.2418122 0.0296398
pow_exam MPIQ_SI_sum 0.0251358 0.8237370
pow_lec MPIQ_SI_sum 0.2866525 0.0094738
pow_sleep MPIQ_SI_sum 0.1935577 0.0833880
com_gen MPIQ_SI_sum -0.2832353 0.0104013
com_unattended MPIQ_SI_sum -0.2602829 0.0189384
com_leave_with_other MPIQ_SI_sum -0.2135916 0.0555431
com_locked MPIQ_SI_sum 0.0963839 0.3920157
com_room_task MPIQ_SI_sum -0.2686949 0.0152894
NMPQ_sum MPIQ_SI_sum 0.7652990 0.0000000
MPIQ_sum MPIQ_SI_sum 0.7333146 0.0000000
age MPIQ_VFO_sum 0.0835449 0.4583810
age_first_phone MPIQ_VFO_sum -0.0384321 0.7383296
dist_daily MPIQ_VFO_sum 0.1707734 0.1274355
dist_study MPIQ_VFO_sum 0.0389157 0.7301480
pow_not_using MPIQ_VFO_sum -0.2176096 0.0509975
pow_notifications_on MPIQ_VFO_sum 0.0958121 0.3948436
pow_vibrate MPIQ_VFO_sum -0.1547595 0.1677363
pow_study MPIQ_VFO_sum 0.2583922 0.0198544
pow_exam MPIQ_VFO_sum 0.1368716 0.2230561
pow_lec MPIQ_VFO_sum 0.2768634 0.0123438
pow_sleep MPIQ_VFO_sum 0.2546888 0.0217589
com_gen MPIQ_VFO_sum -0.0507365 0.6528396
com_unattended MPIQ_VFO_sum -0.2135579 0.0555825
com_leave_with_other MPIQ_VFO_sum 0.0107698 0.9239775
com_locked MPIQ_VFO_sum 0.0664826 0.5553941
com_room_task MPIQ_VFO_sum -0.0649498 0.5645668
NMPQ_sum MPIQ_VFO_sum 0.3452866 0.0015941
MPIQ_sum MPIQ_VFO_sum 0.3402815 0.0018820
MPIQ_SI_sum MPIQ_VFO_sum 0.3715187 0.0006383
age SAD_sum 0.0251949 0.8233293
age_first_phone SAD_sum -0.3102579 0.0057018
dist_daily SAD_sum 0.6009002 0.0000000
dist_study SAD_sum 0.2186306 0.0498925
pow_not_using SAD_sum -0.2577465 0.0201758
pow_notifications_on SAD_sum 0.1476989 0.1882214
pow_vibrate SAD_sum -0.2069520 0.0637761
pow_study SAD_sum 0.2217689 0.0466186
pow_exam SAD_sum 0.0139349 0.9017345
pow_lec SAD_sum 0.2376913 0.0326227
pow_sleep SAD_sum 0.1553794 0.1660196
com_gen SAD_sum -0.3095360 0.0049244
com_unattended SAD_sum -0.2861568 0.0096037
com_leave_with_other SAD_sum -0.2278597 0.0407702
com_locked SAD_sum 0.1479284 0.1875282
com_room_task SAD_sum -0.2586195 0.0197424
NMPQ_sum SAD_sum 0.8182993 0.0000000
MPIQ_sum SAD_sum 0.8574631 0.0000000
MPIQ_SI_sum SAD_sum 0.8317344 0.0000000
MPIQ_VFO_sum SAD_sum 0.4332777 0.0000534
age SAD_dep_sum -0.0383700 0.7337905
age_first_phone SAD_dep_sum -0.2430896 0.0319906
dist_daily SAD_dep_sum 0.5444130 0.0000001
dist_study SAD_dep_sum 0.2339773 0.0355232
pow_not_using SAD_dep_sum -0.2345985 0.0350236
pow_notifications_on SAD_dep_sum 0.1752683 0.1175739
pow_vibrate SAD_dep_sum -0.2414751 0.0298749
pow_study SAD_dep_sum 0.2427090 0.0290221
pow_exam SAD_dep_sum 0.0332746 0.7680713
pow_lec SAD_dep_sum 0.1869713 0.0946504
pow_sleep SAD_dep_sum 0.1557660 0.1649554
com_gen SAD_dep_sum -0.2988913 0.0067188
com_unattended SAD_dep_sum -0.2701107 0.0147391
com_leave_with_other SAD_dep_sum -0.2123739 0.0569843
com_locked SAD_dep_sum 0.1293141 0.2499066
com_room_task SAD_dep_sum -0.2788972 0.0116921
NMPQ_sum SAD_dep_sum 0.8007954 0.0000000
MPIQ_sum SAD_dep_sum 0.7976564 0.0000000
MPIQ_SI_sum SAD_dep_sum 0.8130855 0.0000000
MPIQ_VFO_sum SAD_dep_sum 0.4247017 0.0000776
SAD_sum SAD_dep_sum 0.9394359 0.0000000
age SAD_ea_sum 0.0950845 0.3984597
age_first_phone SAD_ea_sum -0.3546995 0.0014409
dist_daily SAD_ea_sum 0.4863598 0.0000042
dist_study SAD_ea_sum 0.2028337 0.0693615
pow_not_using SAD_ea_sum -0.2479548 0.0256225
pow_notifications_on SAD_ea_sum 0.1361494 0.2255307
pow_vibrate SAD_ea_sum -0.0713300 0.5268649
pow_study SAD_ea_sum 0.2307295 0.0382337
pow_exam SAD_ea_sum 0.0283423 0.8016855
pow_lec SAD_ea_sum 0.3153313 0.0041384
pow_sleep SAD_ea_sum 0.2139082 0.0551733
com_gen SAD_ea_sum -0.2683331 0.0154328
com_unattended SAD_ea_sum -0.2462739 0.0266730
com_leave_with_other SAD_ea_sum -0.1276780 0.2559992
com_locked SAD_ea_sum 0.1642476 0.1428600
com_room_task SAD_ea_sum -0.2293491 0.0394368
NMPQ_sum SAD_ea_sum 0.7115527 0.0000000
MPIQ_sum SAD_ea_sum 0.7751911 0.0000000
MPIQ_SI_sum SAD_ea_sum 0.7479143 0.0000000
MPIQ_VFO_sum SAD_ea_sum 0.5260704 0.0000005
SAD_sum SAD_ea_sum 0.8878869 0.0000000
SAD_dep_sum SAD_ea_sum 0.7437880 0.0000000
age SAD_dist_sum 0.0235647 0.8345929
age_first_phone SAD_dist_sum -0.3304918 0.0031245
dist_daily SAD_dist_sum 0.6391112 0.0000000
dist_study SAD_dist_sum 0.1196625 0.2873049
pow_not_using SAD_dist_sum -0.2042376 0.0674148
pow_notifications_on SAD_dist_sum 0.0203371 0.8569896
pow_vibrate SAD_dist_sum -0.2349881 0.0347133
pow_study SAD_dist_sum 0.1361156 0.2256472
pow_exam SAD_dist_sum 0.0141874 0.8999631
pow_lec SAD_dist_sum 0.1604637 0.1524249
pow_sleep SAD_dist_sum 0.0752425 0.5043864
com_gen SAD_dist_sum -0.2705181 0.0145840
com_unattended SAD_dist_sum -0.1985104 0.0756422
com_leave_with_other SAD_dist_sum -0.2665750 0.0161464
com_locked SAD_dist_sum 0.0582805 0.6052876
com_room_task SAD_dist_sum -0.2020615 0.0704515
NMPQ_sum SAD_dist_sum 0.6283545 0.0000000
MPIQ_sum SAD_dist_sum 0.7443604 0.0000000
MPIQ_SI_sum SAD_dist_sum 0.6201243 0.0000000
MPIQ_VFO_sum SAD_dist_sum 0.1742084 0.1198447
SAD_sum SAD_dist_sum 0.8002762 0.0000000
SAD_dep_sum SAD_dist_sum 0.6300436 0.0000000
SAD_ea_sum SAD_dist_sum 0.6574574 0.0000000
age Score_Double Trouble 0.2207031 0.0477100
age_first_phone Score_Double Trouble 0.0598669 0.6026027
dist_daily Score_Double Trouble -0.0930902 0.4084711
dist_study Score_Double Trouble -0.1452904 0.1956071
pow_not_using Score_Double Trouble -0.0629974 0.5763532
pow_notifications_on Score_Double Trouble 0.1802089 0.1074237
pow_vibrate Score_Double Trouble 0.2408762 0.0302964
pow_study Score_Double Trouble 0.0593030 0.5989615
pow_exam Score_Double Trouble 0.0527537 0.6399776
pow_lec Score_Double Trouble 0.0998864 0.3749570
pow_sleep Score_Double Trouble -0.0260311 0.8175655
com_gen Score_Double Trouble -0.0685427 0.5431799
com_unattended Score_Double Trouble 0.0677977 0.5475818
com_leave_with_other Score_Double Trouble 0.0249531 0.8249974
com_locked Score_Double Trouble -0.0074979 0.9470327
com_room_task Score_Double Trouble 0.2118426 0.0576225
NMPQ_sum Score_Double Trouble -0.0981673 0.3832726
MPIQ_sum Score_Double Trouble -0.0907704 0.4202997
MPIQ_SI_sum Score_Double Trouble 0.0733045 0.5154583
MPIQ_VFO_sum Score_Double Trouble 0.0546364 0.6280687
SAD_sum Score_Double Trouble -0.0196951 0.8614589
SAD_dep_sum Score_Double Trouble -0.0432604 0.7013703
SAD_ea_sum Score_Double Trouble 0.0228395 0.8396139
SAD_dist_sum Score_Double Trouble -0.0172825 0.8782909
age Score_Odd One Out -0.0194713 0.8630173
age_first_phone Score_Odd One Out -0.1179812 0.3035939
dist_daily Score_Odd One Out 0.0912931 0.4176171
dist_study Score_Odd One Out -0.2264160 0.0420981
pow_not_using Score_Odd One Out 0.0858113 0.4462362
pow_notifications_on Score_Odd One Out 0.0835817 0.4581824
pow_vibrate Score_Odd One Out -0.0772060 0.4932950
pow_study Score_Odd One Out 0.0404313 0.7200648
pow_exam Score_Odd One Out 0.0492049 0.6626734
pow_lec Score_Odd One Out 0.0310868 0.7829329
pow_sleep Score_Odd One Out 0.0969852 0.3890545
com_gen Score_Odd One Out 0.0065309 0.9538562
com_unattended Score_Odd One Out -0.0363369 0.7474105
com_leave_with_other Score_Odd One Out -0.0918055 0.4149976
com_locked Score_Odd One Out -0.0002657 0.9981217
com_room_task Score_Odd One Out 0.1215039 0.2798984
NMPQ_sum Score_Odd One Out 0.0224421 0.8423684
MPIQ_sum Score_Odd One Out 0.1230567 0.2737524
MPIQ_SI_sum Score_Odd One Out -0.0012890 0.9908881
MPIQ_VFO_sum Score_Odd One Out 0.0653206 0.5623412
SAD_sum Score_Odd One Out 0.0862413 0.4439524
SAD_dep_sum Score_Odd One Out 0.0218653 0.8463700
SAD_ea_sum Score_Odd One Out 0.0839272 0.4563201
SAD_dist_sum Score_Odd One Out 0.1626572 0.1468237
Score_Double Trouble Score_Odd One Out 0.0230255 0.8383258
age Score_Digit Span -0.1895172 0.0901632
age_first_phone Score_Digit Span -0.2283877 0.0443080
dist_daily Score_Digit Span 0.0257650 0.8193985
dist_study Score_Digit Span 0.1828496 0.1022850
pow_not_using Score_Digit Span 0.0325344 0.7730907
pow_notifications_on Score_Digit Span -0.0595650 0.5973451
pow_vibrate Score_Digit Span -0.0134486 0.9051471
pow_study Score_Digit Span -0.0164209 0.8843154
pow_exam Score_Digit Span -0.0467727 0.6784065
pow_lec Score_Digit Span -0.0476572 0.6726682
pow_sleep Score_Digit Span -0.0259085 0.8184095
com_gen Score_Digit Span -0.1115853 0.3213148
com_unattended Score_Digit Span -0.2446891 0.0276966
com_leave_with_other Score_Digit Span -0.1021683 0.3640889
com_locked Score_Digit Span -0.0009946 0.9929687
com_room_task Score_Digit Span -0.2600676 0.0190409
NMPQ_sum Score_Digit Span 0.0581160 0.6063083
MPIQ_sum Score_Digit Span 0.0786073 0.4854583
MPIQ_SI_sum Score_Digit Span 0.0201004 0.8586370
MPIQ_VFO_sum Score_Digit Span 0.0084361 0.9404164
SAD_sum Score_Digit Span 0.1021015 0.3644043
SAD_dep_sum Score_Digit Span 0.1299387 0.2476070
SAD_ea_sum Score_Digit Span 0.0856556 0.4470648
SAD_dist_sum Score_Digit Span 0.0458482 0.6844233
Score_Double Trouble Score_Digit Span 0.0784250 0.4864741
Score_Odd One Out Score_Digit Span -0.0562475 0.6179524
age Score_Feature Match -0.1557525 0.1649925
age_first_phone Score_Feature Match -0.1103844 0.3360030
dist_daily Score_Feature Match -0.0095237 0.9327519
dist_study Score_Feature Match -0.2462655 0.0266784
pow_not_using Score_Feature Match -0.0103389 0.9270107
pow_notifications_on Score_Feature Match -0.0507747 0.6525949
pow_vibrate Score_Feature Match -0.0407576 0.7178999
pow_study Score_Feature Match -0.0766654 0.4963355
pow_exam Score_Feature Match -0.1037345 0.3567432
pow_lec Score_Feature Match 0.1279135 0.2551160
pow_sleep Score_Feature Match -0.1105533 0.3258385
com_gen Score_Feature Match -0.1109400 0.3241386
com_unattended Score_Feature Match -0.1072953 0.3403852
com_leave_with_other Score_Feature Match -0.1326438 0.2378158
com_locked Score_Feature Match -0.1015883 0.3668327
com_room_task Score_Feature Match 0.0552012 0.6245143
NMPQ_sum Score_Feature Match -0.0622007 0.5811948
MPIQ_sum Score_Feature Match -0.0167978 0.8816791
MPIQ_SI_sum Score_Feature Match 0.0413679 0.7138569
MPIQ_VFO_sum Score_Feature Match 0.0239972 0.8316010
SAD_sum Score_Feature Match 0.0357732 0.7512012
SAD_dep_sum Score_Feature Match 0.0121335 0.9143857
SAD_ea_sum Score_Feature Match 0.0050078 0.9646097
SAD_dist_sum Score_Feature Match 0.0634730 0.5734717
Score_Double Trouble Score_Feature Match 0.1419272 0.2062658
Score_Odd One Out Score_Feature Match 0.1083239 0.3357490
Score_Digit Span Score_Feature Match 0.2302187 0.0386752
age Score_Polygons -0.1457700 0.1941201
age_first_phone Score_Polygons -0.0374179 0.7449959
dist_daily Score_Polygons 0.0536050 0.6345814
dist_study Score_Polygons -0.0088388 0.9375780
pow_not_using Score_Polygons -0.1440581 0.1994655
pow_notifications_on Score_Polygons 0.0113236 0.9200812
pow_vibrate Score_Polygons 0.0331508 0.7689104
pow_study Score_Polygons 0.0412174 0.7148531
pow_exam Score_Polygons 0.1091335 0.3321283
pow_lec Score_Polygons 0.0898531 0.4250308
pow_sleep Score_Polygons 0.0614103 0.5860171
com_gen Score_Polygons 0.1008688 0.3702543
com_unattended Score_Polygons -0.0190976 0.8656217
com_leave_with_other Score_Polygons 0.0137271 0.9031927
com_locked Score_Polygons 0.0443242 0.6943854
com_room_task Score_Polygons 0.2078223 0.0626437
NMPQ_sum Score_Polygons 0.0630629 0.5759559
MPIQ_sum Score_Polygons 0.0436440 0.6988483
MPIQ_SI_sum Score_Polygons 0.0995142 0.3767483
MPIQ_VFO_sum Score_Polygons 0.0369405 0.7433589
SAD_sum Score_Polygons 0.0554666 0.6228471
SAD_dep_sum Score_Polygons 0.0425578 0.7059970
SAD_ea_sum Score_Polygons 0.0431955 0.7017971
SAD_dist_sum Score_Polygons 0.0714126 0.5263851
Score_Double Trouble Score_Polygons 0.1437662 0.2003875
Score_Odd One Out Score_Polygons 0.1156506 0.3038875
Score_Digit Span Score_Polygons 0.1187786 0.2909060
Score_Feature Match Score_Polygons 0.1565392 0.1628424
age Score_Paired Associates 0.0263139 0.8156183
age_first_phone Score_Paired Associates 0.0117268 0.9188364
dist_daily Score_Paired Associates 0.0299862 0.7904385
dist_study Score_Paired Associates -0.1866843 0.0951670
pow_not_using Score_Paired Associates -0.1020206 0.3647869
pow_notifications_on Score_Paired Associates -0.0752740 0.5042073
pow_vibrate Score_Paired Associates -0.1023517 0.3632241
pow_study Score_Paired Associates 0.1349779 0.2295856
pow_exam Score_Paired Associates -0.1160649 0.3021468
pow_lec Score_Paired Associates 0.2547555 0.0217233
pow_sleep Score_Paired Associates 0.0125423 0.9115125
com_gen Score_Paired Associates -0.0270972 0.8102308
com_unattended Score_Paired Associates 0.0009941 0.9929728
com_leave_with_other Score_Paired Associates -0.0785548 0.4857511
com_locked Score_Paired Associates -0.0257012 0.8198379
com_room_task Score_Paired Associates 0.3314611 0.0025051
NMPQ_sum Score_Paired Associates -0.1315467 0.2417539
MPIQ_sum Score_Paired Associates -0.0239244 0.8321045
MPIQ_SI_sum Score_Paired Associates -0.1764132 0.1151586
MPIQ_VFO_sum Score_Paired Associates -0.0536029 0.6345949
SAD_sum Score_Paired Associates -0.1191848 0.2892474
SAD_dep_sum Score_Paired Associates -0.1725318 0.1235050
SAD_ea_sum Score_Paired Associates -0.1086307 0.3343739
SAD_dist_sum Score_Paired Associates 0.0279443 0.8044145
Score_Double Trouble Score_Paired Associates 0.1252957 0.2650505
Score_Odd One Out Score_Paired Associates 0.1351568 0.2289634
Score_Digit Span Score_Paired Associates -0.0086972 0.9385759
Score_Feature Match Score_Paired Associates 0.2052490 0.0660400
Score_Polygons Score_Paired Associates 0.1124105 0.3177264
age Score_Token Search -0.1447351 0.1973391
age_first_phone Score_Token Search -0.1312744 0.2519476
dist_daily Score_Token Search 0.2466942 0.0264070
dist_study Score_Token Search -0.1306372 0.2450526
pow_not_using Score_Token Search -0.1571338 0.1612310
pow_notifications_on Score_Token Search 0.0790787 0.4828375
pow_vibrate Score_Token Search 0.0035720 0.9747522
pow_study Score_Token Search 0.1626953 0.1467277
pow_exam Score_Token Search -0.0294266 0.7942622
pow_lec Score_Token Search 0.1977314 0.0768209
pow_sleep Score_Token Search -0.0028644 0.9797526
com_gen Score_Token Search -0.0902451 0.4230052
com_unattended Score_Token Search -0.0034961 0.9752885
com_leave_with_other Score_Token Search -0.0966981 0.3904667
com_locked Score_Token Search 0.0921014 0.4134890
com_room_task Score_Token Search 0.1186149 0.2915760
NMPQ_sum Score_Token Search 0.0165018 0.8837497
MPIQ_sum Score_Token Search -0.0020447 0.9855463
MPIQ_SI_sum Score_Token Search 0.0819923 0.4668046
MPIQ_VFO_sum Score_Token Search -0.0458731 0.6842616
SAD_sum Score_Token Search 0.0986235 0.3810551
SAD_dep_sum Score_Token Search 0.0487620 0.6655275
SAD_ea_sum Score_Token Search 0.0042294 0.9701079
SAD_dist_sum Score_Token Search 0.2394824 0.0312966
Score_Double Trouble Score_Token Search 0.2482723 0.0254281
Score_Odd One Out Score_Token Search 0.1745106 0.1191937
Score_Digit Span Score_Token Search 0.0502526 0.6559403
Score_Feature Match Score_Token Search 0.1382860 0.2182650
Score_Polygons Score_Token Search 0.2621792 0.0180564
Score_Paired Associates Score_Token Search 0.3783099 0.0004972
age Score_Spatial Planning -0.2667681 0.0160667
age_first_phone Score_Spatial Planning 0.0346435 0.7633280
dist_daily Score_Spatial Planning 0.1842158 0.0997030
dist_study Score_Spatial Planning -0.1214711 0.2800290
pow_not_using Score_Spatial Planning -0.1275777 0.2563763
pow_notifications_on Score_Spatial Planning 0.0068795 0.9513957
pow_vibrate Score_Spatial Planning -0.0052249 0.9630760
pow_study Score_Spatial Planning 0.2311527 0.0378710
pow_exam Score_Spatial Planning 0.0541410 0.6311935
pow_lec Score_Spatial Planning 0.1058993 0.3467412
pow_sleep Score_Spatial Planning 0.0065911 0.9534309
com_gen Score_Spatial Planning -0.1285800 0.2526278
com_unattended Score_Spatial Planning -0.0418728 0.7105181
com_leave_with_other Score_Spatial Planning -0.0200395 0.8590609
com_locked Score_Spatial Planning 0.0348055 0.7577215
com_room_task Score_Spatial Planning 0.1008686 0.3702550
NMPQ_sum Score_Spatial Planning -0.0127225 0.9102464
MPIQ_sum Score_Spatial Planning 0.0064309 0.9545621
MPIQ_SI_sum Score_Spatial Planning -0.0854896 0.4479495
MPIQ_VFO_sum Score_Spatial Planning -0.1382741 0.2183050
SAD_sum Score_Spatial Planning -0.0236179 0.8342244
SAD_dep_sum Score_Spatial Planning -0.0442140 0.6951078
SAD_ea_sum Score_Spatial Planning -0.0777964 0.4899851
SAD_dist_sum Score_Spatial Planning 0.0790053 0.4832448
Score_Double Trouble Score_Spatial Planning 0.1774283 0.1130490
Score_Odd One Out Score_Spatial Planning 0.0211026 0.8516664
Score_Digit Span Score_Spatial Planning 0.0661450 0.5574081
Score_Feature Match Score_Spatial Planning 0.1345973 0.2309141
Score_Polygons Score_Spatial Planning 0.3715078 0.0006386
Score_Paired Associates Score_Spatial Planning 0.2796774 0.0114501
Score_Token Search Score_Spatial Planning 0.4060418 0.0001693
age Score_Rotations 0.0809161 0.4726929
age_first_phone Score_Rotations 0.0955088 0.4055240
dist_daily Score_Rotations -0.1086944 0.3340892
dist_study Score_Rotations -0.1102230 0.3272947
pow_not_using Score_Rotations -0.0385757 0.7324166
pow_notifications_on Score_Rotations 0.0204522 0.8561891
pow_vibrate Score_Rotations 0.0976921 0.3855906
pow_study Score_Rotations 0.1708378 0.1272901
pow_exam Score_Rotations 0.1911419 0.0873884
pow_lec Score_Rotations 0.1678576 0.1341623
pow_sleep Score_Rotations 0.0346443 0.7588094
com_gen Score_Rotations 0.0361580 0.7486132
com_unattended Score_Rotations 0.1225246 0.2758479
com_leave_with_other Score_Rotations -0.0896833 0.4259095
com_locked Score_Rotations -0.0934815 0.4064953
com_room_task Score_Rotations 0.1975815 0.0770493
NMPQ_sum Score_Rotations -0.1614594 0.1498630
MPIQ_sum Score_Rotations -0.1955695 0.0801690
MPIQ_SI_sum Score_Rotations -0.1600141 0.1535926
MPIQ_VFO_sum Score_Rotations 0.0016509 0.9883297
SAD_sum Score_Rotations -0.2139800 0.0550897
SAD_dep_sum Score_Rotations -0.2385954 0.0319475
SAD_ea_sum Score_Rotations -0.2213364 0.0470590
SAD_dist_sum Score_Rotations -0.0500828 0.6570292
Score_Double Trouble Score_Rotations 0.1995902 0.0740325
Score_Odd One Out Score_Rotations 0.0917227 0.4154202
Score_Digit Span Score_Rotations 0.1341038 0.2326442
Score_Feature Match Score_Rotations 0.2380636 0.0323432
Score_Polygons Score_Rotations 0.1780808 0.1117091
Score_Paired Associates Score_Rotations 0.4016351 0.0002022
Score_Token Search Score_Rotations 0.3254488 0.0030300
Score_Spatial Planning Score_Rotations 0.2950410 0.0074975
age Score_Spatial Span -0.2205835 0.0478338
age_first_phone Score_Spatial Span 0.1099011 0.3381359
dist_daily Score_Spatial Span 0.1047970 0.3518118
dist_study Score_Spatial Span 0.0179119 0.8738941
pow_not_using Score_Spatial Span -0.1172193 0.2973309
pow_notifications_on Score_Spatial Span -0.0252044 0.8232639
pow_vibrate Score_Spatial Span 0.0007809 0.9944794
pow_study Score_Spatial Span 0.0939890 0.4039414
pow_exam Score_Spatial Span 0.0526140 0.6408654
pow_lec Score_Spatial Span 0.1342809 0.2320223
pow_sleep Score_Spatial Span -0.0458552 0.6843777
com_gen Score_Spatial Span 0.0912493 0.4178415
com_unattended Score_Spatial Span 0.0316652 0.7789960
com_leave_with_other Score_Spatial Span 0.1086949 0.3340867
com_locked Score_Spatial Span 0.0887930 0.4305357
com_room_task Score_Spatial Span 0.2022743 0.0701497
NMPQ_sum Score_Spatial Span -0.0810271 0.4720834
MPIQ_sum Score_Spatial Span -0.1281647 0.2541763
MPIQ_SI_sum Score_Spatial Span -0.0676190 0.5486401
MPIQ_VFO_sum Score_Spatial Span -0.0092646 0.9345776
SAD_sum Score_Spatial Span -0.1035351 0.3576731
SAD_dep_sum Score_Spatial Span -0.0608542 0.5894209
SAD_ea_sum Score_Spatial Span -0.1701396 0.1288755
SAD_dist_sum Score_Spatial Span -0.1039596 0.3556950
Score_Double Trouble Score_Spatial Span 0.0903148 0.4226454
Score_Odd One Out Score_Spatial Span -0.0493072 0.6620145
Score_Digit Span Score_Spatial Span 0.2247540 0.0436711
Score_Feature Match Score_Spatial Span 0.2655001 0.0165966
Score_Polygons Score_Spatial Span 0.4073534 0.0001605
Score_Paired Associates Score_Spatial Span 0.2523389 0.0230465
Score_Token Search Score_Spatial Span 0.3773428 0.0005154
Score_Spatial Planning Score_Spatial Span 0.3119872 0.0045771
Score_Rotations Score_Spatial Span 0.3299858 0.0026257
age Score_Grammatical Reasoning 0.0339801 0.7632970
age_first_phone Score_Grammatical Reasoning -0.0107576 0.9255244
dist_daily Score_Grammatical Reasoning 0.0577709 0.6084514
dist_study Score_Grammatical Reasoning -0.2460452 0.0268187
pow_not_using Score_Grammatical Reasoning -0.0090590 0.9360265
pow_notifications_on Score_Grammatical Reasoning 0.1064718 0.3441257
pow_vibrate Score_Grammatical Reasoning 0.0386937 0.7316293
pow_study Score_Grammatical Reasoning 0.0793316 0.4814339
pow_exam Score_Grammatical Reasoning 0.1196247 0.2874586
pow_lec Score_Grammatical Reasoning 0.1771068 0.1137139
pow_sleep Score_Grammatical Reasoning -0.0515160 0.6478573
com_gen Score_Grammatical Reasoning -0.0129725 0.9084907
com_unattended Score_Grammatical Reasoning 0.0739121 0.5119734
com_leave_with_other Score_Grammatical Reasoning 0.1232519 0.2729861
com_locked Score_Grammatical Reasoning -0.0458580 0.6843598
com_room_task Score_Grammatical Reasoning 0.1758069 0.1164329
NMPQ_sum Score_Grammatical Reasoning 0.0133664 0.9057247
MPIQ_sum Score_Grammatical Reasoning -0.0157629 0.8889209
MPIQ_SI_sum Score_Grammatical Reasoning -0.0519303 0.6452151
MPIQ_VFO_sum Score_Grammatical Reasoning -0.0642206 0.5689557
SAD_sum Score_Grammatical Reasoning -0.0388008 0.7309146
SAD_dep_sum Score_Grammatical Reasoning -0.0769936 0.4944887
SAD_ea_sum Score_Grammatical Reasoning -0.0269962 0.8109250
SAD_dist_sum Score_Grammatical Reasoning 0.0100091 0.9293330
Score_Double Trouble Score_Grammatical Reasoning 0.1897947 0.0896843
Score_Odd One Out Score_Grammatical Reasoning 0.1407511 0.2100890
Score_Digit Span Score_Grammatical Reasoning 0.0904955 0.4217139
Score_Feature Match Score_Grammatical Reasoning 0.1714824 0.1258395
Score_Polygons Score_Grammatical Reasoning 0.2036947 0.0681624
Score_Paired Associates Score_Grammatical Reasoning 0.3794786 0.0004761
Score_Token Search Score_Grammatical Reasoning 0.2716031 0.0141777
Score_Spatial Planning Score_Grammatical Reasoning 0.2197725 0.0486801
Score_Rotations Score_Grammatical Reasoning 0.4099674 0.0001442
Score_Spatial Span Score_Grammatical Reasoning 0.1929801 0.0843310
age Score_Monkey Ladder 0.0209822 0.8525031
age_first_phone Score_Monkey Ladder -0.1345288 0.2402785
dist_daily Score_Monkey Ladder 0.0122993 0.9132205
dist_study Score_Monkey Ladder -0.1246470 0.2675523
pow_not_using Score_Monkey Ladder -0.1056195 0.3480238
pow_notifications_on Score_Monkey Ladder 0.0044335 0.9686662
pow_vibrate Score_Monkey Ladder 0.0120710 0.9148253
pow_study Score_Monkey Ladder 0.1917310 0.0863991
pow_exam Score_Monkey Ladder -0.0098955 0.9301328
pow_lec Score_Monkey Ladder 0.1791646 0.1095104
pow_sleep Score_Monkey Ladder 0.0161381 0.8862946
com_gen Score_Monkey Ladder 0.0172855 0.8782699
com_unattended Score_Monkey Ladder -0.2453230 0.0272833
com_leave_with_other Score_Monkey Ladder -0.0045021 0.9681812
com_locked Score_Monkey Ladder 0.0812215 0.4710177
com_room_task Score_Monkey Ladder 0.1565220 0.1628891
NMPQ_sum Score_Monkey Ladder -0.0113547 0.9198626
MPIQ_sum Score_Monkey Ladder 0.0185699 0.8693017
MPIQ_SI_sum Score_Monkey Ladder 0.0999838 0.3744893
MPIQ_VFO_sum Score_Monkey Ladder -0.0253047 0.8225718
SAD_sum Score_Monkey Ladder 0.0651132 0.5635859
SAD_dep_sum Score_Monkey Ladder 0.0153522 0.8917970
SAD_ea_sum Score_Monkey Ladder 0.1041808 0.3546667
SAD_dist_sum Score_Monkey Ladder 0.0872751 0.4384888
Score_Double Trouble Score_Monkey Ladder 0.4139577 0.0001223
Score_Odd One Out Score_Monkey Ladder 0.0671316 0.5515322
Score_Digit Span Score_Monkey Ladder 0.2083976 0.0619042
Score_Feature Match Score_Monkey Ladder 0.2393356 0.0314036
Score_Polygons Score_Monkey Ladder 0.2449301 0.0275389
Score_Paired Associates Score_Monkey Ladder 0.1932434 0.0839000
Score_Token Search Score_Monkey Ladder 0.3713708 0.0006418
Score_Spatial Planning Score_Monkey Ladder 0.2636944 0.0173772
Score_Rotations Score_Monkey Ladder 0.2268240 0.0417192
Score_Spatial Span Score_Monkey Ladder 0.1920029 0.0859456
Score_Grammatical Reasoning Score_Monkey Ladder 0.2351271 0.0346031
age CBS_overall -0.1895172 0.0901632
age_first_phone CBS_overall -0.2283877 0.0443080
dist_daily CBS_overall 0.0257650 0.8193985
dist_study CBS_overall 0.1828496 0.1022850
pow_not_using CBS_overall 0.0325344 0.7730907
pow_notifications_on CBS_overall -0.0595650 0.5973451
pow_vibrate CBS_overall -0.0134486 0.9051471
pow_study CBS_overall -0.0164209 0.8843154
pow_exam CBS_overall -0.0467727 0.6784065
pow_lec CBS_overall -0.0476572 0.6726682
pow_sleep CBS_overall -0.0259085 0.8184095
com_gen CBS_overall -0.1115853 0.3213148
com_unattended CBS_overall -0.2446891 0.0276966
com_leave_with_other CBS_overall -0.1021683 0.3640889
com_locked CBS_overall -0.0009946 0.9929687
com_room_task CBS_overall -0.2600676 0.0190409
NMPQ_sum CBS_overall 0.0581160 0.6063083
MPIQ_sum CBS_overall 0.0786073 0.4854583
MPIQ_SI_sum CBS_overall 0.0201004 0.8586370
MPIQ_VFO_sum CBS_overall 0.0084361 0.9404164
SAD_sum CBS_overall 0.1021015 0.3644043
SAD_dep_sum CBS_overall 0.1299387 0.2476070
SAD_ea_sum CBS_overall 0.0856556 0.4470648
SAD_dist_sum CBS_overall 0.0458482 0.6844233
Score_Double Trouble CBS_overall 0.0784250 0.4864741
Score_Odd One Out CBS_overall -0.0562475 0.6179524
Score_Digit Span CBS_overall 1.0000000 0.0000000
Score_Feature Match CBS_overall 0.2302187 0.0386752
Score_Polygons CBS_overall 0.1187786 0.2909060
Score_Paired Associates CBS_overall -0.0086972 0.9385759
Score_Token Search CBS_overall 0.0502526 0.6559403
Score_Spatial Planning CBS_overall 0.0661450 0.5574081
Score_Rotations CBS_overall 0.1341038 0.2326442
Score_Spatial Span CBS_overall 0.2247540 0.0436711
Score_Grammatical Reasoning CBS_overall 0.0904955 0.4217139
Score_Monkey Ladder CBS_overall 0.2083976 0.0619042
age CBS_STM 0.0209822 0.8525031
age_first_phone CBS_STM -0.1345288 0.2402785
dist_daily CBS_STM 0.0122993 0.9132205
dist_study CBS_STM -0.1246470 0.2675523
pow_not_using CBS_STM -0.1056195 0.3480238
pow_notifications_on CBS_STM 0.0044335 0.9686662
pow_vibrate CBS_STM 0.0120710 0.9148253
pow_study CBS_STM 0.1917310 0.0863991
pow_exam CBS_STM -0.0098955 0.9301328
pow_lec CBS_STM 0.1791646 0.1095104
pow_sleep CBS_STM 0.0161381 0.8862946
com_gen CBS_STM 0.0172855 0.8782699
com_unattended CBS_STM -0.2453230 0.0272833
com_leave_with_other CBS_STM -0.0045021 0.9681812
com_locked CBS_STM 0.0812215 0.4710177
com_room_task CBS_STM 0.1565220 0.1628891
NMPQ_sum CBS_STM -0.0113547 0.9198626
MPIQ_sum CBS_STM 0.0185699 0.8693017
MPIQ_SI_sum CBS_STM 0.0999838 0.3744893
MPIQ_VFO_sum CBS_STM -0.0253047 0.8225718
SAD_sum CBS_STM 0.0651132 0.5635859
SAD_dep_sum CBS_STM 0.0153522 0.8917970
SAD_ea_sum CBS_STM 0.1041808 0.3546667
SAD_dist_sum CBS_STM 0.0872751 0.4384888
Score_Double Trouble CBS_STM 0.4139577 0.0001223
Score_Odd One Out CBS_STM 0.0671316 0.5515322
Score_Digit Span CBS_STM 0.2083976 0.0619042
Score_Feature Match CBS_STM 0.2393356 0.0314036
Score_Polygons CBS_STM 0.2449301 0.0275389
Score_Paired Associates CBS_STM 0.1932434 0.0839000
Score_Token Search CBS_STM 0.3713708 0.0006418
Score_Spatial Planning CBS_STM 0.2636944 0.0173772
Score_Rotations CBS_STM 0.2268240 0.0417192
Score_Spatial Span CBS_STM 0.1920029 0.0859456
Score_Grammatical Reasoning CBS_STM 0.2351271 0.0346031
Score_Monkey Ladder CBS_STM 1.0000000 0.0000000
CBS_overall CBS_STM 0.2083976 0.0619042
age CBS_reason -0.1557525 0.1649925
age_first_phone CBS_reason -0.1103844 0.3360030
dist_daily CBS_reason -0.0095237 0.9327519
dist_study CBS_reason -0.2462655 0.0266784
pow_not_using CBS_reason -0.0103389 0.9270107
pow_notifications_on CBS_reason -0.0507747 0.6525949
pow_vibrate CBS_reason -0.0407576 0.7178999
pow_study CBS_reason -0.0766654 0.4963355
pow_exam CBS_reason -0.1037345 0.3567432
pow_lec CBS_reason 0.1279135 0.2551160
pow_sleep CBS_reason -0.1105533 0.3258385
com_gen CBS_reason -0.1109400 0.3241386
com_unattended CBS_reason -0.1072953 0.3403852
com_leave_with_other CBS_reason -0.1326438 0.2378158
com_locked CBS_reason -0.1015883 0.3668327
com_room_task CBS_reason 0.0552012 0.6245143
NMPQ_sum CBS_reason -0.0622007 0.5811948
MPIQ_sum CBS_reason -0.0167978 0.8816791
MPIQ_SI_sum CBS_reason 0.0413679 0.7138569
MPIQ_VFO_sum CBS_reason 0.0239972 0.8316010
SAD_sum CBS_reason 0.0357732 0.7512012
SAD_dep_sum CBS_reason 0.0121335 0.9143857
SAD_ea_sum CBS_reason 0.0050078 0.9646097
SAD_dist_sum CBS_reason 0.0634730 0.5734717
Score_Double Trouble CBS_reason 0.1419272 0.2062658
Score_Odd One Out CBS_reason 0.1083239 0.3357490
Score_Digit Span CBS_reason 0.2302187 0.0386752
Score_Feature Match CBS_reason 1.0000000 0.0000000
Score_Polygons CBS_reason 0.1565392 0.1628424
Score_Paired Associates CBS_reason 0.2052490 0.0660400
Score_Token Search CBS_reason 0.1382860 0.2182650
Score_Spatial Planning CBS_reason 0.1345973 0.2309141
Score_Rotations CBS_reason 0.2380636 0.0323432
Score_Spatial Span CBS_reason 0.2655001 0.0165966
Score_Grammatical Reasoning CBS_reason 0.1714824 0.1258395
Score_Monkey Ladder CBS_reason 0.2393356 0.0314036
CBS_overall CBS_reason 0.2302187 0.0386752
CBS_STM CBS_reason 0.2393356 0.0314036
age CBS_verbal 0.0339801 0.7632970
age_first_phone CBS_verbal -0.0107576 0.9255244
dist_daily CBS_verbal 0.0577709 0.6084514
dist_study CBS_verbal -0.2460452 0.0268187
pow_not_using CBS_verbal -0.0090590 0.9360265
pow_notifications_on CBS_verbal 0.1064718 0.3441257
pow_vibrate CBS_verbal 0.0386937 0.7316293
pow_study CBS_verbal 0.0793316 0.4814339
pow_exam CBS_verbal 0.1196247 0.2874586
pow_lec CBS_verbal 0.1771068 0.1137139
pow_sleep CBS_verbal -0.0515160 0.6478573
com_gen CBS_verbal -0.0129725 0.9084907
com_unattended CBS_verbal 0.0739121 0.5119734
com_leave_with_other CBS_verbal 0.1232519 0.2729861
com_locked CBS_verbal -0.0458580 0.6843598
com_room_task CBS_verbal 0.1758069 0.1164329
NMPQ_sum CBS_verbal 0.0133664 0.9057247
MPIQ_sum CBS_verbal -0.0157629 0.8889209
MPIQ_SI_sum CBS_verbal -0.0519303 0.6452151
MPIQ_VFO_sum CBS_verbal -0.0642206 0.5689557
SAD_sum CBS_verbal -0.0388008 0.7309146
SAD_dep_sum CBS_verbal -0.0769936 0.4944887
SAD_ea_sum CBS_verbal -0.0269962 0.8109250
SAD_dist_sum CBS_verbal 0.0100091 0.9293330
Score_Double Trouble CBS_verbal 0.1897947 0.0896843
Score_Odd One Out CBS_verbal 0.1407511 0.2100890
Score_Digit Span CBS_verbal 0.0904955 0.4217139
Score_Feature Match CBS_verbal 0.1714824 0.1258395
Score_Polygons CBS_verbal 0.2036947 0.0681624
Score_Paired Associates CBS_verbal 0.3794786 0.0004761
Score_Token Search CBS_verbal 0.2716031 0.0141777
Score_Spatial Planning CBS_verbal 0.2197725 0.0486801
Score_Rotations CBS_verbal 0.4099674 0.0001442
Score_Spatial Span CBS_verbal 0.1929801 0.0843310
Score_Grammatical Reasoning CBS_verbal 1.0000000 0.0000000
Score_Monkey Ladder CBS_verbal 0.2351271 0.0346031
CBS_overall CBS_verbal 0.0904955 0.4217139
CBS_STM CBS_verbal 0.2351271 0.0346031
CBS_reason CBS_verbal 0.1714824 0.1258395
age CBS_ts_memory 0.0209822 0.8525031
age_first_phone CBS_ts_memory -0.1345288 0.2402785
dist_daily CBS_ts_memory 0.0122993 0.9132205
dist_study CBS_ts_memory -0.1246470 0.2675523
pow_not_using CBS_ts_memory -0.1056195 0.3480238
pow_notifications_on CBS_ts_memory 0.0044335 0.9686662
pow_vibrate CBS_ts_memory 0.0120710 0.9148253
pow_study CBS_ts_memory 0.1917310 0.0863991
pow_exam CBS_ts_memory -0.0098955 0.9301328
pow_lec CBS_ts_memory 0.1791646 0.1095104
pow_sleep CBS_ts_memory 0.0161381 0.8862946
com_gen CBS_ts_memory 0.0172855 0.8782699
com_unattended CBS_ts_memory -0.2453230 0.0272833
com_leave_with_other CBS_ts_memory -0.0045021 0.9681812
com_locked CBS_ts_memory 0.0812215 0.4710177
com_room_task CBS_ts_memory 0.1565220 0.1628891
NMPQ_sum CBS_ts_memory -0.0113547 0.9198626
MPIQ_sum CBS_ts_memory 0.0185699 0.8693017
MPIQ_SI_sum CBS_ts_memory 0.0999838 0.3744893
MPIQ_VFO_sum CBS_ts_memory -0.0253047 0.8225718
SAD_sum CBS_ts_memory 0.0651132 0.5635859
SAD_dep_sum CBS_ts_memory 0.0153522 0.8917970
SAD_ea_sum CBS_ts_memory 0.1041808 0.3546667
SAD_dist_sum CBS_ts_memory 0.0872751 0.4384888
Score_Double Trouble CBS_ts_memory 0.4139577 0.0001223
Score_Odd One Out CBS_ts_memory 0.0671316 0.5515322
Score_Digit Span CBS_ts_memory 0.2083976 0.0619042
Score_Feature Match CBS_ts_memory 0.2393356 0.0314036
Score_Polygons CBS_ts_memory 0.2449301 0.0275389
Score_Paired Associates CBS_ts_memory 0.1932434 0.0839000
Score_Token Search CBS_ts_memory 0.3713708 0.0006418
Score_Spatial Planning CBS_ts_memory 0.2636944 0.0173772
Score_Rotations CBS_ts_memory 0.2268240 0.0417192
Score_Spatial Span CBS_ts_memory 0.1920029 0.0859456
Score_Grammatical Reasoning CBS_ts_memory 0.2351271 0.0346031
Score_Monkey Ladder CBS_ts_memory 1.0000000 0.0000000
CBS_overall CBS_ts_memory 0.2083976 0.0619042
CBS_STM CBS_ts_memory 1.0000000 0.0000000
CBS_reason CBS_ts_memory 0.2393356 0.0314036
CBS_verbal CBS_ts_memory 0.2351271 0.0346031
age CBS_ts_reason -0.1457700 0.1941201
age_first_phone CBS_ts_reason -0.0374179 0.7449959
dist_daily CBS_ts_reason 0.0536050 0.6345814
dist_study CBS_ts_reason -0.0088388 0.9375780
pow_not_using CBS_ts_reason -0.1440581 0.1994655
pow_notifications_on CBS_ts_reason 0.0113236 0.9200812
pow_vibrate CBS_ts_reason 0.0331508 0.7689104
pow_study CBS_ts_reason 0.0412174 0.7148531
pow_exam CBS_ts_reason 0.1091335 0.3321283
pow_lec CBS_ts_reason 0.0898531 0.4250308
pow_sleep CBS_ts_reason 0.0614103 0.5860171
com_gen CBS_ts_reason 0.1008688 0.3702543
com_unattended CBS_ts_reason -0.0190976 0.8656217
com_leave_with_other CBS_ts_reason 0.0137271 0.9031927
com_locked CBS_ts_reason 0.0443242 0.6943854
com_room_task CBS_ts_reason 0.2078223 0.0626437
NMPQ_sum CBS_ts_reason 0.0630629 0.5759559
MPIQ_sum CBS_ts_reason 0.0436440 0.6988483
MPIQ_SI_sum CBS_ts_reason 0.0995142 0.3767483
MPIQ_VFO_sum CBS_ts_reason 0.0369405 0.7433589
SAD_sum CBS_ts_reason 0.0554666 0.6228471
SAD_dep_sum CBS_ts_reason 0.0425578 0.7059970
SAD_ea_sum CBS_ts_reason 0.0431955 0.7017971
SAD_dist_sum CBS_ts_reason 0.0714126 0.5263851
Score_Double Trouble CBS_ts_reason 0.1437662 0.2003875
Score_Odd One Out CBS_ts_reason 0.1156506 0.3038875
Score_Digit Span CBS_ts_reason 0.1187786 0.2909060
Score_Feature Match CBS_ts_reason 0.1565392 0.1628424
Score_Polygons CBS_ts_reason 1.0000000 0.0000000
Score_Paired Associates CBS_ts_reason 0.1124105 0.3177264
Score_Token Search CBS_ts_reason 0.2621792 0.0180564
Score_Spatial Planning CBS_ts_reason 0.3715078 0.0006386
Score_Rotations CBS_ts_reason 0.1780808 0.1117091
Score_Spatial Span CBS_ts_reason 0.4073534 0.0001605
Score_Grammatical Reasoning CBS_ts_reason 0.2036947 0.0681624
Score_Monkey Ladder CBS_ts_reason 0.2449301 0.0275389
CBS_overall CBS_ts_reason 0.1187786 0.2909060
CBS_STM CBS_ts_reason 0.2449301 0.0275389
CBS_reason CBS_ts_reason 0.1565392 0.1628424
CBS_verbal CBS_ts_reason 0.2036947 0.0681624
CBS_ts_memory CBS_ts_reason 0.2449301 0.0275389
age CBS_ts_verbalab 0.0339801 0.7632970
age_first_phone CBS_ts_verbalab -0.0107576 0.9255244
dist_daily CBS_ts_verbalab 0.0577709 0.6084514
dist_study CBS_ts_verbalab -0.2460452 0.0268187
pow_not_using CBS_ts_verbalab -0.0090590 0.9360265
pow_notifications_on CBS_ts_verbalab 0.1064718 0.3441257
pow_vibrate CBS_ts_verbalab 0.0386937 0.7316293
pow_study CBS_ts_verbalab 0.0793316 0.4814339
pow_exam CBS_ts_verbalab 0.1196247 0.2874586
pow_lec CBS_ts_verbalab 0.1771068 0.1137139
pow_sleep CBS_ts_verbalab -0.0515160 0.6478573
com_gen CBS_ts_verbalab -0.0129725 0.9084907
com_unattended CBS_ts_verbalab 0.0739121 0.5119734
com_leave_with_other CBS_ts_verbalab 0.1232519 0.2729861
com_locked CBS_ts_verbalab -0.0458580 0.6843598
com_room_task CBS_ts_verbalab 0.1758069 0.1164329
NMPQ_sum CBS_ts_verbalab 0.0133664 0.9057247
MPIQ_sum CBS_ts_verbalab -0.0157629 0.8889209
MPIQ_SI_sum CBS_ts_verbalab -0.0519303 0.6452151
MPIQ_VFO_sum CBS_ts_verbalab -0.0642206 0.5689557
SAD_sum CBS_ts_verbalab -0.0388008 0.7309146
SAD_dep_sum CBS_ts_verbalab -0.0769936 0.4944887
SAD_ea_sum CBS_ts_verbalab -0.0269962 0.8109250
SAD_dist_sum CBS_ts_verbalab 0.0100091 0.9293330
Score_Double Trouble CBS_ts_verbalab 0.1897947 0.0896843
Score_Odd One Out CBS_ts_verbalab 0.1407511 0.2100890
Score_Digit Span CBS_ts_verbalab 0.0904955 0.4217139
Score_Feature Match CBS_ts_verbalab 0.1714824 0.1258395
Score_Polygons CBS_ts_verbalab 0.2036947 0.0681624
Score_Paired Associates CBS_ts_verbalab 0.3794786 0.0004761
Score_Token Search CBS_ts_verbalab 0.2716031 0.0141777
Score_Spatial Planning CBS_ts_verbalab 0.2197725 0.0486801
Score_Rotations CBS_ts_verbalab 0.4099674 0.0001442
Score_Spatial Span CBS_ts_verbalab 0.1929801 0.0843310
Score_Grammatical Reasoning CBS_ts_verbalab 1.0000000 0.0000000
Score_Monkey Ladder CBS_ts_verbalab 0.2351271 0.0346031
CBS_overall CBS_ts_verbalab 0.0904955 0.4217139
CBS_STM CBS_ts_verbalab 0.2351271 0.0346031
CBS_reason CBS_ts_verbalab 0.1714824 0.1258395
CBS_verbal CBS_ts_verbalab 1.0000000 0.0000000
CBS_ts_memory CBS_ts_verbalab 0.2351271 0.0346031
CBS_ts_reason CBS_ts_verbalab 0.2036947 0.0681624
age CBS_ts_con -0.1557525 0.1649925
age_first_phone CBS_ts_con -0.1103844 0.3360030
dist_daily CBS_ts_con -0.0095237 0.9327519
dist_study CBS_ts_con -0.2462655 0.0266784
pow_not_using CBS_ts_con -0.0103389 0.9270107
pow_notifications_on CBS_ts_con -0.0507747 0.6525949
pow_vibrate CBS_ts_con -0.0407576 0.7178999
pow_study CBS_ts_con -0.0766654 0.4963355
pow_exam CBS_ts_con -0.1037345 0.3567432
pow_lec CBS_ts_con 0.1279135 0.2551160
pow_sleep CBS_ts_con -0.1105533 0.3258385
com_gen CBS_ts_con -0.1109400 0.3241386
com_unattended CBS_ts_con -0.1072953 0.3403852
com_leave_with_other CBS_ts_con -0.1326438 0.2378158
com_locked CBS_ts_con -0.1015883 0.3668327
com_room_task CBS_ts_con 0.0552012 0.6245143
NMPQ_sum CBS_ts_con -0.0622007 0.5811948
MPIQ_sum CBS_ts_con -0.0167978 0.8816791
MPIQ_SI_sum CBS_ts_con 0.0413679 0.7138569
MPIQ_VFO_sum CBS_ts_con 0.0239972 0.8316010
SAD_sum CBS_ts_con 0.0357732 0.7512012
SAD_dep_sum CBS_ts_con 0.0121335 0.9143857
SAD_ea_sum CBS_ts_con 0.0050078 0.9646097
SAD_dist_sum CBS_ts_con 0.0634730 0.5734717
Score_Double Trouble CBS_ts_con 0.1419272 0.2062658
Score_Odd One Out CBS_ts_con 0.1083239 0.3357490
Score_Digit Span CBS_ts_con 0.2302187 0.0386752
Score_Feature Match CBS_ts_con 1.0000000 0.0000000
Score_Polygons CBS_ts_con 0.1565392 0.1628424
Score_Paired Associates CBS_ts_con 0.2052490 0.0660400
Score_Token Search CBS_ts_con 0.1382860 0.2182650
Score_Spatial Planning CBS_ts_con 0.1345973 0.2309141
Score_Rotations CBS_ts_con 0.2380636 0.0323432
Score_Spatial Span CBS_ts_con 0.2655001 0.0165966
Score_Grammatical Reasoning CBS_ts_con 0.1714824 0.1258395
Score_Monkey Ladder CBS_ts_con 0.2393356 0.0314036
CBS_overall CBS_ts_con 0.2302187 0.0386752
CBS_STM CBS_ts_con 0.2393356 0.0314036
CBS_reason CBS_ts_con 1.0000000 0.0000000
CBS_verbal CBS_ts_con 0.1714824 0.1258395
CBS_ts_memory CBS_ts_con 0.2393356 0.0314036
CBS_ts_reason CBS_ts_con 0.1565392 0.1628424
CBS_ts_verbalab CBS_ts_con 0.1714824 0.1258395

# print tables using kable
kable(as.data.frame(format(main_corr_desk2$r, scientific = FALSE)), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.2165 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily -0.1925 -0.1374 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study -0.1415 -0.0786 0.1829 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using -0.1312 0.0432 -0.2326 -0.0569 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.1081 -0.0243 0.107 -0.0759 -0.1921 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.0563 0.0147 -0.2397 0.0547 -0.0358 0.2268 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study -0.0394 -0.048 0.3492 0.0065 -0.5505 0.236 -0.0073 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam -0.0405 -0.1612 0.078 0.0091 -0.3628 0.1841 0.1432 0.3986 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec -0.0238 -0.1262 0.3118 -0.1434 -0.5175 0.1656 0.1376 0.7356 0.2979 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.0669 -0.1104 0.1298 -0.1302 -0.4353 0.2256 0.1796 0.6176 0.3269 0.6432 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 0.1517 0.1277 -0.2643 -0.1375 -0.111 0.1751 -0.0099 -0.0738 0.1071 0.061 0.1372 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.3358 0.057 -0.0717 0.0083 -0.0244 0.0574 0.119 -0.1003 0.1077 -0.0582 -0.1336 0.278 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.0734 -0.0147 -0.0868 0.0785 -0.0877 0.0356 0.0601 0.0076 0.2607 0.0329 -0.0651 0.5082 0.5257 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked -0.1881 0.0019 -0.0899 0.0283 0.075 -0.1321 0.0455 -0.0267 -0.1545 -0.0547 -0.0173 -0.2719 -0.4246 -0.3775 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1522 0.0053 -0.1268 -0.1633 -0.1719 0.0961 0.0533 0.0414 0.14 0.179 -0.0154 0.4041 0.4443 0.4302 -0.1988 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum -0.0438 -0.1369 0.5539 0.1846 -0.199 0.1145 -0.2134 0.2404 0.0758 0.1834 0.1417 -0.2443 -0.2749 -0.1957 0.1732 -0.3013 1 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 0.023 -0.3844 0.6681 0.2605 -0.229 0.1058 -0.2679 0.3368 0.0843 0.2634 0.1883 -0.3023 -0.1647 -0.143 0.034 -0.1811 0.7782 1 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 7e-04 -0.2981 0.4663 0.2161 -0.2466 0.1076 -0.1363 0.2418 0.0251 0.2867 0.1936 -0.2832 -0.2603 -0.2136 0.0964 -0.2687 0.7653 0.7333 1 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 0.0835 -0.0384 0.1708 0.0389 -0.2176 0.0958 -0.1548 0.2584 0.1369 0.2769 0.2547 -0.0507 -0.2136 0.0108 0.0665 -0.0649 0.3453 0.3403 0.3715 1 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 0.0252 -0.3103 0.6009 0.2186 -0.2577 0.1477 -0.207 0.2218 0.0139 0.2377 0.1554 -0.3095 -0.2862 -0.2279 0.1479 -0.2586 0.8183 0.8575 0.8317 0.4333 1 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum -0.0384 -0.2431 0.5444 0.234 -0.2346 0.1753 -0.2415 0.2427 0.0333 0.187 0.1558 -0.2989 -0.2701 -0.2124 0.1293 -0.2789 0.8008 0.7977 0.8131 0.4247 0.9394 1 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 0.0951 -0.3547 0.4864 0.2028 -0.248 0.1361 -0.0713 0.2307 0.0283 0.3153 0.2139 -0.2683 -0.2463 -0.1277 0.1642 -0.2293 0.7116 0.7752 0.7479 0.5261 0.8879 0.7438 1 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 0.0236 -0.3305 0.6391 0.1197 -0.2042 0.0203 -0.235 0.1361 0.0142 0.1605 0.0752 -0.2705 -0.1985 -0.2666 0.0583 -0.2021 0.6284 0.7444 0.6201 0.1742 0.8003 0.63 0.6575 1 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 0.2207 0.0599 -0.0931 -0.1453 -0.063 0.1802 0.2409 0.0593 0.0528 0.0999 -0.026 -0.0685 0.0678 0.025 -0.0075 0.2118 -0.0982 -0.0908 0.0733 0.0546 -0.0197 -0.0433 0.0228 -0.0173 1 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out -0.0195 -0.118 0.0913 -0.2264 0.0858 0.0836 -0.0772 0.0404 0.0492 0.0311 0.097 0.0065 -0.0363 -0.0918 -3e-04 0.1215 0.0224 0.1231 -0.0013 0.0653 0.0862 0.0219 0.0839 0.1627 0.023 1 - - - - - - - - - - - - - - - - - -
Score_Digit Span -0.1895 -0.2284 0.0258 0.1828 0.0325 -0.0596 -0.0134 -0.0164 -0.0468 -0.0477 -0.0259 -0.1116 -0.2447 -0.1022 -0.001 -0.2601 0.0581 0.0786 0.0201 0.0084 0.1021 0.1299 0.0857 0.0458 0.0784 -0.0562 1 - - - - - - - - - - - - - - - - -
Score_Feature Match -0.1558 -0.1104 -0.0095 -0.2463 -0.0103 -0.0508 -0.0408 -0.0767 -0.1037 0.1279 -0.1106 -0.1109 -0.1073 -0.1326 -0.1016 0.0552 -0.0622 -0.0168 0.0414 0.024 0.0358 0.0121 0.005 0.0635 0.1419 0.1083 0.2302 1 - - - - - - - - - - - - - - - -
Score_Polygons -0.1458 -0.0374 0.0536 -0.0088 -0.1441 0.0113 0.0332 0.0412 0.1091 0.0899 0.0614 0.1009 -0.0191 0.0137 0.0443 0.2078 0.0631 0.0436 0.0995 0.0369 0.0555 0.0426 0.0432 0.0714 0.1438 0.1157 0.1188 0.1565 1 - - - - - - - - - - - - - - -
Score_Paired Associates 0.0263 0.0117 0.03 -0.1867 -0.102 -0.0753 -0.1024 0.135 -0.1161 0.2548 0.0125 -0.0271 0.001 -0.0786 -0.0257 0.3315 -0.1315 -0.0239 -0.1764 -0.0536 -0.1192 -0.1725 -0.1086 0.0279 0.1253 0.1352 -0.0087 0.2052 0.1124 1 - - - - - - - - - - - - - -
Score_Token Search -0.1447 -0.1313 0.2467 -0.1306 -0.1571 0.0791 0.0036 0.1627 -0.0294 0.1977 -0.0029 -0.0902 -0.0035 -0.0967 0.0921 0.1186 0.0165 -0.002 0.082 -0.0459 0.0986 0.0488 0.0042 0.2395 0.2483 0.1745 0.0503 0.1383 0.2622 0.3783 1 - - - - - - - - - - - - -
Score_Spatial Planning -0.2668 0.0346 0.1842 -0.1215 -0.1276 0.0069 -0.0052 0.2312 0.0541 0.1059 0.0066 -0.1286 -0.0419 -0.02 0.0348 0.1009 -0.0127 0.0064 -0.0855 -0.1383 -0.0236 -0.0442 -0.0778 0.079 0.1774 0.0211 0.0661 0.1346 0.3715 0.2797 0.406 1 - - - - - - - - - - - -
Score_Rotations 0.0809 0.0955 -0.1087 -0.1102 -0.0386 0.0205 0.0977 0.1708 0.1911 0.1679 0.0346 0.0362 0.1225 -0.0897 -0.0935 0.1976 -0.1615 -0.1956 -0.16 0.0017 -0.214 -0.2386 -0.2213 -0.0501 0.1996 0.0917 0.1341 0.2381 0.1781 0.4016 0.3254 0.295 1 - - - - - - - - - - -
Score_Spatial Span -0.2206 0.1099 0.1048 0.0179 -0.1172 -0.0252 8e-04 0.094 0.0526 0.1343 -0.0459 0.0912 0.0317 0.1087 0.0888 0.2023 -0.081 -0.1282 -0.0676 -0.0093 -0.1035 -0.0609 -0.1701 -0.104 0.0903 -0.0493 0.2248 0.2655 0.4074 0.2523 0.3773 0.312 0.33 1 - - - - - - - - - -
Score_Grammatical Reasoning 0.034 -0.0108 0.0578 -0.246 -0.0091 0.1065 0.0387 0.0793 0.1196 0.1771 -0.0515 -0.013 0.0739 0.1233 -0.0459 0.1758 0.0134 -0.0158 -0.0519 -0.0642 -0.0388 -0.077 -0.027 0.01 0.1898 0.1408 0.0905 0.1715 0.2037 0.3795 0.2716 0.2198 0.41 0.193 1 - - - - - - - - -
Score_Monkey Ladder 0.021 -0.1345 0.0123 -0.1246 -0.1056 0.0044 0.0121 0.1917 -0.0099 0.1792 0.0161 0.0173 -0.2453 -0.0045 0.0812 0.1565 -0.0114 0.0186 0.1 -0.0253 0.0651 0.0154 0.1042 0.0873 0.414 0.0671 0.2084 0.2393 0.2449 0.1932 0.3714 0.2637 0.2268 0.192 0.2351 1 - - - - - - - -
CBS_overall -0.1895 -0.2284 0.0258 0.1828 0.0325 -0.0596 -0.0134 -0.0164 -0.0468 -0.0477 -0.0259 -0.1116 -0.2447 -0.1022 -0.001 -0.2601 0.0581 0.0786 0.0201 0.0084 0.1021 0.1299 0.0857 0.0458 0.0784 -0.0562 1 0.2302 0.1188 -0.0087 0.0503 0.0661 0.1341 0.2248 0.0905 0.2084 1 - - - - - - -
CBS_STM 0.021 -0.1345 0.0123 -0.1246 -0.1056 0.0044 0.0121 0.1917 -0.0099 0.1792 0.0161 0.0173 -0.2453 -0.0045 0.0812 0.1565 -0.0114 0.0186 0.1 -0.0253 0.0651 0.0154 0.1042 0.0873 0.414 0.0671 0.2084 0.2393 0.2449 0.1932 0.3714 0.2637 0.2268 0.192 0.2351 1 0.2084 1 - - - - - -
CBS_reason -0.1558 -0.1104 -0.0095 -0.2463 -0.0103 -0.0508 -0.0408 -0.0767 -0.1037 0.1279 -0.1106 -0.1109 -0.1073 -0.1326 -0.1016 0.0552 -0.0622 -0.0168 0.0414 0.024 0.0358 0.0121 0.005 0.0635 0.1419 0.1083 0.2302 1 0.1565 0.2052 0.1383 0.1346 0.2381 0.2655 0.1715 0.2393 0.2302 0.2393 1 - - - - -
CBS_verbal 0.034 -0.0108 0.0578 -0.246 -0.0091 0.1065 0.0387 0.0793 0.1196 0.1771 -0.0515 -0.013 0.0739 0.1233 -0.0459 0.1758 0.0134 -0.0158 -0.0519 -0.0642 -0.0388 -0.077 -0.027 0.01 0.1898 0.1408 0.0905 0.1715 0.2037 0.3795 0.2716 0.2198 0.41 0.193 1 0.2351 0.0905 0.2351 0.1715 1 - - - -
CBS_ts_memory 0.021 -0.1345 0.0123 -0.1246 -0.1056 0.0044 0.0121 0.1917 -0.0099 0.1792 0.0161 0.0173 -0.2453 -0.0045 0.0812 0.1565 -0.0114 0.0186 0.1 -0.0253 0.0651 0.0154 0.1042 0.0873 0.414 0.0671 0.2084 0.2393 0.2449 0.1932 0.3714 0.2637 0.2268 0.192 0.2351 1 0.2084 1 0.2393 0.2351 1 - - -
CBS_ts_reason -0.1458 -0.0374 0.0536 -0.0088 -0.1441 0.0113 0.0332 0.0412 0.1091 0.0899 0.0614 0.1009 -0.0191 0.0137 0.0443 0.2078 0.0631 0.0436 0.0995 0.0369 0.0555 0.0426 0.0432 0.0714 0.1438 0.1157 0.1188 0.1565 1 0.1124 0.2622 0.3715 0.1781 0.4074 0.2037 0.2449 0.1188 0.2449 0.1565 0.2037 0.2449 1 - -
CBS_ts_verbalab 0.034 -0.0108 0.0578 -0.246 -0.0091 0.1065 0.0387 0.0793 0.1196 0.1771 -0.0515 -0.013 0.0739 0.1233 -0.0459 0.1758 0.0134 -0.0158 -0.0519 -0.0642 -0.0388 -0.077 -0.027 0.01 0.1898 0.1408 0.0905 0.1715 0.2037 0.3795 0.2716 0.2198 0.41 0.193 1 0.2351 0.0905 0.2351 0.1715 1 0.2351 0.2037 1 -
CBS_ts_con -0.1558 -0.1104 -0.0095 -0.2463 -0.0103 -0.0508 -0.0408 -0.0767 -0.1037 0.1279 -0.1106 -0.1109 -0.1073 -0.1326 -0.1016 0.0552 -0.0622 -0.0168 0.0414 0.024 0.0358 0.0121 0.005 0.0635 0.1419 0.1083 0.2302 1 0.1565 0.2052 0.1383 0.1346 0.2381 0.2655 0.1715 0.2393 0.2302 0.2393 1 0.1715 0.2393 0.1565 0.1715 1
  

kable(as.data.frame(format(main_corr_desk2$P, scientific = FALSE)), caption = "Pilot Study - Correlation: p values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: p values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.0569 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 0.0851 0.2303 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 0.2076 0.4939 0.1023 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.2429 0.7072 0.0367 0.6137 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.3368 0.8325 0.3416 0.5004 0.0858 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.6178 0.8983 0.0311 0.6275 0.751 0.0418 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.7267 0.6763 0.0014 0.9538 0 0.0339 0.9483 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.7195 0.1586 0.4886 0.9356 9e-04 0.0998 0.2021 2e-04 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.833 0.2709 0.0046 0.2017 0 0.1396 0.2206 0 0.0069 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.553 0.336 0.2482 0.2465 0 0.0428 0.1086 0 0.0029 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 0.1763 0.2652 0.0171 0.221 0.324 0.1179 0.9301 0.5126 0.3414 0.5885 0.2218 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.0022 0.6203 0.5249 0.9412 0.8285 0.6108 0.29 0.373 0.3384 0.6061 0.2344 0.012 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.5147 0.8985 0.4411 0.4858 0.436 0.7525 0.5943 0.9463 0.0187 0.7708 0.5634 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 0.0926 0.987 0.4249 0.8017 0.5056 0.2396 0.6867 0.8127 0.1684 0.6277 0.8785 0.0141 1e-04 5e-04 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.175 0.9631 0.2593 0.1452 0.1249 0.3934 0.6366 0.7135 0.2126 0.1098 0.8916 2e-04 0 1e-04 0.0752 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 0.6976 0.232 0 0.099 0.0749 0.3088 0.0558 0.0306 0.5015 0.1012 0.2072 0.0279 0.013 0.08 0.1221 0.0063 NA - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 0.8388 5e-04 0 0.0188 0.0397 0.347 0.0156 0.0021 0.4545 0.0175 0.0923 0.0061 0.1419 0.2027 0.763 0.1056 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 0.9949 0.008 0 0.0526 0.0265 0.3392 0.2249 0.0296 0.8237 0.0095 0.0834 0.0104 0.0189 0.0555 0.392 0.0153 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 0.4584 0.7383 0.1274 0.7301 0.051 0.3948 0.1677 0.0199 0.2231 0.0123 0.0218 0.6528 0.0556 0.924 0.5554 0.5646 0.0016 0.0019 6e-04 NA - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 0.8233 0.0057 0 0.0499 0.0202 0.1882 0.0638 0.0466 0.9017 0.0326 0.166 0.0049 0.0096 0.0408 0.1875 0.0197 0 0 0 1e-04 NA - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 0.7338 0.032 0 0.0355 0.035 0.1176 0.0299 0.029 0.7681 0.0947 0.165 0.0067 0.0147 0.057 0.2499 0.0117 0 0 0 1e-04 0 NA - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 0.3985 0.0014 0 0.0694 0.0256 0.2255 0.5269 0.0382 0.8017 0.0041 0.0552 0.0154 0.0267 0.256 0.1429 0.0394 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 0.8346 0.0031 0 0.2873 0.0674 0.857 0.0347 0.2256 0.9 0.1524 0.5044 0.0146 0.0756 0.0161 0.6053 0.0705 0 0 0 0.1198 0 0 0 NA - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 0.0477 0.6026 0.4085 0.1956 0.5764 0.1074 0.0303 0.599 0.64 0.375 0.8176 0.5432 0.5476 0.825 0.947 0.0576 0.3833 0.4203 0.5155 0.6281 0.8615 0.7014 0.8396 0.8783 NA - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.863 0.3036 0.4176 0.0421 0.4462 0.4582 0.4933 0.7201 0.6627 0.7829 0.3891 0.9539 0.7474 0.415 0.9981 0.2799 0.8424 0.2738 0.9909 0.5623 0.444 0.8464 0.4563 0.1468 0.8383 NA - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.0902 0.0443 0.8194 0.1023 0.7731 0.5973 0.9051 0.8843 0.6784 0.6727 0.8184 0.3213 0.0277 0.3641 0.993 0.019 0.6063 0.4855 0.8586 0.9404 0.3644 0.2476 0.4471 0.6844 0.4865 0.618 NA - - - - - - - - - - - - - - - - -
Score_Feature Match 0.165 0.336 0.9328 0.0267 0.927 0.6526 0.7179 0.4963 0.3567 0.2551 0.3258 0.3241 0.3404 0.2378 0.3668 0.6245 0.5812 0.8817 0.7139 0.8316 0.7512 0.9144 0.9646 0.5735 0.2063 0.3357 0.0387 NA - - - - - - - - - - - - - - - -
Score_Polygons 0.1941 0.745 0.6346 0.9376 0.1995 0.9201 0.7689 0.7149 0.3321 0.425 0.586 0.3703 0.8656 0.9032 0.6944 0.0626 0.576 0.6988 0.3767 0.7434 0.6228 0.706 0.7018 0.5264 0.2004 0.3039 0.2909 0.1628 NA - - - - - - - - - - - - - - -
Score_Paired Associates 0.8156 0.9188 0.7904 0.0952 0.3648 0.5042 0.3632 0.2296 0.3021 0.0217 0.9115 0.8102 0.993 0.4858 0.8198 0.0025 0.2418 0.8321 0.1152 0.6346 0.2892 0.1235 0.3344 0.8044 0.2651 0.229 0.9386 0.066 0.3177 NA - - - - - - - - - - - - - -
Score_Token Search 0.1973 0.2519 0.0264 0.2451 0.1612 0.4828 0.9748 0.1467 0.7943 0.0768 0.9798 0.423 0.9753 0.3905 0.4135 0.2916 0.8837 0.9855 0.4668 0.6843 0.3811 0.6655 0.9701 0.0313 0.0254 0.1192 0.6559 0.2183 0.0181 5e-04 NA - - - - - - - - - - - - -
Score_Spatial Planning 0.0161 0.7633 0.0997 0.28 0.2564 0.9514 0.9631 0.0379 0.6312 0.3467 0.9534 0.2526 0.7105 0.8591 0.7577 0.3703 0.9102 0.9546 0.4479 0.2183 0.8342 0.6951 0.49 0.4832 0.113 0.8517 0.5574 0.2309 6e-04 0.0115 2e-04 NA - - - - - - - - - - - -
Score_Rotations 0.4727 0.4055 0.3341 0.3273 0.7324 0.8562 0.3856 0.1273 0.0874 0.1342 0.7588 0.7486 0.2758 0.4259 0.4065 0.077 0.1499 0.0802 0.1536 0.9883 0.0551 0.0319 0.0471 0.657 0.074 0.4154 0.2326 0.0323 0.1117 2e-04 0.003 0.0075 NA - - - - - - - - - - -
Score_Spatial Span 0.0478 0.3381 0.3518 0.8739 0.2973 0.8233 0.9945 0.4039 0.6409 0.232 0.6844 0.4178 0.779 0.3341 0.4305 0.0701 0.4721 0.2542 0.5486 0.9346 0.3577 0.5894 0.1289 0.3557 0.4226 0.662 0.0437 0.0166 2e-04 0.023 5e-04 0.0046 0.0026 NA - - - - - - - - - -
Score_Grammatical Reasoning 0.7633 0.9255 0.6085 0.0268 0.936 0.3441 0.7316 0.4814 0.2875 0.1137 0.6479 0.9085 0.512 0.273 0.6844 0.1164 0.9057 0.8889 0.6452 0.569 0.7309 0.4945 0.8109 0.9293 0.0897 0.2101 0.4217 0.1258 0.0682 5e-04 0.0142 0.0487 1e-04 0.0843 NA - - - - - - - - -
Score_Monkey Ladder 0.8525 0.2403 0.9132 0.2676 0.348 0.9687 0.9148 0.0864 0.9301 0.1095 0.8863 0.8783 0.0273 0.9682 0.471 0.1629 0.9199 0.8693 0.3745 0.8226 0.5636 0.8918 0.3547 0.4385 1e-04 0.5515 0.0619 0.0314 0.0275 0.0839 6e-04 0.0174 0.0417 0.0859 0.0346 NA - - - - - - - -
CBS_overall 0.0902 0.0443 0.8194 0.1023 0.7731 0.5973 0.9051 0.8843 0.6784 0.6727 0.8184 0.3213 0.0277 0.3641 0.993 0.019 0.6063 0.4855 0.8586 0.9404 0.3644 0.2476 0.4471 0.6844 0.4865 0.618 0 0.0387 0.2909 0.9386 0.6559 0.5574 0.2326 0.0437 0.4217 0.0619 NA - - - - - - -
CBS_STM 0.8525 0.2403 0.9132 0.2676 0.348 0.9687 0.9148 0.0864 0.9301 0.1095 0.8863 0.8783 0.0273 0.9682 0.471 0.1629 0.9199 0.8693 0.3745 0.8226 0.5636 0.8918 0.3547 0.4385 1e-04 0.5515 0.0619 0.0314 0.0275 0.0839 6e-04 0.0174 0.0417 0.0859 0.0346 0 0.0619 NA - - - - - -
CBS_reason 0.165 0.336 0.9328 0.0267 0.927 0.6526 0.7179 0.4963 0.3567 0.2551 0.3258 0.3241 0.3404 0.2378 0.3668 0.6245 0.5812 0.8817 0.7139 0.8316 0.7512 0.9144 0.9646 0.5735 0.2063 0.3357 0.0387 0 0.1628 0.066 0.2183 0.2309 0.0323 0.0166 0.1258 0.0314 0.0387 0.0314 NA - - - - -
CBS_verbal 0.7633 0.9255 0.6085 0.0268 0.936 0.3441 0.7316 0.4814 0.2875 0.1137 0.6479 0.9085 0.512 0.273 0.6844 0.1164 0.9057 0.8889 0.6452 0.569 0.7309 0.4945 0.8109 0.9293 0.0897 0.2101 0.4217 0.1258 0.0682 5e-04 0.0142 0.0487 1e-04 0.0843 0 0.0346 0.4217 0.0346 0.1258 NA - - - -
CBS_ts_memory 0.8525 0.2403 0.9132 0.2676 0.348 0.9687 0.9148 0.0864 0.9301 0.1095 0.8863 0.8783 0.0273 0.9682 0.471 0.1629 0.9199 0.8693 0.3745 0.8226 0.5636 0.8918 0.3547 0.4385 1e-04 0.5515 0.0619 0.0314 0.0275 0.0839 6e-04 0.0174 0.0417 0.0859 0.0346 0 0.0619 0 0.0314 0.0346 NA - - -
CBS_ts_reason 0.1941 0.745 0.6346 0.9376 0.1995 0.9201 0.7689 0.7149 0.3321 0.425 0.586 0.3703 0.8656 0.9032 0.6944 0.0626 0.576 0.6988 0.3767 0.7434 0.6228 0.706 0.7018 0.5264 0.2004 0.3039 0.2909 0.1628 0 0.3177 0.0181 6e-04 0.1117 2e-04 0.0682 0.0275 0.2909 0.0275 0.1628 0.0682 0.0275 NA - -
CBS_ts_verbalab 0.7633 0.9255 0.6085 0.0268 0.936 0.3441 0.7316 0.4814 0.2875 0.1137 0.6479 0.9085 0.512 0.273 0.6844 0.1164 0.9057 0.8889 0.6452 0.569 0.7309 0.4945 0.8109 0.9293 0.0897 0.2101 0.4217 0.1258 0.0682 5e-04 0.0142 0.0487 1e-04 0.0843 0 0.0346 0.4217 0.0346 0.1258 0 0.0346 0.0682 NA -
CBS_ts_con 0.165 0.336 0.9328 0.0267 0.927 0.6526 0.7179 0.4963 0.3567 0.2551 0.3258 0.3241 0.3404 0.2378 0.3668 0.6245 0.5812 0.8817 0.7139 0.8316 0.7512 0.9144 0.9646 0.5735 0.2063 0.3357 0.0387 0 0.1628 0.066 0.2183 0.2309 0.0323 0.0166 0.1258 0.0314 0.0387 0.0314 0 0.1258 0.0314 0.1628 0.1258 NA

kable(as.data.frame(format(main_corr_desk2$n, scientific = FALSE)), caption = "Pilot Study - Correlation: n values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: n values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 78 78 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 81 78 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 81 78 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 81 78 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 81 78 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 81 78 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 81 78 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 81 78 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 81 78 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 81 78 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 81 78 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 81 78 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 81 78 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - -
Score_Digit Span 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - -
Score_Feature Match 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - -
Score_Polygons 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - -
Score_Paired Associates 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - -
Score_Token Search 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - -
Score_Spatial Planning 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - -
Score_Rotations 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - -
Score_Spatial Span 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - -
Score_Grammatical Reasoning 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - -
Score_Monkey Ladder 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - -
CBS_overall 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - -
CBS_STM 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - -
CBS_reason 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - -
CBS_verbal 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - -
CBS_ts_memory 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - -
CBS_ts_reason 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - -
CBS_ts_verbalab 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 -
CBS_ts_con 81 78 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81

corrplot(main_corr_desk$r, method = "circle", col = (colorRampPalette(c("purple", "grey", "blue"))(50)),  
         type = "upper",  
         # addCoef.col = "black", # Add coefficient of correlation
         tl.col = "darkblue", tl.srt = 90, tl.cex = .8, #Text label color and rotation
         # Combine with significance level
         p.mat = main_corr_desk$P, sig.level = 0.05, 
         addgrid.col = "white",
         insig = "blank",# insig = "pch", pch = 10, pch.col = "red", pch.cex = .1, # add this instead of insig above to denot insig p values with red dot
         # hide correlation coefficient on the principal diagonal
         diag = FALSE, 
         win.asp = 1
         )

For Pocket/Bag….

main_corr_pb <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum, `Score_Double Trouble`:`Score_Monkey Ladder`, CBS_overall, CBS_STM, CBS_reason, CBS_verbal, CBS_ts_memory, CBS_ts_reason, CBS_ts_verbalab, CBS_ts_con) %>% 
  filter(condition == "pocket/bag") %>% 
  select(-condition) %>% 
  as.matrix() %>%
  rcorr(type = "pearson")

# create new main_corr_pb to shown only lower triangle... 
main_corr_pb2 <- main_corr_pb
# round to 4 decimals... 
main_corr_pb2$r <- round(main_corr_pb2$r, 4)
main_corr_pb2$P <- round(main_corr_pb2$P, 4)
main_corr_pb2$n <- round(main_corr_pb2$n, 4)
# remove upper triangle form r, p, and n
main_corr_pb2$r[upper.tri(main_corr_pb2$r)] <- "-"
main_corr_pb2$P[upper.tri(main_corr_pb2$P)] <- "-"
main_corr_pb2$n[upper.tri(main_corr_pb2$n)] <- "-"

# show corr table with flattenCorr

kable(flattenCorrMatrix(main_corr_pb$r, main_corr_pb$P), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
row column cor p
age age_first_phone 0.3984040 0.0001452
age dist_daily -0.2799009 0.0082619
age_first_phone dist_daily -0.1053263 0.3344694
age dist_study 0.0061812 0.9544209
age_first_phone dist_study -0.0045493 0.9668404
dist_daily dist_study 0.1578883 0.1417843
age pow_not_using -0.1871005 0.0808958
age_first_phone pow_not_using -0.0322353 0.7682685
dist_daily pow_not_using 0.0335127 0.7565843
dist_study pow_not_using -0.1027282 0.3408842
age pow_notifications_on -0.0255491 0.8132126
age_first_phone pow_notifications_on -0.1438485 0.1863816
dist_daily pow_notifications_on 0.0640478 0.5532881
dist_study pow_notifications_on 0.0723088 0.5031795
pow_not_using pow_notifications_on -0.0745405 0.4900593
age pow_vibrate 0.1270028 0.2383429
age_first_phone pow_vibrate 0.1088763 0.3183412
dist_daily pow_vibrate -0.0371583 0.7310637
dist_study pow_vibrate 0.0329583 0.7604889
pow_not_using pow_vibrate -0.1616877 0.1323243
pow_notifications_on pow_vibrate 0.0768549 0.4766454
age pow_study 0.2125454 0.0467981
age_first_phone pow_study 0.0190008 0.8621457
dist_daily pow_study 0.1901557 0.0759735
dist_study pow_study -0.0057843 0.9573446
pow_not_using pow_study -0.5080191 0.0000004
pow_notifications_on pow_study 0.2230386 0.0367293
pow_vibrate pow_study 0.0629436 0.5601634
age pow_exam 0.2441824 0.0218650
age_first_phone pow_exam 0.1685966 0.1207215
dist_daily pow_exam -0.0139801 0.8971394
dist_study pow_exam -0.0515840 0.6331487
pow_not_using pow_exam -0.2800013 0.0082378
pow_notifications_on pow_exam 0.0465692 0.6665806
pow_vibrate pow_exam -0.1383276 0.1987005
pow_study pow_exam 0.3349969 0.0014211
age pow_lec 0.2189955 0.0403702
age_first_phone pow_lec -0.0322476 0.7681826
dist_daily pow_lec 0.1870864 0.0809190
dist_study pow_lec 0.1357158 0.2073933
pow_not_using pow_lec -0.5188187 0.0000002
pow_notifications_on pow_lec 0.2802955 0.0081677
pow_vibrate pow_lec -0.0079280 0.9415603
pow_study pow_lec 0.6249735 0.0000000
pow_exam pow_lec 0.3256833 0.0019590
age pow_sleep 0.2073742 0.0525430
age_first_phone pow_sleep 0.1544202 0.1557212
dist_daily pow_sleep 0.0773779 0.4736421
dist_study pow_sleep 0.0236328 0.8269958
pow_not_using pow_sleep -0.4695519 0.0000039
pow_notifications_on pow_sleep -0.0217317 0.8407222
pow_vibrate pow_sleep 0.0999752 0.3540481
pow_study pow_sleep 0.5896565 0.0000000
pow_exam pow_sleep 0.2282172 0.0324710
pow_lec pow_sleep 0.4339300 0.0000240
age com_gen -0.0681873 0.5278817
age_first_phone com_gen 0.1992729 0.0658514
dist_daily com_gen -0.1034638 0.3374195
dist_study com_gen -0.1407538 0.1908629
pow_not_using com_gen 0.0801209 0.4580584
pow_notifications_on com_gen -0.1094514 0.3100494
pow_vibrate com_gen 0.0430472 0.6904612
pow_study com_gen -0.0443387 0.6816678
pow_exam com_gen -0.0579480 0.5917659
pow_lec com_gen -0.0399145 0.7119605
pow_sleep com_gen -0.0143198 0.8946539
age com_unattended -0.0383498 0.7227844
age_first_phone com_unattended 0.2957436 0.0056991
dist_daily com_unattended -0.0734853 0.4962400
dist_study com_unattended 0.0557943 0.6056342
pow_not_using com_unattended 0.2384537 0.0252675
pow_notifications_on com_unattended -0.1781366 0.0968169
pow_vibrate com_unattended -0.1582162 0.1409483
pow_study com_unattended -0.0971268 0.3679963
pow_exam com_unattended -0.0498479 0.6446439
pow_lec com_unattended -0.1226054 0.2551224
pow_sleep com_unattended -0.0028635 0.9788759
com_gen com_unattended 0.5729870 0.0000000
age com_leave_with_other -0.0847415 0.4324579
age_first_phone com_leave_with_other 0.1664475 0.1255989
dist_daily com_leave_with_other -0.0632475 0.5582669
dist_study com_leave_with_other -0.0911513 0.3983291
pow_not_using com_leave_with_other 0.1820064 0.0896654
pow_notifications_on com_leave_with_other -0.1674674 0.1188647
pow_vibrate com_leave_with_other -0.0953306 0.3769620
pow_study com_leave_with_other -0.1013283 0.3475392
pow_exam com_leave_with_other -0.0276978 0.7978256
pow_lec com_leave_with_other -0.1795393 0.0941746
pow_sleep com_leave_with_other -0.1147799 0.2869396
com_gen com_leave_with_other 0.6325142 0.0000000
com_unattended com_leave_with_other 0.6186043 0.0000000
age com_locked -0.0676085 0.5313986
age_first_phone com_locked -0.0304953 0.7804534
dist_daily com_locked 0.3274269 0.0018461
dist_study com_locked 0.1789544 0.0952694
pow_not_using com_locked 0.0060040 0.9557263
pow_notifications_on com_locked -0.0671515 0.5341835
pow_vibrate com_locked 0.0254582 0.8138656
pow_study com_locked 0.0901885 0.4033513
pow_exam com_locked 0.0511573 0.6359659
pow_lec com_locked 0.0649084 0.5479582
pow_sleep com_locked 0.1132927 0.2932713
com_gen com_locked -0.3401693 0.0011839
com_unattended com_locked -0.2767648 0.0090446
com_leave_with_other com_locked -0.2613714 0.0139037
age com_room_task 0.1700825 0.1131325
age_first_phone com_room_task 0.0788134 0.4707165
dist_daily com_room_task -0.1395794 0.1946284
dist_study com_room_task 0.0040244 0.9703153
pow_not_using com_room_task 0.1817769 0.0900775
pow_notifications_on com_room_task 0.0143472 0.8944532
pow_vibrate com_room_task -0.0321083 0.7664879
pow_study com_room_task 0.0358894 0.7399150
pow_exam com_room_task 0.0226540 0.8340568
pow_lec com_room_task 0.1059130 0.3260449
pow_sleep com_room_task 0.0798214 0.4597460
com_gen com_room_task 0.4016500 0.0001051
com_unattended com_room_task 0.4657906 0.0000048
com_leave_with_other com_room_task 0.3187423 0.0024726
com_locked com_room_task 0.0110065 0.9189337
age NMPQ_sum -0.2848865 0.0071398
age_first_phone NMPQ_sum -0.2041174 0.0594154
dist_daily NMPQ_sum 0.3830025 0.0002305
dist_study NMPQ_sum 0.2369699 0.0262188
pow_not_using NMPQ_sum -0.0716468 0.5071068
pow_notifications_on NMPQ_sum 0.1226611 0.2549052
pow_vibrate NMPQ_sum -0.0342530 0.7513801
pow_study NMPQ_sum 0.1627990 0.1296500
pow_exam NMPQ_sum -0.0531546 0.6228235
pow_lec NMPQ_sum 0.0742303 0.4918720
pow_sleep NMPQ_sum 0.0130360 0.9040511
com_gen NMPQ_sum -0.3751409 0.0003167
com_unattended NMPQ_sum -0.4366030 0.0000211
com_leave_with_other NMPQ_sum -0.3055906 0.0037879
com_locked NMPQ_sum 0.3497082 0.0008385
com_room_task NMPQ_sum -0.4040226 0.0000947
age MPIQ_sum -0.2049520 0.0554265
age_first_phone MPIQ_sum -0.1074058 0.3249600
dist_daily MPIQ_sum 0.4570277 0.0000076
dist_study MPIQ_sum 0.2164842 0.0427795
pow_not_using MPIQ_sum -0.2329256 0.0289676
pow_notifications_on MPIQ_sum 0.1911557 0.0744155
pow_vibrate MPIQ_sum -0.0656463 0.5434081
pow_study MPIQ_sum 0.2929563 0.0056068
pow_exam MPIQ_sum 0.1431577 0.1833202
pow_lec MPIQ_sum 0.3167438 0.0026414
pow_sleep MPIQ_sum 0.1248645 0.2464043
com_gen MPIQ_sum -0.2457609 0.0209994
com_unattended MPIQ_sum -0.2276811 0.0328915
com_leave_with_other MPIQ_sum -0.1941972 0.0698341
com_locked MPIQ_sum 0.2635163 0.0131136
com_room_task MPIQ_sum -0.3464791 0.0009435
NMPQ_sum MPIQ_sum 0.6986228 0.0000000
age MPIQ_SI_sum -0.1049514 0.3304810
age_first_phone MPIQ_SI_sum -0.2872849 0.0073189
dist_daily MPIQ_SI_sum 0.2238401 0.0360411
dist_study MPIQ_SI_sum 0.1244025 0.2481701
pow_not_using MPIQ_SI_sum -0.1688893 0.1157208
pow_notifications_on MPIQ_SI_sum 0.1368845 0.2034706
pow_vibrate MPIQ_SI_sum -0.0466708 0.6658963
pow_study MPIQ_SI_sum 0.2132094 0.0460996
pow_exam MPIQ_SI_sum 0.0904048 0.4022197
pow_lec MPIQ_SI_sum 0.1976925 0.0648529
pow_sleep MPIQ_SI_sum 0.0728390 0.5000461
com_gen MPIQ_SI_sum -0.5048147 0.0000005
com_unattended MPIQ_SI_sum -0.5195752 0.0000002
com_leave_with_other MPIQ_SI_sum -0.4837615 0.0000018
com_locked MPIQ_SI_sum 0.2820278 0.0077655
com_room_task MPIQ_SI_sum -0.3564099 0.0006538
NMPQ_sum MPIQ_SI_sum 0.6966759 0.0000000
MPIQ_sum MPIQ_SI_sum 0.5909458 0.0000000
age MPIQ_VFO_sum -0.0373038 0.7300512
age_first_phone MPIQ_VFO_sum -0.0485139 0.6573485
dist_daily MPIQ_VFO_sum 0.2959572 0.0051160
dist_study MPIQ_VFO_sum 0.2401662 0.0242062
pow_not_using MPIQ_VFO_sum -0.1620335 0.1314877
pow_notifications_on MPIQ_VFO_sum -0.0091596 0.9325016
pow_vibrate MPIQ_VFO_sum 0.0676510 0.5311398
pow_study MPIQ_VFO_sum -0.0067366 0.9503306
pow_exam MPIQ_VFO_sum 0.0023785 0.9824533
pow_lec MPIQ_VFO_sum 0.1107630 0.3042519
pow_sleep MPIQ_VFO_sum 0.0186597 0.8630009
com_gen MPIQ_VFO_sum -0.1679601 0.1177679
com_unattended MPIQ_VFO_sum -0.1978088 0.0646924
com_leave_with_other MPIQ_VFO_sum -0.0732549 0.4975949
com_locked MPIQ_VFO_sum 0.1811277 0.0912513
com_room_task MPIQ_VFO_sum -0.2393481 0.0247084
NMPQ_sum MPIQ_VFO_sum 0.4466069 0.0000129
MPIQ_sum MPIQ_VFO_sum 0.4676050 0.0000044
MPIQ_SI_sum MPIQ_VFO_sum 0.2860716 0.0068938
age SAD_sum -0.1659368 0.1223218
age_first_phone SAD_sum -0.2491253 0.0207180
dist_daily SAD_sum 0.4041108 0.0000944
dist_study SAD_sum 0.1769009 0.0991925
pow_not_using SAD_sum -0.2192446 0.0401374
pow_notifications_on SAD_sum 0.1511151 0.1599020
pow_vibrate SAD_sum -0.0289865 0.7886330
pow_study SAD_sum 0.2419920 0.0231166
pow_exam SAD_sum 0.0714339 0.5083726
pow_lec SAD_sum 0.2412799 0.0235365
pow_sleep SAD_sum 0.1113095 0.3018577
com_gen SAD_sum -0.4250778 0.0000366
com_unattended SAD_sum -0.4871532 0.0000015
com_leave_with_other SAD_sum -0.3953701 0.0001376
com_locked SAD_sum 0.3992397 0.0001166
com_room_task SAD_sum -0.4232223 0.0000399
NMPQ_sum SAD_sum 0.8331676 0.0000000
MPIQ_sum SAD_sum 0.7719068 0.0000000
MPIQ_SI_sum SAD_sum 0.7824711 0.0000000
MPIQ_VFO_sum SAD_sum 0.4859121 0.0000016
age SAD_dep_sum -0.1522994 0.1566159
age_first_phone SAD_dep_sum -0.2594730 0.0158428
dist_daily SAD_dep_sum 0.3426950 0.0010817
dist_study SAD_dep_sum 0.1015979 0.3462511
pow_not_using SAD_dep_sum -0.1903170 0.0757203
pow_notifications_on SAD_dep_sum 0.0918211 0.3948571
pow_vibrate SAD_dep_sum -0.0251170 0.8163160
pow_study SAD_dep_sum 0.1539915 0.1520084
pow_exam SAD_dep_sum 0.0324978 0.7637369
pow_lec SAD_dep_sum 0.1329811 0.2167818
pow_sleep SAD_dep_sum 0.0052591 0.9612146
com_gen SAD_dep_sum -0.4087043 0.0000771
com_unattended SAD_dep_sum -0.5233795 0.0000002
com_leave_with_other SAD_dep_sum -0.3828372 0.0002321
com_locked SAD_dep_sum 0.4049353 0.0000910
com_room_task SAD_dep_sum -0.4145048 0.0000595
NMPQ_sum SAD_dep_sum 0.7886873 0.0000000
MPIQ_sum SAD_dep_sum 0.5987463 0.0000000
MPIQ_SI_sum SAD_dep_sum 0.8045127 0.0000000
MPIQ_VFO_sum SAD_dep_sum 0.3497081 0.0008385
SAD_sum SAD_dep_sum 0.9258301 0.0000000
age SAD_ea_sum -0.0893381 0.4078179
age_first_phone SAD_ea_sum -0.1126439 0.3017810
dist_daily SAD_ea_sum 0.2822797 0.0077085
dist_study SAD_ea_sum 0.1387428 0.1973431
pow_not_using SAD_ea_sum -0.2449409 0.0214453
pow_notifications_on SAD_ea_sum 0.1132999 0.2932404
pow_vibrate SAD_ea_sum 0.0330532 0.7598204
pow_study SAD_ea_sum 0.2686365 0.0113834
pow_exam SAD_ea_sum 0.1992600 0.0627147
pow_lec SAD_ea_sum 0.2666569 0.0120272
pow_sleep SAD_ea_sum 0.2021475 0.0589257
com_gen SAD_ea_sum -0.2955086 0.0051869
com_unattended SAD_ea_sum -0.3189966 0.0024518
com_leave_with_other SAD_ea_sum -0.2512431 0.0182170
com_locked SAD_ea_sum 0.2544807 0.0167276
com_room_task SAD_ea_sum -0.3198599 0.0023825
NMPQ_sum SAD_ea_sum 0.6519338 0.0000000
MPIQ_sum SAD_ea_sum 0.7337577 0.0000000
MPIQ_SI_sum SAD_ea_sum 0.5740397 0.0000000
MPIQ_VFO_sum SAD_ea_sum 0.5139904 0.0000003
SAD_sum SAD_ea_sum 0.8163073 0.0000000
SAD_dep_sum SAD_ea_sum 0.6193865 0.0000000
age SAD_dist_sum -0.1344341 0.2117568
age_first_phone SAD_dist_sum -0.2594995 0.0158317
dist_daily SAD_dist_sum 0.4963446 0.0000009
dist_study SAD_dist_sum 0.2700425 0.0109446
pow_not_using SAD_dist_sum -0.2218536 0.0377667
pow_notifications_on SAD_dist_sum 0.2317772 0.0297912
pow_vibrate SAD_dist_sum -0.0762043 0.4803961
pow_study SAD_dist_sum 0.3586818 0.0006001
pow_exam SAD_dist_sum 0.0141839 0.8956479
pow_lec SAD_dist_sum 0.3597599 0.0005761
pow_sleep SAD_dist_sum 0.2355072 0.0271863
com_gen SAD_dist_sum -0.3215195 0.0022541
com_unattended SAD_dist_sum -0.2744437 0.0096651
com_leave_with_other SAD_dist_sum -0.3526928 0.0007510
com_locked SAD_dist_sum 0.3294220 0.0017242
com_room_task SAD_dist_sum -0.2592329 0.0147322
NMPQ_sum SAD_dist_sum 0.5740088 0.0000000
MPIQ_sum SAD_dist_sum 0.6954495 0.0000000
MPIQ_SI_sum SAD_dist_sum 0.4762188 0.0000027
MPIQ_VFO_sum SAD_dist_sum 0.3768208 0.0002961
SAD_sum SAD_dist_sum 0.7532402 0.0000000
SAD_dep_sum SAD_dist_sum 0.5713921 0.0000000
SAD_ea_sum SAD_dist_sum 0.5250464 0.0000002
age Score_Double Trouble -0.0765582 0.4783540
age_first_phone Score_Double Trouble -0.1274404 0.2422768
dist_daily Score_Double Trouble -0.1871116 0.0808775
dist_study Score_Double Trouble -0.3223349 0.0021933
pow_not_using Score_Double Trouble 0.0902756 0.4028956
pow_notifications_on Score_Double Trouble -0.0909895 0.3991707
pow_vibrate Score_Double Trouble -0.1049949 0.3302797
pow_study Score_Double Trouble 0.0455125 0.6737124
pow_exam Score_Double Trouble -0.0626463 0.5620217
pow_lec Score_Double Trouble -0.1412084 0.1894195
pow_sleep Score_Double Trouble -0.0021058 0.9844650
com_gen Score_Double Trouble 0.0647113 0.5491766
com_unattended Score_Double Trouble -0.0277340 0.7975668
com_leave_with_other Score_Double Trouble 0.1356850 0.2074972
com_locked Score_Double Trouble -0.1168772 0.2781650
com_room_task Score_Double Trouble 0.0306930 0.7765052
NMPQ_sum Score_Double Trouble -0.1725933 0.1078328
MPIQ_sum Score_Double Trouble -0.1849860 0.0844489
MPIQ_SI_sum Score_Double Trouble -0.0956900 0.3751574
MPIQ_VFO_sum Score_Double Trouble -0.1801782 0.0929900
SAD_sum Score_Double Trouble -0.1296604 0.2285815
SAD_dep_sum Score_Double Trouble -0.1087390 0.3132284
SAD_ea_sum Score_Double Trouble -0.1007231 0.3504412
SAD_dist_sum Score_Double Trouble -0.1012247 0.3480347
age Score_Odd One Out -0.1053344 0.3287096
age_first_phone Score_Odd One Out -0.0594257 0.5867803
dist_daily Score_Odd One Out 0.0189071 0.8612019
dist_study Score_Odd One Out -0.0030882 0.9772186
pow_not_using Score_Odd One Out 0.2092203 0.0504290
pow_notifications_on Score_Odd One Out 0.0375485 0.7283491
pow_vibrate Score_Odd One Out -0.0695013 0.5199410
pow_study Score_Odd One Out -0.0605750 0.5750466
pow_exam Score_Odd One Out -0.2490396 0.0192947
pow_lec Score_Odd One Out -0.0528853 0.6245890
pow_sleep Score_Odd One Out -0.2988274 0.0046826
com_gen Score_Odd One Out 0.1142416 0.2892207
com_unattended Score_Odd One Out 0.0383464 0.7228083
com_leave_with_other Score_Odd One Out -0.0244894 0.8208280
com_locked Score_Odd One Out -0.0057847 0.9573419
com_room_task Score_Odd One Out 0.1427582 0.1845583
NMPQ_sum Score_Odd One Out -0.0860394 0.4254159
MPIQ_sum Score_Odd One Out -0.0221812 0.8374717
MPIQ_SI_sum Score_Odd One Out 0.0075963 0.9440014
MPIQ_VFO_sum Score_Odd One Out -0.1772083 0.0985973
SAD_sum Score_Odd One Out -0.0524786 0.6272586
SAD_dep_sum Score_Odd One Out -0.0327175 0.7621870
SAD_ea_sum Score_Odd One Out -0.0938872 0.3842616
SAD_dist_sum Score_Odd One Out 0.0315887 0.7701613
Score_Double Trouble Score_Odd One Out 0.2203936 0.0390785
age Score_Digit Span 0.0147767 0.8913126
age_first_phone Score_Digit Span -0.2079381 0.0547094
dist_daily Score_Digit Span -0.1649778 0.1245269
dist_study Score_Digit Span -0.1678011 0.1181210
pow_not_using Score_Digit Span 0.0862591 0.4242307
pow_notifications_on Score_Digit Span -0.1055438 0.3277436
pow_vibrate Score_Digit Span 0.0709493 0.5112608
pow_study Score_Digit Span -0.0701755 0.5158903
pow_exam Score_Digit Span 0.0188083 0.8619205
pow_lec Score_Digit Span -0.0537621 0.6188492
pow_sleep Score_Digit Span -0.0596729 0.5807636
com_gen Score_Digit Span -0.2862007 0.0068674
com_unattended Score_Digit Span -0.3225161 0.0021800
com_leave_with_other Score_Digit Span -0.2360154 0.0268468
com_locked Score_Digit Span 0.0786607 0.4663187
com_room_task Score_Digit Span -0.1488929 0.1662057
NMPQ_sum Score_Digit Span 0.0805244 0.4557899
MPIQ_sum Score_Digit Span -0.0295258 0.7847951
MPIQ_SI_sum Score_Digit Span 0.1939985 0.0701262
MPIQ_VFO_sum Score_Digit Span -0.1971184 0.0656507
SAD_sum Score_Digit Span 0.1232705 0.2525342
SAD_dep_sum Score_Digit Span 0.1961730 0.0669818
SAD_ea_sum Score_Digit Span 0.0521666 0.6293100
SAD_dist_sum Score_Digit Span -0.0249702 0.8173710
Score_Double Trouble Score_Digit Span 0.3011709 0.0043533
Score_Odd One Out Score_Digit Span 0.0301720 0.7802024
age Score_Feature Match -0.1998358 0.0619438
age_first_phone Score_Feature Match -0.0583783 0.5934026
dist_daily Score_Feature Match -0.1126380 0.2960880
dist_study Score_Feature Match -0.1111760 0.3024413
pow_not_using Score_Feature Match 0.1664733 0.1211013
pow_notifications_on Score_Feature Match 0.0405281 0.7077310
pow_vibrate Score_Feature Match -0.1600271 0.1363980
pow_study Score_Feature Match -0.2317282 0.0298267
pow_exam Score_Feature Match -0.2766151 0.0090835
pow_lec Score_Feature Match -0.2191918 0.0401867
pow_sleep Score_Feature Match -0.0868303 0.4211572
com_gen Score_Feature Match -0.0655235 0.5441639
com_unattended Score_Feature Match 0.0780849 0.4695981
com_leave_with_other Score_Feature Match -0.0615455 0.5689266
com_locked Score_Feature Match -0.0585755 0.5877523
com_room_task Score_Feature Match 0.0614577 0.5694787
NMPQ_sum Score_Feature Match -0.1528292 0.1551621
MPIQ_sum Score_Feature Match -0.1672455 0.1193611
MPIQ_SI_sum Score_Feature Match -0.0500722 0.6431542
MPIQ_VFO_sum Score_Feature Match -0.1614915 0.1328007
SAD_sum Score_Feature Match -0.1088473 0.3127438
SAD_dep_sum Score_Feature Match -0.1120562 0.2986055
SAD_ea_sum Score_Feature Match -0.0774966 0.4729620
SAD_dist_sum Score_Feature Match -0.0816638 0.4494182
Score_Double Trouble Score_Feature Match 0.2976520 0.0048560
Score_Odd One Out Score_Feature Match 0.0802066 0.4575760
Score_Digit Span Score_Feature Match 0.1003693 0.3521447
age Score_Polygons 0.0427480 0.6925045
age_first_phone Score_Polygons -0.0652476 0.5505983
dist_daily Score_Polygons 0.0175371 0.8711701
dist_study Score_Polygons 0.0935320 0.3860711
pow_not_using Score_Polygons -0.2067716 0.0532486
pow_notifications_on Score_Polygons 0.1631327 0.1288552
pow_vibrate Score_Polygons 0.0539193 0.6178226
pow_study Score_Polygons 0.0558316 0.6053927
pow_exam Score_Polygons -0.0307588 0.7760389
pow_lec Score_Polygons 0.1500687 0.1628480
pow_sleep Score_Polygons 0.0326319 0.7627912
com_gen Score_Polygons -0.0586430 0.5873213
com_unattended Score_Polygons -0.0703877 0.5146187
com_leave_with_other Score_Polygons -0.1022859 0.3429778
com_locked Score_Polygons 0.1191583 0.2688278
com_room_task Score_Polygons 0.1010500 0.3488720
NMPQ_sum Score_Polygons -0.0217665 0.8404702
MPIQ_sum Score_Polygons 0.1253585 0.2445252
MPIQ_SI_sum Score_Polygons -0.0044452 0.9672135
MPIQ_VFO_sum Score_Polygons 0.0529153 0.6243922
SAD_sum Score_Polygons 0.0653619 0.5451593
SAD_dep_sum Score_Polygons -0.0001469 0.9989165
SAD_ea_sum Score_Polygons 0.0945571 0.3808632
SAD_dist_sum Score_Polygons 0.1423149 0.1859394
Score_Double Trouble Score_Polygons 0.2084392 0.0513147
Score_Odd One Out Score_Polygons 0.0044804 0.9669541
Score_Digit Span Score_Polygons 0.1438054 0.1813254
Score_Feature Match Score_Polygons 0.2152491 0.0440075
age Score_Paired Associates 0.0481953 0.6556643
age_first_phone Score_Paired Associates 0.0747561 0.4939291
dist_daily Score_Paired Associates 0.0127552 0.9061087
dist_study Score_Paired Associates -0.0640856 0.5530533
pow_not_using Score_Paired Associates 0.2157795 0.0434766
pow_notifications_on Score_Paired Associates 0.0405690 0.7074489
pow_vibrate Score_Paired Associates -0.0604021 0.5761407
pow_study Score_Paired Associates -0.1189121 0.2698250
pow_exam Score_Paired Associates -0.2103268 0.0491958
pow_lec Score_Paired Associates -0.0438165 0.6852179
pow_sleep Score_Paired Associates -0.0025596 0.9811173
com_gen Score_Paired Associates 0.2470888 0.0202940
com_unattended Score_Paired Associates 0.2057381 0.0544769
com_leave_with_other Score_Paired Associates 0.1944514 0.0694618
com_locked Score_Paired Associates -0.0092822 0.9316004
com_room_task Score_Paired Associates 0.1260362 0.2419638
NMPQ_sum Score_Paired Associates -0.1725046 0.1080167
MPIQ_sum Score_Paired Associates -0.1559270 0.1468633
MPIQ_SI_sum Score_Paired Associates -0.1496738 0.1639698
MPIQ_VFO_sum Score_Paired Associates -0.1170926 0.2772742
SAD_sum Score_Paired Associates -0.1604452 0.1353635
SAD_dep_sum Score_Paired Associates -0.1167710 0.2786051
SAD_ea_sum Score_Paired Associates -0.1345559 0.2113393
SAD_dist_sum Score_Paired Associates -0.2068785 0.0531229
Score_Double Trouble Score_Paired Associates 0.1441542 0.1802580
Score_Odd One Out Score_Paired Associates 0.0544654 0.6142617
Score_Digit Span Score_Paired Associates 0.0600768 0.5782007
Score_Feature Match Score_Paired Associates 0.1427434 0.1846043
Score_Polygons Score_Paired Associates 0.0662841 0.5394899
age Score_Token Search 0.0212413 0.8442704
age_first_phone Score_Token Search -0.1328013 0.2228689
dist_daily Score_Token Search -0.0848246 0.4320050
dist_study Score_Token Search 0.0096760 0.9287062
pow_not_using Score_Token Search 0.1932608 0.0712197
pow_notifications_on Score_Token Search 0.0884737 0.4123878
pow_vibrate Score_Token Search -0.0729574 0.4993475
pow_study Score_Token Search 0.0035323 0.9739439
pow_exam Score_Token Search -0.0128797 0.9051966
pow_lec Score_Token Search -0.1008032 0.3500562
pow_sleep Score_Token Search -0.1286894 0.2321149
com_gen Score_Token Search 0.1376259 0.2010096
com_unattended Score_Token Search 0.0587788 0.5864547
com_leave_with_other Score_Token Search 0.1414608 0.1886216
com_locked Score_Token Search 0.0147017 0.8918613
com_room_task Score_Token Search 0.0374961 0.7287139
NMPQ_sum Score_Token Search -0.1075739 0.3184725
MPIQ_sum Score_Token Search -0.0194177 0.8574928
MPIQ_SI_sum Score_Token Search -0.0432596 0.6890118
MPIQ_VFO_sum Score_Token Search -0.1763515 0.1002633
SAD_sum Score_Token Search -0.0818392 0.4484416
SAD_dep_sum Score_Token Search -0.1106946 0.3045526
SAD_ea_sum Score_Token Search -0.0158373 0.8835649
SAD_dist_sum Score_Token Search 0.0138840 0.8978424
Score_Double Trouble Score_Token Search 0.3315730 0.0016009
Score_Odd One Out Score_Token Search 0.3279874 0.0018111
Score_Digit Span Score_Token Search 0.2866648 0.0067734
Score_Feature Match Score_Token Search 0.0429646 0.6910249
Score_Polygons Score_Token Search 0.1798600 0.0935785
Score_Paired Associates Score_Token Search 0.2771971 0.0089330
age Score_Spatial Planning -0.0565926 0.6004771
age_first_phone Score_Spatial Planning -0.0625620 0.5671543
dist_daily Score_Spatial Planning -0.0271744 0.8015668
dist_study Score_Spatial Planning 0.0828492 0.4428422
pow_not_using Score_Spatial Planning -0.0428353 0.6919080
pow_notifications_on Score_Spatial Planning 0.0706326 0.5131529
pow_vibrate Score_Spatial Planning 0.0261857 0.8086459
pow_study Score_Spatial Planning 0.0439802 0.6841045
pow_exam Score_Spatial Planning 0.0529275 0.6243118
pow_lec Score_Spatial Planning -0.0107379 0.9209057
pow_sleep Score_Spatial Planning 0.0243468 0.8218538
com_gen Score_Spatial Planning 0.0195109 0.8568161
com_unattended Score_Spatial Planning -0.0753458 0.4853691
com_leave_with_other Score_Spatial Planning -0.0067509 0.9502248
com_locked Score_Spatial Planning 0.0446723 0.6794032
com_room_task Score_Spatial Planning 0.0566680 0.5999906
NMPQ_sum Score_Spatial Planning -0.0286338 0.7911460
MPIQ_sum Score_Spatial Planning 0.0486381 0.6527041
MPIQ_SI_sum Score_Spatial Planning 0.0740959 0.4926585
MPIQ_VFO_sum Score_Spatial Planning -0.0420393 0.6973523
SAD_sum Score_Spatial Planning 0.0296925 0.7836097
SAD_dep_sum Score_Spatial Planning 0.0217232 0.8407835
SAD_ea_sum Score_Spatial Planning 0.0983396 0.3620166
SAD_dist_sum Score_Spatial Planning -0.0043955 0.9675795
Score_Double Trouble Score_Spatial Planning 0.2187921 0.0405610
Score_Odd One Out Score_Spatial Planning 0.2737201 0.0098660
Score_Digit Span Score_Spatial Planning 0.1552259 0.1487116
Score_Feature Match Score_Spatial Planning 0.0377551 0.7269132
Score_Polygons Score_Spatial Planning 0.2456623 0.0210525
Score_Paired Associates Score_Spatial Planning 0.1333872 0.2153689
Score_Token Search Score_Spatial Planning 0.3109607 0.0031897
age Score_Rotations -0.1671941 0.1194763
age_first_phone Score_Rotations -0.2625426 0.0146023
dist_daily Score_Rotations 0.0787570 0.4657716
dist_study Score_Rotations -0.0533716 0.6214023
pow_not_using Score_Rotations -0.0098350 0.9275373
pow_notifications_on Score_Rotations 0.1790477 0.0950940
pow_vibrate Score_Rotations -0.0636045 0.5560432
pow_study Score_Rotations 0.1041013 0.3344349
pow_exam Score_Rotations -0.0706521 0.5130365
pow_lec Score_Rotations -0.0283477 0.7931863
pow_sleep Score_Rotations 0.0810509 0.4528392
com_gen Score_Rotations 0.1025904 0.3415358
com_unattended Score_Rotations 0.1222866 0.2563695
com_leave_with_other Score_Rotations 0.0719680 0.5051992
com_locked Score_Rotations -0.0663061 0.5393550
com_room_task Score_Rotations 0.1242967 0.2485757
NMPQ_sum Score_Rotations -0.0570759 0.5973645
MPIQ_sum Score_Rotations -0.0062723 0.9537497
MPIQ_SI_sum Score_Rotations -0.0839644 0.4367052
MPIQ_VFO_sum Score_Rotations -0.1056672 0.3271751
SAD_sum Score_Rotations -0.0904126 0.4021790
SAD_dep_sum Score_Rotations -0.1554790 0.1480425
SAD_ea_sum Score_Rotations -0.0209357 0.8464835
SAD_dist_sum Score_Rotations -0.0039273 0.9710313
Score_Double Trouble Score_Rotations 0.3088387 0.0034151
Score_Odd One Out Score_Rotations -0.0805291 0.4557634
Score_Digit Span Score_Rotations -0.0029967 0.9778935
Score_Feature Match Score_Rotations 0.1978279 0.0646660
Score_Polygons Score_Rotations 0.3498257 0.0008349
Score_Paired Associates Score_Rotations 0.0708206 0.5120293
Score_Token Search Score_Rotations 0.0945159 0.3810716
Score_Spatial Planning Score_Rotations 0.1470832 0.1714733
age Score_Spatial Span -0.0953965 0.3766306
age_first_phone Score_Spatial Span -0.1843677 0.0892556
dist_daily Score_Spatial Span -0.0802760 0.4571853
dist_study Score_Spatial Span -0.0097212 0.9283740
pow_not_using Score_Spatial Span 0.1117170 0.3000801
pow_notifications_on Score_Spatial Span 0.2351679 0.0274149
pow_vibrate Score_Spatial Span -0.0479296 0.6574437
pow_study Score_Spatial Span 0.0293320 0.7861737
pow_exam Score_Spatial Span -0.0270601 0.8023843
pow_lec Score_Spatial Span 0.0150887 0.8890326
pow_sleep Score_Spatial Span 0.0190225 0.8603640
com_gen Score_Spatial Span -0.1245485 0.2476110
com_unattended Score_Spatial Span -0.0730607 0.4987387
com_leave_with_other Score_Spatial Span -0.0457066 0.6724003
com_locked Score_Spatial Span -0.0352680 0.7442622
com_room_task Score_Spatial Span 0.0719838 0.5051056
NMPQ_sum Score_Spatial Span -0.0923501 0.3921279
MPIQ_sum Score_Spatial Span -0.0096959 0.9285594
MPIQ_SI_sum Score_Spatial Span -0.0277368 0.7975471
MPIQ_VFO_sum Score_Spatial Span -0.1268734 0.2388255
SAD_sum Score_Spatial Span -0.0289206 0.7891026
SAD_dep_sum Score_Spatial Span -0.0988310 0.3596112
SAD_ea_sum Score_Spatial Span 0.0735064 0.4961162
SAD_dist_sum Score_Spatial Span 0.0356525 0.7415718
Score_Double Trouble Score_Spatial Span 0.3235682 0.0021042
Score_Odd One Out Score_Spatial Span 0.0931890 0.3878229
Score_Digit Span Score_Spatial Span 0.1103639 0.3060085
Score_Feature Match Score_Spatial Span 0.3851385 0.0002112
Score_Polygons Score_Spatial Span 0.3069718 0.0036252
Score_Paired Associates Score_Spatial Span 0.1445690 0.1789941
Score_Token Search Score_Spatial Span 0.3176603 0.0025627
Score_Spatial Planning Score_Spatial Span 0.3209337 0.0022987
Score_Rotations Score_Spatial Span 0.3082858 0.0034762
age Score_Grammatical Reasoning -0.0222845 0.8367255
age_first_phone Score_Grammatical Reasoning -0.0578869 0.5965213
dist_daily Score_Grammatical Reasoning 0.0255054 0.8135264
dist_study Score_Grammatical Reasoning -0.0766761 0.4776750
pow_not_using Score_Grammatical Reasoning -0.2047189 0.0557108
pow_notifications_on Score_Grammatical Reasoning 0.0980517 0.3634308
pow_vibrate Score_Grammatical Reasoning -0.0361905 0.7378120
pow_study Score_Grammatical Reasoning 0.1683099 0.1169940
pow_exam Score_Grammatical Reasoning -0.1104101 0.3058048
pow_lec Score_Grammatical Reasoning 0.1064854 0.3234221
pow_sleep Score_Grammatical Reasoning 0.1745613 0.1038153
com_gen Score_Grammatical Reasoning -0.0238900 0.8251428
com_unattended Score_Grammatical Reasoning -0.1903414 0.0756823
com_leave_with_other Score_Grammatical Reasoning 0.0172393 0.8733394
com_locked Score_Grammatical Reasoning 0.0162320 0.8806836
com_room_task Score_Grammatical Reasoning 0.0112964 0.9168064
NMPQ_sum Score_Grammatical Reasoning -0.0269853 0.8029196
MPIQ_sum Score_Grammatical Reasoning -0.0661631 0.5402320
MPIQ_SI_sum Score_Grammatical Reasoning 0.0057663 0.9574775
MPIQ_VFO_sum Score_Grammatical Reasoning -0.0613493 0.5701611
SAD_sum Score_Grammatical Reasoning 0.0308398 0.7754647
SAD_dep_sum Score_Grammatical Reasoning 0.0162622 0.8804636
SAD_ea_sum Score_Grammatical Reasoning 0.0360128 0.7390531
SAD_dist_sum Score_Grammatical Reasoning 0.0475169 0.6602104
Score_Double Trouble Score_Grammatical Reasoning 0.3753581 0.0003139
Score_Odd One Out Score_Grammatical Reasoning 0.1009932 0.3491441
Score_Digit Span Score_Grammatical Reasoning 0.1034348 0.3375558
Score_Feature Match Score_Grammatical Reasoning 0.1122004 0.2979801
Score_Polygons Score_Grammatical Reasoning 0.2923206 0.0057160
Score_Paired Associates Score_Grammatical Reasoning 0.1672640 0.1193198
Score_Token Search Score_Grammatical Reasoning 0.0601074 0.5780065
Score_Spatial Planning Score_Grammatical Reasoning 0.2462288 0.0207485
Score_Rotations Score_Grammatical Reasoning 0.1413110 0.1890948
Score_Spatial Span Score_Grammatical Reasoning 0.2352990 0.0273264
age Score_Monkey Ladder -0.0727467 0.5005912
age_first_phone Score_Monkey Ladder -0.1259564 0.2478496
dist_daily Score_Monkey Ladder -0.1766461 0.0996879
dist_study Score_Monkey Ladder -0.0713456 0.5088986
pow_not_using Score_Monkey Ladder 0.1609915 0.1340207
pow_notifications_on Score_Monkey Ladder 0.0821099 0.4469371
pow_vibrate Score_Monkey Ladder -0.2488185 0.0194058
pow_study Score_Monkey Ladder -0.0935222 0.3861211
pow_exam Score_Monkey Ladder -0.0686517 0.5250682
pow_lec Score_Monkey Ladder -0.0514712 0.6338929
pow_sleep Score_Monkey Ladder 0.0050477 0.9627720
com_gen Score_Monkey Ladder -0.1241587 0.2491057
com_unattended Score_Monkey Ladder -0.0881839 0.4139264
com_leave_with_other Score_Monkey Ladder -0.0475407 0.6600504
com_locked Score_Monkey Ladder -0.1206799 0.2627178
com_room_task Score_Monkey Ladder 0.0214095 0.8430527
NMPQ_sum Score_Monkey Ladder -0.1599785 0.1365188
MPIQ_sum Score_Monkey Ladder -0.2348997 0.0275969
MPIQ_SI_sum Score_Monkey Ladder -0.0658573 0.5421103
MPIQ_VFO_sum Score_Monkey Ladder -0.2035555 0.0571472
SAD_sum Score_Monkey Ladder -0.1824363 0.0888973
SAD_dep_sum Score_Monkey Ladder -0.1895769 0.0768870
SAD_ea_sum Score_Monkey Ladder -0.1863063 0.0822161
SAD_dist_sum Score_Monkey Ladder -0.0690047 0.5229349
Score_Double Trouble Score_Monkey Ladder 0.2804245 0.0081372
Score_Odd One Out Score_Monkey Ladder 0.0891849 0.4086256
Score_Digit Span Score_Monkey Ladder 0.1535262 0.1532652
Score_Feature Match Score_Monkey Ladder 0.2222876 0.0373839
Score_Polygons Score_Monkey Ladder 0.1414072 0.1887907
Score_Paired Associates Score_Monkey Ladder 0.1156421 0.2833103
Score_Token Search Score_Monkey Ladder 0.1860503 0.0826453
Score_Spatial Planning Score_Monkey Ladder 0.3163629 0.0026747
Score_Rotations Score_Monkey Ladder 0.2067894 0.0532277
Score_Spatial Span Score_Monkey Ladder 0.4975992 0.0000008
Score_Grammatical Reasoning Score_Monkey Ladder 0.2948994 0.0052845
age CBS_overall 0.0147767 0.8913126
age_first_phone CBS_overall -0.2079381 0.0547094
dist_daily CBS_overall -0.1649778 0.1245269
dist_study CBS_overall -0.1678011 0.1181210
pow_not_using CBS_overall 0.0862591 0.4242307
pow_notifications_on CBS_overall -0.1055438 0.3277436
pow_vibrate CBS_overall 0.0709493 0.5112608
pow_study CBS_overall -0.0701755 0.5158903
pow_exam CBS_overall 0.0188083 0.8619205
pow_lec CBS_overall -0.0537621 0.6188492
pow_sleep CBS_overall -0.0596729 0.5807636
com_gen CBS_overall -0.2862007 0.0068674
com_unattended CBS_overall -0.3225161 0.0021800
com_leave_with_other CBS_overall -0.2360154 0.0268468
com_locked CBS_overall 0.0786607 0.4663187
com_room_task CBS_overall -0.1488929 0.1662057
NMPQ_sum CBS_overall 0.0805244 0.4557899
MPIQ_sum CBS_overall -0.0295258 0.7847951
MPIQ_SI_sum CBS_overall 0.1939985 0.0701262
MPIQ_VFO_sum CBS_overall -0.1971184 0.0656507
SAD_sum CBS_overall 0.1232705 0.2525342
SAD_dep_sum CBS_overall 0.1961730 0.0669818
SAD_ea_sum CBS_overall 0.0521666 0.6293100
SAD_dist_sum CBS_overall -0.0249702 0.8173710
Score_Double Trouble CBS_overall 0.3011709 0.0043533
Score_Odd One Out CBS_overall 0.0301720 0.7802024
Score_Digit Span CBS_overall 1.0000000 0.0000000
Score_Feature Match CBS_overall 0.1003693 0.3521447
Score_Polygons CBS_overall 0.1438054 0.1813254
Score_Paired Associates CBS_overall 0.0600768 0.5782007
Score_Token Search CBS_overall 0.2866648 0.0067734
Score_Spatial Planning CBS_overall 0.1552259 0.1487116
Score_Rotations CBS_overall -0.0029967 0.9778935
Score_Spatial Span CBS_overall 0.1103639 0.3060085
Score_Grammatical Reasoning CBS_overall 0.1034348 0.3375558
Score_Monkey Ladder CBS_overall 0.1535262 0.1532652
age CBS_STM -0.0727467 0.5005912
age_first_phone CBS_STM -0.1259564 0.2478496
dist_daily CBS_STM -0.1766461 0.0996879
dist_study CBS_STM -0.0713456 0.5088986
pow_not_using CBS_STM 0.1609915 0.1340207
pow_notifications_on CBS_STM 0.0821099 0.4469371
pow_vibrate CBS_STM -0.2488185 0.0194058
pow_study CBS_STM -0.0935222 0.3861211
pow_exam CBS_STM -0.0686517 0.5250682
pow_lec CBS_STM -0.0514712 0.6338929
pow_sleep CBS_STM 0.0050477 0.9627720
com_gen CBS_STM -0.1241587 0.2491057
com_unattended CBS_STM -0.0881839 0.4139264
com_leave_with_other CBS_STM -0.0475407 0.6600504
com_locked CBS_STM -0.1206799 0.2627178
com_room_task CBS_STM 0.0214095 0.8430527
NMPQ_sum CBS_STM -0.1599785 0.1365188
MPIQ_sum CBS_STM -0.2348997 0.0275969
MPIQ_SI_sum CBS_STM -0.0658573 0.5421103
MPIQ_VFO_sum CBS_STM -0.2035555 0.0571472
SAD_sum CBS_STM -0.1824363 0.0888973
SAD_dep_sum CBS_STM -0.1895769 0.0768870
SAD_ea_sum CBS_STM -0.1863063 0.0822161
SAD_dist_sum CBS_STM -0.0690047 0.5229349
Score_Double Trouble CBS_STM 0.2804245 0.0081372
Score_Odd One Out CBS_STM 0.0891849 0.4086256
Score_Digit Span CBS_STM 0.1535262 0.1532652
Score_Feature Match CBS_STM 0.2222876 0.0373839
Score_Polygons CBS_STM 0.1414072 0.1887907
Score_Paired Associates CBS_STM 0.1156421 0.2833103
Score_Token Search CBS_STM 0.1860503 0.0826453
Score_Spatial Planning CBS_STM 0.3163629 0.0026747
Score_Rotations CBS_STM 0.2067894 0.0532277
Score_Spatial Span CBS_STM 0.4975992 0.0000008
Score_Grammatical Reasoning CBS_STM 0.2948994 0.0052845
Score_Monkey Ladder CBS_STM 1.0000000 0.0000000
CBS_overall CBS_STM 0.1535262 0.1532652
age CBS_reason -0.1998358 0.0619438
age_first_phone CBS_reason -0.0583783 0.5934026
dist_daily CBS_reason -0.1126380 0.2960880
dist_study CBS_reason -0.1111760 0.3024413
pow_not_using CBS_reason 0.1664733 0.1211013
pow_notifications_on CBS_reason 0.0405281 0.7077310
pow_vibrate CBS_reason -0.1600271 0.1363980
pow_study CBS_reason -0.2317282 0.0298267
pow_exam CBS_reason -0.2766151 0.0090835
pow_lec CBS_reason -0.2191918 0.0401867
pow_sleep CBS_reason -0.0868303 0.4211572
com_gen CBS_reason -0.0655235 0.5441639
com_unattended CBS_reason 0.0780849 0.4695981
com_leave_with_other CBS_reason -0.0615455 0.5689266
com_locked CBS_reason -0.0585755 0.5877523
com_room_task CBS_reason 0.0614577 0.5694787
NMPQ_sum CBS_reason -0.1528292 0.1551621
MPIQ_sum CBS_reason -0.1672455 0.1193611
MPIQ_SI_sum CBS_reason -0.0500722 0.6431542
MPIQ_VFO_sum CBS_reason -0.1614915 0.1328007
SAD_sum CBS_reason -0.1088473 0.3127438
SAD_dep_sum CBS_reason -0.1120562 0.2986055
SAD_ea_sum CBS_reason -0.0774966 0.4729620
SAD_dist_sum CBS_reason -0.0816638 0.4494182
Score_Double Trouble CBS_reason 0.2976520 0.0048560
Score_Odd One Out CBS_reason 0.0802066 0.4575760
Score_Digit Span CBS_reason 0.1003693 0.3521447
Score_Feature Match CBS_reason 1.0000000 0.0000000
Score_Polygons CBS_reason 0.2152491 0.0440075
Score_Paired Associates CBS_reason 0.1427434 0.1846043
Score_Token Search CBS_reason 0.0429646 0.6910249
Score_Spatial Planning CBS_reason 0.0377551 0.7269132
Score_Rotations CBS_reason 0.1978279 0.0646660
Score_Spatial Span CBS_reason 0.3851385 0.0002112
Score_Grammatical Reasoning CBS_reason 0.1122004 0.2979801
Score_Monkey Ladder CBS_reason 0.2222876 0.0373839
CBS_overall CBS_reason 0.1003693 0.3521447
CBS_STM CBS_reason 0.2222876 0.0373839
age CBS_verbal -0.0222845 0.8367255
age_first_phone CBS_verbal -0.0578869 0.5965213
dist_daily CBS_verbal 0.0255054 0.8135264
dist_study CBS_verbal -0.0766761 0.4776750
pow_not_using CBS_verbal -0.2047189 0.0557108
pow_notifications_on CBS_verbal 0.0980517 0.3634308
pow_vibrate CBS_verbal -0.0361905 0.7378120
pow_study CBS_verbal 0.1683099 0.1169940
pow_exam CBS_verbal -0.1104101 0.3058048
pow_lec CBS_verbal 0.1064854 0.3234221
pow_sleep CBS_verbal 0.1745613 0.1038153
com_gen CBS_verbal -0.0238900 0.8251428
com_unattended CBS_verbal -0.1903414 0.0756823
com_leave_with_other CBS_verbal 0.0172393 0.8733394
com_locked CBS_verbal 0.0162320 0.8806836
com_room_task CBS_verbal 0.0112964 0.9168064
NMPQ_sum CBS_verbal -0.0269853 0.8029196
MPIQ_sum CBS_verbal -0.0661631 0.5402320
MPIQ_SI_sum CBS_verbal 0.0057663 0.9574775
MPIQ_VFO_sum CBS_verbal -0.0613493 0.5701611
SAD_sum CBS_verbal 0.0308398 0.7754647
SAD_dep_sum CBS_verbal 0.0162622 0.8804636
SAD_ea_sum CBS_verbal 0.0360128 0.7390531
SAD_dist_sum CBS_verbal 0.0475169 0.6602104
Score_Double Trouble CBS_verbal 0.3753581 0.0003139
Score_Odd One Out CBS_verbal 0.1009932 0.3491441
Score_Digit Span CBS_verbal 0.1034348 0.3375558
Score_Feature Match CBS_verbal 0.1122004 0.2979801
Score_Polygons CBS_verbal 0.2923206 0.0057160
Score_Paired Associates CBS_verbal 0.1672640 0.1193198
Score_Token Search CBS_verbal 0.0601074 0.5780065
Score_Spatial Planning CBS_verbal 0.2462288 0.0207485
Score_Rotations CBS_verbal 0.1413110 0.1890948
Score_Spatial Span CBS_verbal 0.2352990 0.0273264
Score_Grammatical Reasoning CBS_verbal 1.0000000 0.0000000
Score_Monkey Ladder CBS_verbal 0.2948994 0.0052845
CBS_overall CBS_verbal 0.1034348 0.3375558
CBS_STM CBS_verbal 0.2948994 0.0052845
CBS_reason CBS_verbal 0.1122004 0.2979801
age CBS_ts_memory -0.0727467 0.5005912
age_first_phone CBS_ts_memory -0.1259564 0.2478496
dist_daily CBS_ts_memory -0.1766461 0.0996879
dist_study CBS_ts_memory -0.0713456 0.5088986
pow_not_using CBS_ts_memory 0.1609915 0.1340207
pow_notifications_on CBS_ts_memory 0.0821099 0.4469371
pow_vibrate CBS_ts_memory -0.2488185 0.0194058
pow_study CBS_ts_memory -0.0935222 0.3861211
pow_exam CBS_ts_memory -0.0686517 0.5250682
pow_lec CBS_ts_memory -0.0514712 0.6338929
pow_sleep CBS_ts_memory 0.0050477 0.9627720
com_gen CBS_ts_memory -0.1241587 0.2491057
com_unattended CBS_ts_memory -0.0881839 0.4139264
com_leave_with_other CBS_ts_memory -0.0475407 0.6600504
com_locked CBS_ts_memory -0.1206799 0.2627178
com_room_task CBS_ts_memory 0.0214095 0.8430527
NMPQ_sum CBS_ts_memory -0.1599785 0.1365188
MPIQ_sum CBS_ts_memory -0.2348997 0.0275969
MPIQ_SI_sum CBS_ts_memory -0.0658573 0.5421103
MPIQ_VFO_sum CBS_ts_memory -0.2035555 0.0571472
SAD_sum CBS_ts_memory -0.1824363 0.0888973
SAD_dep_sum CBS_ts_memory -0.1895769 0.0768870
SAD_ea_sum CBS_ts_memory -0.1863063 0.0822161
SAD_dist_sum CBS_ts_memory -0.0690047 0.5229349
Score_Double Trouble CBS_ts_memory 0.2804245 0.0081372
Score_Odd One Out CBS_ts_memory 0.0891849 0.4086256
Score_Digit Span CBS_ts_memory 0.1535262 0.1532652
Score_Feature Match CBS_ts_memory 0.2222876 0.0373839
Score_Polygons CBS_ts_memory 0.1414072 0.1887907
Score_Paired Associates CBS_ts_memory 0.1156421 0.2833103
Score_Token Search CBS_ts_memory 0.1860503 0.0826453
Score_Spatial Planning CBS_ts_memory 0.3163629 0.0026747
Score_Rotations CBS_ts_memory 0.2067894 0.0532277
Score_Spatial Span CBS_ts_memory 0.4975992 0.0000008
Score_Grammatical Reasoning CBS_ts_memory 0.2948994 0.0052845
Score_Monkey Ladder CBS_ts_memory 1.0000000 0.0000000
CBS_overall CBS_ts_memory 0.1535262 0.1532652
CBS_STM CBS_ts_memory 1.0000000 0.0000000
CBS_reason CBS_ts_memory 0.2222876 0.0373839
CBS_verbal CBS_ts_memory 0.2948994 0.0052845
age CBS_ts_reason 0.0427480 0.6925045
age_first_phone CBS_ts_reason -0.0652476 0.5505983
dist_daily CBS_ts_reason 0.0175371 0.8711701
dist_study CBS_ts_reason 0.0935320 0.3860711
pow_not_using CBS_ts_reason -0.2067716 0.0532486
pow_notifications_on CBS_ts_reason 0.1631327 0.1288552
pow_vibrate CBS_ts_reason 0.0539193 0.6178226
pow_study CBS_ts_reason 0.0558316 0.6053927
pow_exam CBS_ts_reason -0.0307588 0.7760389
pow_lec CBS_ts_reason 0.1500687 0.1628480
pow_sleep CBS_ts_reason 0.0326319 0.7627912
com_gen CBS_ts_reason -0.0586430 0.5873213
com_unattended CBS_ts_reason -0.0703877 0.5146187
com_leave_with_other CBS_ts_reason -0.1022859 0.3429778
com_locked CBS_ts_reason 0.1191583 0.2688278
com_room_task CBS_ts_reason 0.1010500 0.3488720
NMPQ_sum CBS_ts_reason -0.0217665 0.8404702
MPIQ_sum CBS_ts_reason 0.1253585 0.2445252
MPIQ_SI_sum CBS_ts_reason -0.0044452 0.9672135
MPIQ_VFO_sum CBS_ts_reason 0.0529153 0.6243922
SAD_sum CBS_ts_reason 0.0653619 0.5451593
SAD_dep_sum CBS_ts_reason -0.0001469 0.9989165
SAD_ea_sum CBS_ts_reason 0.0945571 0.3808632
SAD_dist_sum CBS_ts_reason 0.1423149 0.1859394
Score_Double Trouble CBS_ts_reason 0.2084392 0.0513147
Score_Odd One Out CBS_ts_reason 0.0044804 0.9669541
Score_Digit Span CBS_ts_reason 0.1438054 0.1813254
Score_Feature Match CBS_ts_reason 0.2152491 0.0440075
Score_Polygons CBS_ts_reason 1.0000000 0.0000000
Score_Paired Associates CBS_ts_reason 0.0662841 0.5394899
Score_Token Search CBS_ts_reason 0.1798600 0.0935785
Score_Spatial Planning CBS_ts_reason 0.2456623 0.0210525
Score_Rotations CBS_ts_reason 0.3498257 0.0008349
Score_Spatial Span CBS_ts_reason 0.3069718 0.0036252
Score_Grammatical Reasoning CBS_ts_reason 0.2923206 0.0057160
Score_Monkey Ladder CBS_ts_reason 0.1414072 0.1887907
CBS_overall CBS_ts_reason 0.1438054 0.1813254
CBS_STM CBS_ts_reason 0.1414072 0.1887907
CBS_reason CBS_ts_reason 0.2152491 0.0440075
CBS_verbal CBS_ts_reason 0.2923206 0.0057160
CBS_ts_memory CBS_ts_reason 0.1414072 0.1887907
age CBS_ts_verbalab -0.0222845 0.8367255
age_first_phone CBS_ts_verbalab -0.0578869 0.5965213
dist_daily CBS_ts_verbalab 0.0255054 0.8135264
dist_study CBS_ts_verbalab -0.0766761 0.4776750
pow_not_using CBS_ts_verbalab -0.2047189 0.0557108
pow_notifications_on CBS_ts_verbalab 0.0980517 0.3634308
pow_vibrate CBS_ts_verbalab -0.0361905 0.7378120
pow_study CBS_ts_verbalab 0.1683099 0.1169940
pow_exam CBS_ts_verbalab -0.1104101 0.3058048
pow_lec CBS_ts_verbalab 0.1064854 0.3234221
pow_sleep CBS_ts_verbalab 0.1745613 0.1038153
com_gen CBS_ts_verbalab -0.0238900 0.8251428
com_unattended CBS_ts_verbalab -0.1903414 0.0756823
com_leave_with_other CBS_ts_verbalab 0.0172393 0.8733394
com_locked CBS_ts_verbalab 0.0162320 0.8806836
com_room_task CBS_ts_verbalab 0.0112964 0.9168064
NMPQ_sum CBS_ts_verbalab -0.0269853 0.8029196
MPIQ_sum CBS_ts_verbalab -0.0661631 0.5402320
MPIQ_SI_sum CBS_ts_verbalab 0.0057663 0.9574775
MPIQ_VFO_sum CBS_ts_verbalab -0.0613493 0.5701611
SAD_sum CBS_ts_verbalab 0.0308398 0.7754647
SAD_dep_sum CBS_ts_verbalab 0.0162622 0.8804636
SAD_ea_sum CBS_ts_verbalab 0.0360128 0.7390531
SAD_dist_sum CBS_ts_verbalab 0.0475169 0.6602104
Score_Double Trouble CBS_ts_verbalab 0.3753581 0.0003139
Score_Odd One Out CBS_ts_verbalab 0.1009932 0.3491441
Score_Digit Span CBS_ts_verbalab 0.1034348 0.3375558
Score_Feature Match CBS_ts_verbalab 0.1122004 0.2979801
Score_Polygons CBS_ts_verbalab 0.2923206 0.0057160
Score_Paired Associates CBS_ts_verbalab 0.1672640 0.1193198
Score_Token Search CBS_ts_verbalab 0.0601074 0.5780065
Score_Spatial Planning CBS_ts_verbalab 0.2462288 0.0207485
Score_Rotations CBS_ts_verbalab 0.1413110 0.1890948
Score_Spatial Span CBS_ts_verbalab 0.2352990 0.0273264
Score_Grammatical Reasoning CBS_ts_verbalab 1.0000000 0.0000000
Score_Monkey Ladder CBS_ts_verbalab 0.2948994 0.0052845
CBS_overall CBS_ts_verbalab 0.1034348 0.3375558
CBS_STM CBS_ts_verbalab 0.2948994 0.0052845
CBS_reason CBS_ts_verbalab 0.1122004 0.2979801
CBS_verbal CBS_ts_verbalab 1.0000000 0.0000000
CBS_ts_memory CBS_ts_verbalab 0.2948994 0.0052845
CBS_ts_reason CBS_ts_verbalab 0.2923206 0.0057160
age CBS_ts_con -0.1998358 0.0619438
age_first_phone CBS_ts_con -0.0583783 0.5934026
dist_daily CBS_ts_con -0.1126380 0.2960880
dist_study CBS_ts_con -0.1111760 0.3024413
pow_not_using CBS_ts_con 0.1664733 0.1211013
pow_notifications_on CBS_ts_con 0.0405281 0.7077310
pow_vibrate CBS_ts_con -0.1600271 0.1363980
pow_study CBS_ts_con -0.2317282 0.0298267
pow_exam CBS_ts_con -0.2766151 0.0090835
pow_lec CBS_ts_con -0.2191918 0.0401867
pow_sleep CBS_ts_con -0.0868303 0.4211572
com_gen CBS_ts_con -0.0655235 0.5441639
com_unattended CBS_ts_con 0.0780849 0.4695981
com_leave_with_other CBS_ts_con -0.0615455 0.5689266
com_locked CBS_ts_con -0.0585755 0.5877523
com_room_task CBS_ts_con 0.0614577 0.5694787
NMPQ_sum CBS_ts_con -0.1528292 0.1551621
MPIQ_sum CBS_ts_con -0.1672455 0.1193611
MPIQ_SI_sum CBS_ts_con -0.0500722 0.6431542
MPIQ_VFO_sum CBS_ts_con -0.1614915 0.1328007
SAD_sum CBS_ts_con -0.1088473 0.3127438
SAD_dep_sum CBS_ts_con -0.1120562 0.2986055
SAD_ea_sum CBS_ts_con -0.0774966 0.4729620
SAD_dist_sum CBS_ts_con -0.0816638 0.4494182
Score_Double Trouble CBS_ts_con 0.2976520 0.0048560
Score_Odd One Out CBS_ts_con 0.0802066 0.4575760
Score_Digit Span CBS_ts_con 0.1003693 0.3521447
Score_Feature Match CBS_ts_con 1.0000000 0.0000000
Score_Polygons CBS_ts_con 0.2152491 0.0440075
Score_Paired Associates CBS_ts_con 0.1427434 0.1846043
Score_Token Search CBS_ts_con 0.0429646 0.6910249
Score_Spatial Planning CBS_ts_con 0.0377551 0.7269132
Score_Rotations CBS_ts_con 0.1978279 0.0646660
Score_Spatial Span CBS_ts_con 0.3851385 0.0002112
Score_Grammatical Reasoning CBS_ts_con 0.1122004 0.2979801
Score_Monkey Ladder CBS_ts_con 0.2222876 0.0373839
CBS_overall CBS_ts_con 0.1003693 0.3521447
CBS_STM CBS_ts_con 0.2222876 0.0373839
CBS_reason CBS_ts_con 1.0000000 0.0000000
CBS_verbal CBS_ts_con 0.1122004 0.2979801
CBS_ts_memory CBS_ts_con 0.2222876 0.0373839
CBS_ts_reason CBS_ts_con 0.2152491 0.0440075
CBS_ts_verbalab CBS_ts_con 0.1122004 0.2979801

# print tables using kable
kable(as.data.frame(format(main_corr_pb2$r, scientific = FALSE)), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.3984 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily -0.2799 -0.1053 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 0.0062 -0.0045 0.1579 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using -0.1871 -0.0322 0.0335 -0.1027 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on -0.0255 -0.1438 0.064 0.0723 -0.0745 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.127 0.1089 -0.0372 0.033 -0.1617 0.0769 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.2125 0.019 0.1902 -0.0058 -0.508 0.223 0.0629 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.2442 0.1686 -0.014 -0.0516 -0.28 0.0466 -0.1383 0.335 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.219 -0.0322 0.1871 0.1357 -0.5188 0.2803 -0.0079 0.625 0.3257 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.2074 0.1544 0.0774 0.0236 -0.4696 -0.0217 0.1 0.5897 0.2282 0.4339 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen -0.0682 0.1993 -0.1035 -0.1408 0.0801 -0.1095 0.043 -0.0443 -0.0579 -0.0399 -0.0143 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended -0.0383 0.2957 -0.0735 0.0558 0.2385 -0.1781 -0.1582 -0.0971 -0.0498 -0.1226 -0.0029 0.573 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other -0.0847 0.1664 -0.0632 -0.0912 0.182 -0.1675 -0.0953 -0.1013 -0.0277 -0.1795 -0.1148 0.6325 0.6186 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked -0.0676 -0.0305 0.3274 0.179 0.006 -0.0672 0.0255 0.0902 0.0512 0.0649 0.1133 -0.3402 -0.2768 -0.2614 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1701 0.0788 -0.1396 0.004 0.1818 0.0143 -0.0321 0.0359 0.0227 0.1059 0.0798 0.4016 0.4658 0.3187 0.011 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum -0.2849 -0.2041 0.383 0.237 -0.0716 0.1227 -0.0343 0.1628 -0.0532 0.0742 0.013 -0.3751 -0.4366 -0.3056 0.3497 -0.404 1 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum -0.205 -0.1074 0.457 0.2165 -0.2329 0.1912 -0.0656 0.293 0.1432 0.3167 0.1249 -0.2458 -0.2277 -0.1942 0.2635 -0.3465 0.6986 1 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum -0.105 -0.2873 0.2238 0.1244 -0.1689 0.1369 -0.0467 0.2132 0.0904 0.1977 0.0728 -0.5048 -0.5196 -0.4838 0.282 -0.3564 0.6967 0.5909 1 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum -0.0373 -0.0485 0.296 0.2402 -0.162 -0.0092 0.0677 -0.0067 0.0024 0.1108 0.0187 -0.168 -0.1978 -0.0733 0.1811 -0.2393 0.4466 0.4676 0.2861 1 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum -0.1659 -0.2491 0.4041 0.1769 -0.2192 0.1511 -0.029 0.242 0.0714 0.2413 0.1113 -0.4251 -0.4872 -0.3954 0.3992 -0.4232 0.8332 0.7719 0.7825 0.4859 1 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum -0.1523 -0.2595 0.3427 0.1016 -0.1903 0.0918 -0.0251 0.154 0.0325 0.133 0.0053 -0.4087 -0.5234 -0.3828 0.4049 -0.4145 0.7887 0.5987 0.8045 0.3497 0.9258 1 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum -0.0893 -0.1126 0.2823 0.1387 -0.2449 0.1133 0.0331 0.2686 0.1993 0.2667 0.2021 -0.2955 -0.319 -0.2512 0.2545 -0.3199 0.6519 0.7338 0.574 0.514 0.8163 0.6194 1 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum -0.1344 -0.2595 0.4963 0.27 -0.2219 0.2318 -0.0762 0.3587 0.0142 0.3598 0.2355 -0.3215 -0.2744 -0.3527 0.3294 -0.2592 0.574 0.6954 0.4762 0.3768 0.7532 0.5714 0.525 1 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble -0.0766 -0.1274 -0.1871 -0.3223 0.0903 -0.091 -0.105 0.0455 -0.0626 -0.1412 -0.0021 0.0647 -0.0277 0.1357 -0.1169 0.0307 -0.1726 -0.185 -0.0957 -0.1802 -0.1297 -0.1087 -0.1007 -0.1012 1 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out -0.1053 -0.0594 0.0189 -0.0031 0.2092 0.0375 -0.0695 -0.0606 -0.249 -0.0529 -0.2988 0.1142 0.0383 -0.0245 -0.0058 0.1428 -0.086 -0.0222 0.0076 -0.1772 -0.0525 -0.0327 -0.0939 0.0316 0.2204 1 - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.0148 -0.2079 -0.165 -0.1678 0.0863 -0.1055 0.0709 -0.0702 0.0188 -0.0538 -0.0597 -0.2862 -0.3225 -0.236 0.0787 -0.1489 0.0805 -0.0295 0.194 -0.1971 0.1233 0.1962 0.0522 -0.025 0.3012 0.0302 1 - - - - - - - - - - - - - - - - -
Score_Feature Match -0.1998 -0.0584 -0.1126 -0.1112 0.1665 0.0405 -0.16 -0.2317 -0.2766 -0.2192 -0.0868 -0.0655 0.0781 -0.0615 -0.0586 0.0615 -0.1528 -0.1672 -0.0501 -0.1615 -0.1088 -0.1121 -0.0775 -0.0817 0.2977 0.0802 0.1004 1 - - - - - - - - - - - - - - - -
Score_Polygons 0.0427 -0.0652 0.0175 0.0935 -0.2068 0.1631 0.0539 0.0558 -0.0308 0.1501 0.0326 -0.0586 -0.0704 -0.1023 0.1192 0.101 -0.0218 0.1254 -0.0044 0.0529 0.0654 -1e-04 0.0946 0.1423 0.2084 0.0045 0.1438 0.2152 1 - - - - - - - - - - - - - - -
Score_Paired Associates 0.0482 0.0748 0.0128 -0.0641 0.2158 0.0406 -0.0604 -0.1189 -0.2103 -0.0438 -0.0026 0.2471 0.2057 0.1945 -0.0093 0.126 -0.1725 -0.1559 -0.1497 -0.1171 -0.1604 -0.1168 -0.1346 -0.2069 0.1442 0.0545 0.0601 0.1427 0.0663 1 - - - - - - - - - - - - - -
Score_Token Search 0.0212 -0.1328 -0.0848 0.0097 0.1933 0.0885 -0.073 0.0035 -0.0129 -0.1008 -0.1287 0.1376 0.0588 0.1415 0.0147 0.0375 -0.1076 -0.0194 -0.0433 -0.1764 -0.0818 -0.1107 -0.0158 0.0139 0.3316 0.328 0.2867 0.043 0.1799 0.2772 1 - - - - - - - - - - - - -
Score_Spatial Planning -0.0566 -0.0626 -0.0272 0.0828 -0.0428 0.0706 0.0262 0.044 0.0529 -0.0107 0.0243 0.0195 -0.0753 -0.0068 0.0447 0.0567 -0.0286 0.0486 0.0741 -0.042 0.0297 0.0217 0.0983 -0.0044 0.2188 0.2737 0.1552 0.0378 0.2457 0.1334 0.311 1 - - - - - - - - - - - -
Score_Rotations -0.1672 -0.2625 0.0788 -0.0534 -0.0098 0.179 -0.0636 0.1041 -0.0707 -0.0283 0.0811 0.1026 0.1223 0.072 -0.0663 0.1243 -0.0571 -0.0063 -0.084 -0.1057 -0.0904 -0.1555 -0.0209 -0.0039 0.3088 -0.0805 -0.003 0.1978 0.3498 0.0708 0.0945 0.1471 1 - - - - - - - - - - -
Score_Spatial Span -0.0954 -0.1844 -0.0803 -0.0097 0.1117 0.2352 -0.0479 0.0293 -0.0271 0.0151 0.019 -0.1245 -0.0731 -0.0457 -0.0353 0.072 -0.0924 -0.0097 -0.0277 -0.1269 -0.0289 -0.0988 0.0735 0.0357 0.3236 0.0932 0.1104 0.3851 0.307 0.1446 0.3177 0.3209 0.3083 1 - - - - - - - - - -
Score_Grammatical Reasoning -0.0223 -0.0579 0.0255 -0.0767 -0.2047 0.0981 -0.0362 0.1683 -0.1104 0.1065 0.1746 -0.0239 -0.1903 0.0172 0.0162 0.0113 -0.027 -0.0662 0.0058 -0.0613 0.0308 0.0163 0.036 0.0475 0.3754 0.101 0.1034 0.1122 0.2923 0.1673 0.0601 0.2462 0.1413 0.2353 1 - - - - - - - - -
Score_Monkey Ladder -0.0727 -0.126 -0.1766 -0.0713 0.161 0.0821 -0.2488 -0.0935 -0.0687 -0.0515 0.005 -0.1242 -0.0882 -0.0475 -0.1207 0.0214 -0.16 -0.2349 -0.0659 -0.2036 -0.1824 -0.1896 -0.1863 -0.069 0.2804 0.0892 0.1535 0.2223 0.1414 0.1156 0.1861 0.3164 0.2068 0.4976 0.2949 1 - - - - - - - -
CBS_overall 0.0148 -0.2079 -0.165 -0.1678 0.0863 -0.1055 0.0709 -0.0702 0.0188 -0.0538 -0.0597 -0.2862 -0.3225 -0.236 0.0787 -0.1489 0.0805 -0.0295 0.194 -0.1971 0.1233 0.1962 0.0522 -0.025 0.3012 0.0302 1 0.1004 0.1438 0.0601 0.2867 0.1552 -0.003 0.1104 0.1034 0.1535 1 - - - - - - -
CBS_STM -0.0727 -0.126 -0.1766 -0.0713 0.161 0.0821 -0.2488 -0.0935 -0.0687 -0.0515 0.005 -0.1242 -0.0882 -0.0475 -0.1207 0.0214 -0.16 -0.2349 -0.0659 -0.2036 -0.1824 -0.1896 -0.1863 -0.069 0.2804 0.0892 0.1535 0.2223 0.1414 0.1156 0.1861 0.3164 0.2068 0.4976 0.2949 1 0.1535 1 - - - - - -
CBS_reason -0.1998 -0.0584 -0.1126 -0.1112 0.1665 0.0405 -0.16 -0.2317 -0.2766 -0.2192 -0.0868 -0.0655 0.0781 -0.0615 -0.0586 0.0615 -0.1528 -0.1672 -0.0501 -0.1615 -0.1088 -0.1121 -0.0775 -0.0817 0.2977 0.0802 0.1004 1 0.2152 0.1427 0.043 0.0378 0.1978 0.3851 0.1122 0.2223 0.1004 0.2223 1 - - - - -
CBS_verbal -0.0223 -0.0579 0.0255 -0.0767 -0.2047 0.0981 -0.0362 0.1683 -0.1104 0.1065 0.1746 -0.0239 -0.1903 0.0172 0.0162 0.0113 -0.027 -0.0662 0.0058 -0.0613 0.0308 0.0163 0.036 0.0475 0.3754 0.101 0.1034 0.1122 0.2923 0.1673 0.0601 0.2462 0.1413 0.2353 1 0.2949 0.1034 0.2949 0.1122 1 - - - -
CBS_ts_memory -0.0727 -0.126 -0.1766 -0.0713 0.161 0.0821 -0.2488 -0.0935 -0.0687 -0.0515 0.005 -0.1242 -0.0882 -0.0475 -0.1207 0.0214 -0.16 -0.2349 -0.0659 -0.2036 -0.1824 -0.1896 -0.1863 -0.069 0.2804 0.0892 0.1535 0.2223 0.1414 0.1156 0.1861 0.3164 0.2068 0.4976 0.2949 1 0.1535 1 0.2223 0.2949 1 - - -
CBS_ts_reason 0.0427 -0.0652 0.0175 0.0935 -0.2068 0.1631 0.0539 0.0558 -0.0308 0.1501 0.0326 -0.0586 -0.0704 -0.1023 0.1192 0.101 -0.0218 0.1254 -0.0044 0.0529 0.0654 -1e-04 0.0946 0.1423 0.2084 0.0045 0.1438 0.2152 1 0.0663 0.1799 0.2457 0.3498 0.307 0.2923 0.1414 0.1438 0.1414 0.2152 0.2923 0.1414 1 - -
CBS_ts_verbalab -0.0223 -0.0579 0.0255 -0.0767 -0.2047 0.0981 -0.0362 0.1683 -0.1104 0.1065 0.1746 -0.0239 -0.1903 0.0172 0.0162 0.0113 -0.027 -0.0662 0.0058 -0.0613 0.0308 0.0163 0.036 0.0475 0.3754 0.101 0.1034 0.1122 0.2923 0.1673 0.0601 0.2462 0.1413 0.2353 1 0.2949 0.1034 0.2949 0.1122 1 0.2949 0.2923 1 -
CBS_ts_con -0.1998 -0.0584 -0.1126 -0.1112 0.1665 0.0405 -0.16 -0.2317 -0.2766 -0.2192 -0.0868 -0.0655 0.0781 -0.0615 -0.0586 0.0615 -0.1528 -0.1672 -0.0501 -0.1615 -0.1088 -0.1121 -0.0775 -0.0817 0.2977 0.0802 0.1004 1 0.2152 0.1427 0.043 0.0378 0.1978 0.3851 0.1122 0.2223 0.1004 0.2223 1 0.1122 0.2223 0.2152 0.1122 1
  

kable(as.data.frame(format(main_corr_pb2$P, scientific = FALSE)), caption = "Pilot Study - Correlation: p values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: p values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 1e-04 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 0.0083 0.3345 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 0.9544 0.9668 0.1418 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.0809 0.7683 0.7566 0.3409 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.8132 0.1864 0.5533 0.5032 0.4901 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.2383 0.3183 0.7311 0.7605 0.1323 0.4766 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.0468 0.8621 0.076 0.9573 0 0.0367 0.5602 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.0219 0.1207 0.8971 0.6331 0.0082 0.6666 0.1987 0.0014 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.0404 0.7682 0.0809 0.2074 0 0.0082 0.9416 0 0.002 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.0525 0.1557 0.4736 0.827 0 0.8407 0.354 0 0.0325 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 0.5279 0.0659 0.3374 0.1909 0.4581 0.31 0.6905 0.6817 0.5918 0.712 0.8947 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.7228 0.0057 0.4962 0.6056 0.0253 0.0968 0.1409 0.368 0.6446 0.2551 0.9789 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.4325 0.1256 0.5583 0.3983 0.0897 0.1189 0.377 0.3475 0.7978 0.0942 0.2869 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 0.5314 0.7805 0.0018 0.0953 0.9557 0.5342 0.8139 0.4034 0.636 0.548 0.2933 0.0012 0.009 0.0139 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1131 0.4707 0.1946 0.9703 0.0901 0.8945 0.7665 0.7399 0.8341 0.326 0.4597 1e-04 0 0.0025 0.9189 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 0.0071 0.0594 2e-04 0.0262 0.5071 0.2549 0.7514 0.1297 0.6228 0.4919 0.9041 3e-04 0 0.0038 8e-04 1e-04 NA - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 0.0554 0.325 0 0.0428 0.029 0.0744 0.5434 0.0056 0.1833 0.0026 0.2464 0.021 0.0329 0.0698 0.0131 9e-04 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 0.3305 0.0073 0.036 0.2482 0.1157 0.2035 0.6659 0.0461 0.4022 0.0649 0.5 0 0 0 0.0078 7e-04 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 0.7301 0.6573 0.0051 0.0242 0.1315 0.9325 0.5311 0.9503 0.9825 0.3043 0.863 0.1178 0.0647 0.4976 0.0913 0.0247 0 0 0.0069 NA - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 0.1223 0.0207 1e-04 0.0992 0.0401 0.1599 0.7886 0.0231 0.5084 0.0235 0.3019 0 0 1e-04 1e-04 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 0.1566 0.0158 0.0011 0.3463 0.0757 0.3949 0.8163 0.152 0.7637 0.2168 0.9612 1e-04 0 2e-04 1e-04 1e-04 0 0 0 8e-04 0 NA - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 0.4078 0.3018 0.0077 0.1973 0.0214 0.2932 0.7598 0.0114 0.0627 0.012 0.0589 0.0052 0.0025 0.0182 0.0167 0.0024 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 0.2118 0.0158 0 0.0109 0.0378 0.0298 0.4804 6e-04 0.8956 6e-04 0.0272 0.0023 0.0097 8e-04 0.0017 0.0147 0 0 0 3e-04 0 0 0 NA - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 0.4784 0.2423 0.0809 0.0022 0.4029 0.3992 0.3303 0.6737 0.562 0.1894 0.9845 0.5492 0.7976 0.2075 0.2782 0.7765 0.1078 0.0844 0.3752 0.093 0.2286 0.3132 0.3504 0.348 NA - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.3287 0.5868 0.8612 0.9772 0.0504 0.7283 0.5199 0.575 0.0193 0.6246 0.0047 0.2892 0.7228 0.8208 0.9573 0.1846 0.4254 0.8375 0.944 0.0986 0.6273 0.7622 0.3843 0.7702 0.0391 NA - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.8913 0.0547 0.1245 0.1181 0.4242 0.3277 0.5113 0.5159 0.8619 0.6188 0.5808 0.0069 0.0022 0.0268 0.4663 0.1662 0.4558 0.7848 0.0701 0.0657 0.2525 0.067 0.6293 0.8174 0.0044 0.7802 NA - - - - - - - - - - - - - - - - -
Score_Feature Match 0.0619 0.5934 0.2961 0.3024 0.1211 0.7077 0.1364 0.0298 0.0091 0.0402 0.4212 0.5442 0.4696 0.5689 0.5878 0.5695 0.1552 0.1194 0.6432 0.1328 0.3127 0.2986 0.473 0.4494 0.0049 0.4576 0.3521 NA - - - - - - - - - - - - - - - -
Score_Polygons 0.6925 0.5506 0.8712 0.3861 0.0532 0.1289 0.6178 0.6054 0.776 0.1628 0.7628 0.5873 0.5146 0.343 0.2688 0.3489 0.8405 0.2445 0.9672 0.6244 0.5452 0.9989 0.3809 0.1859 0.0513 0.967 0.1813 0.044 NA - - - - - - - - - - - - - - -
Score_Paired Associates 0.6557 0.4939 0.9061 0.5531 0.0435 0.7074 0.5761 0.2698 0.0492 0.6852 0.9811 0.0203 0.0545 0.0695 0.9316 0.242 0.108 0.1469 0.164 0.2773 0.1354 0.2786 0.2113 0.0531 0.1803 0.6143 0.5782 0.1846 0.5395 NA - - - - - - - - - - - - - -
Score_Token Search 0.8443 0.2229 0.432 0.9287 0.0712 0.4124 0.4993 0.9739 0.9052 0.3501 0.2321 0.201 0.5865 0.1886 0.8919 0.7287 0.3185 0.8575 0.689 0.1003 0.4484 0.3046 0.8836 0.8978 0.0016 0.0018 0.0068 0.691 0.0936 0.0089 NA - - - - - - - - - - - - -
Score_Spatial Planning 0.6005 0.5672 0.8016 0.4428 0.6919 0.5132 0.8086 0.6841 0.6243 0.9209 0.8219 0.8568 0.4854 0.9502 0.6794 0.6 0.7911 0.6527 0.4927 0.6974 0.7836 0.8408 0.362 0.9676 0.0406 0.0099 0.1487 0.7269 0.0211 0.2154 0.0032 NA - - - - - - - - - - - -
Score_Rotations 0.1195 0.0146 0.4658 0.6214 0.9275 0.0951 0.556 0.3344 0.513 0.7932 0.4528 0.3415 0.2564 0.5052 0.5394 0.2486 0.5974 0.9537 0.4367 0.3272 0.4022 0.148 0.8465 0.971 0.0034 0.4558 0.9779 0.0647 8e-04 0.512 0.3811 0.1715 NA - - - - - - - - - - -
Score_Spatial Span 0.3766 0.0893 0.4572 0.9284 0.3001 0.0274 0.6574 0.7862 0.8024 0.889 0.8604 0.2476 0.4987 0.6724 0.7443 0.5051 0.3921 0.9286 0.7975 0.2388 0.7891 0.3596 0.4961 0.7416 0.0021 0.3878 0.306 2e-04 0.0036 0.179 0.0026 0.0023 0.0035 NA - - - - - - - - - -
Score_Grammatical Reasoning 0.8367 0.5965 0.8135 0.4777 0.0557 0.3634 0.7378 0.117 0.3058 0.3234 0.1038 0.8251 0.0757 0.8733 0.8807 0.9168 0.8029 0.5402 0.9575 0.5702 0.7755 0.8805 0.7391 0.6602 3e-04 0.3491 0.3376 0.298 0.0057 0.1193 0.578 0.0207 0.1891 0.0273 NA - - - - - - - - -
Score_Monkey Ladder 0.5006 0.2478 0.0997 0.5089 0.134 0.4469 0.0194 0.3861 0.5251 0.6339 0.9628 0.2491 0.4139 0.6601 0.2627 0.8431 0.1365 0.0276 0.5421 0.0571 0.0889 0.0769 0.0822 0.5229 0.0081 0.4086 0.1533 0.0374 0.1888 0.2833 0.0826 0.0027 0.0532 0 0.0053 NA - - - - - - - -
CBS_overall 0.8913 0.0547 0.1245 0.1181 0.4242 0.3277 0.5113 0.5159 0.8619 0.6188 0.5808 0.0069 0.0022 0.0268 0.4663 0.1662 0.4558 0.7848 0.0701 0.0657 0.2525 0.067 0.6293 0.8174 0.0044 0.7802 0 0.3521 0.1813 0.5782 0.0068 0.1487 0.9779 0.306 0.3376 0.1533 NA - - - - - - -
CBS_STM 0.5006 0.2478 0.0997 0.5089 0.134 0.4469 0.0194 0.3861 0.5251 0.6339 0.9628 0.2491 0.4139 0.6601 0.2627 0.8431 0.1365 0.0276 0.5421 0.0571 0.0889 0.0769 0.0822 0.5229 0.0081 0.4086 0.1533 0.0374 0.1888 0.2833 0.0826 0.0027 0.0532 0 0.0053 0 0.1533 NA - - - - - -
CBS_reason 0.0619 0.5934 0.2961 0.3024 0.1211 0.7077 0.1364 0.0298 0.0091 0.0402 0.4212 0.5442 0.4696 0.5689 0.5878 0.5695 0.1552 0.1194 0.6432 0.1328 0.3127 0.2986 0.473 0.4494 0.0049 0.4576 0.3521 0 0.044 0.1846 0.691 0.7269 0.0647 2e-04 0.298 0.0374 0.3521 0.0374 NA - - - - -
CBS_verbal 0.8367 0.5965 0.8135 0.4777 0.0557 0.3634 0.7378 0.117 0.3058 0.3234 0.1038 0.8251 0.0757 0.8733 0.8807 0.9168 0.8029 0.5402 0.9575 0.5702 0.7755 0.8805 0.7391 0.6602 3e-04 0.3491 0.3376 0.298 0.0057 0.1193 0.578 0.0207 0.1891 0.0273 0 0.0053 0.3376 0.0053 0.298 NA - - - -
CBS_ts_memory 0.5006 0.2478 0.0997 0.5089 0.134 0.4469 0.0194 0.3861 0.5251 0.6339 0.9628 0.2491 0.4139 0.6601 0.2627 0.8431 0.1365 0.0276 0.5421 0.0571 0.0889 0.0769 0.0822 0.5229 0.0081 0.4086 0.1533 0.0374 0.1888 0.2833 0.0826 0.0027 0.0532 0 0.0053 0 0.1533 0 0.0374 0.0053 NA - - -
CBS_ts_reason 0.6925 0.5506 0.8712 0.3861 0.0532 0.1289 0.6178 0.6054 0.776 0.1628 0.7628 0.5873 0.5146 0.343 0.2688 0.3489 0.8405 0.2445 0.9672 0.6244 0.5452 0.9989 0.3809 0.1859 0.0513 0.967 0.1813 0.044 0 0.5395 0.0936 0.0211 8e-04 0.0036 0.0057 0.1888 0.1813 0.1888 0.044 0.0057 0.1888 NA - -
CBS_ts_verbalab 0.8367 0.5965 0.8135 0.4777 0.0557 0.3634 0.7378 0.117 0.3058 0.3234 0.1038 0.8251 0.0757 0.8733 0.8807 0.9168 0.8029 0.5402 0.9575 0.5702 0.7755 0.8805 0.7391 0.6602 3e-04 0.3491 0.3376 0.298 0.0057 0.1193 0.578 0.0207 0.1891 0.0273 0 0.0053 0.3376 0.0053 0.298 0 0.0053 0.0057 NA -
CBS_ts_con 0.0619 0.5934 0.2961 0.3024 0.1211 0.7077 0.1364 0.0298 0.0091 0.0402 0.4212 0.5442 0.4696 0.5689 0.5878 0.5695 0.1552 0.1194 0.6432 0.1328 0.3127 0.2986 0.473 0.4494 0.0049 0.4576 0.3521 0 0.044 0.1846 0.691 0.7269 0.0647 2e-04 0.298 0.0374 0.3521 0.0374 0 0.298 0.0374 0.044 0.298 NA

kable(as.data.frame(format(main_corr_pb2$n, scientific = FALSE)), caption = "Pilot Study - Correlation: n values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: n values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 86 86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 88 86 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 88 86 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 88 86 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 88 86 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 88 86 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 88 86 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 88 86 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 88 86 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 88 86 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 88 86 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 88 86 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 88 86 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - - -
Score_Digit Span 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - - -
Score_Feature Match 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - - -
Score_Polygons 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - - -
Score_Paired Associates 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - - -
Score_Token Search 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - - -
Score_Spatial Planning 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - - -
Score_Rotations 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - - -
Score_Spatial Span 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - - -
Score_Grammatical Reasoning 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - - -
Score_Monkey Ladder 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - - -
CBS_overall 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - - -
CBS_STM 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - - -
CBS_reason 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - - -
CBS_verbal 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - - -
CBS_ts_memory 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - - -
CBS_ts_reason 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 - -
CBS_ts_verbalab 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 -
CBS_ts_con 88 86 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88

corrplot(main_corr_pb$r, method = "circle", col = (colorRampPalette(c("purple", "grey", "blue"))(50)),  
         type = "upper",  
         # addCoef.col = "black", # Add coefficient of correlation
         tl.col = "darkblue", tl.srt = 90, tl.cex = .8, #Text label color and rotation
         # Combine with significance level
         p.mat = main_corr_pb$P, sig.level = 0.05, 
         addgrid.col = "white",
         insig = "blank",# insig = "pch", pch = 10, pch.col = "red", pch.cex = .1, # add this instead of insig above to denot insig p values with red dot
         # hide correlation coefficient on the principal diagonal
         diag = FALSE, 
         win.asp = 1
         )

For Outside…

main_corr_out <- 
  main_all_data_final %>% 
  select(condition, age, age_first_phone, dist_daily, dist_study, pow_not_using:pow_sleep, com_gen:com_room_task, condition, NMPQ_sum, MPIQ_sum, MPIQ_SI_sum, MPIQ_VFO_sum, SAD_sum, SAD_dep_sum, SAD_ea_sum, SAD_dist_sum, `Score_Double Trouble`:`Score_Monkey Ladder`, CBS_overall, CBS_STM, CBS_reason, CBS_verbal, CBS_ts_memory, CBS_ts_reason, CBS_ts_verbalab, CBS_ts_con) %>% 
  filter(condition == "outside") %>% 
  select(-condition) %>% 
  as.matrix() %>%
  rcorr(type = "pearson")

# create new main_corr_out to shown only lower triangle... 
main_corr_out2 <- main_corr_out
# round to 4 decimals... 
main_corr_out2$r <- round(main_corr_out2$r, 4)
main_corr_out2$P <- round(main_corr_out2$P, 4)
main_corr_out2$n <- round(main_corr_out2$n, 4)
# remove upper triangle form r, p, and n
main_corr_out2$r[upper.tri(main_corr_out2$r)] <- "-"
main_corr_out2$P[upper.tri(main_corr_out2$P)] <- "-"
main_corr_out2$n[upper.tri(main_corr_out2$n)] <- "-"

# show corr table with flattenCorr

kable(flattenCorrMatrix(main_corr_out$r, main_corr_out$P), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
row column cor p
age age_first_phone 0.1786759 0.1104976
age dist_daily -0.0797120 0.4793277
age_first_phone dist_daily -0.1361431 0.2255525
age dist_study -0.0153323 0.8919369
age_first_phone dist_study 0.0981807 0.3832073
dist_daily dist_study 0.1582442 0.1582537
age pow_not_using 0.0216751 0.8476899
age_first_phone pow_not_using 0.1148997 0.3070594
dist_daily pow_not_using 0.0440302 0.6963131
dist_study pow_not_using 0.0519331 0.6451976
age pow_notifications_on -0.1937048 0.0831492
age_first_phone pow_notifications_on 0.1093304 0.3312512
dist_daily pow_notifications_on 0.2246700 0.0437519
dist_study pow_notifications_on 0.1395912 0.2139085
pow_not_using pow_notifications_on -0.0330246 0.7697653
age pow_vibrate 0.0669588 0.5525591
age_first_phone pow_vibrate -0.0246351 0.8271933
dist_daily pow_vibrate -0.0172706 0.8783743
dist_study pow_vibrate -0.0502715 0.6558190
pow_not_using pow_vibrate 0.0164177 0.8843378
pow_notifications_on pow_vibrate 0.1893600 0.0904351
age pow_study -0.2227120 0.0456701
age_first_phone pow_study -0.1663955 0.1376354
dist_daily pow_study 0.3975997 0.0002374
dist_study pow_study 0.1539357 0.1700382
pow_not_using pow_study -0.4481382 0.0000273
pow_notifications_on pow_study 0.2100160 0.0598616
pow_vibrate pow_study -0.1107080 0.3251576
age pow_exam -0.2416705 0.0297384
age_first_phone pow_exam -0.1753623 0.1173742
dist_daily pow_exam 0.1788199 0.1102059
dist_study pow_exam 0.0731477 0.5163593
pow_not_using pow_exam -0.2349775 0.0347216
pow_notifications_on pow_exam 0.0312079 0.7821083
pow_vibrate pow_exam -0.0446612 0.6921779
pow_study pow_exam 0.2760670 0.0126075
age pow_lec 0.0435422 0.6995172
age_first_phone pow_lec -0.1317782 0.2409193
dist_daily pow_lec 0.0626331 0.5785648
dist_study pow_lec -0.0677795 0.5476891
pow_not_using pow_lec -0.2099272 0.0599723
pow_notifications_on pow_lec 0.0801064 0.4771492
pow_vibrate pow_lec 0.2064829 0.0643933
pow_study pow_lec 0.2278597 0.0407701
pow_exam pow_lec 0.2536803 0.0223037
age pow_sleep -0.0710397 0.5285530
age_first_phone pow_sleep -0.3248189 0.0030904
dist_daily pow_sleep -0.0191784 0.8650588
dist_study pow_sleep -0.1029536 0.3603942
pow_not_using pow_sleep -0.3101313 0.0048380
pow_notifications_on pow_sleep -0.0965656 0.3911193
pow_vibrate pow_sleep 0.0697905 0.5358456
pow_study pow_sleep 0.4284987 0.0000658
pow_exam pow_sleep 0.3255862 0.0030170
pow_lec pow_sleep 0.5404933 0.0000002
age com_gen -0.0476632 0.6726296
age_first_phone com_gen -0.0225563 0.8415767
dist_daily com_gen 0.0841630 0.4550509
dist_study com_gen -0.1505070 0.1798674
pow_not_using com_gen 0.0336795 0.7653298
pow_notifications_on com_gen 0.0053487 0.9622020
pow_vibrate com_gen 0.0671469 0.5514410
pow_study com_gen 0.1086666 0.3342132
pow_exam com_gen 0.0238834 0.8323883
pow_lec com_gen 0.2287147 0.0400002
pow_sleep com_gen 0.2443623 0.0279118
age com_unattended 0.2183151 0.0502318
age_first_phone com_unattended 0.0155584 0.8903531
dist_daily com_unattended -0.0027521 0.9805462
dist_study com_unattended -0.0621189 0.5816934
pow_not_using com_unattended 0.1905817 0.0883374
pow_notifications_on com_unattended -0.0009110 0.9935597
pow_vibrate com_unattended 0.0846716 0.4523209
pow_study com_unattended -0.1644087 0.1424630
pow_exam com_unattended 0.1041144 0.3549748
pow_lec com_unattended 0.0236655 0.8338950
pow_sleep com_unattended -0.0730168 0.5171124
com_gen com_unattended 0.3471737 0.0014964
age com_leave_with_other 0.1234590 0.2721746
age_first_phone com_leave_with_other -0.0581973 0.6058037
dist_daily com_leave_with_other 0.1375062 0.2208973
dist_study com_leave_with_other -0.0612956 0.5867186
pow_not_using com_leave_with_other 0.1386610 0.2170068
pow_notifications_on com_leave_with_other 0.0470214 0.6767912
pow_vibrate com_leave_with_other 0.0996374 0.3761544
pow_study com_leave_with_other 0.0026510 0.9812611
pow_exam com_leave_with_other 0.0383301 0.7340566
pow_lec com_leave_with_other 0.2130809 0.0561438
pow_sleep com_leave_with_other 0.0392456 0.7279497
com_gen com_leave_with_other 0.5157439 0.0000008
com_unattended com_leave_with_other 0.7083566 0.0000000
age com_locked 0.0113241 0.9200777
age_first_phone com_locked -0.0898004 0.4253032
dist_daily com_locked 0.2095727 0.0604155
dist_study com_locked -0.0444424 0.6936111
pow_not_using com_locked -0.0807310 0.4737094
pow_notifications_on com_locked 0.2416875 0.0297266
pow_vibrate com_locked -0.0835937 0.4581175
pow_study com_locked 0.1684738 0.1327188
pow_exam com_locked 0.0367616 0.7445590
pow_lec com_locked 0.0197107 0.8613497
pow_sleep com_locked 0.0362443 0.7480326
com_gen com_locked -0.3631040 0.0008634
com_unattended com_locked -0.2965328 0.0071868
com_leave_with_other com_locked -0.3420284 0.0017766
age com_room_task 0.1593488 0.1553324
age_first_phone com_room_task 0.1263456 0.2610351
dist_daily com_room_task -0.0201308 0.8584255
dist_study com_room_task -0.2161063 0.0526611
pow_not_using com_room_task 0.0502492 0.6559620
pow_notifications_on com_room_task -0.0793449 0.4813605
pow_vibrate com_room_task 0.0321747 0.7755331
pow_study com_room_task -0.0569070 0.6138318
pow_exam com_room_task 0.0463558 0.6811176
pow_lec com_room_task 0.2458025 0.0269741
pow_sleep com_room_task 0.1797200 0.1083968
com_gen com_room_task 0.4068316 0.0001639
com_unattended com_room_task 0.3932397 0.0002817
com_leave_with_other com_room_task 0.3362447 0.0021474
com_locked com_room_task -0.2233540 0.0450337
age NMPQ_sum -0.2291061 0.0396518
age_first_phone NMPQ_sum -0.0283928 0.8013396
dist_daily NMPQ_sum 0.3263125 0.0029490
dist_study NMPQ_sum 0.1721146 0.1244291
pow_not_using NMPQ_sum -0.0836444 0.4578442
pow_notifications_on NMPQ_sum 0.2652198 0.0167158
pow_vibrate NMPQ_sum -0.1497180 0.1821871
pow_study NMPQ_sum 0.2663016 0.0162599
pow_exam NMPQ_sum 0.0793717 0.4812121
pow_lec NMPQ_sum -0.0465931 0.6795742
pow_sleep NMPQ_sum 0.0316582 0.7790436
com_gen NMPQ_sum -0.0736819 0.5132928
com_unattended NMPQ_sum 0.0293236 0.7949670
com_leave_with_other NMPQ_sum 0.0647369 0.5658468
com_locked NMPQ_sum 0.0971176 0.3884045
com_room_task NMPQ_sum -0.1352382 0.2286802
age MPIQ_sum -0.2393326 0.0314058
age_first_phone MPIQ_sum -0.1082867 0.3359161
dist_daily MPIQ_sum 0.3836247 0.0004074
dist_study MPIQ_sum 0.2729959 0.0136705
pow_not_using MPIQ_sum 0.0076083 0.9462544
pow_notifications_on MPIQ_sum 0.1832422 0.1015378
pow_vibrate MPIQ_sum -0.2104369 0.0593395
pow_study MPIQ_sum 0.2769044 0.0123304
pow_exam MPIQ_sum 0.1011112 0.3690997
pow_lec MPIQ_sum 0.1091294 0.3321465
pow_sleep MPIQ_sum 0.0651066 0.5636252
com_gen MPIQ_sum -0.1100321 0.3281387
com_unattended MPIQ_sum 0.0019924 0.9859157
com_leave_with_other MPIQ_sum 0.0884915 0.4321090
com_locked MPIQ_sum 0.1743776 0.1194799
com_room_task MPIQ_sum -0.1139140 0.3112552
NMPQ_sum MPIQ_sum 0.7443678 0.0000000
age MPIQ_SI_sum -0.1278216 0.2554605
age_first_phone MPIQ_SI_sum -0.1048354 0.3516346
dist_daily MPIQ_SI_sum 0.1197498 0.2869511
dist_study MPIQ_SI_sum 0.1555906 0.1654376
pow_not_using MPIQ_SI_sum -0.0887320 0.4308538
pow_notifications_on MPIQ_SI_sum 0.4156953 0.0001137
pow_vibrate MPIQ_SI_sum -0.0520585 0.6443989
pow_study MPIQ_SI_sum 0.2212088 0.0471895
pow_exam MPIQ_SI_sum -0.0432251 0.7016024
pow_lec MPIQ_SI_sum 0.1149503 0.3068449
pow_sleep MPIQ_SI_sum 0.1573199 0.1607292
com_gen MPIQ_SI_sum -0.1343915 0.2316343
com_unattended MPIQ_SI_sum -0.1240455 0.2698861
com_leave_with_other MPIQ_SI_sum -0.0421300 0.7088194
com_locked MPIQ_SI_sum 0.1500663 0.1811605
com_room_task MPIQ_SI_sum -0.1937149 0.0831328
NMPQ_sum MPIQ_SI_sum 0.6672958 0.0000000
MPIQ_sum MPIQ_SI_sum 0.5977909 0.0000000
age MPIQ_VFO_sum -0.0819786 0.4668793
age_first_phone MPIQ_VFO_sum 0.1607771 0.1516151
dist_daily MPIQ_VFO_sum 0.1306541 0.2449910
dist_study MPIQ_VFO_sum 0.1294585 0.2493735
pow_not_using MPIQ_VFO_sum 0.0303406 0.7880195
pow_notifications_on MPIQ_VFO_sum 0.3340823 0.0023030
pow_vibrate MPIQ_VFO_sum -0.0051622 0.9635194
pow_study MPIQ_VFO_sum 0.0725690 0.5196927
pow_exam MPIQ_VFO_sum -0.0374104 0.7402092
pow_lec MPIQ_VFO_sum 0.0789883 0.4833395
pow_sleep MPIQ_VFO_sum -0.1393515 0.2147039
com_gen MPIQ_VFO_sum -0.0883175 0.4330185
com_unattended MPIQ_VFO_sum -0.0581409 0.6061540
com_leave_with_other MPIQ_VFO_sum -0.0380721 0.7357810
com_locked MPIQ_VFO_sum 0.0261862 0.8164970
com_room_task MPIQ_VFO_sum -0.1125857 0.3169678
NMPQ_sum MPIQ_VFO_sum 0.5588284 0.0000001
MPIQ_sum MPIQ_VFO_sum 0.4934698 0.0000029
MPIQ_SI_sum MPIQ_VFO_sum 0.4570757 0.0000179
age SAD_sum -0.2950218 0.0075016
age_first_phone SAD_sum -0.0469473 0.6772724
dist_daily SAD_sum 0.2986282 0.0067696
dist_study SAD_sum 0.1100720 0.3279621
pow_not_using SAD_sum -0.1470348 0.1902374
pow_notifications_on SAD_sum 0.3789667 0.0004852
pow_vibrate SAD_sum -0.0835820 0.4581809
pow_study SAD_sum 0.3379395 0.0020321
pow_exam SAD_sum -0.0483080 0.6684586
pow_lec SAD_sum 0.0247167 0.8266297
pow_sleep SAD_sum -0.0563789 0.6171307
com_gen SAD_sum -0.0516427 0.6470486
com_unattended SAD_sum -0.1533970 0.1715557
com_leave_with_other SAD_sum -0.0332958 0.7679277
com_locked SAD_sum 0.0942429 0.4026670
com_room_task SAD_sum -0.2198097 0.0486409
NMPQ_sum SAD_sum 0.7789728 0.0000000
MPIQ_sum SAD_sum 0.7165129 0.0000000
MPIQ_SI_sum SAD_sum 0.6645531 0.0000000
MPIQ_VFO_sum SAD_sum 0.6749319 0.0000000
age SAD_dep_sum -0.2689545 0.0151872
age_first_phone SAD_dep_sum -0.1306770 0.2449078
dist_daily SAD_dep_sum 0.2336746 0.0357688
dist_study SAD_dep_sum 0.0678234 0.5474295
pow_not_using SAD_dep_sum -0.1996946 0.0738783
pow_notifications_on SAD_dep_sum 0.3629352 0.0008686
pow_vibrate SAD_dep_sum -0.0364062 0.7469452
pow_study SAD_dep_sum 0.3700722 0.0006727
pow_exam SAD_dep_sum 0.0175413 0.8764826
pow_lec SAD_dep_sum 0.1082647 0.3360150
pow_sleep SAD_dep_sum 0.0665388 0.5550595
com_gen SAD_dep_sum -0.0027879 0.9802930
com_unattended SAD_dep_sum -0.0998156 0.3752973
com_leave_with_other SAD_dep_sum 0.0537008 0.6339756
com_locked SAD_dep_sum 0.0753303 0.5038873
com_room_task SAD_dep_sum -0.1851736 0.0979233
NMPQ_sum SAD_dep_sum 0.7502727 0.0000000
MPIQ_sum SAD_dep_sum 0.6605468 0.0000000
MPIQ_SI_sum SAD_dep_sum 0.6744000 0.0000000
MPIQ_VFO_sum SAD_dep_sum 0.5943393 0.0000000
SAD_sum SAD_dep_sum 0.9185078 0.0000000
age SAD_ea_sum -0.2376603 0.0326460
age_first_phone SAD_ea_sum 0.0396206 0.7254527
dist_daily SAD_ea_sum 0.2424107 0.0292264
dist_study SAD_ea_sum 0.0930576 0.4086361
pow_not_using SAD_ea_sum -0.0038159 0.9730292
pow_notifications_on SAD_ea_sum 0.2608453 0.0186731
pow_vibrate SAD_ea_sum -0.0940430 0.4036701
pow_study SAD_ea_sum 0.2515848 0.0234732
pow_exam SAD_ea_sum -0.1293283 0.2498542
pow_lec SAD_ea_sum -0.1780140 0.1118457
pow_sleep SAD_ea_sum -0.0952198 0.3977858
com_gen SAD_ea_sum -0.1145555 0.3085204
com_unattended SAD_ea_sum -0.2010325 0.0719251
com_leave_with_other SAD_ea_sum -0.1353343 0.2283468
com_locked SAD_ea_sum 0.0504711 0.6545395
com_room_task SAD_ea_sum -0.2521553 0.0231497
NMPQ_sum SAD_ea_sum 0.6009998 0.0000000
MPIQ_sum SAD_ea_sum 0.5116389 0.0000011
MPIQ_SI_sum SAD_ea_sum 0.4910070 0.0000033
MPIQ_VFO_sum SAD_ea_sum 0.5540320 0.0000001
SAD_sum SAD_ea_sum 0.8073862 0.0000000
SAD_dep_sum SAD_ea_sum 0.6141878 0.0000000
age SAD_dist_sum -0.2130606 0.0561678
age_first_phone SAD_dist_sum 0.0294831 0.7938760
dist_daily SAD_dist_sum 0.3128258 0.0044634
dist_study SAD_dist_sum 0.0884735 0.4322031
pow_not_using SAD_dist_sum -0.1079691 0.3373436
pow_notifications_on SAD_dist_sum 0.2813609 0.0109429
pow_vibrate SAD_dist_sum -0.0829514 0.4615911
pow_study SAD_dist_sum 0.2131310 0.0560847
pow_exam SAD_dist_sum -0.0430657 0.7026509
pow_lec SAD_dist_sum 0.1003212 0.3728709
pow_sleep SAD_dist_sum -0.1679790 0.1338772
com_gen SAD_dist_sum -0.0416426 0.7120392
com_unattended SAD_dist_sum -0.1195552 0.2877406
com_leave_with_other SAD_dist_sum -0.0542604 0.6304400
com_locked SAD_dist_sum 0.1177081 0.2953068
com_room_task SAD_dist_sum -0.1101620 0.3275641
NMPQ_sum SAD_dist_sum 0.5407411 0.0000002
MPIQ_sum SAD_dist_sum 0.5827728 0.0000000
MPIQ_SI_sum SAD_dist_sum 0.4204807 0.0000929
MPIQ_VFO_sum SAD_dist_sum 0.4945062 0.0000027
SAD_sum SAD_dist_sum 0.7083955 0.0000000
SAD_dep_sum SAD_dist_sum 0.5227888 0.0000006
SAD_ea_sum SAD_dist_sum 0.3998419 0.0002172
age Score_Double Trouble -0.2882850 0.0090569
age_first_phone Score_Double Trouble -0.0721108 0.5223395
dist_daily Score_Double Trouble -0.0071375 0.9495757
dist_study Score_Double Trouble -0.0020145 0.9857598
pow_not_using Score_Double Trouble -0.4063781 0.0001670
pow_notifications_on Score_Double Trouble 0.1303489 0.2461046
pow_vibrate Score_Double Trouble -0.1930518 0.0842135
pow_study Score_Double Trouble 0.3376357 0.0020523
pow_exam Score_Double Trouble 0.1433459 0.2017202
pow_lec Score_Double Trouble 0.0839010 0.4564609
pow_sleep Score_Double Trouble 0.1617015 0.1492449
com_gen Score_Double Trouble -0.1546453 0.1680540
com_unattended Score_Double Trouble -0.3593026 0.0009870
com_leave_with_other Score_Double Trouble -0.1825497 0.1028589
com_locked Score_Double Trouble 0.2197699 0.0486828
com_room_task Score_Double Trouble -0.2910424 0.0083891
NMPQ_sum Score_Double Trouble 0.0243527 0.8291439
MPIQ_sum Score_Double Trouble 0.0362356 0.7480912
MPIQ_SI_sum Score_Double Trouble 0.0950918 0.3984233
MPIQ_VFO_sum Score_Double Trouble 0.1535422 0.1711458
SAD_sum Score_Double Trouble 0.1468637 0.1907593
SAD_dep_sum Score_Double Trouble 0.1266484 0.2598851
SAD_ea_sum Score_Double Trouble 0.1390110 0.2158375
SAD_dist_sum Score_Double Trouble 0.1230485 0.2737845
age Score_Odd One Out 0.2472604 0.0260522
age_first_phone Score_Odd One Out 0.0196355 0.8618739
dist_daily Score_Odd One Out 0.1453697 0.1953606
dist_study Score_Odd One Out 0.0045328 0.9679647
pow_not_using Score_Odd One Out -0.0414489 0.7133205
pow_notifications_on Score_Odd One Out -0.0584435 0.6042774
pow_vibrate Score_Odd One Out 0.0177130 0.8752833
pow_study Score_Odd One Out 0.0841429 0.4551590
pow_exam Score_Odd One Out -0.2101596 0.0596831
pow_lec Score_Odd One Out 0.0208949 0.8531106
pow_sleep Score_Odd One Out -0.0970368 0.3888014
com_gen Score_Odd One Out 0.0370705 0.7424871
com_unattended Score_Odd One Out 0.0535477 0.6349442
com_leave_with_other Score_Odd One Out 0.1543241 0.1689500
com_locked Score_Odd One Out 0.0472680 0.6751911
com_room_task Score_Odd One Out 0.0197054 0.8613871
NMPQ_sum Score_Odd One Out 0.0763067 0.4983586
MPIQ_sum Score_Odd One Out 0.1431092 0.2024737
MPIQ_SI_sum Score_Odd One Out 0.0767276 0.4959856
MPIQ_VFO_sum Score_Odd One Out 0.0214007 0.8495957
SAD_sum Score_Odd One Out 0.1545961 0.1681910
SAD_dep_sum Score_Odd One Out 0.1588101 0.1567520
SAD_ea_sum Score_Odd One Out 0.0016028 0.9886694
SAD_dist_sum Score_Odd One Out 0.2337892 0.0356757
Score_Double Trouble Score_Odd One Out -0.0267828 0.8123918
age Score_Digit Span 0.0665025 0.5552758
age_first_phone Score_Digit Span -0.0566965 0.6151456
dist_daily Score_Digit Span 0.0526626 0.6405564
dist_study Score_Digit Span 0.0768607 0.4952361
pow_not_using Score_Digit Span -0.1085146 0.3348940
pow_notifications_on Score_Digit Span 0.0106888 0.9245475
pow_vibrate Score_Digit Span -0.1397414 0.2134113
pow_study Score_Digit Span 0.0026210 0.9814732
pow_exam Score_Digit Span -0.1797365 0.1083638
pow_lec Score_Digit Span -0.3683022 0.0007171
pow_sleep Score_Digit Span -0.1067036 0.3430702
com_gen Score_Digit Span -0.1498609 0.1817653
com_unattended Score_Digit Span -0.1375544 0.2207340
com_leave_with_other Score_Digit Span -0.1138480 0.3115374
com_locked Score_Digit Span 0.0818468 0.4675982
com_room_task Score_Digit Span -0.0920320 0.4138425
NMPQ_sum Score_Digit Span 0.0463561 0.6811154
MPIQ_sum Score_Digit Span -0.0102436 0.9276816
MPIQ_SI_sum Score_Digit Span 0.1517566 0.1762383
MPIQ_VFO_sum Score_Digit Span 0.0533491 0.6362019
SAD_sum Score_Digit Span 0.1210511 0.2817076
SAD_dep_sum Score_Digit Span 0.0526947 0.6403528
SAD_ea_sum Score_Digit Span 0.2073936 0.0631995
SAD_dist_sum Score_Digit Span 0.1201673 0.2852617
Score_Double Trouble Score_Digit Span 0.1239654 0.2701977
Score_Odd One Out Score_Digit Span 0.1334163 0.2350696
age Score_Feature Match -0.1153256 0.3052575
age_first_phone Score_Feature Match 0.0151772 0.8930236
dist_daily Score_Feature Match -0.1019195 0.3652646
dist_study Score_Feature Match 0.1698680 0.1294962
pow_not_using Score_Feature Match 0.0301427 0.7893703
pow_notifications_on Score_Feature Match 0.0235473 0.8347132
pow_vibrate Score_Feature Match -0.2658214 0.0164609
pow_study Score_Feature Match -0.1246771 0.2674359
pow_exam Score_Feature Match -0.0814734 0.4696386
pow_lec Score_Feature Match -0.3141301 0.0042915
pow_sleep Score_Feature Match -0.1311236 0.2432849
com_gen Score_Feature Match -0.1129412 0.3154324
com_unattended Score_Feature Match -0.1004862 0.3720816
com_leave_with_other Score_Feature Match -0.2177103 0.0508877
com_locked Score_Feature Match 0.0608198 0.5896312
com_room_task Score_Feature Match -0.2435066 0.0284819
NMPQ_sum Score_Feature Match 0.0833685 0.4593340
MPIQ_sum Score_Feature Match 0.0908148 0.4200712
MPIQ_SI_sum Score_Feature Match 0.0901073 0.4237167
MPIQ_VFO_sum Score_Feature Match 0.2089702 0.0611752
SAD_sum Score_Feature Match 0.1315753 0.2416506
SAD_dep_sum Score_Feature Match 0.0179146 0.8738749
SAD_ea_sum Score_Feature Match 0.2452785 0.0273122
SAD_dist_sum Score_Feature Match 0.1082836 0.3359300
Score_Double Trouble Score_Feature Match 0.2973355 0.0070244
Score_Odd One Out Score_Feature Match -0.1427870 0.2035025
Score_Digit Span Score_Feature Match 0.3241417 0.0031564
age Score_Polygons -0.1218981 0.2783292
age_first_phone Score_Polygons 0.0407111 0.7182083
dist_daily Score_Polygons -0.0675517 0.5490388
dist_study Score_Polygons -0.0159608 0.8875352
pow_not_using Score_Polygons 0.0400309 0.7227238
pow_notifications_on Score_Polygons 0.0695406 0.5373104
pow_vibrate Score_Polygons -0.0401990 0.7216072
pow_study Score_Polygons 0.0062975 0.9555037
pow_exam Score_Polygons -0.0358680 0.7505635
pow_lec Score_Polygons -0.1417311 0.2068998
pow_sleep Score_Polygons -0.1806849 0.1064830
com_gen Score_Polygons -0.0684354 0.5438127
com_unattended Score_Polygons -0.1302930 0.2463090
com_leave_with_other Score_Polygons -0.1334264 0.2350338
com_locked Score_Polygons 0.0666854 0.5541862
com_room_task Score_Polygons -0.0906629 0.4208522
NMPQ_sum Score_Polygons 0.1480778 0.1870779
MPIQ_sum Score_Polygons 0.1439233 0.1998910
MPIQ_SI_sum Score_Polygons 0.1654163 0.1399988
MPIQ_VFO_sum Score_Polygons 0.1340583 0.2328042
SAD_sum Score_Polygons 0.1973003 0.0774794
SAD_dep_sum Score_Polygons 0.1126816 0.3165530
SAD_ea_sum Score_Polygons 0.2026430 0.0696294
SAD_dist_sum Score_Polygons 0.2743698 0.0131857
Score_Double Trouble Score_Polygons 0.1384818 0.2176074
Score_Odd One Out Score_Polygons 0.1060254 0.3461640
Score_Digit Span Score_Polygons 0.2324289 0.0367947
Score_Feature Match Score_Polygons 0.3729771 0.0006053
age Score_Paired Associates -0.1404241 0.2111610
age_first_phone Score_Paired Associates -0.0476717 0.6725743
dist_daily Score_Paired Associates -0.0138891 0.9020560
dist_study Score_Paired Associates -0.1497323 0.1821446
pow_not_using Score_Paired Associates -0.0538776 0.6328577
pow_notifications_on Score_Paired Associates 0.1421104 0.2056748
pow_vibrate Score_Paired Associates 0.0597553 0.5961724
pow_study Score_Paired Associates 0.0898268 0.4251665
pow_exam Score_Paired Associates -0.0338499 0.7641769
pow_lec Score_Paired Associates -0.0116173 0.9180152
pow_sleep Score_Paired Associates -0.0518259 0.6458808
com_gen Score_Paired Associates -0.0205110 0.8557798
com_unattended Score_Paired Associates 0.1687088 0.1321715
com_leave_with_other Score_Paired Associates 0.1203998 0.2843238
com_locked Score_Paired Associates -0.0169848 0.8803718
com_room_task Score_Paired Associates 0.0903877 0.4222697
NMPQ_sum Score_Paired Associates 0.0312066 0.7821170
MPIQ_sum Score_Paired Associates -0.0638697 0.5710729
MPIQ_SI_sum Score_Paired Associates 0.0251420 0.8236940
MPIQ_VFO_sum Score_Paired Associates -0.0257968 0.8191795
SAD_sum Score_Paired Associates -0.0193802 0.8636526
SAD_dep_sum Score_Paired Associates -0.0722618 0.5214663
SAD_ea_sum Score_Paired Associates 0.1065273 0.3438726
SAD_dist_sum Score_Paired Associates -0.0191181 0.8654790
Score_Double Trouble Score_Paired Associates 0.1844748 0.0992191
Score_Odd One Out Score_Paired Associates 0.0473524 0.6746438
Score_Digit Span Score_Paired Associates 0.2389722 0.0316696
Score_Feature Match Score_Paired Associates 0.1222633 0.2768810
Score_Polygons Score_Paired Associates 0.2289051 0.0398304
age Score_Token Search -0.0224186 0.8425316
age_first_phone Score_Token Search 0.1554769 0.1657507
dist_daily Score_Token Search -0.1356758 0.2271640
dist_study Score_Token Search 0.1590304 0.1561705
pow_not_using Score_Token Search -0.1259841 0.2624132
pow_notifications_on Score_Token Search 0.0475735 0.6732107
pow_vibrate Score_Token Search -0.1406396 0.2104540
pow_study Score_Token Search -0.0279201 0.8045804
pow_exam Score_Token Search -0.1295375 0.2490825
pow_lec Score_Token Search -0.1490890 0.1840515
pow_sleep Score_Token Search -0.0830648 0.4609770
com_gen Score_Token Search -0.2535823 0.0223573
com_unattended Score_Token Search -0.1972202 0.0776023
com_leave_with_other Score_Token Search -0.2114392 0.0581111
com_locked Score_Token Search -0.0149138 0.8948691
com_room_task Score_Token Search -0.1095213 0.3304025
NMPQ_sum Score_Token Search -0.0393128 0.7275019
MPIQ_sum Score_Token Search -0.0414785 0.7131250
MPIQ_SI_sum Score_Token Search -0.0703824 0.5323837
MPIQ_VFO_sum Score_Token Search -0.0703639 0.5324919
SAD_sum Score_Token Search -0.0518837 0.6455125
SAD_dep_sum Score_Token Search -0.1063997 0.3444543
SAD_ea_sum Score_Token Search -0.0178169 0.8745577
SAD_dist_sum Score_Token Search 0.0464322 0.6806202
Score_Double Trouble Score_Token Search 0.3269377 0.0028916
Score_Odd One Out Score_Token Search 0.0869374 0.4402696
Score_Digit Span Score_Token Search 0.2145676 0.0544095
Score_Feature Match Score_Token Search 0.1916801 0.0864842
Score_Polygons Score_Token Search 0.2978218 0.0069276
Score_Paired Associates Score_Token Search 0.1818348 0.1042366
age Score_Spatial Planning 0.1193430 0.2886032
age_first_phone Score_Spatial Planning 0.1226792 0.2752382
dist_daily Score_Spatial Planning -0.0662616 0.5567122
dist_study Score_Spatial Planning -0.1115584 0.3214318
pow_not_using Score_Spatial Planning -0.1052490 0.3497271
pow_notifications_on Score_Spatial Planning -0.2133233 0.0558580
pow_vibrate Score_Spatial Planning 0.1702235 0.1286840
pow_study Score_Spatial Planning -0.1117864 0.3204377
pow_exam Score_Spatial Planning 0.0624390 0.5797450
pow_lec Score_Spatial Planning 0.0971692 0.3881512
pow_sleep Score_Spatial Planning 0.0122041 0.9138897
com_gen Score_Spatial Planning 0.1292571 0.2501172
com_unattended Score_Spatial Planning 0.0662744 0.5566358
com_leave_with_other Score_Spatial Planning 0.1044437 0.3534467
com_locked Score_Spatial Planning -0.1464215 0.1921131
com_room_task Score_Spatial Planning 0.0009068 0.9935896
NMPQ_sum Score_Spatial Planning -0.0129104 0.9089265
MPIQ_sum Score_Spatial Planning -0.1044543 0.3533980
MPIQ_SI_sum Score_Spatial Planning -0.1541876 0.1693317
MPIQ_VFO_sum Score_Spatial Planning 0.0324353 0.7737634
SAD_sum Score_Spatial Planning -0.1829140 0.1021621
SAD_dep_sum Score_Spatial Planning -0.1191839 0.2892511
SAD_ea_sum Score_Spatial Planning -0.2201365 0.0482986
SAD_dist_sum Score_Spatial Planning -0.1052698 0.3496313
Score_Double Trouble Score_Spatial Planning 0.2118602 0.0576014
Score_Odd One Out Score_Spatial Planning -0.0341201 0.7623505
Score_Digit Span Score_Spatial Planning 0.0431839 0.7018730
Score_Feature Match Score_Spatial Planning 0.1155015 0.3045155
Score_Polygons Score_Spatial Planning 0.2084730 0.0618078
Score_Paired Associates Score_Spatial Planning 0.1013985 0.3677338
Score_Token Search Score_Spatial Planning 0.1095559 0.3302490
age Score_Rotations -0.1167670 0.2992116
age_first_phone Score_Rotations 0.0162263 0.8856774
dist_daily Score_Rotations -0.0444517 0.6935497
dist_study Score_Rotations 0.1265473 0.2602688
pow_not_using Score_Rotations -0.1127752 0.3161488
pow_notifications_on Score_Rotations 0.0665882 0.5547651
pow_vibrate Score_Rotations -0.0855640 0.4475527
pow_study Score_Rotations 0.0916663 0.4157084
pow_exam Score_Rotations 0.1771366 0.1136522
pow_lec Score_Rotations 0.1923355 0.0853934
pow_sleep Score_Rotations 0.2112123 0.0583873
com_gen Score_Rotations 0.0225395 0.8416931
com_unattended Score_Rotations -0.2692335 0.0150780
com_leave_with_other Score_Rotations -0.2064111 0.0644883
com_locked Score_Rotations 0.2068553 0.0639030
com_room_task Score_Rotations -0.1734415 0.1215086
NMPQ_sum Score_Rotations 0.0723252 0.5211001
MPIQ_sum Score_Rotations 0.0494156 0.6613170
MPIQ_SI_sum Score_Rotations 0.0861582 0.4443935
MPIQ_VFO_sum Score_Rotations 0.0660198 0.5581560
SAD_sum Score_Rotations 0.0859826 0.4453257
SAD_dep_sum Score_Rotations 0.0607018 0.5903551
SAD_ea_sum Score_Rotations 0.0555877 0.6220871
SAD_dist_sum Score_Rotations 0.0997717 0.3755083
Score_Double Trouble Score_Rotations 0.2512573 0.0236606
Score_Odd One Out Score_Rotations -0.2746380 0.0130928
Score_Digit Span Score_Rotations 0.0887112 0.4309622
Score_Feature Match Score_Rotations 0.2984265 0.0068089
Score_Polygons Score_Rotations 0.1851527 0.0979618
Score_Paired Associates Score_Rotations -0.0260588 0.8173748
Score_Token Search Score_Rotations 0.1787785 0.1102897
Score_Spatial Planning Score_Rotations 0.1697896 0.1296759
age Score_Spatial Span -0.2236075 0.0447843
age_first_phone Score_Spatial Span 0.0525768 0.6411014
dist_daily Score_Spatial Span -0.0773441 0.4925200
dist_study Score_Spatial Span 0.0935035 0.4063845
pow_not_using Score_Spatial Span -0.2066400 0.0641862
pow_notifications_on Score_Spatial Span -0.0625003 0.5793720
pow_vibrate Score_Spatial Span -0.0629967 0.5763575
pow_study Score_Spatial Span 0.0764615 0.4974853
pow_exam Score_Spatial Span 0.0624072 0.5799385
pow_lec Score_Spatial Span 0.1266724 0.2597939
pow_sleep Score_Spatial Span 0.1021969 0.3639544
com_gen Score_Spatial Span 0.1885663 0.0918190
com_unattended Score_Spatial Span -0.2667718 0.0160652
com_leave_with_other Score_Spatial Span -0.1334042 0.2351124
com_locked Score_Spatial Span -0.2493557 0.0247740
com_room_task Score_Spatial Span 0.0314328 0.7805770
NMPQ_sum Score_Spatial Span -0.1474274 0.1890437
MPIQ_sum Score_Spatial Span -0.1404444 0.2110941
MPIQ_SI_sum Score_Spatial Span -0.0970356 0.3888071
MPIQ_VFO_sum Score_Spatial Span 0.0008892 0.9937143
SAD_sum Score_Spatial Span -0.0857357 0.4466388
SAD_dep_sum Score_Spatial Span -0.0970092 0.3889369
SAD_ea_sum Score_Spatial Span -0.1643551 0.1425949
SAD_dist_sum Score_Spatial Span 0.0621892 0.5812651
Score_Double Trouble Score_Spatial Span 0.1983520 0.0758807
Score_Odd One Out Score_Spatial Span -0.0658139 0.5593870
Score_Digit Span Score_Spatial Span -0.0281980 0.8026743
Score_Feature Match Score_Spatial Span 0.0399933 0.7229739
Score_Polygons Score_Spatial Span 0.1539381 0.1700314
Score_Paired Associates Score_Spatial Span 0.0565561 0.6160228
Score_Token Search Score_Spatial Span 0.3730575 0.0006035
Score_Spatial Planning Score_Spatial Span 0.2325195 0.0367193
Score_Rotations Score_Spatial Span 0.1657724 0.1391359
age Score_Grammatical Reasoning -0.1007178 0.3709747
age_first_phone Score_Grammatical Reasoning 0.0278003 0.8054023
dist_daily Score_Grammatical Reasoning -0.0596606 0.5967556
dist_study Score_Grammatical Reasoning -0.0136420 0.9037900
pow_not_using Score_Grammatical Reasoning -0.1310918 0.2434000
pow_notifications_on Score_Grammatical Reasoning 0.1409906 0.2093065
pow_vibrate Score_Grammatical Reasoning -0.0160943 0.8866010
pow_study Score_Grammatical Reasoning -0.0314470 0.7804806
pow_exam Score_Grammatical Reasoning 0.0063371 0.9552236
pow_lec Score_Grammatical Reasoning 0.1031376 0.3595318
pow_sleep Score_Grammatical Reasoning -0.0488629 0.6648770
com_gen Score_Grammatical Reasoning -0.1276328 0.2561692
com_unattended Score_Grammatical Reasoning -0.0477105 0.6723231
com_leave_with_other Score_Grammatical Reasoning -0.0443435 0.6942590
com_locked Score_Grammatical Reasoning 0.0131153 0.9074877
com_room_task Score_Grammatical Reasoning -0.0541788 0.6309550
NMPQ_sum Score_Grammatical Reasoning -0.0370290 0.7427654
MPIQ_sum Score_Grammatical Reasoning -0.0297971 0.7917304
MPIQ_SI_sum Score_Grammatical Reasoning 0.1702914 0.1285295
MPIQ_VFO_sum Score_Grammatical Reasoning 0.2310128 0.0379906
SAD_sum Score_Grammatical Reasoning 0.0933605 0.4071056
SAD_dep_sum Score_Grammatical Reasoning 0.1190685 0.2897217
SAD_ea_sum Score_Grammatical Reasoning 0.0498864 0.6582906
SAD_dist_sum Score_Grammatical Reasoning -0.0119856 0.9154253
Score_Double Trouble Score_Grammatical Reasoning 0.3034703 0.0058863
Score_Odd One Out Score_Grammatical Reasoning -0.0413755 0.7138065
Score_Digit Span Score_Grammatical Reasoning 0.1006855 0.3711290
Score_Feature Match Score_Grammatical Reasoning 0.2640490 0.0172215
Score_Polygons Score_Grammatical Reasoning 0.1886734 0.0916312
Score_Paired Associates Score_Grammatical Reasoning 0.2537049 0.0222903
Score_Token Search Score_Grammatical Reasoning 0.1644367 0.1423941
Score_Spatial Planning Score_Grammatical Reasoning 0.2286006 0.0401022
Score_Rotations Score_Grammatical Reasoning 0.1221802 0.2772101
Score_Spatial Span Score_Grammatical Reasoning 0.3232170 0.0032487
age Score_Monkey Ladder -0.0771082 0.4938442
age_first_phone Score_Monkey Ladder 0.2452298 0.0273437
dist_daily Score_Monkey Ladder -0.1774655 0.1129723
dist_study Score_Monkey Ladder -0.0900874 0.4238195
pow_not_using Score_Monkey Ladder -0.1251660 0.2655494
pow_notifications_on Score_Monkey Ladder 0.0144438 0.8981643
pow_vibrate Score_Monkey Ladder 0.0314852 0.7802208
pow_study Score_Monkey Ladder -0.0572490 0.6116993
pow_exam Score_Monkey Ladder 0.1537563 0.1705424
pow_lec Score_Monkey Ladder -0.0581298 0.6062224
pow_sleep Score_Monkey Ladder -0.1251315 0.2656822
com_gen Score_Monkey Ladder -0.0533683 0.6360800
com_unattended Score_Monkey Ladder 0.1953782 0.0804707
com_leave_with_other Score_Monkey Ladder 0.0791626 0.4823718
com_locked Score_Monkey Ladder -0.1145809 0.3084125
com_room_task Score_Monkey Ladder 0.1008438 0.3703737
NMPQ_sum Score_Monkey Ladder -0.2348805 0.0347987
MPIQ_sum Score_Monkey Ladder -0.2691222 0.0151215
MPIQ_SI_sum Score_Monkey Ladder -0.3137308 0.0043435
MPIQ_VFO_sum Score_Monkey Ladder -0.0989482 0.3794818
SAD_sum Score_Monkey Ladder -0.1974033 0.0773216
SAD_dep_sum Score_Monkey Ladder -0.2141699 0.0548691
SAD_ea_sum Score_Monkey Ladder -0.1433811 0.2016084
SAD_dist_sum Score_Monkey Ladder -0.0869387 0.4402629
Score_Double Trouble Score_Monkey Ladder 0.1780073 0.1118594
Score_Odd One Out Score_Monkey Ladder -0.1510097 0.1784011
Score_Digit Span Score_Monkey Ladder 0.0542647 0.6304124
Score_Feature Match Score_Monkey Ladder 0.0714825 0.5259797
Score_Polygons Score_Monkey Ladder 0.0100044 0.9293661
Score_Paired Associates Score_Monkey Ladder 0.2437099 0.0283456
Score_Token Search Score_Monkey Ladder 0.3223815 0.0033341
Score_Spatial Planning Score_Monkey Ladder 0.1958378 0.0797471
Score_Rotations Score_Monkey Ladder -0.0781244 0.4881513
Score_Spatial Span Score_Monkey Ladder 0.3332786 0.0023633
Score_Grammatical Reasoning Score_Monkey Ladder 0.2595787 0.0192753
age CBS_overall 0.0665025 0.5552758
age_first_phone CBS_overall -0.0566965 0.6151456
dist_daily CBS_overall 0.0526626 0.6405564
dist_study CBS_overall 0.0768607 0.4952361
pow_not_using CBS_overall -0.1085146 0.3348940
pow_notifications_on CBS_overall 0.0106888 0.9245475
pow_vibrate CBS_overall -0.1397414 0.2134113
pow_study CBS_overall 0.0026210 0.9814732
pow_exam CBS_overall -0.1797365 0.1083638
pow_lec CBS_overall -0.3683022 0.0007171
pow_sleep CBS_overall -0.1067036 0.3430702
com_gen CBS_overall -0.1498609 0.1817653
com_unattended CBS_overall -0.1375544 0.2207340
com_leave_with_other CBS_overall -0.1138480 0.3115374
com_locked CBS_overall 0.0818468 0.4675982
com_room_task CBS_overall -0.0920320 0.4138425
NMPQ_sum CBS_overall 0.0463561 0.6811154
MPIQ_sum CBS_overall -0.0102436 0.9276816
MPIQ_SI_sum CBS_overall 0.1517566 0.1762383
MPIQ_VFO_sum CBS_overall 0.0533491 0.6362019
SAD_sum CBS_overall 0.1210511 0.2817076
SAD_dep_sum CBS_overall 0.0526947 0.6403528
SAD_ea_sum CBS_overall 0.2073936 0.0631995
SAD_dist_sum CBS_overall 0.1201673 0.2852617
Score_Double Trouble CBS_overall 0.1239654 0.2701977
Score_Odd One Out CBS_overall 0.1334163 0.2350696
Score_Digit Span CBS_overall 1.0000000 0.0000000
Score_Feature Match CBS_overall 0.3241417 0.0031564
Score_Polygons CBS_overall 0.2324289 0.0367947
Score_Paired Associates CBS_overall 0.2389722 0.0316696
Score_Token Search CBS_overall 0.2145676 0.0544095
Score_Spatial Planning CBS_overall 0.0431839 0.7018730
Score_Rotations CBS_overall 0.0887112 0.4309622
Score_Spatial Span CBS_overall -0.0281980 0.8026743
Score_Grammatical Reasoning CBS_overall 0.1006855 0.3711290
Score_Monkey Ladder CBS_overall 0.0542647 0.6304124
age CBS_STM -0.0771082 0.4938442
age_first_phone CBS_STM 0.2452298 0.0273437
dist_daily CBS_STM -0.1774655 0.1129723
dist_study CBS_STM -0.0900874 0.4238195
pow_not_using CBS_STM -0.1251660 0.2655494
pow_notifications_on CBS_STM 0.0144438 0.8981643
pow_vibrate CBS_STM 0.0314852 0.7802208
pow_study CBS_STM -0.0572490 0.6116993
pow_exam CBS_STM 0.1537563 0.1705424
pow_lec CBS_STM -0.0581298 0.6062224
pow_sleep CBS_STM -0.1251315 0.2656822
com_gen CBS_STM -0.0533683 0.6360800
com_unattended CBS_STM 0.1953782 0.0804707
com_leave_with_other CBS_STM 0.0791626 0.4823718
com_locked CBS_STM -0.1145809 0.3084125
com_room_task CBS_STM 0.1008438 0.3703737
NMPQ_sum CBS_STM -0.2348805 0.0347987
MPIQ_sum CBS_STM -0.2691222 0.0151215
MPIQ_SI_sum CBS_STM -0.3137308 0.0043435
MPIQ_VFO_sum CBS_STM -0.0989482 0.3794818
SAD_sum CBS_STM -0.1974033 0.0773216
SAD_dep_sum CBS_STM -0.2141699 0.0548691
SAD_ea_sum CBS_STM -0.1433811 0.2016084
SAD_dist_sum CBS_STM -0.0869387 0.4402629
Score_Double Trouble CBS_STM 0.1780073 0.1118594
Score_Odd One Out CBS_STM -0.1510097 0.1784011
Score_Digit Span CBS_STM 0.0542647 0.6304124
Score_Feature Match CBS_STM 0.0714825 0.5259797
Score_Polygons CBS_STM 0.0100044 0.9293661
Score_Paired Associates CBS_STM 0.2437099 0.0283456
Score_Token Search CBS_STM 0.3223815 0.0033341
Score_Spatial Planning CBS_STM 0.1958378 0.0797471
Score_Rotations CBS_STM -0.0781244 0.4881513
Score_Spatial Span CBS_STM 0.3332786 0.0023633
Score_Grammatical Reasoning CBS_STM 0.2595787 0.0192753
Score_Monkey Ladder CBS_STM 1.0000000 0.0000000
CBS_overall CBS_STM 0.0542647 0.6304124
age CBS_reason -0.1153256 0.3052575
age_first_phone CBS_reason 0.0151772 0.8930236
dist_daily CBS_reason -0.1019195 0.3652646
dist_study CBS_reason 0.1698680 0.1294962
pow_not_using CBS_reason 0.0301427 0.7893703
pow_notifications_on CBS_reason 0.0235473 0.8347132
pow_vibrate CBS_reason -0.2658214 0.0164609
pow_study CBS_reason -0.1246771 0.2674359
pow_exam CBS_reason -0.0814734 0.4696386
pow_lec CBS_reason -0.3141301 0.0042915
pow_sleep CBS_reason -0.1311236 0.2432849
com_gen CBS_reason -0.1129412 0.3154324
com_unattended CBS_reason -0.1004862 0.3720816
com_leave_with_other CBS_reason -0.2177103 0.0508877
com_locked CBS_reason 0.0608198 0.5896312
com_room_task CBS_reason -0.2435066 0.0284819
NMPQ_sum CBS_reason 0.0833685 0.4593340
MPIQ_sum CBS_reason 0.0908148 0.4200712
MPIQ_SI_sum CBS_reason 0.0901073 0.4237167
MPIQ_VFO_sum CBS_reason 0.2089702 0.0611752
SAD_sum CBS_reason 0.1315753 0.2416506
SAD_dep_sum CBS_reason 0.0179146 0.8738749
SAD_ea_sum CBS_reason 0.2452785 0.0273122
SAD_dist_sum CBS_reason 0.1082836 0.3359300
Score_Double Trouble CBS_reason 0.2973355 0.0070244
Score_Odd One Out CBS_reason -0.1427870 0.2035025
Score_Digit Span CBS_reason 0.3241417 0.0031564
Score_Feature Match CBS_reason 1.0000000 0.0000000
Score_Polygons CBS_reason 0.3729771 0.0006053
Score_Paired Associates CBS_reason 0.1222633 0.2768810
Score_Token Search CBS_reason 0.1916801 0.0864842
Score_Spatial Planning CBS_reason 0.1155015 0.3045155
Score_Rotations CBS_reason 0.2984265 0.0068089
Score_Spatial Span CBS_reason 0.0399933 0.7229739
Score_Grammatical Reasoning CBS_reason 0.2640490 0.0172215
Score_Monkey Ladder CBS_reason 0.0714825 0.5259797
CBS_overall CBS_reason 0.3241417 0.0031564
CBS_STM CBS_reason 0.0714825 0.5259797
age CBS_verbal -0.1007178 0.3709747
age_first_phone CBS_verbal 0.0278003 0.8054023
dist_daily CBS_verbal -0.0596606 0.5967556
dist_study CBS_verbal -0.0136420 0.9037900
pow_not_using CBS_verbal -0.1310918 0.2434000
pow_notifications_on CBS_verbal 0.1409906 0.2093065
pow_vibrate CBS_verbal -0.0160943 0.8866010
pow_study CBS_verbal -0.0314470 0.7804806
pow_exam CBS_verbal 0.0063371 0.9552236
pow_lec CBS_verbal 0.1031376 0.3595318
pow_sleep CBS_verbal -0.0488629 0.6648770
com_gen CBS_verbal -0.1276328 0.2561692
com_unattended CBS_verbal -0.0477105 0.6723231
com_leave_with_other CBS_verbal -0.0443435 0.6942590
com_locked CBS_verbal 0.0131153 0.9074877
com_room_task CBS_verbal -0.0541788 0.6309550
NMPQ_sum CBS_verbal -0.0370290 0.7427654
MPIQ_sum CBS_verbal -0.0297971 0.7917304
MPIQ_SI_sum CBS_verbal 0.1702914 0.1285295
MPIQ_VFO_sum CBS_verbal 0.2310128 0.0379906
SAD_sum CBS_verbal 0.0933605 0.4071056
SAD_dep_sum CBS_verbal 0.1190685 0.2897217
SAD_ea_sum CBS_verbal 0.0498864 0.6582906
SAD_dist_sum CBS_verbal -0.0119856 0.9154253
Score_Double Trouble CBS_verbal 0.3034703 0.0058863
Score_Odd One Out CBS_verbal -0.0413755 0.7138065
Score_Digit Span CBS_verbal 0.1006855 0.3711290
Score_Feature Match CBS_verbal 0.2640490 0.0172215
Score_Polygons CBS_verbal 0.1886734 0.0916312
Score_Paired Associates CBS_verbal 0.2537049 0.0222903
Score_Token Search CBS_verbal 0.1644367 0.1423941
Score_Spatial Planning CBS_verbal 0.2286006 0.0401022
Score_Rotations CBS_verbal 0.1221802 0.2772101
Score_Spatial Span CBS_verbal 0.3232170 0.0032487
Score_Grammatical Reasoning CBS_verbal 1.0000000 0.0000000
Score_Monkey Ladder CBS_verbal 0.2595787 0.0192753
CBS_overall CBS_verbal 0.1006855 0.3711290
CBS_STM CBS_verbal 0.2595787 0.0192753
CBS_reason CBS_verbal 0.2640490 0.0172215
age CBS_ts_memory -0.0771082 0.4938442
age_first_phone CBS_ts_memory 0.2452298 0.0273437
dist_daily CBS_ts_memory -0.1774655 0.1129723
dist_study CBS_ts_memory -0.0900874 0.4238195
pow_not_using CBS_ts_memory -0.1251660 0.2655494
pow_notifications_on CBS_ts_memory 0.0144438 0.8981643
pow_vibrate CBS_ts_memory 0.0314852 0.7802208
pow_study CBS_ts_memory -0.0572490 0.6116993
pow_exam CBS_ts_memory 0.1537563 0.1705424
pow_lec CBS_ts_memory -0.0581298 0.6062224
pow_sleep CBS_ts_memory -0.1251315 0.2656822
com_gen CBS_ts_memory -0.0533683 0.6360800
com_unattended CBS_ts_memory 0.1953782 0.0804707
com_leave_with_other CBS_ts_memory 0.0791626 0.4823718
com_locked CBS_ts_memory -0.1145809 0.3084125
com_room_task CBS_ts_memory 0.1008438 0.3703737
NMPQ_sum CBS_ts_memory -0.2348805 0.0347987
MPIQ_sum CBS_ts_memory -0.2691222 0.0151215
MPIQ_SI_sum CBS_ts_memory -0.3137308 0.0043435
MPIQ_VFO_sum CBS_ts_memory -0.0989482 0.3794818
SAD_sum CBS_ts_memory -0.1974033 0.0773216
SAD_dep_sum CBS_ts_memory -0.2141699 0.0548691
SAD_ea_sum CBS_ts_memory -0.1433811 0.2016084
SAD_dist_sum CBS_ts_memory -0.0869387 0.4402629
Score_Double Trouble CBS_ts_memory 0.1780073 0.1118594
Score_Odd One Out CBS_ts_memory -0.1510097 0.1784011
Score_Digit Span CBS_ts_memory 0.0542647 0.6304124
Score_Feature Match CBS_ts_memory 0.0714825 0.5259797
Score_Polygons CBS_ts_memory 0.0100044 0.9293661
Score_Paired Associates CBS_ts_memory 0.2437099 0.0283456
Score_Token Search CBS_ts_memory 0.3223815 0.0033341
Score_Spatial Planning CBS_ts_memory 0.1958378 0.0797471
Score_Rotations CBS_ts_memory -0.0781244 0.4881513
Score_Spatial Span CBS_ts_memory 0.3332786 0.0023633
Score_Grammatical Reasoning CBS_ts_memory 0.2595787 0.0192753
Score_Monkey Ladder CBS_ts_memory 1.0000000 0.0000000
CBS_overall CBS_ts_memory 0.0542647 0.6304124
CBS_STM CBS_ts_memory 1.0000000 0.0000000
CBS_reason CBS_ts_memory 0.0714825 0.5259797
CBS_verbal CBS_ts_memory 0.2595787 0.0192753
age CBS_ts_reason -0.1218981 0.2783292
age_first_phone CBS_ts_reason 0.0407111 0.7182083
dist_daily CBS_ts_reason -0.0675517 0.5490388
dist_study CBS_ts_reason -0.0159608 0.8875352
pow_not_using CBS_ts_reason 0.0400309 0.7227238
pow_notifications_on CBS_ts_reason 0.0695406 0.5373104
pow_vibrate CBS_ts_reason -0.0401990 0.7216072
pow_study CBS_ts_reason 0.0062975 0.9555037
pow_exam CBS_ts_reason -0.0358680 0.7505635
pow_lec CBS_ts_reason -0.1417311 0.2068998
pow_sleep CBS_ts_reason -0.1806849 0.1064830
com_gen CBS_ts_reason -0.0684354 0.5438127
com_unattended CBS_ts_reason -0.1302930 0.2463090
com_leave_with_other CBS_ts_reason -0.1334264 0.2350338
com_locked CBS_ts_reason 0.0666854 0.5541862
com_room_task CBS_ts_reason -0.0906629 0.4208522
NMPQ_sum CBS_ts_reason 0.1480778 0.1870779
MPIQ_sum CBS_ts_reason 0.1439233 0.1998910
MPIQ_SI_sum CBS_ts_reason 0.1654163 0.1399988
MPIQ_VFO_sum CBS_ts_reason 0.1340583 0.2328042
SAD_sum CBS_ts_reason 0.1973003 0.0774794
SAD_dep_sum CBS_ts_reason 0.1126816 0.3165530
SAD_ea_sum CBS_ts_reason 0.2026430 0.0696294
SAD_dist_sum CBS_ts_reason 0.2743698 0.0131857
Score_Double Trouble CBS_ts_reason 0.1384818 0.2176074
Score_Odd One Out CBS_ts_reason 0.1060254 0.3461640
Score_Digit Span CBS_ts_reason 0.2324289 0.0367947
Score_Feature Match CBS_ts_reason 0.3729771 0.0006053
Score_Polygons CBS_ts_reason 1.0000000 0.0000000
Score_Paired Associates CBS_ts_reason 0.2289051 0.0398304
Score_Token Search CBS_ts_reason 0.2978218 0.0069276
Score_Spatial Planning CBS_ts_reason 0.2084730 0.0618078
Score_Rotations CBS_ts_reason 0.1851527 0.0979618
Score_Spatial Span CBS_ts_reason 0.1539381 0.1700314
Score_Grammatical Reasoning CBS_ts_reason 0.1886734 0.0916312
Score_Monkey Ladder CBS_ts_reason 0.0100044 0.9293661
CBS_overall CBS_ts_reason 0.2324289 0.0367947
CBS_STM CBS_ts_reason 0.0100044 0.9293661
CBS_reason CBS_ts_reason 0.3729771 0.0006053
CBS_verbal CBS_ts_reason 0.1886734 0.0916312
CBS_ts_memory CBS_ts_reason 0.0100044 0.9293661
age CBS_ts_verbalab -0.1007178 0.3709747
age_first_phone CBS_ts_verbalab 0.0278003 0.8054023
dist_daily CBS_ts_verbalab -0.0596606 0.5967556
dist_study CBS_ts_verbalab -0.0136420 0.9037900
pow_not_using CBS_ts_verbalab -0.1310918 0.2434000
pow_notifications_on CBS_ts_verbalab 0.1409906 0.2093065
pow_vibrate CBS_ts_verbalab -0.0160943 0.8866010
pow_study CBS_ts_verbalab -0.0314470 0.7804806
pow_exam CBS_ts_verbalab 0.0063371 0.9552236
pow_lec CBS_ts_verbalab 0.1031376 0.3595318
pow_sleep CBS_ts_verbalab -0.0488629 0.6648770
com_gen CBS_ts_verbalab -0.1276328 0.2561692
com_unattended CBS_ts_verbalab -0.0477105 0.6723231
com_leave_with_other CBS_ts_verbalab -0.0443435 0.6942590
com_locked CBS_ts_verbalab 0.0131153 0.9074877
com_room_task CBS_ts_verbalab -0.0541788 0.6309550
NMPQ_sum CBS_ts_verbalab -0.0370290 0.7427654
MPIQ_sum CBS_ts_verbalab -0.0297971 0.7917304
MPIQ_SI_sum CBS_ts_verbalab 0.1702914 0.1285295
MPIQ_VFO_sum CBS_ts_verbalab 0.2310128 0.0379906
SAD_sum CBS_ts_verbalab 0.0933605 0.4071056
SAD_dep_sum CBS_ts_verbalab 0.1190685 0.2897217
SAD_ea_sum CBS_ts_verbalab 0.0498864 0.6582906
SAD_dist_sum CBS_ts_verbalab -0.0119856 0.9154253
Score_Double Trouble CBS_ts_verbalab 0.3034703 0.0058863
Score_Odd One Out CBS_ts_verbalab -0.0413755 0.7138065
Score_Digit Span CBS_ts_verbalab 0.1006855 0.3711290
Score_Feature Match CBS_ts_verbalab 0.2640490 0.0172215
Score_Polygons CBS_ts_verbalab 0.1886734 0.0916312
Score_Paired Associates CBS_ts_verbalab 0.2537049 0.0222903
Score_Token Search CBS_ts_verbalab 0.1644367 0.1423941
Score_Spatial Planning CBS_ts_verbalab 0.2286006 0.0401022
Score_Rotations CBS_ts_verbalab 0.1221802 0.2772101
Score_Spatial Span CBS_ts_verbalab 0.3232170 0.0032487
Score_Grammatical Reasoning CBS_ts_verbalab 1.0000000 0.0000000
Score_Monkey Ladder CBS_ts_verbalab 0.2595787 0.0192753
CBS_overall CBS_ts_verbalab 0.1006855 0.3711290
CBS_STM CBS_ts_verbalab 0.2595787 0.0192753
CBS_reason CBS_ts_verbalab 0.2640490 0.0172215
CBS_verbal CBS_ts_verbalab 1.0000000 0.0000000
CBS_ts_memory CBS_ts_verbalab 0.2595787 0.0192753
CBS_ts_reason CBS_ts_verbalab 0.1886734 0.0916312
age CBS_ts_con -0.1153256 0.3052575
age_first_phone CBS_ts_con 0.0151772 0.8930236
dist_daily CBS_ts_con -0.1019195 0.3652646
dist_study CBS_ts_con 0.1698680 0.1294962
pow_not_using CBS_ts_con 0.0301427 0.7893703
pow_notifications_on CBS_ts_con 0.0235473 0.8347132
pow_vibrate CBS_ts_con -0.2658214 0.0164609
pow_study CBS_ts_con -0.1246771 0.2674359
pow_exam CBS_ts_con -0.0814734 0.4696386
pow_lec CBS_ts_con -0.3141301 0.0042915
pow_sleep CBS_ts_con -0.1311236 0.2432849
com_gen CBS_ts_con -0.1129412 0.3154324
com_unattended CBS_ts_con -0.1004862 0.3720816
com_leave_with_other CBS_ts_con -0.2177103 0.0508877
com_locked CBS_ts_con 0.0608198 0.5896312
com_room_task CBS_ts_con -0.2435066 0.0284819
NMPQ_sum CBS_ts_con 0.0833685 0.4593340
MPIQ_sum CBS_ts_con 0.0908148 0.4200712
MPIQ_SI_sum CBS_ts_con 0.0901073 0.4237167
MPIQ_VFO_sum CBS_ts_con 0.2089702 0.0611752
SAD_sum CBS_ts_con 0.1315753 0.2416506
SAD_dep_sum CBS_ts_con 0.0179146 0.8738749
SAD_ea_sum CBS_ts_con 0.2452785 0.0273122
SAD_dist_sum CBS_ts_con 0.1082836 0.3359300
Score_Double Trouble CBS_ts_con 0.2973355 0.0070244
Score_Odd One Out CBS_ts_con -0.1427870 0.2035025
Score_Digit Span CBS_ts_con 0.3241417 0.0031564
Score_Feature Match CBS_ts_con 1.0000000 0.0000000
Score_Polygons CBS_ts_con 0.3729771 0.0006053
Score_Paired Associates CBS_ts_con 0.1222633 0.2768810
Score_Token Search CBS_ts_con 0.1916801 0.0864842
Score_Spatial Planning CBS_ts_con 0.1155015 0.3045155
Score_Rotations CBS_ts_con 0.2984265 0.0068089
Score_Spatial Span CBS_ts_con 0.0399933 0.7229739
Score_Grammatical Reasoning CBS_ts_con 0.2640490 0.0172215
Score_Monkey Ladder CBS_ts_con 0.0714825 0.5259797
CBS_overall CBS_ts_con 0.3241417 0.0031564
CBS_STM CBS_ts_con 0.0714825 0.5259797
CBS_reason CBS_ts_con 1.0000000 0.0000000
CBS_verbal CBS_ts_con 0.2640490 0.0172215
CBS_ts_memory CBS_ts_con 0.0714825 0.5259797
CBS_ts_reason CBS_ts_con 0.3729771 0.0006053
CBS_ts_verbalab CBS_ts_con 0.2640490 0.0172215

# print tables using kable
kable(as.data.frame(format(main_corr_out2$r, scientific = FALSE)), caption = "Pilot Study - Correlation: r values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: r values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.1787 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily -0.0797 -0.1361 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study -0.0153 0.0982 0.1582 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.0217 0.1149 0.044 0.0519 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on -0.1937 0.1093 0.2247 0.1396 -0.033 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.067 -0.0246 -0.0173 -0.0503 0.0164 0.1894 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study -0.2227 -0.1664 0.3976 0.1539 -0.4481 0.21 -0.1107 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam -0.2417 -0.1754 0.1788 0.0731 -0.235 0.0312 -0.0447 0.2761 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.0435 -0.1318 0.0626 -0.0678 -0.2099 0.0801 0.2065 0.2279 0.2537 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep -0.071 -0.3248 -0.0192 -0.103 -0.3101 -0.0966 0.0698 0.4285 0.3256 0.5405 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen -0.0477 -0.0226 0.0842 -0.1505 0.0337 0.0053 0.0671 0.1087 0.0239 0.2287 0.2444 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.2183 0.0156 -0.0028 -0.0621 0.1906 -9e-04 0.0847 -0.1644 0.1041 0.0237 -0.073 0.3472 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.1235 -0.0582 0.1375 -0.0613 0.1387 0.047 0.0996 0.0027 0.0383 0.2131 0.0392 0.5157 0.7084 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 0.0113 -0.0898 0.2096 -0.0444 -0.0807 0.2417 -0.0836 0.1685 0.0368 0.0197 0.0362 -0.3631 -0.2965 -0.342 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1593 0.1263 -0.0201 -0.2161 0.0502 -0.0793 0.0322 -0.0569 0.0464 0.2458 0.1797 0.4068 0.3932 0.3362 -0.2234 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum -0.2291 -0.0284 0.3263 0.1721 -0.0836 0.2652 -0.1497 0.2663 0.0794 -0.0466 0.0317 -0.0737 0.0293 0.0647 0.0971 -0.1352 1 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum -0.2393 -0.1083 0.3836 0.273 0.0076 0.1832 -0.2104 0.2769 0.1011 0.1091 0.0651 -0.11 0.002 0.0885 0.1744 -0.1139 0.7444 1 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum -0.1278 -0.1048 0.1197 0.1556 -0.0887 0.4157 -0.0521 0.2212 -0.0432 0.115 0.1573 -0.1344 -0.124 -0.0421 0.1501 -0.1937 0.6673 0.5978 1 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum -0.082 0.1608 0.1307 0.1295 0.0303 0.3341 -0.0052 0.0726 -0.0374 0.079 -0.1394 -0.0883 -0.0581 -0.0381 0.0262 -0.1126 0.5588 0.4935 0.4571 1 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum -0.295 -0.0469 0.2986 0.1101 -0.147 0.379 -0.0836 0.3379 -0.0483 0.0247 -0.0564 -0.0516 -0.1534 -0.0333 0.0942 -0.2198 0.779 0.7165 0.6646 0.6749 1 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum -0.269 -0.1307 0.2337 0.0678 -0.1997 0.3629 -0.0364 0.3701 0.0175 0.1083 0.0665 -0.0028 -0.0998 0.0537 0.0753 -0.1852 0.7503 0.6605 0.6744 0.5943 0.9185 1 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum -0.2377 0.0396 0.2424 0.0931 -0.0038 0.2608 -0.094 0.2516 -0.1293 -0.178 -0.0952 -0.1146 -0.201 -0.1353 0.0505 -0.2522 0.601 0.5116 0.491 0.554 0.8074 0.6142 1 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum -0.2131 0.0295 0.3128 0.0885 -0.108 0.2814 -0.083 0.2131 -0.0431 0.1003 -0.168 -0.0416 -0.1196 -0.0543 0.1177 -0.1102 0.5407 0.5828 0.4205 0.4945 0.7084 0.5228 0.3998 1 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble -0.2883 -0.0721 -0.0071 -0.002 -0.4064 0.1303 -0.1931 0.3376 0.1433 0.0839 0.1617 -0.1546 -0.3593 -0.1825 0.2198 -0.291 0.0244 0.0362 0.0951 0.1535 0.1469 0.1266 0.139 0.123 1 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.2473 0.0196 0.1454 0.0045 -0.0414 -0.0584 0.0177 0.0841 -0.2102 0.0209 -0.097 0.0371 0.0535 0.1543 0.0473 0.0197 0.0763 0.1431 0.0767 0.0214 0.1546 0.1588 0.0016 0.2338 -0.0268 1 - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.0665 -0.0567 0.0527 0.0769 -0.1085 0.0107 -0.1397 0.0026 -0.1797 -0.3683 -0.1067 -0.1499 -0.1376 -0.1138 0.0818 -0.092 0.0464 -0.0102 0.1518 0.0533 0.1211 0.0527 0.2074 0.1202 0.124 0.1334 1 - - - - - - - - - - - - - - - - -
Score_Feature Match -0.1153 0.0152 -0.1019 0.1699 0.0301 0.0235 -0.2658 -0.1247 -0.0815 -0.3141 -0.1311 -0.1129 -0.1005 -0.2177 0.0608 -0.2435 0.0834 0.0908 0.0901 0.209 0.1316 0.0179 0.2453 0.1083 0.2973 -0.1428 0.3241 1 - - - - - - - - - - - - - - - -
Score_Polygons -0.1219 0.0407 -0.0676 -0.016 0.04 0.0695 -0.0402 0.0063 -0.0359 -0.1417 -0.1807 -0.0684 -0.1303 -0.1334 0.0667 -0.0907 0.1481 0.1439 0.1654 0.1341 0.1973 0.1127 0.2026 0.2744 0.1385 0.106 0.2324 0.373 1 - - - - - - - - - - - - - - -
Score_Paired Associates -0.1404 -0.0477 -0.0139 -0.1497 -0.0539 0.1421 0.0598 0.0898 -0.0338 -0.0116 -0.0518 -0.0205 0.1687 0.1204 -0.017 0.0904 0.0312 -0.0639 0.0251 -0.0258 -0.0194 -0.0723 0.1065 -0.0191 0.1845 0.0474 0.239 0.1223 0.2289 1 - - - - - - - - - - - - - -
Score_Token Search -0.0224 0.1555 -0.1357 0.159 -0.126 0.0476 -0.1406 -0.0279 -0.1295 -0.1491 -0.0831 -0.2536 -0.1972 -0.2114 -0.0149 -0.1095 -0.0393 -0.0415 -0.0704 -0.0704 -0.0519 -0.1064 -0.0178 0.0464 0.3269 0.0869 0.2146 0.1917 0.2978 0.1818 1 - - - - - - - - - - - - -
Score_Spatial Planning 0.1193 0.1227 -0.0663 -0.1116 -0.1052 -0.2133 0.1702 -0.1118 0.0624 0.0972 0.0122 0.1293 0.0663 0.1044 -0.1464 9e-04 -0.0129 -0.1045 -0.1542 0.0324 -0.1829 -0.1192 -0.2201 -0.1053 0.2119 -0.0341 0.0432 0.1155 0.2085 0.1014 0.1096 1 - - - - - - - - - - - -
Score_Rotations -0.1168 0.0162 -0.0445 0.1265 -0.1128 0.0666 -0.0856 0.0917 0.1771 0.1923 0.2112 0.0225 -0.2692 -0.2064 0.2069 -0.1734 0.0723 0.0494 0.0862 0.066 0.086 0.0607 0.0556 0.0998 0.2513 -0.2746 0.0887 0.2984 0.1852 -0.0261 0.1788 0.1698 1 - - - - - - - - - - -
Score_Spatial Span -0.2236 0.0526 -0.0773 0.0935 -0.2066 -0.0625 -0.063 0.0765 0.0624 0.1267 0.1022 0.1886 -0.2668 -0.1334 -0.2494 0.0314 -0.1474 -0.1404 -0.097 9e-04 -0.0857 -0.097 -0.1644 0.0622 0.1984 -0.0658 -0.0282 0.04 0.1539 0.0566 0.3731 0.2325 0.1658 1 - - - - - - - - - -
Score_Grammatical Reasoning -0.1007 0.0278 -0.0597 -0.0136 -0.1311 0.141 -0.0161 -0.0314 0.0063 0.1031 -0.0489 -0.1276 -0.0477 -0.0443 0.0131 -0.0542 -0.037 -0.0298 0.1703 0.231 0.0934 0.1191 0.0499 -0.012 0.3035 -0.0414 0.1007 0.264 0.1887 0.2537 0.1644 0.2286 0.1222 0.3232 1 - - - - - - - - -
Score_Monkey Ladder -0.0771 0.2452 -0.1775 -0.0901 -0.1252 0.0144 0.0315 -0.0572 0.1538 -0.0581 -0.1251 -0.0534 0.1954 0.0792 -0.1146 0.1008 -0.2349 -0.2691 -0.3137 -0.0989 -0.1974 -0.2142 -0.1434 -0.0869 0.178 -0.151 0.0543 0.0715 0.01 0.2437 0.3224 0.1958 -0.0781 0.3333 0.2596 1 - - - - - - - -
CBS_overall 0.0665 -0.0567 0.0527 0.0769 -0.1085 0.0107 -0.1397 0.0026 -0.1797 -0.3683 -0.1067 -0.1499 -0.1376 -0.1138 0.0818 -0.092 0.0464 -0.0102 0.1518 0.0533 0.1211 0.0527 0.2074 0.1202 0.124 0.1334 1 0.3241 0.2324 0.239 0.2146 0.0432 0.0887 -0.0282 0.1007 0.0543 1 - - - - - - -
CBS_STM -0.0771 0.2452 -0.1775 -0.0901 -0.1252 0.0144 0.0315 -0.0572 0.1538 -0.0581 -0.1251 -0.0534 0.1954 0.0792 -0.1146 0.1008 -0.2349 -0.2691 -0.3137 -0.0989 -0.1974 -0.2142 -0.1434 -0.0869 0.178 -0.151 0.0543 0.0715 0.01 0.2437 0.3224 0.1958 -0.0781 0.3333 0.2596 1 0.0543 1 - - - - - -
CBS_reason -0.1153 0.0152 -0.1019 0.1699 0.0301 0.0235 -0.2658 -0.1247 -0.0815 -0.3141 -0.1311 -0.1129 -0.1005 -0.2177 0.0608 -0.2435 0.0834 0.0908 0.0901 0.209 0.1316 0.0179 0.2453 0.1083 0.2973 -0.1428 0.3241 1 0.373 0.1223 0.1917 0.1155 0.2984 0.04 0.264 0.0715 0.3241 0.0715 1 - - - - -
CBS_verbal -0.1007 0.0278 -0.0597 -0.0136 -0.1311 0.141 -0.0161 -0.0314 0.0063 0.1031 -0.0489 -0.1276 -0.0477 -0.0443 0.0131 -0.0542 -0.037 -0.0298 0.1703 0.231 0.0934 0.1191 0.0499 -0.012 0.3035 -0.0414 0.1007 0.264 0.1887 0.2537 0.1644 0.2286 0.1222 0.3232 1 0.2596 0.1007 0.2596 0.264 1 - - - -
CBS_ts_memory -0.0771 0.2452 -0.1775 -0.0901 -0.1252 0.0144 0.0315 -0.0572 0.1538 -0.0581 -0.1251 -0.0534 0.1954 0.0792 -0.1146 0.1008 -0.2349 -0.2691 -0.3137 -0.0989 -0.1974 -0.2142 -0.1434 -0.0869 0.178 -0.151 0.0543 0.0715 0.01 0.2437 0.3224 0.1958 -0.0781 0.3333 0.2596 1 0.0543 1 0.0715 0.2596 1 - - -
CBS_ts_reason -0.1219 0.0407 -0.0676 -0.016 0.04 0.0695 -0.0402 0.0063 -0.0359 -0.1417 -0.1807 -0.0684 -0.1303 -0.1334 0.0667 -0.0907 0.1481 0.1439 0.1654 0.1341 0.1973 0.1127 0.2026 0.2744 0.1385 0.106 0.2324 0.373 1 0.2289 0.2978 0.2085 0.1852 0.1539 0.1887 0.01 0.2324 0.01 0.373 0.1887 0.01 1 - -
CBS_ts_verbalab -0.1007 0.0278 -0.0597 -0.0136 -0.1311 0.141 -0.0161 -0.0314 0.0063 0.1031 -0.0489 -0.1276 -0.0477 -0.0443 0.0131 -0.0542 -0.037 -0.0298 0.1703 0.231 0.0934 0.1191 0.0499 -0.012 0.3035 -0.0414 0.1007 0.264 0.1887 0.2537 0.1644 0.2286 0.1222 0.3232 1 0.2596 0.1007 0.2596 0.264 1 0.2596 0.1887 1 -
CBS_ts_con -0.1153 0.0152 -0.1019 0.1699 0.0301 0.0235 -0.2658 -0.1247 -0.0815 -0.3141 -0.1311 -0.1129 -0.1005 -0.2177 0.0608 -0.2435 0.0834 0.0908 0.0901 0.209 0.1316 0.0179 0.2453 0.1083 0.2973 -0.1428 0.3241 1 0.373 0.1223 0.1917 0.1155 0.2984 0.04 0.264 0.0715 0.3241 0.0715 1 0.264 0.0715 0.373 0.264 1
  

kable(as.data.frame(format(main_corr_out2$P, scientific = FALSE)), caption = "Pilot Study - Correlation: p values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: p values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 0.1105 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 0.4793 0.2256 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 0.8919 0.3832 0.1583 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 0.8477 0.3071 0.6963 0.6452 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 0.0831 0.3313 0.0438 0.2139 0.7698 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 0.5526 0.8272 0.8784 0.6558 0.8843 0.0904 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 0.0457 0.1376 2e-04 0.17 0 0.0599 0.3252 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 0.0297 0.1174 0.1102 0.5164 0.0347 0.7821 0.6922 0.0126 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 0.6995 0.2409 0.5786 0.5477 0.06 0.4771 0.0644 0.0408 0.0223 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 0.5286 0.0031 0.8651 0.3604 0.0048 0.3911 0.5358 1e-04 0.003 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 0.6726 0.8416 0.4551 0.1799 0.7653 0.9622 0.5514 0.3342 0.8324 0.04 0.0279 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 0.0502 0.8904 0.9805 0.5817 0.0883 0.9936 0.4523 0.1425 0.355 0.8339 0.5171 0.0015 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 0.2722 0.6058 0.2209 0.5867 0.217 0.6768 0.3762 0.9813 0.7341 0.0561 0.7279 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 0.9201 0.4253 0.0604 0.6936 0.4737 0.0297 0.4581 0.1327 0.7446 0.8613 0.748 9e-04 0.0072 0.0018 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 0.1553 0.261 0.8584 0.0527 0.656 0.4814 0.7755 0.6138 0.6811 0.027 0.1084 2e-04 3e-04 0.0021 0.045 NA - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 0.0397 0.8013 0.0029 0.1244 0.4578 0.0167 0.1822 0.0163 0.4812 0.6796 0.779 0.5133 0.795 0.5658 0.3884 0.2287 NA - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 0.0314 0.3359 4e-04 0.0137 0.9463 0.1015 0.0593 0.0123 0.3691 0.3321 0.5636 0.3281 0.9859 0.4321 0.1195 0.3113 0 NA - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 0.2555 0.3516 0.287 0.1654 0.4309 1e-04 0.6444 0.0472 0.7016 0.3068 0.1607 0.2316 0.2699 0.7088 0.1812 0.0831 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 0.4669 0.1516 0.245 0.2494 0.788 0.0023 0.9635 0.5197 0.7402 0.4833 0.2147 0.433 0.6062 0.7358 0.8165 0.317 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 0.0075 0.6773 0.0068 0.328 0.1902 5e-04 0.4582 0.002 0.6685 0.8266 0.6171 0.647 0.1716 0.7679 0.4027 0.0486 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 0.0152 0.2449 0.0358 0.5474 0.0739 9e-04 0.7469 7e-04 0.8765 0.336 0.5551 0.9803 0.3753 0.634 0.5039 0.0979 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 0.0326 0.7255 0.0292 0.4086 0.973 0.0187 0.4037 0.0235 0.2499 0.1118 0.3978 0.3085 0.0719 0.2283 0.6545 0.0231 0 0 0 0 0 0 NA - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 0.0562 0.7939 0.0045 0.4322 0.3373 0.0109 0.4616 0.0561 0.7027 0.3729 0.1339 0.712 0.2877 0.6304 0.2953 0.3276 0 0 1e-04 0 0 0 2e-04 NA - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 0.0091 0.5223 0.9496 0.9858 2e-04 0.2461 0.0842 0.0021 0.2017 0.4565 0.1492 0.1681 0.001 0.1029 0.0487 0.0084 0.8291 0.7481 0.3984 0.1711 0.1908 0.2599 0.2158 0.2738 NA - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 0.0261 0.8619 0.1954 0.968 0.7133 0.6043 0.8753 0.4552 0.0597 0.8531 0.3888 0.7425 0.6349 0.169 0.6752 0.8614 0.4984 0.2025 0.496 0.8496 0.1682 0.1568 0.9887 0.0357 0.8124 NA - - - - - - - - - - - - - - - - - -
Score_Digit Span 0.5553 0.6151 0.6406 0.4952 0.3349 0.9245 0.2134 0.9815 0.1084 7e-04 0.3431 0.1818 0.2207 0.3115 0.4676 0.4138 0.6811 0.9277 0.1762 0.6362 0.2817 0.6404 0.0632 0.2853 0.2702 0.2351 NA - - - - - - - - - - - - - - - - -
Score_Feature Match 0.3053 0.893 0.3653 0.1295 0.7894 0.8347 0.0165 0.2674 0.4696 0.0043 0.2433 0.3154 0.3721 0.0509 0.5896 0.0285 0.4593 0.4201 0.4237 0.0612 0.2417 0.8739 0.0273 0.3359 0.007 0.2035 0.0032 NA - - - - - - - - - - - - - - - -
Score_Polygons 0.2783 0.7182 0.549 0.8875 0.7227 0.5373 0.7216 0.9555 0.7506 0.2069 0.1065 0.5438 0.2463 0.235 0.5542 0.4209 0.1871 0.1999 0.14 0.2328 0.0775 0.3166 0.0696 0.0132 0.2176 0.3462 0.0368 6e-04 NA - - - - - - - - - - - - - - -
Score_Paired Associates 0.2112 0.6726 0.9021 0.1821 0.6329 0.2057 0.5962 0.4252 0.7642 0.918 0.6459 0.8558 0.1322 0.2843 0.8804 0.4223 0.7821 0.5711 0.8237 0.8192 0.8637 0.5215 0.3439 0.8655 0.0992 0.6746 0.0317 0.2769 0.0398 NA - - - - - - - - - - - - - -
Score_Token Search 0.8425 0.1658 0.2272 0.1562 0.2624 0.6732 0.2105 0.8046 0.2491 0.1841 0.461 0.0224 0.0776 0.0581 0.8949 0.3304 0.7275 0.7131 0.5324 0.5325 0.6455 0.3445 0.8746 0.6806 0.0029 0.4403 0.0544 0.0865 0.0069 0.1042 NA - - - - - - - - - - - - -
Score_Spatial Planning 0.2886 0.2752 0.5567 0.3214 0.3497 0.0559 0.1287 0.3204 0.5797 0.3882 0.9139 0.2501 0.5566 0.3534 0.1921 0.9936 0.9089 0.3534 0.1693 0.7738 0.1022 0.2893 0.0483 0.3496 0.0576 0.7624 0.7019 0.3045 0.0618 0.3677 0.3302 NA - - - - - - - - - - - -
Score_Rotations 0.2992 0.8857 0.6935 0.2603 0.3161 0.5548 0.4476 0.4157 0.1137 0.0854 0.0584 0.8417 0.0151 0.0645 0.0639 0.1215 0.5211 0.6613 0.4444 0.5582 0.4453 0.5904 0.6221 0.3755 0.0237 0.0131 0.431 0.0068 0.098 0.8174 0.1103 0.1297 NA - - - - - - - - - - -
Score_Spatial Span 0.0448 0.6411 0.4925 0.4064 0.0642 0.5794 0.5764 0.4975 0.5799 0.2598 0.364 0.0918 0.0161 0.2351 0.0248 0.7806 0.189 0.2111 0.3888 0.9937 0.4466 0.3889 0.1426 0.5813 0.0759 0.5594 0.8027 0.723 0.17 0.616 6e-04 0.0367 0.1391 NA - - - - - - - - - -
Score_Grammatical Reasoning 0.371 0.8054 0.5968 0.9038 0.2434 0.2093 0.8866 0.7805 0.9552 0.3595 0.6649 0.2562 0.6723 0.6943 0.9075 0.631 0.7428 0.7917 0.1285 0.038 0.4071 0.2897 0.6583 0.9154 0.0059 0.7138 0.3711 0.0172 0.0916 0.0223 0.1424 0.0401 0.2772 0.0032 NA - - - - - - - - -
Score_Monkey Ladder 0.4938 0.0273 0.113 0.4238 0.2655 0.8982 0.7802 0.6117 0.1705 0.6062 0.2657 0.6361 0.0805 0.4824 0.3084 0.3704 0.0348 0.0151 0.0043 0.3795 0.0773 0.0549 0.2016 0.4403 0.1119 0.1784 0.6304 0.526 0.9294 0.0283 0.0033 0.0797 0.4882 0.0024 0.0193 NA - - - - - - - -
CBS_overall 0.5553 0.6151 0.6406 0.4952 0.3349 0.9245 0.2134 0.9815 0.1084 7e-04 0.3431 0.1818 0.2207 0.3115 0.4676 0.4138 0.6811 0.9277 0.1762 0.6362 0.2817 0.6404 0.0632 0.2853 0.2702 0.2351 0 0.0032 0.0368 0.0317 0.0544 0.7019 0.431 0.8027 0.3711 0.6304 NA - - - - - - -
CBS_STM 0.4938 0.0273 0.113 0.4238 0.2655 0.8982 0.7802 0.6117 0.1705 0.6062 0.2657 0.6361 0.0805 0.4824 0.3084 0.3704 0.0348 0.0151 0.0043 0.3795 0.0773 0.0549 0.2016 0.4403 0.1119 0.1784 0.6304 0.526 0.9294 0.0283 0.0033 0.0797 0.4882 0.0024 0.0193 0 0.6304 NA - - - - - -
CBS_reason 0.3053 0.893 0.3653 0.1295 0.7894 0.8347 0.0165 0.2674 0.4696 0.0043 0.2433 0.3154 0.3721 0.0509 0.5896 0.0285 0.4593 0.4201 0.4237 0.0612 0.2417 0.8739 0.0273 0.3359 0.007 0.2035 0.0032 0 6e-04 0.2769 0.0865 0.3045 0.0068 0.723 0.0172 0.526 0.0032 0.526 NA - - - - -
CBS_verbal 0.371 0.8054 0.5968 0.9038 0.2434 0.2093 0.8866 0.7805 0.9552 0.3595 0.6649 0.2562 0.6723 0.6943 0.9075 0.631 0.7428 0.7917 0.1285 0.038 0.4071 0.2897 0.6583 0.9154 0.0059 0.7138 0.3711 0.0172 0.0916 0.0223 0.1424 0.0401 0.2772 0.0032 0 0.0193 0.3711 0.0193 0.0172 NA - - - -
CBS_ts_memory 0.4938 0.0273 0.113 0.4238 0.2655 0.8982 0.7802 0.6117 0.1705 0.6062 0.2657 0.6361 0.0805 0.4824 0.3084 0.3704 0.0348 0.0151 0.0043 0.3795 0.0773 0.0549 0.2016 0.4403 0.1119 0.1784 0.6304 0.526 0.9294 0.0283 0.0033 0.0797 0.4882 0.0024 0.0193 0 0.6304 0 0.526 0.0193 NA - - -
CBS_ts_reason 0.2783 0.7182 0.549 0.8875 0.7227 0.5373 0.7216 0.9555 0.7506 0.2069 0.1065 0.5438 0.2463 0.235 0.5542 0.4209 0.1871 0.1999 0.14 0.2328 0.0775 0.3166 0.0696 0.0132 0.2176 0.3462 0.0368 6e-04 0 0.0398 0.0069 0.0618 0.098 0.17 0.0916 0.9294 0.0368 0.9294 6e-04 0.0916 0.9294 NA - -
CBS_ts_verbalab 0.371 0.8054 0.5968 0.9038 0.2434 0.2093 0.8866 0.7805 0.9552 0.3595 0.6649 0.2562 0.6723 0.6943 0.9075 0.631 0.7428 0.7917 0.1285 0.038 0.4071 0.2897 0.6583 0.9154 0.0059 0.7138 0.3711 0.0172 0.0916 0.0223 0.1424 0.0401 0.2772 0.0032 0 0.0193 0.3711 0.0193 0.0172 0 0.0193 0.0916 NA -
CBS_ts_con 0.3053 0.893 0.3653 0.1295 0.7894 0.8347 0.0165 0.2674 0.4696 0.0043 0.2433 0.3154 0.3721 0.0509 0.5896 0.0285 0.4593 0.4201 0.4237 0.0612 0.2417 0.8739 0.0273 0.3359 0.007 0.2035 0.0032 0 6e-04 0.2769 0.0865 0.3045 0.0068 0.723 0.0172 0.526 0.0032 0.526 0 0.0172 0.526 6e-04 0.0172 NA

kable(as.data.frame(format(main_corr_out2$n, scientific = FALSE)), caption = "Pilot Study - Correlation: n values") %>%
  kable_styling(bootstrap_options = c("hover", "striped"), full_width = F) %>% 
  kable_classic()
Pilot Study - Correlation: n values
age age_first_phone dist_daily dist_study pow_not_using pow_notifications_on pow_vibrate pow_study pow_exam pow_lec pow_sleep com_gen com_unattended com_leave_with_other com_locked com_room_task NMPQ_sum MPIQ_sum MPIQ_SI_sum MPIQ_VFO_sum SAD_sum SAD_dep_sum SAD_ea_sum SAD_dist_sum Score_Double Trouble Score_Odd One Out Score_Digit Span Score_Feature Match Score_Polygons Score_Paired Associates Score_Token Search Score_Spatial Planning Score_Rotations Score_Spatial Span Score_Grammatical Reasoning Score_Monkey Ladder CBS_overall CBS_STM CBS_reason CBS_verbal CBS_ts_memory CBS_ts_reason CBS_ts_verbalab CBS_ts_con
age 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
age_first_phone 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_daily 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dist_study 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_not_using 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_notifications_on 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_vibrate 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_study 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_exam 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_lec 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pow_sleep 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_gen 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_unattended 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_leave_with_other 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_locked 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com_room_task 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NMPQ_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_SI_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - - -
MPIQ_VFO_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - - -
SAD_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - - -
SAD_dep_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - - -
SAD_ea_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - - -
SAD_dist_sum 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - - -
Score_Double Trouble 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - - -
Score_Odd One Out 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - - -
Score_Digit Span 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - - -
Score_Feature Match 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - - -
Score_Polygons 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - - -
Score_Paired Associates 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - - -
Score_Token Search 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - - -
Score_Spatial Planning 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - - -
Score_Rotations 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - - -
Score_Spatial Span 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - - -
Score_Grammatical Reasoning 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - - -
Score_Monkey Ladder 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - - -
CBS_overall 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - - -
CBS_STM 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - - -
CBS_reason 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - - -
CBS_verbal 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - - -
CBS_ts_memory 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - - -
CBS_ts_reason 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 - -
CBS_ts_verbalab 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 -
CBS_ts_con 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81

corrplot(main_corr_out$r, method = "circle", col = (colorRampPalette(c("purple", "grey", "blue"))(50)),  
         type = "upper",  
         # addCoef.col = "black", # Add coefficient of correlation
         tl.col = "darkblue", tl.srt = 90, tl.cex = .8, #Text label color and rotation
         # Combine with significance level
         p.mat = main_corr_out$P, sig.level = 0.05, 
         addgrid.col = "white",
         insig = "blank",# insig = "pch", pch = 10, pch.col = "red", pch.cex = .1, # add this instead of insig above to denot insig p values with red dot
         # hide correlation coefficient on the principal diagonal
         diag = FALSE, 
         win.asp = 1
         )

ANOVAS

one-way ANOVA (IV: smartphone location, desk, pocket/bag, outside; DV: CBS performance).

  • CBS Performance is:
    • CBS_overall = composite score of all 12 CBS tasks
    • Data-driven factors:
      • CBS_STM = Short Term Memory = composite score for 4 CBS tasks: Spatial Span (SS), Monkey Ladder (ML), Paired Associates (PA), Token Search (TS)
      • CBS_reason = Short Term Memory = composite score for 5 CBS tasks: Odd One Out (OOO), Rotations (R), Feature Match (FM), Spatial Tree/Planning (SP), Polygons (P)
      • CBS_verbal = Short Term Memory = composite score for 3 CBS tasks: Grammatical Reasoning (GR), Double Trouble (DT), Digit Span (DS)

ASSUMPTIONS – for each…

The ANOVA made three assumptions: independent random sampling (met during testing), normality (tested by visualizing the residuals, applying a Shapiro-Wilk test to the residuals, and observing the Skewness and Kurtosis of the data), and homogeneity of variance (levenes). All assumptions were met!

Get the data for each analysis


# get the required data from all data: participant, condition, score
## OVERALL
anova_overall_data <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_overall)

## STM
anova_STM_data <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_STM)

## REASON
anova_reason_data <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_reason)

## VERBAL
anova_verbal_data <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_verbal)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_overall <- ezANOVA(
  data = anova_overall_data
  , dv = .(CBS_overall)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )

## STM
anova_STM <- ezANOVA(
  data = anova_STM_data
  , dv = .(CBS_STM)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )

## REASON
anova_reason <- ezANOVA(
  data = anova_reason_data
  , dv = .(CBS_reason)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )

## VERBAL
anova_verbal <- ezANOVA(
  data = anova_verbal_data
  , dv = .(CBS_verbal)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )

# calculate & extract the residuals from the ANOVAs -- for each
anova_overall_res <- data.frame("residuals" = anova_overall$aov$residuals)
anova_STM_res <- data.frame("residuals" = anova_STM$aov$residuals)
anova_reason_res <- data.frame("residuals" = anova_reason$aov$residuals)
anova_verbal_res <- data.frame("residuals" = anova_verbal$aov$residuals)

Normality

Check qqplots for each…

grid.arrange(ggqqplot(anova_overall_res$residuals, ylab = "OVERALL", shape = 1),
             ggqqplot(anova_STM_res$residuals, ylab = "STM", shape = 1),
             ggqqplot(anova_reason_res$residuals, ylab = "REASONING", shape = 1),
             ggqqplot(anova_verbal_res$residuals, ylab = "VERBAL", shape = 1),
             nrow = 2,
             top = text_grob("Q-Q Plots For All ANOVAs",
                             face = "bold"),
             bottom = text_grob("Normality is met for plots were data falls along or close to the line. * S-W p < .05",
                                face = "italic",
                                x = 0.05,
                                hjust = 0)
             )

Check hist of residuals…

grid.arrange(qplot(anova_overall_res$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic(),
             qplot(anova_STM_res$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic(),
             qplot(anova_reason_res$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic(),
             qplot(anova_verbal_res$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic(),
             nrow = 2,
             top = text_grob("Histogram of Residulas For All ANOVAs",
                             face = "bold"),
             bottom = text_grob("Normality is met for plots were data falls along or close to a normal curve. * S-W p < .05",
                                face = "italic",
                                x = 0.05,
                                hjust = 0)
             )

Show the results of a Shapiro-Wilk test of normality for each…

shapiro_all <- rbind(c(shapiro.test(anova_overall_res$residuals)$statistic, shapiro.test(anova_overall_res$residuals)$p.value),
                     c(shapiro.test(anova_STM_res$residuals)$statistic, shapiro.test(anova_STM_res$residuals)$p.value),
                     c(shapiro.test(anova_reason_res$residuals)$statistic, shapiro.test(anova_reason_res$residuals)$p.value),
                     c(shapiro.test(anova_verbal_res$residuals)$statistic, shapiro.test(anova_verbal_res$residuals)$p.value)
                     )
colnames(shapiro_all) <- c("W", "p")
rownames(shapiro_all) <- c("OVERALL", "STM", "REASONING", "VERBAL")

kable(shapiro_all, caption = "Results of shapiro-wilk test of normality for all ANOVAs.", row.names = TRUE, align = 'c', digits = 4) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Results of shapiro-wilk test of normality for all ANOVAs.
W p
OVERALL 0.9749 0.0002
STM 0.9763 0.0004
REASONING 0.9883 0.0403
VERBAL 0.9954 0.6584
NA

Review skew & kurtosis for each…

  • range wanted: Skew = \(\pm 2.0\) & Kurtosis = \(\pm 9.0\) (Schmider, Ziegler, Danay, Beyer, & Bühner, 2010)
sk_all <- rbind(c(psych::describe(anova_overall_data)$skew[3], psych::describe(anova_overall_data)$kurtosis[3]), 
                c(psych::describe(anova_STM_data)$skew[3], psych::describe(anova_STM_data)$kurtosis[3]), 
                c(psych::describe(anova_reason_data)$skew[3], psych::describe(anova_reason_data)$kurtosis[3]), 
                c(psych::describe(anova_verbal_data)$skew[3], psych::describe(anova_verbal_data)$kurtosis[3])
                )
colnames(sk_all) <- c("skew", "kutosis")
rownames(sk_all) <- c("OVERALL", "STM", "REASONING", "VERBAL")

kable(sk_all, caption = "Skew and Kurtosis for all ANOVAs.", row.names = TRUE, align = 'c', digits = 4) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Skew and Kurtosis for all ANOVAs.
skew kutosis
OVERALL 0.5042 0.4183
STM -0.3330 0.5888
REASONING -0.0218 -0.6030
VERBAL -0.1141 0.2550

Homogeneity of Variance

Check levenes for each ANOVA…


levenes_all <- rbind(unlist(leveneTest(data = anova_overall_data, CBS_overall ~ condition, center = mean)), 
                     unlist(leveneTest(data = anova_STM_data, CBS_STM ~ condition, center = mean)), 
                     unlist(leveneTest(data = anova_reason_data, CBS_reason ~ condition, center = mean)), 
                     unlist(leveneTest(data = anova_verbal_data, CBS_verbal ~ condition, center = mean))
                     )
colnames(levenes_all) <- c("DF1", "DF2", "F", "F2", "p", "p<.05")
rownames(levenes_all) <- c("OVERALL", "STM", "REASONING", "VERBAL")


kable(levenes_all[,c(1:3, 5)], caption = "Levenes test for all ANOVAs.", row.names = TRUE, align = 'c', digits = 4) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>%
  kable_classic()
Levenes test for all ANOVAs.
DF1 DF2 F p
OVERALL 2 247 0.0647 0.9374
STM 2 247 0.5010 0.6066
REASONING 2 247 3.2238 0.0415
VERBAL 2 247 1.1780 0.3096
NA

Results

Show anova tables for each ANOVA…

# show ANOVA results in kable table 
kable(anova_overall$ANOVA, caption = "OVERALL - one-way ANOVA", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
OVERALL - one-way ANOVA
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0160 241.0954 0.0163 0.8986 0.0001
condition 2 246 7.2824 241.0954 3.7153 0.0257 * 0.0293

plot(anova_overall_data$condition, anova_overall_data$CBS_overall)


kable(anova_STM$ANOVA, caption = "STM - one-way ANOVA", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
STM - one-way ANOVA
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0085 244.2358 0.0085 0.9265 0.0000
condition 2 246 4.7483 244.2358 2.3913 0.0936 0.0191

plot(anova_STM_data$condition, anova_STM_data$CBS_STM)


kable(anova_reason$ANOVA, caption = "REASONING - one-way ANOVA", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
REASONING - one-way ANOVA
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0040 247.4658 0.0039 0.9500 0.0000
condition 2 246 1.1277 247.4658 0.5605 0.5716 0.0045

plot(anova_reason_data$condition, anova_reason_data$CBS_reason)


kable(anova_verbal$ANOVA, caption = "VERBAL - one-way ANOVA", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
VERBAL - one-way ANOVA
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0059 244.5894 0.0059 0.9388 0.0000
condition 2 246 4.3559 244.5894 2.1905 0.1140 0.0175

plot(anova_verbal_data$condition, anova_verbal_data$CBS_verbal)

Explore other DVs…

From the task selection guide’s categories

TS - MEMORY

## FOR ts_memory
anova_data_ts_memory <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_ts_memory) %>% 
  rename(score = CBS_ts_memory)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_ts_memory <- ezANOVA(
  data = anova_data_ts_memory
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_ts_memory$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_ts_memory$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_ts_memory$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9763
0.0004

kable(unlist(leveneTest(data = anova_data_ts_memory, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.5010
Pr(>F)1 0.6066

kable(anova_ts_memory$ANOVA, caption = "ts_memory - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_memory - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0085 244.2358 0.0085 0.9265 0.0000
condition 2 246 4.7483 244.2358 2.3913 0.0936 0.0191

plot(anova_data_ts_memory$condition, anova_data_ts_memory$score)

TS - REASON

## FOR ts_reasoning
anova_data_ts_reason <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_ts_reason) %>% 
  rename(score = CBS_ts_reason)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_ts_reason <- ezANOVA(
  data = anova_data_ts_reason
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_ts_reason$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_ts_reason$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_ts_reason$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9885
0.0438

kable(unlist(leveneTest(data = anova_data_ts_reason, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.1919
Pr(>F)1 0.8255

kable(anova_ts_reason$ANOVA, caption = "ts_reason - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_reason - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0010 247.0065 0.001 0.9751 0.0000
condition 2 246 1.2892 247.0065 0.642 0.5271 0.0052

plot(anova_data_ts_reason$condition, anova_data_ts_reason$score)

TS - VERBAL ABILITY

## FOR ts_verbalab
anova_data_ts_verbalab <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_ts_verbalab) %>% 
  rename(score = CBS_ts_verbalab)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_ts_verbalab <- ezANOVA(
  data = anova_data_ts_verbalab
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_ts_verbalab$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_ts_verbalab$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_ts_verbalab$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9954
0.6584

kable(unlist(leveneTest(data = anova_data_ts_verbalab, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 1.1780
Pr(>F)1 0.3096

kable(anova_ts_verbalab$ANOVA, caption = "ts_verbalab - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_verbalab - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0059 244.5894 0.0059 0.9388 0.0000
condition 2 246 4.3559 244.5894 2.1905 0.1140 0.0175

plot(anova_data_ts_verbalab$condition, anova_data_ts_verbalab$score)

TS - CONCENTRATION

## FOR ts_con
anova_data_ts_con <- 
  main_all_data_final %>% 
  select(participant, condition, CBS_ts_con) %>% 
  rename(score = CBS_ts_con)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_ts_con <- ezANOVA(
  data = anova_data_ts_con
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_ts_con$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_ts_con$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_ts_con$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9883
0.0403

kable(unlist(leveneTest(data = anova_data_ts_con, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 3.2238
Pr(>F)1 0.0415

kable(anova_ts_con$ANOVA, caption = "ts_con - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_con - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 0.0040 247.4658 0.0039 0.9500 0.0000
condition 2 246 1.1277 247.4658 0.5605 0.5716 0.0045

anova_ts_con_white <- ezANOVA(
  data = anova_data_ts_con
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  , white.adjust = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
kable(anova_ts_con_white$ANOVA, caption = "ts_con - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_con - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd F p p<.05
(Intercept) 1 246 0.0039 0.9500
condition 2 246 0.6481 0.5239

plot(anova_data_ts_con$condition, anova_data_ts_con$score)

All indv tasks… (not z-scored)

Digit Span (DS)

## FOR DS
anova_data_DS <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Digit Span`) %>% 
  rename(score = `Score_Digit Span`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_DS <- ezANOVA(
  data = anova_data_DS
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_DS$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_DS$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_DS$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9749
0.0002

kable(unlist(leveneTest(data = anova_data_DS, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.0647
Pr(>F)1 0.9374

kable(anova_DS$ANOVA, caption = "DS - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
DS - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 11629.8583 512.714 5580.0024 0.0000 * 0.9578
condition 2 246 15.4868 512.714 3.7153 0.0257 * 0.0293

plot(anova_data_DS$condition, anova_data_DS$score)

Double Trouble (DT)

## FOR DT
anova_data_DT <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Double Trouble`) %>% 
  rename(score = `Score_Double Trouble`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_DT <- ezANOVA(
  data = anova_data_DT
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_DT$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_DT$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .7) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_DT$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9564
0.0000

kable(unlist(leveneTest(data = anova_data_DT, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.7578
Pr(>F)1 0.4698

kable(anova_DT$ANOVA, caption = "DT - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
DT - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 155129.774 53078.13 718.9764 0.0000 * 0.7451
condition 2 246 64.544 53078.13 0.1496 0.8612 0.0012

plot(anova_data_DT$condition, anova_data_DT$score)

Feature Match (FM)

## FOR FM
anova_data_FM <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Feature Match`) %>% 
  rename(score = `Score_Feature Match`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_FM <- ezANOVA(
  data = anova_data_FM
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_FM$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_FM$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 5) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_FM$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9883
0.0403

kable(unlist(leveneTest(data = anova_data_FM, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 3.2238
Pr(>F)1 0.0415

kable(anova_FM$ANOVA, caption = "FM - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
FM - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 3964467.2643 189260.9 5152.9882 0.0000 * 0.9544
condition 2 246 862.4803 189260.9 0.5605 0.5716 0.0045

anova_FM_white <- ezANOVA(
  data = anova_data_FM
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  , white.adjust = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
kable(anova_FM_white$ANOVA, caption = "ts_con - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ts_con - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd F p p<.05
(Intercept) 1 246 5154.4846 0.0000 *
condition 2 246 0.6481 0.5239

plot(anova_data_FM$condition, anova_data_FM$score)

Grammatical Reasoning (GR)

## FOR GR
anova_data_GR <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Grammatical Reasoning`) %>% 
  rename(score = `Score_Grammatical Reasoning`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_GR <- ezANOVA(
  data = anova_data_GR
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_GR$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_GR$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 1) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_GR$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9954
0.6584

kable(unlist(leveneTest(data = anova_data_GR, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 1.1780
Pr(>F)1 0.3096

kable(anova_GR$ANOVA, caption = "GR - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
GR - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 78964.778 5960.737 3258.8817 0.000 * 0.9298
condition 2 246 106.155 5960.737 2.1905 0.114 0.0175

plot(anova_data_GR$condition, anova_data_GR$score)

Monkey Ladder (ML)

## FOR ML
anova_data_ML <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Monkey Ladder`) %>% 
  rename(score = `Score_Monkey Ladder`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_ML <- ezANOVA(
  data = anova_data_ML
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_ML$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_ML$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .3) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_ML$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9763
0.0004

kable(unlist(leveneTest(data = anova_data_ML, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.5010
Pr(>F)1 0.6066

kable(anova_ML$ANOVA, caption = "ML - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
ML - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 15232.3401 416.1582 9004.1617 0.0000 * 0.9734
condition 2 246 8.0908 416.1582 2.3913 0.0936 0.0191

plot(anova_data_ML$condition, anova_data_ML$score)

Odd One Out (OOO)

## FOR OOO
anova_data_OOO <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Odd One Out`) %>% 
  rename(score = `Score_Odd One Out`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_OOO <- ezANOVA(
  data = anova_data_OOO
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_OOO$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_OOO$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 1) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_OOO$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9803
0.0016

kable(unlist(leveneTest(data = anova_data_OOO, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.5838
Pr(>F)1 0.5586

kable(anova_OOO$ANOVA, caption = "OOO - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
OOO - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 24995.4386 2828.393 2173.9827 0.0000 * 0.8983
condition 2 246 3.3498 2828.393 0.1457 0.8645 0.0012

plot(anova_data_OOO$condition, anova_data_OOO$score)

Paired Associates (PA)

## FOR PA
anova_data_PA <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Paired Associates`) %>% 
  rename(score = `Score_Paired Associates`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_PA <- ezANOVA(
  data = anova_data_PA
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_PA$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_PA$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .8) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_PA$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9473
0.0000

kable(unlist(leveneTest(data = anova_data_PA, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.9418
Pr(>F)1 0.3913

kable(anova_PA$ANOVA, caption = "PA - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
PA - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 5992.0658 281.9438 5228.1632 0.0000 * 0.9551
condition 2 246 0.9317 281.9438 0.4065 0.6664 0.0033

plot(anova_data_PA$condition, anova_data_PA$score)

Polygons (P)

## FOR P
anova_data_P <- 
  main_all_data_final %>% 
  select(participant, condition, Score_Polygons) %>% 
  rename(score = Score_Polygons)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_P <- ezANOVA(
  data = anova_data_P
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_P$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_P$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 1) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_P$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9885
0.0438

kable(unlist(leveneTest(data = anova_data_P, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.1919
Pr(>F)1 0.8255

kable(anova_P$ANOVA, caption = "P - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
P - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 499476.3105 166969.9 735.8881 0.0000 * 0.7495
condition 2 246 871.4351 166969.9 0.6420 0.5271 0.0052

plot(anova_data_P$condition, anova_data_P$score)

Rotations (R)

## FOR R
anova_data_R <- 
  main_all_data_final %>% 
  select(participant, condition, Score_Rotations) %>% 
  rename(score = Score_Rotations)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_R <- ezANOVA(
  data = anova_data_R
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_R$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_R$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 5) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_R$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9931
0.3080

kable(unlist(leveneTest(data = anova_data_R, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 1.9981
Pr(>F)1 0.1378

kable(anova_R$ANOVA, caption = "R - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
R - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 1738857.5568 309666.9 1381.3518 0.0000 * 0.8488
condition 2 246 68.7313 309666.9 0.0273 0.9731 0.0002

plot(anova_data_R$condition, anova_data_R$score)

Spatial Planning (SP)

## FOR SP
anova_data_SP <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Spatial Planning`) %>% 
  rename(score = `Score_Spatial Planning`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_SP <- ezANOVA(
  data = anova_data_SP
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_SP$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_SP$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = 2) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_SP$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9919
0.1900

kable(unlist(leveneTest(data = anova_data_SP, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.6486
Pr(>F)1 0.5237

kable(anova_SP$ANOVA, caption = "SP - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SP - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 95159.6367 13676.53 1711.6379 0.000 * 0.8743
condition 2 246 18.8739 13676.53 0.1697 0.844 0.0014

plot(anova_data_SP$condition, anova_data_SP$score)

Spatial Span (SS)

## FOR SS
anova_data_SS <- 
  main_all_data_final %>% 
  select(participant, condition, 'Score_Spatial Span') %>% 
  rename(score = 'Score_Spatial Span')

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_SS <- ezANOVA(
  data = anova_data_SS
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_SS$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_SS$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .5) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_SS$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9483
0.0000

kable(unlist(leveneTest(data = anova_data_SS, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.3438
Pr(>F)1 0.7094

kable(anova_SS$ANOVA, caption = "SS - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SS - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 8924.0548 258.7306 8484.956 0.0000 * 0.9718
condition 2 246 2.2654 258.7306 1.077 0.3422 0.0087

plot(anova_data_SS$condition, anova_data_SS$score)

Token Search (TS)

## FOR TS
anova_data_TS <- 
  main_all_data_final %>% 
  select(participant, condition, `Score_Token Search`) %>% 
  rename(score = `Score_Token Search`)

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_TS <- ezANOVA(
  data = anova_data_TS
  , dv = .(score)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_TS$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_TS$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .7) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_TS$aov$residuals))[1:2]), caption = "SHAPIRO", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9870
0.0239

kable(unlist(leveneTest(data = anova_data_TS, score ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000
Df2 247.0000
F value1 0.8971
Pr(>F)1 0.4091

kable(anova_TS$ANOVA, caption = "TS - one-way ANOVA on Ospan Absolute Score", digits = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  kable_styling(bootstrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
TS - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 246 15979.0030 744.5366 5279.5721 0.0000 * 0.9555
condition 2 246 5.3188 744.5366 0.8787 0.4166 0.0071

plot(anova_data_TS$condition, anova_data_TS$score)

Check without outliers from CBS_overall
# install the package
# install.packages("ggstatsplot")

# Load the package
# library(ggstatsplot)

# Create a boxplot of the dataset, outliers are shown as two distinct points
anova_overall_outs <- boxplot(data = select(anova_overall_data, -participant), CBS_overall~condition, plot = FALSE)$out # this was saving as odd file...

#Create a boxplot that labels the outliers
ggbetweenstats(select(anova_overall_data, -participant),
condition, CBS_overall, outlier.tagging = TRUE, ggtheme = ggplot2::theme_classic(), , type = "parametric", pairwise.comparisons = TRUE, pairwise.display = "all", p.adjust.method = "holm", effsize.type = "eta", results.subtitle = T, title = "ANOVA - CBS Overall & SMartphone Location - WITH Outliers ", var.equal = T, centrality.type = "parametric", centrality.point.args = list(size = 2), outlier.label.args = list(size = 2))



# xoutliers_data <- anova_overall_data[which(anova_overall_data$CBS_overall %in% anova_overall_outs),]

new_desk <- subset(anova_overall_data %>% filter(condition == "desk"), !(CBS_overall %in% anova_overall_outs))
# new_out <- subset(anova_overall_data %>% filter(condition == "outside"), !(CBS_overall %in% anova_overall_outs[10:11]))

new_data <- anova_overall_data %>% filter(condition != "desk") %>% 
  bind_rows(new_desk)

ggbetweenstats(new_data,
condition, CBS_overall, outlier.tagging = TRUE, ggtheme = ggplot2::theme_classic(), , type = "parametric", pairwise.comparisons = TRUE, pairwise.display = "all", p.adjust.method = "holm", effsize.type = "eta", results.subtitle = T, title = "ANOVA - CBS Overall & SMartphone Location - Outliers Removed", var.equal = T, centrality.type = "parametric", centrality.point.args = list(size = 2), outlier.label.args = list(size = 2))


ggbetweenstats(anova_data_DS,
condition, score, outlier.tagging = TRUE, ggtheme = ggplot2::theme_classic(), , type = "parametric", pairwise.comparisons = TRUE, pairwise.display = "all", p.adjust.method = "holm", effsize.type = "eta", results.subtitle = T, title = "ANOVA - CBS Overall & SMartphone Location - Outliers Removed", var.equal = T, centrality.type = "parametric", centrality.point.args = list(size = 2), outlier.label.args = list(size = 2))


# boxplot(data = select(new_data, -participant), CBS_overall~condition)
## FOR NEW DATA

# run between-subjects ANOVA (IV: Smartphone Location; DV: CBS performance)
## OVERALL
anova_new <- ezANOVA(
  data = new_data
  , dv = .(CBS_overall)
  , wid = .(participant)
  , between = .(condition)
  , type = 3 # unequal sample sizes
  , detailed = TRUE
  , return_aov = TRUE
  )
Warning: Converting "participant" to factor for ANOVA.
Warning: Data is unbalanced (unequal N per group). Make sure you specified a well-considered value for the type argument to ezANOVA().
Warning: Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
Coefficient covariances computed by hccm()
ggqqplot(anova_new$aov$residuals, ylab = "CBS", shape = 1)


qplot(anova_new$aov$residuals, main = "Histogram of Ospan Residuals", binwidth = .7) + theme_classic()


kable(as.numeric(unlist(shapiro.test(anova_new$aov$residuals))[1:2]), caption = "SHAPIRO", diginew = 4, align = 'c') %>%
  # kable_styling(boonewtrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
SHAPIRO
x
0.9731849
0.0001600

kable(unlist(leveneTest(data = new_data, CBS_overall ~ condition, center = mean))[c(1:3, 5)], caption = "LEVENES", diginew = 4, align = 'c') %>%
  # row_spec(0, bold = T) %>% 
  # kable_styling(boonewtrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
LEVENES
x
Df1 2.0000000
Df2 239.0000000
F value1 2.4605350
Pr(>F)1 0.0875499

kable(anova_new$ANOVA, caption = "new - one-way ANOVA on Ospan Absolute Score", diginew = 4, align = 'c') %>%
  row_spec(0, bold = T) %>% 
  # kable_styling(boonewtrap_options = "striped", "hover", full_width = F) %>% 
  kable_classic()
new - one-way ANOVA on Ospan Absolute Score
Effect DFn DFd SSn SSd F p p<.05 ges
(Intercept) 1 238 0.565089 207.174 0.6491703 0.4212137 0.0027202
condition 2 238 11.876875 207.174 6.8220355 0.0013153 * 0.0542197

plot(new_data$condition, new_data$CBS_overall)

Attempting a bar fig, not great, like the violins more…

# plot bar graph - GOOD
# anova_overall_bar <- 
  ggplot(x_temp, aes(x = condition, y = CBS_overall), show.legend = FALSE) +
  # ggplot(ospan_bar_data, aes(x = location, y = score, fill = power), show.legend = FALSE) +
  geom_bar(stat = "summary", fun = mean, position = "dodge") + 
    # guides(shape = FALSE) + 
  # scale_fill_manual(values = c("cadetblue3", "deepskyblue4")) + 
  labs(title = "Performance on the OSpan Task",
       subtitle = "Average Absolute OSpan Score",
       x = "Smartphone Location", 
       y = "Score", 
       # fill = "Smartphone Power",
       caption = "Note: Score is the number of correct letters recalled based \n on if all letters in a given block were recalled correctly.") +
        # the "\n" here denote that you want a new line formed in the text
  scale_y_continuous(limits = c(-2, 2)) +
  #scale_colour_manual(values = cols) +
  # geom_point(stat = "identity", aes(color = CBS_overall), size = 1, 
  #            position = position_jitterdodge(jitter.width = .53), show.legend = FALSE) +
  scale_color_manual(values = c("deepskyblue4", "purple4")) + 
  geom_point(stat="summary", fun=mean, position = position_dodge(.9), size = 1.5, show.legend = FALSE) +
  geom_errorbar(data = anova_overall_data, stat = "summary", funmin = function(x) mean(x) - sd(x)/sqrt(length(x)), 
                funmax = function(x) mean(x) + sd(x)/sqrt(length(x)), size= .5, width= .25, position = position_dodge(.9)) +
  theme_classic() +
  theme(plot.title = element_text(color = "black", size = 14, face = "bold"), 
        plot.subtitle = element_text(color = "black", size = 13), 
        plot.caption = element_text(hjust = 0, size = 12, face = "italic"),
        text = element_text(size = 13))
Warning: Ignoring unknown parameters: funmin, funmax
Warning: Removed 15 rows containing non-finite values (stat_summary).
Warning: Removed 15 rows containing non-finite values (stat_summary).
Warning: Removed 15 rows containing non-finite values (stat_summary).
No summary function supplied, defaulting to `mean_se()`

OLD ANALYSES

T-Test for Double Trouble (b/w ‘Desk’ and ‘Ouside’ conditions)

  • Perform assumption tests…
    • Assumption 1: Are the two samples independents?
      • This assumption was met during testing.
    • Assumption 2: Are the data from each of the 2 groups follow a normal distribution?
      • see below.
    • Assumption 3. Do the two populations have the same variances?
# create data frame with DT, condition, and participant ONLY
  # using separate values formed in the questionnaire correlations
prelim_hon_DT_data = data.frame(prelim_hon_DT_participant, prelim_hon_DT_condition, prelim_hon_DT_score)
colnames(prelim_hon_DT_data) = c("Participant", "Condition", "Score")

# Assumtion 2: Are the data from each of the 2 groups follow a normal distribution?
# Define the model:
library(stats)
prelim_hon_DT_Mod1 = lm(prelim_hon_DT_data$Score ~ prelim_hon_DT_data$Condition) 

# Calculate residuals:

prelim_hon_DT_Res1 = resid(prelim_hon_DT_Mod1)

qqnorm(prelim_hon_DT_Res1, main = "Q-Q Plot of Double Trouble Score Residuals")
qqline(prelim_hon_DT_Res1)
  • The residuals appear to be slightly platykurtic.
qplot(prelim_hon_DT_Res1, main = "Histogram of Double Trouble Score Residuals", binwidth = 1)
  • The residuals appear to follow the shape of a normal distribution, though they seem to be slightly platykurtic.
prelim_hon_DT_Shap1 = shapiro.test(prelim_hon_DT_Res1)
prelim_hon_DT_Shap1
  • Based on an alpha level of .05, the assumption of normality is not met for either; W = 0.95, p = .002. As a result, rather than perform a t-test, we will use the non-parametric Wilcoxon-Mann-Whitney Test.

  • Compute the Wilcoxon-Mann-Whitney Test

library(coin)
prelim_hon_DT_data1 = data.frame(prelim_hon_DT_participant, as.factor(prelim_hon_DT_condition), prelim_hon_DT_score)
colnames(prelim_hon_DT_data1) = c("Participant", "Condition", "Score")

prelim_hon_DT_W1 = wilcox_test(data = prelim_hon_DT_data1, Score ~ Condition, distribution = "exact")
prelim_hon_DT_W1
  • Therefore, there was no significnat difference in DT scores between smartphone locations (i.e. desk and outside), Z = -0.33, p = .75.

  • Visualize the DT analysis in a bar chart

# create data frame with location conditions as characters rather than intergers 
main_WMW_plot = prelim_hon_DT_data1
main_WMW_plot[,2] = recode(main_WMW_plot$Condition, '1' = "On Desk", '3' = "Outside")

# plot bar graph - GOOD
ggplot(main_WMW_plot, aes(x = Condition, y = Score, fill = Condition), show.legend = FALSE) +
  geom_bar(stat = "summary", fun.y = "mean", position = "dodge", colour = "black") + 
  scale_fill_manual(values = c("cadetblue3", "deepskyblue4")) + 
  labs(x = "Smartphone Location", y = "Average Score") +
  scale_y_continuous(limits = c(min(main_WMW_plot$Score), max(main_WMW_plot$Score)), breaks = ) +
  ggtitle("Average Score on Double Trouble") +
  scale_colour_manual(values = cols) +
  geom_point(stat = "identity", aes(color = Condition), size = 1.75, 
             position = position_jitterdodge(jitter.width = .53), show.legend = FALSE) +
  scale_color_manual(values = c("deepskyblue4", "purple4")) + 
  geom_point(stat="summary", fun.y="mean", position = position_dodge(.9), size = 2, show.legend = FALSE) +
  geom_errorbar(data = main_WMW_plot, stat = "summary", fun.ymin = function(x) mean(x) - sd(x)/sqrt(length(x)), 
                fun.ymax = function(x) mean(x) + sd(x)/sqrt(length(x)), size= .5, width= .25, position = position_dodge(.9)) +
  theme_classic()
LS0tCnRpdGxlOiAiRG9lcyBTbWFydHBob25lIFByZXNlbmNlIEltcGFjdCBEaWZmZXJlbnQgQXNwZWN0cyBvZiBDb2duaXRpb24/ICIKYXV0aG9yOiAiQW5hIEMuIFJ1aXogUGFyZG8sIEouUC4gTWluZGEiCmRhdGU6ICdKdW5lIDcsIDIwMjEnCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19kZXB0aDogJzYnCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogeWVzCiAgICB0aGVtZTogbHVtZW4KICAgIGNvZGVfZm9sZGluZzogaGlkZQogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6ICc2JwogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAnNicKICAgIHRvY19mbG9hdDoKICAgICAgY29sbGFwc2VkOiB5ZXMKICAgIHRoZW1lOiBsdW1lbgogICAgY29kZV9mb2xkaW5nOiBoaWRlCi0tLQpgYGB7PWh0bWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgpib2R5eyAvKiBOb3JtYWwgICovCiAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgY29sb3I6IGJsYWNrO30KdGQgeyAgLyogVGFibGUgICovCiAgZm9udC1zaXplOiAxNHB4O30KaDEudGl0bGUgewogIGZvbnQtc2l6ZTogNDBweDsKICBjb2xvcjogIzFmOTViZH0KaDEgeyAvKiBIZWFkZXIgMSAqLwogIGZvbnQtc2l6ZTogMzVweDsKICBjb2xvcjogIzFmOTViZDt9CmgyIHsgLyogSGVhZGVyIDIgKi8KICBmb250LXNpemU6IDMzcHg7CiAgY29sb3I6ICMxZjk1YmQ7fQpoMyB7IC8qIEhlYWRlciAzICovCiAgZm9udC1zaXplOiAzMXB4OwogIGNvbG9yOiAjMWY5NWJkO30KaDQgeyAvKiBIZWFkZXIgNCAqLwogIGZvbnQtc2l6ZTogMjlweDsKICBjb2xvcjogIzFmOTViZDt9Cmg1IHsgLyogSGVhZGVyIDUgKi8KICBmb250LXNpemU6IDI3cHg7CiAgY29sb3I6ICMxZjk1YmQ7fQpoNiB7IC8qIEhlYWRlciA2ICovCiAgZm9udC1zaXplOiAyNXB4OwogIGNvbG9yOiAjMWY5NWJkO30KCjwvc3R5bGU+CmBgYAo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0Ij4KCmBgYHtyIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFKQpgYGAKCiMgSW50cm9kdWN0aW9uCgpUaGlzIGRvY3VtZW50IG91dGxpbmVzIHRoZSBhbmFseXNlcyBmcm9tIFN0dWR5IDEgaW4gKippbnNlcnQgYXJ0aWNsZSB0aXRsZSBoZXJlKiogKCoqaW5zZXJ0IGF1dGhvcnMqKiwgMjAxOSkuIFRoZSByaXNpbmcgcHJldmFsZW5jZSBvZiBzbWFydHBob25lcyBoYXMgcHJvbXB0ZWQgcmVzZWFyY2ggYWJvdXQgaG93IHRoZXkgY2FuIGltcGFjdCBjb2duaXRpdmUgYWJpbGl0aWVzLiBUaGVyZWZvcmUsIHRoZSBwdXJwb3NlIG9mIHRoaXMgc3R1ZHkgd2FzIHRvIGludmVzdGlnYXRlIHdoYXQgYXNwZWN0cyBvZiBjb2duaXRpb24sIGlmIGFueSwgYXJlIGFmZmVjdGVkIGJ5IHNtYXJ0cGhvbmVzLiBUbyBkbyBzbywgd2UgZXhhbWluZWQgYSB2YXJpZXR5IG9mIGNvZ25pdGl2ZSBtZWNoYW5pc21zIHVzaW5nIHRoZSAxMiBDYW1icmlkZ2UgQnJhaW4gU2NpZW5jZXMgKENCUykgVGFza3MuIFRoZXNlIHNob3J0LCBjb21wdXRlci1iYXNlZCB0YXNrcyBhc3Nlc3MgdmFyaW91cyBhc3BlY3RzIG9mIGNvZ25pdGlvbiwgc3VjaCBhczogcmVhc29uaW5nLCBtZW1vcnksIGF0dGVudGlvbiwgYW5kIHZlcmJhbCBhYmlsaXR5IChIYW1wc2hpcmUgZXQgYWwuLCAyMDEyKS4gCgpGb3IgdGhpcyBzdHVkeSwgd2UgY29uZHVjdGVkIGEgcGlsb3Qgc3R1ZHkgYW5kIGEgbWFpbiBzdHVkeS4gV2UgZXhwbG9yZWQ6ICgxKSBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIGluIGhvdyBwZW9wbGUgZmVlbCB0b3dhcmRzIGFuZCBpbnRlcmFjdCB3aXRoIHRoZWlyIHNtYXJ0cGhvbmVzLCAgKDIpIGhvdyBzbWFydHBob25lcyBhZmZlY3QgZGlmZmVyZW50IGFzcGVjdHMgb2YgY29nbml0aW9uLCBhbmQgKDMpIGludGVyYWN0aW9ucyBiZXR3ZWVuIGluZGl2aWR1YWwgZGlmZmVyZW5jZXMgYW5kIHRoZXNlIGVmZmVjdHMuCgojIyBQaWxvdCBTdHVkeTogR3VhZ2luZyBUeXBpY2FsIFNtYXJ0cGhvbmUgVXNlClRoZXJlIHdlcmUgdHdvIGdvYWxzIGZvciB0aGUgcGlsb3Qgc3R1ZHk6ICgxKSB0byBkZXRlcm1pbmUgdGhlIGRlc2lnbiBvZiB0aGUgbWFpbiBzdHVkeSBhbmQgKDIpIGluZGl2aWR1YWwgZGlmZmVyZW5jZXMgaW4gaG93IHBlb3BsZSBmZWVsIHRvd2FyZHMgYW5kIGludGVyYWN0IHdpdGggdGhlaXIgc21hcnRwaG9uZXMuIFRoZXJlZm9yZSwgcGFydGljaXBhbnRzIGNvbXBsZXRlZCBmb3VyIHF1ZXN0aW9ubmFpcmVzIGluIGFuIG9ubGluZSBzdXJ2ZXk6CgoKKDEpIFRoZSBTbWFydHBob25lIEF0dGFjaG1lbnQgYW5kIERlcGVuZGVuY3kgUXVlc3Rpb25uYWlyZSAoV2FyZCBldCBhbC4sIDIwMTcpCi0gTWVhc3VyZXMgdGhlIGxldmVsIHRvIHdoaWNoIHNvbWVvbmUgZmVlbHMgYXR0YWNoZWQgYW5kIG9yIGRlcGVuZGVudCBvbiB0aGVpciBzbWFydHBob25lCgooMikgVGhlIE1vYmlsZSBQaG9uZSBJbnZvbHZlbWVudCBRdWVzdGlvbm5haXJlIChNUElROyBXYWxzaCBldCBhbC4sIDIwMTApCi0gTWVhc3VyZXMgdGhlIGxldmVsIG9mIGNvbm5lY3Rpb24gdG8gb25l4oCZcyBwaG9uZSwgaXQgbWFrZXMgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHBob25lIGludm9sdmVtZW50IGFuZCBmcmVxdWVuY3kgb2YgcGhvbmUgdXNlCgooMykgVGhlIE5vbW9waG9iaWEgUXVlc3Rpb25uYWlyZSAoTk1QLVE7IFlpbGRpcmltICYgQ29ycmVpYSwgMjAxNSkKLSBNZWFzdXJlcyBwZW9wbGXigJlzIHNldmVyaXR5IG9mIG5vbW9waG9iaWEKLSBOb21vcGhvYmlhIGlzIHRoZSBtb2Rlcm4gZmVhciBvZiBub3QgYmVpbmcgYWJsZSB0byBjb21tdW5pY2F0ZSB0aHJvdWdoIGEgbW9iaWxlIHBob25lIG9yIHRoZSBpbnRlcm5ldC4gSXQgaXMgYSBzaXR1YXRpb25hbCBwaG9iaWEgdGhhdCByZWZlcnMgdG8gYSBncm91cCBvZiBzeW1wdG9tcyBvciBiZWhhdmlvdXJzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBtb2JpbGUgcGhvbmUgdXNlLgoKKDQpIEEgU21hcnRwaG9uZSBVc2UgUXVlc3Rpb25uYWlyZQotIERlc2lnbmVkIGZvciB0aGUgcGlsb3Qgc3R1ZHkgdG8gbWVhc3VyZSB0eXBpY2FsIHNtYXJ0cGhvbmUgdXNlLCBmcmVxdWVuY3kgb2YgdXNlLCBhbmQgdG8gbWFrZSBhIHBhcmFkaWdtIGRlY2lzaW9uIGZvciB0aGUgbWFpbiBzdHVkeS4KClJlc3VsdHMgd2lsbCBkZW1vbnN0cmF0ZSBob3cgcGFydGljaXBhbnRzIHRlbmQgdG8gdXNlIHRoZWlyIHNtYXJ0cGhvbmVzIHdpdGggcmVzcGVjdCB0byB0aGVpciAoMSkgcG93ZXIgKGkuZS4sIGVpdGhlciB0dXJuZWQgT04gb3IgT0ZGKSBhbmQgKDIpIGxvY2F0aW9uIChpLmUuLCBlaXRoZXIgb24gdGhlaXIgZGVzaywgaW4gdGhlaXIgcG9ja2V0L2JhZywgb3Igb3V0c2lkZSBvZiB0aGUgcm9vbSkgZHVyaW5nIGEgdHlwaWNhbCBkYXkuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVzaWduIGZvciB0aGUgbWFpbiBzdHVkeS4gV2UgcHJlZGljdCB0aGF0LCBhcyBzZWVuIGluIFdhcmQgZXQgYWwuIGFuZCBvdXIgcmVwbGljYXRpb24gc3R1ZHksIHRoZSBzbWFydHBob25lIHBvd2VyIGNvbmRpdGlvbnMgYXJlIG5vdCBuZWNlc3NhcnkuIEZvciBzbWFydHBob25lIGxvY2F0aW9uLCBwYXJ0aWNpcGFudHPigJkgdHlwaWNhbCBzbWFydHBob25lIHVzZSAoaW5jbHVkaW5nIHBsYWNlbWVudCkgd2lsbCBiZSBhc3Nlc3NlZCB0byBkZXRlcm1pbmUgaWYgYWxsIHRocmVlIGxvY2F0aW9ucyBzaG91bGQgYmUgdXNlZC4gVGhpcyBsZWF2ZXMgdHdvIG1vc3QgbGlrZWx5IHBvc3NpYmxlIG91dGNvbWVzIGZvciBzbWFydHBob25lIGxvY2F0aW9uOiB1c2luZyB0d28gbG9jYXRpb25zIG9yIHVzaW5nIHRocmVlIGxvY2F0aW9ucy4gRm9yIGJvdGggb3V0Y29tZXMsIHRoZSDigJxvdGhlciByb29t4oCdIGxvY2F0aW9uIHdpbGwgYmUgdXNlZCBiZWNhdXNlIGl0IHdpbGwgYWxsb3cgdXMgdG8gc2VlIGhvdyBhIG5vbi10eXBpY2FsIHNpdHVhdGlvbiBjYW4gaW1wYWN0IHBlb3BsZS4gVHdvIGxvY2F0aW9ucyB3aWxsIGJlIHVzZWQgaWYgcGFydGljaXBhbnRzIHJlcG9ydCBvbmx5IOKAnG9uIGRlc2vigJ0gb3Ig4oCcaW4gcG9ja2V0L2JhZ+KAnSBhcyB0eXBpY2FsLiBUaGVuLCB0aGUgbW9zdCB1c2VkIGxvY2F0aW9uIHdvdWxkIGJlIGltcGxlbWVudGVkIGFsb25nc2lkZSB0aGUg4oCcb3RoZXIgcm9vbeKAnSBsb2NhdGlvbiAoaS5lLiwgZWl0aGVyIOKAnG9uIGRlc2vigJ0gYW5kIOKAnG90aGVyIHJvb23igJ0gb3Ig4oCcaW4gcG9ja2V0L2JhZ+KAnSBhbmQg4oCcb3RoZXIgcm9vbeKAnSkuIFRocmVlIGxvY2F0aW9ucyB3aWxsIGJlIHVzZWQgaWYgcGFydGljaXBhbnRzIHJlcG9ydCBib3RoIOKAnG9uIGRlc2vigJ0gb3Ig4oCcaW4gcG9ja2V0L2JhZ+KAnSBhcyB0eXBpY2FsLgoKQWRkaXRpb25hbGx5LCByZXN1bHRzIHdpbGwgYXNzZXNzIGluZGl2aWR1YWwgZGlmZmVyZW5jZSBtZWFzdXJlcyAoaS5lLiwgU21hcnRwaG9uZSBBdHRhY2htZW50IGFuZCBEZXBlbmRlbmN5IFF1ZXN0aW9ubmFpcmUsIE1QSVEsIGFuZCBOTVAtUSkuIFRoZXNlIHdpbGwgZ2l2ZSBpbnNpZ2h0IHRvIGhvdyBwYXJ0aWNpcGFudHMgZmVlbCBhbmQgaW50ZXJhY3Qgd2l0aCB0aGVpciBzbWFydHBob25lcyBhbmQgcHJvdmlkZSBhbiBvcHBvcnR1bml0eSB0byBleHBsb3JlIHBvc3NpYmxlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBtZWFzdXJlcy4gCgpBIHRvdGFsIG9mIDM1IHVuZGVyZ3JhZHVhdGUgc3R1ZGVudHMgcGFydGljaXBhdGVkIGluIHRoaXMgc3R1ZHkuIAoKIyMgTWFpbiBTdHVkeTogV2hhdCBBc3BlY3RzIG9mIENvZ25pdGlvbiBhcmUgQWZmZWN0ZWQgYnkgU21hcnRwaG9uZXM/ClRoZSBnb2FscyBmb3IgdGhlIG1haW4gc3R1ZHkgd2VyZSB0bzogKDEpIGludmVzdGlnYXRlIGhvdyBzbWFydHBob25lcyBhZmZlY3QgZGlmZmVyZW50IGFzcGVjdHMgb2YgY29nbml0aW9uIGFuZCAoMikgZXhwbG9yZSBpbnRlcmFjdGlvbnMgYmV0d2VlbiBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIGFuZCB0aGVzZSBlZmZlY3RzLiAKClBhcnRpY2lwYW50cyB3ZXJlIHJhbmRvbWx5IGFzc2lnbmVkIHRvIHRoZWlyIGNvbmRpdGlvbiAoaS5lLiwgZGVzaWduIHdhcyBkZWNpZGVkIHVzaW5nIHRoZSBwaWxvdCBzdHVkeSkgYW5kIHRoZW4gcmFuZG9tbHkgY29tcGxldGVkIGFsbCAxMiBDQlMgdGFza3MuIFRoZXJlZm9yZSwgcGFydGljaXBhbnRzIHBsYWNlZCB0aGVpciBzbWFydHBob25lcyBpbiBvbmUgb2YgdGhyZWUgbG9jYXRpb25zOiAoMSkgb24gdGhlIHBhcnRpY2lwYW504oCZcyBkZXNrLCAoMikgaW4gdGhlaXIgcG9ja2V0L2JhZywgb3IgKDMpIG91dHNpZGUgdGhlIHRlc3Rpbmcgcm9vbS4gQWxsIHBhcnRpY2lwYW50cyB3ZXJlIGluc3RydWN0ZWQgdG8ga2VlcCB0aGVpciBwaG9uZXMgb24gInNpbGVudCIgKGkuZS4sIHRvIHByZXZlbnQgYW55IG5vdGlmaWNhdGlvbnMpIGFuZCB0aG9zZSBpbiB0aGUgIm9uIGRlc2siIGxvY2F0aW9uIGNvbmRpdGlvbiBrZXB0IHRoZWlyIGRldmljZXMgZmFjaW5nIGRvd24uCgpBcyBpbiB0aGUgcGlsb3QsIHBhcnRpY2lwYW50cyBjb21wbGV0ZWQgdGhyZWUgcXVlc3Rpb25uYWlyZXMgdG8gZGV0ZXJtaW5lIGhvdyBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIG1heSBiZSBtb2RlcmF0aW5nIHRoZSBzbWFydHBob25lIGVmZmVjdHM6ICgxKSB0aGUgU21hcnRwaG9uZSBBdHRhY2htZW50IGFuZCBEZXBlbmRlbmN5IFF1ZXN0aW9ubmFpcmUsICgyKSB0aGUgTVBJUSwgYW5kICgzKSB0aGUgTk1QLVEuIEZpbmFsbHksIHRvIGNoZWNrIHRoYXQgdGhlIG1haW4gc3R1ZHnigJlzIHBhcnRpY2lwYW50cyBhcmUgc2ltaWxhciB0byB0aGUgcGlsb3Qgc3R1ZHksIGFsbCBwYXJ0aWNpcGFudHMgd2lsbCBjb21wbGV0ZSB0aGUgc2FtZSBTbWFydHBob25lIFVzZSBRdWVzdGlvbm5haXJlIGZyb20gdGhlIHBpbG90LiBPdXIgcHJlZGljdGlvbnMgZm9yIHRoaXMgc3R1ZHkgd2VyZSBtYWlubHkgZXhwbG9yYXRvcnk6IHdlIGludmVzdGlnYXRlZCB3aGljaCBhc3BlY3RzIG9mIGNvZ25pdGlvbiB3ZXJlIGFmZmVjdGVkIGJ5IHNtYXJ0cGhvbmVzIGFuZCwgdGhlcmVmb3JlLCB3ZSBkaWQgbm90IGhhdmUgZXhwbGljaXQgcHJlZGljdGlvbnMgZm9yIGVhY2ggYXNwZWN0IG9mIGNvZ25pdGlvbi4gV2UgdGhpbmsgdGhhdCB1c2luZyB0aGUgQ0JTIHRhc2tzIHdpbGwgaGVscCB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiBiZWNhdXNlIHRoZXkgY292ZXIgYSB2YXJpZXR5IG9mIG1lYXN1cmVzIG9mIGNvZ25pdGlvbi4gVGhlIG9ubHkgc3BlY2lmaWMgcHJlZGljdGlvbnMgd2UgaGF2ZSBhcmUgd2l0aCByZXNwZWN0IHRvIHRoZSBhdHRlbnRpb25hbGx5LWRlbWFuZGluZyB0YXNrcyAoZS5nLiBEb3VibGUgVHJvdWJsZSksIHdoZXJlIHdlIHByZWRpY3QgbG93ZXIgcGVyZm9ybWFuY2Ugd2l0aCBzbWFydHBob25lIHByZXNlbmNlIChlLmcuLCBTdG90aGFydCBldCBhbC4sIDIwMTUpLiAKCiMjIyBDYW1icmlkZ2UgQnJhaW4gU2NpZW5jZSAoQ0JTKSBUYXNrcwo8ZGV0YWlscz4KPHN1bW1hcnk+IFRoZSBDQlMgdHJpYWxzIGNvbnNpc3RlZCBvZiAxMiBjb2duaXRpdmUgdGFza3M6IERvdWJsZSBUcm91YmxlIFRhc2ssIE9kZCBPbmUgT3V0IFRhc2ssIERpZ2l0IFNwYW4gVGFzaywgRmVhdHVyZSBNYXRjaCBUYXNrLCBQb2x5Z29ucyBUYXNrLCBQYWlyZWQgQXNzb2NpYXRlcyBUYXNrLCBNb25rZXkgTGFkZGVyIFRhc2ssIEdyYW1tYXRpY2FsIFJlYXNvbmluZyBUYXNrLCBSb3RhdGlvbnMgVGFzaywgU3BhdGlhbCBTcGFuIFRhc2ssIFRva2VuIFNlYXJjaCBUYXNrLCBhbmQgdGhlIFNwYXRpYWwgUGxhbm5pbmcgVGFzay4gVGhlc2UgMTIgdGFza3MgbWVhc3VyZSBmb3VyIGZ1bmRhbWVudGFsIGNvZ25pdGl2ZSBhcmVhcywgd2hpY2ggYXJlIGRlc2NyaWJlZCBhcyBmb2xsb3dzIGJ5IEhhbXBzaGlyZSBldCBhbC4gKDIwMTIpOiBtZW1vcnksIHJlYXNvbmluZywgdmVyYmFsIGFiaWxpdHksIGFuZCBjb25jZW50cmF0aW9uLiBUaGUgZm9sbG93aW5nIHRhc2sgZGVzY3JpcHRpb25zIGFyZSBmcm9tIHRoZSBDQlMgV2Vic2l0ZSAod3d3LmNhbWJyaWRnZWJyYWluc2NpZW5jZXMuY29tKS4gKihjbGljayB0byBzZWUgZGV0YWlscykqIDwvc3VtbWFyeT4KCiMjIyMgTWVtb3J5CipWaXN1b3NwYXRpYWwgV29ya2luZyBNZW1vcnkgVGFzayAoTW9ua2V5IExhZGRlcikqCi0gQSB2YXJpYW50IG9uIGEgdGFzayBmcm9tIHRoZSBub24taHVtYW4gcHJpbWF0ZSBsaXRlcmF0dXJlIChJbm91ZSAmIE1hdHN1emF3YSwgMjAwNykuIFNldHMgb2YgbnVtYmVyZWQgc3F1YXJlcyBhcmUgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgcmFuZG9tIGxvY2F0aW9ucy4gQWZ0ZXIgYSB2YXJpYWJsZSBpbnRlcnZhbCBvZiB0aW1lLCB0aGUgbnVtYmVycyBkaXNhcHBlYXIgbGVhdmluZyBqdXN0IHRoZSBibGFuayBzcXVhcmVzIGFuZCBwYXJ0aWNpcGFudHMgbXVzdCByZXNwb25kIGJ5IGNsaWNraW5nIHRoZSBzcXVhcmVzIGluIGFzY2VuZGluZyBudW1lcmljYWwgc2VxdWVuY2UuIERpZmZpY3VsdHkgaXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBieSBvbmUgbnVtYmVyZWQgYm94IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBwYXJ0aWNpcGFudCBnb3QgdGhlIHByZXZpb3VzIHRyaWFsIGNvcnJlY3QuIEFmdGVyIHRocmVlIGVycm9ycywgdGhlIHRhc2sgd2lsbCBlbmQuCgoqU3BhdGlhbCBTaG9ydC1UZXJtIE1lbW9yeSAoU3BhdGlhbCBTcGFuIFRhc2spKgotIEEgdmFyaWFudCBvbiB0aGUgQ29yc2lCbG9jayBUYXBwaW5nIFRhc2sgKENvcnNpLCAxOTcyKSwgdXNlZCBmb3IgbWVhc3VyaW5nIHNwYXRpYWwgc2hvcnQtdGVybSBtZW1vcnkgY2FwYWNpdHkuIDE2IHNxdWFyZXMgYXJlIGRpc3BsYXllZCBpbiBhIDQgeCA0IGdyaWQuIEEgc3ViLXNldCBvZiB0aGUgc3F1YXJlcyB3aWxsIGZsYXNoIGluIGEgcmFuZG9tIHNlcXVlbmNlIGF0IGEgcmF0ZSBvZiAxIGZsYXNoIGV2ZXJ5IDkwMCBtcy4gU3Vic2VxdWVudGx5LCBwYXJ0aWNpcGFudHMgbXVzdCByZXBlYXQgdGhlIHNlcXVlbmNlIGJ5IGNsaWNraW5nIG9uIHRoZSBzcXVhcmVzIGluIHRoZSBzYW1lIG9yZGVyIGluIHdoaWNoIHRoZXkgZmxhc2hlZC4gRGlmZmljdWx0eSBpcyBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGJ5IG9uZSBib3ggZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHBhcnRpY2lwYW50IGdvdCB0aGUgcHJldmlvdXMgdHJpYWwgY29ycmVjdC4gQWZ0ZXIgdGhyZWUgZXJyb3JzLCB0aGUgdGFzayB3aWxsIGVuZC4KCipXb3JraW5nIE1lbW9yeSAoVG9rZW4gU2VhcmNoKSoKLSBCYXNlZCBvbiBhIHRlc3QgdGhhdCBpcyB1c2VkIHRvIG1lYXN1cmUgc3RyYXRlZ3kgZHVyaW5nIHNlYXJjaCBiZWhhdmlvdXJzIChDb2xsaW5zIGV0IGFsLiwgMTk5OCkuIEJveGVzIGFyZSBkaXNwbGF5ZWQgaW4gcmFuZG9tIGxvY2F0aW9ucy4gUGFydGljaXBhbnRzIG11c3QgZmluZCBhIGhpZGRlbiDigJx0b2tlbuKAnSBieSBjbGlja2luZyBvbiB0aGUgYm94ZXMgb25lIGF0IGEgdGltZS4gV2hlbiB0aGUgdG9rZW4gaXMgZm91bmQsIGl0IGlzIGhpZGRlbiB3aXRoaW4gYW5vdGhlciBib3guIFRoZSB0b2tlbiB3aWxsIG5vdCBhcHBlYXIgd2l0aGluIHRoZSBzYW1lIGJveCB0d2ljZSwgdGh1cywgcGFydGljaXBhbnRzIG11c3Qgc2VhcmNoIHRoZSBib3hlcyB1bnRpbCB0aGUgdG9rZW4gaGFzIGJlZW4gZm91bmQgb25jZSBpbiBlYWNoIGJveC4gSWYgdGhleSBzZWFyY2ggdGhlIHNhbWUgZW1wdHkgYm94IHR3aWNlLCBvciBzZWFyY2ggYSBib3ggaW4gd2hpY2ggdGhlIHRva2VuIGhhcyBwcmV2aW91c2x5IGJlZW4gZm91bmQsIHRoaXMgaXMgYW4gZXJyb3IgYW5kIHRoZSB0cmlhbCBlbmRzLiBEaWZmaWN1bHR5IGlzIGluY3JlYXNlZCBvciBkZWNyZWFzZWQgYnkgb25lIGJveCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcGFydGljaXBhbnQgZ290IHRoZSBwcmV2aW91cyB0cmlhbCBjb3JyZWN0LiBBZnRlciB0aHJlZSBlcnJvcnMsIHRoZSB0YXNrIHdpbGwgZW5kLiBPdXRjb21lIG1lYXN1cmUgaXMgdGhlIG1heGltdW0gbGV2ZWwgY29tcGxldGVkIChlLmcuIHRoZSBwcm9ibGVtIHdpdGggdGhlIG1vc3QgdG9rZW5zIHRoYXQgdGhlIHVzZXIgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZCkuCgoqRXBpc29kaWMgTWVtb3J5IChQYWlyZWQgQXNzb2NpYXRlcyBUYXNrKSoKLSBBIHZhcmlhbnQgb24gYSBwYXJhZGlnbSB0aGF0IGlzIGNvbW1vbmx5IHVzZWQgdG8gYXNzZXNzIG1lbW9yeSBpbXBhaXJtZW50cyBpbiBhZ2luZyBjbGluaWNhbCBwb3B1bGF0aW9ucyAoR291bGQgZXQgYWwuLCAyMDA1KS4gQm94ZXMgYXJlIGRpc3BsYXllZCBhdCByYW5kb20gbG9jYXRpb25zIG9uIHRoZSBzY3JlZW4uIFRoZSBib3hlcyBhcmUgb3BlbmVkIG9uZSBhZnRlciBhbm90aGVyIHRvIHJldmVhbCBhbiBlbmNsb3NlZCBvYmplY3QuIFN1YnNlcXVlbnRseSwgdGhlIG9iamVjdHMgYXJlIGRpc3BsYXllZCBpbiByYW5kb20gb3JkZXIgaW4gdGhlIGNlbnRyZSBvZiB0aGUgc2NyZWVuIGFuZCBwYXJ0aWNpcGFudHMgbXVzdCBkZXRlcm1pbmUgd2hpY2ggYm94IGNvbnRhaW5zIHRoZSBvYmplY3QgdGhhdCBpcyBwcmVzZW50ZWQuIERpZmZpY3VsdHkgaXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBieSBvbmUgYm94IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBwYXJ0aWNpcGFudCBnb3QgdGhlIHByZXZpb3VzIHRyaWFsIGNvcnJlY3QuIEFmdGVyIHRocmVlIGVycm9ycywgdGhlIHRhc2sgd2lsbCBlbmQuCgojIyMjIFJlYXNvbmluZwoqTWVudGFsIFJvdGF0aW9uIChSb3RhdGlvbnMpKgotIE9mdGVuIHVzZWQgZm9yIG1lYXN1cmluZyB0aGUgYWJpbGl0eSB0byBtYW5pcHVsYXRlIG9iamVjdHMgc3BhdGlhbGx5IGluIG1pbmQgKFNpbHZlcm1hbiBldCBhbC4sIDIwMDApLiBUd28gZ3JpZHMgb2YgY29sb3VyZWQgc3F1YXJlZCBhcmUgZGlzcGxheWVkIHRvIGVpdGhlciBzaWRlIG9mIHRoZSBzY3JlZW4gd2l0aCBvbmUgb2YgdGhlIGdyaWRzIHJvdGF0ZWQgYnkgYSBtdWx0aXBsZSBvZiA5MCBkZWdyZWVzLiBXaGVuIHJvdGF0ZWQsIHRoZSBncmlkcyBhcmUgZWl0aGVyIGlkZW50aWNhbCBvciBkaWZmZXIgYnkgdGhlIHBvc2l0aW9uIG9mIGp1c3Qgb25lIHNxdWFyZS4gUGFydGljaXBhbnRzIG11c3QgaW5kaWNhdGUgd2hldGhlciBvciBub3QgdGhlIGdyaWRzIGFyZSBpZGVudGljYWwuIFBhcnRpY2lwYW50cyBoYXZlIDkwIHNlY29uZHMgdG8gc29sdmUgYXMgbWFueSBwcm9ibGVtcyBhcyBwb3NzaWJsZS4gUHJpbWFyeSBvdXRjb21lIG1lYXN1cmUgaXMgb3ZlcmFsbCBzY29yZSAtIHRoZSBzdW0gb2YgdGhlIGRpZmZpY3VsdGllcyBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGFuc3dlcmVkIHByb2JsZW1zLCBtaW51cyB0aGUgc3VtIG9mIHRoZSBkaWZmaWN1bHRpZXMgb2YgYWxsIGluY29ycmVjdGx5IGFuc3dlcmVkIHByb2JsZW1zLgoKKlZpc3Vvc3BhdGlhbCBQcm9jZXNzaW5nIChQb2x5Z29ucykqCi0gQmFzZWQgb24gdGhlIEludGVybG9ja2luZyBQZW50YWdvbnMgVGFzaywgd2hpY2ggaXMgb2Z0ZW4gdXNlZCBpbiB0aGUgYXNzZXNzbWVudCBvZiBhZ2UtIHJlbGF0ZWQgZGlzb3JkZXJzIChGb2xzdGVpbiBldCBhbC4sIDE5NzUpLiBBIHBhaXIgb2Ygb3ZlcmxhcHBpbmcgcG9seWdvbnMgaXMgZGlzcGxheWVkIG9uIG9uZSBzaWRlIG9mIHRoZSBzY3JlZW4uIFBhcnRpY2lwYW50cyBtdXN0IGluZGljYXRlIHdoZXRoZXIgYSBwb2x5Z29uIGRpc3BsYXllZCBvbiB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgc2NyZWVuIGlzIGlkZW50aWNhbCB0byBvbmUgb2YgdGhlIGludGVybG9ja2luZyBwb2x5Z29ucy4gRGlmZmljdWx0eSBpcyBpbmNyZWFzZWQgYnkgbWFraW5nIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBwb2x5Z29ucyBtb3JlIHN1YnRsZSBvciBkZWNyZWFzZWQgYnkgbWFraW5nIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBwb2x5Z29ucyBtb3JlIHByb25vdW5jZWQuIFBhcnRpY2lwYW50cyBoYXZlIDkwIHNlY29uZHMgdG8gc29sdmUgYXMgbWFueSBwcm9ibGVtcyBhcyBwb3NzaWJsZS4gUHJpbWFyeSBvdXRjb21lIG1lYXN1cmUgaXMgb3ZlcmFsbCBzY29yZSAtIHRoZSBzdW0gb2YgdGhlIGRpZmZpY3VsdGllcyBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGFuc3dlcmVkIHByb2JsZW1zLCBtaW51cyB0aGUgc3VtIG9mIHRoZSBkaWZmaWN1bHRpZXMgb2YgYWxsIGluY29ycmVjdGx5IGFuc3dlcmVkIHByb2JsZW1zLgoKKkRlZHVjdGl2ZSBSZWFzb25pbmcgKE9kZCBPbmUgT3V0KSoKLSBCYXNlZCBvbiBhIHN1Yi1zZXQgb2YgcHJvYmxlbXMgZnJvbSB0aGUgQ2F0dGVsbCBDdWx0dXJlIEZhaXIgSW50ZWxsaWdlbmNlIFRlc3QgKENhdHRlbGwsIDE5NDkpLiBOaW5lIHBhdHRlcm5zIHdpbGwgYXBwZWFyIG9uIHRoZSBzY3JlZW4uIFRoZSBmZWF0dXJlcyB0aGF0IG1ha2UgdXAgdGhlIHBhdHRlcm5zIGFyZSBjb2xvdXIsIHNoYXBlLCBhbmQgbnVtYmVyIGFuZCBhcmUgcmVsYXRlZCB0byBlYWNoIG90aGVyIGFjY29yZGluZyB0byBhIHNldCBvZiBydWxlcy4gUGFydGljaXBhbnRzIG11c3QgZGVkdWNlIHRoZSBydWxlcyB0aGF0IHJlbGF0ZSB0aGUgb2JqZWN0IGZlYXR1cmVzIGFuZCBzZWxlY3QgdGhlIHBhdHRlcm4gdGhhdCBkbyBub3QgY29ycmVzcG9uZCB0byB0aG9zZSBydWxlcy4gRGlmZmljdWx0eSBpcyBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBwYXJ0aWNpcGFudCBnb3QgdGhlIHByZXZpb3VzIHRyaWFsIGNvcnJlY3QuIFBhcnRpY2lwYW50cyBoYXZlIDMgbWludXRlcyB0byBzb2x2ZSBhcyBtYW55CnByb2JsZW1zIGFzIHBvc3NpYmxlLiBQcmltYXJ5IG91dGNvbWUgbWVhc3VyZSBpcyB0aGUgbnVtYmVyIG9mIGNvcnJlY3RseSBhbnN3ZXJlZApwcm9ibGVtcywgbWludXMgdGhlIG51bWJlciBvZiBpbmNvcnJlY3RseSBhbnN3ZXJlZCBwcm9ibGVtcy4KCipQbGFubmluZyAoU3BhdGlhbCBQbGFubmluZykqCi0gQSBkaXJlY3QgZGVzY2VuZGFudCBvZiB0aGUg4oCcVG93ZXIgb2YgTG9uZG9u4oCdIHRhc2ssIFNwYXRpYWwgUGxhbm5pbmcgaXMgYSBjbGFzc2ljIG5ldXJvcHN5Y2hvbG9naWNhbCB0ZXN0IG9mIHBsYW5uaW5nIChTaGFsbGljZSwgMTk4MikuIFdoZW4gdGhlIHRlc3QgYmVnaW5zLCBudW1iZXJlZCBiZWFkcyBhcmUgcG9zaXRpb25lZCBvbiBhIHRyZWUtc2hhcGVkIGZyYW1lLiBQYXJ0aWNpcGFudHMgbXVzdCByZXBvc2l0aW9uIHRoZSBiZWFkcyBzbyB0aGV5IGFyZSBjb25maWd1cmVkIGluIGFzY2VuZGluZyBudW1lcmljYWwgb3JkZXIsIGluIGFzIGZldyBtb3ZlcyBhcyBwb3NzaWJsZS4gUHJvYmxlbXMgYmVjb21lIHByb2dyZXNzaXZlbHkgaGFyZGVyLCBhbmQgcGFydGljaXBhbnRzIGhhdmUgdGhyZWUgbWludXRlcyB0byBzb2x2ZSBhcyBtYW55IGFzIHBvc3NpYmxlLiBUaGUgcHJpbWFyeSBvdXRjb21lIG1lYXN1cmUgaXMgdGhlIG92ZXJhbGwgc2NvcmUsIGNhbGN1bGF0ZWQgYnkgc3VidHJhY3RpbmcgdGhlIG51bWJlciBvZiBtb3ZlcyBtYWRlIGZyb20gdHdpY2UgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1vdmVzIHJlcXVpcmVkLgoKIyMjIyBWZXJiYWwgQWJpbGl0eQoqVmVyYmFsIFJlYXNvbmluZyAoR3JhbW1hdGljYWwgUmVhc29uaW5nKSoKLSBCYXNlZCBvbiBBbGFuIEJhZGRlbGV54oCZcyB0aHJlZSBtaW51dGUgZ3JhbW1hdGljYWwgcmVhc29uaW5nIHRlc3QgKEJhZGRlbGV5LCAxOTY4KS4gU2hvcnQgc2VudGVuY2VzIGRlc2NyaWJpbmcgdGhlIHJlbGF0aW9uc2hpcCBvZiB0d28gc2hhcGVzIGFsb25nIHdpdGggYW4gaW1hZ2Ugb2YgdGhlIHNoYXBlcyBhcmUgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4uIFBhcnRpY2lwYW50cyBtdXN0IGluZGljYXRlIHdoZXRoZXIgdGhlIHNlbnRlbmNlIGNvcnJlY3RseSBkZXNjcmliZXMgdGhlIHBhaXIgb2Ygb2JqZWN0cyBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbi4gUGFydGljaXBhbnRzIGhhdmUgOTAgc2Vjb25kcyB0byBzb2x2ZSBhcyBtYW55IHByb2JsZW1zIGFzIHBvc3NpYmxlLiBQcmltYXJ5IG91dGNvbWUgbWVhc3VyZSBpcyB0aGUgbnVtYmVyIG9mIHByb2JsZW1zIHNvbHZlZCBjb3JyZWN0bHksIG1pbnVzIHRoZSBudW1iZXIgb2YgcHJvYmxlbXMgYW5zd2VyZWQgaW5jb3JyZWN0bHkuCgoqVmVyYmFsIFNob3J0LVRlcm0gTWVtb3J5IChEaWdpdCBTcGFuKSoKLSBBIHZhcmlhbnQgb24gdGhlIHZlcmJhbCB3b3JraW5nIG1lbW9yeSBjb21wb25lbnQgb2YgdGhlIFdBSVMtUiBpbnRlbGxpZ2VudCB0ZXN0IChXZXNjaGxlciwgMTk4MSkuIEEgc2VxdWVuY2Ugb2YgbnVtYmVycyB3aWxsIGFwcGVhciBvbiB0aGUgc2NyZWVuIG9uZSBhZnRlciBhbm90aGVyLiBPbmNlIHRoZSBzZXF1ZW5jZSBpcyBjb21wbGV0ZSwgcGFydGljaXBhbnRzIG11c3QgcmVwZWF0IHRoZSBzZXF1ZW5jZS4gRGlmZmljdWx0eSBpcyBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGJ5IG9uZSBudW1iZXIgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHBhcnRpY2lwYW50IGdvdCB0aGUgcHJldmlvdXMgdHJpYWwgY29ycmVjdC4gQWZ0ZXIgdGhyZWUgZXJyb3JzLCB0aGUgdGFzayBlbmRzLiBQcmltYXJ5IG91dGNvbWUgbWVhc3VyZSBpcyB0aGUgbWF4aW11bSBsZXZlbCAoaS5lLiB0aGUgcHJvYmxlbSB3aXRoIHRoZSBoaWdoZXN0IG51bWJlciBvZiBkaWdpdHMpIHRoYXQgdGhlIHBsYXllciBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgoKIyMjIyBDb25jZW50cmF0aW9uCipBdHRlbnRpb24gKEZlYXR1cmUgTWF0Y2gpKgotIEJhc2VkIG9uIHRoZSBjbGFzc2ljYWwgZmVhdHVyZSBzZWFyY2ggdGFza3MgdGhhdCBoYXZlIGJlZW4gdXNlZCB0byBtZWFzdXJlIGF0dGVudGlvbmFsIHByb2Nlc3NpbmcgKFRyZWlzbWFuICYgR2VsYWRlLCAxOTgwKS4gVHdvIGdyaWRzIGFyZSBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiwgZWFjaCBjb250YWluaW5nIGFuIGFycmF5IG9mIGFic3RyYWN0IHNoYXBlcy4gSW4gaGFsZiBvZiB0aGUgdHJpYWxzIHRoZSBncmlkcyBkaWZmZXIgYnkganVzdCBvbmUgc2hhcGUuIFBhcnRpY2lwYW50cyBtdXN0IGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBncmlk4oCZcyBjb250ZW50cyBhcmUgaWRlbnRpY2FsLiBEaWZmaWN1bHR5IGlzIGluY3JlYXNlZCBvciBkZWNyZWFzZWQgYnkgb25lIHNoYXBlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBwYXJ0aWNpcGFudCBnb3QgdGhlIHByZXZpb3VzIHRyaWFsIGNvcnJlY3QuIFBhcnRpY2lwYW50cyBoYXZlIDkwIHNlY29uZHMgdG8gc29sdmUgYXMgbWFueSBwcm9ibGVtcyBhcyBwb3NzaWJsZS4gUHJpbWFyeSBvdXRjb21lIG1lYXN1cmUgaXMgb3ZlcmFsbCBzY29yZSAtIHRoZSBzdW0gb2YgdGhlIGRpZmZpY3VsdGllcyBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGFuc3dlcmVkIHByb2JsZW1zLCBtaW51cyB0aGUgc3VtIG9mIHRoZSBkaWZmaWN1bHRpZXMgb2YgYWxsIGluY29ycmVjdGx5IGFuc3dlcmVkIHByb2JsZW1zLgoKKlJlc3BvbnNlIEluaGliaXRpb24gKERvdWJsZSBUcm91YmxlLCBDb2xvdXItV29yZCBSZW1hcHBpbmcgVGFzaykqCi0gQSB2YXJpYW50IG9uIHRoZSBTdHJvb3AgdGVzdCAoU3Ryb29wLCAxOTM1KS4gVGhyZWUgY29sb3VyZWQgd29yZHMgYXJlIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuOiBvbmUgYXQgdGhlIHRvcCBhbmQgdHdvIGF0IHRoZSBib3R0b20uIFBhcnRpY2lwYW50cyBtdXN0IGluZGljYXRlIHdoaWNoIG9mIHR3byBjb2xvdXJlZCB3b3JkcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4gY29ycmVjdGx5IGRlc2NyaWJlcyB0aGUgY29sb3VyIHRoYXQgdGhlIHdvcmQgYXQgdGhlIHRvcCBvZiB0aGUgc2NyZWVuIGlzIHdyaXR0ZW4gaW4uIFRoZSBjb2xvdXIgd29yZCBtYXBwaW5ncyBtYXkgYmUgY29uZ3J1ZW50LCBpbmNvbmdydWVudCwgb3IgZG91Ymx5IGluY29uZ3J1ZW50LCBkZXBlbmRpbmcgb24gd2hldGhlciBvciBub3QgdGhlIGNvbG91ciBvZiB0aGUgdG9wIHdvcmQgbWF0Y2hlcyB0aGUgY29sb3VyIHRoYXQgaXQgaXMgd3JpdHRlbiBpbi4gUGFydGljaXBhbnRzIGhhdmUgOTAgc2Vjb25kcyB0byBzb2x2ZSBhcyBtYW55IHByb2JsZW1zIGFzIHBvc3NpYmxlLgoKQSB0b3RhbCBvZiAjIyMgdW5kZXJncmFkdWF0ZSBzdHVkZW50cyBwYXJ0aWNpcGF0ZWQgaW4gdGhpcyBzdHVkeS4gCgoKPC9kZXRhaWxzPiAKCiMgQW5hbHlzaXMgUHJlcAojIyBMb2FkIExpYnJhcmllcwoKQmVmb3JlIGltcG9ydGluZyB0aGUgcmF3IGRhdGEsIHRoZSByZXF1aXJlZCBsaWJyYXJpZXMgd2VyZSBsb2FkZWQuCgpgYGB7ciBsb2FkX2xpYnMsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CiMgRm9yIHBsb3R0aW5nIHBlcmZvcm1hbmNlOgoKbGlicmFyeShnZ3Bsb3QyKQoKIyBGb3IgcnVubmluZyBMZXZlbmUncyB0ZXN0OgoKbGlicmFyeShjYXIpCgojIEZvciBwZXJmb3JtaW5nIHN0YXRzIGFuYWx5c2VzIGxpa2UgQU5PVkFzOgoKbGlicmFyeShleikKCiMgRm9yIGZvcm1hdHRpbmcgdGFibGVzOgoKbGlicmFyeShrYWJsZUV4dHJhKQogIyBzZXQgb3B0aW9ucyBmb3Iga2FibGUgdGFibGVzIGZvciBhbGwgZnV0dXJlIHRhYmxlcwogIG9wdGlvbnMoa25pdHIudGFibGUuZm9ybWF0ID0gImh0bWwiKSAKICAKCiMgY2hvb3NlIGFueSBjb2xvdXJzIHlvdSB3YW50LCBnb29kIHRvIGhlbHAgd2l0aCBwcGwgdy8gY29sb3VyIGJsaW5kbmVzcwoKbGlicmFyeShSQ29sb3JCcmV3ZXIpCgojIHJlcXVpcmVkIGZvciBmYWN0b3IgYW5hbHlzaXMKbGlicmFyeShwc3ljaCkKCgojIFRpZHl2ZXJzZSBmb3IgZGF0YSBhbmFseXNpcywgY2xlYW5pbmcsIGV0Yy4KICAjIGluY2x1ZGVkIHBhY2thZ2VzIGxvZGFlZCB3aXRoIHRoaXM6IGdncGxvdDIsIGRwbHlyLCB0aWR5ciwgcmVhZHIsIHB1cnJyLCB0aWJibGUsIHN0cmluZ3IsIGZvcmNhdHMKbGlicmFyeSh0aWR5dmVyc2UpCiAgCiMgZm9yIGNvcnJlbGF0aW9ucwpsaWJyYXJ5KEhtaXNjKQoKbGlicmFyeShzdGF0cykgIyB0byBwZXJmb3JtIHQtdGVzdHMKCmxpYnJhcnkoZ2dwdWJyKSAjIHRvIHBsb3QgZmlndXJlcwogIApsaWJyYXJ5KGVmZnNpemUpICMgdG8gY2FsY3VsYXRlIGNvaGVuJ3MgZCBlZmZlY3Qgc2l6ZQpsaWJyYXJ5KGNvaW4pICMgdG8gcnVuIE1hbm4tV2hpdG5leSBVIHRlc3QKICAKI2luc3RhbGwucGFja2FnZXMocGx5cikKICAjIGxpYnJhcnkocGx5cikKCiMgRm9yIGZvcm1hdHRpbmcgQU5PVkEgb3V0cHV0czoKCiNsaWJyYXJ5KHNjaG9Sc2NoKQogIAojIHRvIHBsb3QgcXVpY2sgY29ycmVsYXRpb24gbWF0cml4CiAgbGlicmFyeShjb3JycGxvdCkKICAjbGlicmFyeSgiUGVyZm9ybWFuY2VBbmFseXRpY3MiKQogIAojIHRvIHNob3cgbXVsdGlwbGUgZ3JvYnMgb24gcGFnZQpsaWJyYXJ5KGdyaWRFeHRyYSkKCmBgYAoKIyMgQWRkaXRpb25hbCBGdW5jdGlvbnMKCiMjIyBSb3VuZGluZyBwLXZhbHVlcwoKPGRldGFpbHM+Cgo8c3VtbWFyeT4KClRoaXMgcm91bmRpbmcgZnVuY3Rpb24gd2FzIGFkYXB0ZWQgZnJvbSBbRHIuIEVtaWx5IE5pZWxzZW4ncyBScHVic10oaHR0cHM6Ly9ycHVicy5jb20vZWduaWVsc2VuKS4gVGhlIGZ1bmN0aW9uICgiKipwX3JvdW5kKHgpKioiKSB3YXMgY3JlYXRlZCB0byBhc3Nlc3MgYW5kIHByaW50IHAtdmFsdWVzLiBJZiAkcCBcZ2UgLjAwNSQsIHRoZSBmdW5jdGlvbiB3aWxsIGRpc3BsYXkgIlwkcCA9IFwkIiBhbmQgdGhlIHZhbHVlIHJvdW5kZWQgdG8gdHdvIGRlY2ltYWwgcGxhY2VzLiBJZiBcJCAuMDAwNSBcbGUgcCBcPC4wMDUkLCB0aGUgZnVuY3Rpb24gd2lsbCBkaXNwbGF5IOKAnCRwID0gXCQiIGFuZCB0aGUgdmFsdWUgcm91bmRlZCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcy4gSWYgJHAgPCAuMDAwNSQsIHRoZSBmdW5jdGlvbiB3aWxsIGRpc3BsYXkgIiRwIDwgLjAwMSQiLiAqKGNsaWNrIHRvIGV4cGFuZCkqCgo8L3N1bW1hcnk+CgpgYGB7ciBjcmVhdGVfcF9yb3VuZF9mdW5jdGlvbn0KCnBfcm91bmQgPC0gZnVuY3Rpb24oeCl7CiAgaWYoeCA+IC4wMDUpCiAgICB7eDEgPSAocGFzdGUoIj0gIiwgZ3N1YigiMFxcLiIsIlxcLiIsIHJvdW5kKHgsIGRpZ2l0cyA9IDIpKSwgc2VwID0gJycpKQogIH0gIAogIGVsc2UgaWYoeCA9PSAuMDA1KXt4MSA9IChwYXN0ZSgiPSIsIGdzdWIoIjBcXC4iLCJcXC4iLCAwLjAxKSkpCiAgfQogIGVsc2UgaWYoeCA+IC4wMDA1ICYgeCA8IC4wMDUpCiAgICB7eDEgPSAocGFzdGUoIj0gIiwgZ3N1YigiMFxcLiIsIlxcLiIsIHJvdW5kKHgsIGRpZ2l0cyA9IDMpKSwgc2VwID0gJycpKQogIH0gIAogIGVsc2UgaWYoeCA9PSAuMDAwNSl7eDEgPSAocGFzdGUoIj0iLCBnc3ViKCIwXFwuIiwiXFwuIiwgMC4wMDEpKSkKICB9CiAgZWxzZXt4MSA9IChwYXN0ZSgiPCIsIGdzdWIoIjBcXC4iLCJcXC4iLCAwLjAwMSkpKQogIH0gCiAgKHgxKQp9CgpgYGAKCmBgYHtyIGNyZWF0ZV9mbGF0dGVuQ29ycl9mdW5jdGlvbn0KIyArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiMgZmxhdHRlbkNvcnJNYXRyaXgKIyArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiMgY29ybWF0IDogbWF0cml4IG9mIHRoZSBjb3JyZWxhdGlvbiBjb2VmZmljaWVudHMKIyBwbWF0IDogbWF0cml4IG9mIHRoZSBjb3JyZWxhdGlvbiBwLXZhbHVlcwpmbGF0dGVuQ29yck1hdHJpeCA8LSBmdW5jdGlvbihjb3JtYXQsIHBtYXQpIHsKICB1dCA8LSB1cHBlci50cmkoY29ybWF0KQogIGRhdGEuZnJhbWUoCiAgICByb3cgPSByb3duYW1lcyhjb3JtYXQpW3Jvdyhjb3JtYXQpW3V0XV0sCiAgICBjb2x1bW4gPSByb3duYW1lcyhjb3JtYXQpW2NvbChjb3JtYXQpW3V0XV0sCiAgICBjb3IgID0oY29ybWF0KVt1dF0sCiAgICBwID0gcG1hdFt1dF0KICAgICkKfQpgYGAKCgo8L2RldGFpbHM+CgojIyBJbXBvcnQgUmF3IERhdGEgRmlsZXMKClRoZXJlIGFyZSAqKmZvdXIqKiByYXcgZGF0YSBmb3IgdGhlIGFuYWx5c2VzLiAKCioqUGlsb3QgU3R1ZHkqKgoxLiBQaWxvdCBTdHVkeSAtIFN1cnZleSBEYXRhCiAgICAtIGNzdiBmaWxlIGV4cG9ydGVkIGZyb20gUXVhbHRyaWNzCiAgICAtIGRhdGEgY29sbGVjdGVkIG9ubGluZQogICAgCioqTWFpbiBTdHVkeSoqIAoKMi4gTWFpbiBTdHVkeSAtIFN1cnZleSBEYXRhCiAgICAtIGNzdiBmaWxlIGV4cG9ydGVkIGZyb20gUXVhbHRyaWNzCiAgICAtIGRhdGEgY29sbGVjdGVkIGluLXBlcnNvbgogICAgCjMuIE1haW4gU3R1ZHkgLSBUZXN0IFRyYWNraW5nIFNoZWV0CiAgICAtIGV4Y2VsIGZpbGUsIGNvbGxlY3RlZCBtYW51YWxseSBmcm9tIGVhY2ggcGFydGljaXBhbnQgYnkgZXhwZXJpbWVudGVyCiAgICAtIGRhdGEgY29sbGVjdGVkIGluLXBlcnNvbgogICAgCjQuIE1haW4gU3R1ZHkgLSBDQlMgZGF0YQogICAgLSBjc3YgZmlsZSBleHBvcnRlZCBmcm9tIG9ubGluZSBwbGF0Zm9ybQogICAgLSBkYXRhIGNvbGxlY3RlZCBpbi1wZXJkb20KCiMjIyAxLiBQaWxvdCBEYXRhCgpGaXJzdCwgdGhlIHJhdyBkYXRhIHdhcyBpbXBvcnRlZC4gCmBgYHtyIGltcG9ydF9waWxvdF9zdXJ2ZXlfcmF3fQojIHRoaXMgd2lsbCBpbXBvcnQgdGhlIHJhdyBleGNlbCBkYXRhIGZpbGUgZm9yIHRoZSBwaWxvdCBzdHVkeQogICMgdGhpcyBmaWxlIGhhcyBiZWVuIGFub255bWl6ZWQsIHNvIGFueSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gaGFzIGJlZW4gcmVtb3ZlZApwaWxvdF9zdXJ2ZXlfcmF3IDwtIHJlYWQuY3N2KCJQaWxvdF9zdXJ2ZXlfZGF0YShqdW5lNykuY3N2IiwgaGVhZGVyID0gVFJVRSkKYGBgCgpBZnRlciBpbXBvcnRpbmcgdGhlIHJhdyBkYXRhLCB0aGUgZmlsZSBpcyBjbGVhbmVkIGJ5IHJlbW92aW5nIHBhcnRpY2lwYW50cyBiYXNlZCBvbiBzZXZlcmFsIGNyaXRlcmlhOgoKLSAqKlRlc3RpbmcgRGF0YSoqOiBleHBlcmltZW50ZXIgZGF0YSAoaS5lLiwgdGVzdGluZyBwcmlvciB0byBkYXRhIGNvbGxlY3Rpb24pLCBhbnkgaXJyZWxldmFudCByb3dzCgotICoqSW5jb21wbGV0ZSBEYXRhKio6IHBhcnRpY2lwYW50cyB3aG8gZGlkIG5vdCBjb21wbGV0ZSB0aGUgc3R1ZHkKICAgIC0gYHIgbnJvdyhwaWxvdF9zdXJ2ZXlfcmF3ICU+JSBmaWx0ZXIoRGlzdHJpYnV0aW9uQ2hhbm5lbCAhPSAidGVzdCIpICU+JSBmaWx0ZXIoRmluaXNoZWQgPT0gMCkpYCByZW1vdmVkCiAgICAKLSAqKlVubmVjZXNzYXJ5IFZhcmlhYmxlcyoqOiBjb2x1bW5zIHdoaWNoIGFyZSBub3QgcmVsZXZhbnQgdG8gdGhlIGFuYWx5c2VzIChlLmcuLCBkaXN0cmlidXRpb24gdHlwZSwgZGlzdHJpYnV0aW9uIGxhbmdhdWdlKQoKYGBge3IgY2xlYW5fcGlsb3Rfc3VydmV5fQojIGNsZWFuIHRoZSBkYXRhCnBpbG90X3N1cl9kYXRhX3RlbXAgPC0gCiAgIyBzdGFydCB3aXRoIHJlbW92aW5nIGV4cGVyaW1lbnRlciBhbmQgaXJyZWxldmFudCByb3dzIGZyb20gdGhlIGRhdGEKICAgICMgdGhlcmUgaXMgbm8gbmVlZCB0byBjb3VudCB0aGUgcHMgcmVtb3ZlZCBhdCB0aGlzIHN0YWdlIAogIHBpbG90X3N1cnZleV9yYXcgJT4lIAogICMgcmVtb3ZlIHJvdyAxICYgMiAtLSBub3QgZGF0YQogIHNsaWNlKDM6bnJvdyhwaWxvdF9zdXJ2ZXlfcmF3KSkgJT4lIAogICMgcmVtb3ZlIHRlc3RpbmcgZGF0YQogIGZpbHRlcihEaXN0cmlidXRpb25DaGFubmVsICE9ICJ0ZXN0IikgJT4lIAoKICAjIG5leHQsIHJlbW92ZSBwcyB3LyBpbmNvbXBsZXRlIGRhdGEgLS0gaW5jbHVkZSBvbmx5IHRob3Mgd2hvIGhhdmUgZmluaXNoZWQgKGkuZS4sICIxIikKICBmaWx0ZXIoRmluaXNoZWQgPT0gMSkgJT4lIAogIAogICMgcmVtb3ZlIHVubmVjZXNzYXJ5IGNvbHVtbnMKICAgICMgc2hvdWxkIGJlIGRvbmUgYWZ0ZXIgb3RoZXJzIHNpbmNlIGNvbHVtbnMgdXNlZCB0byBmaWx0ZXIKICBzZWxlY3QoLWMoU3RhdHVzOklQQWRkcmVzcywgUmVzcG9uc2VJZDpFeHRlcm5hbFJlZmVyZW5jZSwgRGlzdHJpYnV0aW9uQ2hhbm5lbDpRMS4yLCBTQzApKQpgYGAKCgpBZGRpdGlvbmFsbHksIGEgInBhcnRpY2lwYW50IiBjb2x1bW4gd2FzIGFkZGVkIHRvIGRlbm90ZSB0aGUgcGFydGljaXBhbnQgSUQsIHRoZSBjb2x1bW5zIHdlcmUgcmVuYW1lZCBmb3IgZWFzaWVyIHJlZmVyZW5jZSwgIGFueSB1bmNsZWFyIG9yIGluYXBwcm9wcmlhdGUgcmVzcG9uc2VzIChlLmcuLCBub24tbnVtZXJpYyByZXNwb25zZSBmb3IgaXRlbXMgcmVxdWlyaW5nIGEgbnVtZXJpYyByZXNwb25zZSkgd2VyZSByZW1vdmVkLCBhbmQgYWxsIHZhcmlhYmxlcyB3ZXJlIGZvcm1hdHRlZCBhcyBudW1lcmljIG9yIGZhY3RvciBhcyBhcHByb3ByaWF0ZS4KCmBgYHtyIHJlbmFtZV9jb2xzX3BpbG90X3N1cl9kYXRhLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIGFkZCBhIHBhcnRpY2lwYW50IGNvbHVtbiB0byBkYXRhCnBpbG90X3N1cl9kYXRhIDwtIAogIGNiaW5kKGRhdGEuZnJhbWUoInBhcnRpY2lwYW50IiA9IGMoMTpucm93KHBpbG90X3N1cl9kYXRhX3RlbXApKSksIHBpbG90X3N1cl9kYXRhX3RlbXApCgpwaWxvdF9zdXJfZGF0YSA8LSAKICAjIGNoYW5nZSBkYXRhIGZpbGUgdHlwZSB0byB0aWJibGUgCiAgYXMudGliYmxlKHBpbG90X3N1cl9kYXRhKSAlPiUgCiAgIyByZW5hbWUgY29sdW1ucy4uLgogIGRwbHlyOjpyZW5hbWUoZHVyYXRpb25fc2VjID0gRHVyYXRpb24uLmluLnNlY29uZHMuLCBhZ2UgPSBRMS4zLCBnZW5kZXIgPSBRMS40LCBnZW5kZXJPID0gUTEuNSwgbGFuZyA9IFExLjYsIGxhbmdPID0gUTEuNywgcHJvZiA9IFExLjgsIAogICAgICAgICAgICAgICAgcHJvZ3JhbSA9IFEyLjEsIHByb2dyYW1PID0gUTIuMiwgeWVhciA9IFEyLjMsIAogICAgICAgICAgICAgICAgYWdlX2ZpcnN0X3Bob25lID0gUTMuMSwgYXBwX21vc3RfdXNlZCA9IFEzLjIsIGFwcF9tb3N0X3VzZWRPID0gUTMuMywgYXBwX21vc3RfdXNlZF90ZXh0ID0gUTMuNCwgCiAgICAgICAgICAgICAgICBpcGhvbmUgPSBRNC4xLCBTVF9hcHBfbW9zdF91c2VkID0gUTQuMiwgU1RfYXBwX21vc3RfdXNlZE8gPSBRNC4zLCBTVF9hcHBfdGV4dF9tZXNzID0gUTQuNCwgU1Rfd2Vla2x5X3RvdF9ob3VycyA9IFE0LjUsIFNUX2RhaWx5X3BpY2t1cHMgPSBRNC42LCBTVF9kYWlseV9ub3QgPSBRNC43LCAKICAgICAgICAgICAgICAgIHBob25lX3ZhbHVlID0gUTUuMSwgcGhhbnRvbSA9IFE1LjIsIGRpc3RfZGFpbHkgPSBRNS4zXzEsIGRpc3Rfc3R1ZHkgPSBRNS4zXzIsIGRpc3RfZGV2aWNlID0gUTUuNCwgZGlzdF9kZXZpY2VPID0gUTUuNSwgZGlzdF9kZXZpY2Vfc3R1ZHl3b3JrID0gUTUuNiwgZGlzdF9kZXZpY2Vfc3R1ZHl3b3JrTyA9IFE1LjcsIAogICAgICAgICAgICAgICAgZGlzdF9kZXZpY2Vfc29jaWFsID0gUTUuOCwgZGlzdF9kZXZpY2Vfc29jaWFsTyA9IFE1LjksIAogICAgICAgICAgICAgICAgcG93X25vdF91c2luZyA9IFE2LjFfMSwgcG93X25vdGlmaWNhdGlvbnNfb24gPSBRNi4xXzIsIHBvd192aWJyYXRlID0gUTYuMV8zLCBwb3dfc3R1ZHkgPSBRNi4xXzQsIHBvd19leGFtID0gUTYuMV81LCBwb3dfbGVjID0gUTYuMV82LCBwb3dfc2xlZXAgPSBRNi4xXzcsIGxvY190eXBpY2FsID0gUTYuMiwgbG9jX3N0dWR5ID0gUTYuMywgCiAgICAgICAgICAgICAgICBsb2NfZXhhbSA9IFE2LjQsIGxvY19sZWMgPSBRNi41LCBsb2Nfc29jaWFsID0gUTYuNiwgY29tX2dlbiA9IFE2LjdfMSwgY29tX3VuYXR0ZW5kZWQgPSBRNi43XzIsIGNvbV9sZWF2ZV93aXRoX290aGVycyA9IFE2LjdfMywgY29tX2xvY2tlZCA9IFE2LjdfNCwgY29tX3Jvb21fdGFzayA9IFE2LjdfNSwgCiAgICAgICAgICAgICAgICBjb21tdW5pY2F0ZSA9IFE3LjEsIGNvbW11bmljYXRlTyA9IFE3LjIsIHBob25lX3VzZSA9IFE3LjMsIHBob25lX3VzZU8gPSBRNy40LCAKICAgICAgICAgICAgICAgIE5NUFFfMSA9IFE4LjFfMSwgTk1QUV8yID0gUTguMV8yLCBOTVBRXzMgPSBROC4xXzMsIE5NUFFfNCA9IFE4LjFfNCwgTk1QUV81ID0gUTguMV81LCBOTVBRXzYgPSBROC4xXzYsIE5NUFFfNyA9IFE4LjFfNywgTk1QUV84ID0gUTguMV84LCBOTVBRXzkgPSBROC4xXzksIE5NUFFfMTAgPSBROC4yXzEsIE5NUFFfMTEgPSBROC4yXzIsIAogICAgICAgICAgICAgICAgTk1QUV8xMiA9IFE4LjJfMywgCiAgICAgICAgICAgICAgICBOTVBRXzEzID0gUTguMl80LCBOTVBRXzE0ID0gUTguMl81LCBOTVBRXzE1ID0gUTguMl82LCBOTVBRXzE2ID0gUTguMl83LCBOTVBRXzE3ID0gUTguMl84LCBOTVBRXzE4ID0gUTguMl85LCBOTVBRXzE5ID0gUTguMl8xMCwgTk1QUV8yMCA9IFE4LjJfMTEsIAogICAgICAgICAgICAgICAgTVBJUV8xID0gUTkuMV8xLCBNUElRXzIgPSBROS4xXzIsIE1QSVFfMyA9IFE5LjFfMywgTVBJUV80ID0gUTkuMV80LCBNUElRXzUgPSBROS4xXzUsIE1QSVFfNiA9IFE5LjFfNiwgTVBJUV83ID0gUTkuMV83LCBNUElRXzggPSBROS4xXzgsIE1QSVFfU0lfMSA9IFE5LjJfMSwgTVBJUV9TSV8yID0gUTkuMl8yLCBNUElRX1NJXzMgPSBROS4yXzMsIAogICAgICAgICAgICAgICAgTVBJUV9WRk9fMSA9IFE5LjNfMSwgTVBJUV9WRk9fMiA9IFE5LjNfMiwgTVBJUV9WRk9fMyA9IFE5LjNfMywgCiAgICAgICAgICAgICAgICBTQURfMSA9IFExMC4xXzEsIFNBRF8yID0gUTEwLjFfMiwgU0FEXzMgPSBRMTAuMV8zLCBTQURfNCA9IFExMC4xXzQsIFNBRF81ID0gUTEwLjFfNSwgU0FEXzYgPSBRMTAuMV82LCBTQURfNyA9IFExMC4xXzcsIFNBRF84ID0gUTEwLjFfOCwgU0FEXzkgPSBRMTAuMV85LCBTQURfMTAgPSBRMTAuMV8xMCwgU0FEXzExID0gUTEwLjFfMTEsIAogICAgICAgICAgICAgICAgU0FEXzEyID0gUTEwLjFfMTIsIFNBRF8xMyA9IFExMC4xXzEzCiAgICAgICAgICAgICAgICApICU+JSAKICAKIyByZXBsYWNlIHVuY2xlYXIvaW5hcHByb3ByaWF0ZSByZXNwb25zZXMKICAjIHJlbW92ZSBub24tbnVtZXJpYyByZXNwb25zZXMgdG8gImFnZV9maXJzdF9waG9uZSIKICAgICMgdGhpcyB3aWxsIGZvcmNlIGFsbCBub24tbnVtZXJpYyB2YWx1ZSB0byAiTkEiCiAgbXV0YXRlKGFnZV9maXJzdF9waG9uZSA9IGFzLm51bWVyaWMoYWdlX2ZpcnN0X3Bob25lKSkgJT4lIAogIAogICMgY2hhbmdlIHZhcmlhYmxlcyB0byBudW1lcmljIG9yIGZhY3RvciBhcyBuZWVkZWQKICBtdXRhdGUoYWdlID0gYXMubnVtZXJpYyhhZ2UpLCBhZ2UgPSBhcy5udW1lcmljKGFnZSksIGdlbmRlciA9IGZhY3RvcihnZW5kZXIsIGxldmVscyA9IGMoMTo0KSwgbGFiZWxzID0gYygiTWFsZSIsICJGZW1hbGUiLCAiUHJlZmVyIG5vdCB0byBzYXkiLCAiT3RoZXIiKSksIGxhbmcgPSBmYWN0b3IobGFuZywgbGV2ZWxzID0gYygxOjIpLCBsYWJlbHMgPSBjKCJFbmdsaXNoIiwgIk90aGVyIikpLCBwcm9mID0gZmFjdG9yKHByb2YsIGxldmVscyA9IGMoMTozKSwgbGFiZWxzID0gYygiTG93IiwgIk1vZGVyYXRlIiwgIkhpZ2giKSksIHByb2dyYW0gPSBmYWN0b3IocHJvZ3JhbSwgbGV2ZWxzID0gYygxOjEzKSwgbGFiZWxzID0gYygiQXJ0cyAmIEh1bWFuaXRpZXMiLCAiTXVzaWMiLCAiRWR1Y2F0aW9uIiwgIkVuZ2luZWVyaW5nIiwgIkhhYWx0aCBTY2llbmNlIiwgIkluZm9ybWF0aW9uICYgTWVkaWEgU3R1ZGllcyIsICJMYXciLCAiQnVzaW5lc3MiLCAiU2NpZW5jZSIsICJTb2NpYWwgU2NpZW5jZSIsICJTY2h1bGljaCBEZW50aXN0cnkiLCAiR3JhZHVhdGUgU3R1ZGllcyIsICJPdGhlciIpKSwgeWVhciA9IGZhY3Rvcih5ZWFyLCBsZXZlbHMgPSBjKDE6NiksIGxhYmVscyA9IGMoIkZpcnN0IFllYXIiLCAiU2Vjb25kIFllYXIiLCAiVGhpcmQgWWVhciIsICJGb3VydGggWWVhciIsICJGaWZ0aCBZZWFyKyIsICJHcmFkdWF0ZSBTdHVkZW50IikpLCBhcHBfbW9zdF91c2VkID0gZmFjdG9yKGFwcF9tb3N0X3VzZWQsIGxldmVscyA9IGMoMTo0KSwgbGFiZWxzID0gYygiR2FtZXMiLCAiU29jaWFsIE5ldHdvcmtpbmciLCAiRW50ZXJ0YWlubWVudCIsICJPdGhlciIpKSwgaXBob25lID0gZmFjdG9yKGlwaG9uZSwgbGV2ZWxzID0gYygxOjIpLCBsYWJlbHMgPSBjKCJ5ZXMiLCAibm8iKSksIFNUX2FwcF9tb3N0X3VzZWQgPSBmYWN0b3IoU1RfYXBwX21vc3RfdXNlZCwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCJHYW1lcyIsICJTb2NpYWwgTmV0d29ya2luZyIsICJFbnRlcnRhaW5tZW50IiwgIk90aGVyIikpLCBTVF9hcHBfdGV4dF9tZXNzID0gZmFjdG9yKFNUX2FwcF90ZXh0X21lc3MsIGxldmVscyA9IGMoMToyKSwgbGFiZWxzID0gYygieWVzIiwgIm5vIikpLCBTVF93ZWVrbHlfdG90X2hvdXJzID0gZmFjdG9yKFNUX3dlZWtseV90b3RfaG91cnMsIGxldmVscyA9IGMoMTo1KSwgbGFiZWxzID0gYygiMC0xMCIsICIxMS0yMCIsICIyMS0zMCIsICIzMS00MCIsICI0MCsiKSksIFNUX2RhaWx5X3BpY2t1cHMgPSBmYWN0b3IoU1RfZGFpbHlfcGlja3VwcywgbGV2ZWxzID0gYygxOjUpLCBsYWJlbHMgPSBjKCIwLTUwIiwgIjUxLTEwMCIsICIxMDEtMTUwIiwgIjE1MS0yMDAiLCAiMjAwKyIpKSwgU1RfZGFpbHlfbm90ID0gZmFjdG9yKFNUX2RhaWx5X25vdCwgbGV2ZWxzID0gYygxOjUpLCBsYWJlbHMgPSBjKCIwLTUwIiwgIjUxLTEwMCIsICIxMDEtMTUwIiwgIjE1MS0yMDAiLCAiMjAwKyIpKSwgcGhvbmVfdmFsdWUgPSBmYWN0b3IocGhvbmVfdmFsdWUsIGxldmVscyA9IGMoMTo0KSwgbGFiZWxzID0gYygiJDAtJDIwIiwgIiQyMS0kNDAiLCAiJDQxLSQ2MCIsICI+JDYwIikpLCBwaGFudG9tID0gZmFjdG9yKHBoYW50b20sIGxldmVscyA9IGMoMToyKSwgbGFiZWxzID0gYygieWVzIiwgIm5vIikpLCBkaXN0X2RhaWx5ID0gYXMubnVtZXJpYyhkaXN0X2RhaWx5KSwgZGlzdF9zdHVkeSA9IGFzLm51bWVyaWMoZGlzdF9zdHVkeSksIGRpc3RfZGV2aWNlID0gZmFjdG9yKGRpc3RfZGV2aWNlLCBsZXZlbHMgPSBjKDE6NSksIGxhYmVscyA9IGMoIkNvbXB1dGVyIiwgIlBob25lIiwgImlQYWQvVGFibGV0IiwgIlNtYXJ0d2F0Y2giLCAiT3RoZXIiKSksIGRpc3RfZGV2aWNlX3N0dWR5d29yayA9IGZhY3RvcihkaXN0X2RldmljZV9zdHVkeXdvcmssIGxldmVscyA9IGMoMTo1KSwgbGFiZWxzID0gYygiQ29tcHV0ZXIiLCAiUGhvbmUiLCAiaVBhZC9UYWJsZXQiLCAiU21hcnR3YXRjaCIsICJPdGhlciIpKSwgZGlzdF9kZXZpY2Vfc29jaWFsID0gZmFjdG9yKGRpc3RfZGV2aWNlX3NvY2lhbCwgbGV2ZWxzID0gYygxOjUpLCBsYWJlbHMgPSBjKCJDb21wdXRlciIsICJQaG9uZSIsICJpUGFkL1RhYmxldCIsICJTbWFydHdhdGNoIiwgIk90aGVyIikpLCBwb3dfbm90X3VzaW5nID0gYXMubnVtZXJpYyhwb3dfbm90X3VzaW5nKSwgcG93X25vdGlmaWNhdGlvbnNfb24gPSBhcy5udW1lcmljKHBvd19ub3RpZmljYXRpb25zX29uKSwgcG93X3ZpYnJhdGUgPSBhcy5udW1lcmljKHBvd192aWJyYXRlKSwgcG93X3N0dWR5ID0gYXMubnVtZXJpYyhwb3dfc3R1ZHkpLCBwb3dfZXhhbSA9IGFzLm51bWVyaWMocG93X2V4YW0pLCBwb3dfbGVjID0gYXMubnVtZXJpYyhwb3dfbGVjKSwgcG93X3NsZWVwID0gYXMubnVtZXJpYyhwb3dfc2xlZXApLCBsb2NfdHlwaWNhbCA9IGZhY3Rvcihsb2NfdHlwaWNhbCwgbGV2ZWxzID0gYygxOjMpLCBsYWJlbHMgPSBjKCJPbiBteSBkZXNrIiwgIkluIG15IHBvY2tldCBvciBiYWciLCAiSW4gYW5vdGhlciByb29tIikpLCBsb2Nfc3R1ZHkgPSBmYWN0b3IobG9jX3N0dWR5LCBsZXZlbHMgPSBjKDE6MyksIGxhYmVscyA9IGMoIk9uIG15IGRlc2siLCAiSW4gbXkgcG9ja2V0IG9yIGJhZyIsICJJbiBhbm90aGVyIHJvb20iKSksIGxvY19leGFtID0gZmFjdG9yKGxvY19leGFtLCBsZXZlbHMgPSBjKDE6MyksIGxhYmVscyA9IGMoIk9uIG15IGRlc2siLCAiSW4gbXkgcG9ja2V0IG9yIGJhZyIsICJJbiBhbm90aGVyIHJvb20iKSksIGxvY19sZWMgPSBmYWN0b3IobG9jX2xlYywgbGV2ZWxzID0gYygxOjMpLCBsYWJlbHMgPSBjKCJPbiBteSBkZXNrIiwgIkluIG15IHBvY2tldCBvciBiYWciLCAiSW4gYW5vdGhlciByb29tIikpLCBsb2Nfc29jaWFsID0gZmFjdG9yKGxvY19zb2NpYWwsIGxldmVscyA9IGMoMTozKSwgbGFiZWxzID0gYygiT24gbXkgZGVzayIsICJJbiBteSBwb2NrZXQgb3IgYmFnIiwgIkluIGFub3RoZXIgcm9vbSIpKSwgY29tX2dlbiA9IGFzLm51bWVyaWMoY29tX2dlbiksIGNvbV91bmF0dGVuZGVkID0gYXMubnVtZXJpYyhjb21fdW5hdHRlbmRlZCksIGNvbV9sZWF2ZV93aXRoX290aGVycyA9IGFzLm51bWVyaWMoY29tX2xlYXZlX3dpdGhfb3RoZXJzKSwgY29tX2xvY2tlZCA9IGFzLm51bWVyaWMoY29tX2xvY2tlZCksIGNvbV9yb29tX3Rhc2sgPSBhcy5udW1lcmljKGNvbV9yb29tX3Rhc2spLCBjb21tdW5pY2F0ZSA9IGZhY3Rvcihjb21tdW5pY2F0ZSwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCJGYW1pbHkiLCAiRnJpZW5kcyIsICJXb3JrIiwgIk90aGVyIikpLCBwaG9uZV91c2UgPSBmYWN0b3IocGhvbmVfdXNlLCBsZXZlbHMgPSBjKDEsMiwgNSwgMywgNCksIGxhYmVscyA9IGMoIkNhbGxpbmcvVGV4dGluZyIsICJTb2NpYWwgTWVkaWEiLCAiR2FtZXMiLCAiRW1haWwiLCAiT3RoZXIiKSkKICAgICAgICAgKSAlPiUgCiAgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoIk5NUFEiKSksZnVucyhhcy5udW1lcmljKSkgJT4lIAogIG11dGF0ZV9hdCh2YXJzKHN0YXJ0c193aXRoKCJNUElRIikpLGZ1bnMoYXMubnVtZXJpYykpICU+JSAKICBtdXRhdGVfYXQodmFycyhzdGFydHNfd2l0aCgiU0FEIikpLGZ1bnMoYXMubnVtZXJpYykpICU+JSAKICAKICAjIHJldmVyc2UgY29kZSBpdGVtcy4uLgogIG11dGF0ZShNUElRX1ZGT18yUiA9IDgtTVBJUV9WRk9fMikgJT4lIAogIAogICMgYWRkIHNjb3JlcyBmb3IgZWFjaCBxdWVzdGlvbm5haXJlLi4uIAogICMgZm9yIGVhY2ggcC4uLi4KICByb3d3aXNlKCkgJT4lIAogIG11dGF0ZSgKICAgICMgZ2V0IE5NUFEgc2NvcmUgLS0gU1VNCiAgICBOTVBRX3N1bSA9IE5NUFFfMSArIE5NUFFfMiArIE5NUFFfMyArIE5NUFFfNCArIE5NUFFfNSArIE5NUFFfNiArIE5NUFFfNyArIE5NUFFfOCArIE5NUFFfOSArIE5NUFFfMTAgKyBOTVBRXzExICsgTk1QUV8xMiArIE5NUFFfMTMgKyBOTVBRXzE0ICsgTk1QUV8xNSArIE5NUFFfMTYgKyBOTVBRXzE3ICsgTk1QUV8xOCArIE5NUFFfMTkgKyBOTVBRXzIwLCAKICAgICMgZ2V0IE5NUFEgc2NvcmUgLS0gTUVBTgogICAgTk1QUV9tZWFuID0gbWVhbihOTVBRXzEsIE5NUFFfMiwgTk1QUV8zLCBOTVBRXzQsIE5NUFFfNSwgTk1QUV82LCBOTVBRXzcsIE5NUFFfOCwgTk1QUV85LCBOTVBRXzEwLCBOTVBRXzExLCBOTVBRXzEyLCBOTVBRXzEzLCBOTVBRXzE0LCBOTVBRXzE1LCBOTVBRXzE2LCBOTVBRXzE3LCBOTVBRXzE4LCBOTVBRXzE5LCBOTVBRXzIwKSwgCiAgICAKICAgICMgZ2V0IE1QSVEgc2NvcmUgLS0gU1VNCiAgICBNUElRX3N1bSA9IE1QSVFfMSArIE1QSVFfMiArIE1QSVFfMyArIE1QSVFfNCArIE1QSVFfNSArIE1QSVFfNiArIE1QSVFfNyArIE1QSVFfOCwgIAogICAgIyBnZXQgTVBJUSBzY29yZSAtLSBNRUFOCiAgICBNUElRX21lYW4gPSBtZWFuKE1QSVFfMSwgTVBJUV8yLCBNUElRXzMsIE1QSVFfNCwgTVBJUV81LCBNUElRXzYsIE1QSVFfNywgTVBJUV84KSwgCiAgICAKICAgICMgZ2V0IE1QSVFfU0kgc2NvcmUgLS0gU1VNCiAgICBNUElRX1NJX3N1bSA9IE1QSVFfU0lfMSArIE1QSVFfU0lfMiArIE1QSVFfU0lfMywgIAogICAgIyBnZXQgTVBJUV9TSSBzY29yZSAtLSBNRUFOCiAgICBNUElRX1NJX21lYW4gPSBtZWFuKE1QSVFfU0lfMSwgTVBJUV9TSV8yLCBNUElRX1NJXzMpLCAKICAgIAogICAgIyBnZXQgTVBJUV9WRk8gc2NvcmUgLS0gU1VNCiAgICBNUElRX1ZGT19zdW0gPSBNUElRX1ZGT18xICsgTVBJUV9WRk9fMlIgKyBNUElRX1ZGT18zLCAgCiAgICAjIGdldCBNUElRX1ZGTyBzY29yZSAtLSBNRUFOCiAgICBNUElRX1ZGT19tZWFuID0gbWVhbihNUElRX1ZGT18xLCBNUElRX1ZGT18yUiwgTVBJUV9WRk9fMyksIAogICAgCiAgICAjIGdldCBTQUQgc2NvcmUgLS0gU1VNCiAgICBTQURfc3VtID0gU0FEXzEgKyBTQURfMiArIFNBRF8zICsgU0FEXzQgKyBTQURfNSArIFNBRF82ICsgU0FEXzcgKyBTQURfOCArIFNBRF85ICsgU0FEXzEwICsgU0FEXzExICsgU0FEXzEyICsgU0FEXzEzLCAKICAgICMgZ2V0IFNBRCBzY29yZSAtLSBNRUFOCiAgICBTQURfbWVhbiA9IG1lYW4oU0FEXzEsIFNBRF8yLCBTQURfMywgU0FEXzQsIFNBRF81LCBTQURfNiwgU0FEXzcsIFNBRF84LCBTQURfOSwgU0FEXzEwLCBTQURfMTEsIFNBRF8xMiwgU0FEXzEzKSwKICAgIAogICAgIyBnZXQgU0FEX2RlcCBzY29yZSAtLSBTVU0KICAgIFNBRF9kZXBfc3VtID0gU0FEXzEgKyBTQURfMiArIFNBRF8zICsgU0FEXzQgKyBTQURfNSwgCiAgICAjIGdldCBTQURfZGVwIHNjb3JlIC0tIE1FQU4KICAgIFNBRF9kZXBfbWVhbiA9IG1lYW4oU0FEXzEsIFNBRF8yLCBTQURfMywgU0FEXzQsIFNBRF81KSwKICAgIAogICAgIyBnZXQgU0FEX2VhIHNjb3JlIC0tIFNVTQogICAgU0FEX2VhX3N1bSA9IFNBRF84ICsgU0FEXzkgKyBTQURfMTAgKyBTQURfMTEsIAogICAgIyBnZXQgU0FEX2VhIHNjb3JlIC0tIE1FQU4KICAgIFNBRF9lYV9tZWFuID0gbWVhbihTQURfOCwgU0FEXzksIFNBRF8xMCwgU0FEXzExKSwgCiAgICAKICAgICMgZ2V0IFNBRF9kaXN0IHNjb3JlIC0tIFNVTQogICAgU0FEX2Rpc3Rfc3VtID0gU0FEXzcgKyBTQURfMTIgKyBTQURfMTMsIAogICAgIyBnZXQgU0FEX2Rpc3Qgc2NvcmUgLS0gTUVBTgogICAgU0FEX2Rpc3RfbWVhbiA9IG1lYW4oU0FEXzcsIFNBRF8xMixTQURfMTMpCiAgICAgICAgICkKYGBgCgoKVGhpcyBpcyB0aGUgcHJpbWFyeSBkYXRhIGZpbGUgZm9yIHRoZSBwaWxvdCBzdHVkeS4gSXQgY29udGFpbnMgcmVzcG9uc2VzIHRvIHRoZSA0IHBpbG90IHF1ZXN0aW9ubmFpcmVzOgotICgxKSBBIFNtYXJ0cGhvbmUgVXNlIFF1ZXN0aW9ubmFpcmUgKG1hZGUgZm9yIHRoZSBwcmVzZW50IHN0dWR5KQotICgyKSBUaGUgTm9tb3Bob2JpYSBRdWVzdGlvbm5haXJlIChOTVAtUTsgWWlsZGlyaW0gJiBDb3JyZWlhLCAyMDE1KQotICgzKSBUaGUgTW9iaWxlIFBob25lIEludm9sdmVtZW50IFF1ZXN0aW9ubmFpcmUgKE1QSVE7IFdhbHNoIGV0IGFsLiwgMjAxMCkKLSAoNCkgVGhlIFNtYXJ0cGhvbmUgQXR0YWNobWVudCBhbmQgRGVwZW5kZW5jeSBRdWVzdGlvbm5haXJlIChTQUQ7IFdhcmQgZXQgYWwuLCAyMDE3KQoKCiMjIyMgKDEpIFNtYXJ0cGhvbmUgVXNlIFF1ZXN0aW9ubmFpcmUgLSBHZW5lcmFsIE5vdGVzOgoKKiAqKnBhcnRpY2lwYW50KiogZGVub3RlcyBwYXJ0aWNpcGFudCBudW1iZXIuCgoqICoqU3RhcnREYXRlKiogZGVub3RlcyB0aGUgZGF0ZSBwYXJ0aWNpcGFudHMgc3RhcnRlZCB0aGUgcGlsb3Qgc3R1ZHkuCgoqICoqRW5kIERhdGUqKiBkZW5vdGVzIHRoZSBkYXRlIHBhcnRpY2lwYW50cyBlbmRlZCB0aGUgcGlsb3Qgc3R1ZHkuCgoqICoqUHJvZ3Jlc3MqKiBkZW5vdGVzIGhvdyBtdWNoIG9mIHRoZSBwaWxvdCBzdHVkeSB0aGUgcGFydGljaXBhbnQgaGFzIGNvbXBsZXRlZCAoaS5lLiwgb3V0IG9mIDEwMCUpLgoKKiAqKkR1cmF0aW9uSW5TZWMqKiBkZW5vdGVzIGhvdyBsb25nIHBhcnRpY2lwYW50cyB0b29rIHRvIGNvbXBsZXRlIHRoZSBwaWxvdCBzdHVkeSBpbiBzZWNvbmRzLgoKKiAqKkZpbmlzaGVkKiogZGVub3RlcyBpZiBwYXJ0aWNpcGFudHMgY29tcGxldGVkIHRoZSBzdHVkeS4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9IFRSVUUKICAgIC0gMiA9IEZBTFNFCiAgICAKKiAqKlJlY29yZGVkRGF0ZSoqIGRlbm90ZXMgdGhlIGRhdGUgcGFydGljaXBhbnRzJyBkYXRhIHdhcyByZWNvcmRlZC4KCiogKipBZ2UqKiBzaG93cyBlYWNoIHBhcnRpY2lwYW50J3Mgc2VsZi1yZXBvcnRlZCBhZ2UuCgoqICoqR2VuZGVyKiogcmVmZXJzIHRvIHBhcnRpY2lwYW50J3Mgc2VsZi1yZXBvcnRlZCBnZW5kZXIuIFRoaXMgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CiAgICAtIDEgPSBNYWxlCiAgICAtIDIgPSBGZW1hbGUKICAgIC0gMyA9IE90aGVyCiAgICAKKiAqKkdlbmRlck90aGVyKiogcmVmZXJzIHRvIHBhcnRpY2lwYW50J3MgZ2VuZGVyIGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgoqICoqRmlyc3RMYW5ndWFnZSoqIHJlZmVycyB0byBzZWxmLXJlcG9ydGVkIGZpcnN0IGxhbmd1YWdlLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gRW5nbGlzaAogICAgLSAyID0gQW55IG90aGVyIGxhbmd1YWdlCiAgICAKKiAqKkZpcnN0TGFuZ3VhZ2VPdGhlcioqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIGZpcnN0IGxhbmd1YWdlIGlmICdhbnkgb3RoZXIgbGFuZ3VhZ2UnIHdhcyBzZWxlY3RlZC4gVGhpcyB3YXMgYSBvcGVuIHJlc3BvbnNlIGl0ZW0sIHdoZXJlICJOQSIgZGVub3RlcyAib3RoZXIiIHdhcyBub3QgY2hvc2VuLgogICAgCiogKipFbmdsaXNoUHJvZmljaWVuY3kqKiByZWZlcnMgdG8gcGFydGljaXBhbnQncyBzZWxmLXJlcG9ydGVkIHByb2ZpY2llbmN5IGluIEVuZ2xpc2guIFRoaXMgd2FzIGFza2VkIG9mIGFsbCBwYXJ0aWNpcGFudHMsIHJlZ2FybGVzcyBvZiB0aGVpciBmaXJzdCBsYW5ndWFnZS4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9IExvdwogICAgLSAyID0gTW9kZXJhdGUKICAgIC0gMyA9IEhpZ2gKICAgIAoqICoqUHJvZ3JhbSoqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIHByb2dyYW0gb2Ygc3R1ZHkuIFRoaXMgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CgogICAgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIDEgPQlBcnRzICYgSHVtYW5pdGllcyAgICAgICAgICAgIHwgOCA9IEJ1c2luZXNzIAogICAgMiA9CU11c2ljICAgICAgICAgICAgICAgICAgICAgICAgfCA5ID0gU2NpZW5jZSAKICAgIDMJPSBFZHVjYXRpb24gICAgICAgICAgICAgICAgICAgIHwgMTAgPSBTb2NpYWwgU2NpZW5jZSAKICAgIDQJPSBFbmdpbmVlcmluZyAgICAgICAgICAgICAgICAgIHwgMTEgPSBTY2h1bGljaCBEZW50aXN0cnkKICAgIDUJPSBIZWFsdGggU2NpZW5jZSAgICAgICAgICAgICAgIHwgMTIgPSBHcmFkdWF0ZSBTdHVkaWVzCiAgICA2ID0JSW5mb3JtYXRpb24gJiBNZWRpYSBTdHVkaWVzICB8IDEzID0gT3RoZXIKICAgIDcgPQlMYXcgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAgICAKICAgIAoqICoqUHJvZ3JhbU90aGVyKiogcmVmZXJzIHRvIHBhcnRpY2lwYW50J3MgcHJvZ3JhbSBpZiAnb3RoZXInIHdhcyBzZWxlY3RlZC4gVGhpcyB3YXMgYSBvcGVuIHJlc3BvbnNlIGl0ZW0sIHdoZXJlICJOQSIgZGVub3RlcyAib3RoZXIiIHdhcyBub3QgY2hvc2VuLgogICAgCiogKipZZWFyT2ZTdHVkeSoqIHJlZmVycyB0byB3aGljaCB5ZWFyIG9mIHN0dWR5IHBhcnRpY2lwYW50cyB3ZXJlIGluIGR1cmluZyB0ZXN0aW5nLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gRmlyc3QgWWVhcgogICAgLSAyID0gU2Vjb25kIFllYXIKICAgIC0gMyA9IFRoaXJkIFllYXIKICAgIC0gNCA9IGZvdXJ0aCBZZWFyCiAgICAtIDUgPSA1dGgrIFllYXIKICAgIC0gNiA9IEdyYWR1YXRlIFN0dWRlbnQKCiogKipBZ2VGaXJzdFBob25lKiogcmVmZXJzIHRvIHRoZSBzZWxmLXJlcG9ydGVkIGFnZSB3aGVuIHBhcnRpY2lwYW50cyBnb3QgdGhlaXIgZmlyc3Qgc21hcnRwaG9uZS4gVGhpcyB3YXMgYSBvcGVuIHJlc3BvbnNlIGl0ZW0sIHdoZXJlICJOQSIgZGVub3RlcyBubyByZXNwb25zZS4KCiogKipBcHBNb3N0VXNlZENhdCoqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIG1vc3QgdXNlZCBzbWFydHBob25lIGFwcGxpY2F0aW9uLCBjaG9zZW4gZnJvbSAoYW5kIGNvZGVkIGFzKSB0aGUgZm9sbG93aW5nIGNhdGVnb3JpZXM6CiAgICAtIDEgPSBHYW1lcyAoZS5nLiwgY2FuZHkgY3J1c2gsIGNsYXNoIG9mIGNsYW5zKQogICAgLSAyID0gU29jaWFsIE5ldHdvcmtpbmcgKGUuZy4sIEluc3RhZ3JhbSwgRmFjZWJvb2ssIFNuYXBjaGF0KQogICAgLSAzID0gRW50ZXJ0YWlubWVudCAoZS5nLiwgbXVzaWMsIFlvdVR1YmUpCiAgICAtIDQgPSBPdGhlcgoKKiAqKkFwcE1vc3RVc2VkQ2F0T3RoZXIqKiByZWZlcnMgdG8gcGFydGljaXBhbnQncyBtb3N0IHVzZWQgc21hcnRwaG9uZSBhcHBsaWNhdGlvbiAoZnJvbSBhIGNhdGVnb3J5KSBpZiAnb3RoZXInIHdhcyBzZWxlY3RlZC4gVGhpcyB3YXMgYSBvcGVuIHJlc3BvbnNlIGl0ZW0sIHdoZXJlICJOQSIgZGVub3RlcyAib3RoZXIiIHdhcyBub3QgY2hvc2VuLgoKKiAqKkFwcE1vc3RVc2VkRnJlZSoqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIG1vc3QgdXNlZCBzbWFydHBob25lIGFwcGxpY2F0aW9uLiBIZXJlLCBwYXJ0aWNpcGFudCBzcGVjaWZpZWQgdGhlIHNwZWNpZmljIGFwcGxpY2F0aW9uIHRoZXkgdXNlIHRoZSBtb3N0IG9uIHRoZWlyIHNtYXJ0cGhvbmUuIFRoaXMgd2FzIGEgb3BlbiByZXNwb25zZSBpdGVtLCB3aGVyZSAiTkEiIGRlbm90ZXMgbm8gcmVzcG9uc2UuCgogICAgCiogKipPdGhlcioqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgojIyMjIyBQYXJhZGlnbSBEZWNpc2lvbiBRdWVzdGlvbnMKKiBUaGVzZSBxdWVzdGlvbnMgYXNrZWQgcGFydGljaXBhbnRzIHRvIHJlcG9ydCB0aGVpciBnZW5lcmFsIHNtYXJ0cGhvbmUgdXNlIHdpdGggcmVzcGVjdCB0byAoMSkgUG93ZXIsICgyKSBMb2NhdGlvbiwgYW5kICgzKSBDb21mb3J0IExldmVsLiBUaGVzZSBhcmUgdGhlIGtleSBxdWVzdGlvbnMgaW4gdGhlIHBpbG90IHRoYXQgd2VyZSB1c2VkIHRvIGRlY2lkZSB0aGUgZGVzaWduIG9mIHRoZSBtYWluIHN0dWR5LgoKIyMjIyMjIFBvd2VyIFF1ZXN0aW9ucwoqIEFsbCBwb3dlciBxdWVzdGlvbnMgd2VyZSBhbnN3ZXJlZCBvbiBhIDctcG9pbnQgbGlrZXJ0IHNjYWxlIGFzIGZvbGxvd3M6CiAgICAtIDx0ZCBjb2xzcGFuID0gNz4gPHRkPnwgICAKICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18CiAgICAgICAgMSA9IFN0cm9uZ2x5IERpc2FncmVlIHwgMiA9IERpc2FncmVlICB8IDMgPSBTb21ld2hhdCBEaXNhZ3JlZSB8IDQgPSBOZXV0cmFsICB8IDUgPSBTb21ld2hhdCBBZ3JlZSAgfCA2ID0gQWdyZWUgfCA3ID0gU3Ryb25nbHkgQWdyZWUKCiogKipQRF9QXzEqKjogIkkgdGVuZCB0byB0dXJuIG15IHBob25lIG9mZiB3aGVuIEkgYW0gbm90IHVzaW5nIGl0LiIuCgoqICoqUERfUF8yKio6ICJJIHRlbmQgdG8gaGF2ZSBteSBub3RpZmljYXRpb25zIHR1cm5lZCBvbi4iCgoqICoqUERfUF8zKio6ICJJIHRlbmQgdG8gaGF2ZSBteSBwaG9uZSBvbiB2aWJyYXRlLiIKCiogKipQRF9QXzQqKjogIldoZW4gSSBzdHVkeSwgSSB0eXBpY2FsbHkga2VlcCBteSBwaG9uZSBvbi4iCgoqICoqUERfUF81Kio6ICJXaGVuIEkgd3JpdGUgYW4gZXhhbSwgSSB0ZW5kIHRvIGtlZXAgbXkgcGhvbmUgb24uIgoKKiAqKlBEX1BfNioqOiAiV2hlbiBJIGFtIGluIGEgbGVjdHVyZSwgSSB0ZW5kIHRvIGtlZXAgbXkgcGhvbmUgb24uIgoKKiAqKlBEX1BfNyoqOiAiV2hlbiBJIHNsZWVwLCBJIHRlbmQgdG8ga2VlcCBteSBwaG9uZSB0dXJuZWQgb24uIgoKIyMjIyMjIExvY2F0aW9uIFF1ZXN0aW9ucwoqIEFsbCBwb3dlciBxdWVzdGlvbnMgd2VyZSBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSA8dGQgY29sc3BhbiA9IDc+IDx0ZD58ICAgCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tCiAgICAgICAgMSA9IERlc2sgfCAyID0gUG9ja2V0L0JhZyAgfCAzID0gT3RoZXIgUm9vbQogICAgICAgIAoqICoqUERfTF8xKio6ICJUeXBpY2FsbHksIEkga2VlcCBteSBwaG9uZToiCgoqICoqUERfTF8yKio6ICJXaGVuIEkgc3R1ZHksIEkga2VlcCBteSBwaG9uZToiCgoqICoqUERfTF8zKio6ICJXaGVuIEkgd3JpdGUgYW4gZXhhbSwgSSBrZWVwIG15IHBob25lOiIKCiogKipQRF9MXzQqKjogIldoZW4gSSBhbSBpbiBhIGxlY3R1cmUsIEkga2VlcCBteSBwaG9uZToiCgoqICoqUERfTF81Kio6ICJXaGVuIEkgYW0gaW4gYSBzb2NpYWwgc2V0dGluZyAoaS5lLiwgd2l0aCBmcmllbmRzLCBmYW1pbHkpLCBJIGtlZXAgbXkgcGhvbmU6IgoKIyMjIyMjIENvbWZvcnQgTGV2ZWwgUXVlc3Rpb25zCiogQWxsIGNvbWZvcnQgbGV2ZWwgcXVlc3Rpb25zIHdlcmUgYW5zd2VyZWQgb24gYSA3LXBvaW50IGxpa2VydCBzY2FsZSBhcyBmb2xsb3dzOgogICAgLSA8dGQgY29sc3BhbiA9IDc+IDx0ZD58ICAgCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfAogICAgICAgIDEgPSBTdHJvbmdseSBEaXNhZ3JlZSB8IDIgPSBEaXNhZ3JlZSAgfCAzID0gU29tZXdoYXQgRGlzYWdyZWUgfCA0ID0gTmV1dHJhbCAgfCA1ID0gU29tZXdoYXQgQWdyZWUgIHwgNiA9IEFncmVlIHwgNyA9IFN0cm9uZ2x5IEFncmVlCiAgICAgICAgCiogKipQRF9DXzEqKjogIkkgYW0gY29tZm9ydGFibGUgd2l0aCBsZXR0aW5nIG90aGVycyB1c2UgbXkgcGhvbmUuIgoKKiAqKlBEX0NfMioqOiAiSSBsZWF2ZSBteSBwaG9uZSB1bmF0dGVuZGVkLiIKCiogKipQRF9DXzMqKjogIkkgbGVhdmUgbXkgcGhvbmUgd2l0aCBvdGhlciBwZW9wbGUuIgoKKiAqKlBEX0NfNCoqOiAiSSBtYWtlIHN1cmUgbXkgcGhvbmUgaXMgbG9ja2VkIHdoZW4gaXQgaXMgbm90IGluIG15IGhhbmRzLiIKCiogKipQRF9DXzUqKjogIkkgd291bGQgZmVlbCBjb21mb3J0YWJsZSBsZWF2aW5nIG15IHBob25lIGluIGFub3RoZXIgcm9vbSB3aGlsZSBjb21wbGV0aW5nIGEgdGFzay4iIgoKIyMjIyMgRXhwbG9yYXRvcnkgUXVlc3Rpb25zCiogVGhlIGZvbGxvd2luZyBwcm92aWRlcyBzb21lIG5vdGVzIG9uIHRoZSBleHBsb3JhdG9yeSBxdWVzaXRvbnMgaW4gdGhlIHN0dWR5CgojIyMjIyMgU2NyZWVuIFRpbWUgUXVlc3Rpb25zCiogU2NyZWVudGltZSAoU1QpIGlzIGFuIEFwcGxlIGFwcGxpY2F0aW9uIHdoaWNoIHRyYWNrcyB5b3VyIGRldmljZSB1c2FnZSBvdmVyIHRpbWUuIFRoaXMgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bzogdG90YWwgaG91cnMgdXNlZCwgbm90aWZpY2F0aW9ucyByZWNlaXZlZCwgbW9zdCB1c2VkIGFwcGxpY2F0aW9uLCBldGMuIFRoZSBmb2xsb3dpbmcgcHJvdmlkZXMgc29tZSBub3RlcyBvbiB0aGUgU1Qtc3BlY2lmaWMgcXVlc3Rpb25zICg3IGl0ZW1zIGluIHRvdGFsKS4KCiogKipTVF8xKiogcmVmZXJzIHRvIHdoZXRoZXIgYSBwYXJ0aWNpcGFudCByZXBvcnRlZCAqKmN1cnJlbnRseSBvd25pbmcgYW4gaVBob25lKiouIE5vdGU6IGl0IHdhcyBhc3N1bWVkIHRoYXQgYWxsIGlQaG9uZSB1c2VycyBoYWQgYWNjZXNzIHRvIHRoZSBTVCBhcHBsaWNhdGlvbiBvbiB0aGVpciBzbWFydHBob25lLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gWWVzIAogICAgLSAyID0gTm8KICAgIAoqICoqU1RfMioqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzICoqbW9zdGVkIHVzZWQgYXBwbGljYXRpb24qKiAoYWNjb3JkaW5nIHRvIFNUKS4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9IEdhbWVzIChlLmcuLCBjYW5keSBjcnVzaCwgY2xhc2ggb2YgY2xhbnMpCiAgICAtIDIgPSBTb2NpYWwgTmV0d29ya2luZyAoZS5nLiwgSW5zdGFncmFtLCBGYWNlYm9vaywgU25hcGNoYXQpCiAgICAtIDMgPSBFbnRlcnRhaW5tZW50IChlLmcuLCBtdXNpYywgWW91VHViZSkKICAgIC0gNCA9IE90aGVyCgoqICoqU1RfMyoqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIG1vc3QgdXNlZCBhcHBsaWNhdGlvbiB3YXMgJ290aGVyJyAoYWNjb3JkaW5nIHRvIFNUKS4gVGhpcyB3YXMgYSBvcGVuIHJlc3BvbnNlIGl0ZW0sIHdoZXJlICJOQSIgZGVub3RlcyAib3RoZXIiIHdhcyBub3QgY2hvc2VuLgoKKiAqKlNUXzQqKiByZWZlcnMgdG8gd2hldGhlciBhIHBhcnRpY2lwYW50J3MgKiptb3N0IHVzZWQgYXBwbGljYXRpb24gd2FzIHRoZWlyIHRleHQgLyBtZXNzZW5nZXIqKiBhcHBsaWNhdGlvbiAoYWNjb3JkaW5nIHRvIFNUKS4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9IFllcyAKICAgIC0gMiA9IE5vCgoqICoqU1RfNSoqIHJlZmVycyB0byBwYXJ0aWNpcGFudCdzIHdlZWtseSB0b3RhbCAqKnNjcmVlbiB0aW1lIGluIGhvdXJzKiogKGFjY29yZGluZyB0byBTVCkuIFRoaXMgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CiAgICAtIDEgPSAwLTEwCiAgICAtIDIgPSAxMS0yMAogICAgLSAzID0gMjEtMzAKICAgIC0gNCA9IDMxLTQwCiAgICAtIDUgPSA0MCsKCiogKipTVF82KiogcmVmZXJzIHRvIHBhcnRpY2lwYW50J3MgKip0b3RhbCAiUGljay11cHMiIHBlciBkYXkqKiAoYWNjb3JkaW5nIHRvIFNUKS4gIlBpY2stdXBzIiByZWZlcnMgdG8gdGhlIG51bWJlciBvZiB0aW1lcyBzb21lb25lIHBpY2tzIHVwIHRoZWlyIHNtYXJ0cGhvbmUsIHJlZ2FybGVzcyBvZiB3aGV0aGVyIHRoZSBzbWFydHBob25lIHdhcyB1c2VkLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gMC01MAogICAgLSAyID0gNTEtMTAwCiAgICAtIDMgPSAxMDEtMTUwCiAgICAtIDQgPSAxNTEtMjAwCiAgICAtIDUgPSAyMDArCiAgICAKKiAqKlNUXzcqKiByZWZlcnMgdG8gcGFydGljaXBhbnQncyAqKmF2ZXJhZ2Ugbm90aWZpY2F0aW9ucyBwZXIgZGF5KiogKGFjY29yZGluZyB0byBTVCkuIFRoaXMgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CiAgICAtIDEgPSAwLTUwCiAgICAtIDIgPSA1MS0xMDAKICAgIC0gMyA9IDEwMS0xNTAKICAgIC0gNCA9IDE1MS0yMDAKICAgIC0gNSA9IDIwMCsKICAgIAojIyMjIyMgRGlzdHJhY3Rpb24gUXVlc3Rpb25zCiogVGhlc2UgZXhwbG9yZWQgaG93IHBhcnRpY2lwYW50cyByZXBvcnQgZmVlbGluZyBvciBiZWluZyBkaXN0cmFjdGVkIGJ5IHRoZWlyIHNtYXJ0cGhvbmVzIGR1cmluZyB2YXJpb3VzIHNldHRpbmdzLiAKCiogKipEaXN0cl8xKiogc2hvd3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBxdWVzdGlvbjogIkkgZmluZCBteSBwaG9uZSBjYW4gZGlzdHJhY3QgbWUgZnJvbSBteSBkYWlseSBhY3Rpdml0aWVzIChlLmcuLCB3b3JrLCBzY2hvb2wsIHNvY2lhbCBpbnRlcmFjdGlvbnMpLiIuIFRoaXMgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CiAgICAtIDx0ZCBjb2xzcGFuID0gNz4gPHRkPnwgICAKICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18CiAgICAgICAgMSA9IFN0cm9uZ2x5IERpc2FncmVlIHwgMiA9IERpc2FncmVlICB8IDMgPSBTb21ld2hhdCBEaXNhZ3JlZSB8IDQgPSBOZXV0cmFsICB8IDUgPSBTb21ld2hhdCBBZ3JlZSAgfCA2ID0gQWdyZWUgfCA3ID0gU3Ryb25nbHkgQWdyZWUKCiogKipEaXN0cl8yKiogc2hvd3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBxdWVzdGlvbjogIkkgZmluZCBteSBwaG9uZSBkaXN0cmFjdGluZyBkdXJpbmcgdGhpcyBzdHVkeS4iLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSA8dGQgY29sc3BhbiA9IDc+IDx0ZD58ICAgCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfAogICAgICAgIDEgPSBTdHJvbmdseSBEaXNhZ3JlZSB8IDIgPSBEaXNhZ3JlZSAgfCAzID0gU29tZXdoYXQgRGlzYWdyZWUgfCA0ID0gTmV1dHJhbCAgfCA1ID0gU29tZXdoYXQgQWdyZWUgIHwgNiA9IEFncmVlIHwgNyA9IFN0cm9uZ2x5IEFncmVlCgoqICoqRGlzdHJfMyoqIHNob3dzIHRoZSByZXNwb25zZSB0byB0aGUgcXVlc3Rpb246ICJJbiBnZW5lcmFsLCBJIGZpbmQgdGhlIGZvbGxvd2luZyB0aGUgbW9zdCBkaXN0cmFjdGluZyBlbGVjdHJvbmljIGRldmljZToiLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogIC0gMSA9IENvbXB1dGVyCiAgLSAyID0gUGhvbmUKICAtIDMgPSBpUGFkIC8gVGFibGV0CiAgLSA0ID0gU21hcnR3YXRjaAogIC0gNSA9IE90aGVyCgoqICoqRGlzdHJfNCoqIHNob3dzIHJlZmVycyBEaXN0cl8zIGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgoqICoqRGlzdHJfNSoqIHNob3dzIHRoZSByZXNwb25zZSB0byB0aGUgcXVlc3Rpb246ICJJIGZpbmQgdGhlIGZvbGxvd2luZyB0aGUgbW9zdCBkaXN0cmFjdGluZyB3aGVuIEkgYW0gc3R1ZHlpbmcvd29ya2luZzoiLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogIC0gMSA9IENvbXB1dGVyCiAgLSAyID0gUGhvbmUKICAtIDMgPSBpUGFkIC8gVGFibGV0CiAgLSA0ID0gU21hcnR3YXRjaAogIC0gNSA9IE90aGVyCgoqICoqRGlzdHJfNioqIHNob3dzIHJlZmVycyBEaXN0cl81IGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgoqICoqRGlzdHJfNyoqIHNob3dzIHRoZSByZXNwb25zZSB0byB0aGUgcXVlc3Rpb246ICJJIGZpbmQgdGhlIGZvbGxvd2luZyB0aGUgbW9zdCBkaXN0cmFjdGluZyB3aGVuIEkgYW0gaW4gYSBzb2NpYWwgY29udGV4dCAoZS5nLiwgd2l0aCBmcmllbmRzKToiLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogIC0gMSA9IENvbXB1dGVyCiAgLSAyID0gUGhvbmUKICAtIDMgPSBpUGFkIC8gVGFibGV0CiAgLSA0ID0gU21hcnR3YXRjaAogIC0gNSA9IE90aGVyCgoqICoqRGlzdHJfOCoqIHNob3dzIHJlZmVycyBEaXN0cl83IGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgojIyMjIyMgR2VuZXJhbCBFeHBsb3JhdG9yeSBRdWVzdGlvbnMKKiAqKkV4cF8xKiogc2hvd3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBxdWVzdGlvbjogIkhvdyBtdWNoIG1vbmV5IHdvdWxkIGl0IHRha2UgZm9yIHlvdSB0byBnaXZlIHVwIHlvdXIgcGhvbmUgZm9yIGEgZnVsbCBkYXk/Ii4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9ICQwLTIwCiAgICAtIDIgPSAkMjEtNDAKICAgIC0gMyA9ICQ0MS02MAogICAgLSA0ID0gPiQ2MAogICAgCiogKipFeHBfMioqIHNob3dzIHRoZSByZXNwb25zZSB0byB0aGUgcXVlc3Rpb246ICJIYXZlIHlvdSBldmVyIHRob3VnaHQgeW91IGhlYXJkIHlvdXIgcGhvbmUgcmluZyBvciB0aG91Z2h0IHlvdSBmZWx0IGl0IHZpYnJhdGUsIG9ubHkgdG8gZmluZCBvdXQgeW91IHdlcmUgd3Jvbmc/Ii4gVGhpcyB3YXMgY29kZWQgYXMgZm9sbG93czoKICAgIC0gMSA9IFllcyAKICAgIC0gMiA9IE5vCiAgICAKKiAqKkV4cF8zKiogc2hvd3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBxdWVzdGlvbjogIldobyBkbyB5b3UgbW9zdGx5IGNvbW11bmljYXRlIHdpdGggb24geW91ciBwaG9uZT8iLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gRmFtaWx5CiAgICAtIDIgPSBGcmllbmRzCiAgICAtIDMgPSBXb3JrCiAgICAtIDQgPSBPdGhlcgoKKiAqKkV4cF80Kiogc2hvd3MgcmVmZXJzIHRvIEV4cF8zIGlmICdvdGhlcicgd2FzIHNlbGVjdGVkLiBUaGlzIHdhcyBhIG9wZW4gcmVzcG9uc2UgaXRlbSwgd2hlcmUgIk5BIiBkZW5vdGVzICJvdGhlciIgd2FzIG5vdCBjaG9zZW4uCgoqICoqRXhwXzUqKjogc2hvd3MgdGhlIHJlc3BvbnNlIHRvIHRoZSBxdWVzdGlvbjogIldoYXQgZG8geW91IHVzZSB5b3VyIHBob25lIGZvciB0aGUgbW9zdD8iLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSAxID0gQ2FsbGluZyAvIFRleHRpbmcKICAgIC0gMiA9IFNvY2lhbCBNZWRpYSAoZS5nLiwgRmFjZWJvb2ssIEluc3RhZ3JhbSwgVHdpdHRlciwgU25hcGNoYXQpCiAgICAtIDMgPSBFbWFpbAogICAgLSA0ID0gT3RoZXIKICAgIC0gNSA9IEdhbWVzIChlLmcuLCBjYW5keSBjcnVzaCwgY2xhc2ggb2YgY2xhbnMpCgoqICoqRXhwXzYqKiBzaG93cyByZWZlcnMgdG8gRXhwXzUgaWYgJ290aGVyJyB3YXMgc2VsZWN0ZWQuIFRoaXMgd2FzIGEgb3BlbiByZXNwb25zZSBpdGVtLCB3aGVyZSAiTkEiIGRlbm90ZXMgIm90aGVyIiB3YXMgbm90IGNob3Nlbi4KCiMjIyMgKDIpIFRoZSBOb21vcGhvYmlhIFF1ZXN0aW9ubmFpcmUgKE5NUC1ROyBZaWxkaXJpbSAmIENvcnJlaWEsIDIwMTUpCiogKipOTVBfUV8xIC0gTk1QX1FfMjAqKiBzaG93cyB0aGUgcmVzcG9uc2VzIHRvIHRoZSAyMCBpdGVtcyBpbiB0aGUgTk1QLVEuIFBhcnRpY2lwYW50cyB3ZXJlIGFza2VkIHRvIGluZGljYXRlIGhvdyBtdWNoIHRoZXkgYWdyZWUgb3IgZGlzYWdyZWUgdG8gdGhlIHN0YXRlbWVudHMgb24gYSA3LXBvaW50IGxpa2VydCBzY2FsZSAod2hlcmUsICIxIiA9IFN0cm9uZ2x5IERpc2FncmVlLCBhbmQgNyA9ICJTdHJvbmdseSBBZ3JlZSIpLiAKCiogVGhlIHNjb3JlIHdhcyB0aGUgc3VtIG9mIGFsbCByZXNwb25zZXMgKHJhbmdlIGlzIGZyb20gMjDigJMxNDApLCB3aXRoIGhpZ2hlciBzY29yZXMgY29ycmVzcG9uZGluZyB0byBncmVhdGVyIG5vbW9waG9iaWEgc2V2ZXJpdHkuIFRoaXMgcmFuZ2Ugd2FzIGludGVycHJldGVkIGFzIGZvbGxvd3M6IDIwID0gYWJzZW5jZSBvZiBub21vcGhvYmlhLCAyMeKAkzU5ID0gbWlsZCBsZXZlbCBvZiBub21vcGhvYmlhLCA2MOKAkzk5ID0gbW9kZXJhdGUgbGV2ZWwgb2Ygbm9tb3Bob2JpYSwg4omlIDEwMCA9IHNldmVyZSBub21vcGhvYmlhLiBUaGlzIHdhcyBjb2RlZCBhcyBmb2xsb3dzOgogICAgLSA8dGQgY29sc3BhbiA9IDc+IEZvciBRMTIg4oCTIFEyNCwgY29kaW5nIHdhcyBhcyBmb2xsb3dzOiA8dGQ+fCAgIAogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwKICAgICAgICAxID0gU3Ryb25nbHkgRGlzYWdyZWUgfCAyID0gRGlzYWdyZWUgIHwgMyA9IFNvbWV3aGF0IERpc2FncmVlIHwgNCA9IE5ldXRyYWwgIHwgNSA9IFNvbWV3aGF0IEFncmVlICB8IDYgPSBBZ3JlZSB8IDcgPSBTdHJvbmdseSBBZ3JlZQoKKiBUaGUgaXRlbXMgd2VyZSBhcyBmb2xsb3dzOgogICAgLSBOTVBfUV8xOiBJIHdvdWxkIGZlZWwgdW5jb21mb3J0YWJsZSB3aXRob3V0IGNvbnN0YW50IGFjY2VzcyB0byBpbmZvcm1hdGlvbiB0aHJvdWdoIG15IHNtYXJ0cGhvbmUuCiAgICAtIE5NUF9RXzI6IEkgd291bGQgYmUgYW5ub3llZCBpZiBJIGNvdWxkIG5vdCBsb29rIGluZm9ybWF0aW9uIHVwIG9uIG15IHNtYXJ0cGhvbmUgd2hlbiBJIHdhbnRlZCB0byBkbyBzby4gCiAgICAtIE5NUF9RXzM6IEJlaW5nIHVuYWJsZSB0byBnZXQgdGhlIG5ld3MoZS5nLiwgaGFwcGVuaW5ncywgd2VhdGhlciwgZXRjLikgb24gbXkgc21hcnRwaG9uZSB3b3VsZCBtYWtlIG1lIG5lcnZvdXMuCiAgICAtIE5NUF9RXzQ6IEkgd291bGQgYmUgYW5ub3llZCBpZiBJIGNvdWxkIG5vdCB1c2UgbXkgc21hcnRwaG9uZSBhbmQvb3IgaXRzIGNhcGFiaWxpdGllcyB3aGVuIEkgd2FudGVkIHRvIGRvIHNvLgogICAgLSBOTVBfUV81OiBSdW5uaW5nIG91dCBvZiBiYXR0ZXJ5IGluIG15IHNtYXJ0cGhvbmUgd291bGQgc2NhcmUgbWUuCiAgICAtIE5NUF9RXzY6IElmIEkgd2VyZSB0byBydW4gb3V0IG9mIGNyZWRpdHMgb3IgaGl0IG15IG1vbnRobHkgZGF0YSBsaW1pdCwgSSB3b3VsZCBwYW5pYy4KICAgIC0gTk1QX1FfNzogSWYgSSBkaWQgbm90IGhhdmUgYSBkYXRhIHNpZ25hbCBvciBjb3VsZCBub3QgY29ubmVjdCB0byBXaS1GaSwgdGhlbiBJIHdvdWxkIGNvbnN0YW50bHkgY2hlY2sgdG8gc2VlIGlmIEkgaGFkIGEgc2lnbmFsIG9yIGNvdWxkIGZpbmQgYSBXaS1GaSBOZXR3b3JrLgogICAgLSBOTVBfUV84OiBJZiBJIGNvdWxkIG5vdCB1c2UgbXkgc21hcnRwaG9uZSwgSSB3b3VsZCBiZSBhZnJhaWQgb2YgZ2V0dGluZyBzdHJhbmRlZCBzb21ld2hlcmUuCiAgICAtIE5NUF9RXzk6IElmIEkgY291bGQgbm90IGNoZWNrIG15IHNtYXJ0cGhvbmUgZm9yIGEgd2hpbGUsIEkgd291bGQgZmVlbCBhIGRlc2lyZSB0byBjaGVjayBpdC4KICAgIAogICAgSWYgSSBkaWQgbm90IGhhdmUgbXkgc21hcnRwaG9uZSB3aXRoIG1lLCAKICAgIC0gTk1QX1FfMTA6IEkgd291bGQgZmVlbCBhbnhpb3VzIGJlY2F1c2UgSSBjb3VsZCBub3QgaW5zdGFudGx5IGNvbW11bmljYXRlIHdpdGggbXkgZmFtaWx5IGFuZC9vciBmcmllbmRzLgogICAgLSBOTVBfUV8xMTogSSB3b3VsZCBiZSB3b3JyaWVkIGJlY2F1c2UgbXkgZmFtaWx5IGFuZC9vciBmcmllbmRzIGNvdWxkIG5vdCByZWFjaCBtZS4KICAgIC0gTk1QX1FfMTI6IEkgd291bGQgZmVlbCBuZXJ2b3VzIGJlY2F1c2UgSSB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNlaXZlIHRleHQgbWVzc2FnZXMgYW5kIGNhbGxzLgogICAgLSBOTVBfUV8xMzogSSB3b3VsZCBiZSBhbnhpb3VzIGJlY2F1c2UgSSBjb3VsZCBub3Qga2VlcCBpbiB0b3VjaCB3aXRoIG15IGZhbWlseSBhbmQvb3IgZnJpZW5kcy4KICAgIC0gTk1QX1FfMTQ6IEkgd291bGQgYmUgbmVydm91cyBiZWNhdXNlIEkgY291bGQgbm90IGtub3cgaWYgc29tZW9uZSBoYWQgdHJpZWQgdG8gZ2V0IGEgaG9sZCBvZiBtZS4KICAgIC0gTk1QX1FfMTU6IEkgd291bGQgZmVlbCBhbnhpb3VzIGJlY2F1c2UgbXkgY29uc3RhbnQgY29ubmVjdGlvbiB0byBteSBmYW1pbHkgYW5kIGZyaWVuZHMgd291bGQgYmUgYnJva2VuLgogICAgLSBOTVBfUV8xNjogSSB3b3VsZCBiZSBuZXJ2b3VzIGJlY2F1c2UgSSB3b3VsZCBiZSBkaXNjb25uZWN0ZWQgZnJvbSBteSBvbmxpbmUgaWRlbnRpdHkuCiAgICAtIE5NUF9RXzE3OiBJIHdvdWxkIGJlIHVuY29tZm9ydGFibGUgYmVjYXVzZSBJIGNvdWxkIG5vdCBzdGF5IHVwLXRvLWRhdGUgd2l0aCBzb2NpYWwgbWVkaWEgYW5kIG9ubGluZSBuZXR3b3Jrcy4KICAgIC0gTk1QX1FfMTg6IEkgd291bGQgZmVlbCBhd2t3YXJkIGJlY2F1c2UgSSBjb3VsZCBub3QgY2hlY2sgbXkgbm90aWZpY2F0aW9ucyBmb3IgdXBkYXRlcyBmcm9tIG15Y29ubmVjdGlvbnMgYW5kIG9ubGluZSBuZXR3b3Jrcy4KICAgIC0gTk1QX1FfMTk6IEkgd291bGQgZmVlbCBhbnhpb3VzIGJlY2F1c2UgSSBjb3VsZCBub3QgY2hlY2sgbXkgZW1haWwgbWVzc2FnZXMuCiAgICAtIE5NUF9RXzIwOiBJIHdvdWxkIGZlZWwgd2VpcmQgYmVjYXVzZSBJIHdvdWxkIG5vdCBrbm93IHdoYXQgdG8gZG8uCgoKIyMjIyAoMykgVGhlIE1vYmlsZSBQaG9uZSBJbnZvbHZlbWVudCBRdWVzdGlvbm5haXJlIChNUElROyBXYWxzaCBldCBhbC4sIDIwMTApCiogVGhlIE1QSVEgY29uc2lzdHMgb2YgMTQgaXRlbXMgYW5kIGhhcyAqKnRocmVlIHN1YnNjYWxlcyoqLCB3aGljaCBtZWFzdXJlOiAoMSkgVGhlIE1QSVEsICgyKSBUaGUgU2VsZi1JZGVudGl0eSwgYW5kICgzKSBWYWxpZGF0aW9uIGZyb20gT3RoZXJzLiBGb3IgZWFjaCBzdWJzY2FsZSwgcGFydGljaXBhbnRzIHdlcmUgYXNrZWQgdG8gaW5kaWNhdGUgaG93IG11Y2ggdGhleSBhZ3JlZSBvciBkaXNhZ3JlZSB0byB0aGUgc3RhdGVtZW50cyBvbiBhIDctcG9pbnQgbGlrZXJ0IHNjYWxlICh3aGVyZSwgIjEiID0gU3Ryb25nbHkgRGlzYWdyZWUsIGFuZCA3ID0gIlN0cm9uZ2x5IEFncmVlIikuIFRoZSBzY29yZSB3YXMgdGhlIGF2ZXJhZ2UgZm9yIGVhY2ggc3Vic2NhbGUuIEVhY2ggc3Vic2NhbGUgd2FzIGNvZGVkIGFzIGZvbGxvd3M6CiAgICAtIDx0ZCBjb2xzcGFuID0gNz4gRm9yIFExMiDigJMgUTI0LCBjb2Rpbmcgd2FzIGFzIGZvbGxvd3M6IDx0ZD58ICAgCiAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfAogICAgICAgIDEgPSBTdHJvbmdseSBEaXNhZ3JlZSB8IDIgPSBEaXNhZ3JlZSAgfCAzID0gU29tZXdoYXQgRGlzYWdyZWUgfCA0ID0gTmV1dHJhbCAgfCA1ID0gU29tZXdoYXQgQWdyZWUgIHwgNiA9IEFncmVlIHwgNyA9IFN0cm9uZ2x5IEFncmVlCgoqICoqTVBJUV8xIC0gTVBJUV84Kiogc2hvd3MgdGhlIHJlc3BvbnNlcyB0byB0aGUgOCBpdGVtcyBpbiB0aGUgKipNUElRKiogc3Vic2NhbGUuIFRoZSBpdGVtcyB3ZXJlIGFzIGZvbGxvd3M6CiAgICAtIE1QSVFfMTogSSBvZnRlbiB0aGluayBhYm91dCBteSBtb2JpbGUgcGhvbmUgd2hlbiBJIGFtIG5vdCB1c2luZyBpdC4gKltjb2duaXRpdmUgc2FsaWVuY2VdKgogICAgLSBNUElRXzI6IEkgb2Z0ZW4gdXNlIG15IG1vYmlsZSBwaG9uZSBmb3Igbm8gcGFydGljdWxhciByZWFzb24uICpbYmVoYXZpb3VyYWwgc2FsaWVuY2VdKgogICAgLSBNUElRXzM6IEFyZ3VtZW50cyBoYXZlIGFyaXNlbiB3aXRoIG90aGVycyBiZWNhdXNlIG9mIG15IG1vYmlsZSBwaG9uZSB1c2UuICpbaW50ZXJwZXJzb25hbCBjb25mbGljdF0qCiAgICAtIE1QSVFfNDogSSBpbnRlcnJ1cHQgd2hhdGV2ZXIgZWxzZSBJIGFtIGRvaW5nIHdoZW4gSSBhbSBjb250YWN0ZWQgb24gbXkgbW9iaWxlIHBob25lLiAqW2NvbmZsaWN0IHdpdGggb3RoZXIgYWN0aXZpdGllc10qCiAgICAtIE1QSVFfNTogSSBmZWVsIGNvbm5lY3RlZCB0byBvdGhlcnMgd2hlbiBJIHVzZSBteSBtb2JpbGUgcGhvbmUuICpbZXVwaG9yaWFdKgogICAgLSBNUElRXzY6IEkgbG9zZSB0cmFjayBvZiBob3cgbXVjaCBJIGFtIHVzaW5nIG15IG1vYmlsZSBwaG9uZS4gKltsb3NzIG9mIGNvbnRyb2xdKgogICAgLSBNUElRXzc6IFRoZSB0aG91Z2h0IG9mIGJlaW5nIHdpdGhvdXQgbXkgbW9iaWxlIHBob25lIG1ha2VzIG1lIGZlZWwgZGlzdHJlc3NlZC4gKlt3aXRoZHJhd2FsXSoKICAgIC0gTVBJUV84OiBJIGhhdmUgYmVlbiB1bmFibGUgdG8gcmVkdWNlIG15IG1vYmlsZSBwaG9uZSB1c2UuICpbcmVsYXBzZSAmIHJlaW5zdGF0ZW1lbnRdKgogICAgCiogKipNUElRX1NJXzEgLSBNUElRX1NJXzMqKiBzaG93cyB0aGUgcmVzcG9uc2VzIHRvIHRoZSAzIGl0ZW1zIGluIHRoZSAqKlNlbGYtSWRlbnRpdHkqKiBzdWJzY2FsZS4gVGhlIGl0ZW1zIHdlcmUgYXMgZm9sbG93czoKICAgIC0gTVBJUV9zZWxmX0lEXzE6IFVzaW5nIGEgbW9iaWxlIHBob25lIGlzIHZlcnkgaW1wb3J0YW50IHRvIG1lLgogICAgLSBNUElRX3NlbGZfSURfMjogSSBmZWVsIGFzIHRob3VnaCBhIHBhcnQgb2YgbWUgaXMgbWlzc2luZyB3aGVuIEkgYW0gd2l0aG91dCBteSBtb2JpbGUgcGhvbmUuCiAgICAtIE1QSVFfc2VsZl9JRF8zOiBJIGNhbm5vdCBpbWFnaW5lIGxpZmUgd2l0aG91dCBteSBtb2JpbGUgcGhvbmUuCgoqICoqTVBJUV9WRk9fMSAtIE1QSVFfVkZPXzMqKiBzaG93cyB0aGUgcmVzcG9uc2VzIHRvIHRoZSA4IGl0ZW1zIGluIHRoZSAqKlZhbGlkYXRpb24gZnJvbSBPdGhlcnMqKiBzdWJzY2FsZS4gVGhlIGl0ZW1zIHdlcmUgYXMgZm9sbG93czoKICAgIC0gTVBJUV9WYWxpZGF0aW9uXzE6IEkgZmVlbCB2YWx1ZWQgd2hlbiBJIHJlY2VpdmUgbG90cyBvZiBtb2JpbGUgY2FsbHMgb3IgbWVzc2FnZXMuCiAgICAtIE1QSVFfVmFsaWRhdGlvbl8yX3JldjogUmVjZWl2aW5nIG1vYmlsZSBwaG9uZSBjYWxscyBvciBtZXNzYWdlcyBkb2VzIG5vdCBtYWtlIG1lIGZlZWwgc3BlY2lhbC4KICAgICAgICAtIE5vdGUsIGhlcmUgTVBJUV9WYWxpZGF0aW9uXzJfcmV2IGRlbm90ZXMgdGhhdCB0aGlzIGl0ZW0gc2hvdWxkIGJlIHJldmVyc2UgY29kZWQgZm9yIGZpbmFsIGFuYWx5c2lzLgogICAgLSBNUElRX1ZhbGlkYXRpb25fMzogUmVjZWl2aW5nIGEgbW9iaWxlIHBob25lIGNhbGwgbWFrZXMgbWUgZmVlbCBsb3ZlZC4KCiMjIyMgKDQpIFRoZSBTbWFydHBob25lIEF0dGFjaG1lbnQgYW5kIERlcGVuZGVuY3kgUXVlc3Rpb25uYWlyZSAoU0FEOyBXYXJkIGV0IGFsLiwgMjAxNykKKiAqKlNBRF8xIC0gU0FEXzEzKiogc2hvd3MgdGhlIHJlc3BvbnNlcyB0byB0aGUgMTMgaXRlbXMgaW4gdGhlIFNBRC4gUGFydGljaXBhbnRzIHdlcmUgYXNrZWQgdG8gaW5kaWNhdGUgaG93IG11Y2ggdGhleSBhZ3JlZSBvciBkaXNhZ3JlZSB0byB0aGUgc3RhdGVtZW50cyBvbiBhIDctcG9pbnQgbGlrZXJ0IHNjYWxlICh3aGVyZSwgIjEiID0gU3Ryb25nbHkgRGlzYWdyZWUsIGFuZCA3ID0gIlN0cm9uZ2x5IEFncmVlIikuIAoKKiBUaGUgc2NvcmUgd2FzIHRoZSBzdW0gb2YgYWxsIHJlc3BvbnNlcyAocmFuZ2UgaXMgZnJvbSAxM+KAkzkxKSwgd2l0aCBoaWdoZXIgc2NvcmVzIGNvcnJlc3BvbmRpbmcgdG8gZ3JlYXRlciBzbWFydHBob25lIGF0dGFjaG1lbnQgYW5kIGRlcGVuZGVuY3kuIFRoaXMgcmFuZ2Ugd2FzIGludGVycHJldGVkIChmb3IgdGhlIHBpcnBvc2VzIG9mIHRoaXMgc3R1ZHkpIGFzIGZvbGxvd3M6IDEzID0gYWJzZW5jZSBvZiBhdHRhY2htZW50ICYgZGVwZW5kZW5jeSwgMTTigJMzOSA9IG1pbGQgbGV2ZWwgb2YgYXR0YWNobWVudCAmIGRlcGVuZGVuY3ksIDQw4oCTNjUgPSBtb2RlcmF0ZSBsZXZlbCBvZiBhdHRhY2htZW50ICYgZGVwZW5kZW5jeSwg4omlIDY2ID0gc2V2ZXJlIGF0dGFjaG1lbnQgJiBkZXBlbmRlbmN5LgogICAgLSA8dGQgY29sc3BhbiA9IDc+IEZvciBRMTIg4oCTIFEyNCwgY29kaW5nIHdhcyBhcyBmb2xsb3dzOiA8dGQ+fCAgIAogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwKICAgICAgICAxID0gU3Ryb25nbHkgRGlzYWdyZWUgfCAyID0gRGlzYWdyZWUgIHwgMyA9IFNvbWV3aGF0IERpc2FncmVlIHwgNCA9IE5ldXRyYWwgIHwgNSA9IFNvbWV3aGF0IEFncmVlICB8IDYgPSBBZ3JlZSB8IDcgPSBTdHJvbmdseSBBZ3JlZQogICAgICAgIAoqIFRoZSBpdGVtcyB3ZXJlIGFzIGZvbGxvd3M6CiAgICAtIFExMjogSSB3b3VsZCBoYXZlIHRyb3VibGUgZ2V0dGluZyB0aHJvdWdoIGEgbm9ybWFsIGRheSB3aXRob3V0IG15IHNtYXJ0cGhvbmUuCiAgICAtIFExMzogSXQgd291bGQgYmUgcGFpbmZ1bCBmb3IgbWUgdG8gZ2l2ZSB1cCBteSBzbWFydHBob25lIGZvciBhIGRheS4KICAgIC0gUTE0OiBJIGZlZWwgbGlrZSBJIGNvdWxkIG5vdCBsaXZlIHdpdGhvdXQgbXkgc21hcnRwaG9uZS4KICAgIC0gUTE1OiBJZiBJIGZvcmdvdCB0byBicmluZyBteSBzbWFydHBob25lIHdpdGggbWUsIEkgd291bGQgZmVlbCBhbnhpb3VzLgogICAgLSBRMTY6IEl0IGRyaXZlcyBtZSBjcmF6eSB3aGVuIG15IHNtYXJ0cGhvbmUgcnVucyBvdXQgb2YgYmF0dGVyeS4KICAgIC0gUTE3OiBJIGFtIHVwc2V0IGFuZCBhbm5veWVkIHdoZW4gSSBmaW5kIEkgZG8gbm90IGhhdmUgcmVjZXB0aW9uIG9uIG15IHNtYXJ0cGhvbmUuCiAgICAtIFExODogSSBmZWVsIGltcGF0aWVudCB3aGVuIHRoZSBJbnRlcm5ldCBjb25uZWN0aW9uIHNwZWVkIG9uIG15IHNtYXJ0cGhvbmUgaXMgc2xvdy4KICAgIC0gUTE5OiBJIGZlZWwgbG9uZWx5IHdoZW4gbXkgc21hcnRwaG9uZSBkb2VzIG5vdCByaW5nIG9yIHZpYnJhdGUgZm9yIHNldmVyYWwgaG91cnMuCiAgICAtIFEyMDogVXNpbmcgbXkgc21hcnRwaG9uZSByZWxpZXZlcyBtZSBvZiBteSBzdHJlc3MuCiAgICAtIFEyMTogSSBmZWVsIGV4Y2l0ZWQgd2hlbiBJIGhhdmUgYSBuZXcgbWVzc2FnZSBvciBub3RpZmljYXRpb24uCiAgICAtIFEyMjogVXNpbmcgbXkgc21hcnRwaG9uZSBtYWtlcyBtZSBmZWVsIGhhcHB5LgogICAgLSBRMjM6IEkgZmluZCBpdCB0b3VnaCB0byBmb2N1cyB3aGVuZXZlciBteSBzbWFydHBob25lIGlzIG5lYXJieS4KICAgIC0gUTI0OiBJIGJlY29tZSBsZXNzIGF0dGVudGl2ZSB0byBteSBzdXJyb3VuZGluZ3Mgd2hlbiBJ4oCZbSB1c2luZyBteSBzbWFydHBob25lLgoKCgojIyMgMi4gTWFpbiBTdHVkeSBEYXRhIAojIyMjIEltcG9ydCBkYXRhCkltcG9ydCByYXcgZGF0YSBmb3IgbWFpbiBzdHVkeS4uLiAKCmBgYHtyIGltcG9ydF9tYWluX3N0dWR5X2ZpbGVzfQojdGhpcyB3aWxsIGltcG9ydCB0aGUgcmF3IGV4Y2VsIGRhdGEgZmlsZSBmb3IgdGhlIG1haW4gc3R1ZHkKICAjdGhpcyBmaWxlIGhhcyBiZWVuIGFub255bWl6ZWQsIHNvIGFueSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gaGFzIGJlZW4gcmVtb3ZlZAptYWluX3N1cnZleV9yYXcgPC0gcmVhZC5jc3YoIk1haW5fc3VydmV5X2RhdGEoanVuZTcpLmNzdiIsIGhlYWRlciA9IFRSVUUpCgpDQlNfcmF3IDwtIHJlYWQuY3N2KCJDQlNfZGF0YShqdW5lNykuY3N2IiwgaGVhZGVyID0gVFJVRSkKCiN0aGlzIGZpbGUgY29udGFpbnMgdGhlIGNvbmRpdGlvbiBpbmZvcm1hdGlvbiBmb3IgZWFjaCBwYXJ0aWNpcGFudCBpbiB0aGUgbWFpbiBzdHVkeQp0cmFja2luZ19yYXcgPC0gcmVhZC5jc3YoIlRyYWNraW5nX2RhdGEoanVuZTcpLmNzdiIsIGhlYWRlciA9IFRSVUUpCmBgYAoKIyMjIyBDbGVhbiBkYXRhCkFmdGVyIGltcG9ydGluZyB0aGUgcmF3IGRhdGEsIHRoZSBmaWxlIGlzIGNsZWFuZWQgYnkgcmVtb3ZpbmcgcGFydGljaXBhbnRzIGJhc2VkIG9uIHNldmVyYWwgY3JpdGVyaWE6CgotICoqVGVzdGluZyBEYXRhKio6IGV4cGVyaW1lbnRlciBkYXRhIChpLmUuLCB0ZXN0aW5nIHByaW9yIHRvIGRhdGEgY29sbGVjdGlvbiksIGFueSBpcnJlbGV2YW50IHJvd3MKICAgIC0gYHIgbnJvdyh0cmFja2luZ19yYXcgJT4lIGZpbHRlcih0eXBlID09ICJPVEhFUiIpKWAgcmVtb3ZlZCBmb3IgYmVpbmcgdGVzdGluZyBkYXRhCgotICoqSW5jb21wbGV0ZSBEYXRhKio6IHBhcnRpY2lwYW50cyB3aG8gZGlkIG5vdCBjb21wbGV0ZSB0aGUgc3R1ZHkKICAgIC0gYHIgbnJvdyhtYWluX3N1cnZleV9yYXcgJT4lIGZpbHRlcihEaXN0cmlidXRpb25DaGFubmVsICE9ICJ0ZXN0IikgJT4lIGZpbHRlcihGaW5pc2hlZCA9PSAwKSlgIHJlbW92ZWQgZnJvbSB0aGUgc3VydmV5IGRhdGEKICAgIC0gYHIgbnJvdyh0cmFja2luZ19yYXcgJT4lIGZpbHRlcih2YWxpZCAhPSAxKSlgIHJlbW92ZWQgZnJvbSB0aGUgdHJhY2tpbmcgZGF0YSBmb3IgZWl0aGVyIG9ubHkgY29tcGxldGluZyBwYXJ0IG9mIHRoZSBzdHVkeSAoYHIgbnJvdyh0cmFja2luZ19yYXcgJT4lIGZpbHRlcih2YWxpZCA9PSAyKSlgKSwgdGhlIENCUyBsaW5rIGRpZCBub3Qgd29yayAoYHIgbnJvdyh0cmFja2luZ19yYXcgJT4lIGZpbHRlcih2YWxpZCA9PSAzKSlgKSwgb3IgYmVpbmcgZXhjbHVkZWQgZHVlIHRvIGV4cGVyaW1lbnRhbCBlcnJvciAoZS5nLiwgZXh0ZXJuYWwgZGlzdHJhY3RvciBsaWtlIGNvbnN0cnVjdGlvbiwgaW5hY2N1cmF0ZSBjb25kaXRpb24gYXNzaWdubWVudDsgYHIgbnJvdyh0cmFja2luZ19yYXcgJT4lIGZpbHRlcih2YWxpZCA9PSAwKSlgKQogICAgCi0gKipVbm5lY2Vzc2FyeSBWYXJpYWJsZXMqKjogY29sdW1ucyB3aGljaCBhcmUgbm90IHJlbGV2YW50IHRvIHRoZSBhbmFseXNlcyAoZS5nLiwgZGlzdHJpYnV0aW9uIHR5cGUsIGRpc3RyaWJ1dGlvbiBsYW5ndWFnZSkgLS0gbm9uZSByZW1vdmVkIChub3QgbmVlZGVkKQoKYGBge3IgY2xlYW5fbWFpbl9zdXJ2ZXl9CiMgY2xlYW4gdGhlIGRhdGEKICAjIHN1cnZleSBkYXRhCm1haW5fc3VyX2RhdGFfdGVtcCA8LSAKICAjIHN0YXJ0IHdpdGggcmVtb3ZpbmcgZXhwZXJpbWVudGVyIGFuZCBpcnJlbGV2YW50IHJvd3MgZnJvbSB0aGUgZGF0YQogICAgIyB0aGVyZSBpcyBubyBuZWVkIHRvIGNvdW50IHRoZSBwcyByZW1vdmVkIGF0IHRoaXMgc3RhZ2UgCiAgbWFpbl9zdXJ2ZXlfcmF3ICU+JSAKICAjIHJlbW92ZSByb3cgMSAmIDIgLS0gbm90IGRhdGEKICBzbGljZSgzOm5yb3cobWFpbl9zdXJ2ZXlfcmF3KSkgJT4lIAogICMgcmVtb3ZlIHRlc3RpbmcgZGF0YQogIGZpbHRlcihEaXN0cmlidXRpb25DaGFubmVsICE9ICJ0ZXN0IikgJT4lIAoKICAjIG5leHQsIHJlbW92ZSBwcyB3LyBpbmNvbXBsZXRlIGRhdGEgLS0gaW5jbHVkZSBvbmx5IHRob3NlIHdobyBoYXZlIGZpbmlzaGVkIChpLmUuLCAiMSIpCiAgZmlsdGVyKEZpbmlzaGVkID09IDEpICU+JSAKICAKICAjIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb2x1bW5zCiAgICAjIHNob3VsZCBiZSBkb25lIGFmdGVyIG90aGVycyBzaW5jZSBjb2x1bW5zIHVzZWQgdG8gZmlsdGVyCiAgc2VsZWN0KC1jKFN0YXR1czpJUEFkZHJlc3MsIFJlc3BvbnNlSWQ6RXh0ZXJuYWxSZWZlcmVuY2UsIERpc3RyaWJ1dGlvbkNoYW5uZWw6VXNlckxhbmd1YWdlLCBTQzApKQpgYGAKCmBgYHtyIGNsZWFuX3RyYWNraW5nfQojIGNsZWFuIHRoZSBkYXRhCiAgIyBzdXJ2ZXkgZGF0YQp0cmFja2luZ19kYXRhX3RlbXAgPC0gCiAgIyBzdGFydCB3aXRoIHJlbW92aW5nIGV4cGVyaW1lbnRlciBhbmQgaXJyZWxldmFudCByb3dzIGZyb20gdGhlIGRhdGEKICAgICMgdGhlcmUgaXMgbm8gbmVlZCB0byBjb3VudCB0aGUgcHMgcmVtb3ZlZCBhdCB0aGlzIHN0YWdlIAogIHRyYWNraW5nX3JhdyAlPiUgCiAgIyByZW1vdmUgdGVzdGluZyBkYXRhCiAgZmlsdGVyKHR5cGUgIT0gIk9USEVSIikgJT4lIAoKICAjIG5leHQsIHJlbW92ZSBwcyB3LyBpbmNvbXBsZXRlIGRhdGEgLS0gaW5jbHVkZSBvbmx5IHRob3NlIHdobyBoYXZlIHZhbGlkIGFzICIxIgogIGZpbHRlcih2YWxpZCA9PSAxKSAlPiUgCiAgCiAgIyBuYW1lIGNvbmRpdGlvbiBhIGZhY3RvcgogIG11dGF0ZShjb25kaXRpb24gPSBmYWN0b3IoY29uZGl0aW9uLCBsZXZlbHMgPSBjKDE6MyksIGxhYmVscyA9IGMoImRlc2siLCAicG9ja2V0L2JhZyIsICJvdXRzaWRlIikpKQpgYGAKCkFkZGl0aW9uYWxseSwgdGhlIGNvbHVtbnMgd2VyZSByZW5hbWVkIGZvciBlYXNpZXIgcmVmZXJlbmNlLCAgYW55IHVuY2xlYXIgb3IgaW5hcHByb3ByaWF0ZSByZXNwb25zZXMgKGUuZy4sIG5vbi1udW1lcmljIHJlc3BvbnNlIGZvciBpdGVtcyByZXF1aXJpbmcgYSBudW1lcmljIHJlc3BvbnNlKSB3ZXJlIHJlbW92ZWQsIGFuZCBhbGwgdmFyaWFibGVzIHdlcmUgZm9ybWF0dGVkIGFzIG51bWVyaWMgb3IgZmFjdG9yIGFzIGFwcHJvcHJpYXRlLgoKYGBge3IgcmVuYW1lX2NvbHNfbWFpbl9zdXJfZGF0YSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgZXJyb3I9RkFMU0V9CiMgcmVuYW1lIGNvbHVtbnMgaW4gbWFpbiBzdXJ2ZXkgZGF0YQptYWluX3N1cl9kYXRhIDwtIAogICMgY2hhbmdlIGRhdGEgZmlsZSB0eXBlIHRvIHRpYmJsZSAKICBhcy50aWJibGUobWFpbl9zdXJfZGF0YV90ZW1wKSAlPiUgCiMgcmVuYW1lIGNvbHVtbnMuLi4KICBkcGx5cjo6cmVuYW1lKGR1cmF0aW9uX3NlYyA9IER1cmF0aW9uLi5pbi5zZWNvbmRzLiwgZGF0ZV9zdXIgPSBRNTksIHBhcnRpY2lwYW50ID0gUTU2LCB0eXBlID0gUTU4LCBDQlNfa25vdyA9IFE2MCwgQ0JTX2RvbmVfdGFza3MgPSBRNjEsIGFnZSA9IFExLjMsIGdlbmRlciA9IFExLjQsIGdlbmRlck8gPSBRMS41LCBsYW5nID0gUTEuNiwgbGFuZ08gPSBRMS43LCBwcm9mID0gUTEuOCwgCiAgICAgICAgICAgICAgICBwcm9ncmFtID0gUTIuMSwgcHJvZ3JhbU8gPSBRMi4yLCB5ZWFyID0gUTIuMywgYWdlX2ZpcnN0X3Bob25lID0gUTMuMSwgYXBwX21vc3RfdXNlZCA9IFEzLjIsIGFwcF9tb3N0X3VzZWRPID0gUTMuMywgYXBwX21vc3RfdXNlZF90ZXh0ID0gUTMuNCwgaXBob25lID0gUTQuMSwgU1RfYXBwX21vc3RfdXNlZCA9IFE0LjIsIFNUX2FwcF9tb3N0X3VzZWRPID0gUTQuMywgU1RfYXBwX3RleHRfbWVzcyA9IFE0LjQsIFNUX3dlZWtseV90b3RfaG91cnMgPSBRNC41LCBTVF9kYWlseV9waWNrdXBzID0gUTQuNiwgU1RfZGFpbHlfbm90ID0gUTQuNywgcGhvbmVfdmFsdWUgPSBRNS4xLCBwaGFudG9tID0gUTUuMiwgZGlzdF9kYWlseSA9IFE1LjNfMSwgZGlzdF9zdHVkeSA9IFE1LjNfMiwgZGlzdF9kZXZpY2UgPSBRNS40LCBkaXN0X2RldmljZU8gPSBRNS41LCBkaXN0X2RldmljZV9zdHVkeXdvcmsgPSBRNS42LCBkaXN0X2RldmljZV9zdHVkeXdvcmtPID0gUTUuNywgZGlzdF9kZXZpY2Vfc29jaWFsID0gUTUuOCwgZGlzdF9kZXZpY2Vfc29jaWFsTyA9IFE1LjksIHBvd19ub3RfdXNpbmcgPSBRNi4xXzEsIHBvd19ub3RpZmljYXRpb25zX29uID0gUTYuMV8yLCBwb3dfdmlicmF0ZSA9IFE2LjFfMywgcG93X3N0dWR5ID0gUTYuMV80LCBwb3dfZXhhbSA9IFE2LjFfNSwgcG93X2xlYyA9IFE2LjFfNiwgcG93X3NsZWVwID0gUTYuMV83LCBsb2NfdHlwaWNhbCA9IFE2LjIsIGxvY19zdHVkeSA9IFE2LjMsIGxvY19leGFtID0gUTYuNCwgbG9jX2xlYyA9IFE2LjUsIGxvY19zb2NpYWwgPSBRNi42LCBjb21fZ2VuID0gUTYuN18xLCBjb21fdW5hdHRlbmRlZCA9IFE2LjdfMiwgY29tX2xlYXZlX3dpdGhfb3RoZXIgPSBRNi43XzMsIGNvbV9sb2NrZWQgPSBRNi43XzQsIGNvbV9yb29tX3Rhc2sgPSBRNi43XzUsIGNvbW11bmljYXRlID0gUTcuMSwgY29tbXVuaWNhdGVPID0gUTcuMiwgcGhvbmVfdXNlID0gUTcuMywgcGhvbmVfdXNlTyA9IFE3LjQsIE5NUFFfMSA9IFE4LjFfMSwgTk1QUV8yID0gUTguMV8yLCBOTVBRXzMgPSBROC4xXzMsIE5NUFFfNCA9IFE4LjFfNCwgTk1QUV81ID0gUTguMV81LCBOTVBRXzYgPSBROC4xXzYsIE5NUFFfNyA9IFE4LjFfNywgTk1QUV84ID0gUTguMV84LCBOTVBRXzkgPSBROC4xXzksIE5NUFFfMTAgPSBROC4yXzEsIE5NUFFfMTEgPSBROC4yXzIsIE5NUFFfMTIgPSBROC4yXzMsIE5NUFFfMTMgPSBROC4yXzQsIE5NUFFfMTQgPSBROC4yXzUsIE5NUFFfMTUgPSBROC4yXzYsIE5NUFFfMTYgPSBROC4yXzcsIE5NUFFfMTcgPSBROC4yXzgsIE5NUFFfMTggPSBROC4yXzksIE5NUFFfMTkgPSBROC4yXzEwLCBOTVBRXzIwID0gUTguMl8xMSwgTVBJUV8xID0gUTkuMV8xLCBNUElRXzIgPSBROS4xXzIsIE1QSVFfMyA9IFE5LjFfMywgTVBJUV80ID0gUTkuMV80LCBNUElRXzUgPSBROS4xXzUsIE1QSVFfNiA9IFE5LjFfNiwgTVBJUV83ID0gUTkuMV83LCBNUElRXzggPSBROS4xXzgsIE1QSVFfU0lfMSA9IFE5LjJfMSwgTVBJUV9TSV8yID0gUTkuMl8yLCBNUElRX1NJXzMgPSBROS4yXzMsIE1QSVFfVkZPXzEgPSBROS4zXzEsIE1QSVFfVkZPXzIgPSBROS4zXzIsIE1QSVFfVkZPXzMgPSBROS4zXzMsIFNBRF8xID0gUTEwLjFfMSwgU0FEXzIgPSBRMTAuMV8yLCBTQURfMyA9IFExMC4xXzMsIFNBRF80ID0gUTEwLjFfNCwgU0FEXzUgPSBRMTAuMV81LCBTQURfNiA9IFExMC4xXzYsIFNBRF83ID0gUTEwLjFfNywgU0FEXzggPSBRMTAuMV84LCBTQURfOSA9IFExMC4xXzksIFNBRF8xMCA9IFExMC4xXzEwLCBTQURfMTEgPSBRMTAuMV8xMSwgU0FEXzEyID0gUTEwLjFfMTIsIFNBRF8xMyA9IFExMC4xXzEzKSAlPiUgCiAgCiAgIyByZXBsYWNlIHVuY2xlYXIvaW5hcHByb3ByaWF0ZSByZXNwb25zZXMKICAjIHJlbW92ZSBub24tbnVtZXJpYyByZXNwb25zZXMgdG8gImFnZV9maXJzdF9waG9uZSIKICAgICMgdGhpcyB3aWxsIGZvcmNlIGFsbCBub24tbnVtZXJpYyB2YWx1ZSB0byAiTkEiCiAgbXV0YXRlKGFnZV9maXJzdF9waG9uZSA9IGFzLm51bWVyaWMoYWdlX2ZpcnN0X3Bob25lKSkgJT4lIAoKICAjIHJlbW92ZSBhbnkgcmVzcG9uc2VzIGxvbmdlciB0aGFuIDIgZGlnaXRzIGZyb20gImFnZV9maXJzdF9waG9uZSIKICBtdXRhdGVfYXQoImFnZV9maXJzdF9waG9uZSIsIH5yZXBsYWNlKC4sIG5jaGFyKGFzLmludGVnZXIoYWdlX2ZpcnN0X3Bob25lKSkgPiAyLCBOQSkpICU+JSAKICAKICAjIGNoYW5nZSB2YXJpYWJsZXMgdG8gbnVtZXJpYyBvciBmYWN0b3IgYXMgbmVlZGVkCiAgbXV0YXRlKHBhcnRpY2lwYW50ID0gYXMubnVtZXJpYyhwYXJ0aWNpcGFudCksIGFnZSA9IGFzLm51bWVyaWMoYWdlKSwgQ0JTX2tub3cgPSBmYWN0b3IoQ0JTX2tub3csIGxldmVscyA9IGMoMToyKSwgbGFiZWxzID0gYygieWVzIiwgIm5vIikpLCBDQlNfZG9uZV90YXNrcyA9IGZhY3RvcihDQlNfZG9uZV90YXNrcywgbGV2ZWxzID0gYygxOjIpLCBsYWJlbHMgPSBjKCJ5ZXMiLCAibm8iKSksIGFnZSA9IGFzLm51bWVyaWMoYWdlKSwgZ2VuZGVyID0gZmFjdG9yKGdlbmRlciwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCJNYWxlIiwgIkZlbWFsZSIsICJQcmVmZXIgbm90IHRvIHNheSIsICJPdGhlciIpKSwgbGFuZyA9IGZhY3RvcihsYW5nLCBsZXZlbHMgPSBjKDE6MiksIGxhYmVscyA9IGMoIkVuZ2xpc2giLCAiT3RoZXIiKSksIHByb2YgPSBmYWN0b3IocHJvZiwgbGV2ZWxzID0gYygxOjMpLCBsYWJlbHMgPSBjKCJMb3ciLCAiTW9kZXJhdGUiLCAiSGlnaCIpKSwgcHJvZ3JhbSA9IGZhY3Rvcihwcm9ncmFtLCBsZXZlbHMgPSBjKDE6MTMpLCBsYWJlbHMgPSBjKCJBcnRzICYgSHVtYW5pdGllcyIsICJNdXNpYyIsICJFZHVjYXRpb24iLCAiRW5naW5lZXJpbmciLCAiSGFhbHRoIFNjaWVuY2UiLCAiSW5mb3JtYXRpb24gJiBNZWRpYSBTdHVkaWVzIiwgIkxhdyIsICJCdXNpbmVzcyIsICJTY2llbmNlIiwgIlNvY2lhbCBTY2llbmNlIiwgIlNjaHVsaWNoIERlbnRpc3RyeSIsICJHcmFkdWF0ZSBTdHVkaWVzIiwgIk90aGVyIikpLCB5ZWFyID0gZmFjdG9yKHllYXIsIGxldmVscyA9IGMoMTo2KSwgbGFiZWxzID0gYygiRmlyc3QgWWVhciIsICJTZWNvbmQgWWVhciIsICJUaGlyZCBZZWFyIiwgIkZvdXJ0aCBZZWFyIiwgIkZpZnRoIFllYXIrIiwgIkdyYWR1YXRlIFN0dWRlbnQiKSksIGFwcF9tb3N0X3VzZWQgPSBmYWN0b3IoYXBwX21vc3RfdXNlZCwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCJHYW1lcyIsICJTb2NpYWwgTmV0d29ya2luZyIsICJFbnRlcnRhaW5tZW50IiwgIk90aGVyIikpLCBpcGhvbmUgPSBmYWN0b3IoaXBob25lLCBsZXZlbHMgPSBjKDE6MiksIGxhYmVscyA9IGMoInllcyIsICJubyIpKSwgU1RfYXBwX21vc3RfdXNlZCA9IGZhY3RvcihTVF9hcHBfbW9zdF91c2VkLCBsZXZlbHMgPSBjKDE6NCksIGxhYmVscyA9IGMoIkdhbWVzIiwgIlNvY2lhbCBOZXR3b3JraW5nIiwgIkVudGVydGFpbm1lbnQiLCAiT3RoZXIiKSksIFNUX2FwcF90ZXh0X21lc3MgPSBmYWN0b3IoU1RfYXBwX3RleHRfbWVzcywgbGV2ZWxzID0gYygxOjIpLCBsYWJlbHMgPSBjKCJ5ZXMiLCAibm8iKSksIFNUX3dlZWtseV90b3RfaG91cnMgPSBmYWN0b3IoU1Rfd2Vla2x5X3RvdF9ob3VycywgbGV2ZWxzID0gYygxOjUpLCBsYWJlbHMgPSBjKCIwLTEwIiwgIjExLTIwIiwgIjIxLTMwIiwgIjMxLTQwIiwgIjQwKyIpKSwgU1RfZGFpbHlfcGlja3VwcyA9IGZhY3RvcihTVF9kYWlseV9waWNrdXBzLCBsZXZlbHMgPSBjKDE6NSksIGxhYmVscyA9IGMoIjAtNTAiLCAiNTEtMTAwIiwgIjEwMS0xNTAiLCAiMTUxLTIwMCIsICIyMDArIikpLCBTVF9kYWlseV9ub3QgPSBmYWN0b3IoU1RfZGFpbHlfbm90LCBsZXZlbHMgPSBjKDE6NSksIGxhYmVscyA9IGMoIjAtNTAiLCAiNTEtMTAwIiwgIjEwMS0xNTAiLCAiMTUxLTIwMCIsICIyMDArIikpLCBwaG9uZV92YWx1ZSA9IGZhY3RvcihwaG9uZV92YWx1ZSwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCIkMC0kMjAiLCAiJDIxLSQ0MCIsICIkNDEtJDYwIiwgIj4kNjAiKSksIHBoYW50b20gPSBmYWN0b3IocGhhbnRvbSwgbGV2ZWxzID0gYygxOjIpLCBsYWJlbHMgPSBjKCJ5ZXMiLCAibm8iKSksIGRpc3RfZGFpbHkgPSBhcy5udW1lcmljKGRpc3RfZGFpbHkpLCBkaXN0X3N0dWR5ID0gYXMubnVtZXJpYyhkaXN0X3N0dWR5KSwgZGlzdF9kZXZpY2UgPSBmYWN0b3IoZGlzdF9kZXZpY2UsIGxldmVscyA9IGMoMTo1KSwgbGFiZWxzID0gYygiQ29tcHV0ZXIiLCAiUGhvbmUiLCAiaVBhZC9UYWJsZXQiLCAiU21hcnR3YXRjaCIsICJPdGhlciIpKSwgZGlzdF9kZXZpY2Vfc3R1ZHl3b3JrID0gZmFjdG9yKGRpc3RfZGV2aWNlX3N0dWR5d29yaywgbGV2ZWxzID0gYygxOjUpLCBsYWJlbHMgPSBjKCJDb21wdXRlciIsICJQaG9uZSIsICJpUGFkL1RhYmxldCIsICJTbWFydHdhdGNoIiwgIk90aGVyIikpLCBkaXN0X2RldmljZV9zb2NpYWwgPSBmYWN0b3IoZGlzdF9kZXZpY2Vfc29jaWFsLCBsZXZlbHMgPSBjKDE6NSksIGxhYmVscyA9IGMoIkNvbXB1dGVyIiwgIlBob25lIiwgImlQYWQvVGFibGV0IiwgIlNtYXJ0d2F0Y2giLCAiT3RoZXIiKSksIHBvd19ub3RfdXNpbmcgPSBhcy5udW1lcmljKHBvd19ub3RfdXNpbmcpLCBwb3dfbm90aWZpY2F0aW9uc19vbiA9IGFzLm51bWVyaWMocG93X25vdGlmaWNhdGlvbnNfb24pLCBwb3dfdmlicmF0ZSA9IGFzLm51bWVyaWMocG93X3ZpYnJhdGUpLCBwb3dfc3R1ZHkgPSBhcy5udW1lcmljKHBvd19zdHVkeSksIHBvd19leGFtID0gYXMubnVtZXJpYyhwb3dfZXhhbSksIHBvd19sZWMgPSBhcy5udW1lcmljKHBvd19sZWMpLCBwb3dfc2xlZXAgPSBhcy5udW1lcmljKHBvd19zbGVlcCksIGxvY190eXBpY2FsID0gZmFjdG9yKGxvY190eXBpY2FsLCBsZXZlbHMgPSBjKDE6MyksIGxhYmVscyA9IGMoIk9uIG15IGRlc2siLCAiSW4gbXkgcG9ja2V0IG9yIGJhZyIsICJJbiBhbm90aGVyIHJvb20iKSksIGxvY19zdHVkeSA9IGZhY3Rvcihsb2Nfc3R1ZHksIGxldmVscyA9IGMoMTozKSwgbGFiZWxzID0gYygiT24gbXkgZGVzayIsICJJbiBteSBwb2NrZXQgb3IgYmFnIiwgIkluIGFub3RoZXIgcm9vbSIpKSwgbG9jX2V4YW0gPSBmYWN0b3IobG9jX2V4YW0sIGxldmVscyA9IGMoMTozKSwgbGFiZWxzID0gYygiT24gbXkgZGVzayIsICJJbiBteSBwb2NrZXQgb3IgYmFnIiwgIkluIGFub3RoZXIgcm9vbSIpKSwgbG9jX2xlYyA9IGZhY3Rvcihsb2NfbGVjLCBsZXZlbHMgPSBjKDE6MyksIGxhYmVscyA9IGMoIk9uIG15IGRlc2siLCAiSW4gbXkgcG9ja2V0IG9yIGJhZyIsICJJbiBhbm90aGVyIHJvb20iKSksIGxvY19zb2NpYWwgPSBmYWN0b3IobG9jX3NvY2lhbCwgbGV2ZWxzID0gYygxOjMpLCBsYWJlbHMgPSBjKCJPbiBteSBkZXNrIiwgIkluIG15IHBvY2tldCBvciBiYWciLCAiSW4gYW5vdGhlciByb29tIikpLCBjb21fZ2VuID0gYXMubnVtZXJpYyhjb21fZ2VuKSwgY29tX3VuYXR0ZW5kZWQgPSBhcy5udW1lcmljKGNvbV91bmF0dGVuZGVkKSwgY29tX2xlYXZlX3dpdGhfb3RoZXIgPSBhcy5udW1lcmljKGNvbV9sZWF2ZV93aXRoX290aGVyKSwgY29tX2xvY2tlZCA9IGFzLm51bWVyaWMoY29tX2xvY2tlZCksIGNvbV9yb29tX3Rhc2sgPSBhcy5udW1lcmljKGNvbV9yb29tX3Rhc2spLCBjb21tdW5pY2F0ZSA9IGZhY3Rvcihjb21tdW5pY2F0ZSwgbGV2ZWxzID0gYygxOjQpLCBsYWJlbHMgPSBjKCJGYW1pbHkiLCAiRnJpZW5kcyIsICJXb3JrIiwgIk90aGVyIikpLCBwaG9uZV91c2UgPSBmYWN0b3IocGhvbmVfdXNlLCBsZXZlbHMgPSBjKDEsMiwgNSwgMywgNCksIGxhYmVscyA9IGMoIkNhbGxpbmcvVGV4dGluZyIsICJTb2NpYWwgTWVkaWEiLCAiR2FtZXMiLCAiRW1haWwiLCAiT3RoZXIiKSkKICAgICAgICAgKSAlPiUgCiAgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoIk5NUFEiKSksZnVucyhhcy5udW1lcmljKSkgJT4lIAogIG11dGF0ZV9hdCh2YXJzKHN0YXJ0c193aXRoKCJNUElRIikpLGZ1bnMoYXMubnVtZXJpYykpICU+JSAKICBtdXRhdGVfYXQodmFycyhzdGFydHNfd2l0aCgiU0FEIikpLGZ1bnMoYXMubnVtZXJpYykpICU+JSAKICAKICAjIHJldmVyc2UgY29kZSBpdGVtcy4uLgogIG11dGF0ZShNUElRX1ZGT18yUiA9IDgtTVBJUV9WRk9fMikgJT4lIAogIAogICMgYWRkIHNjb3JlcyBmb3IgZWFjaCBxdWVzdGlvbm5haXJlLi4uIAogICMgZm9yIGVhY2ggcC4uLi4KICByb3d3aXNlKCkgJT4lIAogIG11dGF0ZSgKICAgICMgZ2V0IE5NUFEgc2NvcmUgLS0gU1VNCiAgICBOTVBRX3N1bSA9IE5NUFFfMSArIE5NUFFfMiArIE5NUFFfMyArIE5NUFFfNCArIE5NUFFfNSArIE5NUFFfNiArIE5NUFFfNyArIE5NUFFfOCArIE5NUFFfOSArIE5NUFFfMTAgKyBOTVBRXzExICsgTk1QUV8xMiArIE5NUFFfMTMgKyBOTVBRXzE0ICsgTk1QUV8xNSArIE5NUFFfMTYgKyBOTVBRXzE3ICsgTk1QUV8xOCArIE5NUFFfMTkgKyBOTVBRXzIwLCAKICAgICMgZ2V0IE5NUFEgc2NvcmUgLS0gTUVBTgogICAgTk1QUV9tZWFuID0gbWVhbihOTVBRXzEsIE5NUFFfMiwgTk1QUV8zLCBOTVBRXzQsIE5NUFFfNSwgTk1QUV82LCBOTVBRXzcsIE5NUFFfOCwgTk1QUV85LCBOTVBRXzEwLCBOTVBRXzExLCBOTVBRXzEyLCBOTVBRXzEzLCBOTVBRXzE0LCBOTVBRXzE1LCBOTVBRXzE2LCBOTVBRXzE3LCBOTVBRXzE4LCBOTVBRXzE5LCBOTVBRXzIwKSwgCiAgICAKICAgICMgZ2V0IE1QSVEgc2NvcmUgLS0gU1VNCiAgICBNUElRX3N1bSA9IE1QSVFfMSArIE1QSVFfMiArIE1QSVFfMyArIE1QSVFfNCArIE1QSVFfNSArIE1QSVFfNiArIE1QSVFfNyArIE1QSVFfOCwgIAogICAgIyBnZXQgTVBJUSBzY29yZSAtLSBNRUFOCiAgICBNUElRX21lYW4gPSBtZWFuKE1QSVFfMSwgTVBJUV8yLCBNUElRXzMsIE1QSVFfNCwgTVBJUV81LCBNUElRXzYsIE1QSVFfNywgTVBJUV84KSwgCiAgICAKICAgICMgZ2V0IE1QSVFfU0kgc2NvcmUgLS0gU1VNCiAgICBNUElRX1NJX3N1bSA9IE1QSVFfU0lfMSArIE1QSVFfU0lfMiArIE1QSVFfU0lfMywgIAogICAgIyBnZXQgTVBJUV9TSSBzY29yZSAtLSBNRUFOCiAgICBNUElRX1NJX21lYW4gPSBtZWFuKE1QSVFfU0lfMSwgTVBJUV9TSV8yLCBNUElRX1NJXzMpLCAKICAgIAogICAgIyBnZXQgTVBJUV9WRk8gc2NvcmUgLS0gU1VNCiAgICBNUElRX1ZGT19zdW0gPSBNUElRX1ZGT18xICsgTVBJUV9WRk9fMlIgKyBNUElRX1ZGT18zLCAgCiAgICAjIGdldCBNUElRX1ZGTyBzY29yZSAtLSBNRUFOCiAgICBNUElRX1ZGT19tZWFuID0gbWVhbihNUElRX1ZGT18xLCBNUElRX1ZGT18yUiwgTVBJUV9WRk9fMyksIAogICAgCiAgICAjIGdldCBTQUQgc2NvcmUgLS0gU1VNCiAgICBTQURfc3VtID0gU0FEXzEgKyBTQURfMiArIFNBRF8zICsgU0FEXzQgKyBTQURfNSArIFNBRF82ICsgU0FEXzcgKyBTQURfOCArIFNBRF85ICsgU0FEXzEwICsgU0FEXzExICsgU0FEXzEyICsgU0FEXzEzLCAKICAgICMgZ2V0IFNBRCBzY29yZSAtLSBNRUFOCiAgICBTQURfbWVhbiA9IG1lYW4oU0FEXzEsIFNBRF8yLCBTQURfMywgU0FEXzQsIFNBRF81LCBTQURfNiwgU0FEXzcsIFNBRF84LCBTQURfOSwgU0FEXzEwLCBTQURfMTEsIFNBRF8xMiwgU0FEXzEzKSwKICAgIAogICAgIyBnZXQgU0FEX2RlcCBzY29yZSAtLSBTVU0KICAgIFNBRF9kZXBfc3VtID0gU0FEXzEgKyBTQURfMiArIFNBRF8zICsgU0FEXzQgKyBTQURfNSwgCiAgICAjIGdldCBTQURfZGVwIHNjb3JlIC0tIE1FQU4KICAgIFNBRF9kZXBfbWVhbiA9IG1lYW4oU0FEXzEsIFNBRF8yLCBTQURfMywgU0FEXzQsIFNBRF81KSwKICAgIAogICAgIyBnZXQgU0FEX2VhIHNjb3JlIC0tIFNVTQogICAgU0FEX2VhX3N1bSA9IFNBRF84ICsgU0FEXzkgKyBTQURfMTAgKyBTQURfMTEsIAogICAgIyBnZXQgU0FEX2VhIHNjb3JlIC0tIE1FQU4KICAgIFNBRF9lYV9tZWFuID0gbWVhbihTQURfOCwgU0FEXzksIFNBRF8xMCwgU0FEXzExKSwgCiAgICAKICAgICMgZ2V0IFNBRF9kaXN0IHNjb3JlIC0tIFNVTQogICAgU0FEX2Rpc3Rfc3VtID0gU0FEXzcgKyBTQURfMTIgKyBTQURfMTMsIAogICAgIyBnZXQgU0FEX2Rpc3Qgc2NvcmUgLS0gTUVBTgogICAgU0FEX2Rpc3RfbWVhbiA9IG1lYW4oU0FEXzcsIFNBRF8xMixTQURfMTMpCiAgICAKICAgICAgICAgKQpgYGAKCgpPcmdhbml6ZSBDQlMgZGF0YSAuLi4KCmBgYHtyIHJlY2xhc3NfY2JzX3Jhd30KQ0JTX2RhdGEgPC0gCiAgIyBjaGFuZ2UgZGF0YSBmaWxlIHR5cGUgdG8gdGliYmxlIAogIGFzLnRpYmJsZShDQlNfcmF3KSAlPiUgCiAgIyBtYWtlIFZhbGlkIGEgZmFjdG9yIC0tIHRydWUgdnMgZmFsc2UKICBtdXRhdGUoVmFsaWQgPSBmYWN0b3IoVmFsaWQpKSAlPiUgCiAgIyBtYWtlIHRlc3QgbmFtZSBhIGZhY3RvcgogIG11dGF0ZShUZXN0Lk5hbWUgPSBmYWN0b3IoVGVzdC5OYW1lKSkgJT4lIAogICMgcmVtb3ZlIGVtYWlsIGRvbWFpbiB0byBnZXQgcGFydGljaXBhbnQgbnVtYmVycwogIG11dGF0ZV9hdCgiVXNlci5FbWFpbCIsIHN0cl9yZXBsYWNlLCAiQHJlc2VhcmNoZXItMTU5NTQyLmF1dG9yZWdpc3Rlci5jb20iLCAiIikgJT4lIAogICMgbWFrZSBsaXN0IGFzIG51bWVyaWMKICBtdXRhdGUoVXNlci5FbWFpbCA9IGFzLm51bWVyaWMoVXNlci5FbWFpbCkpICU+JSAKICAjIG1ha2UgYWxsIHNjb3JlcyAmIHJhdyBzY29yZXMgbnVtZXJpYwogIG11dGF0ZV9hdCh2YXJzKHN0YXJ0c193aXRoKCJTY29yZSIpKSxmdW5zKGFzLm51bWVyaWMpKSAlPiUgCiAgIyBtYWtlIGFsbCBwZXJjZW50aWxlcyBudW1lcmljCiAgbXV0YXRlKFBlcmNlbnRpbGUgPSBhcy5udW1lcmljKFBlcmNlbnRpbGUpKQpgYGAKCgojIyMjIFJlbW92aW5nIE5vbi1WYWxpZCBTY29yZXM6IENCUwoKUmVtb3ZlIG5vbi12YWxpZCBkYXRhIGZyb20gQ0JTIHNjb3Jlcy4KCi0gYHIgbnJvdyhDQlNfZGF0YSAlPiUgZmlsdGVyKFZhbGlkID09ICJmYWxzZSIpKWAgc2NvcmVzIHdlcmUgcmVtb3ZlZCBmb3IgYmVpbmcgaW52YWxpZC4KCmBgYHtyIHNob3dfQ0JTX2V4X25vdHZhbGlkX3R9CiMgRXhjbHVkZSBwcyB3aXRoIG5vbi12YWxpZCBDQlMgc2NvcmVzCkNCU19leF9ub3R2YWxpZCA8LSBDQlNfcmF3ICU+JSBmaWx0ZXIoVmFsaWQgPT0gImZhbHNlIikKCiMgbWFrZSBmcmVxdWVuY3kgdGFibGUKQ0JTX2V4X25vdHZhbGlkX3QgPC0gcGx5cjo6Y291bnQoQ0JTX2V4X25vdHZhbGlkJFRlc3QuTmFtZSkKCiMgc2hvdyB0YWJsZSB1c2luZyBrYWJsZQprYWJsZShDQlNfZXhfbm90dmFsaWRfdCwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgdGFibGUgb2YgQ0JTIFRhc2tzIHdpdGggTm9uLVZhbGlkIFNjb3JlcyIsIGFsaWduID0gcmVwKCdjJyksIGNvbC5uYW1lcyA9IGMoIlRhc2siLCAiTm9uLVZhbGlkIFNjb3JlcyIpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJQYXJ0aWNpcGFudHMgd2hvIGhhZCBhbnkgbm9uLXZhbGlkIHNjb3JlcyB3ZXJlIHJlbW92ZWQgZm9ybSB0aGUgZmluYWwgYW5hbHlzZXMuIE5vdCBhbGwgdGFza3MgaGFkIGEgbm9uLXZhbGlkIHNjb3JlLiIpICU+JSAKICBjb2x1bW5fc3BlYygyLCBib2xkID0gVCkgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICAjIGNvbHVtbl9zcGVjKDksIGJvcmRlcl9sZWZ0ID0gVCkgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQpgYGAKCgotIFRvIG1haW50YWluIG9ubHkgcHMgd2hvIGNvbXBsZXRlZCBhbGwgMTIgQ0JTIHRhc2tzLCBgcmAgcHMgd2VyZSByZW1vdmVkLCBsZWF2aW5nIGEgdG90YWwgb2YgYHJgIHdobyBjb21wbGV0ZWQgYWxsIDEyIENCUyB0cmlhbHMgd2l0aCBhIHZhbGlkIHNjb3JlCgojIyMjIFJlbW92aW5nIE91bGllcnM6IENCUyAKCgpUaGlzIGNvZGUgY2xlYW5lZCAqYWxsX2RhdGEqIGJhc2VkIG9uICgxKSBleGNsdXNpb24gY3JpdGVyaWEsICgyKSBvdXRsaWVycywgYW5kICgzKSBpbmNvbXBsZXRlL21pc3NpbmcgZGF0YS4gKihjbGljayB0byBzZWUgY29kZSkqCgpgYGB7ciBjcmVhdGVfYWxsX3JlbW92ZV9kYyZhbGxfcmVtb3ZlX2RjX2xpc3QsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVycm9yPUZBTFNFfQojIGdldCBsaXN0IG9mIHBzIHRvIHJlbW92ZSBmb3IgdmFyaW91cyByZWFzb25zLi4uCgojIEV4Y2x1ZGUgcHMgd2l0aCBub24tdmFsaWQgQ0JTIHNjb3JlcyAtLSBncmFiYmVkIGZyb20gYWJvdmUKIyBDQlNfZXhfbm90dmFsaWQgPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihWYWxpZCA9PSAiZmFsc2UiKQoKIyBPdXRsaWVycyAtLSByZW1vdmUgcHMgd2hvIGFyZSBncmVhdGVyIHRoYW4gMyBTRHMgYXdheSBmcm9tIHRoZSBNIGZvciBlYWNoIHRhc2sKICAjIHRoZSB0YXNrcyAmIHRoZWlyIGFjcm9ueW1zOgogICAgIyBEaWdpdCBTcGFuIChEUyksIERvdWJsZSBUcm91YmxlIChEVCksIEZlYXR1cmUgTWF0Y2ggKEZNKSwgR3JhbW1hdGljYWwgUmVhc29uaW5nIChHUiksIE1vbmtleSBMYWRkZXIgKE1MKSwgT2RkIE9uZSBPdXQgKE9PTyksIAogICAgIyBQYWlyZWQgQXNzb2NpYXRlcyAoUEEpLCBQb2x5Z29ucyAoUCksIFJvdGF0aW9ucyAoUiksIFNwYXRpYWwgUGxhbm5pbmcgKFNQKSwgU3BhdGlhbCBTcGFuIChTUyksIFRva2VuIFNlYXJjaCAoVFMpCiMgRGlnaXQgU3BhbiAoRFMpCkNCU19leF9vdXRfRFMgPC0gCiAgQ0JTX2RhdGEgJT4lIAogICMgc2VsZWN0IHRoZSB0YXNrIGluIHF1ZXN0aW9uCiAgZmlsdGVyKFRlc3QuTmFtZSA9PSAiRGlnaXQgU3BhbiIpICU+JSAKICAjIHJlbW92ZSBwcyB0aGF0IGhhdmUgPiAzU0QgZnJvbSB0aGUgbWVhbgogIGZpbHRlcihTY29yZSA+IChtZWFuKFNjb3JlKSArIDMqc2QoU2NvcmUpKSB8IAogICMgcmVtb3ZlIHBzIHRoYXQgaGF2ZSA8IDNTRCBmcm9tIHRoZSBtZWFuCiAgICAgICAgIFNjb3JlIDwgKG1lYW4oU2NvcmUpIC0gMypzZChTY29yZSkpKQojIERvdWJsZSBUcm91YmxlIChEVCkKQ0JTX2V4X291dF9EVCA8LSBDQlNfZGF0YSAlPiUgZmlsdGVyKFRlc3QuTmFtZSA9PSAiRG91YmxlIFRyb3VibGUiKSAlPiUgZmlsdGVyKFNjb3JlID4gKG1lYW4oU2NvcmUpICsgMypzZChTY29yZSkpIHwgU2NvcmUgPCAobWVhbihTY29yZSkgLSAzKnNkKFNjb3JlKSkpCgojIEZlYXR1cmUgTWF0Y2ggKEZNKSAKQ0JTX2V4X291dF9GTSA8LSBDQlNfZGF0YSAlPiUgZmlsdGVyKFRlc3QuTmFtZSA9PSAiRmVhdHVyZSBNYXRjaCIpICU+JSBmaWx0ZXIoU2NvcmUgPiAobWVhbihTY29yZSkgKyAzKnNkKFNjb3JlKSkgfCBTY29yZSA8IChtZWFuKFNjb3JlKSAtIDMqc2QoU2NvcmUpKSkKCiMgR3JhbW1hdGljYWwgUmVhc29uaW5nIChHUikKQ0JTX2V4X291dF9HUiA8LSBDQlNfZGF0YSAlPiUgZmlsdGVyKFRlc3QuTmFtZSA9PSAiR3JhbW1hdGljYWwgUmVhc29uaW5nIikgJT4lIGZpbHRlcihTY29yZSA+IChtZWFuKFNjb3JlKSArIDMqc2QoU2NvcmUpKSB8IFNjb3JlIDwgKG1lYW4oU2NvcmUpIC0gMypzZChTY29yZSkpKQoKIyBNb25rZXkgTGFkZGVyIChNTCkKQ0JTX2V4X291dF9NTCA8LSBDQlNfZGF0YSAlPiUgZmlsdGVyKFRlc3QuTmFtZSA9PSAiTW9ua2V5IExhZGRlciIpICU+JSBmaWx0ZXIoU2NvcmUgPiAobWVhbihTY29yZSkgKyAzKnNkKFNjb3JlKSkgfCBTY29yZSA8IChtZWFuKFNjb3JlKSAtIDMqc2QoU2NvcmUpKSkKCiMgT2RkIE9uZSBPdXQgKE9PTykKQ0JTX2V4X291dF9PT08gPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihUZXN0Lk5hbWUgPT0gIk9kZCBPbmUgT3V0IikgJT4lIGZpbHRlcihTY29yZSA+IChtZWFuKFNjb3JlKSArIDMqc2QoU2NvcmUpKSB8IFNjb3JlIDwgKG1lYW4oU2NvcmUpIC0gMypzZChTY29yZSkpKQoKIyBQYWlyZWQgQXNzb2NpYXRlcyAoUEEpCkNCU19leF9vdXRfUEEgPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihUZXN0Lk5hbWUgPT0gIlBhaXJlZCBBc3NvY2lhdGVzIikgJT4lIGZpbHRlcihTY29yZSA+IChtZWFuKFNjb3JlKSArIDMqc2QoU2NvcmUpKSB8IFNjb3JlIDwgKG1lYW4oU2NvcmUpIC0gMypzZChTY29yZSkpKQoKIyBQb2x5Z29ucyAoUCkKQ0JTX2V4X291dF9QIDwtIENCU19kYXRhICU+JSBmaWx0ZXIoVGVzdC5OYW1lID09ICJQb2x5Z29ucyIpICU+JSBmaWx0ZXIoU2NvcmUgPiAobWVhbihTY29yZSkgKyAzKnNkKFNjb3JlKSkgfCBTY29yZSA8IChtZWFuKFNjb3JlKSAtIDMqc2QoU2NvcmUpKSkKCiMgUm90YXRpb25zIChSKQpDQlNfZXhfb3V0X1IgPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihUZXN0Lk5hbWUgPT0gIlJvdGF0aW9ucyIpICU+JSBmaWx0ZXIoU2NvcmUgPiAobWVhbihTY29yZSkgKyAzKnNkKFNjb3JlKSkgfCBTY29yZSA8IChtZWFuKFNjb3JlKSAtIDMqc2QoU2NvcmUpKSkKCiMgU3BhdGlhbCBQbGFubmluZyAoU1ApCkNCU19leF9vdXRfU1AgPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihUZXN0Lk5hbWUgPT0gIlNwYXRpYWwgUGxhbm5pbmciKSAlPiUgZmlsdGVyKFNjb3JlID4gKG1lYW4oU2NvcmUpICsgMypzZChTY29yZSkpIHwgU2NvcmUgPCAobWVhbihTY29yZSkgLSAzKnNkKFNjb3JlKSkpCgojIFNwYXRpYWwgU3BhbiAoU1MpCkNCU19leF9vdXRfU1MgPC0gQ0JTX2RhdGEgJT4lIGZpbHRlcihUZXN0Lk5hbWUgPT0gIlNwYXRpYWwgU3BhbiIpICU+JSBmaWx0ZXIoU2NvcmUgPiAobWVhbihTY29yZSkgKyAzKnNkKFNjb3JlKSkgfCBTY29yZSA8IChtZWFuKFNjb3JlKSAtIDMqc2QoU2NvcmUpKSkKCiMgVG9rZW4gU2VhcmNoIChUUykKQ0JTX2V4X291dF9UUyA8LSBDQlNfZGF0YSAlPiUgZmlsdGVyKFRlc3QuTmFtZSA9PSAiVG9rZW4gU2VhcmNoIikgJT4lIGZpbHRlcihTY29yZSA+IChtZWFuKFNjb3JlKSArIDMqc2QoU2NvcmUpKSB8IFNjb3JlIDwgKG1lYW4oU2NvcmUpIC0gMypzZChTY29yZSkpKQogICAgCiMgY3JlYXRlIGxpc3Qgb2YgcHMgdG8gcmVtb3ZlIHdpdGggcmVhc29uIGZvciByZW1vdmFsIC0tIENCU19yZW1vdmUKQ0JTX3JlbW92ZSA8LSAKICAjIGJpbmQgdGhlIHBzIHdobyB3aWxsIGJlIHJlbW92ZWQKICByYmluZChDQlNfZXhfb3V0X0RTLCBDQlNfZXhfb3V0X0RULCBDQlNfZXhfb3V0X0ZNLCBDQlNfZXhfb3V0X0dSLCBDQlNfZXhfb3V0X01MLCBDQlNfZXhfb3V0X09PTywgCiAgICAgICAgQ0JTX2V4X291dF9QQSwgQ0JTX2V4X291dF9QLCBDQlNfZXhfb3V0X1IsIENCU19leF9vdXRfU1AsIENCU19leF9vdXRfU1MsIENCU19leF9vdXRfVFMpICU+JSAKICAjIGdyb3VwIGJ5IHRhc2sKICBncm91cF9ieShUZXN0Lk5hbWUpICU+JSAKICAjIGNvdW50IGJ5IHBhcnRpY2lwYW50IG51bWJlcgogIGNvdW50KFVzZXIuRW1haWwpICU+JSAKICAjIHJlbW92ZSBleGNlc3MgY29sdW1uICJuIgogIHNlbGVjdCgtbikKCgojIGNyZWF0ZSBsaXN0IG9mIHBzIHRvIHJlbW92ZSB3aXRob3V0IGR1cGxpY2F0ZXMgdG8gdXNlIHRvIGZpbHRlciBmaW5hbCBkYXRhCkNCU19yZW1vdmVfbGlzdCA8LSAKICBDQlNfcmVtb3ZlICU+JSAKICAjIGJhc2VkIG9uIFVzZXIuRW1haWwKICBzZWxlY3QoVXNlci5FbWFpbCkgJT4lIAogICMgcmVtb3ZlIGFueSBkdXBsaWNhdGVkIHBhcnRpY2lwYW50IElEcwogIGRpc3RpbmN0KCkKCiMgc2hvdyB0YWJsZSBvZiBvdXRsaWVycyBieSB0YXNrIHVzaW5nIGthYmxlCmthYmxlKHBseXI6OmNvdW50KENCU19yZW1vdmUkVGVzdC5OYW1lKSwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgdGFibGUgb2YgQ0JTIFRhc2tzIHdpdGggTm9uLVZhbGlkIFNjb3JlcyIsIGFsaWduID0gcmVwKCdjJyksIGNvbC5uYW1lcyA9IGMoIlRhc2siLCAiT3V0bGllciBTY29yZXMiKSwgcm93Lm5hbWVzID0gVFJVRSkgJT4lIAogIGZvb3Rub3RlKGdlbmVyYWwgPSAiUGFydGljaXBhbnRzIHdobyBoYWQgYW55IG5vbi12YWxpZCBzY29yZXMgd2VyZSByZW1vdmVkIGZvcm0gdGhlIGZpbmFsIGFuYWx5c2VzLiBOb3QgYWxsIHRhc2tzIGhhZCBhIG5vbi12YWxpZCBzY29yZS4iKSAlPiUgCiAgY29sdW1uX3NwZWMoMiwgYm9sZCA9IFQpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAgIyBjb2x1bW5fc3BlYyg5LCBib3JkZXJfbGVmdCA9IFQpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKYGBgCgoKYGBge3IgY2xlYW5fZGF0YV93aXRoX0NCU19yZW1vdmVfbGlzdCwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBjbGVhbiBDQlNfZGF0YSB1c2luZyBDQlNfcmVtb3ZlX2xpc3QKQ0JTX2RhdGFfbm9vdXQgPC0gCiAgQ0JTX2RhdGEgJT4lIGZpbHRlcighVXNlci5FbWFpbCAlaW4lIENCU19yZW1vdmVfbGlzdCRVc2VyLkVtYWlsKQoKIyBnZXQgbGlzdCBvZiBwcyB3aXRoIGFsbCAxMiB0YXNrcyBhZnRlciByZW1vdmluZyBvdXRsaWVycwogICMgZ2V0IGZyZXF1ZW5jeSBjb3VudHMgb2YgbnVtYmVyIG9mIHRhc2tzIHBlciBwCiAgQ0JTX3Rhc2tudW1fcF9mcmVxIDwtIENCU19kYXRhX25vb3V0ICU+JSBjb3VudChVc2VyLkVtYWlsKSAlPiUgZmlsdGVyKG4gIT0gMTIpCiAgIyByZW1vdmUgYW55IHBzIHdpdGggbGVzcyB0aGFuIDEyIHRhc2tzCiAgQ0JTX2RhdGFfZmluYWwgPC0gCiAgICBDQlNfZGF0YV9ub291dCAlPiUgCiAgICBmaWx0ZXIoIVVzZXIuRW1haWwgJWluJSBDQlNfdGFza251bV9wX2ZyZXEkVXNlci5FbWFpbCkKCgojIGNvbXBhcmUgZnJlcXVlbmN5IHRhYmxlcyBmb3JtIGJlZm9yZSB0byBhZnRlciBwIHJlbW92YWwKIyBnZXQgZnJlcXVlbmN5IHRhYmxlcwogICMgYmVmb3JlIHJlbW92YWwKICBDQlNfcF9mcmVxIDwtIHBseXI6OmNvdW50KENCU19kYXRhJFRlc3QuTmFtZSkKICAjIGFmdGVyIG91dGxpZXIgcmVtb3ZhbAogIENCU19ub291dF9wX2ZyZXEgPC0gcGx5cjo6Y291bnQoQ0JTX2RhdGFfbm9vdXQkVGVzdC5OYW1lKQogICMgYWZ0ZXIgcmVtb3ZpbmcgaW5jb21wbGV0ZSBwcwogIENCU19maW5hbF9wX2ZyZXEgPC0gcGx5cjo6Y291bnQoQ0JTX2RhdGFfZmluYWwkVGVzdC5OYW1lKQojIGpvaW4gaW50byAxIHRhYmxlCkNCU19jb21wYXJlX3BfZnJlcV90IDwtIAogIGRhdGEuZnJhbWUoInRhc2siID0gQ0JTX3BfZnJlcSR4LCAiZnJlcV9pbnRpdGlhbCIgPSBDQlNfcF9mcmVxJGZyZXEsICJmcmVxX25vb3V0IiA9IENCU19ub291dF9wX2ZyZXEkZnJlcSwgImZyZXFfZmluYWwiID0gQ0JTX2ZpbmFsX3BfZnJlcSRmcmVxLCAicmVtb3ZlZCIgPSAoQ0JTX3BfZnJlcSRmcmVxIC0gQ0JTX25vb3V0X3BfZnJlcSRmcmVxKSwgIm1pc3NpbmciID0gKENCU19ub291dF9wX2ZyZXEkZnJlcSAtIENCU19maW5hbF9wX2ZyZXEkZnJlcSkpCgojIHNob3cgdGFibGUgdXNpbmcga2FibGUKa2FibGUoQ0JTX2NvbXBhcmVfcF9mcmVxX3QsIGNhcHRpb24gPSAiRnJlcXVlbmN5IHRhYmxlIG9mIENCUyBUYXNrcyBiZWZvcmUgYW5kIGFmdGVyIGV4dHJlbWUgb3V0bGllcnMgcmVtb3ZlZC4iLCBhbGlnbiA9IHJlcCgncmNjY2NjJyksCiAgICAgIGNvbC5uYW1lcyA9IGMoIlRhc2siLCAiSW5pdGlhbCIsICJObyBPdXRsaWVycyIsICJGaW5hbCIsICJPdXRsaWVycyIsICJNaXNzaW5nIFRhc2socykiKSwgcm93Lm5hbWVzID0gVFJVRSkgJT4lIAogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXh0cmVtZSBvdXRsaWVyIGRlZmluZWQgYXMgYW55IHNjb3JlIHRoYXQgd2FzID4zU0QgZnJvbSB0aGUgbWVhbi4gRmluYWwgc2FtcGxlIHNpemUgZW5zdXJlZCBhbGwgcGFydGljaXBhbnRzIGNvbXBsZXRlZCBhbGwgMTIgQ0JTIHRhc2tzLiIpICU+JSAKICBhZGRfaGVhZGVyX2Fib3ZlKGMoIiAiID0gMiwgIlNhbXBsZSBTaXplIiA9IDMsICJSZW1vdmVkIE4iID0gMiksIGJvbGQgPSBUKSAlPiUgCiAgY29sdW1uX3NwZWMoMiwgYm9sZCA9IFQpICU+JQogIGNvbHVtbl9zcGVjKDUsIGJvcmRlcl9yaWdodCA9IFQpICU+JSAKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQpgYGAKCgojIyMjIExpbmtpbmcgTWFpbiBTdHVkeSBEYXRhCgpOZXh0LCB3ZSBsaW5rZWQgdGhlIGRhdGEgYmV0d2VlbiB0aGUgZGlmZmVyZW50IGRhdGEgc2V0czogIm1haW5fc3VyX2RhdGEiLCAidHJhY2tpbmdfZGF0YV90ZW1wIiwgIkNCU19kYXRhX2ZpbmFsIgoKLSAgKiptYWluX3N1cl9kYXRhKiogaGFzIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOiBgciBuYW1lcyhtYWluX3N1cl9kYXRhKWAKICAgIC0gQXQgdGhpcyBwb2ludCwgdGhpcyBmaWxlIGhhcyBgciBucm93KG1haW5fc3VyX2RhdGEpYCBwYXJ0aWNpcGFudHMKLSAgKip0cmFja2luZ19kYXRhX3RlbXAqKiBoYXMgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6IGByIG5hbWVzKHRyYWNraW5nX2RhdGFfdGVtcClgCiAgICAtIEF0IHRoaXMgcG9pbnQsIHRoaXMgZmlsZSBoYXMgYHIgbnJvdyh0cmFja2luZ19kYXRhX3RlbXApYCBwYXJ0aWNpcGFudHMKLSAgKipDQlNfZGF0YV9maW5hbCoqIGhhcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczogYHIgbmFtZXMoQ0JTX2RhdGFfZmluYWwpYAogICAgLSBBdCB0aGlzIHBvaW50LCB0aGlzIGZpbGUgaGFzIGByIENCU19jb21wYXJlX3BfZnJlcV90JGZyZXFfZmluYWxbMV1gIHBhcnRpY2lwYW50cwoKCmBgYHtyfQojIHN0YXJ0IGJ5IHJlbW92aW5nIHVud2FudGVkIGNvbHVtbnMgZnJvbSBDQlNfZmluYWxfZGF0YSB0byBtYWtlIHRoaW5ncyBtb3JlIHNpbXBsZS4uLgpDQlNfZGF0YV9maW5hbF9zaW1wbGUgPC0gCiAgQ0JTX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChVc2VyLkVtYWlsLCBUZXN0Lk5hbWUsIFNjb3JlLCBSYXcuU2NvcmUsIFBlcmNlbnRpbGUpCgojIG5leHQsIGNoYW5nZSBDQlMgZGF0YSB0byB3aWRlIGZvcm1hdApDQlNfZGF0YV9maW5hbFcgPC0gCiAgIyB1c2Ugc2ltcGxpZmllZCBkYXRhCiAgQ0JTX2RhdGFfZmluYWxfc2ltcGxlICU+JSAKICAjIHBlcmZvcm0gdGhlIGxvbmc+d2lkZSBmdW5jdGlvbiBmb3IgZWFjaCBwYXJ0aWNpcGFudAogIGdyb3VwX2J5KFVzZXIuRW1haWwpICU+JSAKICAjIG1ha2UgZGF0YSB3aWRlCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IFRlc3QuTmFtZSwgIyBWYXJpYWJsZSB3aG9zZSB2YWx1ZXMgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gY29sdW1uIG5hbWVzIC0tIGVudGVyIG11bHRpcGxlIHdpdGggImMoKSIKICAgICAgICAgICAgICB2YWx1ZXNfZnJvbSA9IGMoU2NvcmUsIFJhdy5TY29yZSwgUGVyY2VudGlsZSkpICU+JSAgIyBWYXJpYWJsZSB3aG9zZSB2YWx1ZXMgd2lsbCBwb3B1bGF0ZSB0aGUgdGFibGXigJlzIGJsb2NrIG9mIGNlbGwgdmFsdWVzLgogICMgcmVuYW1lICJVc2VyLkVtYWlsIiBhcyAicGFydGljaXBhbnQiIHRvIGxpbmsgZmlsZXMKICByZW5hbWUocGFydGljaXBhbnQgPSBVc2VyLkVtYWlsKSAKICAKICAjIGNoYW5nZSBzY29yZXMgdG8gbnVtZXJpYyAKCgojIHNpbmNlIENCUyBoYXMgYmVlbiByZWR1Y2VkIHRoZSBtb3N0LCB1c2UgYSBsaXN0IGZyb20gQ0JTX2RhdGFfZmluYWwKICAjIGNyZWF0ZSBmcmVxIGxpc3QgZnJvbSBDQlNfZGF0YV9maW5hbAogICMgbm90ZTogdGhpcyBsaXN0IG1heSBpbmNsdWRlIHBzIHdobyB3ZXJlIHJlbW92ZSBlaXRoZXIgaW4gdHJhY2tpbmcgb3Igc3VydmV5IGNvbXBvbmVudHMKIyBtYWluX2FsbF9wYXJ0aWNpcGFudHMgPC0gcGx5cjo6Y291bnQoYyhtYWluX3N1cl9kYXRhJHBhcnRpY2lwYW50LCBDQlNfZGF0YV9maW5hbFckcGFydGljaXBhbnQsIHRyYWNraW5nX2RhdGFfdGVtcCRwYXJ0aWNpcGFudCkpICU+JSBmaWx0ZXIoZnJlcSA9PSAzKSAjI2ZpeCB0byB1c2UgbGF0ZXIuLi4gCgojIGxpbmsgYWxsIGRhdGEgYi93IHRoZSAzIGRhdGEgZmlsZXMKbWFpbl9hbGxfZGF0YSA8LSAKICBtYWluX3N1cl9kYXRhICU+JSBpbm5lcl9qb2luKENCU19kYXRhX2ZpbmFsVywgYnkgPSAicGFydGljaXBhbnQiKSAlPiUgaW5uZXJfam9pbih0cmFja2luZ19kYXRhX3RlbXAsIGJ5ID0gInBhcnRpY2lwYW50IikKYGBgCgpHZXQgeiBzY29yZXMgZm9yIENCcyB0YXNrcy4uLgoKYGBge3J9CiMgZ2V0IHogc2NvcmUgZm9yIGVhY2ggQ0JTIHRhc2tzCgojIERpZ2l0IFNwYW4gKERTKQpaU2NvcmVfRFMgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFNjb3JlX0RpZ2l0IFNwYW5gKSkKWlJhd19EUyA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgUmF3LlNjb3JlX0RpZ2l0IFNwYW5gKSkKCiMgRG91YmxlIFRyb3VibGUgKERUKQpaU2NvcmVfRFQgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFNjb3JlX0RvdWJsZSBUcm91YmxlYCkpClpSYXdfRFQgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9Eb3VibGUgVHJvdWJsZWApKQoKIyBGZWF0dXJlIE1hdGNoIChGTSkKWlNjb3JlX0ZNID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBTY29yZV9GZWF0dXJlIE1hdGNoYCkpClpSYXdfRk0gPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9GZWF0dXJlIE1hdGNoYCkpCgojIEdyYW1tYXRpY2FsIFJlYXNvbmluZyAoR1IpClpTY29yZV9HUiA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgU2NvcmVfR3JhbW1hdGljYWwgUmVhc29uaW5nYCkpClpSYXdfR1IgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9HcmFtbWF0aWNhbCBSZWFzb25pbmdgKSkKCiMgTW9ua2V5IExhZGRlciAoTUwpClpTY29yZV9NTCA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgU2NvcmVfTW9ua2V5IExhZGRlcmApKQpaUmF3X01MID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBSYXcuU2NvcmVfTW9ua2V5IExhZGRlcmApKQoKIyBPZGQgT25lIE91dCAoT09PKQpaU2NvcmVfT09PID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBTY29yZV9PZGQgT25lIE91dGApKQpaUmF3X09PTyA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgUmF3LlNjb3JlX09kZCBPbmUgT3V0YCkpCgojIFBhaXJlZCBBc3NvY2lhdGVzIChQQSkKWlNjb3JlX1BBID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBTY29yZV9QYWlyZWQgQXNzb2NpYXRlc2ApKQpaUmF3X1BBID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBSYXcuU2NvcmVfUGFpcmVkIEFzc29jaWF0ZXNgKSkKCiMgUG9seWdvbnMgKFApClpTY29yZV9QID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJFNjb3JlX1BvbHlnb25zKSkKWlJhd19QID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJFJhdy5TY29yZV9Qb2x5Z29ucykpCgojIFJvdGF0aW9ucyAoUikKWlNjb3JlX1IgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkU2NvcmVfUm90YXRpb25zKSkKWlJhd19SID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJFJhdy5TY29yZV9Sb3RhdGlvbnMpKQoKIyBTcGF0aWFsIFBsYW5uaW5nIChTUCkKWlNjb3JlX1NQID0gYXMubnVtZXJpYyhzY2FsZShtYWluX2FsbF9kYXRhJGBTY29yZV9TcGF0aWFsIFBsYW5uaW5nYCkpClpSYXdfU1AgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9TcGF0aWFsIFBsYW5uaW5nYCkpCgojIFNwYXRpYWwgU3BhbiAoU1MpClpTY29yZV9TUyA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgU2NvcmVfU3BhdGlhbCBTcGFuYCkpClpSYXdfU1MgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9TcGF0aWFsIFBsYW5uaW5nYCkpCgojIFRva2VuIFNlYXJjaCAoVFMpClpTY29yZV9UUyA9IGFzLm51bWVyaWMoc2NhbGUobWFpbl9hbGxfZGF0YSRgU2NvcmVfVG9rZW4gU2VhcmNoYCkpClpSYXdfVFMgPSBhcy5udW1lcmljKHNjYWxlKG1haW5fYWxsX2RhdGEkYFJhdy5TY29yZV9Ub2tlbiBTZWFyY2hgKSkKCiMgYWRkIHotc2NvcmUgYWxsIENCUyBzY29yZXMgKCYgUmF3IHNjb3JlcykgdG8gbWFpbiBkYXRhIC0tIGNyZWF0aW5nICJtYWluX2RhdGFfZmluYWwiCiAgIyBtdXRhdGVfYXQodmFyKHN0YXJ0c193aXRoKCJTY29yZSIpKSwgZnVucyhzY2FsZSkpICMjIHdvbnQgd29yaywgbmVlZHMgInNlbGVjdGluZyIgZnVuY3Rpb24uLi4KICAjIG11dGF0ZShTY29yZVpfRFMgPSBzY2FsZShgU2NvcmVfRGlnaXQgU3BhbmApKQogICMgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoIlNjb3JlIikpLCBsaXN0KHogPSB+YXMudmVjdG9yKHNjYWxlKC4pKSkpCm1haW5fYWxsX2RhdGFfZmluYWwgPC0gCiAgIyBqb2luIG1haW4gZGF0YSAmIG5ldyB6c2NvcmVzCiAgY2JpbmQobWFpbl9hbGxfZGF0YSwgWlNjb3JlX0RTLCBaUmF3X0RTLCBaU2NvcmVfRFQsIFpSYXdfRFQsIFpTY29yZV9GTSwgWlJhd19GTSwgWlNjb3JlX0dSLCBaUmF3X0dSLCBaU2NvcmVfTUwsIFpSYXdfTUwsIFpTY29yZV9PT08sIFpSYXdfT09PLCBaU2NvcmVfUEEsIFpSYXdfUEEsIFpTY29yZV9QLCBaUmF3X1AsIFpTY29yZV9SLCBaUmF3X1IsIFpTY29yZV9TUCwgWlJhd19TUCwgWlNjb3JlX1NTLCBaUmF3X1NTLCBaU2NvcmVfVFMsIFpSYXdfVFMpICU+JQogIAogICMgZm9yIGVhY2ggcC4uLgogIHJvd3dpc2UoKSAlPiUgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIG92ZXJhbGwgQ0JTIHNjb3JlCiAgbXV0YXRlKENCU19vdmVyYWxsID0gbWVhbihaU2NvcmVfRFMsIFpTY29yZV9EVCwgWlNjb3JlX0ZNLCBaU2NvcmVfR1IsIFpTY29yZV9NTCwgWlNjb3JlX09PTywgWlNjb3JlX1BBLCBaU2NvcmVfUCwgWlNjb3JlX1IsIFpTY29yZV9TUCwgWlNjb3JlX1NTLCBaU2NvcmVfVFMpKSAlPiUgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIG92ZXJhbGwgQ0JTIHJhdyBzY29yZQogIG11dGF0ZShDQlNfb3ZlcmFsbFIgPSBtZWFuKFpSYXdfRFMsIFpSYXdfRFQsIFpSYXdfRk0sIFpSYXdfR1IsIFpSYXdfTUwsIFpSYXdfT09PLCBaUmF3X1BBLCBaUmF3X1AsIFpSYXdfUiwgWlJhd19TUCwgWlJhd19TUywgWlJhd19UUykpICU+JSAKICAKICAjIyBGUk9NIEhBTVBTSElSRSBFVCBBTC4gKDIwMTIpIC0tUENBIChEQVRBLURSSVZFTikKICAjIGFkZCBjb21wb3NpdGUgc2NvcmUgLS0gU1RNIENCUyBzY29yZQogIG11dGF0ZShDQlNfU1RNID0gbWVhbihaU2NvcmVfTUwsIFpTY29yZV9QQSwgWlNjb3JlX1NTLCBaU2NvcmVfVFMpKSAlPiUgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIFNUTSBDQlMgcmF3IHNjb3JlCiAgbXV0YXRlKENCU19TVE1SID0gbWVhbihaUmF3X01MLCBaUmF3X1BBLCBaUmF3X1NTLCBaUmF3X1RTKSkgJT4lIAoKICAjIGFkZCBjb21wb3NpdGUgc2NvcmUgLS0gUmVhc29uaW5nIENCUyBzY29yZQogIG11dGF0ZShDQlNfcmVhc29uID0gbWVhbihaU2NvcmVfRk0sIFpTY29yZV9PT08sIFpTY29yZV9QLCBaU2NvcmVfUiwgWlNjb3JlX1NQKSkgJT4lIAogICMgYWRkIGNvbXBvc2l0ZSBzY29yZSAtLSBSZWFzb25pbmcgQ0JTIHJhdyBzY29yZQogIG11dGF0ZShDQlNfcmVhc29uUiA9IG1lYW4oWlJhd19GTSwgWlJhd19PT08sIFpSYXdfUCwgWlJhd19SLCBaUmF3X1NQKSkgJT4lIAogIAogICMgYWRkIGNvbXBvc2l0ZSBzY29yZSAtLSBWZXJiYWwgQ0JTIHNjb3JlCiAgbXV0YXRlKENCU192ZXJiYWwgPSBtZWFuKFpTY29yZV9HUiwgWlNjb3JlX0RTLCBaU2NvcmVfRFQpKSAlPiUgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIFZlcmJhbCBDQlMgcmF3IHNjb3JlCiAgbXV0YXRlKENCU192ZXJiYWxSID0gbWVhbihaUmF3X0RTLCBaUmF3X0RULCBaUmF3X0dSKSkgJT4lIAogIAogICMjIEZST00gQ0JTIFRBU0sgU0VMRUNUSU9OIEdVSURFIC0tQ09OQ0VQVFMgKEZPUiBDTElOSUNBTCBBUFBTKQogICMgYWRkIGNvbXBvc2l0ZSBzY29yZSAtLSBNRU1PUlkgQ0JTIHNjb3JlCiAgbXV0YXRlKENCU190c19tZW1vcnkgPSBtZWFuKFpTY29yZV9NTCwgWlNjb3JlX1NTLCBaU2NvcmVfVFMsIFpTY29yZV9QQSkpICU+JSAKICAjIGFkZCBjb21wb3NpdGUgc2NvcmUgLS0gTUVNT1JZIENCUyByYXcgc2NvcmUKICBtdXRhdGUoQ0JTX3RzX21lbW9yeVIgPSBtZWFuKFpSYXdfTUwsIFpSYXdfU1MsIFpSYXdfVFMsIFpSYXdfUEEpKSAlPiUgCiAgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIFJFQVNPTklORyBDQlMgc2NvcmUKICBtdXRhdGUoQ0JTX3RzX3JlYXNvbiA9IG1lYW4oWlNjb3JlX1AsIFpTY29yZV9SLCBaU2NvcmVfT09PLCBaU2NvcmVfU1ApKSAlPiUgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIFJFQVNPTklORyBDQlMgcmF3IHNjb3JlCiAgbXV0YXRlKENCU190c19yZWFzb25SID0gbWVhbihaUmF3X1AsIFpSYXdfUiwgWlJhd19PT08sIFpSYXdfU1ApKSAlPiUgCiAgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIFZFUkJBTCBBQklMSVRZIENCUyBzY29yZQogIG11dGF0ZShDQlNfdHNfdmVyYmFsYWIgPSBtZWFuKFpTY29yZV9HUiwgWlNjb3JlX0RTKSkgJT4lIAogICMgYWRkIGNvbXBvc2l0ZSBzY29yZSAtLSBWRVJCQUwgQUJJTElUWSBDQlMgcmF3IHNjb3JlCiAgbXV0YXRlKENCU190c192ZXJiYWxhYlIgPSBtZWFuKFpSYXdfR1IsIFpSYXdfRFMpKSAlPiUgCiAgCiAgIyBhZGQgY29tcG9zaXRlIHNjb3JlIC0tIENPTkNFTlRSQVRJT04gQ0JTIHNjb3JlCiAgbXV0YXRlKENCU190c19jb24gPSBtZWFuKFpTY29yZV9GTSwgWlNjb3JlX0RUKSkgJT4lIAogICMgYWRkIGNvbXBvc2l0ZSBzY29yZSAtLSBDT05DRU5UUkFUSU9OIENCUyByYXcgc2NvcmUKICBtdXRhdGUoQ0JTX3RzX2NvblIgPSBtZWFuKFpSYXdfRk0sIFpSYXdfRFQpKQpgYGAKCgojIERlc2NyaXB0aXZlcwoKIyMgTk9NSU5BTCAocGlsb3QgJiBtYWluKQojIyMgRGVtb2dyYXBoaWMgJiBUeXBpY2FsIFNtYXJ0cGhvbmUgVXNlCgpgYGB7cn0KCiMgb3V0cHV0IGlzIGEgbGlzdCBvZiB0aWJibGVzLCBlYWNoIHdpdGg6ICR4eHggPSB2YXIgbmFtZSwgeCA9IGxldmVsKHMpLCBuID0gY291bnQsIHBjdCA9IHBlcmNlbnRhZ2UKCiMjIEZPUiBQSUxPVCBEQVRBCnBpbG90X25vbV9kZW1vIDwtIAogIHBpbG90X3N1cl9kYXRhICU+JSAKICAjIGdldCBzdWJzZXQgb2YgZGF0YSB3aXRoIG9ubHkgbm9taW5hbCB2YXJzCiAgc2VsZWN0KGdlbmRlciwgbGFuZywgcHJvZiwgcHJvZ3JhbSwgeWVhciwgYXBwX21vc3RfdXNlZCwgaXBob25lLCBTVF9hcHBfbW9zdF91c2VkLCBTVF9hcHBfdGV4dF9tZXNzOnBoYW50b20sIGRpc3RfZGV2aWNlLCBkaXN0X2RldmljZV9zdHVkeXdvcmssIGRpc3RfZGV2aWNlX3NvY2lhbCwgbG9jX3R5cGljYWw6bG9jX3NvY2lhbCwgY29tbXVuaWNhdGUsIHBob25lX3VzZSkgJT4lIAogICMgZ2V0IGZyZXEgJiBwcm9wb3J0aW9uIGZvciBlYWNoIHZhcgogIHB1cnJyOjptYXAofiBjb3VudCh0aWJibGUoeCA9IC54KSwgeCkgJT4lIAogICAgICAgICAgICAgICBtdXRhdGUocGN0ID0gKG4gLyBzdW0obikgKiAxMDApKSkKCiMgbWFrZSBsaXN0IGludG8gMSBsb25nIGRhdGEgZnJhbWUgdG8gc2hvdyBhcyB0YWJsZS4uLgpwaWxvdF9ub21fZGVtb190IDwtIAogICMgdGhpcyBrZWVwcyB0aGUgdmFyIG5hbWUgaW4gdGhlIDFzdCBjb2x1bW4gKHVzaW5nLS0gLmlkID0gInRpYiIpCiAgbWFwX2RmcihwaWxvdF9ub21fZGVtbywgYmluZF9yb3dzLCAuaWQgPSAidGliIikKCiMjIEZPUiBNQUlOIERBVEEgLS0gT1ZFUkFMTAptYWluX25vbV9kZW1vIDwtIAptYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICAjIGdldCBzdWJzZXQgb2Ygbm9taW5hbCB2YXJzCiAgc2VsZWN0KGNvbmRpdGlvbiwgZ2VuZGVyLCBsYW5nLCBwcm9mLCBwcm9ncmFtLCB5ZWFyLCBDQlNfa25vdywgQ0JTX2RvbmVfdGFza3MsIGFwcF9tb3N0X3VzZWQsIGlwaG9uZSwgU1RfYXBwX21vc3RfdXNlZCwgU1RfYXBwX3RleHRfbWVzczpwaGFudG9tLCBkaXN0X2RldmljZSwgZGlzdF9kZXZpY2Vfc3R1ZHl3b3JrLCBkaXN0X2RldmljZV9zb2NpYWwsIGxvY190eXBpY2FsOmxvY19zb2NpYWwsIGNvbW11bmljYXRlLCBwaG9uZV91c2UpICU+JSAKICBwdXJycjo6bWFwKH4gY291bnQodGliYmxlKHggPSAueCksIHgpICU+JQogICAgICAgICAgICAgICBtdXRhdGUocGN0ID0gKG4gLyBzdW0obikgKiAxMDApKSkKIyBtYWtlIGxpc3QgaW50byAxIGxvbmcgZGF0YSBmcmFtZSB0byBzaG93IGFzIHRhYmxlLi4uCm1haW5fbm9tX2RlbW9fdCA8LSAKICAjIHRoaXMga2VlcHMgdGhlIHZhciBuYW1lIGluIHRoZSAxc3QgY29sdW1uICh1c2luZy0tIC5pZCA9ICJ0aWIiKQogIG1hcF9kZnIobWFpbl9ub21fZGVtbywgYmluZF9yb3dzLCAuaWQgPSAidGliIikKCiMjIEZPUiBNQUlOIERBVEEgLS0gREVTSwptYWluX25vbV9kZW1vX2Rlc2sgPC0gCm1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogICMgZ2V0IHN1YnNldCBvZiBub21pbmFsIHZhcnMKICBzZWxlY3QoY29uZGl0aW9uLCBnZW5kZXIsIGxhbmcsIHByb2YsIHByb2dyYW0sIHllYXIsIENCU19rbm93LCBDQlNfZG9uZV90YXNrcywgYXBwX21vc3RfdXNlZCwgaXBob25lLCBTVF9hcHBfbW9zdF91c2VkLCBTVF9hcHBfdGV4dF9tZXNzOnBoYW50b20sIGRpc3RfZGV2aWNlLCBkaXN0X2RldmljZV9zdHVkeXdvcmssIGRpc3RfZGV2aWNlX3NvY2lhbCwgbG9jX3R5cGljYWw6bG9jX3NvY2lhbCwgY29tbXVuaWNhdGUsIHBob25lX3VzZSkgJT4lIAogICMgZm9yIGRlc2sgY29uZGl0aW9uCiAgZmlsdGVyKGNvbmRpdGlvbiA9PSAiZGVzayIpICU+JSAKICBwdXJycjo6bWFwKH4gY291bnQodGliYmxlKHggPSAueCksIHgpICU+JQogICAgICAgICAgICAgICBtdXRhdGUocGN0ID0gKG4gLyBzdW0obikgKiAxMDApKSkKIyBtYWtlIGxpc3QgaW50byAxIGxvbmcgZGF0YSBmcmFtZSB0byBzaG93IGFzIHRhYmxlLi4uCm1haW5fbm9tX2RlbW9fZGVza190IDwtIAogICMgdGhpcyBrZWVwcyB0aGUgdmFyIG5hbWUgaW4gdGhlIDFzdCBjb2x1bW4gKHVzaW5nLS0gLmlkID0gInRpYiIpCiAgbWFwX2RmcihtYWluX25vbV9kZW1vX2Rlc2ssIGJpbmRfcm93cywgLmlkID0gInRpYiIpCgojIyBGT1IgTUFJTiBEQVRBIC0tIFBPQ0tFVC9CQUcKbWFpbl9ub21fZGVtb19wYiA8LSAKbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgIyBnZXQgc3Vic2V0IG9mIG5vbWluYWwgdmFycwogIHNlbGVjdChjb25kaXRpb24sIGdlbmRlciwgbGFuZywgcHJvZiwgcHJvZ3JhbSwgeWVhciwgQ0JTX2tub3csIENCU19kb25lX3Rhc2tzLCBhcHBfbW9zdF91c2VkLCBpcGhvbmUsIFNUX2FwcF9tb3N0X3VzZWQsIFNUX2FwcF90ZXh0X21lc3M6cGhhbnRvbSwgZGlzdF9kZXZpY2UsIGRpc3RfZGV2aWNlX3N0dWR5d29yaywgZGlzdF9kZXZpY2Vfc29jaWFsLCBsb2NfdHlwaWNhbDpsb2Nfc29jaWFsLCBjb21tdW5pY2F0ZSwgcGhvbmVfdXNlKSAlPiUgCiAgIyBmb3IgcG9ja2V0L2JhZyBjb25kaXRpb24KICBmaWx0ZXIoY29uZGl0aW9uID09ICJwb2NrZXQvYmFnIikgJT4lIAogIHB1cnJyOjptYXAofiBjb3VudCh0aWJibGUoeCA9IC54KSwgeCkgJT4lCiAgICAgICAgICAgICAgIG11dGF0ZShwY3QgPSAobiAvIHN1bShuKSAqIDEwMCkpKQojIG1ha2UgbGlzdCBpbnRvIDEgbG9uZyBkYXRhIGZyYW1lIHRvIHNob3cgYXMgdGFibGUuLi4KbWFpbl9ub21fZGVtb19wYl90IDwtIAogICMgdGhpcyBrZWVwcyB0aGUgdmFyIG5hbWUgaW4gdGhlIDFzdCBjb2x1bW4gKHVzaW5nLS0gLmlkID0gInRpYiIpCiAgbWFwX2RmcihtYWluX25vbV9kZW1vX3BiLCBiaW5kX3Jvd3MsIC5pZCA9ICJ0aWIiKQoKIyMgRk9SIE1BSU4gREFUQSAtLSBPVVRTSURFCm1haW5fbm9tX2RlbW9fb3V0IDwtIAptYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICAjIGdldCBzdWJzZXQgb2Ygbm9taW5hbCB2YXJzCiAgc2VsZWN0KGNvbmRpdGlvbiwgZ2VuZGVyLCBsYW5nLCBwcm9mLCBwcm9ncmFtLCB5ZWFyLCBDQlNfa25vdywgQ0JTX2RvbmVfdGFza3MsIGFwcF9tb3N0X3VzZWQsIGlwaG9uZSwgU1RfYXBwX21vc3RfdXNlZCwgU1RfYXBwX3RleHRfbWVzczpwaGFudG9tLCBkaXN0X2RldmljZSwgZGlzdF9kZXZpY2Vfc3R1ZHl3b3JrLCBkaXN0X2RldmljZV9zb2NpYWwsIGxvY190eXBpY2FsOmxvY19zb2NpYWwsIGNvbW11bmljYXRlLCBwaG9uZV91c2UpICU+JSAKICAjIGZvciBwb2NrZXQvYmFnIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gIm91dHNpZGUiKSAlPiUgCiAgcHVycnI6Om1hcCh+IGNvdW50KHRpYmJsZSh4ID0gLngpLCB4KSAlPiUKICAgICAgICAgICAgICAgbXV0YXRlKHBjdCA9IChuIC8gc3VtKG4pICogMTAwKSkpCiMgbWFrZSBsaXN0IGludG8gMSBsb25nIGRhdGEgZnJhbWUgdG8gc2hvdyBhcyB0YWJsZS4uLgptYWluX25vbV9kZW1vX291dF90IDwtIAogICMgdGhpcyBrZWVwcyB0aGUgdmFyIG5hbWUgaW4gdGhlIDFzdCBjb2x1bW4gKHVzaW5nLS0gLmlkID0gInRpYiIpCiAgbWFwX2RmcihtYWluX25vbV9kZW1vX291dCwgYmluZF9yb3dzLCAuaWQgPSAidGliIikKYGBgCgpgYGB7cn0Ka2FibGUocGlsb3Rfbm9tX2RlbW9fdCwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgJiBwZXJjZW50YWdlIGZvciBub21pbmFsIHZhcnMgLSBkZW1vIC0gUElMT1QuIiwgYWxpZ24gPSByZXAoJ2NyY2MnKSwgY29sLm5hbWVzID0gYygiVmFyIiwgImxldmVsIiAsIm4iLCAiJSIpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJUaGVyZSB3YXMgbm8gdGFzayBjb21wbGV0ZWQgZHVyaW5nIHRoZSBwaWxvdCBzdHVkeS4iKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUobWFpbl9ub21fZGVtb190LCBjYXB0aW9uID0gIkZyZXF1ZW5jeSAmIHBlcmNlbnRhZ2UgZm9yIG5vbWluYWwgdmFycyAtIGRlbW8gLSBNQUlOIE9WRVJBTEwiLCBhbGlnbiA9IHJlcCgnY3JjYycpLCBjb2wubmFtZXMgPSBjKCJWYXIiLCAibGV2ZWwiICwibiIsICIlIiksIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShtYWluX25vbV9kZW1vX2Rlc2tfdCwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgJiBwZXJjZW50YWdlIGZvciBub21pbmFsIHZhcnMgLSBkZW1vIC0gTUFJTiAtIERFU0siLCBhbGlnbiA9IHJlcCgnY3JjYycpLCBjb2wubmFtZXMgPSBjKCJWYXIiLCAibGV2ZWwiICwibiIsICIlIiksIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShtYWluX25vbV9kZW1vX3BiX3QsIGNhcHRpb24gPSAiRnJlcXVlbmN5ICYgcGVyY2VudGFnZSBmb3Igbm9taW5hbCB2YXJzIC0gZGVtbyAtIE1BSU4gLSBQT0NLRVQvQkFHIiwgYWxpZ24gPSByZXAoJ2NyY2MnKSwgY29sLm5hbWVzID0gYygiVmFyIiwgImxldmVsIiAsIm4iLCAiJSIpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJUaGVyZSB3YXMgbm8gdGFzayBjb21wbGV0ZWQgZHVyaW5nIHRoZSBwaWxvdCBzdHVkeS4iKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUobWFpbl9ub21fZGVtb19vdXRfdCwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgJiBwZXJjZW50YWdlIGZvciBub21pbmFsIHZhcnMgLSBkZW1vIC0gTUFJTiAtIE9VVFNJREUiLCBhbGlnbiA9IHJlcCgnY3JjYycpLCBjb2wubmFtZXMgPSBjKCJWYXIiLCAibGV2ZWwiICwibiIsICIlIiksIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCmBgYAoKIyMjIFF1ZXN0aW9ubmFpcmVzIChsZXZlbHMpCmBgYHtyfQoKIyBvdXRwdXQgaXMgYSBsaXN0IG9mIHRpYmJsZXMsIGVhY2ggd2l0aDogJHh4eCA9IHZhciBuYW1lLCB4ID0gbGV2ZWwocyksIG4gPSBjb3VudCwgcGN0ID0gcGVyY2VudGFnZQoKIyMgRk9SIFBJTE9UIERBVEEKcGlsb3Rfbm9tX3F1ZXMgPC0gCiAgcGlsb3Rfc3VyX2RhdGEgJT4lIAogICMgZ2V0IHN1YnNldCBvZiBkYXRhIHdpdGggb25seSBub21pbmFsIHZhcnMKICBzZWxlY3QoTk1QUV9zdW0sIE1QSVFfc3VtLCBNUElRX1NJX3N1bSwgTVBJUV9WRk9fc3VtLCBTQURfc3VtLCBTQURfZGVwX3N1bSwgU0FEX2VhX3N1bSwgU0FEX2Rpc3Rfc3VtKSAlPiUgCiAgIyBkaXZpZGUgc3VtIHNjb3JlcyBpbnRvIEw+TT5ICiAgICMgZGV0YWlscyBwcm92aWRlZCBmb3IgMXN0IGluc3RhbmNlLi4uIAogIG11dGF0ZShOTVBRX3N1bSA9ICMgbmFtZSBvZiB2YXIsIHRoaXMgcmVwbGFjZXMgZXhpc3RpbmcgYi9jIGl0cyB0aGUgc2FtZQogICAgICAgICAgIGN1dChOTVBRX3N1bSwgIyBzdGF0ZSB2YXIgCiAgICAgICAgICAgICAgIGJyZWFrcyA9IHNlcSgyMCwgMTQwLCA0MCksICMgdGhpcyBpcyBwcm92aWRpbmcgYSBzZXEgZnJvbSAyMCA+PiAxNDAsIHdpdGggYnJlYWtzIG9mIDQwICg0MCBkZXQgYnkgYnJlYWtpbmcgdXAgdGhlIHJhbmdlIGludG8gMzogMTQwLTIwID0gMTIwLCAxMjAvMyA9IDQwKQogICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lICMgc3RhdGUgdGhlIG5ldyBsYWJlbHMgZm9yIHRoZSBsZXZlbHMKICBtdXRhdGUoTVBJUV9zdW0gPSBjdXQoTVBJUV9zdW0sIGJyZWFrcyA9IHNlcSg4LCA1NiwgMTYpLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogIG11dGF0ZShNUElRX1NJX3N1bSA9IGN1dChNUElRX1NJX3N1bSwgYnJlYWtzID0gc2VxKDMsIDIxLCA2KSwgbGFiZWxzID0gYygibG93IiwgIm1vZGVyYXRlIiwgImhpZ2giKSkpICU+JSAKICBtdXRhdGUoTVBJUV9WRk9fc3VtID0gY3V0KE1QSVFfVkZPX3N1bSwgYnJlYWtzID0gc2VxKDMsIDIxLCA2KSwgbGFiZWxzID0gYygibG93IiwgIm1vZGVyYXRlIiwgImhpZ2giKSkpICU+JSAKICBtdXRhdGUoU0FEX3N1bSA9IGN1dChTQURfc3VtLCBicmVha3MgPSBzZXEoMTMsIDkxLCAyNiksIGxhYmVscyA9IGMoImxvdyIsICJtb2RlcmF0ZSIsICJoaWdoIikpKSAlPiUgCiAgbXV0YXRlKFNBRF9kZXBfc3VtID0gY3V0KFNBRF9kZXBfc3VtLCBicmVha3MgPSBzZXEoNSwgMzUsIDEwKSwgbGFiZWxzID0gYygibG93IiwgIm1vZGVyYXRlIiwgImhpZ2giKSkpICU+JSAKICBtdXRhdGUoU0FEX2VhX3N1bSA9IGN1dChTQURfZWFfc3VtLCBicmVha3MgPSBzZXEoNCwgMjgsIDgpLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogIG11dGF0ZShTQURfZGlzdF9zdW0gPSBjdXQoU0FEX2Rpc3Rfc3VtLCBicmVha3MgPSBzZXEoMywgMjEsIDYpLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogICMgZ2V0IGZyZXEgJiBwcm9wb3J0aW9uIGZvciBlYWNoIHZhcgogIHB1cnJyOjptYXAofiBjb3VudCh0aWJibGUoeCA9IC54KSwgeCkgJT4lIAogICAgICAgICAgICAgICBtdXRhdGUocGN0ID0gKG4gLyBzdW0obikgKiAxMDApKSkKCiMgbWFrZSBsaXN0IGludG8gMSBsb25nIGRhdGEgZnJhbWUgdG8gc2hvdyBhcyB0YWJsZS4uLgpwaWxvdF9ub21fcXVlc190IDwtIAogICMgdGhpcyBrZWVwcyB0aGUgdmFyIG5hbWUgaW4gdGhlIDFzdCBjb2x1bW4gKHVzaW5nLS0gLmlkID0gInRpYiIpCiAgbWFwX2RmcihwaWxvdF9ub21fcXVlcywgYmluZF9yb3dzLCAuaWQgPSAidGliIikKCgojIyBGT1IgTUFJTiBEQVRBCm1haW5fbm9tX3F1ZXMgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgIyBnZXQgc3Vic2V0IG9mIGRhdGEgd2l0aCBvbmx5IG5vbWluYWwgdmFycwogIHNlbGVjdChOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0pICU+JSAKICAjIGRpdmlkZSBzdW0gc2NvcmVzIGludG8gTD5NPkgKICAgIyBkZXRhaWxzIHByb3ZpZGVkIGZvciAxc3QgaW5zdGFuY2UuLi4gCiAgbXV0YXRlKE5NUFFfc3VtID0gIyBuYW1lIG9mIHZhciwgdGhpcyByZXBsYWNlcyBleGlzdGluZyBiL2MgaXRzIHRoZSBzYW1lCiAgICAgICAgICAgY3V0KE5NUFFfc3VtLCAjIHN0YXRlIHZhciAKICAgICAgICAgICAgICAgYnJlYWtzID0gc2VxKDIwLCAxNDAsIDQwKSwgIyB0aGlzIGlzIHByb3ZpZGluZyBhIHNlcSBmcm9tIDIwID4+IDE0MCwgd2l0aCBicmVha3Mgb2YgNDAgKDQwIGRldCBieSBicmVha2luZyB1cCB0aGUgcmFuZ2UgaW50byAzOiAxNDAtMjAgPSAxMjAsIDEyMC8zID0gNDApCiAgICAgICAgICAgICAgIGxhYmVscyA9IGMoImxvdyIsICJtb2RlcmF0ZSIsICJoaWdoIikpKSAlPiUgIyBzdGF0ZSB0aGUgbmV3IGxhYmVscyBmb3IgdGhlIGxldmVscwogIG11dGF0ZShNUElRX3N1bSA9IGN1dChNUElRX3N1bSwgYnJlYWtzID0gc2VxKDgsIDU2LCAxNiksIGxhYmVscyA9IGMoImxvdyIsICJtb2RlcmF0ZSIsICJoaWdoIikpKSAlPiUgCiAgbXV0YXRlKE1QSVFfU0lfc3VtID0gY3V0KE1QSVFfU0lfc3VtLCBicmVha3MgPSBzZXEoMywgMjEsIDYpLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogIG11dGF0ZShNUElRX1ZGT19zdW0gPSBjdXQoTVBJUV9WRk9fc3VtLCBicmVha3MgPSBzZXEoMywgMjEsIDYpLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogIG11dGF0ZShTQURfc3VtID0gY3V0KFNBRF9zdW0sIGJyZWFrcyA9IHNlcSgxMywgOTEsIDI2KSwgbGFiZWxzID0gYygibG93IiwgIm1vZGVyYXRlIiwgImhpZ2giKSkpICU+JSAKICBtdXRhdGUoU0FEX2RlcF9zdW0gPSBjdXQoU0FEX2RlcF9zdW0sIGJyZWFrcyA9IHNlcSg1LCAzNSwgMTApLCBsYWJlbHMgPSBjKCJsb3ciLCAibW9kZXJhdGUiLCAiaGlnaCIpKSkgJT4lIAogIG11dGF0ZShTQURfZWFfc3VtID0gY3V0KFNBRF9lYV9zdW0sIGJyZWFrcyA9IHNlcSg0LCAyOCwgOCksIGxhYmVscyA9IGMoImxvdyIsICJtb2RlcmF0ZSIsICJoaWdoIikpKSAlPiUgCiAgbXV0YXRlKFNBRF9kaXN0X3N1bSA9IGN1dChTQURfZGlzdF9zdW0sIGJyZWFrcyA9IHNlcSgzLCAyMSwgNiksIGxhYmVscyA9IGMoImxvdyIsICJtb2RlcmF0ZSIsICJoaWdoIikpKSAlPiUgCiAgIyBnZXQgZnJlcSAmIHByb3BvcnRpb24gZm9yIGVhY2ggdmFyCiAgcHVycnI6Om1hcCh+IGNvdW50KHRpYmJsZSh4ID0gLngpLCB4KSAlPiUgCiAgICAgICAgICAgICAgIG11dGF0ZShwY3QgPSAobiAvIHN1bShuKSAqIDEwMCkpKQoKIyBtYWtlIGxpc3QgaW50byAxIGxvbmcgZGF0YSBmcmFtZSB0byBzaG93IGFzIHRhYmxlLi4uCm1haW5fbm9tX3F1ZXNfdCA8LSAKICAjIHRoaXMga2VlcHMgdGhlIHZhciBuYW1lIGluIHRoZSAxc3QgY29sdW1uICh1c2luZy0tIC5pZCA9ICJ0aWIiKQogIG1hcF9kZnIobWFpbl9ub21fcXVlcywgYmluZF9yb3dzLCAuaWQgPSAidGliIikKYGBgCgpgYGB7cn0Ka2FibGUocGlsb3Rfbm9tX3F1ZXNfdCwgY2FwdGlvbiA9ICJGcmVxdWVuY3kgJiBwZXJjZW50YWdlIGZvciBub21pbmFsIHZhcnMgLSBxdWVzIC0gUElMT1QuIiwgYWxpZ24gPSByZXAoJ2NyY2MnKSwgY29sLm5hbWVzID0gYygiVmFyIiwgImxldmVsIiAsIm4iLCAiJSIpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJUaGVyZSB3YXMgbm8gdGFzayBjb21wbGV0ZWQgZHVyaW5nIHRoZSBwaWxvdCBzdHVkeS4iKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUobWFpbl9ub21fcXVlc190LCBjYXB0aW9uID0gIkZyZXF1ZW5jeSAmIHBlcmNlbnRhZ2UgZm9yIG5vbWluYWwgdmFycyAtIHF1ZXMgLSBNQUlOIC0gT1ZFUkFMTCIsIGFsaWduID0gcmVwKCdjcmNjJyksIGNvbC5uYW1lcyA9IGMoIlZhciIsICJsZXZlbCIgLCJuIiwgIiUiKSwgcm93Lm5hbWVzID0gVFJVRSkgJT4lIAogIGZvb3Rub3RlKGdlbmVyYWwgPSAiVGhlcmUgd2FzIG5vIHRhc2sgY29tcGxldGVkIGR1cmluZyB0aGUgcGlsb3Qgc3R1ZHkuIikgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKYGBgCiMjIENPTlRJTlVPVVMgZGF0YSAocGlsb3QgJiBtYWluKQojIyMgRGVtb2dyYXBoaWMgJiBUeXBpY2FsIFNtYXJ0cGhvbmUgVXNlICAgCgpgYGB7cn0KIyMgRk9SIFBJTE9UCnBpbG90X2NvbnRfZGVtbyA8LSAKICBwaWxvdF9zdXJfZGF0YSAlPiUgCiAgIyBzZWxlY3QgY29udGludW91cyB2YXJzCiAgc2VsZWN0KGFnZSwgYWdlX2ZpcnN0X3Bob25lLCBkaXN0X2RhaWx5LCBkaXN0X3N0dWR5LCBwb3dfbm90X3VzaW5nOnBvd19zbGVlcCwgY29tX2dlbjpjb21fcm9vbV90YXNrKSAlPiUgCiAgIyBhcHBseSBkZXNjcmliZSBmbiBmb3I6IG4gIG1lYW4gICBzZCBtZWRpYW4gdHJpbW1lZCAgbWFkIG1pbiBtYXggcmFuZ2UgIHNrZXcga3VydG9zaXMgICBzZQogIHBzeWNoOjpkZXNjcmliZSgpCgojIyBGT1IgTUFJTiAtLSBPVkVSQUxMCm1haW5fY29udF9kZW1vIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIGFnZSwgYWdlX2ZpcnN0X3Bob25lLCBkaXN0X2RhaWx5LCBkaXN0X3N0dWR5LCBwb3dfbm90X3VzaW5nOnBvd19zbGVlcCwgY29tX2dlbjpjb21fcm9vbV90YXNrKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIERFU0sKbWFpbl9jb250X2RlbW9fZGVzayA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBhZ2UsIGFnZV9maXJzdF9waG9uZSwgZGlzdF9kYWlseSwgZGlzdF9zdHVkeSwgcG93X25vdF91c2luZzpwb3dfc2xlZXAsIGNvbV9nZW46Y29tX3Jvb21fdGFzaykgJT4lIAogICMgb25seSBkZXNrIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIFBPQ0tFVC9CQUcKbWFpbl9jb250X2RlbW9fcGIgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KGNvbmRpdGlvbiwgYWdlLCBhZ2VfZmlyc3RfcGhvbmUsIGRpc3RfZGFpbHksIGRpc3Rfc3R1ZHksIHBvd19ub3RfdXNpbmc6cG93X3NsZWVwLCBjb21fZ2VuOmNvbV9yb29tX3Rhc2spICU+JSAKICAjIG9ubHkgcG9ja2V0L2JhZyBjb25kaXRpb24KICBmaWx0ZXIoY29uZGl0aW9uID09ICJwb2NrZXQvYmFnIikgJT4lIAogIHBzeWNoOjpkZXNjcmliZSgpCgojIyBGT1IgTUFJTiAtLSBPVVRTSURFCm1haW5fY29udF9kZW1vX291dCA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBhZ2UsIGFnZV9maXJzdF9waG9uZSwgZGlzdF9kYWlseSwgZGlzdF9zdHVkeSwgcG93X25vdF91c2luZzpwb3dfc2xlZXAsIGNvbV9nZW46Y29tX3Jvb21fdGFzaykgJT4lIAogICMgb25seSBvdXRzaWRlIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gIm91dHNpZGUiKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKICAKYGBgCgpgYGB7cn0KIyBzaG93IGFsbCB3aXRoIGthYmxlCiMjIFBJTE9UCmthYmxlKHBpbG90X2NvbnRfZGVtbywgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSBkZW1vIC0gUElMT1QiLCBhbGlnbiA9IHJlcCgnY3JjYycpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJUaGVyZSB3YXMgbm8gdGFzayBjb21wbGV0ZWQgZHVyaW5nIHRoZSBwaWxvdCBzdHVkeS4iKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKIyMgRk9SIE1BSU4gLS0gT1ZFUkFMTAprYWJsZShtYWluX2NvbnRfZGVtbywgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSBkZW1vIC0gTUFJTiAtIE9WRVJBTEwiLCBhbGlnbiA9IHJlcCgnY3JjYycpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgIyBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBERVNLCmthYmxlKG1haW5fY29udF9kZW1vX2Rlc2ssIGNhcHRpb24gPSAiRGVzY3JpcHRpdmUgc3RhdGlzdGljcyBmb3IgY29udGludW91cyB2YXJzIC0gZGVtbyAtIE1BSU4gLSBERVNLIiwgYWxpZ24gPSByZXAoJ2NyY2MnKSwgcm93Lm5hbWVzID0gVFJVRSkgJT4lIAogICMgZm9vdG5vdGUoZ2VuZXJhbCA9ICJUaGVyZSB3YXMgbm8gdGFzayBjb21wbGV0ZWQgZHVyaW5nIHRoZSBwaWxvdCBzdHVkeS4iKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKIyMgRk9SIE1BSU4gLS0gUE9DS0VUL0JBRwprYWJsZShtYWluX2NvbnRfZGVtb19wYiwgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSBkZW1vIC0gTUFJTiAtIFBPQ0tFVC9CQUciLCBhbGlnbiA9IHJlcCgnY3JjYycpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgIyBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBPVVRTSURFCmthYmxlKG1haW5fY29udF9kZW1vX291dCwgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSBkZW1vIC0gTUFJTiAtIE9VVFNJREUiLCBhbGlnbiA9IHJlcCgnY3JjYycpLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgIyBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCmBgYAoKIyMjIFF1ZXN0aW9ubmFpcmVzCmBgYHtyfQojIyBGT1IgUElMT1QKcGlsb3RfY29udF9xdWVzIDwtIAogIHBpbG90X3N1cl9kYXRhICU+JSAKICAjIHNlbGVjdCBjb250aW51b3VzIHZhcnMKICBzZWxlY3QoTk1QUV9zdW0sIE1QSVFfc3VtLCBNUElRX1NJX3N1bSwgTVBJUV9WRk9fc3VtLCBTQURfc3VtLCBTQURfZGVwX3N1bSwgU0FEX2VhX3N1bSwgU0FEX2Rpc3Rfc3VtKSAlPiUgCiAgIyBhcHBseSBkZXNjcmliZSBmbiBmb3I6IG4gIG1lYW4gICBzZCBtZWRpYW4gdHJpbW1lZCAgbWFkIG1pbiBtYXggcmFuZ2UgIHNrZXcga3VydG9zaXMgICBzZQogIHBzeWNoOjpkZXNjcmliZSgpCgojIyBGT1IgTUFJTiAtIG92ZXJhbGwKbWFpbl9jb250X3F1ZXMgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KGNvbmRpdGlvbiwgTk1QUV9zdW0sIE1QSVFfc3VtLCBNUElRX1NJX3N1bSwgTVBJUV9WRk9fc3VtLCBTQURfc3VtLCBTQURfZGVwX3N1bSwgU0FEX2VhX3N1bSwgU0FEX2Rpc3Rfc3VtKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIERFU0sKbWFpbl9jb250X3F1ZXNfZGVzayA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0pICU+JSAKICAjIG9ubHkgZGVzayBjb25kaXRpb24KICBmaWx0ZXIoY29uZGl0aW9uID09ICJkZXNrIikgJT4lIAogIHBzeWNoOjpkZXNjcmliZSgpCgojIyBGT1IgTUFJTiAtLSBQT0NLRVQvQkFHCm1haW5fY29udF9xdWVzX3BiIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIE5NUFFfc3VtLCBNUElRX3N1bSwgTVBJUV9TSV9zdW0sIE1QSVFfVkZPX3N1bSwgU0FEX3N1bSwgU0FEX2RlcF9zdW0sIFNBRF9lYV9zdW0sIFNBRF9kaXN0X3N1bSkgJT4lIAogICMgb25seSBwb2NrZXQvYmFnIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gInBvY2tldC9iYWciKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIE9VVFNJREUKbWFpbl9jb250X3F1ZXNfb3V0IDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIE5NUFFfc3VtLCBNUElRX3N1bSwgTVBJUV9TSV9zdW0sIE1QSVFfVkZPX3N1bSwgU0FEX3N1bSwgU0FEX2RlcF9zdW0sIFNBRF9lYV9zdW0sIFNBRF9kaXN0X3N1bSkgJT4lIAogICMgb25seSBvdXRzaWRlIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gIm91dHNpZGUiKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCmBgYAoKCmBgYHtyfQojIHNob3cgYWxsIHdpdGgga2FibGUKIyMgUElMT1QKa2FibGUocGlsb3RfY29udF9xdWVzLCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHF1ZXMgLSBQSUxPVCIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBPVkVSQUxMCmthYmxlKG1haW5fY29udF9xdWVzLCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHF1ZXMgLSBNQUlOIC0gT1ZFUkFMTCIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICAjIGZvb3Rub3RlKGdlbmVyYWwgPSAiVGhlcmUgd2FzIG5vIHRhc2sgY29tcGxldGVkIGR1cmluZyB0aGUgcGlsb3Qgc3R1ZHkuIikgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKCiMjIEZPUiBNQUlOIC0tIERFU0sKa2FibGUobWFpbl9jb250X3F1ZXNfZGVzaywgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSBxdWVzIC0gTUFJTiAtIERFU0siLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAgIyBmb290bm90ZShnZW5lcmFsID0gIlRoZXJlIHdhcyBubyB0YXNrIGNvbXBsZXRlZCBkdXJpbmcgdGhlIHBpbG90IHN0dWR5LiIpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBQT0NLRVQvQkFHCmthYmxlKG1haW5fY29udF9xdWVzX3BiLCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHF1ZXMgLSBNQUlOIC0gUE9DS0VUL0JBRyIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICAjIGZvb3Rub3RlKGdlbmVyYWwgPSAiVGhlcmUgd2FzIG5vIHRhc2sgY29tcGxldGVkIGR1cmluZyB0aGUgcGlsb3Qgc3R1ZHkuIikgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKCiMjIEZPUiBNQUlOIC0tIE9VVFNJREUKa2FibGUobWFpbl9jb250X3F1ZXNfb3V0LCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHF1ZXMgLSBNQUlOIC0gT1VUU0lERSIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICAjIGZvb3Rub3RlKGdlbmVyYWwgPSAiVGhlcmUgd2FzIG5vIHRhc2sgY29tcGxldGVkIGR1cmluZyB0aGUgcGlsb3Qgc3R1ZHkuIikgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKYGBgCiMjIyBUYXNrIERhdGEKCmBgYHtyfQoKIyMgRk9SIE1BSU4gLSBvdmVyYWxsCm1haW5fY29udF90YXNrIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIGBTY29yZV9Eb3VibGUgVHJvdWJsZWA6YFNjb3JlX01vbmtleSBMYWRkZXJgKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIERFU0sKbWFpbl9jb250X3Rhc2tfZGVzayA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBgU2NvcmVfRG91YmxlIFRyb3VibGVgOmBTY29yZV9Nb25rZXkgTGFkZGVyYCkgJT4lIAogICMgb25seSBkZXNrIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKCiMjIEZPUiBNQUlOIC0tIFBPQ0tFVC9CQUcKbWFpbl9jb250X3Rhc2tfcGIgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KGNvbmRpdGlvbiwgYFNjb3JlX0RvdWJsZSBUcm91YmxlYDpgU2NvcmVfTW9ua2V5IExhZGRlcmApICU+JSAKICAjIG9ubHkgcG9ja2V0L2JhZyBjb25kaXRpb24KICBmaWx0ZXIoY29uZGl0aW9uID09ICJwb2NrZXQvYmFnIikgJT4lIAogIHBzeWNoOjpkZXNjcmliZSgpCgojIyBGT1IgTUFJTiAtLSBPVVRTSURFCm1haW5fY29udF90YXNrX291dCA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBgU2NvcmVfRG91YmxlIFRyb3VibGVgOmBTY29yZV9Nb25rZXkgTGFkZGVyYCkgJT4lIAogICMgb25seSBvdXRzaWRlIGNvbmRpdGlvbgogIGZpbHRlcihjb25kaXRpb24gPT0gIm91dHNpZGUiKSAlPiUgCiAgcHN5Y2g6OmRlc2NyaWJlKCkKYGBgCgpgYGB7cn0KIyMgRk9SIE1BSU4gLS0gT1ZFUkFMTAprYWJsZShtYWluX2NvbnRfdGFzaywgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSB0YXNrIC0gTUFJTiAtIE9WRVJBTEwiLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQoKIyMgRk9SIE1BSU4gLS0gREVTSwprYWJsZShtYWluX2NvbnRfdGFza19kZXNrLCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHRhc2sgLSBNQUlOIC0gREVTSyIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBQT0NLRVQvQkFHCmthYmxlKG1haW5fY29udF90YXNrX3BiLCBjYXB0aW9uID0gIkRlc2NyaXB0aXZlIHN0YXRpc3RpY3MgZm9yIGNvbnRpbnVvdXMgdmFycyAtIHRhc2sgLSBNQUlOIC0gUE9DS0VUL0JBRyIsIHJvdy5uYW1lcyA9IFRSVUUpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lCiAga2FibGVfY2xhc3NpYygpCgojIyBGT1IgTUFJTiAtLSBPVVRTSURFCmthYmxlKG1haW5fY29udF90YXNrX291dCwgY2FwdGlvbiA9ICJEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzIGZvciBjb250aW51b3VzIHZhcnMgLSB0YXNrIC0gTUFJTiAtIE9VVFNJREUiLCByb3cubmFtZXMgPSBUUlVFKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQpgYGAKCiMgUGlsb3QgU3R1ZHkgQW5hbHlzZXMKIyMgQ29ycmVsYXRpb25zCkdldCBjb3JyZWxhdGlvbnMgYi93IGFsbCBjb250IHZhcnMgCgpgYGB7ciBwaWxvdF9jb3Jyc30KcGlsb3RfY29yciA8LSAKICBwaWxvdF9zdXJfZGF0YSAlPiUgCiAgc2VsZWN0KGFnZSwgYWdlX2ZpcnN0X3Bob25lLCBkaXN0X2RhaWx5LCBkaXN0X3N0dWR5LCBwb3dfbm90X3VzaW5nOnBvd19zbGVlcCwgY29tX2dlbjpjb21fcm9vbV90YXNrLCBOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0pICU+JSAKICBhcy5tYXRyaXgoKSAlPiUgCiAgcmNvcnIodHlwZSA9ICJwZWFyc29uIikKCiMgY3JlYXRlIG5ldyBwaWxvdF9jb3JyIHRvIHNob3duIG9ubHkgbG93ZXIgdHJpYW5nbGUuLi4gCnBpbG90X2NvcnIyIDwtIHBpbG90X2NvcnIKIyByb3VuZCB0byA0IGRlY2ltYWxzLi4uIApwaWxvdF9jb3JyMiRyIDwtIHJvdW5kKHBpbG90X2NvcnIyJHIsIDQpCnBpbG90X2NvcnIyJFAgPC0gcm91bmQocGlsb3RfY29ycjIkUCwgNCkKcGlsb3RfY29ycjIkbiA8LSByb3VuZChwaWxvdF9jb3JyMiRuLCA0KQojIHJlbW92ZSB1cHBlciB0cmlhbmdsZSBmb3JtIHIsIHAsIGFuZCBuCnBpbG90X2NvcnIyJHJbdXBwZXIudHJpKHBpbG90X2NvcnIyJHIpXSA8LSAiLSIKcGlsb3RfY29ycjIkUFt1cHBlci50cmkocGlsb3RfY29ycjIkUCldIDwtICItIgpwaWxvdF9jb3JyMiRuW3VwcGVyLnRyaShwaWxvdF9jb3JyMiRuKV0gPC0gIi0iCgojIHNob3cgY29yciB0YWJsZSB3aXRoIGZsYXR0ZW5Db3JyCgprYWJsZShmbGF0dGVuQ29yck1hdHJpeChwaWxvdF9jb3JyJHIsIHBpbG90X2NvcnIkUCksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogciB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKIyBwcmludCB0YWJsZXMgdXNpbmcga2FibGUKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQocGlsb3RfY29ycjIkciwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogciB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQogIAoKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQocGlsb3RfY29ycjIkUCwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogcCB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQocGlsb3RfY29ycjIkbiwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogbiB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKIyBwcmludCBjb3JyIG1hdHJpeCAKIyBjaGFydC5Db3JyZWxhdGlvbihwaWxvdF9hbGxfZGF0YV9maW5hbCAlPiUgc2VsZWN0KGNvbmRpdGlvbiwgYWdlLCBhZ2VfZmlyc3RfcGhvbmUsIGRpc3RfZGFpbHksIGRpc3Rfc3R1ZHksIHBvd19ub3RfdXNpbmc6cG93X3NsZWVwLCBjb21fZ2VuOmNvbV9yb29tX3Rhc2ssIGNvbmRpdGlvbiwgTk1QUV9zdW0sIE1QSVFfc3VtLCBNUElRX1NJX3N1bSwgTVBJUV9WRk9fc3VtLCBTQURfc3VtLCBTQURfZGVwX3N1bSwgU0FEX2VhX3N1bSwgU0FEX2Rpc3Rfc3VtLCBgU2NvcmVfRG91YmxlIFRyb3VibGVgOmBTY29yZV9Nb25rZXkgTGFkZGVyYCwgQ0JTX292ZXJhbGwsIENCU19TVE0sIENCU19yZWFzb24sIENCU192ZXJiYWwsIENCU190c19tZW1vcnksIENCU190c19yZWFzb24sIENCU190c192ZXJiYWxhYiwgQ0JTX3RzX2NvbikgJT4lIHNlbGVjdCgtY29uZGl0aW9uKSwgaGlzdG9ncmFtPUYsIHBjaD0xOSkKIyBsaWJyYXJ5KGNvcnJyKQoKI2dpdmVzIGNvcnIgbWF0cml4CiMgSSBsaWtlIGNvcnJwbG90IG1vcmUuLi4gCiMgcGlsb3RfY29yciRyICU+JSBycGxvdChzaGFwZSA9IDE1LCBjb2xvdXJzID0gKGNvbG9yUmFtcFBhbGV0dGUoYygicHVycGxlIiwgImdyZXkiLCAiYmx1ZSIpKSg1MCkpLCBwcmludF9jb3IgPSBGKSArIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSkpCgojIGdpdmUgaGlzdCBvZiBlYWNoIHZhcgogICMgYXMudGliYmxlKHBpbG90X2NvcnIkcikgJT4lCiAgIyAgIHNlbGVjdChhZ2U6Q0JTX3RzX2NvbikgJT4lIAogICMgICBnYXRoZXIoKSAlPiUgCiAgIyAgIGdncGxvdChhZXModmFsdWUpKSArCiAgIyAgICAgZ2VvbV9oaXN0b2dyYW0oKSArCiAgIyAgICAgZmFjZXRfd3JhcCh+a2V5KQoKY29ycnBsb3QocGlsb3RfY29yciRyLCBtZXRob2QgPSAiY2lyY2xlIiwgY29sID0gKGNvbG9yUmFtcFBhbGV0dGUoYygicHVycGxlIiwgImdyZXkiLCAiYmx1ZSIpKSg1MCkpLCAgCiAgICAgICAgIHR5cGUgPSAidXBwZXIiLAogICAgICAgICAjIGFkZENvZWYuY29sID0gImJsYWNrIiwgIyBBZGQgY29lZmZpY2llbnQgb2YgY29ycmVsYXRpb24KICAgICAgICAgdGwuY29sID0gImRhcmtibHVlIiwgdGwuc3J0ID0gOTAsIHRsLmNleCA9IC44LCAjVGV4dCBsYWJlbCBjb2xvciBhbmQgcm90YXRpb24gJiBzaXplCiAgICAgICAgICMgYWRkIGNvcnIgbnVtYmVycyAtLSBlZGl0IHNpemUKICAgICAgICAgIyBhZGRDb2VmLmNvbCA9ICJibGFjayIsIGNsLmNleCA9IC4wMSwgY2wubGVuZ3RoID0gMiwgCiAgICAgICAgICMgZ3JpZCBjb2xvdXIKICAgICAgICAgYWRkZ3JpZC5jb2wgPSAid2hpdGUiLAogICAgICAgICAjIGFkZENvZWZhc1BlcmNlbnQgPSBULAogICAgICAgICAjIENvbWJpbmUgd2l0aCBzaWduaWZpY2FuY2UgbGV2ZWwKICAgICAgICAgcC5tYXQgPSBwaWxvdF9jb3JyJFAsIHNpZy5sZXZlbCA9IDAuMDUsIAogICAgICAgICBpbnNpZyA9ICJibGFuayIsCiAgICAgICAgICMgaW5zaWcgPSAicGNoIiwgcGNoID0gMTAsIHBjaC5jb2wgPSAicmVkIiwgcGNoLmNleCA9IC4xLCAjIGFkZCB0aGlzIGluc3RlYWQgb2YgaW5zaWcgYWJvdmUgdG8gZGVub3QgaW5zaWcgcCB2YWx1ZXMgd2l0aCByZWQgZG90CiAgICAgICAgICMgaGlkZSBjb3JyZWxhdGlvbiBjb2VmZmljaWVudCBvbiB0aGUgcHJpbmNpcGFsIGRpYWdvbmFsCiAgICAgICAgIGRpYWcgPSBGQUxTRSwgCiAgICAgICAgIHdpbi5hc3AgPSAxCiAgICAgICAgICkKYGBgCgojIE1haW4gU3R1ZHkgQW5hbHlzaXMKIyMgQ29ycmVsYXRpb25zCkdldCBDb3JyZWxhdGlvbnMgYi93IGFsbCBjb250IHZhcnMKCkFjcm9zcyBjb25kaXRpb25zLi4uIApgYGB7ciBtYWluX2NvcnJzX292ZXJhbGx9Cm1haW5fY29yciA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBhZ2UsIGFnZV9maXJzdF9waG9uZSwgZGlzdF9kYWlseSwgZGlzdF9zdHVkeSwgcG93X25vdF91c2luZzpwb3dfc2xlZXAsIGNvbV9nZW46Y29tX3Jvb21fdGFzaywgY29uZGl0aW9uLCBOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0sIGBTY29yZV9Eb3VibGUgVHJvdWJsZWA6YFNjb3JlX01vbmtleSBMYWRkZXJgLCBDQlNfb3ZlcmFsbCwgQ0JTX1NUTSwgQ0JTX3JlYXNvbiwgQ0JTX3ZlcmJhbCwgQ0JTX3RzX21lbW9yeSwgQ0JTX3RzX3JlYXNvbiwgQ0JTX3RzX3ZlcmJhbGFiLCBDQlNfdHNfY29uKSAlPiUgCiAgc2VsZWN0KC1jb25kaXRpb24pICU+JSAKICBhcy5tYXRyaXgoKSAlPiUgCiAgcmNvcnIodHlwZSA9ICJwZWFyc29uIikKCiMgY3JlYXRlIG5ldyBtYWluX2NvcnIgdG8gc2hvd24gb25seSBsb3dlciB0cmlhbmdsZS4uLiAKbWFpbl9jb3JyMiA8LSBtYWluX2NvcnIKIyByb3VuZCB0byA0IGRlY2ltYWxzLi4uIAptYWluX2NvcnIyJHIgPC0gcm91bmQobWFpbl9jb3JyMiRyLCA0KQptYWluX2NvcnIyJFAgPC0gcm91bmQobWFpbl9jb3JyMiRQLCA0KQptYWluX2NvcnIyJG4gPC0gcm91bmQobWFpbl9jb3JyMiRuLCA0KQojIHJlbW92ZSB1cHBlciB0cmlhbmdsZSBmb3JtIHIsIHAsIGFuZCBuCm1haW5fY29ycjIkclt1cHBlci50cmkobWFpbl9jb3JyMiRyKV0gPC0gIi0iCm1haW5fY29ycjIkUFt1cHBlci50cmkobWFpbl9jb3JyMiRQKV0gPC0gIi0iCm1haW5fY29ycjIkblt1cHBlci50cmkobWFpbl9jb3JyMiRuKV0gPC0gIi0iCgojIHNob3cgY29yciB0YWJsZSB3aXRoIGZsYXR0ZW5Db3JyCgprYWJsZShmbGF0dGVuQ29yck1hdHJpeChtYWluX2NvcnIkciwgbWFpbl9jb3JyJFApLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHIgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCiMgcHJpbnQgdGFibGVzIHVzaW5nIGthYmxlCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycjIkciwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogciB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQogIAoKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQobWFpbl9jb3JyMiRQLCBzY2llbnRpZmljID0gRkFMU0UpKSwgY2FwdGlvbiA9ICJQaWxvdCBTdHVkeSAtIENvcnJlbGF0aW9uOiBwIHZhbHVlcyIpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJob3ZlciIsICJzdHJpcGVkIiksIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhcy5kYXRhLmZyYW1lKGZvcm1hdChtYWluX2NvcnIyJG4sIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IG4gdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmNvcnJwbG90KG1haW5fY29yciRyLCBtZXRob2QgPSAiY2lyY2xlIiwgY29sID0gKGNvbG9yUmFtcFBhbGV0dGUoYygicHVycGxlIiwgImdyZXkiLCAiYmx1ZSIpKSg1MCkpLCAgCiAgICAgICAgIHR5cGUgPSAidXBwZXIiLCAgCiAgICAgICAgICMgYWRkQ29lZi5jb2wgPSAiYmxhY2siLCAjIEFkZCBjb2VmZmljaWVudCBvZiBjb3JyZWxhdGlvbgogICAgICAgICB0bC5jb2wgPSAiZGFya2JsdWUiLCB0bC5zcnQgPSA5MCwgdGwuY2V4ID0gLjgsICNUZXh0IGxhYmVsIGNvbG9yIGFuZCByb3RhdGlvbgogICAgICAgICAjIENvbWJpbmUgd2l0aCBzaWduaWZpY2FuY2UgbGV2ZWwKICAgICAgICAgcC5tYXQgPSBtYWluX2NvcnIkUCwgc2lnLmxldmVsID0gMC4wNSwgCiAgICAgICAgIGFkZGdyaWQuY29sID0gIndoaXRlIiwKICAgICAgICAgaW5zaWcgPSAiYmxhbmsiLCMgaW5zaWcgPSAicGNoIiwgcGNoID0gMTAsIHBjaC5jb2wgPSAicmVkIiwgcGNoLmNleCA9IC4xLCAjIGFkZCB0aGlzIGluc3RlYWQgb2YgaW5zaWcgYWJvdmUgdG8gZGVub3QgaW5zaWcgcCB2YWx1ZXMgd2l0aCByZWQgZG90CiAgICAgICAgICMgaGlkZSBjb3JyZWxhdGlvbiBjb2VmZmljaWVudCBvbiB0aGUgcHJpbmNpcGFsIGRpYWdvbmFsCiAgICAgICAgIGRpYWcgPSBGQUxTRSwgCiAgICAgICAgIHdpbi5hc3AgPSAxCiAgICAgICAgICkKYGBgCgoKRm9yIERlc2suLi4gCmBgYHtyIG1haW5fY29ycnNfZGVza30KbWFpbl9jb3JyX2Rlc2sgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KGNvbmRpdGlvbiwgYWdlLCBhZ2VfZmlyc3RfcGhvbmUsIGRpc3RfZGFpbHksIGRpc3Rfc3R1ZHksIHBvd19ub3RfdXNpbmc6cG93X3NsZWVwLCBjb21fZ2VuOmNvbV9yb29tX3Rhc2ssIGNvbmRpdGlvbiwgTk1QUV9zdW0sIE1QSVFfc3VtLCBNUElRX1NJX3N1bSwgTVBJUV9WRk9fc3VtLCBTQURfc3VtLCBTQURfZGVwX3N1bSwgU0FEX2VhX3N1bSwgU0FEX2Rpc3Rfc3VtLCBgU2NvcmVfRG91YmxlIFRyb3VibGVgOmBTY29yZV9Nb25rZXkgTGFkZGVyYCwgQ0JTX292ZXJhbGwsIENCU19TVE0sIENCU19yZWFzb24sIENCU192ZXJiYWwsIENCU190c19tZW1vcnksIENCU190c19yZWFzb24sIENCU190c192ZXJiYWxhYiwgQ0JTX3RzX2NvbikgJT4lIAogIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSAlPiUgCiAgc2VsZWN0KC1jb25kaXRpb24pICU+JSAKICBhcy5tYXRyaXgoKSAlPiUKICByY29ycih0eXBlID0gInBlYXJzb24iKQoKIyBjcmVhdGUgbmV3IG1haW5fY29ycl9kZXNrIHRvIHNob3duIG9ubHkgbG93ZXIgdHJpYW5nbGUuLi4gCm1haW5fY29ycl9kZXNrMiA8LSBtYWluX2NvcnJfZGVzawojIHJvdW5kIHRvIDQgZGVjaW1hbHMuLi4gCm1haW5fY29ycl9kZXNrMiRyIDwtIHJvdW5kKG1haW5fY29ycl9kZXNrMiRyLCA0KQptYWluX2NvcnJfZGVzazIkUCA8LSByb3VuZChtYWluX2NvcnJfZGVzazIkUCwgNCkKbWFpbl9jb3JyX2Rlc2syJG4gPC0gcm91bmQobWFpbl9jb3JyX2Rlc2syJG4sIDQpCiMgcmVtb3ZlIHVwcGVyIHRyaWFuZ2xlIGZvcm0gciwgcCwgYW5kIG4KbWFpbl9jb3JyX2Rlc2syJHJbdXBwZXIudHJpKG1haW5fY29ycl9kZXNrMiRyKV0gPC0gIi0iCm1haW5fY29ycl9kZXNrMiRQW3VwcGVyLnRyaShtYWluX2NvcnJfZGVzazIkUCldIDwtICItIgptYWluX2NvcnJfZGVzazIkblt1cHBlci50cmkobWFpbl9jb3JyX2Rlc2syJG4pXSA8LSAiLSIKCiMgc2hvdyBjb3JyIHRhYmxlIHdpdGggZmxhdHRlbkNvcnIKCmthYmxlKGZsYXR0ZW5Db3JyTWF0cml4KG1haW5fY29ycl9kZXNrJHIsIG1haW5fY29ycl9kZXNrJFApLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHIgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCiMgcHJpbnQgdGFibGVzIHVzaW5nIGthYmxlCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycl9kZXNrMiRyLCBzY2llbnRpZmljID0gRkFMU0UpKSwgY2FwdGlvbiA9ICJQaWxvdCBTdHVkeSAtIENvcnJlbGF0aW9uOiByIHZhbHVlcyIpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJob3ZlciIsICJzdHJpcGVkIiksIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCiAgCgprYWJsZShhcy5kYXRhLmZyYW1lKGZvcm1hdChtYWluX2NvcnJfZGVzazIkUCwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogcCB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQobWFpbl9jb3JyX2Rlc2syJG4sIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IG4gdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmNvcnJwbG90KG1haW5fY29ycl9kZXNrJHIsIG1ldGhvZCA9ICJjaXJjbGUiLCBjb2wgPSAoY29sb3JSYW1wUGFsZXR0ZShjKCJwdXJwbGUiLCAiZ3JleSIsICJibHVlIikpKDUwKSksICAKICAgICAgICAgdHlwZSA9ICJ1cHBlciIsICAKICAgICAgICAgIyBhZGRDb2VmLmNvbCA9ICJibGFjayIsICMgQWRkIGNvZWZmaWNpZW50IG9mIGNvcnJlbGF0aW9uCiAgICAgICAgIHRsLmNvbCA9ICJkYXJrYmx1ZSIsIHRsLnNydCA9IDkwLCB0bC5jZXggPSAuOCwgI1RleHQgbGFiZWwgY29sb3IgYW5kIHJvdGF0aW9uCiAgICAgICAgICMgQ29tYmluZSB3aXRoIHNpZ25pZmljYW5jZSBsZXZlbAogICAgICAgICBwLm1hdCA9IG1haW5fY29ycl9kZXNrJFAsIHNpZy5sZXZlbCA9IDAuMDUsIAogICAgICAgICBhZGRncmlkLmNvbCA9ICJ3aGl0ZSIsCiAgICAgICAgIGluc2lnID0gImJsYW5rIiwjIGluc2lnID0gInBjaCIsIHBjaCA9IDEwLCBwY2guY29sID0gInJlZCIsIHBjaC5jZXggPSAuMSwgIyBhZGQgdGhpcyBpbnN0ZWFkIG9mIGluc2lnIGFib3ZlIHRvIGRlbm90IGluc2lnIHAgdmFsdWVzIHdpdGggcmVkIGRvdAogICAgICAgICAjIGhpZGUgY29ycmVsYXRpb24gY29lZmZpY2llbnQgb24gdGhlIHByaW5jaXBhbCBkaWFnb25hbAogICAgICAgICBkaWFnID0gRkFMU0UsIAogICAgICAgICB3aW4uYXNwID0gMQogICAgICAgICApCmBgYAoKRm9yIFBvY2tldC9CYWcuLi4uCmBgYHtyIG1haW5fY29ycnNfcGJ9Cm1haW5fY29ycl9wYiA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBhZ2UsIGFnZV9maXJzdF9waG9uZSwgZGlzdF9kYWlseSwgZGlzdF9zdHVkeSwgcG93X25vdF91c2luZzpwb3dfc2xlZXAsIGNvbV9nZW46Y29tX3Jvb21fdGFzaywgY29uZGl0aW9uLCBOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0sIGBTY29yZV9Eb3VibGUgVHJvdWJsZWA6YFNjb3JlX01vbmtleSBMYWRkZXJgLCBDQlNfb3ZlcmFsbCwgQ0JTX1NUTSwgQ0JTX3JlYXNvbiwgQ0JTX3ZlcmJhbCwgQ0JTX3RzX21lbW9yeSwgQ0JTX3RzX3JlYXNvbiwgQ0JTX3RzX3ZlcmJhbGFiLCBDQlNfdHNfY29uKSAlPiUgCiAgZmlsdGVyKGNvbmRpdGlvbiA9PSAicG9ja2V0L2JhZyIpICU+JSAKICBzZWxlY3QoLWNvbmRpdGlvbikgJT4lIAogIGFzLm1hdHJpeCgpICU+JQogIHJjb3JyKHR5cGUgPSAicGVhcnNvbiIpCgojIGNyZWF0ZSBuZXcgbWFpbl9jb3JyX3BiIHRvIHNob3duIG9ubHkgbG93ZXIgdHJpYW5nbGUuLi4gCm1haW5fY29ycl9wYjIgPC0gbWFpbl9jb3JyX3BiCiMgcm91bmQgdG8gNCBkZWNpbWFscy4uLiAKbWFpbl9jb3JyX3BiMiRyIDwtIHJvdW5kKG1haW5fY29ycl9wYjIkciwgNCkKbWFpbl9jb3JyX3BiMiRQIDwtIHJvdW5kKG1haW5fY29ycl9wYjIkUCwgNCkKbWFpbl9jb3JyX3BiMiRuIDwtIHJvdW5kKG1haW5fY29ycl9wYjIkbiwgNCkKIyByZW1vdmUgdXBwZXIgdHJpYW5nbGUgZm9ybSByLCBwLCBhbmQgbgptYWluX2NvcnJfcGIyJHJbdXBwZXIudHJpKG1haW5fY29ycl9wYjIkcildIDwtICItIgptYWluX2NvcnJfcGIyJFBbdXBwZXIudHJpKG1haW5fY29ycl9wYjIkUCldIDwtICItIgptYWluX2NvcnJfcGIyJG5bdXBwZXIudHJpKG1haW5fY29ycl9wYjIkbildIDwtICItIgoKIyBzaG93IGNvcnIgdGFibGUgd2l0aCBmbGF0dGVuQ29ycgoKa2FibGUoZmxhdHRlbkNvcnJNYXRyaXgobWFpbl9jb3JyX3BiJHIsIG1haW5fY29ycl9wYiRQKSwgY2FwdGlvbiA9ICJQaWxvdCBTdHVkeSAtIENvcnJlbGF0aW9uOiByIHZhbHVlcyIpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJob3ZlciIsICJzdHJpcGVkIiksIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgojIHByaW50IHRhYmxlcyB1c2luZyBrYWJsZQprYWJsZShhcy5kYXRhLmZyYW1lKGZvcm1hdChtYWluX2NvcnJfcGIyJHIsIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHIgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKICAKCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycl9wYjIkUCwgc2NpZW50aWZpYyA9IEZBTFNFKSksIGNhcHRpb24gPSAiUGlsb3QgU3R1ZHkgLSBDb3JyZWxhdGlvbjogcCB2YWx1ZXMiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygiaG92ZXIiLCAic3RyaXBlZCIpLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYXMuZGF0YS5mcmFtZShmb3JtYXQobWFpbl9jb3JyX3BiMiRuLCBzY2llbnRpZmljID0gRkFMU0UpKSwgY2FwdGlvbiA9ICJQaWxvdCBTdHVkeSAtIENvcnJlbGF0aW9uOiBuIHZhbHVlcyIpICU+JQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJob3ZlciIsICJzdHJpcGVkIiksIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpjb3JycGxvdChtYWluX2NvcnJfcGIkciwgbWV0aG9kID0gImNpcmNsZSIsIGNvbCA9IChjb2xvclJhbXBQYWxldHRlKGMoInB1cnBsZSIsICJncmV5IiwgImJsdWUiKSkoNTApKSwgIAogICAgICAgICB0eXBlID0gInVwcGVyIiwgIAogICAgICAgICAjIGFkZENvZWYuY29sID0gImJsYWNrIiwgIyBBZGQgY29lZmZpY2llbnQgb2YgY29ycmVsYXRpb24KICAgICAgICAgdGwuY29sID0gImRhcmtibHVlIiwgdGwuc3J0ID0gOTAsIHRsLmNleCA9IC44LCAjVGV4dCBsYWJlbCBjb2xvciBhbmQgcm90YXRpb24KICAgICAgICAgIyBDb21iaW5lIHdpdGggc2lnbmlmaWNhbmNlIGxldmVsCiAgICAgICAgIHAubWF0ID0gbWFpbl9jb3JyX3BiJFAsIHNpZy5sZXZlbCA9IDAuMDUsIAogICAgICAgICBhZGRncmlkLmNvbCA9ICJ3aGl0ZSIsCiAgICAgICAgIGluc2lnID0gImJsYW5rIiwjIGluc2lnID0gInBjaCIsIHBjaCA9IDEwLCBwY2guY29sID0gInJlZCIsIHBjaC5jZXggPSAuMSwgIyBhZGQgdGhpcyBpbnN0ZWFkIG9mIGluc2lnIGFib3ZlIHRvIGRlbm90IGluc2lnIHAgdmFsdWVzIHdpdGggcmVkIGRvdAogICAgICAgICAjIGhpZGUgY29ycmVsYXRpb24gY29lZmZpY2llbnQgb24gdGhlIHByaW5jaXBhbCBkaWFnb25hbAogICAgICAgICBkaWFnID0gRkFMU0UsIAogICAgICAgICB3aW4uYXNwID0gMQogICAgICAgICApCmBgYAoKCkZvciBPdXRzaWRlLi4uIApgYGB7ciBtYWluX2NvcnJzX291dH0KbWFpbl9jb3JyX291dCA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QoY29uZGl0aW9uLCBhZ2UsIGFnZV9maXJzdF9waG9uZSwgZGlzdF9kYWlseSwgZGlzdF9zdHVkeSwgcG93X25vdF91c2luZzpwb3dfc2xlZXAsIGNvbV9nZW46Y29tX3Jvb21fdGFzaywgY29uZGl0aW9uLCBOTVBRX3N1bSwgTVBJUV9zdW0sIE1QSVFfU0lfc3VtLCBNUElRX1ZGT19zdW0sIFNBRF9zdW0sIFNBRF9kZXBfc3VtLCBTQURfZWFfc3VtLCBTQURfZGlzdF9zdW0sIGBTY29yZV9Eb3VibGUgVHJvdWJsZWA6YFNjb3JlX01vbmtleSBMYWRkZXJgLCBDQlNfb3ZlcmFsbCwgQ0JTX1NUTSwgQ0JTX3JlYXNvbiwgQ0JTX3ZlcmJhbCwgQ0JTX3RzX21lbW9yeSwgQ0JTX3RzX3JlYXNvbiwgQ0JTX3RzX3ZlcmJhbGFiLCBDQlNfdHNfY29uKSAlPiUgCiAgZmlsdGVyKGNvbmRpdGlvbiA9PSAib3V0c2lkZSIpICU+JSAKICBzZWxlY3QoLWNvbmRpdGlvbikgJT4lIAogIGFzLm1hdHJpeCgpICU+JQogIHJjb3JyKHR5cGUgPSAicGVhcnNvbiIpCgojIGNyZWF0ZSBuZXcgbWFpbl9jb3JyX291dCB0byBzaG93biBvbmx5IGxvd2VyIHRyaWFuZ2xlLi4uIAptYWluX2NvcnJfb3V0MiA8LSBtYWluX2NvcnJfb3V0CiMgcm91bmQgdG8gNCBkZWNpbWFscy4uLiAKbWFpbl9jb3JyX291dDIkciA8LSByb3VuZChtYWluX2NvcnJfb3V0MiRyLCA0KQptYWluX2NvcnJfb3V0MiRQIDwtIHJvdW5kKG1haW5fY29ycl9vdXQyJFAsIDQpCm1haW5fY29ycl9vdXQyJG4gPC0gcm91bmQobWFpbl9jb3JyX291dDIkbiwgNCkKIyByZW1vdmUgdXBwZXIgdHJpYW5nbGUgZm9ybSByLCBwLCBhbmQgbgptYWluX2NvcnJfb3V0MiRyW3VwcGVyLnRyaShtYWluX2NvcnJfb3V0MiRyKV0gPC0gIi0iCm1haW5fY29ycl9vdXQyJFBbdXBwZXIudHJpKG1haW5fY29ycl9vdXQyJFApXSA8LSAiLSIKbWFpbl9jb3JyX291dDIkblt1cHBlci50cmkobWFpbl9jb3JyX291dDIkbildIDwtICItIgoKIyBzaG93IGNvcnIgdGFibGUgd2l0aCBmbGF0dGVuQ29ycgoKa2FibGUoZmxhdHRlbkNvcnJNYXRyaXgobWFpbl9jb3JyX291dCRyLCBtYWluX2NvcnJfb3V0JFApLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHIgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCiMgcHJpbnQgdGFibGVzIHVzaW5nIGthYmxlCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycl9vdXQyJHIsIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHIgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKICAKCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycl9vdXQyJFAsIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IHAgdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFzLmRhdGEuZnJhbWUoZm9ybWF0KG1haW5fY29ycl9vdXQyJG4sIHNjaWVudGlmaWMgPSBGQUxTRSkpLCBjYXB0aW9uID0gIlBpbG90IFN0dWR5IC0gQ29ycmVsYXRpb246IG4gdmFsdWVzIikgJT4lCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoImhvdmVyIiwgInN0cmlwZWQiKSwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmNvcnJwbG90KG1haW5fY29ycl9vdXQkciwgbWV0aG9kID0gImNpcmNsZSIsIGNvbCA9IChjb2xvclJhbXBQYWxldHRlKGMoInB1cnBsZSIsICJncmV5IiwgImJsdWUiKSkoNTApKSwgIAogICAgICAgICB0eXBlID0gInVwcGVyIiwgIAogICAgICAgICAjIGFkZENvZWYuY29sID0gImJsYWNrIiwgIyBBZGQgY29lZmZpY2llbnQgb2YgY29ycmVsYXRpb24KICAgICAgICAgdGwuY29sID0gImRhcmtibHVlIiwgdGwuc3J0ID0gOTAsIHRsLmNleCA9IC44LCAjVGV4dCBsYWJlbCBjb2xvciBhbmQgcm90YXRpb24KICAgICAgICAgIyBDb21iaW5lIHdpdGggc2lnbmlmaWNhbmNlIGxldmVsCiAgICAgICAgIHAubWF0ID0gbWFpbl9jb3JyX291dCRQLCBzaWcubGV2ZWwgPSAwLjA1LCAKICAgICAgICAgYWRkZ3JpZC5jb2wgPSAid2hpdGUiLAogICAgICAgICBpbnNpZyA9ICJibGFuayIsIyBpbnNpZyA9ICJwY2giLCBwY2ggPSAxMCwgcGNoLmNvbCA9ICJyZWQiLCBwY2guY2V4ID0gLjEsICMgYWRkIHRoaXMgaW5zdGVhZCBvZiBpbnNpZyBhYm92ZSB0byBkZW5vdCBpbnNpZyBwIHZhbHVlcyB3aXRoIHJlZCBkb3QKICAgICAgICAgIyBoaWRlIGNvcnJlbGF0aW9uIGNvZWZmaWNpZW50IG9uIHRoZSBwcmluY2lwYWwgZGlhZ29uYWwKICAgICAgICAgZGlhZyA9IEZBTFNFLCAKICAgICAgICAgd2luLmFzcCA9IDEKICAgICAgICAgKQpgYGAKCiMjIEFOT1ZBUwoKb25lLXdheSBBTk9WQSAoSVY6IHNtYXJ0cGhvbmUgbG9jYXRpb24sIGRlc2ssIHBvY2tldC9iYWcsIG91dHNpZGU7IERWOiBDQlMgcGVyZm9ybWFuY2UpLgoKLSBDQlMgUGVyZm9ybWFuY2UgaXM6CiAgICAtIENCU19vdmVyYWxsID0gY29tcG9zaXRlIHNjb3JlIG9mIGFsbCAxMiBDQlMgdGFza3MKICAgIC0gRGF0YS1kcml2ZW4gZmFjdG9yczoKICAgICAgICAtIENCU19TVE0gPSBTaG9ydCBUZXJtIE1lbW9yeSA9IGNvbXBvc2l0ZSBzY29yZSBmb3IgNCBDQlMgdGFza3M6IFNwYXRpYWwgU3BhbiAoU1MpLCBNb25rZXkgTGFkZGVyIChNTCksIFBhaXJlZCBBc3NvY2lhdGVzIChQQSksIFRva2VuIFNlYXJjaCAoVFMpCiAgICAgICAgLSBDQlNfcmVhc29uID0gU2hvcnQgVGVybSBNZW1vcnkgPSBjb21wb3NpdGUgc2NvcmUgZm9yIDUgQ0JTIHRhc2tzOiBPZGQgT25lIE91dCAoT09PKSwgUm90YXRpb25zIChSKSwgRmVhdHVyZSBNYXRjaCAoRk0pLCBTcGF0aWFsIFRyZWUvUGxhbm5pbmcgKFNQKSwgUG9seWdvbnMgKFApCiAgICAgICAgLSBDQlNfdmVyYmFsID0gU2hvcnQgVGVybSBNZW1vcnkgPSBjb21wb3NpdGUgc2NvcmUgZm9yIDMgQ0JTIHRhc2tzOiBHcmFtbWF0aWNhbCBSZWFzb25pbmcgKEdSKSwgRG91YmxlIFRyb3VibGUgKERUKSwgRGlnaXQgU3BhbiAoRFMpCgojIyMgQVNTVU1QVElPTlMgLS0gZm9yIGVhY2guLi4gClRoZSBBTk9WQSBtYWRlIHRocmVlIGFzc3VtcHRpb25zOiBpbmRlcGVuZGVudCByYW5kb20gc2FtcGxpbmcgKG1ldCBkdXJpbmcgdGVzdGluZyksIG5vcm1hbGl0eSAodGVzdGVkIGJ5IHZpc3VhbGl6aW5nIHRoZSByZXNpZHVhbHMsIGFwcGx5aW5nIGEgU2hhcGlyby1XaWxrIHRlc3QgdG8gdGhlIHJlc2lkdWFscywgYW5kIG9ic2VydmluZyB0aGUgU2tld25lc3MgYW5kIEt1cnRvc2lzIG9mIHRoZSBkYXRhKSwgYW5kIGhvbW9nZW5laXR5IG9mIHZhcmlhbmNlIChsZXZlbmVzKS4gKipBbGwgYXNzdW1wdGlvbnMgd2VyZSBtZXQhKioKCkdldCB0aGUgZGF0YSBmb3IgZWFjaCBhbmFseXNpcwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQoKIyBnZXQgdGhlIHJlcXVpcmVkIGRhdGEgZnJvbSBhbGwgZGF0YTogcGFydGljaXBhbnQsIGNvbmRpdGlvbiwgc2NvcmUKIyMgT1ZFUkFMTAphbm92YV9vdmVyYWxsX2RhdGEgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIENCU19vdmVyYWxsKQoKIyMgU1RNCmFub3ZhX1NUTV9kYXRhIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCBDQlNfU1RNKQoKIyMgUkVBU09OCmFub3ZhX3JlYXNvbl9kYXRhIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCBDQlNfcmVhc29uKQoKIyMgVkVSQkFMCmFub3ZhX3ZlcmJhbF9kYXRhIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCBDQlNfdmVyYmFsKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfb3ZlcmFsbCA8LSBlekFOT1ZBKAogIGRhdGEgPSBhbm92YV9vdmVyYWxsX2RhdGEKICAsIGR2ID0gLihDQlNfb3ZlcmFsbCkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKIyMgU1RNCmFub3ZhX1NUTSA8LSBlekFOT1ZBKAogIGRhdGEgPSBhbm92YV9TVE1fZGF0YQogICwgZHYgPSAuKENCU19TVE0pCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCiMjIFJFQVNPTgphbm92YV9yZWFzb24gPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfcmVhc29uX2RhdGEKICAsIGR2ID0gLihDQlNfcmVhc29uKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgojIyBWRVJCQUwKYW5vdmFfdmVyYmFsIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX3ZlcmJhbF9kYXRhCiAgLCBkdiA9IC4oQ0JTX3ZlcmJhbCkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKIyBjYWxjdWxhdGUgJiBleHRyYWN0IHRoZSByZXNpZHVhbHMgZnJvbSB0aGUgQU5PVkFzIC0tIGZvciBlYWNoCmFub3ZhX292ZXJhbGxfcmVzIDwtIGRhdGEuZnJhbWUoInJlc2lkdWFscyIgPSBhbm92YV9vdmVyYWxsJGFvdiRyZXNpZHVhbHMpCmFub3ZhX1NUTV9yZXMgPC0gZGF0YS5mcmFtZSgicmVzaWR1YWxzIiA9IGFub3ZhX1NUTSRhb3YkcmVzaWR1YWxzKQphbm92YV9yZWFzb25fcmVzIDwtIGRhdGEuZnJhbWUoInJlc2lkdWFscyIgPSBhbm92YV9yZWFzb24kYW92JHJlc2lkdWFscykKYW5vdmFfdmVyYmFsX3JlcyA8LSBkYXRhLmZyYW1lKCJyZXNpZHVhbHMiID0gYW5vdmFfdmVyYmFsJGFvdiRyZXNpZHVhbHMpCgoKYGBgCgojIyMjIE5vcm1hbGl0eQoKQ2hlY2sgcXFwbG90cyBmb3IgZWFjaC4uLgoKYGBge3J9CmdyaWQuYXJyYW5nZShnZ3FxcGxvdChhbm92YV9vdmVyYWxsX3JlcyRyZXNpZHVhbHMsIHlsYWIgPSAiT1ZFUkFMTCIsIHNoYXBlID0gMSksCiAgICAgICAgICAgICBnZ3FxcGxvdChhbm92YV9TVE1fcmVzJHJlc2lkdWFscywgeWxhYiA9ICJTVE0iLCBzaGFwZSA9IDEpLAogICAgICAgICAgICAgZ2dxcXBsb3QoYW5vdmFfcmVhc29uX3JlcyRyZXNpZHVhbHMsIHlsYWIgPSAiUkVBU09OSU5HIiwgc2hhcGUgPSAxKSwKICAgICAgICAgICAgIGdncXFwbG90KGFub3ZhX3ZlcmJhbF9yZXMkcmVzaWR1YWxzLCB5bGFiID0gIlZFUkJBTCIsIHNoYXBlID0gMSksCiAgICAgICAgICAgICBucm93ID0gMiwKICAgICAgICAgICAgIHRvcCA9IHRleHRfZ3JvYigiUS1RIFBsb3RzIEZvciBBbGwgQU5PVkFzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNlID0gImJvbGQiKSwKICAgICAgICAgICAgIGJvdHRvbSA9IHRleHRfZ3JvYigiTm9ybWFsaXR5IGlzIG1ldCBmb3IgcGxvdHMgd2VyZSBkYXRhIGZhbGxzIGFsb25nIG9yIGNsb3NlIHRvIHRoZSBsaW5lLiAqIFMtVyBwIDwgLjA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNlID0gIml0YWxpYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IDAuMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGp1c3QgPSAwKQogICAgICAgICAgICAgKQpgYGAKQ2hlY2sgaGlzdCBvZiByZXNpZHVhbHMuLi4KCmBgYHtyfQpncmlkLmFycmFuZ2UocXBsb3QoYW5vdmFfb3ZlcmFsbF9yZXMkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKSwKICAgICAgICAgICAgIHFwbG90KGFub3ZhX1NUTV9yZXMkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKSwKICAgICAgICAgICAgIHFwbG90KGFub3ZhX3JlYXNvbl9yZXMkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKSwKICAgICAgICAgICAgIHFwbG90KGFub3ZhX3ZlcmJhbF9yZXMkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKSwKICAgICAgICAgICAgIG5yb3cgPSAyLAogICAgICAgICAgICAgdG9wID0gdGV4dF9ncm9iKCJIaXN0b2dyYW0gb2YgUmVzaWR1bGFzIEZvciBBbGwgQU5PVkFzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNlID0gImJvbGQiKSwKICAgICAgICAgICAgIGJvdHRvbSA9IHRleHRfZ3JvYigiTm9ybWFsaXR5IGlzIG1ldCBmb3IgcGxvdHMgd2VyZSBkYXRhIGZhbGxzIGFsb25nIG9yIGNsb3NlIHRvIGEgbm9ybWFsIGN1cnZlLiAqIFMtVyBwIDwgLjA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNlID0gIml0YWxpYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IDAuMDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGp1c3QgPSAwKQogICAgICAgICAgICAgKQoKYGBgCgpTaG93IHRoZSByZXN1bHRzIG9mIGEgU2hhcGlyby1XaWxrIHRlc3Qgb2Ygbm9ybWFsaXR5IGZvciBlYWNoLi4uIAoKYGBge3J9CnNoYXBpcm9fYWxsIDwtIHJiaW5kKGMoc2hhcGlyby50ZXN0KGFub3ZhX292ZXJhbGxfcmVzJHJlc2lkdWFscykkc3RhdGlzdGljLCBzaGFwaXJvLnRlc3QoYW5vdmFfb3ZlcmFsbF9yZXMkcmVzaWR1YWxzKSRwLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAgYyhzaGFwaXJvLnRlc3QoYW5vdmFfU1RNX3JlcyRyZXNpZHVhbHMpJHN0YXRpc3RpYywgc2hhcGlyby50ZXN0KGFub3ZhX1NUTV9yZXMkcmVzaWR1YWxzKSRwLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAgYyhzaGFwaXJvLnRlc3QoYW5vdmFfcmVhc29uX3JlcyRyZXNpZHVhbHMpJHN0YXRpc3RpYywgc2hhcGlyby50ZXN0KGFub3ZhX3JlYXNvbl9yZXMkcmVzaWR1YWxzKSRwLnZhbHVlKSwKICAgICAgICAgICAgICAgICAgICAgYyhzaGFwaXJvLnRlc3QoYW5vdmFfdmVyYmFsX3JlcyRyZXNpZHVhbHMpJHN0YXRpc3RpYywgc2hhcGlyby50ZXN0KGFub3ZhX3ZlcmJhbF9yZXMkcmVzaWR1YWxzKSRwLnZhbHVlKQogICAgICAgICAgICAgICAgICAgICApCmNvbG5hbWVzKHNoYXBpcm9fYWxsKSA8LSBjKCJXIiwgInAiKQpyb3duYW1lcyhzaGFwaXJvX2FsbCkgPC0gYygiT1ZFUkFMTCIsICJTVE0iLCAiUkVBU09OSU5HIiwgIlZFUkJBTCIpCgprYWJsZShzaGFwaXJvX2FsbCwgY2FwdGlvbiA9ICJSZXN1bHRzIG9mIHNoYXBpcm8td2lsayB0ZXN0IG9mIG5vcm1hbGl0eSBmb3IgYWxsIEFOT1ZBcy4iLCByb3cubmFtZXMgPSBUUlVFLCBhbGlnbiA9ICdjJywgZGlnaXRzID0gNCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUKICBrYWJsZV9jbGFzc2ljKCkKCmBgYAoKUmV2aWV3IHNrZXcgJiBrdXJ0b3NpcyBmb3IgZWFjaC4uLiAKCi0gcmFuZ2Ugd2FudGVkOiBTa2V3ID0gICRccG0gMi4wJCAmIEt1cnRvc2lzID0gICRccG0gOS4wJCAgKFNjaG1pZGVyLCBaaWVnbGVyLCBEYW5heSwgQmV5ZXIsICYgQsO8aG5lciwgMjAxMCkKCmBgYHtyfQpza19hbGwgPC0gcmJpbmQoYyhwc3ljaDo6ZGVzY3JpYmUoYW5vdmFfb3ZlcmFsbF9kYXRhKSRza2V3WzNdLCBwc3ljaDo6ZGVzY3JpYmUoYW5vdmFfb3ZlcmFsbF9kYXRhKSRrdXJ0b3Npc1szXSksIAogICAgICAgICAgICAgICAgYyhwc3ljaDo6ZGVzY3JpYmUoYW5vdmFfU1RNX2RhdGEpJHNrZXdbM10sIHBzeWNoOjpkZXNjcmliZShhbm92YV9TVE1fZGF0YSkka3VydG9zaXNbM10pLCAKICAgICAgICAgICAgICAgIGMocHN5Y2g6OmRlc2NyaWJlKGFub3ZhX3JlYXNvbl9kYXRhKSRza2V3WzNdLCBwc3ljaDo6ZGVzY3JpYmUoYW5vdmFfcmVhc29uX2RhdGEpJGt1cnRvc2lzWzNdKSwgCiAgICAgICAgICAgICAgICBjKHBzeWNoOjpkZXNjcmliZShhbm92YV92ZXJiYWxfZGF0YSkkc2tld1szXSwgcHN5Y2g6OmRlc2NyaWJlKGFub3ZhX3ZlcmJhbF9kYXRhKSRrdXJ0b3Npc1szXSkKICAgICAgICAgICAgICAgICkKY29sbmFtZXMoc2tfYWxsKSA8LSBjKCJza2V3IiwgImt1dG9zaXMiKQpyb3duYW1lcyhza19hbGwpIDwtIGMoIk9WRVJBTEwiLCAiU1RNIiwgIlJFQVNPTklORyIsICJWRVJCQUwiKQoKa2FibGUoc2tfYWxsLCBjYXB0aW9uID0gIlNrZXcgYW5kIEt1cnRvc2lzIGZvciBhbGwgQU5PVkFzLiIsIHJvdy5uYW1lcyA9IFRSVUUsIGFsaWduID0gJ2MnLCBkaWdpdHMgPSA0KSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQpgYGAKCiMjIyMgSG9tb2dlbmVpdHkgb2YgVmFyaWFuY2UKCkNoZWNrIGxldmVuZXMgZm9yIGVhY2ggQU5PVkEuLi4gCgpgYGB7cn0KCmxldmVuZXNfYWxsIDwtIHJiaW5kKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9vdmVyYWxsX2RhdGEsIENCU19vdmVyYWxsIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSksIAogICAgICAgICAgICAgICAgICAgICB1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfU1RNX2RhdGEsIENCU19TVE0gfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKSwgCiAgICAgICAgICAgICAgICAgICAgIHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9yZWFzb25fZGF0YSwgQ0JTX3JlYXNvbiB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpLCAKICAgICAgICAgICAgICAgICAgICAgdW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX3ZlcmJhbF9kYXRhLCBDQlNfdmVyYmFsIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSkKICAgICAgICAgICAgICAgICAgICAgKQpjb2xuYW1lcyhsZXZlbmVzX2FsbCkgPC0gYygiREYxIiwgIkRGMiIsICJGIiwgIkYyIiwgInAiLCAicDwuMDUiKQpyb3duYW1lcyhsZXZlbmVzX2FsbCkgPC0gYygiT1ZFUkFMTCIsICJTVE0iLCAiUkVBU09OSU5HIiwgIlZFUkJBTCIpCgoKa2FibGUobGV2ZW5lc19hbGxbLGMoMTozLCA1KV0sIGNhcHRpb24gPSAiTGV2ZW5lcyB0ZXN0IGZvciBhbGwgQU5PVkFzLiIsIHJvdy5uYW1lcyA9IFRSVUUsIGFsaWduID0gJ2MnLCBkaWdpdHMgPSA0KSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JQogIGthYmxlX2NsYXNzaWMoKQogICAgICAgICAgICAgICAgICAgICAKYGBgCgoKIyMjIyBSZXN1bHRzCgpTaG93IGFub3ZhIHRhYmxlcyBmb3IgZWFjaCBBTk9WQS4uLgpgYGB7cn0KIyBzaG93IEFOT1ZBIHJlc3VsdHMgaW4ga2FibGUgdGFibGUgCmthYmxlKGFub3ZhX292ZXJhbGwkQU5PVkEsIGNhcHRpb24gPSAiT1ZFUkFMTCAtIG9uZS13YXkgQU5PVkEiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9vdmVyYWxsX2RhdGEkY29uZGl0aW9uLCBhbm92YV9vdmVyYWxsX2RhdGEkQ0JTX292ZXJhbGwpCgprYWJsZShhbm92YV9TVE0kQU5PVkEsIGNhcHRpb24gPSAiU1RNIC0gb25lLXdheSBBTk9WQSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX1NUTV9kYXRhJGNvbmRpdGlvbiwgYW5vdmFfU1RNX2RhdGEkQ0JTX1NUTSkKCmthYmxlKGFub3ZhX3JlYXNvbiRBTk9WQSwgY2FwdGlvbiA9ICJSRUFTT05JTkcgLSBvbmUtd2F5IEFOT1ZBIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QoYW5vdmFfcmVhc29uX2RhdGEkY29uZGl0aW9uLCBhbm92YV9yZWFzb25fZGF0YSRDQlNfcmVhc29uKQoKa2FibGUoYW5vdmFfdmVyYmFsJEFOT1ZBLCBjYXB0aW9uID0gIlZFUkJBTCAtIG9uZS13YXkgQU5PVkEiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV92ZXJiYWxfZGF0YSRjb25kaXRpb24sIGFub3ZhX3ZlcmJhbF9kYXRhJENCU192ZXJiYWwpCmBgYAoKCiMjIyMgRXhwbG9yZSBvdGhlciBEVnMuLi4KCiMjIyMjIEZyb20gdGhlIHRhc2sgc2VsZWN0aW9uIGd1aWRlJ3MgY2F0ZWdvcmllcwpUUyAtICBNRU1PUlkKYGBge3J9CiMjIEZPUiB0c19tZW1vcnkKYW5vdmFfZGF0YV90c19tZW1vcnkgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIENCU190c19tZW1vcnkpICU+JSAKICByZW5hbWUoc2NvcmUgPSBDQlNfdHNfbWVtb3J5KQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfdHNfbWVtb3J5IDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfdHNfbWVtb3J5CiAgLCBkdiA9IC4oc2NvcmUpCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCmdncXFwbG90KGFub3ZhX3RzX21lbW9yeSRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX3RzX21lbW9yeSRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX3RzX21lbW9yeSRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZSh1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfZGF0YV90c19tZW1vcnksIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX3RzX21lbW9yeSRBTk9WQSwgY2FwdGlvbiA9ICJ0c19tZW1vcnkgLSBvbmUtd2F5IEFOT1ZBIG9uIE9zcGFuIEFic29sdXRlIFNjb3JlIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QoYW5vdmFfZGF0YV90c19tZW1vcnkkY29uZGl0aW9uLCBhbm92YV9kYXRhX3RzX21lbW9yeSRzY29yZSkKCmBgYAoKVFMgLSBSRUFTT04KYGBge3J9CiMjIEZPUiB0c19yZWFzb25pbmcKYW5vdmFfZGF0YV90c19yZWFzb24gPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIENCU190c19yZWFzb24pICU+JSAKICByZW5hbWUoc2NvcmUgPSBDQlNfdHNfcmVhc29uKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfdHNfcmVhc29uIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfdHNfcmVhc29uCiAgLCBkdiA9IC4oc2NvcmUpCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCmdncXFwbG90KGFub3ZhX3RzX3JlYXNvbiRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX3RzX3JlYXNvbiRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX3RzX3JlYXNvbiRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZSh1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfZGF0YV90c19yZWFzb24sIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX3RzX3JlYXNvbiRBTk9WQSwgY2FwdGlvbiA9ICJ0c19yZWFzb24gLSBvbmUtd2F5IEFOT1ZBIG9uIE9zcGFuIEFic29sdXRlIFNjb3JlIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QoYW5vdmFfZGF0YV90c19yZWFzb24kY29uZGl0aW9uLCBhbm92YV9kYXRhX3RzX3JlYXNvbiRzY29yZSkKCmBgYAoKVFMgLSBWRVJCQUwgQUJJTElUWQpgYGB7cn0KIyMgRk9SIHRzX3ZlcmJhbGFiCmFub3ZhX2RhdGFfdHNfdmVyYmFsYWIgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIENCU190c192ZXJiYWxhYikgJT4lIAogIHJlbmFtZShzY29yZSA9IENCU190c192ZXJiYWxhYikKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX3RzX3ZlcmJhbGFiIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfdHNfdmVyYmFsYWIKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfdHNfdmVyYmFsYWIkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV90c192ZXJiYWxhYiRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX3RzX3ZlcmJhbGFiJGFvdiRyZXNpZHVhbHMpKVsxOjJdKSwgY2FwdGlvbiA9ICJTSEFQSVJPIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9kYXRhX3RzX3ZlcmJhbGFiLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV90c192ZXJiYWxhYiRBTk9WQSwgY2FwdGlvbiA9ICJ0c192ZXJiYWxhYiAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX3RzX3ZlcmJhbGFiJGNvbmRpdGlvbiwgYW5vdmFfZGF0YV90c192ZXJiYWxhYiRzY29yZSkKCmBgYApUUyAtIENPTkNFTlRSQVRJT04KCmBgYHtyfQojIyBGT1IgdHNfY29uCmFub3ZhX2RhdGFfdHNfY29uIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCBDQlNfdHNfY29uKSAlPiUgCiAgcmVuYW1lKHNjb3JlID0gQ0JTX3RzX2NvbikKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX3RzX2NvbiA8LSBlekFOT1ZBKAogIGRhdGEgPSBhbm92YV9kYXRhX3RzX2NvbgogICwgZHYgPSAuKHNjb3JlKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgpnZ3FxcGxvdChhbm92YV90c19jb24kYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV90c19jb24kYW92JHJlc2lkdWFscywgbWFpbiA9ICJIaXN0b2dyYW0gb2YgT3NwYW4gUmVzaWR1YWxzIiwgYmlud2lkdGggPSAuMykgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV90c19jb24kYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfdHNfY29uLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV90c19jb24kQU5PVkEsIGNhcHRpb24gPSAidHNfY29uIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgphbm92YV90c19jb25fd2hpdGUgPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV90c19jb24KICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgLCB3aGl0ZS5hZGp1c3QgPSBUUlVFCiAgKQoKa2FibGUoYW5vdmFfdHNfY29uX3doaXRlJEFOT1ZBLCBjYXB0aW9uID0gInRzX2NvbiAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX3RzX2NvbiRjb25kaXRpb24sIGFub3ZhX2RhdGFfdHNfY29uJHNjb3JlKQpgYGAKCiMjIyMjIEFsbCBpbmR2IHRhc2tzLi4uIChub3Qgei1zY29yZWQpCkRpZ2l0IFNwYW4gKERTKQpgYGB7cn0KIyMgRk9SIERTCmFub3ZhX2RhdGFfRFMgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIGBTY29yZV9EaWdpdCBTcGFuYCkgJT4lIAogIHJlbmFtZShzY29yZSA9IGBTY29yZV9EaWdpdCBTcGFuYCkKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX0RTIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfRFMKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfRFMkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV9EUyRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX0RTJGFvdiRyZXNpZHVhbHMpKVsxOjJdKSwgY2FwdGlvbiA9ICJTSEFQSVJPIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9kYXRhX0RTLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV9EUyRBTk9WQSwgY2FwdGlvbiA9ICJEUyAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX0RTJGNvbmRpdGlvbiwgYW5vdmFfZGF0YV9EUyRzY29yZSkKYGBgCgpEb3VibGUgVHJvdWJsZSAoRFQpCmBgYHtyfQojIyBGT1IgRFQKYW5vdmFfZGF0YV9EVCA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX0RvdWJsZSBUcm91YmxlYCkgJT4lIAogIHJlbmFtZShzY29yZSA9IGBTY29yZV9Eb3VibGUgVHJvdWJsZWApCgojIHJ1biBiZXR3ZWVuLXN1YmplY3RzIEFOT1ZBIChJVjogU21hcnRwaG9uZSBMb2NhdGlvbjsgRFY6IENCUyBwZXJmb3JtYW5jZSkKIyMgT1ZFUkFMTAphbm92YV9EVCA8LSBlekFOT1ZBKAogIGRhdGEgPSBhbm92YV9kYXRhX0RUCiAgLCBkdiA9IC4oc2NvcmUpCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCmdncXFwbG90KGFub3ZhX0RUJGFvdiRyZXNpZHVhbHMsIHlsYWIgPSAiQ0JTIiwgc2hhcGUgPSAxKQoKcXBsb3QoYW5vdmFfRFQkYW92JHJlc2lkdWFscywgbWFpbiA9ICJIaXN0b2dyYW0gb2YgT3NwYW4gUmVzaWR1YWxzIiwgYmlud2lkdGggPSAuNykgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV9EVCRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZSh1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfZGF0YV9EVCwgc2NvcmUgfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKVtjKDE6MywgNSldLCBjYXB0aW9uID0gIkxFVkVORVMiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYW5vdmFfRFQkQU5PVkEsIGNhcHRpb24gPSAiRFQgLSBvbmUtd2F5IEFOT1ZBIG9uIE9zcGFuIEFic29sdXRlIFNjb3JlIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QoYW5vdmFfZGF0YV9EVCRjb25kaXRpb24sIGFub3ZhX2RhdGFfRFQkc2NvcmUpCmBgYAoKRmVhdHVyZSBNYXRjaCAoRk0pCmBgYHtyfQojIyBGT1IgRk0KYW5vdmFfZGF0YV9GTSA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX0ZlYXR1cmUgTWF0Y2hgKSAlPiUgCiAgcmVuYW1lKHNjb3JlID0gYFNjb3JlX0ZlYXR1cmUgTWF0Y2hgKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfRk0gPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9GTQogICwgZHYgPSAuKHNjb3JlKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgpnZ3FxcGxvdChhbm92YV9GTSRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX0ZNJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gNSkgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV9GTSRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZSh1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfZGF0YV9GTSwgc2NvcmUgfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKVtjKDE6MywgNSldLCBjYXB0aW9uID0gIkxFVkVORVMiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYW5vdmFfRk0kQU5PVkEsIGNhcHRpb24gPSAiRk0gLSBvbmUtd2F5IEFOT1ZBIG9uIE9zcGFuIEFic29sdXRlIFNjb3JlIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmFub3ZhX0ZNX3doaXRlIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfRk0KICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgLCB3aGl0ZS5hZGp1c3QgPSBUUlVFCiAgKQoKa2FibGUoYW5vdmFfRk1fd2hpdGUkQU5PVkEsIGNhcHRpb24gPSAidHNfY29uIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfRk0kY29uZGl0aW9uLCBhbm92YV9kYXRhX0ZNJHNjb3JlKQpgYGAKCkdyYW1tYXRpY2FsIFJlYXNvbmluZyAoR1IpCmBgYHtyfQojIyBGT1IgR1IKYW5vdmFfZGF0YV9HUiA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX0dyYW1tYXRpY2FsIFJlYXNvbmluZ2ApICU+JSAKICByZW5hbWUoc2NvcmUgPSBgU2NvcmVfR3JhbW1hdGljYWwgUmVhc29uaW5nYCkKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX0dSIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfR1IKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfR1IkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV9HUiRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IDEpICsgdGhlbWVfY2xhc3NpYygpCgprYWJsZShhcy5udW1lcmljKHVubGlzdChzaGFwaXJvLnRlc3QoYW5vdmFfR1IkYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfR1IsIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX0dSJEFOT1ZBLCBjYXB0aW9uID0gIkdSIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfR1IkY29uZGl0aW9uLCBhbm92YV9kYXRhX0dSJHNjb3JlKQpgYGAKCk1vbmtleSBMYWRkZXIgKE1MKQpgYGB7cn0KIyMgRk9SIE1MCmFub3ZhX2RhdGFfTUwgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIGBTY29yZV9Nb25rZXkgTGFkZGVyYCkgJT4lIAogIHJlbmFtZShzY29yZSA9IGBTY29yZV9Nb25rZXkgTGFkZGVyYCkKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX01MIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfTUwKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfTUwkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV9NTCRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC4zKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX01MJGFvdiRyZXNpZHVhbHMpKVsxOjJdKSwgY2FwdGlvbiA9ICJTSEFQSVJPIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9kYXRhX01MLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV9NTCRBTk9WQSwgY2FwdGlvbiA9ICJNTCAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX01MJGNvbmRpdGlvbiwgYW5vdmFfZGF0YV9NTCRzY29yZSkKYGBgCgpPZGQgT25lIE91dCAoT09PKQpgYGB7cn0KIyMgRk9SIE9PTwphbm92YV9kYXRhX09PTyA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX09kZCBPbmUgT3V0YCkgJT4lIAogIHJlbmFtZShzY29yZSA9IGBTY29yZV9PZGQgT25lIE91dGApCgojIHJ1biBiZXR3ZWVuLXN1YmplY3RzIEFOT1ZBIChJVjogU21hcnRwaG9uZSBMb2NhdGlvbjsgRFY6IENCUyBwZXJmb3JtYW5jZSkKIyMgT1ZFUkFMTAphbm92YV9PT08gPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9PT08KICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfT09PJGFvdiRyZXNpZHVhbHMsIHlsYWIgPSAiQ0JTIiwgc2hhcGUgPSAxKQoKcXBsb3QoYW5vdmFfT09PJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gMSkgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV9PT08kYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfT09PLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV9PT08kQU5PVkEsIGNhcHRpb24gPSAiT09PIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfT09PJGNvbmRpdGlvbiwgYW5vdmFfZGF0YV9PT08kc2NvcmUpCmBgYAoKUGFpcmVkIEFzc29jaWF0ZXMgKFBBKQpgYGB7cn0KIyMgRk9SIFBBCmFub3ZhX2RhdGFfUEEgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIGBTY29yZV9QYWlyZWQgQXNzb2NpYXRlc2ApICU+JSAKICByZW5hbWUoc2NvcmUgPSBgU2NvcmVfUGFpcmVkIEFzc29jaWF0ZXNgKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfUEEgPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9QQQogICwgZHYgPSAuKHNjb3JlKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgpnZ3FxcGxvdChhbm92YV9QQSRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX1BBJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gLjgpICsgdGhlbWVfY2xhc3NpYygpCgprYWJsZShhcy5udW1lcmljKHVubGlzdChzaGFwaXJvLnRlc3QoYW5vdmFfUEEkYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfUEEsIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX1BBJEFOT1ZBLCBjYXB0aW9uID0gIlBBIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfUEEkY29uZGl0aW9uLCBhbm92YV9kYXRhX1BBJHNjb3JlKQpgYGAKClBvbHlnb25zIChQKQpgYGB7cn0KIyMgRk9SIFAKYW5vdmFfZGF0YV9QIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCBTY29yZV9Qb2x5Z29ucykgJT4lIAogIHJlbmFtZShzY29yZSA9IFNjb3JlX1BvbHlnb25zKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfUCA8LSBlekFOT1ZBKAogIGRhdGEgPSBhbm92YV9kYXRhX1AKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfUCRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX1AkYW92JHJlc2lkdWFscywgbWFpbiA9ICJIaXN0b2dyYW0gb2YgT3NwYW4gUmVzaWR1YWxzIiwgYmlud2lkdGggPSAxKSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX1AkYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfUCwgc2NvcmUgfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKVtjKDE6MywgNSldLCBjYXB0aW9uID0gIkxFVkVORVMiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYW5vdmFfUCRBTk9WQSwgY2FwdGlvbiA9ICJQIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfUCRjb25kaXRpb24sIGFub3ZhX2RhdGFfUCRzY29yZSkKYGBgCgpSb3RhdGlvbnMgKFIpCmBgYHtyfQojIyBGT1IgUgphbm92YV9kYXRhX1IgPC0gCiAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiAgc2VsZWN0KHBhcnRpY2lwYW50LCBjb25kaXRpb24sIFNjb3JlX1JvdGF0aW9ucykgJT4lIAogIHJlbmFtZShzY29yZSA9IFNjb3JlX1JvdGF0aW9ucykKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX1IgPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9SCiAgLCBkdiA9IC4oc2NvcmUpCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCmdncXFwbG90KGFub3ZhX1IkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV9SJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gNSkgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV9SJGFvdiRyZXNpZHVhbHMpKVsxOjJdKSwgY2FwdGlvbiA9ICJTSEFQSVJPIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9kYXRhX1IsIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX1IkQU5PVkEsIGNhcHRpb24gPSAiUiAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX1IkY29uZGl0aW9uLCBhbm92YV9kYXRhX1Ikc2NvcmUpCmBgYAoKU3BhdGlhbCBQbGFubmluZyAoU1ApCmBgYHtyfQojIyBGT1IgU1AKYW5vdmFfZGF0YV9TUCA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX1NwYXRpYWwgUGxhbm5pbmdgKSAlPiUgCiAgcmVuYW1lKHNjb3JlID0gYFNjb3JlX1NwYXRpYWwgUGxhbm5pbmdgKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfU1AgPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9TUAogICwgZHYgPSAuKHNjb3JlKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgpnZ3FxcGxvdChhbm92YV9TUCRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX1NQJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gMikgKyB0aGVtZV9jbGFzc2ljKCkKCmthYmxlKGFzLm51bWVyaWModW5saXN0KHNoYXBpcm8udGVzdChhbm92YV9TUCRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZSh1bmxpc3QobGV2ZW5lVGVzdChkYXRhID0gYW5vdmFfZGF0YV9TUCwgc2NvcmUgfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKVtjKDE6MywgNSldLCBjYXB0aW9uID0gIkxFVkVORVMiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYW5vdmFfU1AkQU5PVkEsIGNhcHRpb24gPSAiU1AgLSBvbmUtd2F5IEFOT1ZBIG9uIE9zcGFuIEFic29sdXRlIFNjb3JlIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QoYW5vdmFfZGF0YV9TUCRjb25kaXRpb24sIGFub3ZhX2RhdGFfU1Akc2NvcmUpCmBgYAoKU3BhdGlhbCBTcGFuIChTUykKYGBge3J9CiMjIEZPUiBTUwphbm92YV9kYXRhX1NTIDwtIAogIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAogIHNlbGVjdChwYXJ0aWNpcGFudCwgY29uZGl0aW9uLCAnU2NvcmVfU3BhdGlhbCBTcGFuJykgJT4lIAogIHJlbmFtZShzY29yZSA9ICdTY29yZV9TcGF0aWFsIFNwYW4nKQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfU1MgPC0gZXpBTk9WQSgKICBkYXRhID0gYW5vdmFfZGF0YV9TUwogICwgZHYgPSAuKHNjb3JlKQogICwgd2lkID0gLihwYXJ0aWNpcGFudCkKICAsIGJldHdlZW4gPSAuKGNvbmRpdGlvbikKICAsIHR5cGUgPSAzICMgdW5lcXVhbCBzYW1wbGUgc2l6ZXMKICAsIGRldGFpbGVkID0gVFJVRQogICwgcmV0dXJuX2FvdiA9IFRSVUUKICApCgpnZ3FxcGxvdChhbm92YV9TUyRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX1NTJGFvdiRyZXNpZHVhbHMsIG1haW4gPSAiSGlzdG9ncmFtIG9mIE9zcGFuIFJlc2lkdWFscyIsIGJpbndpZHRoID0gLjUpICsgdGhlbWVfY2xhc3NpYygpCgprYWJsZShhcy5udW1lcmljKHVubGlzdChzaGFwaXJvLnRlc3QoYW5vdmFfU1MkYW92JHJlc2lkdWFscykpWzE6Ml0pLCBjYXB0aW9uID0gIlNIQVBJUk8iLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUodW5saXN0KGxldmVuZVRlc3QoZGF0YSA9IGFub3ZhX2RhdGFfU1MsIHNjb3JlIH4gY29uZGl0aW9uLCBjZW50ZXIgPSBtZWFuKSlbYygxOjMsIDUpXSwgY2FwdGlvbiA9ICJMRVZFTkVTIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKGFub3ZhX1NTJEFOT1ZBLCBjYXB0aW9uID0gIlNTIC0gb25lLXdheSBBTk9WQSBvbiBPc3BhbiBBYnNvbHV0ZSBTY29yZSIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgpwbG90KGFub3ZhX2RhdGFfU1MkY29uZGl0aW9uLCBhbm92YV9kYXRhX1NTJHNjb3JlKQpgYGAKClRva2VuIFNlYXJjaCAoVFMpCmBgYHtyfQojIyBGT1IgVFMKYW5vdmFfZGF0YV9UUyA8LSAKICBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICBzZWxlY3QocGFydGljaXBhbnQsIGNvbmRpdGlvbiwgYFNjb3JlX1Rva2VuIFNlYXJjaGApICU+JSAKICByZW5hbWUoc2NvcmUgPSBgU2NvcmVfVG9rZW4gU2VhcmNoYCkKCiMgcnVuIGJldHdlZW4tc3ViamVjdHMgQU5PVkEgKElWOiBTbWFydHBob25lIExvY2F0aW9uOyBEVjogQ0JTIHBlcmZvcm1hbmNlKQojIyBPVkVSQUxMCmFub3ZhX1RTIDwtIGV6QU5PVkEoCiAgZGF0YSA9IGFub3ZhX2RhdGFfVFMKICAsIGR2ID0gLihzY29yZSkKICAsIHdpZCA9IC4ocGFydGljaXBhbnQpCiAgLCBiZXR3ZWVuID0gLihjb25kaXRpb24pCiAgLCB0eXBlID0gMyAjIHVuZXF1YWwgc2FtcGxlIHNpemVzCiAgLCBkZXRhaWxlZCA9IFRSVUUKICAsIHJldHVybl9hb3YgPSBUUlVFCiAgKQoKZ2dxcXBsb3QoYW5vdmFfVFMkYW92JHJlc2lkdWFscywgeWxhYiA9ICJDQlMiLCBzaGFwZSA9IDEpCgpxcGxvdChhbm92YV9UUyRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC43KSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX1RTJGFvdiRyZXNpZHVhbHMpKVsxOjJdKSwgY2FwdGlvbiA9ICJTSEFQSVJPIiwgZGlnaXRzID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBhbm92YV9kYXRhX1RTLCBzY29yZSB+IGNvbmRpdGlvbiwgY2VudGVyID0gbWVhbikpW2MoMTozLCA1KV0sIGNhcHRpb24gPSAiTEVWRU5FUyIsIGRpZ2l0cyA9IDQsIGFsaWduID0gJ2MnKSAlPiUKICByb3dfc3BlYygwLCBib2xkID0gVCkgJT4lIAogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSAic3RyaXBlZCIsICJob3ZlciIsIGZ1bGxfd2lkdGggPSBGKSAlPiUgCiAga2FibGVfY2xhc3NpYygpCgprYWJsZShhbm92YV9UUyRBTk9WQSwgY2FwdGlvbiA9ICJUUyAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpdHMgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKcGxvdChhbm92YV9kYXRhX1RTJGNvbmRpdGlvbiwgYW5vdmFfZGF0YV9UUyRzY29yZSkKYGBgCgojIyMjIyBDaGVjayB3aXRob3V0IG91dGxpZXJzIGZyb20gQ0JTX292ZXJhbGwKYGBge3J9CiMgaW5zdGFsbCB0aGUgcGFja2FnZQojIGluc3RhbGwucGFja2FnZXMoImdnc3RhdHNwbG90IikKCiMgTG9hZCB0aGUgcGFja2FnZQojIGxpYnJhcnkoZ2dzdGF0c3Bsb3QpCgojIENyZWF0ZSBhIGJveHBsb3Qgb2YgdGhlIGRhdGFzZXQsIG91dGxpZXJzIGFyZSBzaG93biBhcyB0d28gZGlzdGluY3QgcG9pbnRzCmFub3ZhX292ZXJhbGxfb3V0cyA8LSBib3hwbG90KGRhdGEgPSBzZWxlY3QoYW5vdmFfb3ZlcmFsbF9kYXRhLCAtcGFydGljaXBhbnQpLCBDQlNfb3ZlcmFsbH5jb25kaXRpb24sIHBsb3QgPSBGQUxTRSkkb3V0ICMgdGhpcyB3YXMgc2F2aW5nIGFzIG9kZCBmaWxlLi4uCgojQ3JlYXRlIGEgYm94cGxvdCB0aGF0IGxhYmVscyB0aGUgb3V0bGllcnMKZ2diZXR3ZWVuc3RhdHMoc2VsZWN0KGFub3ZhX292ZXJhbGxfZGF0YSwgLXBhcnRpY2lwYW50KSwKY29uZGl0aW9uLCBDQlNfb3ZlcmFsbCwgb3V0bGllci50YWdnaW5nID0gVFJVRSwgZ2d0aGVtZSA9IGdncGxvdDI6OnRoZW1lX2NsYXNzaWMoKSwgLCB0eXBlID0gInBhcmFtZXRyaWMiLCBwYWlyd2lzZS5jb21wYXJpc29ucyA9IFRSVUUsIHBhaXJ3aXNlLmRpc3BsYXkgPSAiYWxsIiwgcC5hZGp1c3QubWV0aG9kID0gImhvbG0iLCBlZmZzaXplLnR5cGUgPSAiZXRhIiwgcmVzdWx0cy5zdWJ0aXRsZSA9IFQsIHRpdGxlID0gIkFOT1ZBIC0gQ0JTIE92ZXJhbGwgJiBTTWFydHBob25lIExvY2F0aW9uIC0gV0lUSCBPdXRsaWVycyAiLCB2YXIuZXF1YWwgPSBULCBjZW50cmFsaXR5LnR5cGUgPSAicGFyYW1ldHJpYyIsIGNlbnRyYWxpdHkucG9pbnQuYXJncyA9IGxpc3Qoc2l6ZSA9IDIpLCBvdXRsaWVyLmxhYmVsLmFyZ3MgPSBsaXN0KHNpemUgPSAyKSkKCgojIHhvdXRsaWVyc19kYXRhIDwtIGFub3ZhX292ZXJhbGxfZGF0YVt3aGljaChhbm92YV9vdmVyYWxsX2RhdGEkQ0JTX292ZXJhbGwgJWluJSBhbm92YV9vdmVyYWxsX291dHMpLF0KCm5ld19kZXNrIDwtIHN1YnNldChhbm92YV9vdmVyYWxsX2RhdGEgJT4lIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSwgIShDQlNfb3ZlcmFsbCAlaW4lIGFub3ZhX292ZXJhbGxfb3V0cykpCiMgbmV3X291dCA8LSBzdWJzZXQoYW5vdmFfb3ZlcmFsbF9kYXRhICU+JSBmaWx0ZXIoY29uZGl0aW9uID09ICJvdXRzaWRlIiksICEoQ0JTX292ZXJhbGwgJWluJSBhbm92YV9vdmVyYWxsX291dHNbMTA6MTFdKSkKCm5ld19kYXRhIDwtIGFub3ZhX292ZXJhbGxfZGF0YSAlPiUgZmlsdGVyKGNvbmRpdGlvbiAhPSAiZGVzayIpICU+JSAKICBiaW5kX3Jvd3MobmV3X2Rlc2spCgpnZ2JldHdlZW5zdGF0cyhuZXdfZGF0YSwKY29uZGl0aW9uLCBDQlNfb3ZlcmFsbCwgb3V0bGllci50YWdnaW5nID0gVFJVRSwgZ2d0aGVtZSA9IGdncGxvdDI6OnRoZW1lX2NsYXNzaWMoKSwgLCB0eXBlID0gInBhcmFtZXRyaWMiLCBwYWlyd2lzZS5jb21wYXJpc29ucyA9IFRSVUUsIHBhaXJ3aXNlLmRpc3BsYXkgPSAiYWxsIiwgcC5hZGp1c3QubWV0aG9kID0gImhvbG0iLCBlZmZzaXplLnR5cGUgPSAiZXRhIiwgcmVzdWx0cy5zdWJ0aXRsZSA9IFQsIHRpdGxlID0gIkFOT1ZBIC0gQ0JTIE92ZXJhbGwgJiBTTWFydHBob25lIExvY2F0aW9uIC0gT3V0bGllcnMgUmVtb3ZlZCIsIHZhci5lcXVhbCA9IFQsIGNlbnRyYWxpdHkudHlwZSA9ICJwYXJhbWV0cmljIiwgY2VudHJhbGl0eS5wb2ludC5hcmdzID0gbGlzdChzaXplID0gMiksIG91dGxpZXIubGFiZWwuYXJncyA9IGxpc3Qoc2l6ZSA9IDIpKQoKZ2diZXR3ZWVuc3RhdHMoYW5vdmFfZGF0YV9EUywKY29uZGl0aW9uLCBzY29yZSwgb3V0bGllci50YWdnaW5nID0gVFJVRSwgZ2d0aGVtZSA9IGdncGxvdDI6OnRoZW1lX2NsYXNzaWMoKSwgLCB0eXBlID0gInBhcmFtZXRyaWMiLCBwYWlyd2lzZS5jb21wYXJpc29ucyA9IFRSVUUsIHBhaXJ3aXNlLmRpc3BsYXkgPSAiYWxsIiwgcC5hZGp1c3QubWV0aG9kID0gImhvbG0iLCBlZmZzaXplLnR5cGUgPSAiZXRhIiwgcmVzdWx0cy5zdWJ0aXRsZSA9IFQsIHRpdGxlID0gIkFOT1ZBIC0gQ0JTIE92ZXJhbGwgJiBTTWFydHBob25lIExvY2F0aW9uIC0gT3V0bGllcnMgUmVtb3ZlZCIsIHZhci5lcXVhbCA9IFQsIGNlbnRyYWxpdHkudHlwZSA9ICJwYXJhbWV0cmljIiwgY2VudHJhbGl0eS5wb2ludC5hcmdzID0gbGlzdChzaXplID0gMiksIG91dGxpZXIubGFiZWwuYXJncyA9IGxpc3Qoc2l6ZSA9IDIpKQoKIyBib3hwbG90KGRhdGEgPSBzZWxlY3QobmV3X2RhdGEsIC1wYXJ0aWNpcGFudCksIENCU19vdmVyYWxsfmNvbmRpdGlvbikKCmBgYAoKYGBge3J9CiMjIEZPUiBORVcgREFUQQoKIyBydW4gYmV0d2Vlbi1zdWJqZWN0cyBBTk9WQSAoSVY6IFNtYXJ0cGhvbmUgTG9jYXRpb247IERWOiBDQlMgcGVyZm9ybWFuY2UpCiMjIE9WRVJBTEwKYW5vdmFfbmV3IDwtIGV6QU5PVkEoCiAgZGF0YSA9IG5ld19kYXRhCiAgLCBkdiA9IC4oQ0JTX292ZXJhbGwpCiAgLCB3aWQgPSAuKHBhcnRpY2lwYW50KQogICwgYmV0d2VlbiA9IC4oY29uZGl0aW9uKQogICwgdHlwZSA9IDMgIyB1bmVxdWFsIHNhbXBsZSBzaXplcwogICwgZGV0YWlsZWQgPSBUUlVFCiAgLCByZXR1cm5fYW92ID0gVFJVRQogICkKCmdncXFwbG90KGFub3ZhX25ldyRhb3YkcmVzaWR1YWxzLCB5bGFiID0gIkNCUyIsIHNoYXBlID0gMSkKCnFwbG90KGFub3ZhX25ldyRhb3YkcmVzaWR1YWxzLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBPc3BhbiBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IC43KSArIHRoZW1lX2NsYXNzaWMoKQoKa2FibGUoYXMubnVtZXJpYyh1bmxpc3Qoc2hhcGlyby50ZXN0KGFub3ZhX25ldyRhb3YkcmVzaWR1YWxzKSlbMToyXSksIGNhcHRpb24gPSAiU0hBUElSTyIsIGRpZ2luZXcgPSA0LCBhbGlnbiA9ICdjJykgJT4lCiAgIyBrYWJsZV9zdHlsaW5nKGJvb25ld3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCmthYmxlKHVubGlzdChsZXZlbmVUZXN0KGRhdGEgPSBuZXdfZGF0YSwgQ0JTX292ZXJhbGwgfiBjb25kaXRpb24sIGNlbnRlciA9IG1lYW4pKVtjKDE6MywgNSldLCBjYXB0aW9uID0gIkxFVkVORVMiLCBkaWdpbmV3ID0gNCwgYWxpZ24gPSAnYycpICU+JQogICMgcm93X3NwZWMoMCwgYm9sZCA9IFQpICU+JSAKICAjIGthYmxlX3N0eWxpbmcoYm9vbmV3dHJhcF9vcHRpb25zID0gInN0cmlwZWQiLCAiaG92ZXIiLCBmdWxsX3dpZHRoID0gRikgJT4lIAogIGthYmxlX2NsYXNzaWMoKQoKa2FibGUoYW5vdmFfbmV3JEFOT1ZBLCBjYXB0aW9uID0gIm5ldyAtIG9uZS13YXkgQU5PVkEgb24gT3NwYW4gQWJzb2x1dGUgU2NvcmUiLCBkaWdpbmV3ID0gNCwgYWxpZ24gPSAnYycpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUKSAlPiUgCiAgIyBrYWJsZV9zdHlsaW5nKGJvb25ld3RyYXBfb3B0aW9ucyA9ICJzdHJpcGVkIiwgImhvdmVyIiwgZnVsbF93aWR0aCA9IEYpICU+JSAKICBrYWJsZV9jbGFzc2ljKCkKCnBsb3QobmV3X2RhdGEkY29uZGl0aW9uLCBuZXdfZGF0YSRDQlNfb3ZlcmFsbCkKYGBgCkF0dGVtcHRpbmcgYSBiYXIgZmlnLCBub3QgZ3JlYXQsIGxpa2UgdGhlIHZpb2xpbnMgbW9yZS4uLiAKYGBge3J9Cgp4X3RlbXAgPC0gYW5vdmFfb3ZlcmFsbF9kYXRhICU+JSBzZWxlY3QoLXBhcnRpY2lwYW50KQogIGxvY2F0aW9uCiMgcGxvdCBiYXIgZ3JhcGggLSBHT09ECiMgYW5vdmFfb3ZlcmFsbF9iYXIgPC0gCiAgZ2dwbG90KHhfdGVtcCwgYWVzKHggPSBjb25kaXRpb24sIHkgPSBDQlNfb3ZlcmFsbCksIHNob3cubGVnZW5kID0gRkFMU0UpICsKICAjIGdncGxvdChvc3Bhbl9iYXJfZGF0YSwgYWVzKHggPSBsb2NhdGlvbiwgeSA9IHNjb3JlLCBmaWxsID0gcG93ZXIpLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJzdW1tYXJ5IiwgZnVuID0gbWVhbiwgcG9zaXRpb24gPSAiZG9kZ2UiKSArIAogICAgIyBndWlkZXMoc2hhcGUgPSBGQUxTRSkgKyAKICAjIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImNhZGV0Ymx1ZTMiLCAiZGVlcHNreWJsdWU0IikpICsgCiAgbGFicyh0aXRsZSA9ICJQZXJmb3JtYW5jZSBvbiB0aGUgT1NwYW4gVGFzayIsCiAgICAgICBzdWJ0aXRsZSA9ICJBdmVyYWdlIEFic29sdXRlIE9TcGFuIFNjb3JlIiwKICAgICAgIHggPSAiU21hcnRwaG9uZSBMb2NhdGlvbiIsIAogICAgICAgeSA9ICJTY29yZSIsIAogICAgICAgIyBmaWxsID0gIlNtYXJ0cGhvbmUgUG93ZXIiLAogICAgICAgY2FwdGlvbiA9ICJOb3RlOiBTY29yZSBpcyB0aGUgbnVtYmVyIG9mIGNvcnJlY3QgbGV0dGVycyByZWNhbGxlZCBiYXNlZCBcbiBvbiBpZiBhbGwgbGV0dGVycyBpbiBhIGdpdmVuIGJsb2NrIHdlcmUgcmVjYWxsZWQgY29ycmVjdGx5LiIpICsKICAgICAgICAjIHRoZSAiXG4iIGhlcmUgZGVub3RlIHRoYXQgeW91IHdhbnQgYSBuZXcgbGluZSBmb3JtZWQgaW4gdGhlIHRleHQKICBzY2FsZV95X2NvbnRpbnVvdXMobGltaXRzID0gYygtMiwgMikpICsKICAjc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjb2xzKSArCiAgIyBnZW9tX3BvaW50KHN0YXQgPSAiaWRlbnRpdHkiLCBhZXMoY29sb3IgPSBDQlNfb3ZlcmFsbCksIHNpemUgPSAxLCAKICAjICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXJkb2RnZShqaXR0ZXIud2lkdGggPSAuNTMpLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoImRlZXBza3libHVlNCIsICJwdXJwbGU0IikpICsgCiAgZ2VvbV9wb2ludChzdGF0PSJzdW1tYXJ5IiwgZnVuPW1lYW4sIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2UoLjkpLCBzaXplID0gMS41LCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZ2VvbV9lcnJvcmJhcihkYXRhID0gYW5vdmFfb3ZlcmFsbF9kYXRhLCBzdGF0ID0gInN1bW1hcnkiLCBmdW5taW4gPSBmdW5jdGlvbih4KSBtZWFuKHgpIC0gc2QoeCkvc3FydChsZW5ndGgoeCkpLCAKICAgICAgICAgICAgICAgIGZ1bm1heCA9IGZ1bmN0aW9uKHgpIG1lYW4oeCkgKyBzZCh4KS9zcXJ0KGxlbmd0aCh4KSksIHNpemU9IC41LCB3aWR0aD0gLjI1LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKC45KSkgKwogIHRoZW1lX2NsYXNzaWMoKSArCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxNCwgZmFjZSA9ICJib2xkIiksIAogICAgICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMTMpLCAKICAgICAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLCBzaXplID0gMTIsIGZhY2UgPSAiaXRhbGljIiksCiAgICAgICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTMpKQoKIyBzaG93IGZpZwpvc3Bhbl9iYXIKCiMgZXhwb3J0IHBsb3QKIyBnZ3NhdmUoZmlsZW5hbWU9ImZpZ19vc3Bhbl9iYXIiLCBwbG90ID0gb3NwYW5fYmFyLCBkZXZpY2UgPSAicG5nIiwKIyAgICAgICAgaGVpZ2h0ID0gNSwgd2lkdGggPSA4LCB1bml0cyA9ICJpbiIsIGRwaSA9IDUwMCkKCgpnZ3Bsb3QoeF90ZW1wLCBhZXMoeCA9IGxvKSkKYGBgCgoKYGBge3J9CgogICMgIyB1c2Ugc2ltcGxpZmllZCBkYXRhCiAgIyBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKICAjICMgcGVyZm9ybSB0aGUgbG9uZz53aWRlIGZ1bmN0aW9uIGZvciBlYWNoIHBhcnRpY2lwYW50CiAgIyBncm91cF9ieShwYXJ0aWNpcGFudCkgJT4lIAogICMgIyBtYWtlIGRhdGEgd2lkZQogICMgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IGNvbmRpdGlvbiwgIyBWYXJpYWJsZSB3aG9zZSB2YWx1ZXMgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gY29sdW1uIG5hbWVzIC0tIGVudGVyIG11bHRpcGxlIHdpdGggImMoKSIKICAjICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gYyhDQlNfb3ZlcmFsbCkpICMgVmFyaWFibGUgd2hvc2UgdmFsdWVzIHdpbGwgcG9wdWxhdGUgdGhlIHRhYmxl4oCZcyBibG9jayBvZiBjZWxsIHZhbHVlcy4KICAjICMgcmVuYW1lICJVc2VyLkVtYWlsIiBhcyAicGFydGljaXBhbnQiIHRvIGxpbmsgZmlsZXMKIyAKIyBDQlNfb3ZlcmFsbF9kZXNrIDwtIAojICAgY2JpbmQobWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiMgICBmaWx0ZXIoY29uZGl0aW9uID09ICJkZXNrIikgJT4lIAojICAgc2VsZWN0KENCU19vdmVyYWxsKSAlPiUgCiMgICBwaXZvdF9sb25nZXIoZXZlcnl0aGluZygpKSwKIyAgIAojICAgbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiMgICBmaWx0ZXIoY29uZGl0aW9uID09ICJwb2NrZXQvYmFnIikgJT4lIAojICAgc2VsZWN0KENCU19vdmVyYWxsKSAlPiUgCiMgICBwaXZvdF9sb25nZXIoZXZlcnl0aGluZygpKSwgCiMgICAKIyAgIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAojICAgZmlsdGVyKGNvbmRpdGlvbiA9PSAib3V0c2lkZSIpICU+JSAKIyAgIHNlbGVjdChDQlNfb3ZlcmFsbCkgJT4lIAojICAgcGl2b3RfbG9uZ2VyKGV2ZXJ5dGhpbmcoKSkgCiMgICAgICAgICApCiMgCiMgIyMgdHVybiB5b3VyIGRhdGEgaW50byBhIHN0YW5kIGFsb25lIGRhdGFzZXQKIyBDQlNfb3ZlcmFsbF9kZXNrIDwtIAojIHBsb3QuZGF0X2Rlc2sgPC0gbWFpbl9hbGxfZGF0YV9maW5hbCAlPiUgCiMgICBkcGx5cjo6Z3JvdXBfYnkoY29uZGl0aW9uKSAlPiUgCiMgICBzcHJlYWQoQ0JTX292ZXJhbGwpCiMgICBzdW1tYXJpc2UoQ0JTX292ZXJhbGwpCiMgICBmaWx0ZXIoY29uZGl0aW9uID09ICJkZXNrIikgJT4lIAojICAgc2VsZWN0KENCU19vdmVyYWxsKSAlPiUgCiMgICBwaXZvdF9sb25nZXIoZXZlcnl0aGluZygpKSAKIyAKIyBwbG90LmRhdF9kZXNrIDwtIG1haW5fYWxsX2RhdGFfZmluYWwgJT4lIAojICAgZmlsdGVyKGNvbmRpdGlvbiA9PSAiZGVzayIpICU+JSAKIyAgIHNlbGVjdChDQlNfb3ZlcmFsbCkgJT4lIAojICAgcGl2b3RfbG9uZ2VyKGV2ZXJ5dGhpbmcoKSkgCiMgCiMgcGxvdC5kYXRfZGVzayA8LSBtYWluX2FsbF9kYXRhX2ZpbmFsICU+JSAKIyAgIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSAlPiUgCiMgICBzZWxlY3QoQ0JTX292ZXJhbGwpICU+JSAKIyAgIHBpdm90X2xvbmdlcihldmVyeXRoaW5nKCkpIAojIAojIAojICMjIGlkZW50aWZ5IHRoZSB2YWx1ZXMgZm9yIHRoZSB4LWF4aXMKIyB4diA8LSBjKC0yLCAtMSwgMCwgMSwgMikKIyAjIyBpZGVudGlmeSB0aGUgbWlkZGxlIHZhbHVlcyBmb3IgdGhlIHktdGljayBtYXJrcwojIHl2MSA8LSBjKC0uMDI1LC0uMDI1LC0uMDI1LC0uMDI1LC0uMDI1KQojIHl2MiA8LSBjKC0uMDY1LC0uMDY1LC0uMDY1LC0uMDY1LC0uMDY1KQojICMjIGlkZW50aWZ5IHRoZSB0cmFuc2Zvcm1hdGlvbnMgZm9yIHRoZSB0aWNrIG1hcmsgbGFiZWxzIG9uIG90aGVyIGF4ZXMKIyBydiA8LSB4diogc2QoYXNrX2RzJHBvaW50cykgKyBtZWFuKGFza19kcyRwb2ludHMpCiMgaXEgPC0geHYqMTUgKyAxMDAKIyAKIyAjIyBtYWtlIHRoZSBwbG90CiMgZ2dwbG90KCkgKyAKIyAgIGdlb21fZGVuc2l0eShkYXRhPXBsb3QuZGF0LCBhZXModmFsdWUsIGZpbGwgPSBuYW1lKSwgYWxwaGE9LjIpICsKIyAgICMjIGFkZCBhbiBhYmxpbmUgdGhhdCB3aWxsIHNlcnZlIGFzIHRoZSByYXcgZGF0YSBheGlzCiMgICBnZW9tX2FibGluZShzbG9wZT0wLCBpbnRlcmNlcHQ9LS4wMjUpICsgCiMgICAjIyBhZGQgc2VnbWVudHMgZm9yIHRoZSB0aWNrIG1hcmtzCiMgICBnZW9tX3NlZ21lbnQoYWVzKHg9eHYsIHk9eXYxIC0gLjAwNSwgeGVuZD14diwgeWVuZD15djEgKyAuMDA1KSkgKyAKIyAgICMjIGFkZCB0aGUgdGV4dCBsYWJlbHMKIyAgIGdlb21fdGV4dChhZXMoeD14diwgeSA9IHl2MSAtIC4wMTEsIGxhYmVsPXNwcmludGYoIiUuMmYiLCBydikpKSArIAojICAgIyMgcmVwZWF0IGEgYml0IGxvd2VyIGZvciB0aGUgSVEgYXhpcwojICAgZ2VvbV9hYmxpbmUoc2xvcGU9MCwgaW50ZXJjZXB0PS0uMDY1KSArIAojICAgZ2VvbV9zZWdtZW50KGFlcyh4PXh2LCB5PXl2MiAtIC4wMDUsIHhlbmQ9eHYsIHllbmQ9eXYyICsgLjAwNSkpICsgIAojICAgZ2VvbV90ZXh0KGFlcyh4PXh2LCB5ID0geXYyIC0gLjAxMSwgbGFiZWw9c3ByaW50ZigiJS4yZiIsIGlxKSkpICsgCiMgICAjIyBmb3JtYXQgdGhlIGFjdHVhbCB4LWF4aXMKIyAgIHNjYWxlX3hfY29udGludW91cyhicmVha3M9LTM6MywgbGFiZWxzPXBhcnNlKHRleHQ9cGFzdGUoLTM6MywgJypzaWdtYScpKSAsCiMgICAgICAgICAgICAgICAgICAgICAgIlN0YW5kYXJkIGRldmlhdGlvbiIpICsgCiMgICAjIyBhZGQgYSB5LWF4aXMgdG8gaWRlbnRpZnkgdGhlIHR3byBuZXcgc2NhbGVzLgojICAgc2NhbGVfeV9jb250aW51b3VzKHNlYy5heGlzID0gc2VjX2F4aXMofi4sIAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBjKC0uMDI1LCAtLjA2NSksIAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJSYXcgRGF0YSIsICJJUSIpKSkgKyAKIyAgICMjIHB1dCB0aGUgbGVnZW5kIG9uIHRvcCAtIHRoaXMga2VlcHMgaXQgZnJvbSBiZWluZyBwdXNoZWQgYXNpZGUgZm9yIHRoZSBzZWNvbmQKIyAgICMjIHktYXhpcyBsYWJlbHMuIAojICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJ0b3AiKQojIAojIGdncGxvdChkYXRhID0gbmV3X2RhdGEgJT4lIGZpbHRlcihjb25kaXRpb24gPT0gImRlc2siKSAlPiUgc2VsZWN0KENCU19vdmVyYWxsKSwgYWVzKHggPSBDQlNfb3ZlcmFsbCkpICsKIyAgIGdlb21fZGVuc2l0eSgpCgpnZ3Bsb3QoZGF0YSA9IG5ld19kYXRhLCBhZXMoeCA9IENCU19vdmVyYWxsLCBncm91cCA9IGNvbmRpdGlvbiwgZmlsbCA9IGNvbmRpdGlvbikpKwogIGdlb21fZGVuc2l0eShhZGp1c3QgPSAxLjUsIGFscGhhID0gLjQpICsgCiAgbGFicyh0aXRsZSA9ICJDQlMgT1ZFUkFMTCAtIE91dGxpZXJzIFJlbW92ZWQiKQoKZ2dwbG90KGRhdGEgPSBhbm92YV9vdmVyYWxsX2RhdGEsIGFlcyh4ID0gQ0JTX292ZXJhbGwsIGdyb3VwID0gY29uZGl0aW9uLCBmaWxsID0gY29uZGl0aW9uKSkrCiAgZ2VvbV9kZW5zaXR5KGFkanVzdCA9IDEuNSwgYWxwaGEgPSAuNCkgKyAKICBsYWJzKHRpdGxlID0gIkNCUyBPVkVSQUxMIC0gV2l0aCBPdXRsaWVycyIpCgpgYGAKCgojIyBPTEQgQU5BTFlTRVMKCiMjIFQtVGVzdCBmb3IgRG91YmxlIFRyb3VibGUgKGIvdyAnRGVzaycgYW5kICdPdXNpZGUnIGNvbmRpdGlvbnMpCiogUGVyZm9ybSBhc3N1bXB0aW9uIHRlc3RzLi4uCiAgLSBBc3N1bXB0aW9uIDE6IEFyZSB0aGUgdHdvIHNhbXBsZXMgaW5kZXBlbmRlbnRzPwogICAgICAtIFRoaXMgYXNzdW1wdGlvbiB3YXMgbWV0IGR1cmluZyB0ZXN0aW5nLgogIC0gQXNzdW1wdGlvbiAyOiBBcmUgdGhlIGRhdGEgZnJvbSBlYWNoIG9mIHRoZSAyIGdyb3VwcyBmb2xsb3cgYSBub3JtYWwgZGlzdHJpYnV0aW9uPwogICAgICAtIHNlZSBiZWxvdy4KICAtIEFzc3VtcHRpb24gMy4gRG8gdGhlIHR3byBwb3B1bGF0aW9ucyBoYXZlIHRoZSBzYW1lIHZhcmlhbmNlcz8KCmBgYHtyfQojIGNyZWF0ZSBkYXRhIGZyYW1lIHdpdGggRFQsIGNvbmRpdGlvbiwgYW5kIHBhcnRpY2lwYW50IE9OTFkKICAjIHVzaW5nIHNlcGFyYXRlIHZhbHVlcyBmb3JtZWQgaW4gdGhlIHF1ZXN0aW9ubmFpcmUgY29ycmVsYXRpb25zCnByZWxpbV9ob25fRFRfZGF0YSA9IGRhdGEuZnJhbWUocHJlbGltX2hvbl9EVF9wYXJ0aWNpcGFudCwgcHJlbGltX2hvbl9EVF9jb25kaXRpb24sIHByZWxpbV9ob25fRFRfc2NvcmUpCmNvbG5hbWVzKHByZWxpbV9ob25fRFRfZGF0YSkgPSBjKCJQYXJ0aWNpcGFudCIsICJDb25kaXRpb24iLCAiU2NvcmUiKQoKIyBBc3N1bXRpb24gMjogQXJlIHRoZSBkYXRhIGZyb20gZWFjaCBvZiB0aGUgMiBncm91cHMgZm9sbG93IGEgbm9ybWFsIGRpc3RyaWJ1dGlvbj8KIyBEZWZpbmUgdGhlIG1vZGVsOgpsaWJyYXJ5KHN0YXRzKQpwcmVsaW1faG9uX0RUX01vZDEgPSBsbShwcmVsaW1faG9uX0RUX2RhdGEkU2NvcmUgfiBwcmVsaW1faG9uX0RUX2RhdGEkQ29uZGl0aW9uKSAKCiMgQ2FsY3VsYXRlIHJlc2lkdWFsczoKCnByZWxpbV9ob25fRFRfUmVzMSA9IHJlc2lkKHByZWxpbV9ob25fRFRfTW9kMSkKCnFxbm9ybShwcmVsaW1faG9uX0RUX1JlczEsIG1haW4gPSAiUS1RIFBsb3Qgb2YgRG91YmxlIFRyb3VibGUgU2NvcmUgUmVzaWR1YWxzIikKcXFsaW5lKHByZWxpbV9ob25fRFRfUmVzMSkKYGBgCi0gVGhlIHJlc2lkdWFscyBhcHBlYXIgdG8gYmUgc2xpZ2h0bHkgcGxhdHlrdXJ0aWMuCgpgYGB7cn0KcXBsb3QocHJlbGltX2hvbl9EVF9SZXMxLCBtYWluID0gIkhpc3RvZ3JhbSBvZiBEb3VibGUgVHJvdWJsZSBTY29yZSBSZXNpZHVhbHMiLCBiaW53aWR0aCA9IDEpCmBgYAoKLSBUaGUgcmVzaWR1YWxzIGFwcGVhciB0byBmb2xsb3cgdGhlIHNoYXBlIG9mIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiwgdGhvdWdoIHRoZXkgc2VlbSB0byBiZSBzbGlnaHRseSBwbGF0eWt1cnRpYy4KCmBgYHtyfQpwcmVsaW1faG9uX0RUX1NoYXAxID0gc2hhcGlyby50ZXN0KHByZWxpbV9ob25fRFRfUmVzMSkKcHJlbGltX2hvbl9EVF9TaGFwMQpgYGAKCi0gQmFzZWQgb24gYW4gYWxwaGEgbGV2ZWwgb2YgLjA1LCB0aGUgYXNzdW1wdGlvbiBvZiBub3JtYWxpdHkgaXMgbm90IG1ldCBmb3IgZWl0aGVyOyBXID0gMC45NSwgcCA9IC4wMDIuIEFzIGEgcmVzdWx0LCByYXRoZXIgdGhhbiBwZXJmb3JtIGEgdC10ZXN0LCB3ZSB3aWxsIHVzZSB0aGUgbm9uLXBhcmFtZXRyaWMgV2lsY294b24tTWFubi1XaGl0bmV5IFRlc3QuCgoKKiBDb21wdXRlIHRoZSBXaWxjb3hvbi1NYW5uLVdoaXRuZXkgVGVzdApgYGB7cn0KbGlicmFyeShjb2luKQpwcmVsaW1faG9uX0RUX2RhdGExID0gZGF0YS5mcmFtZShwcmVsaW1faG9uX0RUX3BhcnRpY2lwYW50LCBhcy5mYWN0b3IocHJlbGltX2hvbl9EVF9jb25kaXRpb24pLCBwcmVsaW1faG9uX0RUX3Njb3JlKQpjb2xuYW1lcyhwcmVsaW1faG9uX0RUX2RhdGExKSA9IGMoIlBhcnRpY2lwYW50IiwgIkNvbmRpdGlvbiIsICJTY29yZSIpCgpwcmVsaW1faG9uX0RUX1cxID0gd2lsY294X3Rlc3QoZGF0YSA9IHByZWxpbV9ob25fRFRfZGF0YTEsIFNjb3JlIH4gQ29uZGl0aW9uLCBkaXN0cmlidXRpb24gPSAiZXhhY3QiKQpwcmVsaW1faG9uX0RUX1cxCmBgYAoKCi0gVGhlcmVmb3JlLCB0aGVyZSB3YXMgbm8gc2lnbmlmaWNuYXQgZGlmZmVyZW5jZSBpbiBEVCBzY29yZXMgYmV0d2VlbiBzbWFydHBob25lIGxvY2F0aW9ucyAoaS5lLiBkZXNrIGFuZCBvdXRzaWRlKSwgWiA9IC0wLjMzLCBwID0gLjc1LgoKKiBWaXN1YWxpemUgdGhlIERUIGFuYWx5c2lzIGluIGEgYmFyIGNoYXJ0CmBgYHtyfQojIGNyZWF0ZSBkYXRhIGZyYW1lIHdpdGggbG9jYXRpb24gY29uZGl0aW9ucyBhcyBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIGludGVyZ2VycyAKbWFpbl9XTVdfcGxvdCA9IHByZWxpbV9ob25fRFRfZGF0YTEKbWFpbl9XTVdfcGxvdFssMl0gPSByZWNvZGUobWFpbl9XTVdfcGxvdCRDb25kaXRpb24sICcxJyA9ICJPbiBEZXNrIiwgJzMnID0gIk91dHNpZGUiKQoKIyBwbG90IGJhciBncmFwaCAtIEdPT0QKZ2dwbG90KG1haW5fV01XX3Bsb3QsIGFlcyh4ID0gQ29uZGl0aW9uLCB5ID0gU2NvcmUsIGZpbGwgPSBDb25kaXRpb24pLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJzdW1tYXJ5IiwgZnVuLnkgPSAibWVhbiIsIHBvc2l0aW9uID0gImRvZGdlIiwgY29sb3VyID0gImJsYWNrIikgKyAKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJjYWRldGJsdWUzIiwgImRlZXBza3libHVlNCIpKSArIAogIGxhYnMoeCA9ICJTbWFydHBob25lIExvY2F0aW9uIiwgeSA9ICJBdmVyYWdlIFNjb3JlIikgKwogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKG1pbihtYWluX1dNV19wbG90JFNjb3JlKSwgbWF4KG1haW5fV01XX3Bsb3QkU2NvcmUpKSwgYnJlYWtzID0gKSArCiAgZ2d0aXRsZSgiQXZlcmFnZSBTY29yZSBvbiBEb3VibGUgVHJvdWJsZSIpICsKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9IGNvbHMpICsKICBnZW9tX3BvaW50KHN0YXQgPSAiaWRlbnRpdHkiLCBhZXMoY29sb3IgPSBDb25kaXRpb24pLCBzaXplID0gMS43NSwgCiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2ppdHRlcmRvZGdlKGppdHRlci53aWR0aCA9IC41MyksIHNob3cubGVnZW5kID0gRkFMU0UpICsKICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYygiZGVlcHNreWJsdWU0IiwgInB1cnBsZTQiKSkgKyAKICBnZW9tX3BvaW50KHN0YXQ9InN1bW1hcnkiLCBmdW4ueT0ibWVhbiIsIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2UoLjkpLCBzaXplID0gMiwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKwogIGdlb21fZXJyb3JiYXIoZGF0YSA9IG1haW5fV01XX3Bsb3QsIHN0YXQgPSAic3VtbWFyeSIsIGZ1bi55bWluID0gZnVuY3Rpb24oeCkgbWVhbih4KSAtIHNkKHgpL3NxcnQobGVuZ3RoKHgpKSwgCiAgICAgICAgICAgICAgICBmdW4ueW1heCA9IGZ1bmN0aW9uKHgpIG1lYW4oeCkgKyBzZCh4KS9zcXJ0KGxlbmd0aCh4KSksIHNpemU9IC41LCB3aWR0aD0gLjI1LCBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKC45KSkgKwogIHRoZW1lX2NsYXNzaWMoKQpgYGAKCgoK