diff --git a/Production/DESCRIPTION b/Production/DESCRIPTION deleted file mode 100644 index 28d81f11..00000000 --- a/Production/DESCRIPTION +++ /dev/null @@ -1,6 +0,0 @@ -Package: thinkCausal -Version: 0.1.0 -RoxygenNote: 7.1.1 -Encoding: UTF-8 -Suggests: - testthat diff --git a/Production/NAMESPACE b/Production/NAMESPACE deleted file mode 100644 index 838e8c86..00000000 --- a/Production/NAMESPACE +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -export(clean_auto_convert_logicals) -export(clean_detect_ZYX_columns) -export(clean_detect_column_types) -export(clean_detect_plot_vars) -export(clean_names) -export(convert_data_type_to_complex) -export(convert_data_type_to_simple) -export(create_datatable) -export(create_progress_bar) -export(create_script) -export(plot_DAG) -export(plot_exploration) -export(plot_variable_importance) -import(ggplot2) -importFrom(DT,datatable) -importFrom(GGally,ggpairs) -importFrom(dplyr,across) -importFrom(dplyr,mutate) -importFrom(tidyselect,where) diff --git a/Production/R/clean_auto_convert_logicals.R b/Production/R/clean_auto_convert_logicals.R deleted file mode 100644 index ede6c9ad..00000000 --- a/Production/R/clean_auto_convert_logicals.R +++ /dev/null @@ -1,37 +0,0 @@ -#' Convert all psuedo-logical columns in a dataframe to booleans -#' -#' Converts columns of a dataframe containing binary c(0, 1), c("T", "F"), c("True", "False") to boolean c(TRUE, FALSE). Is agnostic to case. -#' -#' @param input_data dataframe -#' -#' @author Joe Marlo -#' -#' @return dataframe -#' @export -#' -#' @examples -#' x <- data.frame( -#' zero_one = sample(0:1, 10, replace = TRUE), -#' TF = sample(c("T", "F"), 10, replace = TRUE), -#' truefalse = sample(c('true', 'false'), 10, replace = TRUE) -#' ) -#' clean_auto_convert_logicals(x) -clean_auto_convert_logicals <- function(input_data){ - # function converts columns of 0:1, T:F, True:False to logicals - - for (col in colnames(input_data)){ - - # is the column exclusively in list of pre-determined - inclusion_list <- c(0, 1, 't', 'f', 'true', 'false') - col_as_char <- as.character(input_data[[col]]) - col_cleaned <- base::tolower(unique(col_as_char)) - is_in_list <- length(setdiff(col_cleaned, inclusion_list)) == 0 - - # convert column to logical - if (isTRUE(is_in_list)){ - input_data[,col] <- readr::parse_logical(col_as_char) - } - } - - return(input_data) -} diff --git a/Production/R/clean_detect_ZYX_columns.R b/Production/R/clean_detect_ZYX_columns.R deleted file mode 100644 index 4244de44..00000000 --- a/Production/R/clean_detect_ZYX_columns.R +++ /dev/null @@ -1,83 +0,0 @@ -#' Attempt to detect which columns of a dataframe are Z, Y, and X -#' -#' Attempts to auto detect which columns are treatment, response, or ID columns. Treatment and response are detected based on column name alone; ID is based on column name and the values. If none are detected, then columns are categorized as 'X'. Will only return one item (the first) for Z, Y, and ID. -#' -#' @param .data a dataframe -#' -#' @author Joe Marlo -#' -#' @return a list denoting which column names are Z, Y, X, and ID -#' @export -#' -#' @examples -#' .data <- data.frame( -#' treatment = c(TRUE, TRUE, FALSE, TRUE, FALSE), -#' rsp = c(0.808, 0.296,-1.579,-1.272, 0.627), -#' ID = c(0.808, 0.296,-1.579,-1.272, 0.627), -#' dummyID = 1:5, -#' dummy1 = c(34, 35, 10, 5, 38) -#' ) -#' clean_detect_ZYX_columns(.data) -clean_detect_ZYX_columns <- function(.data) { - - # set list of potential column names to match - Z_potentials <- c("^Z_| ", "trt", "treat", "treatment") - Y_potentials <- c("^Y_| ", "response", "rsp") - ID_potentials <- c("^id") - all_col_names <- colnames(.data) - - # find Z column - Z_matches <- sapply(X = all_col_names, FUN = function(col){ - any( - stringr::str_detect( - string = col, - pattern = stringr::regex(Z_potentials, ignore_case = TRUE) - ) - ) - }) - Z <- all_col_names[Z_matches][1] - - # find Y columns - all_col_names_ex_Z <- setdiff(all_col_names, Z) - Y_matches <- sapply(X = all_col_names_ex_Z, FUN = function(col){ - any( - stringr::str_detect( - string = col, - pattern = stringr::regex(Y_potentials, ignore_case = TRUE) - ) - ) - }) - Y <- all_col_names_ex_Z[Y_matches][1] - - # find ID columns - all_col_names_ex_ZY <- setdiff(all_col_names, c(Z, Y)) - ID_matches <- sapply(X = all_col_names_ex_ZY, FUN = function(col){ - any( - stringr::str_detect( - string = col, - pattern = stringr::regex(ID_potentials, ignore_case = TRUE) - ) - ) - }) - ID <- all_col_names_ex_ZY[ID_matches][1] - # test if any columns are integers with spacing 1 - if (is.na(ID)) { - is_ID <- unlist(sapply(X = .data[, all_col_names_ex_ZY], FUN = function(col){ - is_ID <- FALSE - if (is.numeric(col)){ - is_ID <- all(table(diff(sort(col))) == 1) - } - return(is_ID) - })) - ID <- all_col_names_ex_ZY[is_ID][1] - } - - # defaults if none are found - if (isTRUE(is.na(Z))) Z <- NULL - if (isTRUE(is.na(Y))) Y <- NULL - if (isTRUE(is.na(ID))) ID <- NULL - X <- setdiff(all_col_names, c(Z, Y, ID)) - - matched_cols <- list(Z = Z, Y = Y, X = X, ID = ID) - return(matched_cols) -} diff --git a/Production/R/clean_detect_column_types.R b/Production/R/clean_detect_column_types.R deleted file mode 100644 index 6e88f4bc..00000000 --- a/Production/R/clean_detect_column_types.R +++ /dev/null @@ -1,31 +0,0 @@ -#' Return a list of the column types -#' -#' Categorizes the types of columns in a dataframe by categorical or continuous. -#' -#' @param .data a dataframe -#' -#' @return -#' @export -#' -#' @examples -#' X <- data.frame(X1 = 1:5, X2 = rnorm(5), X3 = LETTERS[1:5], X4 = as.factor(LETTERS[1:5])) -#' clean_detect_column_types(X) -clean_detect_column_types <- function(.data){ - - if (!isTRUE(is.data.frame(.data))) stop(".data must be a dataframe") - - # set the classes that are categorical vs continuous - classes_categorical <- c('logical', 'character', 'factor') - classes_continuous <- c('numeric', 'integer', 'complex') - - # split the column types by class - cols_by_class <- split(colnames(.data), sapply(.data, function(x) class(x)[1])) - - # organize the column names by categorical vs continuous - columns_categorical <- as.vector(unlist(cols_by_class[classes_categorical])) - columns_continuous <- as.vector(unlist(cols_by_class[classes_continuous])) - - column_types <- list(categorical = columns_categorical, continuous = columns_continuous) - - return(column_types) -} diff --git a/Production/R/clean_detect_plot_vars.R b/Production/R/clean_detect_plot_vars.R deleted file mode 100644 index 87cf6e36..00000000 --- a/Production/R/clean_detect_plot_vars.R +++ /dev/null @@ -1,77 +0,0 @@ -#' Determine which default columns to use in plot_exploration() -#' -#' @param .column_types a list containing names of categorical and continuous columns. Ideally from output of clean_detect_column_types(). -#' @param .treatment_column name of column denoting treatment -#' @param .response_column name of the outcome column -#' -#' @return a list denoting which columns to use in plotting -#' @export -#' -#' @seealso \code{\link{plot_exploration} \link{clean_detect_column_types}} -#' -#' @examples -#' X <- data.frame( -#' treatment = sample(as.logical(0:1), 5, TRUE), -#' response = rnorm(5), -#' X1 = 1:5, -#' X2 = rnorm(5), -#' X3 = LETTERS[1:5], -#' X4 = as.factor(LETTERS[1:5]) -#') -#' column_types <- clean_detect_column_types(X) -#' clean_detect_plot_vars(column_types, 'treatment', 'response') -clean_detect_plot_vars <- function(.column_types, .treatment_column, .response_column){ - - trt_in_types <- .treatment_column %in% unlist(.column_types) - outcome_in_types <- .response_column %in% unlist(.column_types) - if (!isTRUE(trt_in_types & outcome_in_types)) stop(".treatment_column and .response_column must be in .column_types") - - vars_categorical <- setdiff(.column_types$categorical, c(.treatment_column, .response_column)) - vars_continuous <- setdiff(.column_types$continuous, c(.treatment_column, .response_column)) - - n_categorical <- length(vars_categorical) - n_continuous <- length(vars_continuous) - - Y <- NULL - fill <- .treatment_column - shape <- "None" - size <- "None" - grouping <- "None" - facet <- "None" - - # TODO see brainstorm matrix in slack - if (.response_column %in% .column_types$continuous){ - Y <- .response_column - if (n_continuous > 0){ - plot_type <- 'Scatter' - X <- vars_continuous[1] - } else { - plot_type <- 'Boxplot' - X <- vars_categorical[1] - } - } else if (.response_column %in% .column_types$categorical){ - if (n_continuous > 0){ - plot_type <- 'Boxplot' - X <- vars_continuous[1] - grouping <- .treatment_column - } else { - plot_type <- 'Barplot' - X <- vars_continuous[1] - Y <- .response_column - facet <- .treatment_column - } - } else stop("Outcome is somehow not classifed as either continuous or categorical") - - plot_variables <- list( - plot_type = plot_type, - X = X, - Y = Y, - fill = fill, - shape = shape, - size = size, - grouping = grouping, - facet = facet - ) - - return(plot_variables) -} diff --git a/Production/R/clean_names.R b/Production/R/clean_names.R deleted file mode 100644 index 23679234..00000000 --- a/Production/R/clean_names.R +++ /dev/null @@ -1,50 +0,0 @@ -#' Clean a string for use in column names -#' -#' Cleans up strings for use as column names in dataframes. Makes the following changes: -#' \itemize{ -#' \item replaces non-ASCII characters with ASCII counterparts -#' \item replaces spaces with underscores -#' \item replaces percent sign with '_percent' -#' \item removes all punctuation except underscores and periods -#' \item adds 'n' to the beginning of strings that start with numeric characters -#' } -#' -#' @param .names -#' -#' @author Joe Marlo -#' -#' @return character vector -#' @export -#' -#' @examples -#' .names <- c("yes", "TRUE", "nope%", "98", 'Ábcdêãçoàúü', 'yep_-,.yep', 'hello goodbye') -#' clean_names(.names) -clean_names <- function(.names){ - - .names <- as.character(.names) - if (!isTRUE(is.character(.names))) stop(".names must be a character vector") - - # remove non-ASCII characters - .names <- base::iconv(.names, from = 'UTF-8', to = 'ASCII//TRANSLIT') - - # replace spaces with underscore - .names <- stringr::str_replace_all(string = .names, pattern = ' ', replacement = '_') - - # replace % with 'percent' - .names <- stringr::str_replace_all(string = .names, pattern = '%$', replacement = "_percent") - .names <- stringr::str_replace_all(string = .names, pattern = '^%', replacement = "percent_") - .names <- stringr::str_replace_all(string = .names, pattern = '%', replacement = "_percent_") - - # remove punctuation except underscore and period - pat <- "(?![._])[[:punct:]]" - .names <- stringr::str_replace_all(string = .names, pattern = pat, replacement = "") - - # add 'n' before numbers (names can't start with numbers) - .names <- as.character(sapply(.names, function(string){ - is_first_num <- base::substr(string, 1, 1) %in% 0:9 - if (isTRUE(is_first_num)) string <- paste0('n', string) - return(string) - })) - - return(.names) -} diff --git a/Production/R/convert_data_type_to_complex.R b/Production/R/convert_data_type_to_complex.R deleted file mode 100644 index baa7189a..00000000 --- a/Production/R/convert_data_type_to_complex.R +++ /dev/null @@ -1,99 +0,0 @@ -#' Convert human readable data type to R data -#' -#' The inverse of convert_data_type_to_simple(). Converts a dataframe to new data types based on human readable strings. -#' -#' @param .data a dataframe -#' @param .simple_data_types human readable data types from list("Categorical", "Binary", "Continuous"). Must be length == ncol(.data) -#' -#' @author Joe Marlo -#' -#' @return a dataframe with dim == dim(.data) -#' @export -#' -#' @seealso \code{\link{convert_data_type_to_simple}} -#' -convert_data_type_to_complex <- function(.data, .simple_data_types, new_levels){ - - if (!isTRUE(ncol(.data) == length(.simple_data_types))) stop('ncol(.data) must equal length(.simple_data_types)') - - # get raw data types - raw_data_types <- sapply(.data, class) - - # get simple col types specified by paired function - default_simple_col_types <- convert_data_type_to_simple(.data) - - # which ones don't match - which_cols_to_change <- which(!(.simple_data_types == default_simple_col_types)) - cols_to_change <- colnames(.data)[which_cols_to_change] - new_data_types <- .simple_data_types[which_cols_to_change] - - # make the datatype changes - # TODO: pickup here - mapply(cols_to_change, new_data_types, FUN = function(col_to_change, new_data_type){ - # .data[, col_to_change] <- - }) - - return(.data) -} - - -# n_row <- 10 -# my_character = sample(c('one', 'two', 'three'), size = n_row, replace = TRUE) -# my_logical = sample(c(TRUE, FALSE), size = n_row, replace = TRUE) -# my_numeric = rnorm(n_row) -# my_logical = sample(c(TRUE, FALSE), size = n_row, replace = TRUE) -# char_log <- sample(c('yes', 'no'), size = n_row, replace = TRUE) -# X <- data.frame(my_character = my_character, my_logical = my_logical, my_numeric = my_numeric, char_log = char_log) -# simple_types <- convert_data_type_to_simple(X) -# -# .data = X -# .simple_data_types = c("Categorical", "Binary", "Continuous", "Binary") -# -# # create mapping between complex and simple data types -# # note this should match the mapping in convert_data_type_to_simple -# data_type_mapping <- data.frame( -# complex = c("character", "factor", "logical", "numeric", "integer"), -# simple = c("Categorical", "Categorical", 'Binary', "Continuous", "Continuous"), -# conversion_function = c(deparse(as.character), deparse(as.character), deparse(as.logical), deparse(as.numeric), deparse(as.numeric)), -# stringsAsFactors = FALSE -# ) -# -# # get simple data -# simple_data_types <- dplyr::left_join( -# x = data.frame(complex = as.vector(raw_data_types)), -# y = data_type_mapping, -# by = 'complex')$simple -# -# # get raw data types -# raw_data_types <- sapply(.data, class) -# -# # get simple col types specified by paired function -# default_simple_col_types <- convert_data_type_to_simple(.data) -# -# # which ones don't match -# which_cols_to_change <- which(!(.simple_data_types == default_simple_col_types)) -# cols_to_change <- colnames(.data)[which_cols_to_change] -# new_data_types <- .simple_data_types[which_cols_to_change] -# -# # make the datatype changes -# for (i in seq_along(new_data_types)){ -# col_to_change <- cols_to_change[i] -# new_data_type <- new_data_types[i] -# -# # prompt user for input if necessary -# # TODO: I think this should be outside of the function; the user should be prompted within -# # shiny server and results passed as an argument to this function via new_levels -# -# -# # get function to convert to new datatype -# new_complex_data_type <- data_type_mapping$conversion_function[data_type_mapping$simple == new_data_type][[1]] -# conversion_function <- eval(parse(text = new_complex_data_type)) -# -# # make the change -# .data[, col_to_change] <- conversion_function(.data[, col_to_change]) -# } -# -# get_levels <- function(type){ -# # -# } - diff --git a/Production/R/convert_data_type_to_simple.R b/Production/R/convert_data_type_to_simple.R deleted file mode 100644 index 585272e5..00000000 --- a/Production/R/convert_data_type_to_simple.R +++ /dev/null @@ -1,40 +0,0 @@ -#' Simplify data types for humans -#' -#' Categorizes R data types into 'Continuous', 'Categorical', or 'Binary' -#' -#' @param .data dataframe -#' -#' @author Joe Marlo -#' -#' @return character vector of length ncol(.data) -#' @export -#' -#' @seealso \code{\link{convert_data_type_to_complex}} -#' -#' @examples -#' n_row <- 10 -#' my_character = sample(c('one', 'two', 'three'), size = n_row, replace = TRUE) -#' my_logical = sample(c(TRUE, FALSE), size = n_row, replace = TRUE) -#' my_numeric = rnorm(n_row) -#' X <- data.frame(my_character = my_character, my_logical = my_logical, my_numeric = my_numeric) -#' convert_data_type_to_simple(X) -convert_data_type_to_simple <- function(.data){ - - # get raw data types - raw_data_types <- base::sapply(.data, class) - - # create mapping between complex and simple data types - data_type_mapping <- data.frame( - complex = c("character", "factor", "logical", "numeric", "integer"), - simple = c("Categorical", "Categorical", 'Binary', "Continuous", "Continuous"), - stringsAsFactors = FALSE - ) - - # get simple data - simple_data_types <- dplyr::left_join( - x = data.frame(complex = as.vector(raw_data_types)), - y = data_type_mapping, - by = 'complex')$simple - - return(simple_data_types) -} diff --git a/Production/R/create_datatable.R b/Production/R/create_datatable.R deleted file mode 100644 index d59a8865..00000000 --- a/Production/R/create_datatable.R +++ /dev/null @@ -1,44 +0,0 @@ -#' Create a pretty datatable -#' -#' Create an HTML datatable using the JavaScript library DataTables. This is a wrapper around DT::datatable with commonly used arguments set as defaults. -#' -#' @param .data a dataframe -#' @param digits number of digits to round continuous columns to -#' @param ... arguments to be passed to DT::datatable. Typically a dataframe -#' @author Joe Marlo -#' -#' @return HTML datatable -#' @export -#' -#' @importFrom dplyr mutate across -#' @importFrom tidyselect where -#' @importFrom DT datatable -#' -#' @examples -#' X <- data.frame(x = 1:10, y = 1:10) -#' create_datatable(X) -#' -#' ## within Shiny -#' # UI -#' #DT::dataTableOutput(outputId = tableId) -#' -#' # server -#' #output$tableId <- DT::renderDataTable(create_datatable(X)) -create_datatable <- function(.data, digits = 3, ...){ - - .data %>% - mutate(across(where(is.double), ~round(.x, digits = digits))) %>% - DT::datatable( - ..., - rownames = FALSE, - options = list( - pageLength = 20, - # sets n observations shown - lengthChange = FALSE, - # removes option to change n observations shown - sDom = '<"top">lrt<"bottom">ip', - # removes the search bar - scrollX = TRUE # enable side scroll so table doesn't overflow - ) - ) -} diff --git a/Production/R/create_progress_bar.R b/Production/R/create_progress_bar.R deleted file mode 100644 index 08fad96b..00000000 --- a/Production/R/create_progress_bar.R +++ /dev/null @@ -1,29 +0,0 @@ -#' Create a progress bar -#' -#' Create a bootstrap HTML progress bar filled. `progress` specifies the fill percentage of the bar. -#' -#' @param progress integer between 0 and 100 representing the fill percentage -#' @author Joe Marlo -#' -#' @return HTML -#' @export -#' -#' -#' @examples -#' create_progress_bar(80) -create_progress_bar <- function(progress) { - # returns the html to create a bootsrap progress bar filled to the progress amount - # TODO: change fill color - #https://getbootstrap.com/docs/4.4/components/progress/ - tags$div( - class = 'progress', - tags$div( - class = "progress-bar progress-bar-striped progress-bar-animated bg-info", - role = "progressbar", - style = paste0("width: ", progress, "%"), - 'aria-valuenow' = as.character(progress), - 'aria-valuemin' = "0", - 'aria-valuemax' = "100" - ) - ) -} diff --git a/Production/R/create_script.R b/Production/R/create_script.R deleted file mode 100644 index a935bc15..00000000 --- a/Production/R/create_script.R +++ /dev/null @@ -1,80 +0,0 @@ -#' Build a reproducible script which mimics the thinkCausal work-flow -#' -#' @return string -#' @export -#' -#' @examples -#' create_script( -#' uploaded_file_name = 'test.csv', -#' uploaded_file_type = 'csv', -#' uploaded_file_header = 'TRUE', -#' uploaded_file_delim = ',', -#' selected_columns = c("Z", "Y", "X1", 'X2', "X3"), -#' column_names = c("treatment", "response", "covariate1", "covariate2", "covariate3"), -#' estimand = 'att', -#' common_support = 'none' -#' ) -create_script <- function(uploaded_file_name, uploaded_file_type, uploaded_file_header, uploaded_file_delim, selected_columns, column_names, estimand, common_support){ - - # choose which file readr was used - file_readr <- switch( - uploaded_file_type, - csv = paste0("readr::read_csv(file = '", uploaded_file_name, "', col_names = ", uploaded_file_header, ")"), - dta = paste0("readstata13::read.dta13(file = '", uploaded_file_name, "')"), - xlsx = paste0("xlsx::read.xlsx(file = '", uploaded_file_name, "')"), - txt = paste0("readr::read_delim(file = '", uploaded_file_name, "', delim = ", uploaded_file_delim, ", col_names = ", uploaded_file_header, ")"), - spss = paste0("Hmisc::spss.get(file = '", uploaded_file_name, "')") - ) - - # columns selected - selected_columns <- paste0("c('", paste0(selected_columns, collapse = "', '"), "')") - column_names <- paste0("c('", paste0(column_names, collapse = "', '"), "')") - - # add data type changes - - # construct strings for each section - script_head <- paste0( - "library(tidyverse)", "\n", - "library(bartCause)", "\n", - "library(plotBart) #devtools::install_github('joemarlo/plotBart')", "\n", - "source('clean_auto_convert_logicals.R')", - "\n\n" - ) - - script_data_munge <- paste0( - "# select columns and rename", "\n", - "X <- ", file_readr, "\n", - "X <- X[, ", selected_columns, "]", "\n", - "colnames(X) <- ", column_names, "\n", - "X <- clean_auto_convert_logicals(X)", - "\n\n" - ) - - script_model <- paste0( - "# run model", "\n", - "treatment_v <- X[, 1]", "\n", - "response_v <- X[, 2]", "\n", - "confounders_mat <- as.matrix(X[, 3:ncol(X)])", "\n", - "model_results <- bartCause::bartc( - response = response_v, - treatment = treatment_v, - confounders = confounders_mat, - estimand = '", estimand, "', - commonSup.rule = '", common_support, "'\n", - ")", - "\n\n" - ) - - script_plots <- paste0( - "# plot results and diagnostics", "\n", - "plot_ITE(model_results) + labs(title = 'My individual treatment effects')", "\n", - "plot_trace(model_results)", "\n", - "plot_diagnostic_common_support(model_results, .rule = '", common_support, "')", - "\n" - ) - - # combine into one string - script <- paste0(script_head, script_data_munge, script_model, script_plots) - - return(script) -} diff --git a/Production/R/ggplot_settings.R b/Production/R/ggplot_settings.R deleted file mode 100644 index bacbfecb..00000000 --- a/Production/R/ggplot_settings.R +++ /dev/null @@ -1,18 +0,0 @@ -# default theme is set on load by input$settings_options_ggplot_theme - -# set default continuous colors -options( - ggplot2.continuous.colour = "viridis", - ggplot2.continuous.fill = "viridis" -) - -# set default discrete colors -scale_colour_discrete <- function(...) { - viridis::scale_color_viridis(..., discrete = TRUE) -} -scale_color_discrete <- function(...) { - viridis::scale_color_viridis(..., discrete = TRUE) -} -scale_fill_discrete <- function(...) { - viridis::scale_fill_viridis(..., discrete = TRUE) -} diff --git a/Production/R/make_data_demo.R b/Production/R/make_data_demo.R deleted file mode 100644 index 55fdb2fc..00000000 --- a/Production/R/make_data_demo.R +++ /dev/null @@ -1,21 +0,0 @@ -# example data set for demo -make_dat_demo <- function(n = 400){ - inv.log <- function(x){exp(x*.8)/(1 + exp(x*.8))} - X <- runif(n, min = 0,max = 2) - X2 <- rnorm(n, -2, 5) - prob <- inv.log((-2 + (X^2))) - Z <- rbinom(n, 1, prob) - A <- matrix(runif(4), 2, 2) - A <- A %*% t(A) - diag(A) <- 1 - Sigma <- A - X3 <- MASS::mvrnorm(n, rep(2, 2), Sigma)[, 1] - X4 <- MASS::mvrnorm(n, rep(2, 2), Sigma)[, 2] - Y0 <- 2*X + .8*X2 + rnorm(n, 0, 1) - Y1 <- 2*X + 3*(X^2) + .8*X2 + rnorm(n, 0, 1) - df <- data.frame(X, prob, Z, Y0, Y1, X2, X3, X4) - df <- df %>% mutate(Y = if_else(Z ==1, Y1, Y0)) - df <- df %>% dplyr::select(-c(Y0, Y1, prob)) - return(df) -} - diff --git a/Production/R/modules/eda_module.R b/Production/R/modules/eda_module.R deleted file mode 100644 index 21383cc7..00000000 --- a/Production/R/modules/eda_module.R +++ /dev/null @@ -1,259 +0,0 @@ -# this defines the eda plotting on the analysis tab -# TODO: think about smart defaults (both default columns and default plot type) - -edaUI <- function(id, col_names, categorical_names) { - ns <- NS(id) - - tagList( - sidebarLayout( - sidebarPanel( - width = 4, - h4("Explore the data using scatter plots, histograms, density plots, and boxplots"), - br(), - selectInput( - inputId = ns("analysis_eda_select_plot_type"), - label = "Plot type:", - multiple = FALSE, - choices = c("Pairs", "Scatter", "Histogram", "Density", "Boxplot"), - selected = "Pairs" - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Pairs'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_pairs_vars"), - label = "Columns to plot", - multiple = TRUE, - choices = col_names, - selected = col_names - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type != 'Pairs'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_x"), - label = "X: ", - multiple = FALSE, - choices = col_names, - selected = col_names[1] - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Scatter'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_y"), - label = "Y: ", - multiple = FALSE, - choices = col_names, - selected = col_names[2] - ), - selectInput( - inputId = ns("analysis_eda_variable_fill"), - label = "Fill color: ", - multiple = FALSE, - choices = col_names, - selected = col_names[12] - ), - conditionalPanel( - condition = "input.analysis_eda_variable_fill == 'Cluster'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_cluster"), - label = "Clustering algorithm: ", - multiple = FALSE, - choices = c('k-means', 'Hierarchical'), - selected = 'k-means' - ), - sliderInput( - inputId = ns("analysis_eda_variable_n_clusters"), - label = "Number of clusters: ", - min = 2, - max = 10, - value = 4, - step = 1 - ), - HTML( - 'Clustering using only selected X and Y variables. Not recommended when faceting.

' - ) - ), - selectInput( - inputId = ns("analysis_eda_variable_size"), - label = "Size: ", - multiple = FALSE, - choices = col_names, - selected = col_names[4] - ), - selectInput( - inputId = ns("analysis_eda_variable_regression"), - label = "Linear regression: ", - multiple = FALSE, - choices = c('None', 'Include'), - selected = 'None' - ), - bsPopover(id = ns('analysis_eda_variable_regression'), - title = "Linear regression", - content = 'Apply a linear regression (y ~ x) to each subgroup of your plot. If you facet on a variable, then the regressions will be calculated per each facet group.', - placement = 'top'), - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Histogram'", - ns = ns, - sliderInput( - inputId = ns("analysis_eda_variable_n_bins"), - label = "Number of bins: ", - min = 5, - max = 50, - value = 20, - step = 1 - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Boxplot'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_group"), - label = "Grouping: ", - multiple = FALSE, - choices = categorical_names - ) - ), - selectInput( - inputId = ns("analysis_eda_variable_facet"), - label = "Facet variable: ", - multiple = FALSE, - choices = c("None", categorical_names), - selected = "None" - ), - bsPopover(id = ns('analysis_eda_variable_facet'), - title = "Facet variable", - content = 'Faceting splits the data by one or more variables and then plots these subsets.', - placement = 'top'), - conditionalPanel( - condition = "input.analysis_eda_variable_facet != 'None'", - ns = ns, - selectInput( - inputId = ns("analysis_eda_variable_facet_second"), - label = "Second facet variable: ", - multiple = FALSE, - choices = c("None"), - selected = "None" - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Scatter'", - ns = ns, - sliderInput( - inputId = ns("analysis_eda_variable_alpha"), - label = "Opacity: ", - min = 0.1, - max = 1, - value = 0.5, - step = 0.1 - ) - ) - ), - HTML('
Advanced options'), - checkboxInput(inputId = ns("analysis_eda_check_jitter"), - label = "Jitter the points?", - value = FALSE), - actionButton(inputId = ns("analysis_eda_button_download"), - label = "Download the plot"), - br(), - HTML('

'), - br(),br(), - div( - class = 'backNextContainer', - actionButton(inputId = ns("analysis_plots_descriptive_button_back"), - label = "Back"), - actionButton(inputId = ns("analysis_plots_descriptive_button_next"), - label = "Next") - ) - ), - - mainPanel( - width = 6, - br(), - absolutePanel(id = ns("analysis_eda_loading_message"), - HTML("Please wait. Building plot..."), - style = "z-index: -2;"), - plotOutput(outputId = ns('analysis_eda_plot'), - height = 600, - brush = brushOpts(id = ns("analysis_eda_plot_brush"))), - br(), - htmlOutput(outputId = ns("analysis_eda_brush_text")), - DT::dataTableOutput(outputId = ns("analysis_eda_brush_info")) - ) - ) - ) -} - -edaServer <- function(id, input_data) { - ns <- NS(id) - - moduleServer( - id, - function(input, output, session) { - - # build the exploration plots - output$analysis_eda_plot <- renderPlot({ - p <- plot_exploration( - .data = input_data, - .plot_type = input$analysis_eda_select_plot_type, - .x = input$analysis_eda_variable_x, - .y = input$analysis_eda_variable_y, - .fill = input$analysis_eda_variable_fill, - .fill_static = "#5c5980", - .size = input$analysis_eda_variable_size, - .alpha = input$analysis_eda_variable_alpha, - .vars_pairs = input$analysis_eda_variable_pairs_vars, - .n_bins = input$analysis_eda_variable_n_bins, - .jitter = input$analysis_eda_check_jitter, - .groups = input$analysis_eda_variable_group, - .facet = input$analysis_eda_variable_facet, - .facet_second = input$analysis_eda_variable_facet_second, - .include_regression = input$analysis_eda_variable_regression - ) - - return(p) - }) - - # text above the brush table - output$analysis_eda_brush_text <- renderText({ - - if (input$analysis_eda_variable_facet == "None" & input$analysis_eda_select_plot_type == 'Scatter') { - txt <- "

Highlight data points on the above plot to view their information below

" - } else { - txt <- NULL - } - - return(txt) - }) - - # table of brushed data points from plot - output$analysis_eda_brush_info <- DT::renderDataTable( - - # show only if there isn't faceting - if (input$analysis_eda_variable_facet == "None" & input$analysis_eda_select_plot_type == 'Scatter') { - - create_datatable( - brushedPoints(input_data, input$analysis_eda_plot_brush), - selection = "none" - ) - }) - - # update second facet options so user cannot double facet on the same variable - # b/c that causes an error - observeEvent(input$analysis_eda_variable_facet, { - if (input$analysis_eda_variable_facet != "None") { - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_facet_second", - choices = setdiff(c("None", categorical_names), input$analysis_eda_variable_facet) - ) - } - }) - } - ) -} - diff --git a/Production/R/plot_DAG.R b/Production/R/plot_DAG.R deleted file mode 100644 index 4b813465..00000000 --- a/Production/R/plot_DAG.R +++ /dev/null @@ -1,93 +0,0 @@ - -#' Plot a simple DAG -#' -#' @param Z_col string -#' @param Y_col string -#' @param X_cols string or list of strings -#' -#' @return ggplot object -#' @export -#' -#' @examples -#' plot_DAG("myZ", "myY", c("X1", "X2", "X3")) -plot_DAG <- function(Z_col, Y_col, X_cols){ - - validate_Z <- is.character(Z_col) & length(Z_col) == 1 - validate_Y <- is.character(Y_col) & length(Y_col) == 1 - validate_X <- is.character(Y_col) - if (isFALSE(all(c(validate_Z, validate_Y, validate_X)))) stop("Z, Y, X must be characters. Z and Y must be length 1") - - X_cols_label <- paste0(X_cols, collapse = '\n') - - font_size <- min(4, (1 / length(X_cols)) * 90) - height_rectangle <- min(1.5, ((length(X_cols) / 10) * 0.85)) - height_min_max <- c(0 - (height_rectangle/2), 0 + (height_rectangle/2)) - coordinates_rectangle <- tibble( - xmin = -0.90, - xmax = -0.60, - ymin = height_min_max[1], - ymax = height_min_max[2] - ) - - coordinates_circles <- tibble( - x = c(0, 0.75), - y = c(0, 0) - ) - - coordinates_arrows <- tibble( - x = c(-0.50, 0.25), - xend = c(-0.25, 0.50), - y = c(0, 0), - yend = c(0, 0) - ) - - coordinates_curve <- tibble( - x = -0.50, - xend = 0.50, - y = 0.25, - yend = 0.25 - ) - - coordinates_labels <- tibble( - label = c(Z_col, Y_col), - x = c(0, 0.75), - y = c(0, 0) - ) - - coordinates_labels_X <- tibble( - label = X_cols_label, - x = -0.75, - y = 0 - ) - - # plot it - p <- ggplot() + - geom_segment(data = coordinates_arrows, - aes(x = x, xend = xend, y = y, yend = yend), - lineend = 'round', linejoin = 'mitre', - size = 1.2, color = 'grey30', - arrow = arrow(length = unit(0.04, "npc"))) + - geom_curve(data = coordinates_curve, - aes(x = x, xend = xend, y = y, yend = yend), - lineend = 'round', - size = 1.2, color = 'grey30', - curvature = -0.2, - arrow = arrow(length = unit(0.04, "npc"))) + - geom_point(data = coordinates_circles, - aes(x = x, y = y), - shape = 21, size = 40, stroke = 1, - color = 'grey30', fill = NA) + - geom_rect(data = coordinates_rectangle, - aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax), - color = 'grey30', fill = NA) + - geom_text(data = coordinates_labels, - aes(x = x, y = y, label = label), - size = 4) + - geom_text(data = coordinates_labels_X, - aes(x = x, y = y, label = label), - size = font_size) + - coord_cartesian(xlim = c(-1, 1), ylim = c(-0.75, 0.75)) + - theme_void() - - return(p) -} diff --git a/Production/R/plot_cate.R b/Production/R/plot_cate.R deleted file mode 100644 index 15236cee..00000000 --- a/Production/R/plot_cate.R +++ /dev/null @@ -1,91 +0,0 @@ -#' Variable importance of Bayesian Additive Regression Trees -#' -#' Fit single regression tree on bartc() icates to produce variable importance plot & conditional effects plots. -#' -#' @param .model a model produced by bartCause::bartc() -#' @param confounders a character list of column names which should be considered the confounders. Must match the column names used to original fit .model. -#' @author George Perrett, Joe Marlo -#' @return a list containing variable importance plot & plots for each conditional effect -#' @export -#' -#' @import ggplot2 dplyr bartCause -#' @importFrom tidyr pivot_longer -#' @importFrom stats quantile reorder sd -#' -#' @examples -#' data(lalonde, package = 'arm') -#' confounders <- c('age', 'educ', 'black', 'hisp', 'married', 'nodegr') -#' model_results <- bartCause::bartc( -#' response = lalonde[['re78']], -#' treatment = lalonde[['treat']], -#' confounders = as.matrix(lalonde[, confounders]), -#' estimand = 'ate', -#' commonSup.rule = 'none' -#' ) -#' plot_cate_test(model_results, c('age', 'educ')) -plot_continuous_sub <- function(.model, grouped_on, rug = F){ - - # TODO: we need a smarter way to make these plots; it takes forever - # and the output is messy; can we have the user specify which ones - # they want to see? - - if (!is(.model, "bartcFit")) stop(".model must be of class bartcFit") - - # pull data from model - .data <- as.data.frame(.model$data.rsp@x) - if (!all(grouped_on %in% colnames(.data))) stop("confounders must be within the original data used to fit .model") - - - X_input <- as.matrix(.data[, grouped_on]) - - posterior <- bartCause::extract(.model, 'icate') %>% - as_tibble() - - .data <- .data[, grouped_on] %>% as_tibble() - names(.data) <- 'X' - - .data$icate.m <- apply(posterior, 2, mean) - - X <- rep(X_input, nrow(posterior)) - - posterior <- posterior %>% - mutate(draw = 1:nrow(posterior)) %>% - pivot_longer(cols = 1:length(posterior)) - - - posterior <- cbind.data.frame(posterior, X) - - if(rug == T){ - p <- ggplot() + - geom_smooth( - data = posterior, - aes(X, value, group = draw), - se = F, - color = 'grey60' - ) + - geom_smooth(data = .data, aes(X, icate.m), col = 'black') - } - - else{ - p <- ggplot() + - geom_smooth( - data = posterior, - aes(X, value, group = draw), - se = F, - color = 'grey60' - ) + - geom_smooth(data = .data, aes(X, icate.m), col = 'black') + - geom_rug(data = .data, aes(X)) - - } - - - return(p) -} - -# -# dat <- read_csv('data/IHDP_observational.csv') -# covs <- dat %>% dplyr::select(2:29) -# .model <- bartc(dat$y.obs, dat$treat, as.matrix(covs)) -# colnames(fit$data.rsp@x) -# plot_cate(fit, 're75') diff --git a/Production/R/plot_exploration.R b/Production/R/plot_exploration.R deleted file mode 100644 index c59875fe..00000000 --- a/Production/R/plot_exploration.R +++ /dev/null @@ -1,158 +0,0 @@ -#' General purpose plotting for EDA -#' -#' To be used programmatically. Not recommended for script/console use. -#' -#' @param .data typically store$selected_df -#' @param .plot_type one of c("Pairs", 'Scatter', 'Histogram', 'Density', 'Boxplot') -#' @param .x -#' @param .y -#' @param .fill -#' @param .fill_static -#' @param .size -#' @param shape -#' @param .alpha -#' @param .vars_pairs -#' @param .n_bins -#' @param .jitter -#' @param .groups -#' @param .facet -#' @param .facet_second -#' @param .include_regression one of c("Include", "None") -#' -#' @return -#' @export -#' -#' @seealso \code{\link{clean_detect_plot_vars}} -#' -#' @import ggplot2 -#' @importFrom GGally ggpairs -#' -#' @examples -#' library(arm) -#' data('lalonde', package = 'arm') -#' X <- lalonde -#' X <- dplyr::select(X, 'treat', 're78', 'age', 'educ', 'black', 'hisp', 'married', 'nodegr') -#' X <- clean_auto_convert_logicals(X) -#' plot_exploration( -#' .data = X, -#' .plot_type = 'Boxplot', #c("Pairs", 'Scatter', 'Histogram', 'Density', 'Boxplot'), -#' .x = 're78', -#' .y = 'age', -#' .fill = NULL, -#' .fill_static = "#5c5980", -#' .size = 'age', -#' .shape = 'None', -#' .alpha = 0.5, -#' .vars_pairs, -#' .n_bins = 30, -#' .jitter = FALSE, -#' .groups = 'None', -#' .facet = 'None', -#' .facet_second = 'None', -#' .include_regression = 'None' -#' ) -plot_exploration <- function(.data, - .plot_type = c("Pairs", 'Scatter', 'Histogram', "Barplot", 'Density', 'Boxplot'), - .x, - .y, - .fill, - .fill_static = "grey20", - .size, - .shape, - .alpha = 0.9, - .vars_pairs, - .n_bins, - .jitter, - .groups, - .facet, - .facet_second, - .include_regression = c("Include", "None")) { - - # convert "None"s to NULL - if (isTRUE(.fill == "None")) .fill <- NULL - .color <- .fill - if (isTRUE(.size == "None")) .size <- NULL - if (isTRUE(.shape == "None")) .shape <- NULL - - # create base ggplot object - p <- ggplot(.data, aes_string(x = sym(.x))) - - # pairs plot - if (.plot_type == 'Pairs'){ - p <- GGally::ggpairs(.data[, .vars_pairs]) - } - - # scatter - if (.plot_type == 'Scatter'){ - - if (.jitter){ - p <- p + - geom_jitter(aes_string(y = sym(as.character(.y)), - fill = if(is.null(.fill)) NULL else sym(.fill), - color = if(is.null(.color)) NULL else sym(.color), - size = if(is.null(.size)) NULL else sym(.size), - shape = if(is.null(.shape)) NULL else sym(.shape) - ), alpha = .alpha) - } else { - p <- p + - geom_point(aes_string(y = sym(as.character(.y)), - fill = if(is.null(.fill)) NULL else sym(.fill), - color = if(is.null(.color)) NULL else sym(.color), - size = if(is.null(.size)) NULL else sym(.size), - shape = if(is.null(.shape)) NULL else sym(.shape), - ), alpha = .alpha) - } - - # regression line - if(.include_regression == 'Include'){ - p <- p + geom_smooth( - aes_string(y = sym(.y)), - method = "lm", - formula = 'y ~ x', - color = "grey20" - ) - } - } - - # histogram - if (.plot_type == 'Histogram'){ - p <- p + geom_histogram(color = 'white', bins = .n_bins, - fill = .fill_static, alpha = 0.9) + - labs(y = NULL) - } - - # barplot - if (.plot_type == "Barplot"){ - p <- p + geom_bar(color = 'white', fill = .fill_static, alpha = 0.9) + - labs(y = "Count of observations") - } - - # density - if (.plot_type == 'Density'){ - p <- p + geom_density(fill = .fill_static, alpha = 0.5) + - labs(y = NULL) - } - - # boxplot - if (.plot_type == 'Boxplot'){ - p <- p + - geom_boxplot(fill = .fill_static, alpha = 0.5, - if(.groups != 'None') aes_string(y = sym(.groups)) - ) + - coord_flip() + - scale_y_discrete() - } - - # add faceting - if (.facet != "None"){ - - if (.facet_second == "None"){ - p <- p + facet_grid(sym(.facet), labeller = label_both) - } else { - p <- p + facet_grid(list(sym(.facet), sym(.facet_second)), - labeller = label_both) - } - } - - return(p) -} diff --git a/Production/R/plot_individual_effects.R b/Production/R/plot_individual_effects.R deleted file mode 100644 index c9762544..00000000 --- a/Production/R/plot_individual_effects.R +++ /dev/null @@ -1,43 +0,0 @@ -#' Single Regression Tree for exploratory heterogenious effects -#' -#' Fit single regression tree on bartc() icates to produce variable importance plot & table. -#' -#' @param .model a model produced by bartCause::bartc(). Typically store$model_results -#' @author George Perrett -#' @return a plot of ordered indivudal effects -#' @export - -plot_individual_effects <- function(.model, type = 'ordered'){ - if (!is(.model, "bartcFit")) stop(".model must be of class bartcFit") - - icate.m <- apply(extract(.model, 'icate'), 2, mean) - icate.sd <- apply(extract(.model, 'icate'), 2, sd) - icate.ub <- icate.m + 2*icate.sd - icate.lb <- icate.m - 2*icate.sd - icate <- tibble(icate.m, icate.ub, icate.lb) - - if(type == 'ordered'){ - icate <- icate %>% arrange(desc(icate.m)) - icate <- icate %>% mutate(icate.o = row_number()) - - p <- icate %>% - ggplot(aes(icate.o, icate.m)) + - geom_point(size = 1) + - geom_ribbon(aes(ymax = icate.ub, ymin = icate.lb), alpha = .5) + - labs(x = 'Effect Order', - y = 'Individual Treatment Effect', - title = 'Ordered Individual Treatment Effects', - subtitle = 'with 95% ci') - } - - if(type == 'histigram'){ - p <- icate %>% - ggplot(aes(icate.m)) + - geom_histogram()+ - labs(x = 'Individual Treatment Effect', - y = 'frequency', - title = 'Histigram of Individual Treatment Effects') - } - return(p) - -} diff --git a/Production/R/plot_pate.R b/Production/R/plot_pate.R deleted file mode 100644 index 1f38abc5..00000000 --- a/Production/R/plot_pate.R +++ /dev/null @@ -1,516 +0,0 @@ -#' Plot histogram of individual treatment effects -#' -#' Returns a ggplot ITE plot -#' -#' @param .model a model produced by bartCause::bartc() -#' @author George Perrett, Joe Marlo -#' -#' @return ggplot object -#' @export -#' -#' @import ggplot2 bartCause methods -#' @examples -#' data(lalonde, package = 'arm') -#' confounders <- c('age', 'educ', 'black', 'hisp', 'married', 'nodegr') -#' model_results <- bartCause::bartc( -#' response = lalonde[['re78']], -#' treatment = lalonde[['treat']], -#' confounders = as.matrix(lalonde[, confounders]), -#' estimand = 'ate', -#' commonSup.rule = 'none' -#' ) -#' plot_ITE(model_results) -plot_PATE <- function(.model, type = 'Histigram', ci_80 = F, ci_95 = F, reference = NULL, .mean = F, .median = F){ - - if (!is(.model, "bartcFit")) stop("Model must be of class bartcFit") - - # calculate stats - pate <- bartCause::extract(.model) - pate <- as_tibble(pate) - ub <- quantile(pate$value, .9) - lb <- quantile(pate$value, .1) - ub.95 <- quantile(pate$value, .975) - lb.95 <- quantile(pate$value, .025) - dd <- density(pate$value) - dd <- with(dd, data.frame(x, y)) - - # plot hist - if(type == 'Histigram'){ - - if(ci_80 == F & ci_95 == F & .mean == F & .median == F){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_histogram(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - if(ci_80 == F & ci_95 == F & .mean == T & .median == F){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_histogram(alpha = 0.8, fill = 'grey30') + - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - geom_vline(xintercept = reference)+ - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') + - theme(legend.title = element_blank()) - } - - if(ci_80 == F & ci_95 == F & .mean == F & .median == T){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_histogram(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') + - theme(legend.title = element_blank()) - } - - if(ci_80 == F & ci_95 == F & .mean == T & .median == T){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_density(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2,3)) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') + - theme(legend.title = element_blank()) - } - - if(ci_80 == T & ci_95 == T & .mean == F & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - - if(ci_80 == T & ci_95 == T & .mean == F & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == T & ci_95 == T & .mean == T & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == T & ci_95 == T & .mean == T & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - if(ci_80 == F & ci_95 == T & .mean == F & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_vline(xintercept = reference)+ - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - if(ci_80 == F & ci_95 == T & .mean == F & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == F & ci_95 == T & .mean == T & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == F & ci_95 == T & .mean == T & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb.95, xend = ub.95, y = 0, yend = 0, size = 1, color = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - if(ci_80 == T & ci_95 == F & .mean == F & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - if(ci_80 == T & ci_95 == F & .mean == F & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == T & ci_95 == F & .mean == T & .median == F){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - if(ci_80 == T & ci_95 == F & .mean == T & .median == T){ - p <- ggplot(pate, aes(value)) + - geom_histogram(fill = 'grey60') + - geom_segment(x = lb, xend = ub, y = 0, yend = 0, size = 2, color = 'grey10') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'frequency') - } - - - } - - if(type == 'Density'){ - - - if(ci_80 == F & ci_95 == F & .mean == F & .median == F){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_vline(xintercept = NULL, linetype = 'dashed', color = 'grey60') + - geom_density(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == F & ci_95 == F & .mean == T & .median == F){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_vline(xintercept = NULL, linetype = 'dashed', color = 'grey60') + - geom_density(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') + - theme(legend.title = element_blank()) - } - - if(ci_80 == F & ci_95 == F & .mean == F & .median == T){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_vline(xintercept = NULL, linetype = 'dashed', color = 'grey60') + - geom_density(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') + - theme(legend.title = element_blank()) - } - - if(ci_80 == F & ci_95 == F & .mean == T & .median == T){ - p <- pate %>% - ggplot(aes(x = value)) + - geom_vline(xintercept = NULL, linetype = 'dashed', color = 'grey60') + - geom_density(alpha = 0.8, fill = 'grey30') + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2,3)) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') + - theme(legend.title = element_blank()) - } - - if(ci_80 == T & ci_95 == T & .mean == F & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - - - if(ci_80 == T & ci_95 == T & .mean == F & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == T & ci_95 == T & .mean == T & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == T & ci_95 == T & .mean == T & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - - if(ci_80 == F & ci_95 == T & .mean == F & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - - if(ci_80 == F & ci_95 == T & .mean == F & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == F & ci_95 == T & .mean == T & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == F & ci_95 == T & .mean == T & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb.95 & x < ub.95), - aes(ymax = y), - ymin = 0, fill = "grey40", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - - if(ci_80 == T & ci_95 == F & .mean == F & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - - if(ci_80 == T & ci_95 == F & .mean == F & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == T & ci_95 == F & .mean == T & .median == F){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - scale_linetype_manual(values = c(2)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - if(ci_80 == T & ci_95 == F & .mean == T & .median == T){ - p <- ggplot(dd, aes(x, y)) + - geom_line() + - geom_ribbon(data = subset(dd, x > lb & x < ub), - aes(ymax = y), - ymin = 0, fill = "grey30", colour = NA, alpha = 0.8) + - geom_vline(xintercept = reference)+ - geom_vline(aes(xintercept = mean(pate$value), linetype = 'mean')) + - geom_vline(aes(xintercept = median(pate$value), linetype = 'median')) + - scale_linetype_manual(values = c(2, 3)) + - theme(legend.title = element_blank()) + - labs(title = 'Posterior of Average Treatment Effect', - x = 'ATE', - y = 'density') - } - - } - - return(p) -} - -# plot_PATE(fit, type = 'density', interval = .95, .mean = T, .median = T, reference = 0) + theme_bw() + -# theme(legend.position = c(0.1, 0.9), -# legend.title= element_blank()) - -#plot_PATE(fit,ci_80 = F, .mean = T, reference = NULL) diff --git a/Production/R/plot_single_tree.R b/Production/R/plot_single_tree.R deleted file mode 100644 index a4aba85d..00000000 --- a/Production/R/plot_single_tree.R +++ /dev/null @@ -1,21 +0,0 @@ -#' Single Regression Tree for exploratory heterogenious effects -#' -#' Fit single regression tree on bartc() icates to produce variable importance plot & table. -#' -#' @param .model a model produced by bartCause::bartc(). Typically store$model_results -#' @param confounders matrix of confounders -#' @author George Perrett -#' @return a list containing variable importance plot & ordered table of confounders by scaled importance -#' @export - -plot_single_tree <- function(.model, confounders, depth = 2){ - if (!is(.model, "bartcFit")) stop(".model must be of class bartcFit") - if (!is.matrix(confounders)) stop("confounders must be of class matrix") - icate.m <- apply(extract(.model, 'icate'), 2, mean) - - # fit regression tree - cart <- rpart::rpart(icate.m ~ ., data = as.data.frame(confounders), maxdepth = depth) - - p <- rpart.plot(cart) - return(p) -} \ No newline at end of file diff --git a/Production/R/plot_variable_importance.R b/Production/R/plot_variable_importance.R deleted file mode 100644 index c4e0365c..00000000 --- a/Production/R/plot_variable_importance.R +++ /dev/null @@ -1,57 +0,0 @@ -#' Variable importance of Bayesian Additive Regression Trees -#' -#' Fit single regression tree on bartc() icates to produce variable importance plot & table. -#' -#' @param .model a model produced by bartCause::bartc(). Typically store$model_results -#' @param confounders matrix of confounders -#' @author George Perrett, Joe Marlo -#' @return a list containing variable importance plot & ordered table of confounders by scaled importance -#' @export - -plot_variable_importance <- function(.model, confounders, out = 'all'){ - - if (!is(.model, "bartcFit")) stop(".model must be of class bartcFit") - if (!is.matrix(confounders)) stop("confounders must be of class matrix") - - # extract individual conditional effects - icate <- bartCause::extract(.model , 'icate') - icate.m <- apply(icate, 2, mean) - icate.sd <- apply(icate, 2, sd) - - # fit regression tree - cart <- rpart::rpart(icate.m ~ confounders) - - # save variable importance - importance <- cart$variable.importance/sum(cart$variable.importance)*100 - # names(importance) <- sub(".", "", names(importance)) - names(importance) <- sub("confounders", "", names(importance)) - - # enframe and clean data - importance_table <- importance %>% - as_tibble() %>% - mutate(Variable = names(importance)) %>% - dplyr::select(Variable, value) %>% - rename(Importance = value) %>% - arrange(desc(Importance)) - - # plot variable importance - importance_table_plt <- importance_table %>% slice(1:20) - p1 <- ggplot(importance_table_plt, aes(Importance, reorder(Variable, Importance))) + - geom_segment(aes(xend = 0, yend = Variable)) + - geom_point(size = 4) + - labs(x = 'Importance', y = 'Variable', title = 'Potential Moderators') - - if(out == 'all'){ - results(list(p1, importance_table)) - } - - if(out == 'plot'){ - results <- p1 - } - - if(out == 'table'){ - results <- data.frame(importance_table) - } - - return(results) -} \ No newline at end of file diff --git a/Production/UI/concepts/randomization_module.R b/Production/UI/concepts/randomization_module.R deleted file mode 100644 index d50275ec..00000000 --- a/Production/UI/concepts/randomization_module.R +++ /dev/null @@ -1,152 +0,0 @@ -# this defines the randomization page under Concepts - -randomizationUI <- function(id) { - ns <- NS(id) - tagList( - sidebarLayout( - sidebarPanel( - width = 5, - h3("Why do we randomize?"), - "Randomization balances groups on both observed and unobserved characteristics. See this for yourself. First set the x and y variables to observe.", - br(), br(), - selectInput( - inputId = ns("randomization_variable_x"), - label = "(Observed) x variable: ", - multiple = FALSE, - choices = setdiff(colnames(randomization_df), "treat"), - selected = setdiff(colnames(randomization_df), "treat")[1] - ), - selectInput( - inputId = ns("randomization_variable_y"), - label = "(Observed) y variable: ", - multiple = FALSE, - choices = setdiff(colnames(randomization_df), "treat"), - selected = setdiff(colnames(randomization_df), "treat")[3] - ), - "Now select which datapoints to include in the treatment group by clicking on points in the plot. Assign only younger people to treatment. How do the unobserved univariate densities compare between treatment and control?", - br(), br(), - "Now randomize the selections using the below button. How do the densities compare now?", - br(), br(), - actionButton(inputId = ns('randomize_button'), - label = "Randomize the treatment assignment"), - br(), br(), - actionButton(inputId = ns('randomize_reset_button'), - label = "Reset the treatment assignment"), - br(), br(), - HTML('
What is this data?'), - HTML('
The data are simulated. The values and correlations are reasonable but please do not make any material conclusions from the data.
') - ), - mainPanel( - width = 7, - plotOutput(ns('randomization_plot'), - click = ns("randomization_plot_click")), - br(), - plotOutput(ns('randomization_tc_plot'), height = 500), - absolutePanel(id = ns("randomization_floating_box"), - class = "floating_message", - top = 50, left = "auto", right = 50, bottom = "auto", - width = "30%", height = "auto", draggable = FALSE, - "Click on points to assign them to treatment!") - ) - ) - ) -} - -randomizationServer <- function(id, plot_theme = ggplot2::theme_get) { - ns <- NS(id) - - moduleServer( - id, - function(input, output, session) { - - # initiate list of treatment observations - selected_points <- reactiveValues(row_names = NULL) - - observeEvent(input$randomization_plot_click, { - - # for each click on the plot, add or remove that data point from the list - # of selected data points - tryCatch({ - # capture the point form the user click - event_row <- rownames( - nearPoints( - randomization_df, - input$randomization_plot_click, - threshold = 15, - maxpoints = 1 - ) - ) - - if (event_row %in% selected_points$row_names) { - # remove point from selected list - selected_points$row_names <- setdiff(selected_points$row_names, event_row) - } else if (event_row %in% rownames(randomization_df)) { - # add point to selected list - selected_points$row_names <- c(selected_points$row_names, event_row) - # remove floating UI box - removeUI(selector = paste0("#", ns("randomization_floating_box"))) - } - }, - error = function(e) e) - - }) - - # randomize assignment when user clicks button - observeEvent(input$randomize_button, { - selected_points$row_names <- sample(rownames(randomization_df), size = round(nrow(randomization_df)/2)) - }) - - # remove assignment when user clicks button - observeEvent(input$randomize_reset_button, { - selected_points$row_names <- c() - }) - - # top plot - output$randomization_plot <- renderPlot({ - # create plot - p <- randomization_df %>% - dplyr::select(-treat) %>% - rownames_to_column() %>% - mutate(Group = if_else(rowname %in% selected_points$row_names, - 'Treatment', 'Control')) %>% - ggplot(aes_string(x = sym(input$randomization_variable_x), - y = sym(input$randomization_variable_y))) + - geom_point(aes(fill = Group), alpha = 0.7, size = 7, - color = 'black', pch = 21, stroke = 1) + - labs(fill = NULL) - - # add theme - p <- p + plot_theme() - - return(p) - }) - - # bottom plot - output$randomization_tc_plot <- renderPlot({ - - # create plot - p <- randomization_df %>% - dplyr::select(-treat) %>% - rownames_to_column() %>% - mutate(Group = if_else(rowname %in% selected_points$row_names, - 'Treatment', 'Control')) %>% - pivot_longer(cols = where(is.numeric)) %>% - ggplot(aes(x = value, group = Group, fill = Group)) + - geom_density(alpha = 0.5) + - scale_y_continuous(labels = NULL) + - facet_wrap(~name, scales = 'free', ncol = 3) + - labs(title = "Univariate densities of the observed and unobserved variables", - x = NULL, - y = NULL) + - theme(legend.position = 'none') - - # add theme - p <- p + plot_theme() - - return(p) - }) - } - ) -} - diff --git a/Production/UI/headers/analysis_header.R b/Production/UI/headers/analysis_header.R deleted file mode 100644 index 39d44088..00000000 --- a/Production/UI/headers/analysis_header.R +++ /dev/null @@ -1,9 +0,0 @@ -analysis_header <- navbarMenu( - title = 'Analysis', - data_page, - eda_page, - model_page, - diagnostics_page, - results_page, - moderator_page -) \ No newline at end of file diff --git a/Production/UI/headers/concepts_header.R b/Production/UI/headers/concepts_header.R deleted file mode 100644 index 35c506b9..00000000 --- a/Production/UI/headers/concepts_header.R +++ /dev/null @@ -1,15 +0,0 @@ -concepts_header <- navbarMenu( - title = 'Concepts', - concepts_page, - "-----", - tabPanel(title = "Test your understanding", - includeMarkdown(file.path("UI", "markdowns", 'concepts.md'))), - tabPanel(title = 'Randomization', - randomizationUI(id = "concepts_randomization")), - tabPanel(title = "Fundamental problem", - includeMarkdown(file.path("UI", "markdowns", 'concepts.md'))), - tabPanel(title = "Assumptions", - includeMarkdown(file.path("UI", "markdowns", 'concepts.md'))), - tabPanel(title = "Regression methods", - includeMarkdown(file.path("UI", "markdowns", 'concepts.md'))) - ) \ No newline at end of file diff --git a/Production/UI/headers/help_header.R b/Production/UI/headers/help_header.R deleted file mode 100644 index eb57d050..00000000 --- a/Production/UI/headers/help_header.R +++ /dev/null @@ -1 +0,0 @@ -help_header <- navbarMenu(title = 'Help') diff --git a/Production/UI/headers/reproducibility_header.R b/Production/UI/headers/reproducibility_header.R deleted file mode 100644 index eb102cf8..00000000 --- a/Production/UI/headers/reproducibility_header.R +++ /dev/null @@ -1,8 +0,0 @@ -reproducibility_header <- tabPanel( - title = 'Reproduce', - navlistPanel( - widths = c(2, 10), - log_page, - script_page - ) -) diff --git a/Production/UI/headers/settings_header.R b/Production/UI/headers/settings_header.R deleted file mode 100644 index a371bb26..00000000 --- a/Production/UI/headers/settings_header.R +++ /dev/null @@ -1,7 +0,0 @@ -settings_header <- tabPanel( - title = 'Settings', - navlistPanel( - widths = c(2, 10), - options_page - ) -) diff --git a/Production/UI/headers/welcome_header.R b/Production/UI/headers/welcome_header.R deleted file mode 100644 index 369dbfff..00000000 --- a/Production/UI/headers/welcome_header.R +++ /dev/null @@ -1,41 +0,0 @@ -welcome_header <- tabPanel( - title = 'Welcome', - mainPanel( - width = 12, - h2("thinkCausal"), - h3('Getting Started'), - p('Lorem ipsum dolor sit amet consectetur adipiscing elit netus posuere quisque ultricies, tempor habitasse ac risus ultrices egestas auctor eu aliquam sodales. Tempor molestie nisi nec venenatis tristique dui, semper tortor at eu mauris cubilia etiam, ligula diam consequat dictum pellentesque. In auctor sagittis etiam consequat potenti eget per scelerisque dictumst nascetur turpis vulputate, viverra cursus integer class dis posuere mollis pellentesque urna risus.'), - br(), - div(id = 'conceptsGridHome', - class = 'conceptsGrid', - fluidRow( - column(4, - wellPanel( - actionLink("welcome_link_concepts", img(src = 'thumbnails/randomization.png')), - br(), - h3("Learn"), - p("Interactivly learn the foundational concepts of casual inference and new methods for casual inference.") - ) - ), - column(4, - wellPanel( - actionLink("concepts_link_Fundamental problem", img(src = 'thumbnails/fundamental_problem.png')), - br(), - h3("Practice"), - p("Test your understanding of causal inference. Build confidence and identify opurtunities for growth.") - ) - ), - column(4, - wellPanel( - actionLink("welcome_link_Analysis", img(src = 'thumbnails/assumptions.png')), - br(), - h3("Fit"), - p("Unlock modern causal inference methods. Easily implement Bayesian Additive Regression Trees") - ) - ) - ) - ), - h3("What is thinkCausal?"), - includeMarkdown('UI/markdowns/landing.md') - ) -) \ No newline at end of file diff --git a/Production/UI/markdowns/concepts.md b/Production/UI/markdowns/concepts.md deleted file mode 100644 index 6ea61d7b..00000000 --- a/Production/UI/markdowns/concepts.md +++ /dev/null @@ -1,36 +0,0 @@ -### Concept 1 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis vitae et leo duis ut diam. Eget lorem dolor sed viverra ipsum nunc aliquet. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Odio facilisis mauris sit amet massa vitae tortor. Eu ultrices vitae auctor eu augue ut. Tempus urna et pharetra pharetra. Cursus turpis massa tincidunt dui. Mauris a diam maecenas sed. Consequat id porta nibh venenatis cras sed. Libero volutpat sed cras ornare arcu dui vivamus. Lorem ipsum dolor sit amet consectetur adipiscing elit. Id aliquet risus feugiat in ante. Dolor sit amet consectetur adipiscing elit ut. Vel quam elementum pulvinar etiam non quam. Egestas congue quisque egestas diam in arcu. - -Faucibus turpis in eu mi bibendum neque egestas congue. Mattis nunc sed blandit libero volutpat. At erat pellentesque adipiscing commodo elit at. Sed libero enim sed faucibus turpis in eu mi bibendum. Pretium aenean pharetra magna ac placerat vestibulum lectus mauris. Vel elit scelerisque mauris pellentesque. Dignissim convallis aenean et tortor at risus viverra adipiscing at. Pellentesque habitant morbi tristique senectus et netus et malesuada. Eu scelerisque felis imperdiet proin. Vehicula ipsum a arcu cursus vitae congue mauris rhoncus aenean. Ut tristique et egestas quis ipsum. - -Ut venenatis tellus in metus vulputate eu. Adipiscing commodo elit at imperdiet dui accumsan sit amet nulla. Rutrum quisque non tellus orci ac. Sed cras ornare arcu dui vivamus arcu. Elit pellentesque habitant morbi tristique senectus et netus et malesuada. Cursus sit amet dictum sit amet justo donec enim. Quis enim lobortis scelerisque fermentum. Dolor sit amet consectetur adipiscing elit pellentesque habitant. Suspendisse in est ante in nibh mauris cursus mattis molestie. Eget egestas purus viverra accumsan in nisl nisi scelerisque eu. Magna sit amet purus gravida. Pharetra pharetra massa massa ultricies mi quis hendrerit dolor. - -### Concept 2 -Iaculis at erat pellentesque adipiscing commodo. Vitae turpis massa sed elementum tempus. Nisi quis eleifend quam adipiscing. Montes nascetur ridiculus mus mauris vitae ultricies leo integer. Pharetra sit amet aliquam id diam maecenas ultricies mi. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. Sed libero enim sed faucibus turpis. Fermentum posuere urna nec tincidunt praesent semper. Euismod in pellentesque massa placerat duis ultricies. Lacus vestibulum sed arcu non odio euismod lacinia at. Ipsum faucibus vitae aliquet nec ullamcorper sit. Vel pharetra vel turpis nunc eget lorem. - -Pretium viverra suspendisse potenti nullam ac. Tempus urna et pharetra pharetra. Justo donec enim diam vulputate. Morbi non arcu risus quis varius quam quisque. Urna condimentum mattis pellentesque id nibh tortor id aliquet lectus. A diam maecenas sed enim ut sem viverra aliquet. Habitant morbi tristique senectus et netus et. At in tellus integer feugiat. Ut venenatis tellus in metus. Praesent elementum facilisis leo vel fringilla est ullamcorper eget nulla. Sed elementum tempus egestas sed sed risus pretium quam. Eu nisl nunc mi ipsum faucibus. Tristique senectus et netus et malesuada fames ac. Ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas. Libero id faucibus nisl tincidunt eget nullam non nisi. Adipiscing tristique risus nec feugiat in. Nec nam aliquam sem et. Accumsan sit amet nulla facilisi morbi. - -#### 2.1 -Et tortor consequat id porta. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Consequat id porta nibh venenatis cras sed felis. In tellus integer feugiat scelerisque. Fringilla ut morbi tincidunt augue interdum velit euismod in. Vestibulum lorem sed risus ultricies tristique nulla aliquet. Sapien et ligula ullamcorper malesuada proin libero nunc consequat. Et egestas quis ipsum suspendisse ultrices gravida dictum. Eget nullam non nisi est sit amet facilisis magna etiam. Mauris vitae ultricies leo integer malesuada nunc vel risus. Nisl condimentum id venenatis a condimentum vitae. Sodales neque sodales ut etiam sit amet. Euismod in pellentesque massa placerat duis ultricies lacus. Etiam non quam lacus suspendisse faucibus interdum. Vitae turpis massa sed elementum tempus egestas sed sed risus. Sem integer vitae justo eget magna fermentum iaculis. Placerat duis ultricies lacus sed turpis tincidunt id aliquet risus. Vitae sapien pellentesque habitant morbi. Commodo elit at imperdiet dui accumsan sit amet nulla. - -### Concept 3 -Mauris sit amet massa vitae tortor condimentum lacinia. Amet luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Morbi tristique senectus et netus et. Faucibus vitae aliquet nec ullamcorper sit. Sit amet consectetur adipiscing elit ut aliquam. Consectetur lorem donec massa sapien. Augue neque gravida in fermentum et sollicitudin ac orci phasellus. Imperdiet sed euismod nisi porta lorem mollis aliquam. Arcu odio ut sem nulla pharetra diam sit amet. Nisl vel pretium lectus quam id leo in vitae turpis. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt. Cras semper auctor neque vitae tempus quam. Semper risus in hendrerit gravida. Augue eget arcu dictum varius duis at consectetur. Malesuada nunc vel risus commodo. Facilisis gravida neque convallis a cras semper. Integer malesuada nunc vel risus commodo viverra maecenas. Interdum velit laoreet id donec ultrices tincidunt. Pretium nibh ipsum consequat nisl vel pretium lectus. Et odio pellentesque diam volutpat commodo sed egestas egestas. - -Varius sit amet mattis vulputate enim nulla aliquet porttitor. In tellus integer feugiat scelerisque varius morbi enim nunc faucibus. Egestas quis ipsum suspendisse ultrices. Phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor. Urna nunc id cursus metus aliquam eleifend mi. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Quam nulla porttitor massa id neque aliquam vestibulum. Volutpat commodo sed egestas egestas fringilla phasellus faucibus scelerisque. Sed libero enim sed faucibus. Vel fringilla est ullamcorper eget. Sit amet dictum sit amet justo donec enim diam vulputate. Tincidunt eget nullam non nisi est sit amet facilisis magna. - -#### Concept 3.1 -Senectus et netus et malesuada. Urna cursus eget nunc scelerisque viverra mauris. Arcu vitae elementum curabitur vitae nunc sed velit dignissim sodales. Convallis a cras semper auctor neque vitae tempus. Viverra justo nec ultrices dui sapien eget mi. Pellentesque adipiscing commodo elit at imperdiet dui accumsan. Etiam sit amet nisl purus in. Integer vitae justo eget magna. Nulla facilisi morbi tempus iaculis urna id. Ut morbi tincidunt augue interdum. Lacus viverra vitae congue eu consequat ac felis donec. - -#### Concept 3.2 -Tortor vitae purus faucibus ornare. Leo in vitae turpis massa sed elementum tempus. Ut morbi tincidunt augue interdum velit euismod. Fusce ut placerat orci nulla pellentesque. Consectetur a erat nam at lectus. Risus sed vulputate odio ut enim blandit volutpat maecenas volutpat. Cursus turpis massa tincidunt dui ut ornare lectus sit. In hac habitasse platea dictumst. Nisl nisi scelerisque eu ultrices vitae. Habitasse platea dictumst quisque sagittis purus sit amet. Consectetur lorem donec massa sapien. Porttitor massa id neque aliquam. - -Mauris augue neque gravida in fermentum. Enim blandit volutpat maecenas volutpat. Consectetur adipiscing elit ut aliquam purus sit amet luctus. At imperdiet dui accumsan sit amet nulla facilisi morbi. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Eleifend donec pretium vulputate sapien. Eu nisl nunc mi ipsum faucibus vitae. Morbi non arcu risus quis varius. Enim nulla aliquet porttitor lacus luctus accumsan. Neque vitae tempus quam pellentesque nec. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Quis vel eros donec ac odio. Donec et odio pellentesque diam volutpat commodo sed. - -### Concept 4 -Et egestas quis ipsum suspendisse ultrices gravida. Non nisi est sit amet facilisis magna etiam tempor. Tellus in metus vulputate eu scelerisque felis imperdiet proin fermentum. Amet consectetur adipiscing elit pellentesque habitant morbi. Nec feugiat in fermentum posuere. Tincidunt tortor aliquam nulla facilisi cras. Aliquam id diam maecenas ultricies mi eget mauris. Massa massa ultricies mi quis hendrerit dolor. In tellus integer feugiat scelerisque varius morbi. Lacinia at quis risus sed vulputate odio ut enim blandit. Convallis tellus id interdum velit laoreet id donec ultrices. - -In cursus turpis massa tincidunt dui ut ornare lectus sit. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Id aliquet lectus proin nibh nisl. Vitae tempus quam pellentesque nec nam aliquam sem. Quis viverra nibh cras pulvinar mattis nunc sed. Iaculis eu non diam phasellus vestibulum lorem sed. Elit duis tristique sollicitudin nibh sit. Nisl suscipit adipiscing bibendum est ultricies integer. Neque laoreet suspendisse interdum consectetur. Adipiscing diam donec adipiscing tristique risus nec feugiat in fermentum. Sit amet dictum sit amet justo. Fringilla est ullamcorper eget nulla. Magna sit amet purus gravida. Blandit aliquam etiam erat velit scelerisque in dictum non consectetur. Consequat mauris nunc congue nisi vitae suscipit tellus mauris. Sem fringilla ut morbi tincidunt augue interdum velit. Ut sem viverra aliquet eget sit. - -Purus sit amet volutpat consequat. Ut sem nulla pharetra diam sit amet. Commodo elit at imperdiet dui accumsan sit amet nulla. Nunc sed blandit libero volutpat sed cras ornare arcu dui. Facilisis magna etiam tempor orci. Platea dictumst quisque sagittis purus sit. Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Tristique nulla aliquet enim tortor at auctor. Feugiat pretium nibh ipsum consequat. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Maecenas accumsan lacus vel facilisis volutpat est velit. Mauris cursus mattis molestie a. Volutpat consequat mauris nunc congue nisi vitae suscipit tellus mauris. - -Blandit libero volutpat sed cras ornare arcu. Felis bibendum ut tristique et egestas quis. Turpis tincidunt id aliquet risus feugiat in ante. Urna nec tincidunt praesent semper feugiat nibh. Imperdiet proin fermentum leo vel orci. Faucibus nisl tincidunt eget nullam non nisi. Semper viverra nam libero justo. Feugiat in ante metus dictum at tempor commodo ullamcorper. Sed risus ultricies tristique nulla aliquet. Sed risus pretium quam vulputate. Lectus nulla at volutpat diam ut. Amet volutpat consequat mauris nunc congue nisi vitae suscipit. Risus nec feugiat in fermentum posuere urna. Diam maecenas sed enim ut sem viverra aliquet. Purus in massa tempor nec feugiat nisl pretium. diff --git a/Production/UI/markdowns/estimands.md b/Production/UI/markdowns/estimands.md deleted file mode 100644 index b1d86eb5..00000000 --- a/Production/UI/markdowns/estimands.md +++ /dev/null @@ -1,29 +0,0 @@ -## Estimands - -### ATE - -Lorem ipsum dolor sit amet consectetur adipiscing elit enim, morbi justo nisi lacus ornare placerat felis, cursus nam habitasse sed urna ut sapien. Aliquam phasellus orci sociis platea nibh enim, ornare varius per suscipit est faucibus, interdum blandit mattis netus cum. Vel consequat aliquam nisl est nascetur dignissim dictum iaculis, vulputate lacinia inceptos ultricies lobortis quisque neque. Pellentesque aptent elementum sagittis magna inceptos dignissim nunc pretium, euismod est mattis neque quisque ultricies maecenas orci, id sollicitudin sociosqu facilisi gravida nostra ullamcorper. - -### ATT - -Rutrum id litora velit aenean vestibulum vitae enim, mus phasellus sem fringilla habitant at consequat ultrices, morbi porta porttitor mi placerat commodo. Cubilia est nisl nulla eros leo potenti ligula fusce mi sagittis per fringilla, rhoncus montes scelerisque velit neque vivamus bibendum egestas purus lacinia. Praesent dignissim posuere mi sed hendrerit laoreet nibh, egestas aliquam aptent taciti feugiat maecenas, molestie enim ut tellus fusce etiam. Malesuada nascetur mollis odio penatibus parturient conubia blandit suscipit porta tempor orci vehicula, neque congue auctor donec ultricies suspendisse mattis ante condimentum risus. - -### ATC - -Mus metus class dapibus aliquam magnis arcu varius, pharetra sem congue placerat viverra molestie est, condimentum tincidunt donec inceptos vivamus euismod. Libero conubia et porttitor iaculis erat inceptos ante venenatis velit elementum ridiculus, commodo id dis sociosqu leo nullam convallis taciti fusce tortor, morbi condimentum suspendisse himenaeos non mollis nunc aliquam eros ligula. Semper dictum laoreet potenti vestibulum diam tristique commodo a, ad mi malesuada leo molestie justo congue neque mattis, vel ligula vitae risus nascetur facilisis himenaeos. - -
- -## Common Support Rule - -### None - -Sollicitudin justo porta massa sapien quisque nunc enim nullam, dui non habitasse sociis semper malesuada vulputate scelerisque facilisi, neque diam pulvinar metus suspendisse nostra pellentesque. Torquent sapien faucibus taciti eros penatibus pretium quisque aenean netus euismod facilisis, porttitor interdum eleifend erat posuere tellus laoreet eget tortor nec, a rutrum consequat diam sagittis fringilla tempus suscipit lacinia rhoncus. - -### Standard deviation - -Suspendisse sagittis nisi etiam quam fringilla venenatis, elementum dis nostra maecenas congue neque, ultricies pretium scelerisque massa ridiculus. Semper rhoncus duis fermentum aenean nisl varius fusce, consequat libero mauris convallis congue litora nullam suspendisse, dui habitant dictum inceptos primis natoque. Volutpat iaculis risus facilisis et sem fusce ridiculus nam velit porta torquent tortor, quam etiam nostra turpis proin dignissim pellentesque vivamus vulputate malesuada molestie. Morbi ante tortor rhoncus conubia pellentesque duis mus, nulla sagittis condimentum risus massa suspendisse placerat, nascetur dis dapibus praesent tristique inceptos. - -### Chi Squared Test - -Litora eleifend quisque nisl nullam in imperdiet sem tristique nunc, pretium fringilla felis urna vivamus quis mollis placerat lacus, maecenas sociis ridiculus auctor class ut rutrum id. Turpis porttitor vivamus nisi sociosqu habitasse scelerisque, urna eu inceptos quisque integer id, maecenas senectus ultrices eleifend fermentum. diff --git a/Production/UI/markdowns/help.md b/Production/UI/markdowns/help.md deleted file mode 100644 index d3281f49..00000000 --- a/Production/UI/markdowns/help.md +++ /dev/null @@ -1,51 +0,0 @@ -### Concept 1 -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis vitae et leo duis ut diam. Eget lorem dolor sed viverra ipsum nunc aliquet. Ipsum nunc aliquet bibendum enim facilisis gravida neque. Odio facilisis mauris sit amet massa vitae tortor. Eu ultrices vitae auctor eu augue ut. Tempus urna et pharetra pharetra. Cursus turpis massa tincidunt dui. Mauris a diam maecenas sed. Consequat id porta nibh venenatis cras sed. Libero volutpat sed cras ornare arcu dui vivamus. Lorem ipsum dolor sit amet consectetur adipiscing elit. Id aliquet risus feugiat in ante. Dolor sit amet consectetur adipiscing elit ut. Vel quam elementum pulvinar etiam non quam. Egestas congue quisque egestas diam in arcu. - -Faucibus turpis in eu mi bibendum neque egestas congue. Mattis nunc sed blandit libero volutpat. At erat pellentesque adipiscing commodo elit at. Sed libero enim sed faucibus turpis in eu mi bibendum. Pretium aenean pharetra magna ac placerat vestibulum lectus mauris. Vel elit scelerisque mauris pellentesque. Dignissim convallis aenean et tortor at risus viverra adipiscing at. Pellentesque habitant morbi tristique senectus et netus et malesuada. Eu scelerisque felis imperdiet proin. Vehicula ipsum a arcu cursus vitae congue mauris rhoncus aenean. Ut tristique et egestas quis ipsum. - -Ut venenatis tellus in metus vulputate eu. Adipiscing commodo elit at imperdiet dui accumsan sit amet nulla. Rutrum quisque non tellus orci ac. Sed cras ornare arcu dui vivamus arcu. Elit pellentesque habitant morbi tristique senectus et netus et malesuada. Cursus sit amet dictum sit amet justo donec enim. Quis enim lobortis scelerisque fermentum. Dolor sit amet consectetur adipiscing elit pellentesque habitant. Suspendisse in est ante in nibh mauris cursus mattis molestie. Eget egestas purus viverra accumsan in nisl nisi scelerisque eu. Magna sit amet purus gravida. Pharetra pharetra massa massa ultricies mi quis hendrerit dolor. - -### Concept 2 -Iaculis at erat pellentesque adipiscing commodo. Vitae turpis massa sed elementum tempus. Nisi quis eleifend quam adipiscing. Montes nascetur ridiculus mus mauris vitae ultricies leo integer. Pharetra sit amet aliquam id diam maecenas ultricies mi. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. Sed libero enim sed faucibus turpis. Fermentum posuere urna nec tincidunt praesent semper. Euismod in pellentesque massa placerat duis ultricies. Lacus vestibulum sed arcu non odio euismod lacinia at. Ipsum faucibus vitae aliquet nec ullamcorper sit. Vel pharetra vel turpis nunc eget lorem. - -Pretium viverra suspendisse potenti nullam ac. Tempus urna et pharetra pharetra. Justo donec enim diam vulputate. Morbi non arcu risus quis varius quam quisque. Urna condimentum mattis pellentesque id nibh tortor id aliquet lectus. A diam maecenas sed enim ut sem viverra aliquet. Habitant morbi tristique senectus et netus et. At in tellus integer feugiat. Ut venenatis tellus in metus. Praesent elementum facilisis leo vel fringilla est ullamcorper eget nulla. Sed elementum tempus egestas sed sed risus pretium quam. Eu nisl nunc mi ipsum faucibus. Tristique senectus et netus et malesuada fames ac. Ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas. Libero id faucibus nisl tincidunt eget nullam non nisi. Adipiscing tristique risus nec feugiat in. Nec nam aliquam sem et. Accumsan sit amet nulla facilisi morbi. - -#### 2.1 -Et tortor consequat id porta. Nibh tortor id aliquet lectus proin nibh nisl condimentum id. Consequat id porta nibh venenatis cras sed felis. In tellus integer feugiat scelerisque. Fringilla ut morbi tincidunt augue interdum velit euismod in. Vestibulum lorem sed risus ultricies tristique nulla aliquet. Sapien et ligula ullamcorper malesuada proin libero nunc consequat. Et egestas quis ipsum suspendisse ultrices gravida dictum. Eget nullam non nisi est sit amet facilisis magna etiam. Mauris vitae ultricies leo integer malesuada nunc vel risus. Nisl condimentum id venenatis a condimentum vitae. Sodales neque sodales ut etiam sit amet. Euismod in pellentesque massa placerat duis ultricies lacus. Etiam non quam lacus suspendisse faucibus interdum. Vitae turpis massa sed elementum tempus egestas sed sed risus. Sem integer vitae justo eget magna fermentum iaculis. Placerat duis ultricies lacus sed turpis tincidunt id aliquet risus. Vitae sapien pellentesque habitant morbi. Commodo elit at imperdiet dui accumsan sit amet nulla. - -### Concept 3 -Mauris sit amet massa vitae tortor condimentum lacinia. Amet luctus venenatis lectus magna fringilla urna porttitor rhoncus dolor. Morbi tristique senectus et netus et. Faucibus vitae aliquet nec ullamcorper sit. Sit amet consectetur adipiscing elit ut aliquam. Consectetur lorem donec massa sapien. Augue neque gravida in fermentum et sollicitudin ac orci phasellus. Imperdiet sed euismod nisi porta lorem mollis aliquam. Arcu odio ut sem nulla pharetra diam sit amet. Nisl vel pretium lectus quam id leo in vitae turpis. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt. Cras semper auctor neque vitae tempus quam. Semper risus in hendrerit gravida. Augue eget arcu dictum varius duis at consectetur. Malesuada nunc vel risus commodo. Facilisis gravida neque convallis a cras semper. Integer malesuada nunc vel risus commodo viverra maecenas. Interdum velit laoreet id donec ultrices tincidunt. Pretium nibh ipsum consequat nisl vel pretium lectus. Et odio pellentesque diam volutpat commodo sed egestas egestas. - -

- -

- - -Varius sit amet mattis vulputate enim nulla aliquet porttitor. In tellus integer feugiat scelerisque varius morbi enim nunc faucibus. Egestas quis ipsum suspendisse ultrices. Phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor. Urna nunc id cursus metus aliquam eleifend mi. Neque vitae tempus quam pellentesque nec nam aliquam sem et. Quam nulla porttitor massa id neque aliquam vestibulum. Volutpat commodo sed egestas egestas fringilla phasellus faucibus scelerisque. Sed libero enim sed faucibus. Vel fringilla est ullamcorper eget. Sit amet dictum sit amet justo donec enim diam vulputate. Tincidunt eget nullam non nisi est sit amet facilisis magna. - -#### Concept 3.1 -Senectus et netus et malesuada. Urna cursus eget nunc scelerisque viverra mauris. Arcu vitae elementum curabitur vitae nunc sed velit dignissim sodales. Convallis a cras semper auctor neque vitae tempus. Viverra justo nec ultrices dui sapien eget mi. Pellentesque adipiscing commodo elit at imperdiet dui accumsan. Etiam sit amet nisl purus in. Integer vitae justo eget magna. Nulla facilisi morbi tempus iaculis urna id. Ut morbi tincidunt augue interdum. Lacus viverra vitae congue eu consequat ac felis donec. - -#### Concept 3.2 -Tortor vitae purus faucibus ornare. Leo in vitae turpis massa sed elementum tempus. Ut morbi tincidunt augue interdum velit euismod. Fusce ut placerat orci nulla pellentesque. Consectetur a erat nam at lectus. Risus sed vulputate odio ut enim blandit volutpat maecenas volutpat. Cursus turpis massa tincidunt dui ut ornare lectus sit. In hac habitasse platea dictumst. Nisl nisi scelerisque eu ultrices vitae. Habitasse platea dictumst quisque sagittis purus sit amet. Consectetur lorem donec massa sapien. Porttitor massa id neque aliquam. - -Mauris augue neque gravida in fermentum. Enim blandit volutpat maecenas volutpat. Consectetur adipiscing elit ut aliquam purus sit amet luctus. At imperdiet dui accumsan sit amet nulla facilisi morbi. Gravida quis blandit turpis cursus in hac habitasse platea dictumst. Eleifend donec pretium vulputate sapien. Eu nisl nunc mi ipsum faucibus vitae. Morbi non arcu risus quis varius. Enim nulla aliquet porttitor lacus luctus accumsan. Neque vitae tempus quam pellentesque nec. Ipsum dolor sit amet consectetur adipiscing elit ut aliquam. Quis vel eros donec ac odio. Donec et odio pellentesque diam volutpat commodo sed. - -### Data loading -#### Uploading your data -Data should be rectangular, wide data and can be a .csv, .txt, .xlsx, .dta, or .spss file. If you are uploading a .txt file then the delimiter will also need to be specified (usually this is a tab or comma). If your data does not include a header row then uncheck the 'Data ocntains a header row' checkmark and you will be able to rename your columns on the 'Select data' page. - -#### Variable roles -Each column of your dataset must be matched to one of four roles: Covariate, Treatment, Response, or Exclude. These roles are auto-populated based on the column name and column values. You can change the roles by dragging-and-dropping the column names to each respective bucket. Treatment and Response should contain only one column respectively. Please exclude any ID columns or other irrelevant columns from your dataset. - -#### Size limitations -Upload files are limited to 10mb. - -### Concept 4 -Et egestas quis ipsum suspendisse ultrices gravida. Non nisi est sit amet facilisis magna etiam tempor. Tellus in metus vulputate eu scelerisque felis imperdiet proin fermentum. Amet consectetur adipiscing elit pellentesque habitant morbi. Nec feugiat in fermentum posuere. Tincidunt tortor aliquam nulla facilisi cras. Aliquam id diam maecenas ultricies mi eget mauris. Massa massa ultricies mi quis hendrerit dolor. In tellus integer feugiat scelerisque varius morbi. Lacinia at quis risus sed vulputate odio ut enim blandit. Convallis tellus id interdum velit laoreet id donec ultrices. - -In cursus turpis massa tincidunt dui ut ornare lectus sit. Arcu cursus vitae congue mauris rhoncus aenean vel elit. Id aliquet lectus proin nibh nisl. Vitae tempus quam pellentesque nec nam aliquam sem. Quis viverra nibh cras pulvinar mattis nunc sed. Iaculis eu non diam phasellus vestibulum lorem sed. Elit duis tristique sollicitudin nibh sit. Nisl suscipit adipiscing bibendum est ultricies integer. Neque laoreet suspendisse interdum consectetur. Adipiscing diam donec adipiscing tristique risus nec feugiat in fermentum. Sit amet dictum sit amet justo. Fringilla est ullamcorper eget nulla. Magna sit amet purus gravida. Blandit aliquam etiam erat velit scelerisque in dictum non consectetur. Consequat mauris nunc congue nisi vitae suscipit tellus mauris. Sem fringilla ut morbi tincidunt augue interdum velit. Ut sem viverra aliquet eget sit. - -Purus sit amet volutpat consequat. Ut sem nulla pharetra diam sit amet. Commodo elit at imperdiet dui accumsan sit amet nulla. Nunc sed blandit libero volutpat sed cras ornare arcu dui. Facilisis magna etiam tempor orci. Platea dictumst quisque sagittis purus sit. Nulla facilisi etiam dignissim diam quis enim lobortis scelerisque. Tristique nulla aliquet enim tortor at auctor. Feugiat pretium nibh ipsum consequat. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper. Fermentum dui faucibus in ornare quam viverra orci sagittis eu. Maecenas accumsan lacus vel facilisis volutpat est velit. Mauris cursus mattis molestie a. Volutpat consequat mauris nunc congue nisi vitae suscipit tellus mauris. - -Blandit libero volutpat sed cras ornare arcu. Felis bibendum ut tristique et egestas quis. Turpis tincidunt id aliquet risus feugiat in ante. Urna nec tincidunt praesent semper feugiat nibh. Imperdiet proin fermentum leo vel orci. Faucibus nisl tincidunt eget nullam non nisi. Semper viverra nam libero justo. Feugiat in ante metus dictum at tempor commodo ullamcorper. Sed risus ultricies tristique nulla aliquet. Sed risus pretium quam vulputate. Lectus nulla at volutpat diam ut. Amet volutpat consequat mauris nunc congue nisi vitae suscipit. Risus nec feugiat in fermentum posuere urna. Diam maecenas sed enim ut sem viverra aliquet. Purus in massa tempor nec feugiat nisl pretium. diff --git a/Production/UI/markdowns/landing.md b/Production/UI/markdowns/landing.md deleted file mode 100644 index b48725da..00000000 --- a/Production/UI/markdowns/landing.md +++ /dev/null @@ -1,3 +0,0 @@ -Lorem ipsum dolor sit amet consectetur adipiscing elit ligula fringilla, duis praesent iaculis aliquam rutrum nisl scelerisque. Senectus metus cum arcu tempus ridiculus ligula, fusce natoque habitant dapibus molestie pulvinar dis, ac velit vel rhoncus sed. Convallis nec erat bibendum diam phasellus dui eu sodales pretium venenatis, nibh dis eros cum massa blandit nulla etiam auctor, magna torquent pulvinar hac habitasse luctus dapibus a fermentum. - -Lobortis inceptos pulvinar ridiculus euismod habitant erat quam quis parturient suspendisse fermentum, ligula dignissim habitasse vulputate lacus est ad porta egestas. Ultrices semper phasellus augue enim fringilla suscipit ornare, nascetur nec fames nostra etiam luctus rutrum, sociis magnis ullamcorper mollis dui in. Dui viverra vehicula varius a interdum orci parturient tincidunt netus urna tristique bibendum, sagittis neque porta euismod dapibus dis taciti est ad hendrerit montes. Molestie ligula proin tincidunt aptent rhoncus sapien consequat nisi conubia, vitae montes hac diam a odio magnis ante, velit risus gravida fames nunc sociosqu egestas blandit. Tincidunt pellentesque viverra ultrices bibendum mauris duis ad tempor, nam aliquet quis feugiat augue pretium vulputate dictumst montes, volutpat porttitor elementum eget eleifend nisi cubilia. Turpis egestas quisque natoque rutrum porttitor diam interdum lacus justo habitant dictumst tristique cursus congue nulla nostra, vestibulum parturient potenti sollicitudin eleifend orci conubia sed quam nisi non etiam nam ultricies. Praesent rhoncus aliquet neque sapien risus, curae litora sollicitudin nam, est elementum justo curabitur. diff --git a/Production/UI/pages/concepts_page.R b/Production/UI/pages/concepts_page.R deleted file mode 100644 index ab2d0109..00000000 --- a/Production/UI/pages/concepts_page.R +++ /dev/null @@ -1,67 +0,0 @@ -concepts_page <- tabPanel( - title = "All concepts", - div(id = 'conceptsGrid1', - class = 'conceptsGrid', - fluidRow( - column( - width = 12, - wellPanel( - actionLink('practice_test', img(src = 'thumbnails/practice_test.png')), - br(), - h3("Test Your Understanding"), - p("Take practice tests on causal inference concepts") - ) - ) - ), - fluidRow( - column( - width = 4, - wellPanel( - img(src = 'thumbnails/propensity.png'), - br(), - h3("Potential Outcomes"), - p("Molestie ligula proin tincidunt aptent rhoncus sapien consequat nisi conubia, vitae montes hac diam a odio magnis ante, velit risus gravida fames nunc sociosqu egestas blandit.") - ) - ), - column( - width = 4, - wellPanel( - img(src = 'thumbnails/PO.png'), - br(), - h3("Making fair comparisons"), - p("Molestie ligula proin tincidunt aptent rhoncus sapien consequat nisi conubia, vitae montes hac diam a odio magnis ante, velit risus gravida fames nunc sociosqu egestas blandit.") - ) - ), - column( - width = 4, - wellPanel( - img(src = 'thumbnails/regression.png'), - br(), - h3("All confounders measured"), - p("Molestie ligula proin tincidunt aptent rhoncus sapien consequat nisi conubia, vitae montes hac diam a odio magnis ante, velit risus gravida fames nunc sociosqu egestas blandit.") - ) - ) - ), - - fluidRow( - column( - width = 4, - wellPanel( - img(src = 'thumbnails/balance.png'), - br(), - h3("Causal Estimands"), - p("Tincidunt pellentesque viverra ultrices bibendum mauris duis ad tempor, nam aliquet quis feugiat augue pretium vulputate dictumst montes, volutpat porttitor elementum eget eleifend nisi cubilia.") - ) - ), - column( - width = 4, - wellPanel( - img(src = 'thumbnails/regression_discontinuity.png'), - br(), - h3("Regression Trees vs Linear Regression"), - p("Vitae montes hac diam a odio magnis ante, velit risus gravida fames nunc sociosqu ad tempor, nam aliquet quis feugiat augue.") - ) - ) - ) - ) -) diff --git a/Production/UI/pages/data_page.R b/Production/UI/pages/data_page.R deleted file mode 100644 index 1d4e69ab..00000000 --- a/Production/UI/pages/data_page.R +++ /dev/null @@ -1,107 +0,0 @@ -data_page <- tabPanel( - title = 'Data', - tabsetPanel( - id = "analysis_data_tabs", - tabPanel(title = "Load Data", - fluid = TRUE, - sidebarLayout( - sidebarPanel( - h4("Upload your data"), - HTML("

Data should be rectangular and in wide format where each column represents one variable.

"), - div(id = "upload_file_div", - fileInput(inputId = "analysis_data_upload", - label = "Choose File", - buttonLabel = 'Browse', - multiple = FALSE, - accept = c('.csv', '.txt', '.xlsx', '.dta', '.spss'), - placeholder = 'csv, txt, xlsx, dta, or spss'), - ), - uiOutput(outputId = 'analysis_data_delim'), - awesomeCheckbox(inputId = "analysis_data_header", - label = "Data contains a header row", - value = TRUE), - # selectInput(inputId = "analysis_data_select_select_ycol", - # label = "Select Response (Y) Column", - # choices = NULL), - # selectInput(inputId = "analysis_data_select_select_zcol", - # label = "Select Treatment (Z) Column", - # choices = NULL), - # selectInput(inputId = "analysis_data_select_select_xcol", - # label = "Select Covariates (X) Columns", - # choices = NULL, - # multiple = TRUE), - actionButton(inputId = 'analysis_data_button_columnAssignSave', - label = 'Save role assignments'), - br(),br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Dataloading')", - 'Help me'), - br(), br(), - # actionButton(inputId = "analysis_data_load_button_next", - # label = "Next"), - # br(), br(), - # HTML('
Advanced options'), - # p("2.0 feature: Have a large number of variables? Upload your data in [this format] to bypass the variable selection and data formating process."), - # 'TODO: add downloaded template and upload process', - # br(), - # HTML('

'), - ), - mainPanel( - br(), - # plotOutput(outputId = 'analysis_data_plot_DAG', - # height = '600px') - uiOutput(outputId = 'analysis_data_UI_dragdrop') - ) - ) - ), - tabPanel(title = "Select Data", - fluid = TRUE, - sidebarLayout( - sidebarPanel( - h4("Rename and verify your data"), - p("Ensure your data is named and the data types are correct."), - br(), - div( - class = 'backNextContainer', - actionButton(inputId = 'analysis_data_save', - label = 'Save changes') - ), - br(), - div( - class = 'backNextContainer', - actionButton(inputId = 'analysis_data_button_reset', - label = 'Reset variable changes') - ), - br(), - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_data_select_button_back", - label = "Back"), - # actionButton(inputId = "analysis_data_select_button_next", - # label = "Next") - ), - br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept3')", - 'Help me'), - br(),br(), - create_progress_bar(1/7*100) - ), - mainPanel( - wellPanel( - style = "overflow-y:scroll; max-height: 400px; background-color: transparent; overflow-y: scroll", - uiOutput(outputId = 'analysis_data_modify_UI') - ), - hr(style = "height: 1px; background-color: #bfbfbf"), - h4("Your data", style = "padding: 0; margin: 0"), - wellPanel( - style = "overflow-y:scroll; max-height: 400px; background-color: transparent; overflow-y: scroll", - DT::dataTableOutput('analysis_data_table') - ) - ) - ) - ) - ) -) diff --git a/Production/UI/pages/eda_page.R b/Production/UI/pages/eda_page.R deleted file mode 100644 index bb7a454e..00000000 --- a/Production/UI/pages/eda_page.R +++ /dev/null @@ -1,292 +0,0 @@ -eda_page <- tabPanel( - title = "Exploratory plots", - tabsetPanel( - id = "analysis_plot_tabs", - tabPanel( - title = "Descriptive Plots", - # absolutePanel(id = "analysis_plots_descriptive_loading_message", - # br(), - # HTML("Data must be first uploaded and columns selected."), - # style = "z-index: -2;"), - sidebarLayout( - sidebarPanel( - width = 4, - h4("Explore your data visually"), - br(), - selectInput( - inputId = "analysis_eda_select_plot_type", - label = "Plot type:", - multiple = FALSE, - choices = c("Scatter", "Histogram", "Barplot", "Density", "Boxplot"), #"Pairs" - selected = "Scatter" - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Pairs'", - selectInput( - inputId = "analysis_eda_variable_pairs_vars", - label = "Columns to plot", - multiple = TRUE, - choices = NULL, - selected = NULL - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type != 'Pairs'", - selectInput( - inputId = "analysis_eda_variable_x", - label = "X: ", - multiple = FALSE, - choices = NULL, - selected = NULL - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Scatter'", - selectInput( - inputId = "analysis_eda_variable_y", - label = "Y: ", - multiple = FALSE, - choices = NULL, - selected = NULL - ), - selectInput( - inputId = "analysis_eda_variable_fill", - label = "Fill color: ", - multiple = FALSE, - choices = NULL, - selected = NULL - ), - selectInput( - inputId = "analysis_eda_variable_shape", - label = "Shape: ", - multiple = FALSE, - choices = NULL, - selected = NULL - ), - conditionalPanel( - condition = "input.analysis_eda_variable_fill == 'Cluster'", - selectInput( - inputId = "analysis_eda_variable_cluster", - label = "Clustering algorithm: ", - multiple = FALSE, - choices = c('k-means', 'Hierarchical'), - selected = 'k-means' - ), - sliderInput( - inputId = "analysis_eda_variable_n_clusters", - label = "Number of clusters: ", - min = 2, - max = 10, - value = 4, - step = 1 - ), - HTML( - 'Clustering using only selected X and Y variables. Not recommended when faceting.

' - ) - ), - selectInput( - inputId = "analysis_eda_variable_size", - label = "Size: ", - multiple = FALSE, - choices = NULL, - selected = NULL - ), - selectInput( - inputId = "analysis_eda_variable_regression", - label = "Linear regression: ", - multiple = FALSE, - choices = c('None', 'Include'), - selected = 'None' - ), - # bsPopover(id = 'analysis_eda_variable_regression', - # title = "Linear regression", - # content = 'Apply a linear regression (y ~ x) to each subgroup of your plot. If you facet on a variable, then the regressions will be calculated per each facet group.', - # placement = 'top'), - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Histogram'", - sliderInput( - inputId = "analysis_eda_variable_n_bins", - label = "Number of bins: ", - min = 5, - max = 50, - value = 20, - step = 1 - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Boxplot'", - selectInput( - inputId = "analysis_eda_variable_group", - label = "Grouping: ", - multiple = FALSE, - choices = NULL - ) - ), - selectInput( - inputId = "analysis_eda_variable_facet", - label = "Panel variable: ", - multiple = FALSE, - choices = c("None", NULL), - selected = "None" - ), - # bsPopover(id = 'analysis_eda_variable_facet', - # title = "Facet variable", - # content = 'Faceting splits the data by one or more variables and then plots these subsets.', - # placement = 'top'), - conditionalPanel( - condition = "input.analysis_eda_variable_facet != 'None'", - selectInput( - inputId = "analysis_eda_variable_facet_second", - label = "Second panel variable: ", - multiple = FALSE, - choices = c("None"), - selected = "None" - ) - ), - conditionalPanel( - condition = "input.analysis_eda_select_plot_type == 'Scatter'", - sliderInput( - inputId = "analysis_eda_variable_alpha", - label = "Opacity: ", - min = 0.1, - max = 1, - value = 0.5, - step = 0.1 - ) - ) - ), - HTML('
Advanced options'), - checkboxInput(inputId = "analysis_eda_check_jitter", - label = "Jitter the points?", - value = FALSE), - # actionButton(inputId = "analysis_eda_button_download", - # label = "Download the plot"), - # br(), - HTML('

'), - br(),br(), - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_plots_descriptive_button_back", - label = "Back"), - actionButton(inputId = "analysis_plots_descriptive_button_next", - label = "Next") - ), br(), - p("Download the currently displayed plot:"), - downloadButton('download_descriptive_plot', label = "Download plot") - ), - - mainPanel( - width = 8, - br(), - plotOutput(outputId = 'analysis_eda_plot', - height = 600, - brush = brushOpts(id = "analysis_eda_plot_brush")), - br(), - htmlOutput(outputId = "analysis_eda_brush_text"), - DT::dataTableOutput(outputId = "analysis_eda_brush_info") - ) - ) - ), - -# Common Support EDA UI ------------------------------------------------------- - tabPanel( - title = "Common Support Plots", - sidebarLayout( - sidebarPanel( - width = 4, - h4("Check common support"), - selectInput( - inputId = "analysis_plot_overlap_select_var", - label = "Select Variables for Overlap Check:", - multiple = TRUE, - choices = NULL, - selected = NULL - ), - awesomeRadio( - inputId = "analysis_plot_overlap_type", - label = "View:", - inline = TRUE, - choices = c("By Variables" = 1, - "One Number Summary" = 2), - selected = 1 - ), - br(), - awesomeRadio( - inputId = "analysis_plot_overlap_method", - label = "Plot Type:", - inline = TRUE, - choices = c('Histogram', 'Density'), - selected = 'Histogram' - ), - br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept3')", - 'What is this plot telling me?'), - br(),br(), - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_plots_support_button_back", - label = "Back"), - actionButton(inputId = "analysis_plots_support_button_next", - label = "Next") - ), - br(), - create_progress_bar(3/7*100), - br(), - p("Download the currently displayed plot:"), - downloadButton('download_overlap_plot', label = "Download plot") - ), - mainPanel( - width = 8, - br(), - plotOutput(outputId = "analysis_plot_overlap_plot", height = 800) - - ) - ) - ), - -# Balance EDA UI ---------------------------------------------------------- -tabPanel(title = "Balance Plots", - sidebarLayout( - sidebarPanel( - width = 4, - h4("Visualize balance between treatment and control"), - selectInput( - inputId = "analysis_plot_balance_select_var", - label = "Select Variables for Balance Check:", - multiple = TRUE, - choices = NULL, - selected = NULL - ), - br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept3')", - 'What is this plot telling me?'), - br(),br(), - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_plots_balance_button_back", - label = "Back"), - actionButton(inputId = "analysis_plots_balance_button_next", - label = "Next") - ), - br(), - create_progress_bar(4/7*100), - br(), - p("Download the currently displayed plot:"), - downloadButton('download_balance_plot', label = "Download plot") - # add advanced option to remove scale - ), - mainPanel( - width = 8, - br(), - plotOutput(outputId = "analysis_plot_balance_plot", - height = 500) - ) - )) - ) - ) - - diff --git a/Production/UI/pages/log_page.R b/Production/UI/pages/log_page.R deleted file mode 100644 index 38db1d90..00000000 --- a/Production/UI/pages/log_page.R +++ /dev/null @@ -1,14 +0,0 @@ -log_page <- tabPanel( - title = "Log", - style = "padding-left: 3rem;", - br(), - downloadButton( - outputId = 'settins_log_download', - label = 'Download log', - style = 'max-width: 300px' - ), - br(), br(), - verbatimTextOutput( - outputId = 'settings_log_text' - ) -) \ No newline at end of file diff --git a/Production/UI/pages/model_diagnostic_page.R b/Production/UI/pages/model_diagnostic_page.R deleted file mode 100644 index cc436d42..00000000 --- a/Production/UI/pages/model_diagnostic_page.R +++ /dev/null @@ -1,37 +0,0 @@ -diagnostics_page <- tabPanel( - title = "Model diagnostics", #htmlOutput("exploration_tab_name"), - tabPanel( - title = "Model diagnostics", - sidebarLayout( - sidebarPanel( - h4('Model diagnostics'), - p("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."), - br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept2')", - 'What are these plots telling me?'), - br(),br(), - uiOutput(outputId = 'analysis_diagnosis_buttons_ui'), - br(), - create_progress_bar(6/7*100) - ), - mainPanel( - tabsetPanel( - id = "analysis_diagnostics_tabs", - tabPanel( - title = "Trace plot", - br(), - plotOutput('analysis_diagnostics_plot_trace', - height = 500) - ), - tabPanel( - title = 'Common support', - br(), - plotOutput('analysis_diagnostics_plot_support', - height = 600) - ) - ) - ) - ) - )) \ No newline at end of file diff --git a/Production/UI/pages/model_moderator_results_page.R b/Production/UI/pages/model_moderator_results_page.R deleted file mode 100644 index 40c66c3b..00000000 --- a/Production/UI/pages/model_moderator_results_page.R +++ /dev/null @@ -1,114 +0,0 @@ -moderator_page <- tabPanel( - title = "Subgroup Results", - tabsetPanel( - id = "moderator_tabs", - tabPanel( - title = 'ICATE', - sidebarLayout( - sidebarPanel( - - awesomeRadio(inputId = "icate_type", - label = 'Plot:', - choices = c("Ordered ICATE", "Histogram of ICATE")), - br(), - br(), - div(class = 'backNextContainer', - actionButton(inputId = 'back_results', - label = 'Back'), - actionButton(inputId = 'next_icate_tree', - label = 'Next')) - ), - mainPanel( - br(), - conditionalPanel(condition = "input.icate_type == 'Ordered Effects'", - plotOutput(outputId = "ordered_icate", - height = 500)), - - conditionalPanel(condition = "input.icate_type == 'Histogram of ICATE'", - plotOutput(outputId = "histigram_icate", - height = 500)) - ) - )), - tabPanel(title = 'ICATE Regression Tree', - sidebarLayout( - sidebarPanel( - h5("Variable importance interpretation"), - p("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."), - br(), - - awesomeRadio(inputId = 'set_tree_depth', - label = 'Tree Depth', - choices = list('1' = 1, '2' = 2, '3' = 3), - inline = T, - selected = '2'), - br(), - br(), - div(class = 'backNextContainer', - actionButton(inputId = 'back_icate', - label = 'Back'), - actionButton(inputId = 'next_subgroup', - label = 'Next')) - ), - mainPanel( - br(), - plotOutput(outputId = "analysis_moderator_single_tree", - height = 500) - - ) - )), - tabPanel( - title = 'Subgroup Analyses', - sidebarLayout( - sidebarPanel( - conditionalPanel(condition = "input.analysis_model_moderator_yes_no == 'Yes'", - awesomeRadio(inputId = 'moderation_type_class', - label = 'Type of Subgroup Analysis:', - choices = c('Prespecified', - 'Exploratory'), - selected = 'Prespecified') - - ), - - conditionalPanel(condition = "input.moderation_type_class == 'Prespecified' & input.analysis_model_moderator_yes_no == 'Yes'", - selectInput(inputId = "analysis_moderator_vars", - label = "Group by:", - multiple = FALSE, - choices = NULL, - selected = NULL)), - - conditionalPanel(condition = "input.moderation_type_class != 'Prespecified' & input.analysis_model_moderator_yes_no == 'Yes'", - selectInput(inputId = "analysis_moderators_explore_select", - label = "Group by:", - multiple = FALSE, - choices = NULL, - selected = NULL)), - - conditionalPanel(condition = "input.analysis_model_moderator_yes_no == 'No'", - selectInput(inputId = "analysis_moderators_explore_only", - label = "Group by:", - multiple = FALSE, - choices = NULL, - selected = NULL)), - br(), - br(), - div(class = 'backNextContainer', - actionButton(inputId = 'back_icate_tree', - label = 'Back')), - br(), - div(class = 'backNextContainer', - actionButton(inputId = 'to_results', - label = 'Back to Results')), - br(), - div(class = 'backNextContainer', - actionButton(inputId = 'to_download', - label = 'Log Analyses')) - - ), - mainPanel( - br(), - plotOutput(outputId = "analysis_moderators_explore_plot", - height = 500) - ))) - ) - ) - diff --git a/Production/UI/pages/model_page.R b/Production/UI/pages/model_page.R deleted file mode 100644 index 4c6dc9b4..00000000 --- a/Production/UI/pages/model_page.R +++ /dev/null @@ -1,88 +0,0 @@ -model_page <- tabPanel(title = "Model", - tabPanel("Model", - sidebarLayout( - sidebarPanel( - h4('Specify your model'), - awesomeRadio( - inputId = "analysis_model_radio_design", - label = 'Select Assignment of Treatment (Z):', - choices = c('Non-Random (Observational)' = 'non_random', - 'Random (Experimental)' = 'random', - 'Quasi-Random (Natural Experiment)' = 'quasi'), - selected = 5 - ), - htmlOutput(outputId = 'analysis_model_text_design'), - htmlOutput(outputId = 'analysis_model_text_design_noinput'), - awesomeRadio( - inputId = "analysis_model_radio_estimand", - label = "Select causal estimand", - choices = c('ATE', - 'ATT', - 'ATC', - 'Unsure of Estimand' = 'unsure'), - selected = 5 - ), - htmlOutput(outputId = 'analysis_model_text_estimand_noinput'), - awesomeRadio( - inputId = "analysis_model_radio_support", - label = "Select common support rule", - choices = c('None' = "none", - 'Standard Deviation' = 'sd', - 'Chi Squared Test' = 'chisq', - 'Unsure of Common Support Rule' = 'unsure'), - selected = 5 - ), - br(), - h4('Specify moderators'), - awesomeRadio( - inputId = "analysis_model_moderator_yes_no", - inline = TRUE, - label = "Pre-specify moderation tests", - choices = c('Yes', 'No'), - selected = 'No' - ), - conditionalPanel( - condition = "input.analysis_model_moderator_yes_no == 'Yes'", - selectInput(inputId = "analysis_model_moderator_vars", - label = "Select moderators from covariates", - choices = NULL, - multiple = TRUE) - ), - br(), - htmlOutput(outputId = 'analysis_model_text_support_noinput'), - HTML('
Advanced options'), - br(), - awesomeRadio( - inputId = "analysis_model_outcome", - label = "Model outcome with", - choices = c('BART', "Weighted Propensity Score", 'TMLE'), - selected = 'BART' - ), - awesomeRadio( - inputId = "analysis_model_pscore", - label = "Model propensity score fit with:", - choices = c('BART', 'generalized linear model','do not fit propensity scores'), - selected = 'BART' - ), - br(), - HTML('

'), - br(), - tags$button( - type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept3')", - 'Help me' - ), - br(),br(), - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_model_button_back", - label = "Back to EDA"), - actionButton(inputId = "analysis_model_button_next", - label = "Fit model") - ), - br(), - create_progress_bar(5/7*100) - ), - mainPanel(htmlOutput('analysis_model_summary')) - ))) diff --git a/Production/UI/pages/model_results_page.R b/Production/UI/pages/model_results_page.R deleted file mode 100644 index 51500e48..00000000 --- a/Production/UI/pages/model_results_page.R +++ /dev/null @@ -1,74 +0,0 @@ -results_page <- tabPanel( - title = "Results", - tabPanel("Model Results", - sidebarLayout( - sidebarPanel( - - h5("Results interpretation:"), - awesomeRadio(inputId = 'interpretation', - label = NULL, - choices = c('Causal', 'Non-Causal'), - selected = 'Causal', - inline = T), - conditionalPanel(condition = "input.interpretation == 'Causal'", - p("The IHDP[auto fill] led to an increase of 4.2 points[auto fill] for students[auto fill] in this study"), - ), - - conditionalPanel(condition = "input.interpretation == 'Non-Causal'", - p("Students who participated in the IHDP scored 4.2 points higher, on average, than a simmilar group of students in the study who did not participate in the program. Simmilarity is conceptualized with respect to all covirates included in the analysis."), - ), - awesomeRadio(inputId = "plot_result_style", - label = "Plot:", - choices = c('Histogram', 'Density'), - selected = 'Density', - inline = T), - awesomeCheckboxGroup(inputId = 'central_tendency', - label = NULL, - inline = T, - choices = c('Mean', 'Median'), - selected = 0), - awesomeCheckboxGroup(inputId = 'show_interval', - label = NULL, - inline = T, - choices = list('80% ci' = .8, '95% ci' = .95), - selected = 'none'), - awesomeRadio(inputId = 'show_reference', - label = 'Include reference line:', - choices = c('Yes', 'No'), - inline = T, - selected = 'No'), - conditionalPanel(condition = "input.show_reference == 'Yes'", - numericInput(inputId = "reference_bar", - label = "Reference Number", - value = 0, - step = 1),), - - br(), - tags$button(type = 'button', - class = 'btn btn-default help', - onclick = "openConceptsPage('Concept2')", - 'What are these plots telling me?'), - br(), br(), - actionButton(inputId = "analysis_results_button_back", - label = "See Diagnostics"), - br(),br(), - actionButton(inputId = "go_to_subgroup_results", - label = "See Results by Subgroups"), - br(),br(), - create_progress_bar(7/7*100) - ), - mainPanel( - - plotOutput(outputId = 'analysis_results_plot_PATE', - height = 400), - - h4('Model results'), - htmlOutput('analysis_results_table_summary') - - # ) - # ) - ) - ) - ) - ) - diff --git a/Production/UI/pages/options_page.R b/Production/UI/pages/options_page.R deleted file mode 100644 index c0383812..00000000 --- a/Production/UI/pages/options_page.R +++ /dev/null @@ -1,57 +0,0 @@ -options_page <- tabPanel( - title = "Options", - style = "padding-left: 3rem;", - fluidRow( - column(width = 6, - h3("Plot settings"), - radioButtons( - inputId = "settings_options_ggplot_theme", - label = "Plot aesthetic", - choices = c("Minimal", "Simple", "Classic", "Gray") - ), - br(), - sliderInput( - inputId = "settings_options_ggplotTextSize", - label = "Plot font size", - min = 8, - max = 20, - value = 14, - step = 1 - ), - br(), - sliderInput( - inputId = "settings_options_ggplotPointSize", - label = "Plot point size", - min = 1, - max = 10, - value = 3, - step = 1 - ), - ), - column(width = 6, - br(), - plotOutput(outputId = 'settings_options_ggplot_preview', - height = '400px') - ) - ), - br(),br(), - hr(style = "height: 2px; border-width: 0; background-color: #e3e3e3; max-width: 400px; margin-left: 0;"), - h3("More"), - checkboxGroupInput( - inputId = "temp", - label = "Another example...", - choices = LETTERS[1:5], - selected = LETTERS[3] - ), - br(),br(), - hr(style = "height: 2px; border-width: 0; background-color: #e3e3e3; max-width: 400px; margin-left: 0;"), - h3("Other"), - sliderInput( - inputId = "temp2", - label = "Another example...", - min = 1, - max = 10, - value = 5, - step = 1 - ) -) diff --git a/Production/UI/pages/script_page.R b/Production/UI/pages/script_page.R deleted file mode 100644 index c6630a8f..00000000 --- a/Production/UI/pages/script_page.R +++ /dev/null @@ -1,11 +0,0 @@ -script_page <- tabPanel( - title = "Script", - style = "padding-left: 3rem;", - br(), - downloadButton( - outputId = 'analysis_results_button_download', - label = 'Download script', - style = 'max-width: 300px' - ), - br(), br() -) \ No newline at end of file diff --git a/Production/data/IHDP_observational.csv b/Production/data/IHDP_observational.csv deleted file mode 100644 index f805fd81..00000000 --- a/Production/data/IHDP_observational.csv +++ /dev/null @@ -1,748 +0,0 @@ -treat,bw,b.head,preterm,birth.o,nnhealth,momage,sex,twin,b.marr,mom.lths,mom.hs,mom.scoll,cig,first,booze,drugs,work.dur,prenatal,ark,ein,har,mia,pen,tex,was,momwhite,momblack,momhisp,yc1hat,yc0hat,y.obs -1,1559,28.6485212825386,10,2,94,33,1,0,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,19.812870621864697,13.303795148619207,19.812870621864697 -0,1000,25,8,4,89,33,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,4.37237844327479,9.265076973047996,9.265076973047996 -0,1430,29,6,1,112,22,0,0,0,1,0,0,0,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,8.830541194717423,7.496896520178401,7.496896520178401 -0,1984,31,2,1,99,20,0,0,0,0,0,1,1,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,5.8673329814213915,6.068528128327181,6.068528128327181 -0,1320,28,7,2,110,23,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,13.106927491223725,7.094050083433432,7.094050083433432 -0,2020,29,5,2,100,37,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.405325469745456,11.328257861760305,11.328257861760305 -0,2041,31,9,3,98,41,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,40.27527882237516,24.02159562200979,24.02159562200979 -0,1320,26.162500918433,10,1,110,27,1,0,1,0,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,14.922204865845249,11.130191689276261,11.130191689276261 -0,2150,32,7,3,87,30,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,26.761564399113233,17.12847626358399,17.12847626358399 -0,1620,28,8,2,109,22,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,12.268023010678515,9.014101520974007,9.014101520974007 -0,1814,30,7,2,98,35,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,18.931380749480013,12.53044617629803,12.53044617629803 -0,1280,28,10,2,106,26,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,14.964750440443671,12.293699635554098,12.293699635554098 -0,1210,26,10,1,100,18,1,0,0,0,1,0,0,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,10.398306282591868,6.252016881174685,6.252016881174685 -0,2296,32.5398625570605,7,1,99,25,1,0,1,1,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,21.299382074415742,17.706708458723142,17.706708458723142 -0,1670,30,7,1,104,18,0,0,0,1,0,0,1,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,11.269928190577277,8.462332682269892,8.462332682269892 -0,2030,31,5,2,131,18,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,14.659148697257208,7.187574387460623,7.187574387460623 -0,2030,32,5,2,125,23,1,1,0,0,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,1,0,22.24081167993823,10.493288557839433,10.493288557839433 -0,1840,29,8,1,81,18,1,1,0,0,1,0,1,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,8.87593222035358,8.392691693803659,8.392691693803659 -1,2330,32,9,2,89,26,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,19.237098031754034,17.24445160843829,19.237098031754034 -0,1310,28,9,2,102,28,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,16.342758835213623,11.823018957974066,11.823018957974066 -0,2350,33,6,4,93,23,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,25.102915713703265,20.542017464982216,20.542017464982216 -0,1990,31,4,1,103,25,1,0,1,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,0,1,0,14.735385966088227,11.169921635167778,11.169921635167778 -1,2410,33,3,3,90,20,0,0,1,1,0,0,1,1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,19.255377122016434,8.536298220428149,19.255377122016434 -0,1400,28,8,4,109,34,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,22.702769122307693,19.54335486156146,19.54335486156146 -0,1950,30,6,3,101,29,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,17.500820677317385,12.41922314726085,12.41922314726085 -0,1990,30,6,1,101,26,1,0,0,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,13.766300689983506,11.336236173671201,11.336236173671201 -1,1776,28,6,2,83,23,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,9.31457505458803,6.4680583315203535,9.31457505458803 -0,1750,33,8,2,58,28,0,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,13.318078751817472,9.640987253997146,9.640987253997146 -0,2369,35,3,1,92,32,0,0,1,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.75985573267473,15.518125203819908,15.518125203819908 -0,2250,30,6,1,113,15,0,0,0,1,0,0,0,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,12.445324292092799,9.654819516324904,9.654819516324904 -0,2210,31,6,2,85,33,1,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,23.369490668977054,14.42093541037543,14.42093541037543 -0,1770,31,5,4,128,29,1,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,21.634861831727754,13.64798078148901,13.64798078148901 -0,730,22,12,1,98,22,1,0,1,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,14.37016433703544,7.970630385048221,7.970630385048221 -0,870,25,12,3,99,18,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,10.306844047189854,7.2330899332861405,7.2330899332861405 -0,1510,28,10,2,100,26,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.389360547691346,13.824062685792148,13.824062685792148 -0,2360,33,3,2,103,20,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,12.774594567654269,10.122662904613353,10.122662904613353 -0,2500,30,3,2,88,28,1,0,1,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,16.104116625435253,10.282810800653925,10.282810800653925 -0,1880,30,4,4,109,34,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,26.983459206933208,16.68565370394151,16.68565370394151 -0,2220,32,7,2,87,23,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,15.54532014184484,13.745361721260544,13.745361721260544 -0,2490,32,6,2,80,24,1,0,1,0,1,0,1,1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,16.883659833744915,13.023463295160974,13.023463295160974 -0,2350,28,6,4,99,21,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,15.304215553187358,14.0019886752606,14.0019886752606 -1,910,25,12,1,84,22,1,0,1,0,1,0,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,9.83452448995845,8.173452912668825,9.83452448995845 -1,2445,32,5,3,98,32,0,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,24.116146679092854,16.30629371264207,24.116146679092854 -1,2180,31,6,1,87,29,1,0,1,1,0,0,0,2,0,1,0,1,1,0,0,0,0,0,0,1,0,0,17.03035749251637,14.170700203664559,17.03035749251637 -1,1786,31,8,2,42,25,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,9.343976739465443,4.779622162110437,9.343976739465443 -0,2160,32,6,2,118,25,1,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.70650235024867,16.394175686647433,16.394175686647433 -0,1928,30,8,2,89,34,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,24.627040324234876,15.24659107967745,15.24659107967745 -0,1750,29,5,2,99,17,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,11.690870785671715,3.4267178759052963,3.4267178759052963 -0,1590,29,10,3,83,19,1,0,1,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,14.908972044679942,10.482725877406114,10.482725877406114 -1,2350,32,6,1,113,18,1,0,0,1,0,0,1,2,0,1,0,1,1,0,0,0,0,0,0,1,0,0,15.393657261540362,11.84421195659357,15.393657261540362 -1,2250,33,7,2,99,19,0,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,14.963576940679424,9.76237723930847,14.963576940679424 -0,1890,31,9,1,81,20,1,0,1,0,1,0,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,12.983713408100224,12.94727464347125,12.94727464347125 -0,2410,31,6,4,65,40,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,32.067959780256224,15.91402341917538,15.91402341917538 -1,2500,33,6,2,91,25,1,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,22.5601083022247,16.270340005760772,22.5601083022247 -0,2353,31,6,2,99,28,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,17.142515124236386,14.102217600793658,14.102217600793658 -0,1960,31,5,2,109,24,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,13.767555456698572,9.871965001143144,9.871965001143144 -0,920,25,13,1,84,19,0,0,0,0,0,1,1,2,1,1,1,1,1,0,0,0,0,0,0,0,1,0,15.87623475411429,10.000134881016828,10.000134881016828 -0,2300,33,5,1,110,22,0,0,0,0,0,1,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,13.726173733785112,13.217520791504915,13.217520791504915 -1,1985,29,5,1,108,24,1,0,1,0,0,1,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,16.24914277508247,12.618150914358058,16.24914277508247 -1,1740,30,7,4,127,26,1,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,20.502577310401637,14.05923999972457,20.502577310401637 -0,1970,30,6,2,117,19,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,11.654588153643886,8.996171598000451,8.996171598000451 -0,2390,30,5,2,105,19,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,12.450674555341585,7.9930148394394704,7.9930148394394704 -0,1750,30,6,1,119,16,1,0,0,1,0,0,0,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,12.690381517860821,7.455559152696112,7.455559152696112 -1,1970,31,8,1,107,33,0,0,1,0,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,22.871499790546018,17.35444810936147,22.871499790546018 -0,2070,31,6,3,93,21,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,11.714500504265793,10.059906151537291,10.059906151537291 -0,1400,28,9,2,107,18,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,12.384581590900405,6.379321132991191,6.379321132991191 -0,1360,29,7,3,117,26,1,0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,0,1,0,0,21.59762534057065,13.135620523671774,13.135620523671774 -0,2155,32,5,1,110,28,1,0,1,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.63665375530256,15.680810697129063,15.680810697129063 -0,1190,27,8,4,118,26,1,0,0,0,1,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,12.709101337022823,14.447421748700744,14.447421748700744 -0,1950,31,5,2,103,19,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,9.290486912646665,6.376337586002888,6.376337586002888 -0,1240,27,10,3,100,22,1,0,1,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,13.715783412214765,11.40811954118016,11.40811954118016 -0,1410,29,9,1,93,24,0,0,1,0,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,11.404879071142298,10.076322957065333,10.076322957065333 -0,2270,31,6,2,117,24,1,0,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,23.166686052647464,16.99364122181202,16.99364122181202 -0,1840,30,10,2,72,24,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,13.988201817670568,12.162768108213339,12.162768108213339 -1,1670,30,6,1,113,23,1,0,1,0,0,1,0,2,0,1,0,1,1,0,0,0,0,0,0,1,0,0,14.27579424522266,11.265763382164701,14.27579424522266 -1,2400,30,9,3,63,25,0,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,10.689814774911133,11.18899225436219,10.689814774911133 -1,2230,33,7,2,100,23,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,21.368389085129195,17.06142808332243,21.368389085129195 -0,1520,29,9,2,99,20,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,12.976874679124185,10.68854608720249,10.68854608720249 -0,1070,26,10,1,85,19,1,0,0,1,0,0,1,2,1,1,1,1,1,0,0,0,0,0,0,1,0,0,11.187881154201762,7.504481254913747,7.504481254913747 -1,2200,34,7,1,108,27,0,1,1,0,0,0,0,2,0,1,0,1,1,0,0,0,0,0,0,1,0,0,18.28727029764952,15.91296990723557,18.28727029764952 -0,1790,29,8,1,73,26,0,0,1,0,0,0,0,2,1,1,1,1,1,0,0,0,0,0,0,1,0,0,12.193686465493357,10.121827202383015,10.121827202383015 -0,2220,33,6,4,67,29,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,14.471525856764458,10.954668442745518,10.954668442745518 -0,890,24,14,1,89,22,1,0,1,0,0,1,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,17.2087554032126,10.72701362986879,10.72701362986879 -0,1420,35,10,3,86,18,0,1,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,21.747564167872994,12.924038530978528,12.924038530978528 -0,1730,29,9,3,90,24,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,14.292111707852872,11.634942344236672,11.634942344236672 -1,1560,27,7,1,107,17,0,0,0,1,0,0,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,11.472383792256773,7.7894000156605365,11.472383792256773 -0,1730,28,6,1,122,20,1,0,0,1,0,0,1,2,0,1,0,1,1,0,0,0,0,0,0,0,1,0,13.81333159799378,8.707199060240947,8.707199060240947 -1,1580,30,6,1,124,15,0,0,0,1,0,0,1,2,0,1,0,1,1,0,0,0,0,0,0,1,0,0,13.99143865250958,7.224083554671069,13.99143865250958 -0,2325,32,3,1,98,19,1,0,1,0,1,0,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,10.831913823446033,10.875569459354754,10.875569459354754 -0,1580,29,10,2,87,23,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,14.339654899240532,11.957024661976446,11.957024661976446 -0,2296,32,7,1,72,35,0,0,1,0,0,0,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,20.32814156782007,17.195645386837516,17.195645386837516 -1,2417,32,6,3,96,29,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,23.185143516169898,13.93645148867999,23.185143516169898 -0,1210,27,12,1,86,25,0,0,1,0,0,1,0,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,14.876343747342265,12.012901477105451,12.012901477105451 -0,1570,30,6,4,95,23,0,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,17.381142095392548,10.708096911220435,10.708096911220435 -0,2190,32,5,2,116,19,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,16.331527683486772,6.97554939956137,6.97554939956137 -0,2001,32,5,1,105,37,0,1,0,0,0,0,0,2,0,1,1,1,1,0,0,0,0,0,0,0,1,0,21.44638544153407,14.280603808813247,14.280603808813247 -0,2200,31,4,2,121,21,0,0,1,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,13.422829021430259,10.445057922417194,10.445057922417194 -0,2000,31,5,3,122,28,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0,22.128733034191924,13.876452714193181,13.876452714193181 -0,1990,30,7,1,127,17,0,0,0,1,0,0,1,2,0,1,1,1,1,0,0,0,0,0,0,1,0,0,16.74540360936355,12.329069576257254,12.329069576257254 -0,2120,31,6,2,85,24,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,15.075921269563198,11.087969314495009,11.087969314495009 -0,1950,31,3,1,135,20,1,0,0,0,1,0,1,2,1,1,1,1,1,0,0,0,0,0,0,0,1,0,17.742887555593576,8.951762178172778,8.951762178172778 -0,1380,27,10,1,80,23,0,0,0,0,0,1,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,10.500110245317813,8.315316828270136,8.315316828270136 -0,1320,27,9,1,89,15,0,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,11.116114084017848,6.703206029175047,6.703206029175047 -0,850,24,14,1,86,30,0,0,0,1,0,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,6.631064526143872,9.027004494420575,9.027004494420575 -0,1580,30,7,2,109,26,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,12.908221569303516,8.317049469579363,8.317049469579363 -0,1860,29,7,4,98,27,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,16.1274992696776,12.96950087814972,12.96950087814972 -0,1800,30,6,1,110,18,0,0,0,1,0,0,1,2,0,0,0,1,0,1,0,0,0,0,0,0,1,0,11.470663291738859,4.3346817984646275,4.3346817984646275 -0,1550,30,7,3,66,30,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,6.5874107580851575,5.544144993654599,5.544144993654599 -1,1880,31,9,1,112,33,1,0,0,0,1,0,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,20.579751573188084,14.916908814903968,20.579751573188084 -1,1915,31,10,2,96,29,1,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,21.269976246138164,15.482842156737668,21.269976246138164 -0,1910,32,8,3,104,34,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,30.117519889542628,21.125374772864213,21.125374772864213 -0,1980,31,6,1,110,15,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,13.918133234221173,7.240781976628121,7.240781976628121 -0,1560,30,8,2,108,29,0,1,1,0,1,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,19.50232731762116,15.533016588915222,15.533016588915222 -0,1210,27,10,3,92,39,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,9.143899278828629,10.581669839177112,10.581669839177112 -0,1470,28,10,2,116,33,0,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,18.64677166010179,13.720083293219512,13.720083293219512 -0,1735,30,8,3,115,29,1,0,1,1,0,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,25.543270165134306,15.85705651766297,15.85705651766297 -0,2175,32,3,3,109,33,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,24.542116316739527,12.231522662232845,12.231522662232845 -0,2200,31,5,2,111,23,1,0,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,16.95036231318456,12.722418226450978,12.722418226450978 -0,1790,28,7,2,102,24,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,11.216769125673746,6.903760821658891,6.903760821658891 -0,2160,31,6,2,104,21,1,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,16.969813989435615,10.17599936890646,10.17599936890646 -0,1700,29,8,1,86,19,1,0,0,1,0,0,1,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,10.614468061756734,8.260591924859064,8.260591924859064 -0,1270,26,10,2,105,29,1,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,10.654724869599297,7.408128380046032,7.408128380046032 -0,1300,26,10,2,112,22,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,1,0,11.761576676928922,7.683485100803084,7.683485100803084 -0,1950,31,6,1,105,18,1,0,1,0,1,0,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,12.030162382314966,10.460374817965395,10.460374817965395 -0,670,23,14,1,90,34,0,0,0,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,7.410066539374981,7.16278693221978,7.16278693221978 -0,2360,32,2,2,92,34,0,0,1,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,22.34497386869309,9.347392210388243,9.347392210388243 -0,1340,25,10,1,103,28,0,0,0,0,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,9.469992477879654,7.270423318227152,7.270423318227152 -0,1100,27,13,3,88,39,0,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,14.769930500771554,15.268942646547927,15.268942646547927 -0,1440,29,9,2,109,33,0,0,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,15.008800172738255,7.034169655263305,7.034169655263305 -0,1000,24,12,4,63,30,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,-6.831006980704785,6.512046195837888,6.512046195837888 -0,2240,29,6,1,108,20,1,0,0,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,12.80642935571041,10.72007800991801,10.72007800991801 -0,1870,29,6,3,94,39,1,0,1,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,28.00338599707001,14.996959964145315,14.996959964145315 -0,1700,29,8,2,62,34,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,10.979811257888116,8.89125328023237,8.89125328023237 -0,1140,25,10,2,78,25,0,0,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,3.4990363281012247,5.773638369848921,5.773638369848921 -0,1720,29,9,1,100,24,1,0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,14.3208788786263,9.999872070326248,9.999872070326248 -0,1310,25,10,3,110,33,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,17.387826762841563,15.832561545491302,15.832561545491302 -0,2090,31,7,1,99,18,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,13.768874224732482,8.827590313552676,8.827590313552676 -0,1930,30,6,1,92,21,1,0,0,1,0,0,1,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,11.214813879091771,8.572700659820025,8.572700659820025 -0,2240,29,6,1,111,21,1,0,0,1,0,0,1,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,15.720529510659066,10.134561212808235,10.134561212808235 -0,2340,32,7,1,97,23,1,0,1,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,18.123421979153342,13.617574359810234,13.617574359810234 -0,2050,30,6,1,130,17,0,0,0,1,0,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,15.202349887634373,10.430961689890605,10.430961689890605 -0,1840,30,5,1,109,18,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,11.93595324750779,7.001837066139132,7.001837066139132 -0,2340,31,7,1,86,29,0,0,1,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,18.110896537688987,14.350654860472048,14.350654860472048 -0,2240,31,5,2,116,31,1,0,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,25.453937585203118,15.665556225077081,15.665556225077081 -0,2260,30,6,1,106,22,1,0,1,1,0,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,18.587203977158634,13.700945254288692,13.700945254288692 -0,2320,31,6,3,110,26,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,17.261475732574603,10.847855437410544,10.847855437410544 -0,2250,31,4,1,81,35,0,0,0,0,0,1,1,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,13.552037526908272,12.36970129272518,12.36970129272518 -0,1800,30,3,2,50,20,0,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,2.210638718785747,-0.5127083876776957,-0.5127083876776957 -0,1840,29,9,1,103,26,0,0,1,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,16.89296037981081,14.482947093890223,14.482947093890223 -0,2500,33,4,2,97,35,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,24.151052041041616,13.598975561443742,13.598975561443742 -0,1935,29,9,4,108,26,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,15.563401587652624,13.452813112975516,13.452813112975516 -0,1540,28,8,3,93,29,0,0,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,12.5763190250002,10.748388344760915,10.748388344760915 -0,1920,30,9,2,96,22,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,13.20523928731113,8.671811292451917,8.671811292451917 -0,2070,30,8,2,88,22,1,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,12.37817359580888,7.033381269304906,7.033381269304906 -0,1960,31,6,1,96,30,1,0,1,0,0,1,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,20.147185403304228,13.610503495601407,13.610503495601407 -0,1950,30,6,2,97,39,0,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,21.65495518496326,11.92957096462926,11.92957096462926 -0,1210,27,6,4,66,24,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,-2.493823743170534,2.8105587625032307,2.8105587625032307 -0,2180,32,6,2,93,23,0,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,12.148052177049241,9.672074163232441,9.672074163232441 -0,1310,26,10,4,105,39,0,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,19.65406134781167,17.101703767931316,17.101703767931316 -0,2500,32,6,1,97,26,1,0,0,1,0,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,19.40056874236315,14.40153894029663,14.40153894029663 -0,1440,27,10,1,109,20,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,12.737417810807138,8.651634484358638,8.651634484358638 -0,1040,25,10,4,106,28,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,3.52355732499349,9.191037884024515,9.191037884024515 -0,2170,31,6,3,121,16,1,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,15.638279242238399,7.758651266768098,7.758651266768098 -0,2460,34,3,2,77,22,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,10.860980240186457,4.801834606739165,4.801834606739165 -0,2300,30,5,1,97,19,0,0,0,1,0,0,1,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,12.056587200010688,8.962411560060366,8.962411560060366 -0,1450,28,10,2,109,18,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,12.548117207045046,7.679416121362667,7.679416121362667 -1,2130,31,5,4,116,37,1,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,33.37118286733951,18.172275805127445,33.37118286733951 -1,2250,32,5,1,115,28,1,0,1,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,1,0,0,22.650266599360823,16.42663013529384,22.650266599360823 -1,1830,29,6,1,94,31,1,0,1,0,0,0,0,2,0,1,1,1,0,1,0,0,0,0,0,1,0,0,17.0582117040437,10.505339951540567,17.0582117040437 -0,2000,31,4,2,133,18,1,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,16.45598323236011,9.287097869130111,9.287097869130111 -0,1970,29,12,2,37,16,1,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,11.169756147935576,4.738391890194863,4.738391890194863 -0,1480,30,9,1,118,18,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,14.258941610453949,9.24989423745989,9.24989423745989 -0,2000,32,5,1,108,20,1,0,1,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,1,0,0,13.798499123817061,11.5753199699317,11.5753199699317 -0,1650,29,9,2,115,30,1,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,16.991316505476046,10.262771167779128,10.262771167779128 -0,2235,31,4,1,96,21,1,0,0,1,0,0,1,2,1,1,0,1,0,1,0,0,0,0,0,1,0,0,14.67756822609408,9.10542308216367,9.10542308216367 -1,2110,30,5,1,105,21,1,0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,1,0,0,12.316675059576927,8.488381599640636,12.316675059576927 -0,1380,27,10,2,79,17,1,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,9.947169917927642,4.593207829439618,4.593207829439618 -0,2140,31,6,4,85,27,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,19.55054888129976,11.469953082927484,11.469953082927484 -0,1990,30,4,2,111,27,1,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,14.290947470585856,8.427362081770076,8.427362081770076 -0,1810,30,7,3,107,32,0,0,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,18.35683961648482,13.876368322399818,13.876368322399818 -0,1890,31,8,1,109,22,1,0,0,0,0,1,0,2,0,1,0,1,0,1,0,0,0,0,0,0,1,0,14.99288431397456,10.455237136591434,10.455237136591434 -1,1870,32,6,2,103,17,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,0,13.349908495537974,5.376004545234844,13.349908495537974 -0,2000,32,8,3,97,21,0,1,0,1,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,18.2342916027522,13.148633763127291,13.148633763127291 -0,1620,29,7,4,102,24,0,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,10.314496594084387,9.332901363859817,9.332901363859817 -0,2320,31,6,3,78,42,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,25.711877753485037,12.042109494245594,12.042109494245594 -0,1860,30,10,1,79,22,1,0,0,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,12.136182165978427,11.5672818513593,11.5672818513593 -0,1370,29,7,4,110,32,0,0,1,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,18.085971041598665,16.919170901415214,16.919170901415214 -0,1260,26,11,1,98,23,1,0,0,0,1,0,0,2,0,1,1,1,0,1,0,0,0,0,0,0,1,0,11.218811044956505,8.729983632753612,8.729983632753612 -1,1230,27,10,1,114,26,1,0,1,0,0,0,1,2,0,1,1,1,0,1,0,0,0,0,0,1,0,0,16.70990733576088,12.255556631907751,16.70990733576088 -0,2180,31,6,1,106,28,0,0,1,0,0,0,1,2,0,1,1,1,0,1,0,0,0,0,0,1,0,0,20.044549103053694,14.235369945074535,14.235369945074535 -0,2430,32,5,2,94,22,0,0,1,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,15.849041187200314,11.593264394034534,11.593264394034534 -1,2500,31,4,1,74,30,0,0,0,0,1,0,0,2,1,1,1,1,0,1,0,0,0,0,0,1,0,0,16.603004665910742,12.439802287861793,16.603004665910742 -0,2450,33,3,2,100,31,1,0,1,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,0,24.038894715417257,11.679121609195048,11.679121609195048 -0,2000,32,7,2,85,22,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,12.114225853043534,6.690120263476883,6.690120263476883 -0,1700,29,6,2,92,25,1,0,0,1,0,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,11.2895572224559,6.448091691376671,6.448091691376671 -0,2430,33,6,2,70,19,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,12.00112787092823,5.670755166521891,5.670755166521891 -0,2080,31,8,4,105,33,1,0,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,21.115490783995448,14.579291388959618,14.579291388959618 -0,2380,33,6,4,85,29,0,0,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,25.970446213806433,14.077103031785827,14.077103031785827 -0,2130,32,4,1,124,17,1,0,0,1,0,0,0,2,0,1,0,1,0,1,0,0,0,0,0,0,0,1,14.07948812391033,7.366510085386172,7.366510085386172 -0,2400,34,3,1,87,22,0,0,0,0,0,1,0,2,0,1,1,0,0,1,0,0,0,0,0,0,1,0,7.630160980226187,6.960339924229292,6.960339924229292 -0,1840,30,6,2,120,26,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,0,14.088081648433567,8.19846265769673,8.19846265769673 -0,1980,30,4,1,112,21,1,0,1,0,0,1,0,2,0,1,1,1,0,1,0,0,0,0,0,0,0,1,14.105945601971953,10.369329667503138,10.369329667503138 -1,1620,28,6,1,95,28,1,0,1,0,1,0,0,2,1,0,1,1,0,0,1,0,0,0,0,1,0,0,17.425717654828745,8.221441400821696,17.425717654828745 -0,1620,28,7,1,104,17,1,0,0,1,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,12.691593889011944,7.8083161430465315,7.8083161430465315 -0,1850,30,9,2,76,21,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,0,1,0,0,14.110754075906538,10.879889389504633,10.879889389504633 -1,960,24,11,1,106,22,1,0,1,0,1,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,11.948850448603638,10.170520015765613,11.948850448603638 -0,1550,29,6,1,102,23,0,1,0,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,9.65987056115653,10.068844146585171,10.068844146585171 -0,1800,29,6,1,107,34,1,0,0,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,18.665611064261732,12.337036388172061,12.337036388172061 -0,1900,29,8,2,109,37,1,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,31.59002947225365,18.63716614663776,18.63716614663776 -1,2150,31,3,3,121,25,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,25.173177320168513,16.465755615253105,25.173177320168513 -1,2210,32,5,3,104,27,0,0,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,17.562804789275994,12.989822491350465,17.562804789275994 -0,2150,31,6,1,80,32,1,0,1,0,0,1,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,24.825487562611166,17.315970083563094,17.315970083563094 -0,1925,31,5,1,115,27,0,1,0,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,0,0,1,16.18671977084839,13.474492224515506,13.474492224515506 -0,2250,32,6,3,100,36,1,0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,34.42829404447292,18.99121035526275,18.99121035526275 -0,1775,30,8,1,92,21,1,0,1,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,16.302101053848325,13.108161525476252,13.108161525476252 -0,2020,32,9,1,91,30,0,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,19.52368647586207,15.758197640396652,15.758197640396652 -0,1620,28,8,1,88,32,0,0,1,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,16.679738008461886,12.781042373330894,12.781042373330894 -1,1950,32,6,1,106,23,0,0,0,0,0,1,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,15.817671180835259,13.310557259528544,15.817671180835259 -0,900,24,12,2,117,23,0,0,0,0,1,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,1,9.900233152140864,6.8607018316872175,6.8607018316872175 -0,2140,32,5,1,90,20,1,0,1,1,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,0,0,1,15.714452200163349,10.344112509796846,10.344112509796846 -0,1660,29,11,2,96,28,1,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,22.241747100666522,14.891801494655422,14.891801494655422 -0,1540,29,6,1,111,18,1,0,0,1,0,0,1,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,12.933209471720536,8.04739216830121,8.04739216830121 -0,1080,25,13,1,112,34,0,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,20.542637122841423,14.92854027466823,14.92854027466823 -1,1890,30,7,1,96,31,0,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,17.477146335283845,13.344394253300688,17.477146335283845 -0,1600,28,10,2,75,32,0,0,1,1,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,12.12450541221218,11.233557640994126,11.233557640994126 -0,1325,30,10,1,103,18,0,0,0,1,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.051670321710493,10.536645023016955,10.536645023016955 -0,1840,30,10,1,98,39,1,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,35.03155195599374,21.785946262208093,21.785946262208093 -0,1080,27,12,1,111,31,1,0,0,0,0,1,0,2,1,1,1,1,0,0,1,0,0,0,0,0,1,0,20.73403953703978,16.256764817137814,16.256764817137814 -0,1517,29,10,1,73,34,0,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,17.559998331437498,13.914671401883137,13.914671401883137 -0,2300,31,5,1,95,27,1,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,20.812795200561336,15.252697716974183,15.252697716974183 -0,1240,25,13,1,95,28,1,0,1,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,19.117935096468116,14.384786897071693,14.384786897071693 -0,1490,29,5,2,71,33,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,12.72682287421949,6.042660486336048,6.042660486336048 -0,2150,31,5,1,91,30,0,0,0,0,1,0,1,2,1,0,1,1,0,0,1,0,0,0,0,1,0,0,17.88962431043972,9.015293730282327,9.015293730282327 -0,1730,29,8,2,91,35,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,20.296331874664027,13.361350693289616,13.361350693289616 -0,2320,30,4,3,108,34,1,0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,28.889986544102104,15.890436860238417,15.890436860238417 -0,1370,28,10,2,79,32,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,13.947004369377538,11.463466084953808,11.463466084953808 -0,2050,31,6,2,95,29,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,17.832540721165472,10.173230305735547,10.173230305735547 -0,1610,28,6,1,105,21,1,0,1,0,1,0,1,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,16.11064555588568,10.599822870036661,10.599822870036661 -0,1150,27,11,1,92,30,1,1,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,14.746222038626222,12.858181326867573,12.858181326867573 -0,1675,31,8,1,97,27,0,0,1,0,1,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,19.612684918186513,15.224649608247109,15.224649608247109 -0,2466,33,4,1,91,20,0,0,1,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.023160850186514,12.107417950143724,12.107417950143724 -0,950,25,14,1,105,14,1,0,0,1,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,16.203576434512424,8.38651458087098,8.38651458087098 -0,1320,27,10,2,64,26,1,0,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,5.673217573488731,4.761076493344312,4.761076493344312 -0,2100,31,4,2,104,34,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,30.402173229165722,13.662996710040368,13.662996710040368 -0,910,36,9,1,120,26,0,0,1,0,1,0,1,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,14.126812494714953,20.616941264926783,20.616941264926783 -0,2140,31,8,1,71,27,0,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,14.502161858767442,12.275012574122895,12.275012574122895 -0,2460,33,3,3,94,30,0,0,0,1,0,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,22.093103842008496,11.85402197774768,11.85402197774768 -0,2390,34,6,2,95,34,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,33.44736551676878,18.331419942872557,18.331419942872557 -0,2050,31,4,1,116,23,0,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,14.827102394612343,13.148852303851267,13.148852303851267 -0,1880,30,8,1,100,25,0,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,17.614565312556287,15.267699070685191,15.267699070685191 -0,1350,29,9,1,112,29,1,0,1,0,0,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,18.918965955720253,14.77823776064456,14.77823776064456 -0,2340,32,3,2,86,32,0,0,0,1,0,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,18.435445683332006,10.083037487579904,10.083037487579904 -0,2495,32,5,1,102,16,1,0,0,1,0,0,1,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,15.916185549010532,9.51482695958452,9.51482695958452 -1,2155,31,8,1,93,23,1,0,0,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,15.303217682068652,13.33892133706364,15.303217682068652 -0,740,26,11,1,52,34,1,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,2.548578481436815,10.024377921338363,10.024377921338363 -0,1300,28,8,1,116,30,1,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,17.3862772839838,13.30199605578218,13.30199605578218 -0,2353,31.805115262959,4,1,110,29,1,0,0,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,20.17104960229659,14.674825153177505,14.674825153177505 -0,1220,28,10,1,117,29,1,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,18.05265661280216,14.659629792866138,14.659629792866138 -0,1910,31,6,2,103,22,0,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,13.108203865992733,6.688957113746124,6.688957113746124 -0,2310,34,4,2,108,28,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,29.488365448961744,15.06860108049797,15.06860108049797 -0,1350,28,9,1,118,23,0,0,1,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.473924556684164,13.224837659215655,13.224837659215655 -0,1720,31,6,1,103,26,1,0,0,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.123506605667146,10.814016691002948,10.814016691002948 -1,2020,30,8,2,84,18,1,0,1,1,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,15.41774860196999,7.785463861980989,15.41774860196999 -0,790,23,14,4,84,38,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,10.212783345590609,18.447480621684086,18.447480621684086 -0,1920,31,5,1,129,23,1,0,1,0,1,0,1,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,24.425045728686104,15.173660499696771,15.173660499696771 -1,1970,31,4,1,117,31,0,0,1,0,1,0,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,20.844270265179457,14.8532204447585,20.844270265179457 -0,1650,30,7,1,102,28,0,1,0,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.105094522480627,12.100458099437489,12.100458099437489 -0,2420,33,6,1,84,27,0,1,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,21.34743979546092,17.410109809420298,17.410109809420298 -0,1240,27,10,1,97,30,0,0,1,0,1,0,1,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,17.2288026898581,13.77214930004345,13.77214930004345 -0,2330,33,3,1,111,16,0,0,0,1,0,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,13.879712827927467,7.872955758923405,7.872955758923405 -1,1210,27,10,3,101,26,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,16.649236089095417,16.45791904119897,16.649236089095417 -0,1725,28,9,1,81,22,1,0,1,1,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,14.80053540134059,11.241912477644675,11.241912477644675 -0,2300,32,4,3,109,33,1,0,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,30.711137532966134,16.47646181669264,16.47646181669264 -0,2030,32,5,2,120,25,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,19.464911665823713,12.46392614262454,12.46392614262454 -0,2490,34,4,3,102,28,0,0,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,21.09499781366516,14.098329824731366,14.098329824731366 -0,1710,33,5,1,117,19,1,0,1,1,0,0,1,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,17.15295067000359,11.06915716733794,11.06915716733794 -0,2250,33,4,1,111,27,1,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,22.328416169300773,15.920726334891746,15.920726334891746 -1,1600,29,7,1,95,19,1,1,1,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,12.472634614447148,9.78110221619636,12.472634614447148 -0,2110,31,6,1,90,27,0,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,18.874948040949867,13.132441840441631,13.132441840441631 -0,2450,32,4,1,94,23,0,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,15.564927606955727,11.73862815079448,11.73862815079448 -1,1786,31,8,1,103,36,1,0,1,0,0,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,28.17803285747758,18.350453808589833,28.17803285747758 -1,1440,29,9,1,101,33,0,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,20.69828766297703,15.193162308496317,20.69828766297703 -1,1175,26,10,4,85,24,0,0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,6.791637374031607,14.785230041601238,6.791637374031607 -0,1550,28,10,1,88,27,1,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,18.468677648039957,14.054508992891394,14.054508992891394 -0,2250,34,6,1,91,30,0,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,22.49768673590593,16.273276413792583,16.273276413792583 -1,1600,29,6,2,108,30,0,0,0,0,1,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,13.306750075020432,8.98958178914264,13.306750075020432 -0,2211,33,4,1,95,31,1,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,23.692860149925387,15.912021927239293,15.912021927239293 -0,2330,32,5,2,111,38,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,38.68981710543467,19.03000581639655,19.03000581639655 -1,1890,31,6,2,90,34,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,23.976855392109826,12.751311333359713,23.976855392109826 -0,1975,31,7,3,96,32,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,25.165510569675195,17.927953768337034,17.927953768337034 -1,1230,26,10,1,114,32,1,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,18.216529245272216,13.480055706837227,18.216529245272216 -0,900,25,13,1,119,32,1,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,17.753514566407475,14.653485822957828,14.653485822957828 -0,2210,33,6,2,117,26,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,23.475718972274013,17.199512238491746,17.199512238491746 -0,1770,30,9,1,106,25,1,0,1,0,1,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,19.117189917568382,15.520043110923153,15.520043110923153 -0,1810,30,10,1,95,36,0,0,1,0,0,1,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,25.35240418957411,18.702811949134396,18.702811949134396 -1,2440,33,5,2,76,29,1,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,23.92416929931261,11.934864742159498,23.92416929931261 -0,740,27.8475792129439,13,1,96,31,0,0,1,0,0,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,11.647467334722965,15.818171760266363,15.818171760266363 -0,2495,33,3,1,98,22,1,0,1,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,16.954482175928483,13.41820516465705,13.41820516465705 -1,2425,34,4,1,88,30,1,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,25.96536744420757,15.102793315959193,25.96536744420757 -0,1706,28,9,3,109,22,1,0,0,0,1,0,1,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.067984365859225,12.862134142076334,12.862134142076334 -0,1700,30,3,1,107,28,1,0,1,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,15.360989367520563,11.743868147988147,11.743868147988147 -1,2040,29,8,1,85,17,0,0,0,1,0,0,1,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,11.51898279016892,8.977576460038847,11.51898279016892 -0,1644,30,8,1,17,35,1,0,1,0,0,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,8.89659647808916,8.172320339197174,8.172320339197174 -1,1950,31,8,1,68,21,0,0,1,0,1,0,1,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,9.155557378918942,11.310578210213166,9.155557378918942 -0,1490,27,7,2,124,27,1,0,1,0,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,19.335117633861127,14.238669574054102,14.238669574054102 -0,1590,28,8,1,102,19,1,0,0,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,13.962354032873058,9.48324512799055,9.48324512799055 -0,1690,29,6,1,107,21,1,0,0,0,0,1,1,2,0,1,1,1,0,0,1,0,0,0,0,0,0,1,12.982930463906179,9.76026271774851,9.76026271774851 -0,920,25.8337597241784,14,1,104,26,0,0,1,0,0,1,0,2,0,1,1,1,0,0,1,0,0,0,0,0,1,0,16.7585250655997,15.527038839310414,15.527038839310414 -0,2000,31,3,1,116,29,1,0,0,0,1,0,0,2,1,1,1,1,0,0,1,0,0,0,0,1,0,0,20.889480767149394,11.424774682716222,11.424774682716222 -1,1871,31,4,1,105,22,1,0,1,0,0,1,0,2,0,1,0,1,0,0,1,0,0,0,0,1,0,0,13.776775515052186,10.95455387473935,13.776775515052186 -0,1490,28,6,2,122,22,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,0,0,0,0,1,0,15.31148236955767,6.769816668326893,6.769816668326893 -0,1460,28,9,2,87,28,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,13.38868561141916,9.248780026082615,9.248780026082615 -0,1900,31,6,1,109,34,0,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,24.17315899699152,16.05003475950749,16.05003475950749 -0,1980,30,6,4,114,22,1,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,0,20.79602724924002,18.689518250620196,18.689518250620196 -0,1600,30,7,1,123,26,0,0,1,0,0,1,0,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,16.450376929281926,14.814611661222406,14.814611661222406 -0,1100,29,8,2,106,36,1,1,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,17.14428069924393,12.914337156436282,12.914337156436282 -1,1980,32,6,1,102,25,1,0,0,0,1,0,1,2,1,0,0,1,0,0,1,0,0,0,0,1,0,0,16.55284491240925,7.864949314588595,16.55284491240925 -1,1580,31,7,2,110,32,0,1,1,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,21.447776091417985,14.55937542350987,21.447776091417985 -0,1930,30,5,1,115,35,1,0,1,0,0,0,0,2,0,1,1,1,0,0,1,0,0,0,0,1,0,0,27.03558048790261,15.49845656245203,15.49845656245203 -0,1240,28,6,3,68,25,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,8.233414948810553,6.688262481141509,6.688262481141509 -0,1360,28,8,2,93,22,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,11.483821209150165,10.409511168899812,10.409511168899812 -0,1540,29,8,2,103,29,1,0,0,1,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,18.809808051764477,13.884031217304774,13.884031217304774 -0,800,24,9,1,99,18,1,0,0,0,1,0,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,9.893094718791497,8.349673093411214,8.349673093411214 -0,880,24,8,2,79,23,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,2.423569050253926,6.6612535479367025,6.6612535479367025 -0,1610,30,3,3,95,29,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,13.07724658808027,7.697075957271285,7.697075957271285 -0,940,25,14,2,77,21,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,13.883131332029503,12.66870969158304,12.66870969158304 -0,2100,29,3,2,58,28,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,6.802733309463253,4.697777481701423,4.697777481701423 -0,2290,33,5,3,80,23,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,19.481360290861105,10.614878703766557,10.614878703766557 -0,2400,31,8,1,63,29,1,0,0,0,0,1,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,17.604403371168008,17.07451499149618,17.07451499149618 -0,1916,31,7,1,116,19,1,0,1,0,0,1,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,16.345572398558122,14.221356639405085,14.221356639405085 -0,2390,34,5,4,84,30,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,26.030186110507298,16.969299643730345,16.969299643730345 -0,2470,33,6,1,85,16,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,12.989570393814017,11.824853068448283,11.824853068448283 -0,1880,30,7,4,106,21,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,13.21279130544239,12.60829521597316,12.60829521597316 -0,1760,30,6,1,109,28,1,0,1,1,0,0,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,19.33089335255692,16.401744211001585,16.401744211001585 -0,1780,30,6,3,118,36,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,24.256215439581755,17.36927712304177,17.36927712304177 -0,1520,28,8,2,103,18,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,11.859533042428351,8.015390954987232,8.015390954987232 -0,960,24,9,3,82,32,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,2.236157742240165,7.017991578596527,7.017991578596527 -0,2010,30,4,3,116,22,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,13.402660723589804,8.773331848759526,8.773331848759526 -0,2320,31,4,1,102,18,1,0,0,1,0,0,0,2,1,1,1,1,0,0,0,1,0,0,0,0,1,0,16.925024512900244,12.490115337985408,12.490115337985408 -0,2000,30,8,2,108,16,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,15.584043669580042,9.78837093871456,9.78837093871456 -0,900,23,14,4,84,35,1,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,3.874670657419612,16.684696610802035,16.684696610802035 -0,1980,29,5,1,112,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,12.827488298384711,9.992153287140688,9.992153287140688 -1,960,24,12,1,96,29,1,0,1,0,0,1,0,2,0,1,1,1,0,0,0,1,0,0,0,1,0,0,16.593028264073723,13.477601385681377,16.593028264073723 -1,2240,32,8,4,89,26,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,19.110787998552482,13.621370095672622,19.110787998552482 -1,2260,33,6,2,106,20,1,0,1,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,17.371618448725183,16.06424928437516,17.371618448725183 -0,1740,30,7,1,126,18,0,0,0,0,1,0,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,11.556018702119319,13.093660598199127,13.093660598199127 -0,2210,30,4,4,106,24,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,17.282259877669496,14.720550901850409,14.720550901850409 -0,800,27,10,1,89,26,0,0,0,1,0,0,1,2,1,1,0,0,0,0,0,1,0,0,0,1,0,0,9.313183482559783,12.027168565222848,12.027168565222848 -0,860,24,7,2,93,27,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,8.26633984271377,8.718263695692357,8.718263695692357 -0,2200,32,7,4,110,23,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,20.004994980078,14.760246737970254,14.760246737970254 -0,2420,33,3,2,110,19,0,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,10.893138895026997,7.936201937251753,7.936201937251753 -0,940,26,6,2,111,27,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,7.031569433224414,9.236722272077506,9.236722272077506 -1,1140,27,7,4,94,26,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,1,0,0,5.181390558601812,10.275754367681126,5.181390558601812 -0,2480,34,6,3,81,18,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,17.018232697317416,8.72421927683062,8.72421927683062 -0,2360,31,6,2,92,17,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,13.223155415228064,8.397005938662128,8.397005938662128 -0,1060,26,9,2,76,19,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,8.189722684117909,6.463795306242414,6.463795306242414 -0,880,25,12,1,99,15,1,0,0,1,0,0,1,2,0,0,0,1,0,0,0,1,0,0,0,0,1,0,13.251988598364644,9.120005848978245,9.120005848978245 -0,750,24,13,1,107,20,1,0,0,1,0,0,1,2,1,1,0,1,0,0,0,1,0,0,0,0,1,0,16.216959479638767,12.47062743884242,12.47062743884242 -0,1640,29,6,4,122,25,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,1,0,18.82607831040138,20.89293360355762,20.89293360355762 -0,1380,27,11,1,108,15,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,14.968320207025581,11.156528220934623,11.156528220934623 -0,820,26,10,4,110,24,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,11.990598147500961,21.459088135922887,21.459088135922887 -0,2280,29,6,1,74,20,0,0,0,1,0,0,1,2,0,1,0,1,0,0,0,1,0,0,0,0,0,1,9.049835758934503,11.792240195479538,11.792240195479538 -0,2080,32,6,2,87,19,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,9.940580293618503,7.698756937226937,7.698756937226937 -0,1920,30,7,1,116,17,0,0,0,1,0,0,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,14.364594936047759,13.313359158754672,13.313359158754672 -0,2440,33,5,2,98,20,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,14.601272418995674,9.410522430756506,9.410522430756506 -0,840,25,10,4,119,34,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,11.15532399576685,19.976213604783318,19.976213604783318 -0,840,24,11,3,103,26,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,7.2467943231331,12.118357183199068,12.118357183199068 -0,1480,28,6,1,111,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,12.22892587656209,9.531555155547062,9.531555155547062 -0,1900,30,6,1,115,17,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,0,1,0,13.535808450418713,10.717042247304182,10.717042247304182 -0,980,25,12,1,109,22,1,0,0,0,1,0,0,2,0,1,1,1,0,0,0,1,0,0,0,0,1,0,12.861421594847736,11.80327169834602,11.80327169834602 -0,1760,31,7,4,101,23,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,15.553757370895347,12.399302997791365,12.399302997791365 -0,1380,26,10,3,88,27,1,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,7.211293302980671,9.941944906621487,9.941944906621487 -0,2340,32,6,3,90,22,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,16.259177444879573,10.019543276615359,10.019543276615359 -0,1840,30,6,3,125,25,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,15.327609097720728,11.971935657255344,11.971935657255344 -1,2140,31,5,1,111,16,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,1,0,0,0,1,0,0,12.4494038415647,10.431107078474088,12.4494038415647 -0,2460,33,6,2,93,21,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,0,1,0,17.924564456579592,15.391529221225134,15.391529221225134 -0,2380,32,6,2,67,22,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,11.115226131193747,10.63403399296719,10.63403399296719 -0,1280,26,9,1,96,20,1,0,0,0,1,0,1,2,0,1,0,1,0,0,0,1,0,0,0,1,0,0,10.20605328556277,9.747189841769027,9.747189841769027 -0,2200,32,6,4,89,22,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,1,17.25239662259383,10.375668966243005,10.375668966243005 -0,2230,33,6,4,113,27,1,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,20.90265690099138,9.737535569399707,9.737535569399707 -0,1570,28.5614470786938,6,3,105,25,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,9.04988555274716,8.276017090341915,8.276017090341915 -0,1500,27,6,2,103,20,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,11.797919406865713,5.0859022047723315,5.0859022047723315 -0,840,24,11,3,96,26,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,3.1364722173115567,7.3265952091662685,7.3265952091662685 -0,1170,25,9,2,92,27,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,11.602423893842154,12.663904703166446,12.663904703166446 -0,1690,31,6,2,108,31,1,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,23.044416752130648,15.87387212266597,15.87387212266597 -0,1250,28,5,2,92,18,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,6.249353876947653,4.083678074669397,4.083678074669397 -0,2190,30,5,1,99,17,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,11.26033929121781,8.991235274907165,8.991235274907165 -1,2430,32,3,3,46,29,1,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,0,17.067698087574286,9.174995138406217,17.067698087574286 -0,2140,31,5,2,107,34,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,27.01260055019833,19.36441559298198,19.36441559298198 -0,1890,31,6,3,115,25,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,14.027127434131863,11.667865387035237,11.667865387035237 -0,2360,32,3,1,97,17,1,0,0,1,0,0,1,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,11.833133955791093,10.286093875562642,10.286093875562642 -0,2160,29,6,3,112,18,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,12.196549945628572,9.086859901805617,9.086859901805617 -0,1710,29,5,1,117,23,1,0,1,0,0,1,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,13.406661175759194,12.504519495687463,12.504519495687463 -0,946,24,11,2,97,19,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,7.80345027440438,5.941007055046837,5.941007055046837 -0,2460,30,3,1,98,16,1,0,0,1,0,0,0,2,0,1,1,0,0,0,0,0,1,0,0,0,1,0,10.94515979214037,8.868122306185317,8.868122306185317 -0,900,25,13,2,85,31,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,10.594709201034963,12.50791011818851,12.50791011818851 -0,2190,29.1597043410632,8,1,32,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,11.071120335546798,7.853390949125379,7.853390949125379 -0,936,25,12,3,100,31,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,6.726302229834602,10.698155446269393,10.698155446269393 -0,1750,28,4,4,108,42,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,27.15416508519677,20.54874022104267,20.54874022104267 -0,2180,31,5,2,87,26,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,11.541262660503682,11.80754144166464,11.80754144166464 -0,2100,31,6,2,119,23,1,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,19.888807620500707,14.929018521274545,14.929018521274545 -0,2370,32,5,2,100,21,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,11.390178718151706,9.708040326853105,9.708040326853105 -0,1690,28,7,1,107,18,1,0,0,0,1,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,10.755081644385132,7.923503366483196,7.923503366483196 -0,1640,30,6,1,105,20,1,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,10.132212439391612,10.577408481202346,10.577408481202346 -0,2050,29,4,1,113,24,0,0,0,0,0,1,0,2,0,1,1,1,0,0,0,0,1,0,0,1,0,0,9.899147740081883,11.884815532876932,11.884815532876932 -0,740,23,14,1,96,19,1,0,0,1,0,0,1,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,10.349995286627273,8.195226704094996,8.195226704094996 -0,1980,29,4,1,93,18,0,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,6.433595742099167,8.243041840520926,8.243041840520926 -0,2350,33,5,2,109,26,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,20.913597055182983,16.357864250296963,16.357864250296963 -0,2040,28,6,1,93,26,0,0,1,0,0,1,0,2,1,1,1,1,0,0,0,0,1,0,0,0,1,0,16.056675333130418,15.734723754712801,15.734723754712801 -1,2340,30,9,1,67,35,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,1,0,0,24.435706198611395,19.36585720669153,24.435706198611395 -0,2340,31,4,2,109,21,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,12.965300286023032,8.368750207819252,8.368750207819252 -0,2420,34,6,1,72,23,0,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,1,0,0,0,1,0,17.136682841511444,15.630380985883248,15.630380985883248 -0,2080,31,6,3,101,24,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0,1,16.917429163085686,11.13094951315609,11.13094951315609 -0,1730,29,7,1,98,14,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,12.268351322787353,7.534029595898835,7.534029595898835 -0,2140,30,4,3,121,23,0,0,1,1,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,21.010444688082494,14.171070491772836,14.171070491772836 -0,1440,28,7,2,105,18,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0,0,1,0,12.276399518388464,3.1642912660209195,3.1642912660209195 -0,1700,28,5,2,105,19,0,0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,11.664798137536419,5.841058423677142,5.841058423677142 -0,1780,28,6,1,103,24,1,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,13.970593542879188,13.36536359235403,13.36536359235403 -0,1690,29,7,3,100,22,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,15.108868887000297,15.21712445884178,15.21712445884178 -0,1130,26,7,1,112,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,10.672616253394992,7.447483937916895,7.447483937916895 -0,1750,28,7,1,108,16,1,1,0,1,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,14.043403153820728,10.499878271090846,10.499878271090846 -0,2010,30,5,2,112,29,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,18.496748456914098,16.746428128586352,16.746428128586352 -0,2160,32,4,3,106,24,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,13.252433984159701,10.206156623220574,10.206156623220574 -0,1740,29,4,1,107,21,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,9.810389781126668,9.033260429527363,9.033260429527363 -0,2160,30,3,1,120,18,1,0,0,1,0,0,1,2,1,1,0,0,0,0,0,0,1,0,0,0,1,0,15.36966581915847,7.767530647598947,7.767530647598947 -0,2310,31,6,1,107,15,0,0,0,1,0,0,0,2,0,1,0,0,0,0,0,0,1,0,0,0,1,0,12.367468252128322,8.728272936471999,8.728272936471999 -0,2330,30,7,1,88,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,1,0,0,0,1,0,13.66983929452049,10.12023199593487,10.12023199593487 -0,2130,31,4,1,118,22,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,14.844760917447829,13.741172787394007,13.741172787394007 -0,1770,29,6,2,105,27,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,19.842873520838218,14.021266829478677,14.021266829478677 -0,1050,26,12,4,38,31,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,-4.920728864308575,6.939065188642601,6.939065188642601 -0,1900,29,10,3,103,22,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,12.879826741572824,11.762505303437806,11.762505303437806 -0,2420,32,3,1,97,29,0,0,0,0,1,0,1,2,0,1,1,0,0,0,0,0,1,0,0,0,1,0,14.081273317859669,13.45621920932338,13.45621920932338 -0,1191,28,12,2,97,18,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,13.017805201603919,8.871948166417164,8.871948166417164 -0,1880,30,3,1,94,32,1,0,0,0,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,0,1,0,11.454953542406088,10.912620928109046,10.912620928109046 -0,1910,31,5,1,95,25,0,0,1,0,0,1,0,2,1,1,1,1,0,0,0,0,1,0,0,0,1,0,15.79683278802157,15.520149776230447,15.520149776230447 -0,900,25,12,1,94,16,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,14.044957011840243,8.259250250693109,8.259250250693109 -0,1010,26,10,4,117,19,1,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,11.510135000095577,18.252979452844905,18.252979452844905 -0,1460,27,10,2,99,18,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,12.185558061700226,6.727739820843882,6.727739820843882 -0,760,26,11,1,97,19,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,12.056291436213336,9.775188080829919,9.775188080829919 -0,1300,26,10,1,111,22,1,0,1,1,0,0,1,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,15.25543486716603,12.442335923925102,12.442335923925102 -0,1210,26,10,2,104,18,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.067768308268185,9.132227945430087,9.132227945430087 -0,1560,28,9,3,92,20,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,14.794942810524454,13.453805494506957,13.453805494506957 -0,2180,28.5724393724005,5,2,100,18,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,12.41149058184837,8.729928969043034,8.729928969043034 -0,1320,27,10,3,103,18,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,13.205276626288002,12.009707251892175,12.009707251892175 -0,1040,25,12,1,104,32,1,0,1,0,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,15.093930307101173,11.134140631833862,11.134140631833862 -0,1960,29,3,3,98,25,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,8.806781949331075,6.072770316875699,6.072770316875699 -0,1030,26,12,4,108,35,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,0,14.92438117697638,21.982585701827407,21.982585701827407 -0,1210,29,7,1,123,18,0,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,13.162620369253595,9.094852506368941,9.094852506368941 -0,1210,27,10,2,83,18,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,11.33598426111192,8.190401830414384,8.190401830414384 -1,2100,31,6,3,84,23,0,0,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,17.060690009135214,11.457018895551464,17.060690009135214 -0,1960,30,5,2,111,19,1,1,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,15.809139160687975,12.428173874430914,12.428173874430914 -1,1550,31,11,1,80,20,1,0,1,1,0,0,1,2,1,1,0,1,0,0,0,0,0,1,0,1,0,0,17.371352274355793,13.791993294859035,17.371352274355793 -0,2250,30,5,2,113,15,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,12.7811153466257,6.726390419459263,6.726390419459263 -0,2350,31,2,2,107,25,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,0,17.5385372982385,9.443107920246778,9.443107920246778 -0,2290,34,6,1,101,17,0,0,1,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,0,1,16.248338031735752,11.556335335073463,11.556335335073463 -0,2030,28,7,2,95,17,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,14.316317862856053,9.137959347912936,9.137959347912936 -1,1130,28,8,2,103,22,1,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,13.495915157713702,11.42613095953941,13.495915157713702 -1,2020,30,8,2,84,22,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,12.638974678289834,10.137667206392802,12.638974678289834 -0,2340,31,5,3,104,21,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,16.693483969700857,12.879577650069178,12.879577650069178 -0,2170,32,4,4,108,24,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,21.03489087763157,18.13482972656316,18.13482972656316 -0,1470,29,10,1,110,19,0,0,0,0,1,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,13.517304550722917,11.262753760539152,11.262753760539152 -0,1960,28,6,1,107,17,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,14.224018701143669,9.835688947155878,9.835688947155878 -0,2096,32,6,2,98,21,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,14.800108875466496,10.96426951554571,10.96426951554571 -0,1390,28,10,1,80,16,1,0,1,1,0,0,1,2,0,0,1,1,0,0,0,0,0,1,0,1,0,0,14.671704539927449,7.560946058216281,7.560946058216281 -1,2000,32,5,1,104,25,1,0,1,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,18.062534886413232,12.902952418734776,18.062534886413232 -0,2380,34,5,4,105,23,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,26.233066259459626,23.202328391549667,23.202328391549667 -1,2170,31,4,2,72,39,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,19.139680004431128,10.644092608828286,19.139680004431128 -0,1930,29,6,3,101,25,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,20.06561272045662,15.721978920025878,15.721978920025878 -0,1680,29,10,1,102,20,1,0,0,1,0,0,0,2,1,1,1,1,0,0,0,0,0,1,0,1,0,0,19.470792107856994,13.199627163506895,13.199627163506895 -0,1350,27,11,2,111,17,1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,16.794598459531088,12.317982779178731,12.317982779178731 -1,2150,30,5,1,99,19,1,0,0,1,0,0,1,2,0,1,0,1,0,0,0,0,0,1,0,1,0,0,13.347886383379064,9.447042127927116,13.347886383379064 -0,2180,31,7,2,102,20,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,12.319422182203105,8.46903390111241,8.46903390111241 -0,1830,30,6,1,102,17,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,14.38704955394618,9.014478066378604,9.014478066378604 -0,2060,30,6,1,88,19,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,0,1,13.14540492148649,8.857528627665104,8.857528627665104 -0,2110,31,4,3,104,24,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,13.590182497903571,11.863724047339938,11.863724047339938 -0,1910,31,8,2,86,19,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,14.854342867382723,9.820769387096671,9.820769387096671 -0,1200,26,10,2,106,20,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.328433212514176,10.74402401937406,10.74402401937406 -0,1950,31,4,2,116,28,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,19.864093940521308,12.039667083343808,12.039667083343808 -0,2140,33,6,3,94,30,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,25.288088180124877,14.651679356738228,14.651679356738228 -0,2050,31,3,2,116,20,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,1,0,15.276458620980478,4.043806605294472,4.043806605294472 -0,1800,28,6,2,106,16,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.94277983681312,8.720476329385704,8.720476329385704 -0,2500,32,4,4,102,22,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,21.681169680214,18.83531625034274,18.83531625034274 -0,1930,31,6,1,103,19,1,0,0,1,0,0,1,2,1,1,0,0,0,0,0,0,0,1,0,0,1,0,14.976561529227913,9.085601286308192,9.085601286308192 -0,840,24,10,1,116,28,1,0,1,0,1,0,1,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.932070248108062,11.131258728417215,11.131258728417215 -0,1230,27,7,2,133,21,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,12.636598731372452,10.580274128284781,10.580274128284781 -0,1680,28,8,1,87,22,1,0,0,0,1,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,11.89539553910966,9.207769736830766,9.207769736830766 -0,1000,21,10,1,97,20,0,0,0,1,0,0,1,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,8.954948595280973,6.694886182058683,6.694886182058683 -0,1620,26,6,2,108,20,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,10.200937806472547,7.857813118449524,7.857813118449524 -0,960,25,12,4,66,26,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,3.2742232315864994,12.163926720222632,12.163926720222632 -0,1750,29,5,4,81,34,1,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,1,0,0,21.167370403230485,12.872538937570006,12.872538937570006 -0,2340,32,3,2,101,22,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,11.300674690402014,6.885479174970754,6.885479174970754 -0,2400,30,5,3,97,23,1,1,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,14.700045522300083,14.109077031612594,14.109077031612594 -0,1800,28,8,1,92,23,1,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,1,0,1,0,0,17.221818802638644,13.269957092156998,13.269957092156998 -0,1610,28,7,3,92,21,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,11.30533677218536,9.30103572363404,9.30103572363404 -0,2330,32,4,2,108,40,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,36.64135930465642,17.096564246196714,17.096564246196714 -0,920,23,14,2,71,19,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,13.271125340897502,5.2007153854488335,5.2007153854488335 -0,2110,32,8,2,58,19,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,12.863076886375975,5.763969581686328,5.763969581686328 -0,910,24,13,3,95,25,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,9.666823725521953,11.537587131555636,11.537587131555636 -0,1660,31,5,1,73,24,1,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,6.99953165470601,7.871246778582371,7.871246778582371 -0,1950,31,5,2,96,23,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,12.99028047689843,8.98252112844736,8.98252112844736 -0,2190,31,4,2,113,15,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.650896232448744,5.706060807743498,5.706060807743498 -0,2200,30,6,2,113,19,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,13.873092055094965,11.115777473849901,11.115777473849901 -0,1960,30,6,2,99,19,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,13.522989437197218,8.371505845229832,8.371505845229832 -0,1660,29,6,1,51,22,1,0,1,1,0,0,1,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,8.467620288764648,7.04544068551125,7.04544068551125 -0,2070,30,3,3,109,19,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,12.41766066545728,8.54522437634937,8.54522437634937 -0,2020,28,4,2,105,19,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,9.402777419215724,5.0633016220718,5.0633016220718 -0,1500,27,9,2,109,22,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,11.817162013149604,7.503235123726947,7.503235123726947 -0,1660,29,4,1,121,28,0,0,1,0,1,0,1,2,0,1,1,1,0,0,0,0,0,1,0,1,0,0,17.155962120599835,12.414036165354721,12.414036165354721 -0,2130,31,6,2,103,25,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,0,14.009930741911429,10.135599040357748,10.135599040357748 -0,2240,30,5,1,110,17,1,0,0,0,1,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,11.849765783163186,8.829092257206128,8.829092257206128 -0,2060,30,6,2,105,21,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,12.0352694253407,9.70128513873136,9.70128513873136 -0,2150,31,5,1,89,16,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,0,1,12.349947298941835,7.2571866125569064,7.2571866125569064 -0,2180,30,6,1,81,17,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,13.393956471397455,8.52738221984222,8.52738221984222 -0,2110,32,5,2,100,18,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,18.118576000359923,10.954745307033077,10.954745307033077 -0,1300,26,10,3,92,20,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,8.605909018411674,8.450977609901766,8.450977609901766 -0,1800,29,4,2,115,28,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,12.532727685077397,7.456098702237123,7.456098702237123 -0,2350,31,4,1,85,18,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,11.694797356407683,7.895184200751412,7.895184200751412 -0,1470,28,11,3,96,27,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,0,18.989891995683948,17.84213722868933,17.84213722868933 -0,1830,30,6,2,101,19,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,15.163613813813043,9.176584765184597,9.176584765184597 -0,1850,30,5,2,106,22,1,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,11.35027701852523,8.306046185354589,8.306046185354589 -0,1290,26,8,1,98,16,0,0,0,1,0,0,1,2,0,0,0,1,0,0,0,0,0,1,0,0,1,0,11.471617597940856,5.545465963608526,5.545465963608526 -1,1860,29,6,3,100,29,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,20.001326369408993,16.15877790513804,20.001326369408993 -0,1480,29,7,1,106,16,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,1,0,0,1,0,12.833007912510524,7.492224232321872,7.492224232321872 -0,1890,31,5,4,123,18,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,1,0,15.114023185628856,10.575363121664568,10.575363121664568 -0,1870,30,3,3,114,38,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,27.121297791059316,14.010461891352382,14.010461891352382 -0,1600,29,6,3,115,25,0,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,12.88747852261816,12.518496333252303,12.518496333252303 -0,1660,31,6,2,105,26,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,15.160768175606815,9.872646037377955,9.872646037377955 -0,1850,29,4,1,110,16,1,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,1,0,0,1,0,12.05857122367261,4.2423549950168304,4.2423549950168304 -0,1290,27,4,2,122,20,1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,10.717152190827331,7.080778072733308,7.080778072733308 -0,1710,31,4,1,84,17,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,1,0,0,1,0,11.621037039460877,5.240509424578104,5.240509424578104 -0,1730,29,4,2,113,20,1,1,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,13.087579902759359,7.563223197528087,7.563223197528087 -0,540,20,14,2,84,30,1,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,4.822045507524763,6.2824921314379685,6.2824921314379685 -0,1060,26,15,1,80,31,0,0,1,0,0,0,1,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,16.328574827511552,15.692060936953345,15.692060936953345 -1,1240,28,11,1,93,20,0,0,0,0,1,0,0,2,0,0,1,1,0,0,0,0,0,0,1,1,0,0,9.627746418445556,8.150728452859749,9.627746418445556 -0,1190,25,11,1,52,28,0,0,1,0,1,0,1,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,7.910607014496362,9.52351884016068,9.52351884016068 -1,1840,30,8,2,91,31,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,19.333783470872355,12.252447280050745,19.333783470872355 -1,1630,25,8,1,99,28,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.642878846206337,12.722482240099978,15.642878846206337 -0,1920,29.7069979495901,9,1,96,24,0,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,17.666445567941196,16.168470500298024,16.168470500298024 -0,1220,29,13,1,95,29,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,22.410333312787397,18.54583514697695,18.54583514697695 -0,1440,28,10,1,100,22,0,0,1,0,1,0,1,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,13.750751671823348,13.797419863071081,13.797419863071081 -0,1530,28.1686165171493,6,2,101,27,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,19.37314072615578,12.406028860212647,12.406028860212647 -0,1260,26.3043500188915,9,2,117,24,1,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,15.338231261879072,13.000451766239044,13.000451766239044 -0,2190,28,5,1,108,34,1,0,0,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,20.474100181709428,13.995281633919578,13.995281633919578 -0,1580,28,9,2,91,25,1,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,17.47801626721338,11.630901963426712,11.630901963426712 -1,2030,31,5,2,116,28,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,21.704225201497813,15.269512512564393,21.704225201497813 -1,1120,25.5479065293033,11,1,113,28,0,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,18.969276527195092,16.185695106148984,18.969276527195092 -0,1990,29,5,2,90,31,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,19.089208008898368,11.917160223333907,11.917160223333907 -0,1660,27.7123017699448,11,1,90,15,0,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,16.502944771244337,10.726603352694474,10.726603352694474 -0,2350,32,2,3,122,22,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,18.362963997928535,14.847391121367226,14.847391121367226 -0,940,26,7,1,136,20,1,0,1,1,0,0,1,2,0,1,1,1,0,0,0,0,0,0,1,0,1,0,16.428434855911917,14.172728596998745,14.172728596998745 -0,1880,30,7,2,112,25,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,14.784169664610689,12.168891083554296,12.168891083554296 -0,1850,31,7,3,102,24,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,19.50634345754951,16.572724188831756,16.572724188831756 -0,2340,32,2,1,87,16,0,0,1,1,0,0,1,2,0,0,0,1,0,0,0,0,0,0,1,1,0,0,13.056014373742205,4.472484967344636,4.472484967344636 -0,1120,28,12,4,77,27,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,9.523098317287298,17.62922312889521,17.62922312889521 -0,1420,26,10,2,96,27,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.005701661593832,12.942694471184975,12.942694471184975 -0,2010,28.847784507156,3,1,115,22,1,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.452085021880803,11.852134920656795,11.852134920656795 -0,1780,30,6,2,97,34,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,20.040341600574592,11.90457332780984,11.90457332780984 -0,2250,30,7,2,93,34,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,29.2354625184029,17.726883800321147,17.726883800321147 -0,1390,28,6,1,115,26,1,0,1,0,1,0,1,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,20.64021616880405,14.343282050384847,14.343282050384847 -1,640,21,15,2,74,34,1,0,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,7.307268953199668,8.489827257692696,7.307268953199668 -0,2360,31,3,1,68,33,0,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,20.631063030657558,12.694321518573842,12.694321518573842 -0,1460,27,10,1,91,23,1,0,1,1,0,0,1,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,18.271776460770468,14.370782322399961,14.370782322399961 -1,1860,30,6,1,103,18,1,0,0,1,0,0,0,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,17.638391626105342,9.874446099031344,17.638391626105342 -0,1900,30,7,1,86,23,0,0,1,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,13.599340135671504,13.966815894297476,13.966815894297476 -0,1070,27,10,1,111,16,0,0,0,1,0,0,0,2,1,1,0,1,0,0,0,0,0,0,1,0,1,0,16.92756262745672,9.97407444698755,9.97407444698755 -0,2420,32,9,2,89,31,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,30.038777406231556,21.239558536819708,21.239558536819708 -0,2460,33,5,4,92,24,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,24.492435111282408,16.576848272267846,16.576848272267846 -0,1900,32,10,2,91,32,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,31.011621074843745,20.069214329341204,20.069214329341204 -0,1540,27,14,1,95,31,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,21.256213502677348,17.071473308318854,17.071473308318854 -1,2260,32,4,4,117,25,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,27.724507579702735,16.69630024055391,27.724507579702735 -0,1500,29,7,1,90,18,0,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,11.443026692637613,9.655727408789083,9.655727408789083 -0,1690,29,8,3,71,26,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.560206284085282,12.669812127716316,12.669812127716316 -0,2120,31,3,1,109,18,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,0,1,0,14.007599488464956,8.04058496661135,8.04058496661135 -0,1500,28,10,2,98,32,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,17.740940440074734,14.880291538142068,14.880291538142068 -1,2040,31,7,1,78,16,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,1,0,0,13.485755216360584,4.957633342772287,13.485755216360584 -1,1330,26,10,2,84,35,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,16.76045161010652,11.053050459671406,16.76045161010652 -0,2300,30,6,1,89,30,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,21.738027372399092,16.883774445190493,16.883774445190493 -0,2460,31,3,3,100,42,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,39.59590193577869,17.6626316767832,17.6626316767832 -1,1136,25,10,2,91,24,1,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,13.82373866812652,6.439411280971699,13.82373866812652 -1,2450,33,3,1,92,30,1,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,24.617620967345758,16.87702673533998,24.617620967345758 -0,1900,30,8,3,88,27,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,13.949203955027786,11.887649049569978,11.887649049569978 -1,1860,30,6,2,107,26,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.258212291754422,11.75400476069555,15.258212291754422 -0,2430,30,4,3,113,23,1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,17.23110183356717,13.660317191365177,13.660317191365177 -1,1920,31,5,2,119,31,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,19.523500924888157,13.08437281498651,19.523500924888157 -1,2140,32,2,1,120,19,1,0,1,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,17.18348609269465,10.591487090999102,17.18348609269465 -1,2360,31,4,1,97,27,0,0,0,1,0,0,1,2,1,0,1,1,0,0,0,0,0,0,1,1,0,0,17.64552503818773,10.198306191503374,17.64552503818773 -1,2450,30,6,2,81,34,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,26.12790106693603,14.898876224994005,26.12790106693603 -0,1940,29,6,1,101,19,0,0,1,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,14.296133872696576,11.345272646612203,11.345272646612203 -0,1540,30,4,4,136,23,1,1,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,17.0043807505404,9.822571776813326,9.822571776813326 -0,1860,31,5,2,115,23,0,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,18.67670070952867,13.853857721290279,13.853857721290279 -0,1840,31,4,1,112,27,0,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,17.8681432417079,14.726907734589137,14.726907734589137 -1,1400,28,9,1,118,33,1,0,1,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,23.700694363397815,16.859375071582384,23.700694363397815 -1,2370,30,3,1,102,38,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,29.176670842001766,16.95964941134044,29.176670842001766 -0,1960,32,5,1,104,30,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,20.64497909508096,14.685339039931815,14.685339039931815 -0,1900,30,4,4,103,30,1,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,19.996130101778526,10.381728056834941,10.381728056834941 -0,1940,29,6,1,97,24,1,0,1,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,17.71570563775122,12.66599189708857,12.66599189708857 -0,1890,30,6,2,77,28,0,0,1,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.879075695273954,11.325942894181619,11.325942894181619 -1,2280,32,6,3,101,19,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,20.54449710857952,12.417000708705578,20.54449710857952 -0,1030,25,13,3,82,32,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,13.221035718065817,15.07170229656305,15.07170229656305 -0,2310,32,3,1,111,39,1,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,38.56616427952858,19.435470787889543,19.435470787889543 -1,2110,32,5,1,105,25,0,1,1,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,22.304345479389386,16.521220224718988,22.304345479389386 -1,2450,32,4,1,104,19,1,0,0,0,1,0,1,2,0,0,1,1,0,0,0,0,0,0,1,1,0,0,11.41084123313531,7.896317286349821,11.41084123313531 -1,1540,30,6,1,123,22,0,0,1,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,16.653126624855048,13.623888153672718,16.653126624855048 -0,1790,28,6,1,84,25,1,1,1,0,0,0,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.922634268387736,12.125415758378034,12.125415758378034 -0,2240,32,3,3,115,28,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,0,22.186989804261316,9.938374888188708,9.938374888188708 -0,2110,30,3,4,115,35,1,0,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,23.90358226697305,18.13984586118397,18.13984586118397 -1,2390,30,4,1,95,30,1,0,0,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,18.433634753834525,14.215122258577395,18.433634753834525 -0,1720,29,2,1,120,25,1,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.454453226726022,10.97379201666915,10.97379201666915 -0,920,26,9,2,95,33,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,9.695604503147907,9.789919263391855,9.789919263391855 -1,1550,27,7,1,128,27,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,18.010337359728425,15.447940430059244,18.010337359728425 -0,2040,29,6,4,92,33,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,22.395046706144804,17.03335574963752,17.03335574963752 -0,2470,31,3,3,86,28,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,22.1117128991242,10.526551104253064,10.526551104253064 -0,2470,33,4,2,74,40,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,33.9044302343394,15.959471349630084,15.959471349630084 -1,1970,30,7,1,112,24,1,0,1,0,1,0,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,18.63400736415272,14.842188335178795,18.63400736415272 -0,2290,34,4,2,89,31,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,29.641722736696824,14.433011560612325,14.433011560612325 -0,2290,31,7,2,87,29,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,21.689204141910096,17.383232379957036,17.383232379957036 -0,2490,31,6,1,99,24,1,0,0,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,0,0,1,17.10905071179537,15.787422857690558,15.787422857690558 -0,1920,33,6,2,102,33,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,31.329089884181844,18.77986482575014,18.77986482575014 -0,2230,32,3,2,101,32,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,24.12004351810664,12.79523850442032,12.79523850442032 -0,2430,31,4,1,105,19,1,0,1,0,1,0,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,15.437616929367575,12.842468685491001,12.842468685491001 -1,1810,28,7,2,60,27,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.058179783594326,7.626732711350238,15.058179783594326 -0,2180,32,5,1,137,21,0,0,0,1,0,0,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,20.29890941841937,14.682361898553621,14.682361898553621 -0,2140,31,6,3,91,27,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,18.375253255598444,14.788025971084801,14.788025971084801 -0,2040,29,5,1,116,33,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,23.043876211173558,15.943431981574575,15.943431981574575 -1,1670,30,9,2,62,25,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,12.296122411743612,11.104790150216466,12.296122411743612 -0,2270,33,4,4,117,33,1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,0,37.275719873404014,19.157659840935693,19.157659840935693 -0,1670,30,5,1,132,20,1,0,0,1,0,0,1,2,1,1,1,1,0,0,0,0,0,0,1,1,0,0,20.920578700642885,11.697163338966037,11.697163338966037 -1,1670,30,6,2,109,28,1,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,21.334966631521254,15.183228916755022,21.334966631521254 -1,2140,31,5,1,106,23,0,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,17.499455918115213,15.2655704399133,17.499455918115213 -0,1950,30,5,4,110,29,0,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,1,0,18.44923865085014,10.713890526426528,10.713890526426528 -1,1620,28,9,1,76,25,0,0,1,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.447855911359431,12.206638240067202,14.447855911359431 -0,2270,32,3,2,97,27,1,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,19.187568956647567,8.989155048024827,8.989155048024827 -1,1410,27,9,4,108,33,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,9.109706697052985,12.75097229360011,9.109706697052985 -0,1140,26,9,1,98,34,1,0,1,0,0,0,0,2,0,0,1,1,0,0,0,0,0,0,1,1,0,0,14.538864977461644,10.415917682291246,10.415917682291246 -0,2470,32,3,1,82,32,1,0,1,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,22.978679389989487,15.807656646513875,15.807656646513875 -0,2200,30,6,1,86,17,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,1,0,1,0,14.832519412085077,9.087177931914411,9.087177931914411 -0,2270,32,4,1,97,32,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,23.140576446825403,15.51975598796977,15.51975598796977 -0,1870,29,5,2,112,32,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,23.390109961202683,12.648658173110288,12.648658173110288 -1,1810,30,8,2,76,20,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,11.607551520550901,6.497634895394535,11.607551520550901 -0,1230,28,6,2,137,20,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.3301733242702,13.551890959759778,13.551890959759778 -1,1720,31,6,1,94,27,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,15.9283263515324,12.094988207982544,15.9283263515324 -1,1440,28,9,1,100,22,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,14.320834839045572,11.642259245352378,14.320834839045572 -1,2340,31,6,2,110,20,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,0,20.5613657437736,12.868409318307663,20.5613657437736 -0,1360,27,10,3,104,31,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,18.31626256352613,18.039582477977376,18.039582477977376 -0,1630,30,6,1,99,26,1,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,1,0,0,1,16.90980357375907,13.152236051022635,13.152236051022635 -1,1550,29,6,1,110,24,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,12.776499355240656,11.415564872895674,12.776499355240656 -0,1730,20,8,2,84,33,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,8.736356383357037,5.548101104318819,5.548101104318819 -0,1450,27,9,1,98,20,1,0,0,1,0,0,1,2,0,0,0,1,0,0,0,0,0,0,1,1,0,0,11.501480909041222,7.968568957767182,7.968568957767182 -1,1850,29.3146062385282,7,1,111,22,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,1,1,0,0,17.403084955220343,14.438516640297482,17.403084955220343 -1,990,26.1564567533496,8,1,84,20,0,0,0,1,0,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,5.811082833974661,6.203916088863826,5.811082833974661 -1,1780,30,11,1,71,32,1,0,0,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,17.954181073012194,14.185143714252934,17.954181073012194 -0,1410,28,9,1,93,28,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,12.631636147743642,10.313907336739614,10.313907336739614 -1,1910,29,7,3,55,33,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,13.454849604497529,6.8984166397881905,13.454849604497529 -0,1730,24,5,1,93,20,1,0,1,1,0,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,8.126787174944843,8.005463950981015,8.005463950981015 -0,1070,25,10,3,107,35,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,6.050450969803814,9.058106654032372,9.058106654032372 -0,1570,29,7,4,108,21,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,10.700046988439915,9.344698810851654,9.344698810851654 -0,970,24,12,1,103,43,1,0,1,0,0,0,0,2,1,0,1,1,0,0,0,0,0,0,0,1,0,0,20.902369691310376,9.79345315985878,9.79345315985878 -0,1330,29,10,2,86,28,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,13.300716216898888,11.721922190416816,11.721922190416816 -0,1640,30,9,1,99,17,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,12.672328302790275,8.491928169676207,8.491928169676207 -0,1300,27,8,1,87,16,1,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,11.438028760123702,6.408296524014389,6.408296524014389 -0,2340,33,6,1,63,28,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,16.07719844501543,12.969090483889772,12.969090483889772 -0,1890,32.2203154739944,7,2,90,25,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,13.558749541552064,10.65381525829096,10.65381525829096 -0,1460,27.0594276195741,10,1,101,23,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.473286249426542,10.52863128700533,10.52863128700533 -1,2120,29.2616070397943,7,1,114,35,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,26.799963205577644,16.029307950747295,26.799963205577644 -0,1580,30,5,1,98,32,1,0,0,1,0,0,1,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,11.568639460122629,10.407844522122137,10.407844522122137 -0,790,24,12,1,108,19,1,0,0,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,16.17948665177897,8.162041932798063,8.162041932798063 -0,1630,30.0640642153676,6,3,79,19,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,8.409918343570899,2.9562828955894234,2.9562828955894234 -1,1790,29,7,2,87,23,1,0,1,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,13.396262342152998,7.6994482917539635,13.396262342152998 -0,2200,32.17152809405,4,1,80,21,1,0,0,0,1,0,1,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,6.738820787109978,8.07254724628832,8.07254724628832 -0,2220,32,6,1,90,23,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,13.885225329627552,11.189082808911468,11.189082808911468 -0,2180,31.0135379854889,4,1,106,29,0,0,1,0,0,1,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,15.813252108879588,12.88010109365685,12.88010109365685 -1,2460,31,6,1,73,21,0,0,0,1,0,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,10.519007999429437,11.127178224637223,10.519007999429437 -0,1080,25,11,1,111,29,1,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,17.259443286294168,11.33260466818239,11.33260466818239 -0,1660,30,9,4,111,30,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,20.34210637371132,18.552764130826287,18.552764130826287 -1,2160,31,10,1,102,30,1,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,26.958537191821055,18.608842545271965,26.958537191821055 -1,2480,32,7,2,89,24,1,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,16.742940703879935,13.528668182637103,16.742940703879935 -1,2470,30,4,1,94,28,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,16.1119432328118,13.635002164102842,16.1119432328118 -0,2410,33,3,4,85,25,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,13.089528681131638,6.721002036550874,6.721002036550874 -1,2110,31,5,1,88,28,1,0,1,0,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,14.939292727090187,10.310590605545041,14.939292727090187 -1,2310,31,7,1,84,29,0,0,1,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,17.872677769362358,15.676656733949441,17.872677769362358 -0,1910,32,7,2,40,33,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,15.170964610670959,6.762866282266609,6.762866282266609 -1,1600,29,7,2,121,41,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,31.39754264546325,16.75825039752235,31.39754264546325 -0,1410,29,6,1,132,19,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,0,1,0,12.147261668299713,11.422904871306402,11.422904871306402 -1,2370,31.7286672716404,7,1,101,28,1,0,1,0,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,19.862267448117276,14.063599148772523,19.862267448117276 -1,2230,33,5,2,103,30,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,22.753305196820534,13.981880557749093,22.753305196820534 -0,1730,31,3,1,123,23,1,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.10893599346919,10.364479275039969,10.364479275039969 -1,2330,29,6,1,113,19,1,0,1,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.75919376174047,13.881825792543843,14.75919376174047 -0,2230,31,6,1,82,29,0,0,1,0,0,1,1,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,17.886643810228435,15.50879430346501,15.50879430346501 -1,2470,32.4598184949829,5,2,98,28,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,20.224933628753725,14.587876996191687,20.224933628753725 -1,2360,31,3,2,117,31,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,22.26055624943995,12.593032477625023,22.26055624943995 -1,960,26,10,1,90,37,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,13.950160561673478,9.927787309679017,13.950160561673478 -1,2440,33,4,3,92,37,0,0,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,30.975596018375875,16.34041884649543,30.975596018375875 -0,1160,27,8,1,120,37,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,18.17055319632818,12.53709608643659,12.53709608643659 -0,2480,32,6,1,103,23,1,0,1,0,0,1,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,19.070608765386385,16.285562582015373,16.285562582015373 -1,1860,30,7,1,103,24,0,0,0,0,0,0,1,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,14.010065109999166,10.538115612309724,14.010065109999166 -1,2160,31,8,1,77,28,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,16.562442744638986,12.921375528257366,16.562442744638986 -0,760,23,13,1,86,23,0,0,1,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,8.36845757556611,7.612051538402045,7.612051538402045 -1,1130,26,13,1,46,32,0,0,1,0,0,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,5.0150564818071715,7.673717027053979,5.0150564818071715 -1,1990,29,7,1,98,26,0,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,11.921577359933448,10.908086534846959,11.921577359933448 -1,2490,33,6,3,82,25,1,0,1,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,22.652483648740393,15.029598264411044,22.652483648740393 -0,2190,33,7,4,100,32,0,0,1,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,34.47975515474427,24.397279599076317,24.397279599076317 -1,1720,30,6,1,115,31,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,18.31611299318098,14.127117822249483,18.31611299318098 -1,1700,30,6,1,106,15,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,11.570001573056132,6.427572138302078,11.570001573056132 -0,2170,33,6,1,98,19,0,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,9.451413237522301,10.740559406211972,10.740559406211972 -1,1380,30,9,1,108,32,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,16.476128212027145,13.30696478399835,16.476128212027145 -0,1590,31,7,1,120,27,0,1,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,16.629568693356305,14.910323810335322,14.910323810335322 -1,1550,29,6,1,100,20,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,10.55021408329068,6.880542368700796,10.55021408329068 -0,1800,29,9,2,103,25,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,20.122954996710718,14.681012733387618,14.681012733387618 -0,1910,30,9,3,100,22,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,17.727485885295003,12.944295264058102,12.944295264058102 -0,2070,32,6,1,108,28,0,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,18.105085145161322,13.71605219950585,13.71605219950585 -0,1000,24.9980752557452,13,3,111,27,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,13.023647631983959,11.103349252173551,11.103349252173551 -0,1130,27,11,2,85,23,1,0,1,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,14.905375049019609,9.489290886926941,9.489290886926941 -0,1590,30,9,1,118,20,1,0,0,0,1,0,1,2,1,1,1,1,0,0,0,0,0,0,0,0,1,0,17.91856502082125,12.028466813687801,12.028466813687801 -0,2110,31,6,2,108,29,0,1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,18.296496988709354,10.806116123504909,10.806116123504909 -1,1730,30,5,3,101,32,1,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,19.63331675940897,12.606467691221594,19.63331675940897 -1,2340,31,6,1,107,22,0,0,1,0,1,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.490072322240406,14.449490197459111,14.490072322240406 -0,2410,32,4,1,107,15,1,0,0,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,0,1,0,12.880338144679643,8.407037033340567,8.407037033340567 -1,1680,30,8,1,98,34,0,0,1,1,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,21.230427556937116,15.104241976263024,21.230427556937116 -0,970,26,12,2,82,30,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,8.789070193979203,7.972927367552916,7.972927367552916 -0,1010,26,12,1,114,27,0,0,0,1,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,0,1,0,14.539458178126132,11.85625756500551,11.85625756500551 -0,2000,31.2566395785949,9,3,100,30,0,1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,21.507444813933144,14.274533013809583,14.274533013809583 -0,2290,31,5,1,115,17,0,0,0,1,0,0,1,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,13.40275119356303,9.000207706372578,9.000207706372578 -0,1010,27,5,2,117,31,1,0,1,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,14.72031951036769,11.060603010987144,11.060603010987144 -0,800,23,14,2,94,21,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,9.327700119562687,7.14599741326374,7.14599741326374 -0,2340,29,5,1,112,23,0,0,0,0,1,0,1,2,0,1,1,1,0,0,0,0,0,0,0,0,1,0,12.484121330206538,11.441563952998296,11.441563952998296 -0,2380,30,5,2,104,32,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,18.01744797156908,9.596824837054314,9.596824837054314 -0,2130,32,6,1,117,26,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,18.472653681971064,15.77494136326819,15.77494136326819 -0,1830,28,7,1,103,23,1,1,0,0,1,0,1,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,11.840881086428718,8.420615361842863,8.420615361842863 -0,2340,33,6,2,112,20,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,15.761393309910972,8.871123750113169,8.871123750113169 -0,2420,32,5,2,97,29,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,15.795931959198903,12.294815602714316,12.294815602714316 -0,1390,30,9,2,88,29,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,16.412651399837557,11.980400895610138,11.980400895610138 -0,2040,30,7,2,93,23,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,13.60349460558626,10.914467373075746,10.914467373075746 -0,1340,28,10,1,96,18,1,0,0,0,1,0,1,2,0,1,0,1,0,0,0,0,0,0,0,1,0,0,10.827346734537972,8.009789802798808,8.009789802798808 -0,2180,32,4,2,114,39,0,0,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,34.82263631898418,15.837201260343925,15.837201260343925 -0,1770,29,6,3,109,26,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,10.839100509486704,8.112566798844878,8.112566798844878 -0,1740,30,6,2,130,19,1,0,0,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,14.852334274347271,7.270130919792165,7.270130919792165 -0,1970,29,5,1,117,25,0,0,1,0,0,1,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.163608778887662,12.609123546973892,12.609123546973892 -0,2130,31,4,2,121,22,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,13.152546043804843,9.44150652682599,9.44150652682599 -0,800,25.8573999166729,14,1,110,17,0,0,0,1,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,0,1,0,14.001191531732754,9.663971088319386,9.663971088319386 -0,930,25.2441974600055,13,4,98,26,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,10.126975558036916,17.14504141437096,17.14504141437096 -0,2380,33,3,4,93,27,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,0,22.179233986375095,14.074131731876394,14.074131731876394 -0,1650,31,6,2,105,34,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,21.39214398205347,12.199482382357624,12.199482382357624 -0,1800,29,6,2,94,36,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,18.14506059325896,11.217014560922495,11.217014560922495 -1,2140,29,5,1,112,32,0,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,22.792073057215557,13.71467335925366,22.792073057215557 -0,2350,30,3,2,111,28,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,13.295486481710569,8.899723089143023,8.899723089143023 -0,1670,29,3,1,125,28,1,0,1,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,1,0,0,14.376586371504233,9.406791165242966,9.406791165242966 -0,1740,31,6,1,107,26,0,0,1,0,1,0,1,2,1,1,1,1,0,0,0,0,0,0,0,1,0,0,18.401260667499706,13.329983577836273,13.329983577836273 diff --git a/Production/data/credit.csv b/Production/data/credit.csv deleted file mode 100644 index 3641f727..00000000 --- a/Production/data/credit.csv +++ /dev/null @@ -1,1001 +0,0 @@ -checking_balance,months_loan_duration,credit_history,purpose,amount,savings_balance,employment_duration,percent_of_income,years_at_residence,age,other_credit,housing,existing_loans_count,job,dependents,phone,default -< 0 DM,6,critical,furniture/appliances,1169,unknown,> 7 years,4,4,67,none,own,2,skilled,1,yes,no -1 - 200 DM,48,good,furniture/appliances,5951,< 100 DM,1 - 4 years,2,2,22,none,own,1,skilled,1,no,yes -unknown,12,critical,education,2096,< 100 DM,4 - 7 years,2,3,49,none,own,1,unskilled,2,no,no -< 0 DM,42,good,furniture/appliances,7882,< 100 DM,4 - 7 years,2,4,45,none,other,1,skilled,2,no,no -< 0 DM,24,poor,car,4870,< 100 DM,1 - 4 years,3,4,53,none,other,2,skilled,2,no,yes -unknown,36,good,education,9055,unknown,1 - 4 years,2,4,35,none,other,1,unskilled,2,yes,no -unknown,24,good,furniture/appliances,2835,500 - 1000 DM,> 7 years,3,4,53,none,own,1,skilled,1,no,no -1 - 200 DM,36,good,car,6948,< 100 DM,1 - 4 years,2,2,35,none,rent,1,management,1,yes,no -unknown,12,good,furniture/appliances,3059,> 1000 DM,4 - 7 years,2,4,61,none,own,1,unskilled,1,no,no -1 - 200 DM,30,critical,car,5234,< 100 DM,unemployed,4,2,28,none,own,2,management,1,no,yes -1 - 200 DM,12,good,car,1295,< 100 DM,< 1 year,3,1,25,none,rent,1,skilled,1,no,yes -< 0 DM,48,good,business,4308,< 100 DM,< 1 year,3,4,24,none,rent,1,skilled,1,no,yes -1 - 200 DM,12,good,furniture/appliances,1567,< 100 DM,1 - 4 years,1,1,22,none,own,1,skilled,1,yes,no -< 0 DM,24,critical,car,1199,< 100 DM,> 7 years,4,4,60,none,own,2,unskilled,1,no,yes -< 0 DM,15,good,car,1403,< 100 DM,1 - 4 years,2,4,28,none,rent,1,skilled,1,no,no -< 0 DM,24,good,furniture/appliances,1282,100 - 500 DM,1 - 4 years,4,2,32,none,own,1,unskilled,1,no,yes -unknown,24,critical,furniture/appliances,2424,unknown,> 7 years,4,4,53,none,own,2,skilled,1,no,no -< 0 DM,30,perfect,business,8072,unknown,< 1 year,2,3,25,bank,own,3,skilled,1,no,no -1 - 200 DM,24,good,car,12579,< 100 DM,> 7 years,4,2,44,none,other,1,management,1,yes,yes -unknown,24,good,furniture/appliances,3430,500 - 1000 DM,> 7 years,3,2,31,none,own,1,skilled,2,yes,no -unknown,9,critical,car,2134,< 100 DM,1 - 4 years,4,4,48,none,own,3,skilled,1,yes,no -< 0 DM,6,good,furniture/appliances,2647,500 - 1000 DM,1 - 4 years,2,3,44,none,rent,1,skilled,2,no,no -< 0 DM,10,critical,car,2241,< 100 DM,< 1 year,1,3,48,none,rent,2,unskilled,2,no,no -1 - 200 DM,12,critical,car,1804,100 - 500 DM,< 1 year,3,4,44,none,own,1,skilled,1,no,no -unknown,10,critical,furniture/appliances,2069,unknown,1 - 4 years,2,1,26,none,own,2,skilled,1,no,no -< 0 DM,6,good,furniture/appliances,1374,< 100 DM,1 - 4 years,1,2,36,bank,own,1,unskilled,1,yes,no -unknown,6,perfect,furniture/appliances,426,< 100 DM,> 7 years,4,4,39,none,own,1,unskilled,1,no,no -> 200 DM,12,very good,furniture/appliances,409,> 1000 DM,1 - 4 years,3,3,42,none,rent,2,skilled,1,no,no -1 - 200 DM,7,good,furniture/appliances,2415,< 100 DM,1 - 4 years,3,2,34,none,own,1,skilled,1,no,no -< 0 DM,60,poor,business,6836,< 100 DM,> 7 years,3,4,63,none,own,2,skilled,1,yes,yes -1 - 200 DM,18,good,business,1913,> 1000 DM,< 1 year,3,3,36,bank,own,1,skilled,1,yes,no -< 0 DM,24,good,furniture/appliances,4020,< 100 DM,1 - 4 years,2,2,27,store,own,1,skilled,1,no,no -1 - 200 DM,18,good,car,5866,100 - 500 DM,1 - 4 years,2,2,30,none,own,2,skilled,1,yes,no -unknown,12,critical,business,1264,unknown,> 7 years,4,4,57,none,rent,1,unskilled,1,no,no -> 200 DM,12,good,furniture/appliances,1474,< 100 DM,< 1 year,4,1,33,bank,own,1,management,1,yes,no -1 - 200 DM,45,critical,furniture/appliances,4746,< 100 DM,< 1 year,4,2,25,none,own,2,unskilled,1,no,yes -unknown,48,critical,education,6110,< 100 DM,1 - 4 years,1,3,31,bank,other,1,skilled,1,yes,no -> 200 DM,18,good,furniture/appliances,2100,< 100 DM,1 - 4 years,4,2,37,store,own,1,skilled,1,no,yes -> 200 DM,10,good,furniture/appliances,1225,< 100 DM,1 - 4 years,2,2,37,none,own,1,skilled,1,yes,no -1 - 200 DM,9,good,furniture/appliances,458,< 100 DM,1 - 4 years,4,3,24,none,own,1,skilled,1,no,no -unknown,30,good,furniture/appliances,2333,500 - 1000 DM,> 7 years,4,2,30,bank,own,1,management,1,no,no -1 - 200 DM,12,good,furniture/appliances,1158,500 - 1000 DM,1 - 4 years,3,1,26,none,own,1,skilled,1,yes,no -1 - 200 DM,18,poor,renovations,6204,< 100 DM,1 - 4 years,2,4,44,none,own,1,unskilled,2,yes,no -< 0 DM,30,critical,car,6187,100 - 500 DM,4 - 7 years,1,4,24,none,rent,2,skilled,1,no,no -< 0 DM,48,critical,car,6143,< 100 DM,> 7 years,4,4,58,store,other,2,unskilled,1,no,yes -unknown,11,critical,car,1393,< 100 DM,< 1 year,4,4,35,none,own,2,management,1,no,no -unknown,36,good,furniture/appliances,2299,500 - 1000 DM,> 7 years,4,4,39,none,own,1,skilled,1,no,no -< 0 DM,6,good,car,1352,500 - 1000 DM,unemployed,1,2,23,none,rent,1,unemployed,1,yes,no -unknown,11,critical,car,7228,< 100 DM,1 - 4 years,1,4,39,none,own,2,unskilled,1,no,no -unknown,12,good,furniture/appliances,2073,100 - 500 DM,1 - 4 years,4,2,28,none,own,1,skilled,1,no,no -1 - 200 DM,24,poor,furniture/appliances,2333,unknown,< 1 year,4,2,29,bank,own,1,unskilled,1,no,no -1 - 200 DM,27,poor,car,5965,< 100 DM,> 7 years,1,2,30,none,own,2,management,1,yes,no -unknown,12,good,furniture/appliances,1262,< 100 DM,1 - 4 years,3,2,25,none,own,1,skilled,1,no,no -unknown,18,good,car,3378,unknown,1 - 4 years,2,1,31,none,own,1,skilled,1,yes,no -1 - 200 DM,36,poor,car,2225,< 100 DM,> 7 years,4,4,57,bank,other,2,skilled,1,yes,yes -unknown,6,very good,car,783,unknown,1 - 4 years,1,2,26,store,own,1,unskilled,2,no,no -1 - 200 DM,12,good,furniture/appliances,6468,unknown,unemployed,2,1,52,none,own,1,management,1,yes,yes -unknown,36,critical,furniture/appliances,9566,< 100 DM,1 - 4 years,2,2,31,store,own,2,skilled,1,no,no -> 200 DM,18,good,car,1961,< 100 DM,> 7 years,3,2,23,none,own,1,management,1,no,no -< 0 DM,36,critical,furniture/appliances,6229,< 100 DM,< 1 year,4,4,23,none,rent,2,unskilled,1,yes,yes -1 - 200 DM,9,good,business,1391,< 100 DM,1 - 4 years,2,1,27,bank,own,1,skilled,1,yes,no -1 - 200 DM,15,critical,furniture/appliances,1537,unknown,> 7 years,4,4,50,none,own,2,skilled,1,yes,no -1 - 200 DM,36,perfect,business,1953,< 100 DM,> 7 years,4,4,61,none,other,1,management,1,yes,yes -1 - 200 DM,48,perfect,business,14421,< 100 DM,1 - 4 years,2,2,25,none,own,1,skilled,1,yes,yes -unknown,24,good,furniture/appliances,3181,< 100 DM,< 1 year,4,4,26,none,own,1,skilled,1,yes,no -unknown,27,good,renovations,5190,unknown,> 7 years,4,4,48,none,own,4,skilled,2,yes,no -unknown,12,good,furniture/appliances,2171,< 100 DM,< 1 year,2,2,29,bank,own,1,skilled,1,no,no -1 - 200 DM,12,good,car,1007,> 1000 DM,1 - 4 years,4,1,22,none,own,1,skilled,1,no,no -unknown,36,good,education,1819,< 100 DM,1 - 4 years,4,4,37,store,other,1,skilled,1,yes,yes -unknown,36,good,furniture/appliances,2394,unknown,1 - 4 years,4,4,25,none,own,1,skilled,1,no,no -unknown,36,good,car,8133,< 100 DM,1 - 4 years,1,2,30,bank,own,1,skilled,1,no,no -unknown,7,critical,furniture/appliances,730,unknown,> 7 years,4,2,46,none,rent,2,unskilled,1,yes,no -< 0 DM,8,critical,car0,1164,< 100 DM,> 7 years,3,4,51,bank,other,2,management,2,yes,no -1 - 200 DM,42,critical,business,5954,< 100 DM,4 - 7 years,2,1,41,bank,own,2,unskilled,1,no,no -< 0 DM,36,good,education,1977,unknown,> 7 years,4,4,40,none,own,1,management,1,yes,yes -< 0 DM,12,critical,car,1526,< 100 DM,> 7 years,4,4,66,none,other,2,management,1,no,no -< 0 DM,42,good,furniture/appliances,3965,< 100 DM,< 1 year,4,3,34,none,own,1,skilled,1,no,yes -1 - 200 DM,11,poor,furniture/appliances,4771,< 100 DM,4 - 7 years,2,4,51,none,own,1,skilled,1,no,no -unknown,54,perfect,car,9436,unknown,1 - 4 years,2,2,39,none,own,1,unskilled,2,no,no -1 - 200 DM,30,good,furniture/appliances,3832,< 100 DM,< 1 year,2,1,22,none,own,1,skilled,1,no,no -unknown,24,good,furniture/appliances,5943,unknown,< 1 year,1,1,44,none,own,2,skilled,1,yes,yes -unknown,15,good,furniture/appliances,1213,500 - 1000 DM,> 7 years,4,3,47,store,own,1,skilled,1,yes,no -unknown,18,good,business,1568,100 - 500 DM,1 - 4 years,3,4,24,none,rent,1,unskilled,1,no,no -< 0 DM,24,good,car0,1755,< 100 DM,> 7 years,4,4,58,none,own,1,unskilled,1,yes,no -< 0 DM,10,good,furniture/appliances,2315,< 100 DM,> 7 years,3,4,52,none,own,1,unskilled,1,no,no -unknown,12,critical,business,1412,< 100 DM,1 - 4 years,4,2,29,none,own,2,management,1,yes,no -1 - 200 DM,18,critical,furniture/appliances,1295,< 100 DM,< 1 year,4,1,27,none,own,2,skilled,1,no,no -1 - 200 DM,36,good,education,12612,100 - 500 DM,1 - 4 years,1,4,47,none,other,1,skilled,2,yes,yes -< 0 DM,18,good,car,2249,100 - 500 DM,4 - 7 years,4,3,30,none,own,1,management,2,yes,no -< 0 DM,12,perfect,renovations,1108,< 100 DM,4 - 7 years,4,3,28,none,own,2,skilled,1,no,yes -unknown,12,critical,furniture/appliances,618,< 100 DM,> 7 years,4,4,56,none,own,1,skilled,1,no,no -< 0 DM,12,critical,car,1409,< 100 DM,> 7 years,4,3,54,none,own,1,skilled,1,no,no -unknown,12,critical,furniture/appliances,797,unknown,> 7 years,4,3,33,bank,own,1,unskilled,2,no,yes -> 200 DM,24,critical,furniture/appliances,3617,unknown,> 7 years,4,4,20,none,rent,2,skilled,1,no,no -1 - 200 DM,12,good,car,1318,> 1000 DM,> 7 years,4,4,54,none,own,1,skilled,1,yes,no -1 - 200 DM,54,perfect,business,15945,< 100 DM,< 1 year,3,4,58,none,rent,1,skilled,1,yes,yes -unknown,12,critical,education,2012,unknown,4 - 7 years,4,2,61,none,own,1,skilled,1,no,no -1 - 200 DM,18,good,business,2622,100 - 500 DM,1 - 4 years,4,4,34,none,own,1,skilled,1,no,no -1 - 200 DM,36,critical,furniture/appliances,2337,< 100 DM,> 7 years,4,4,36,none,own,1,skilled,1,no,no -1 - 200 DM,20,poor,car,7057,unknown,4 - 7 years,3,4,36,bank,rent,2,management,2,yes,no -unknown,24,good,car,1469,100 - 500 DM,> 7 years,4,4,41,none,rent,1,unskilled,1,no,no -1 - 200 DM,36,good,furniture/appliances,2323,< 100 DM,4 - 7 years,4,4,24,none,rent,1,skilled,1,no,no -unknown,6,poor,furniture/appliances,932,< 100 DM,1 - 4 years,3,2,24,none,own,1,skilled,1,no,no -1 - 200 DM,9,critical,furniture/appliances,1919,< 100 DM,4 - 7 years,4,3,35,none,rent,1,skilled,1,yes,no -unknown,12,good,car,2445,unknown,< 1 year,2,4,26,none,rent,1,skilled,1,yes,no -1 - 200 DM,24,critical,car0,11938,< 100 DM,1 - 4 years,2,3,39,none,own,2,management,2,yes,yes -unknown,18,very good,car,6458,< 100 DM,> 7 years,2,4,39,bank,own,2,management,2,yes,yes -1 - 200 DM,12,good,car,6078,< 100 DM,4 - 7 years,2,2,32,none,own,1,skilled,1,no,no -< 0 DM,24,good,furniture/appliances,7721,unknown,< 1 year,1,2,30,none,own,1,skilled,1,yes,no -1 - 200 DM,14,good,business,1410,500 - 1000 DM,> 7 years,1,2,35,none,own,1,skilled,1,yes,no -1 - 200 DM,6,poor,business,1449,100 - 500 DM,> 7 years,1,2,31,bank,own,2,skilled,2,no,no -> 200 DM,15,good,education,392,< 100 DM,< 1 year,4,4,23,none,rent,1,skilled,1,yes,no -1 - 200 DM,18,good,car,6260,< 100 DM,4 - 7 years,3,3,28,none,rent,1,unskilled,1,no,no -unknown,36,critical,car,7855,< 100 DM,1 - 4 years,4,2,25,store,own,2,skilled,1,yes,yes -< 0 DM,12,good,furniture/appliances,1680,500 - 1000 DM,> 7 years,3,1,35,none,own,1,skilled,1,no,no -unknown,48,critical,furniture/appliances,3578,unknown,> 7 years,4,1,47,none,own,1,skilled,1,yes,no -< 0 DM,42,good,furniture/appliances,7174,unknown,4 - 7 years,4,3,30,none,own,1,management,1,yes,yes -< 0 DM,10,critical,furniture/appliances,2132,unknown,< 1 year,2,3,27,none,rent,2,skilled,1,no,no -< 0 DM,33,critical,furniture/appliances,4281,500 - 1000 DM,1 - 4 years,1,4,23,none,own,2,skilled,1,no,yes -1 - 200 DM,12,critical,car,2366,500 - 1000 DM,4 - 7 years,3,3,36,none,own,1,management,1,yes,no -< 0 DM,21,good,furniture/appliances,1835,< 100 DM,1 - 4 years,3,2,25,none,own,2,skilled,1,yes,yes -unknown,24,critical,car,3868,< 100 DM,> 7 years,4,2,41,none,rent,2,management,1,yes,no -unknown,12,good,furniture/appliances,1768,< 100 DM,1 - 4 years,3,2,24,none,rent,1,unskilled,1,no,no -> 200 DM,10,critical,car,781,< 100 DM,> 7 years,4,4,63,none,other,2,skilled,1,yes,no -1 - 200 DM,18,good,furniture/appliances,1924,unknown,< 1 year,4,3,27,none,rent,1,skilled,1,no,yes -< 0 DM,12,critical,car,2121,< 100 DM,1 - 4 years,4,2,30,none,own,2,skilled,1,no,no -< 0 DM,12,good,furniture/appliances,701,< 100 DM,1 - 4 years,4,2,40,none,own,1,unskilled,1,no,no -1 - 200 DM,12,good,renovations,639,< 100 DM,1 - 4 years,4,2,30,none,own,1,skilled,1,no,yes -1 - 200 DM,12,critical,car,1860,< 100 DM,unemployed,4,2,34,none,own,2,management,1,yes,no -< 0 DM,12,critical,car,3499,< 100 DM,1 - 4 years,3,2,29,none,own,2,skilled,1,no,yes -1 - 200 DM,48,good,car,8487,unknown,4 - 7 years,1,2,24,none,own,1,skilled,1,no,no -< 0 DM,36,poor,education,6887,< 100 DM,1 - 4 years,4,3,29,store,own,1,skilled,1,yes,yes -unknown,15,good,furniture/appliances,2708,< 100 DM,< 1 year,2,3,27,bank,own,2,unskilled,1,no,no -unknown,18,good,furniture/appliances,1984,< 100 DM,1 - 4 years,4,4,47,bank,other,2,skilled,1,no,no -unknown,60,good,furniture/appliances,10144,100 - 500 DM,4 - 7 years,2,4,21,none,own,1,skilled,1,yes,no -unknown,12,critical,furniture/appliances,1240,unknown,> 7 years,4,2,38,none,own,2,skilled,1,yes,no -unknown,27,poor,car,8613,> 1000 DM,1 - 4 years,2,2,27,none,own,2,skilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,766,500 - 1000 DM,1 - 4 years,4,3,66,none,own,1,unskilled,1,no,yes -1 - 200 DM,15,critical,furniture/appliances,2728,unknown,4 - 7 years,4,2,35,bank,own,3,skilled,1,yes,no -> 200 DM,12,good,furniture/appliances,1881,< 100 DM,1 - 4 years,2,2,44,none,rent,1,unskilled,1,yes,no -> 200 DM,6,good,car,709,> 1000 DM,< 1 year,2,2,27,none,own,1,unemployed,1,no,no -1 - 200 DM,36,good,furniture/appliances,4795,< 100 DM,< 1 year,4,1,30,none,own,1,management,1,yes,no -< 0 DM,27,good,furniture/appliances,3416,< 100 DM,1 - 4 years,3,2,27,none,own,1,management,1,no,no -< 0 DM,18,good,furniture/appliances,2462,< 100 DM,1 - 4 years,2,2,22,none,own,1,skilled,1,no,yes -unknown,21,critical,furniture/appliances,2288,< 100 DM,< 1 year,4,4,23,none,own,1,skilled,1,yes,no -1 - 200 DM,48,very good,business,3566,100 - 500 DM,4 - 7 years,4,2,30,none,own,1,skilled,1,no,no -< 0 DM,6,critical,car,860,< 100 DM,> 7 years,1,4,39,none,own,2,skilled,1,yes,no -unknown,12,critical,car,682,100 - 500 DM,4 - 7 years,4,3,51,none,own,2,skilled,1,yes,no -< 0 DM,36,critical,furniture/appliances,5371,< 100 DM,1 - 4 years,3,2,28,none,own,2,skilled,1,no,no -unknown,18,critical,furniture/appliances,1582,> 1000 DM,> 7 years,4,4,46,none,own,2,skilled,1,no,no -unknown,6,good,furniture/appliances,1346,100 - 500 DM,> 7 years,2,4,42,bank,other,1,skilled,2,yes,no -unknown,10,good,furniture/appliances,1924,< 100 DM,1 - 4 years,1,4,38,none,own,1,skilled,1,yes,no -> 200 DM,36,good,furniture/appliances,5848,< 100 DM,1 - 4 years,4,1,24,none,own,1,skilled,1,no,no -1 - 200 DM,24,critical,car,7758,> 1000 DM,> 7 years,2,4,29,none,rent,1,skilled,1,no,no -1 - 200 DM,24,poor,business,6967,100 - 500 DM,4 - 7 years,4,4,36,none,rent,1,management,1,yes,no -< 0 DM,12,good,furniture/appliances,1282,< 100 DM,1 - 4 years,2,4,20,none,rent,1,skilled,1,no,yes -< 0 DM,9,critical,renovations,1288,100 - 500 DM,> 7 years,3,4,48,none,own,2,skilled,2,no,no -< 0 DM,12,very good,education,339,< 100 DM,> 7 years,4,1,45,bank,own,1,unskilled,1,no,no -1 - 200 DM,24,good,car,3512,100 - 500 DM,4 - 7 years,2,3,38,bank,own,2,skilled,1,yes,no -unknown,6,critical,furniture/appliances,1898,unknown,1 - 4 years,1,2,34,none,own,2,unskilled,2,no,no -unknown,24,critical,furniture/appliances,2872,100 - 500 DM,> 7 years,3,4,36,none,own,1,skilled,2,yes,no -unknown,18,critical,car,1055,< 100 DM,< 1 year,4,1,30,none,own,2,skilled,1,no,no -unknown,15,good,furniture/appliances,1262,500 - 1000 DM,4 - 7 years,4,3,36,none,own,2,skilled,1,yes,no -1 - 200 DM,10,good,car,7308,< 100 DM,unemployed,2,4,70,bank,other,1,management,1,yes,no -unknown,36,good,car,909,500 - 1000 DM,> 7 years,4,4,36,none,own,1,skilled,1,no,no -unknown,6,good,furniture/appliances,2978,500 - 1000 DM,1 - 4 years,1,2,32,none,own,1,skilled,1,yes,no -< 0 DM,18,good,furniture/appliances,1131,< 100 DM,unemployed,4,2,33,none,own,1,skilled,1,no,yes -1 - 200 DM,11,good,furniture/appliances,1577,> 1000 DM,< 1 year,4,1,20,none,own,1,skilled,1,no,no -unknown,24,good,furniture/appliances,3972,< 100 DM,4 - 7 years,2,4,25,none,rent,1,skilled,1,yes,no -1 - 200 DM,24,critical,business,1935,< 100 DM,> 7 years,4,4,31,none,own,2,skilled,1,yes,yes -< 0 DM,15,perfect,car,950,< 100 DM,> 7 years,4,3,33,none,rent,2,skilled,2,no,yes -unknown,12,good,furniture/appliances,763,< 100 DM,1 - 4 years,4,1,26,none,own,1,skilled,1,yes,no -1 - 200 DM,24,poor,furniture/appliances,2064,< 100 DM,unemployed,3,2,34,none,own,1,management,1,yes,yes -1 - 200 DM,8,good,furniture/appliances,1414,< 100 DM,1 - 4 years,4,2,33,none,own,1,skilled,1,no,no -< 0 DM,21,poor,education,3414,< 100 DM,< 1 year,2,1,26,none,own,2,skilled,1,no,yes -unknown,30,very good,car,7485,unknown,unemployed,4,1,53,bank,own,1,management,1,yes,yes -< 0 DM,12,good,furniture/appliances,2577,< 100 DM,1 - 4 years,2,1,42,none,own,1,skilled,1,no,no -< 0 DM,6,critical,furniture/appliances,338,500 - 1000 DM,> 7 years,4,4,52,none,own,2,skilled,1,no,no -unknown,12,good,furniture/appliances,1963,< 100 DM,4 - 7 years,4,2,31,none,rent,2,management,2,yes,no -< 0 DM,21,critical,car,571,< 100 DM,> 7 years,4,4,65,none,own,2,skilled,1,no,no -unknown,36,poor,business,9572,< 100 DM,< 1 year,1,1,28,none,own,2,skilled,1,no,yes -1 - 200 DM,36,poor,business,4455,< 100 DM,1 - 4 years,2,2,30,store,own,2,management,1,yes,yes -< 0 DM,21,very good,car,1647,unknown,1 - 4 years,4,2,40,none,own,2,unskilled,2,no,yes -unknown,24,critical,furniture/appliances,3777,> 1000 DM,1 - 4 years,4,4,50,none,own,1,skilled,1,yes,no -1 - 200 DM,18,critical,car,884,< 100 DM,> 7 years,4,4,36,bank,own,1,skilled,2,yes,yes -unknown,15,critical,furniture/appliances,1360,< 100 DM,1 - 4 years,4,2,31,none,own,2,skilled,1,no,no -1 - 200 DM,9,very good,car,5129,< 100 DM,> 7 years,2,4,74,bank,other,1,management,2,yes,yes -1 - 200 DM,16,critical,car,1175,< 100 DM,unemployed,2,3,68,none,other,3,unemployed,1,yes,no -< 0 DM,12,good,furniture/appliances,674,100 - 500 DM,4 - 7 years,4,1,20,none,own,1,skilled,1,no,yes -1 - 200 DM,18,perfect,furniture/appliances,3244,< 100 DM,1 - 4 years,1,4,33,bank,own,2,skilled,1,yes,no -unknown,24,good,business,4591,> 1000 DM,1 - 4 years,2,3,54,none,own,3,management,1,yes,yes -1 - 200 DM,48,perfect,business,3844,100 - 500 DM,4 - 7 years,4,4,34,none,other,1,unskilled,2,no,yes -1 - 200 DM,27,good,business,3915,< 100 DM,1 - 4 years,4,2,36,none,own,1,skilled,2,yes,yes -unknown,6,good,furniture/appliances,2108,< 100 DM,4 - 7 years,2,2,29,none,rent,1,skilled,1,no,no -1 - 200 DM,45,good,furniture/appliances,3031,100 - 500 DM,1 - 4 years,4,4,21,none,rent,1,skilled,1,no,yes -1 - 200 DM,9,critical,education,1501,< 100 DM,> 7 years,2,3,34,none,own,2,management,1,yes,yes -unknown,6,critical,furniture/appliances,1382,< 100 DM,1 - 4 years,1,1,28,none,own,2,skilled,1,yes,no -1 - 200 DM,12,good,furniture/appliances,951,100 - 500 DM,< 1 year,4,4,27,bank,rent,4,skilled,1,no,yes -1 - 200 DM,24,good,car,2760,unknown,> 7 years,4,4,36,bank,other,1,skilled,1,yes,no -1 - 200 DM,18,poor,furniture/appliances,4297,< 100 DM,> 7 years,4,3,40,none,own,1,management,1,yes,yes -unknown,9,critical,education,936,500 - 1000 DM,> 7 years,4,2,52,none,own,2,skilled,1,yes,no -< 0 DM,12,good,car,1168,< 100 DM,1 - 4 years,4,3,27,none,own,1,unskilled,1,no,no -unknown,27,poor,business,5117,< 100 DM,4 - 7 years,3,4,26,none,own,2,skilled,1,no,no -< 0 DM,12,good,education,902,< 100 DM,4 - 7 years,4,4,21,none,rent,1,skilled,1,no,yes -unknown,12,critical,car,1495,< 100 DM,> 7 years,4,1,38,none,own,2,unskilled,2,no,no -< 0 DM,30,critical,car,10623,< 100 DM,> 7 years,3,4,38,none,other,3,management,2,yes,no -unknown,12,critical,furniture/appliances,1935,< 100 DM,> 7 years,4,4,43,none,own,3,skilled,1,yes,no -1 - 200 DM,12,critical,furniture/appliances,1424,< 100 DM,4 - 7 years,4,3,26,none,own,1,skilled,1,no,no -< 0 DM,24,good,business,6568,< 100 DM,1 - 4 years,2,2,21,store,own,1,unskilled,1,no,no -unknown,12,good,car,1413,> 1000 DM,4 - 7 years,3,2,55,none,own,1,skilled,1,no,no -unknown,9,critical,furniture/appliances,3074,unknown,1 - 4 years,1,2,33,none,own,2,skilled,2,no,no -unknown,36,good,furniture/appliances,3835,unknown,> 7 years,2,4,45,none,own,1,unskilled,1,yes,no -< 0 DM,27,perfect,business,5293,< 100 DM,unemployed,2,4,50,store,own,2,skilled,1,yes,yes -> 200 DM,30,poor,business,1908,< 100 DM,> 7 years,4,4,66,none,own,1,management,1,yes,yes -unknown,36,critical,furniture/appliances,3342,unknown,> 7 years,4,2,51,none,own,1,skilled,1,yes,no -1 - 200 DM,6,critical,education,932,unknown,4 - 7 years,1,3,39,none,own,2,unskilled,1,no,no -< 0 DM,18,perfect,business,3104,< 100 DM,4 - 7 years,3,1,31,bank,own,1,skilled,1,yes,no -> 200 DM,36,good,furniture/appliances,3913,< 100 DM,1 - 4 years,2,2,23,none,own,1,skilled,1,yes,no -< 0 DM,24,good,furniture/appliances,3021,< 100 DM,1 - 4 years,2,2,24,none,rent,1,unskilled,1,no,no -unknown,10,good,car,1364,< 100 DM,1 - 4 years,2,4,64,none,own,1,skilled,1,yes,no -1 - 200 DM,12,good,furniture/appliances,625,< 100 DM,< 1 year,4,1,26,bank,own,1,unskilled,1,no,no -< 0 DM,12,good,education,1200,unknown,1 - 4 years,4,4,23,bank,rent,1,skilled,1,yes,no -unknown,12,good,furniture/appliances,707,< 100 DM,1 - 4 years,4,2,30,bank,own,2,skilled,1,no,no -unknown,24,poor,business,2978,unknown,1 - 4 years,4,4,32,none,own,2,skilled,2,yes,no -unknown,15,good,car,4657,< 100 DM,1 - 4 years,3,2,30,none,own,1,skilled,1,yes,no -unknown,36,perfect,renovations,2613,< 100 DM,1 - 4 years,4,2,27,none,own,2,skilled,1,no,no -1 - 200 DM,48,good,furniture/appliances,10961,> 1000 DM,4 - 7 years,1,2,27,bank,own,2,skilled,1,yes,yes -< 0 DM,12,good,furniture/appliances,7865,< 100 DM,> 7 years,4,4,53,none,other,1,management,1,yes,yes -unknown,9,good,furniture/appliances,1478,< 100 DM,4 - 7 years,4,2,22,none,own,1,skilled,1,no,yes -< 0 DM,24,good,furniture/appliances,3149,< 100 DM,< 1 year,4,1,22,bank,other,1,skilled,1,no,no -> 200 DM,36,good,furniture/appliances,4210,< 100 DM,1 - 4 years,4,2,26,none,own,1,skilled,1,no,yes -unknown,9,good,car,2507,500 - 1000 DM,> 7 years,2,4,51,none,other,1,unskilled,1,no,no -unknown,12,good,furniture/appliances,2141,100 - 500 DM,4 - 7 years,3,1,35,none,own,1,skilled,1,no,no -1 - 200 DM,18,good,furniture/appliances,866,< 100 DM,1 - 4 years,4,2,25,none,own,1,unskilled,1,no,no -unknown,4,critical,furniture/appliances,1544,< 100 DM,4 - 7 years,2,1,42,none,own,3,unskilled,2,no,no -< 0 DM,24,good,furniture/appliances,1823,< 100 DM,unemployed,4,2,30,store,own,1,management,2,no,yes -1 - 200 DM,6,good,car,14555,unknown,unemployed,1,2,23,none,own,1,unemployed,1,yes,yes -1 - 200 DM,21,good,business,2767,100 - 500 DM,> 7 years,4,2,61,bank,rent,2,unskilled,1,no,yes -unknown,12,critical,furniture/appliances,1291,< 100 DM,1 - 4 years,4,2,35,none,own,2,skilled,1,no,no -< 0 DM,30,good,furniture/appliances,2522,< 100 DM,> 7 years,1,3,39,none,own,1,skilled,2,no,no -< 0 DM,24,good,car,915,unknown,> 7 years,4,2,29,bank,own,1,skilled,1,no,yes -unknown,6,good,furniture/appliances,1595,< 100 DM,4 - 7 years,3,2,51,none,own,1,skilled,2,no,no -< 0 DM,48,perfect,car,4605,< 100 DM,> 7 years,3,4,24,none,other,2,skilled,2,no,yes -unknown,12,critical,business,1185,< 100 DM,1 - 4 years,3,2,27,none,own,2,skilled,1,no,no -unknown,12,very good,education,3447,500 - 1000 DM,1 - 4 years,4,3,35,none,own,1,unskilled,2,no,no -unknown,24,good,business,1258,< 100 DM,4 - 7 years,4,1,25,none,own,1,skilled,1,yes,no -unknown,12,critical,furniture/appliances,717,< 100 DM,> 7 years,4,4,52,none,own,3,skilled,1,no,no -unknown,6,perfect,car,1204,100 - 500 DM,1 - 4 years,4,1,35,bank,rent,1,skilled,1,no,no -> 200 DM,24,good,furniture/appliances,1925,< 100 DM,1 - 4 years,2,2,26,none,own,1,skilled,1,no,no -unknown,18,good,furniture/appliances,433,< 100 DM,unemployed,3,4,22,none,rent,1,skilled,1,no,yes -< 0 DM,6,critical,car,666,> 1000 DM,4 - 7 years,3,4,39,none,own,2,unskilled,1,yes,no -> 200 DM,12,good,furniture/appliances,2251,< 100 DM,1 - 4 years,1,2,46,none,own,1,unskilled,1,no,no -1 - 200 DM,30,good,car,2150,< 100 DM,1 - 4 years,4,2,24,bank,own,1,skilled,1,no,yes -unknown,24,poor,furniture/appliances,4151,100 - 500 DM,1 - 4 years,2,3,35,none,own,2,skilled,1,no,no -1 - 200 DM,9,good,furniture/appliances,2030,unknown,4 - 7 years,2,1,24,none,own,1,skilled,1,yes,no -1 - 200 DM,60,poor,furniture/appliances,7418,unknown,1 - 4 years,1,1,27,none,own,1,unskilled,1,no,no -unknown,24,critical,furniture/appliances,2684,< 100 DM,1 - 4 years,4,2,35,none,own,2,unskilled,1,no,no -< 0 DM,12,very good,furniture/appliances,2149,< 100 DM,1 - 4 years,4,1,29,none,other,1,skilled,1,no,yes -unknown,15,good,car,3812,100 - 500 DM,< 1 year,1,4,23,none,own,1,skilled,1,yes,no -unknown,11,critical,furniture/appliances,1154,100 - 500 DM,unemployed,4,4,57,none,own,3,unskilled,1,no,no -< 0 DM,12,good,furniture/appliances,1657,< 100 DM,1 - 4 years,2,2,27,none,own,1,skilled,1,no,no -< 0 DM,24,good,furniture/appliances,1603,< 100 DM,> 7 years,4,4,55,none,own,1,skilled,1,no,no -< 0 DM,18,critical,car,5302,< 100 DM,> 7 years,2,4,36,none,other,3,management,1,yes,no -unknown,12,critical,education,2748,< 100 DM,> 7 years,2,4,57,bank,other,3,unskilled,1,no,no -unknown,10,critical,car,1231,< 100 DM,> 7 years,3,4,32,none,own,2,unskilled,2,no,no -1 - 200 DM,15,good,furniture/appliances,802,< 100 DM,> 7 years,4,3,37,none,own,1,skilled,2,no,yes -unknown,36,critical,business,6304,unknown,> 7 years,4,4,36,none,own,2,skilled,1,no,no -unknown,24,good,furniture/appliances,1533,< 100 DM,< 1 year,4,3,38,store,own,1,skilled,1,yes,no -< 0 DM,14,good,car,8978,< 100 DM,> 7 years,1,4,45,none,own,1,management,1,yes,yes -unknown,24,good,furniture/appliances,999,unknown,> 7 years,4,2,25,none,own,2,skilled,1,no,no -unknown,18,good,car,2662,unknown,4 - 7 years,4,3,32,none,own,1,skilled,1,no,no -unknown,12,critical,furniture/appliances,1402,500 - 1000 DM,4 - 7 years,3,4,37,none,rent,1,skilled,1,yes,no -1 - 200 DM,48,very good,car,12169,unknown,unemployed,4,4,36,none,other,1,management,1,yes,no -1 - 200 DM,48,good,furniture/appliances,3060,< 100 DM,4 - 7 years,4,4,28,none,own,2,skilled,1,no,yes -< 0 DM,30,good,renovations,11998,< 100 DM,< 1 year,1,1,34,none,own,1,unskilled,1,yes,yes -unknown,9,good,furniture/appliances,2697,< 100 DM,1 - 4 years,1,2,32,none,own,1,skilled,2,no,no -unknown,18,critical,furniture/appliances,2404,< 100 DM,1 - 4 years,2,2,26,none,own,2,skilled,1,no,no -< 0 DM,12,good,furniture/appliances,1262,unknown,> 7 years,2,4,49,none,own,1,unskilled,1,yes,no -unknown,6,good,furniture/appliances,4611,< 100 DM,< 1 year,1,4,32,none,own,1,skilled,1,no,yes -unknown,24,good,furniture/appliances,1901,100 - 500 DM,1 - 4 years,4,4,29,none,rent,1,management,1,yes,no -unknown,15,critical,car,3368,> 1000 DM,> 7 years,3,4,23,none,rent,2,skilled,1,yes,no -unknown,12,good,furniture/appliances,1574,< 100 DM,1 - 4 years,4,2,50,none,own,1,skilled,1,no,no -> 200 DM,18,very good,furniture/appliances,1445,unknown,4 - 7 years,4,4,49,bank,own,1,unskilled,1,no,no -unknown,15,critical,furniture/appliances,1520,unknown,> 7 years,4,4,63,none,own,1,skilled,1,no,no -1 - 200 DM,24,critical,car,3878,100 - 500 DM,< 1 year,4,2,37,none,own,1,skilled,1,yes,no -< 0 DM,47,good,car,10722,< 100 DM,< 1 year,1,1,35,none,own,1,unskilled,1,yes,no -< 0 DM,48,good,car,4788,< 100 DM,4 - 7 years,4,3,26,none,own,1,skilled,2,no,no -1 - 200 DM,48,poor,car0,7582,100 - 500 DM,unemployed,2,4,31,none,other,1,management,1,yes,no -1 - 200 DM,12,good,furniture/appliances,1092,< 100 DM,1 - 4 years,4,4,49,none,own,2,skilled,1,yes,no -< 0 DM,24,poor,furniture/appliances,1024,< 100 DM,< 1 year,4,4,48,store,own,1,skilled,1,no,yes -unknown,12,good,business,1076,< 100 DM,1 - 4 years,2,2,26,none,own,1,skilled,1,yes,no -1 - 200 DM,36,good,car,9398,< 100 DM,< 1 year,1,4,28,none,rent,1,management,1,yes,yes -< 0 DM,24,critical,car,6419,< 100 DM,> 7 years,2,4,44,none,other,2,management,2,yes,no -> 200 DM,42,critical,car,4796,< 100 DM,> 7 years,4,4,56,none,other,1,skilled,1,no,no -unknown,48,critical,business,7629,unknown,> 7 years,4,2,46,bank,own,2,management,2,no,no -1 - 200 DM,48,good,furniture/appliances,9960,< 100 DM,< 1 year,1,2,26,none,own,1,skilled,1,yes,yes -unknown,12,good,car,4675,unknown,< 1 year,1,4,20,none,rent,1,skilled,1,no,no -unknown,10,good,car,1287,unknown,> 7 years,4,2,45,none,own,1,unskilled,1,no,no -unknown,18,good,furniture/appliances,2515,< 100 DM,1 - 4 years,3,4,43,none,own,1,skilled,1,yes,no -1 - 200 DM,21,critical,furniture/appliances,2745,> 1000 DM,4 - 7 years,3,2,32,none,own,2,skilled,1,yes,no -unknown,6,good,car,672,< 100 DM,unemployed,1,4,54,none,own,1,unemployed,1,yes,no -1 - 200 DM,36,perfect,furniture/appliances,3804,< 100 DM,1 - 4 years,4,1,42,none,own,1,skilled,1,yes,yes -> 200 DM,24,critical,car,1344,unknown,4 - 7 years,4,2,37,bank,own,2,unskilled,2,no,yes -< 0 DM,10,critical,car,1038,< 100 DM,4 - 7 years,4,3,49,none,own,2,skilled,1,yes,no -unknown,48,critical,car,10127,500 - 1000 DM,1 - 4 years,2,2,44,bank,other,1,skilled,1,no,yes -unknown,6,good,furniture/appliances,1543,> 1000 DM,1 - 4 years,4,2,33,none,own,1,skilled,1,no,no -unknown,30,good,car,4811,unknown,4 - 7 years,2,4,24,store,rent,1,unskilled,1,no,no -< 0 DM,12,good,furniture/appliances,727,100 - 500 DM,< 1 year,4,3,33,none,own,1,unskilled,1,yes,yes -1 - 200 DM,8,good,furniture/appliances,1237,< 100 DM,1 - 4 years,3,4,24,none,own,1,skilled,1,no,yes -1 - 200 DM,9,good,car,276,< 100 DM,1 - 4 years,4,4,22,none,rent,1,unskilled,1,no,no -1 - 200 DM,48,good,car0,5381,unknown,unemployed,3,4,40,bank,other,1,unemployed,1,yes,no -unknown,24,good,furniture/appliances,5511,100 - 500 DM,1 - 4 years,4,1,25,store,own,1,skilled,1,no,no -> 200 DM,24,good,furniture/appliances,3749,< 100 DM,< 1 year,2,4,26,none,own,1,skilled,1,no,no -1 - 200 DM,12,good,car,685,< 100 DM,4 - 7 years,2,3,25,bank,own,1,unskilled,1,no,yes -> 200 DM,4,good,car,1494,unknown,< 1 year,1,2,29,none,own,1,unskilled,2,no,no -< 0 DM,36,very good,furniture/appliances,2746,< 100 DM,> 7 years,4,4,31,bank,own,1,skilled,1,no,yes -< 0 DM,12,good,furniture/appliances,708,< 100 DM,1 - 4 years,2,3,38,none,own,1,unskilled,2,no,no -1 - 200 DM,24,good,furniture/appliances,4351,unknown,1 - 4 years,1,4,48,none,own,1,unskilled,1,yes,no -unknown,12,critical,education,701,< 100 DM,1 - 4 years,4,2,32,none,own,2,skilled,1,no,no -< 0 DM,15,poor,furniture/appliances,3643,< 100 DM,> 7 years,1,4,27,none,own,2,unskilled,1,no,no -1 - 200 DM,30,critical,car,4249,< 100 DM,unemployed,4,2,28,none,own,2,management,1,no,yes -< 0 DM,24,good,furniture/appliances,1938,< 100 DM,< 1 year,4,3,32,none,own,1,skilled,1,no,yes -< 0 DM,24,good,car,2910,< 100 DM,4 - 7 years,2,1,34,none,other,1,management,1,yes,no -< 0 DM,18,good,furniture/appliances,2659,> 1000 DM,1 - 4 years,4,2,28,none,own,1,skilled,1,no,no -unknown,18,critical,car,1028,< 100 DM,1 - 4 years,4,3,36,none,own,2,skilled,1,no,no -< 0 DM,8,critical,car,3398,< 100 DM,4 - 7 years,1,4,39,none,own,2,unskilled,1,no,no -unknown,12,critical,furniture/appliances,5801,unknown,> 7 years,2,4,49,none,rent,1,skilled,1,yes,no -unknown,24,good,car,1525,> 1000 DM,4 - 7 years,4,3,34,none,own,1,skilled,2,yes,no -> 200 DM,36,good,furniture/appliances,4473,< 100 DM,> 7 years,4,2,31,none,own,1,skilled,1,no,no -1 - 200 DM,6,good,furniture/appliances,1068,< 100 DM,> 7 years,4,4,28,none,own,1,skilled,2,no,no -< 0 DM,24,critical,car,6615,< 100 DM,unemployed,2,4,75,none,other,2,management,1,yes,no -unknown,18,critical,education,1864,100 - 500 DM,1 - 4 years,4,2,30,none,own,2,skilled,1,no,yes -1 - 200 DM,60,good,car,7408,100 - 500 DM,< 1 year,4,2,24,none,own,1,management,1,no,yes -unknown,48,critical,car,11590,100 - 500 DM,1 - 4 years,2,4,24,bank,rent,2,unskilled,1,no,yes -< 0 DM,24,perfect,furniture/appliances,4110,< 100 DM,> 7 years,3,4,23,bank,rent,2,skilled,2,no,yes -< 0 DM,6,critical,furniture/appliances,3384,< 100 DM,1 - 4 years,1,4,44,none,rent,1,management,1,yes,yes -1 - 200 DM,13,good,furniture/appliances,2101,< 100 DM,< 1 year,2,4,23,none,own,1,unskilled,1,no,no -< 0 DM,15,good,furniture/appliances,1275,unknown,1 - 4 years,4,2,24,none,rent,1,skilled,1,no,yes -< 0 DM,24,good,furniture/appliances,4169,< 100 DM,1 - 4 years,4,4,28,none,own,1,skilled,1,no,no -1 - 200 DM,10,good,furniture/appliances,1521,< 100 DM,1 - 4 years,4,2,31,none,own,1,unskilled,1,no,no -1 - 200 DM,24,critical,education,5743,< 100 DM,< 1 year,2,4,24,none,other,2,skilled,1,yes,no -< 0 DM,21,good,furniture/appliances,3599,< 100 DM,4 - 7 years,1,4,26,none,rent,1,unskilled,1,no,no -1 - 200 DM,18,good,furniture/appliances,3213,500 - 1000 DM,< 1 year,1,3,25,none,rent,1,skilled,1,no,no -1 - 200 DM,18,good,business,4439,< 100 DM,> 7 years,1,1,33,bank,own,1,management,1,yes,no -> 200 DM,10,good,car,3949,< 100 DM,< 1 year,1,1,37,none,own,1,unskilled,2,no,no -unknown,15,critical,furniture/appliances,1459,< 100 DM,1 - 4 years,4,2,43,none,own,1,unskilled,1,no,no -1 - 200 DM,13,critical,furniture/appliances,882,< 100 DM,< 1 year,4,4,23,none,own,2,skilled,1,no,no -1 - 200 DM,24,good,furniture/appliances,3758,500 - 1000 DM,unemployed,1,4,23,none,rent,1,unemployed,1,no,no -unknown,6,poor,business,1743,100 - 500 DM,1 - 4 years,1,2,34,none,own,2,unskilled,1,no,no -1 - 200 DM,9,critical,education,1136,> 1000 DM,> 7 years,4,3,32,none,other,2,skilled,2,no,yes -unknown,9,good,furniture/appliances,1236,< 100 DM,< 1 year,1,4,23,none,rent,1,skilled,1,yes,no -1 - 200 DM,9,good,furniture/appliances,959,< 100 DM,1 - 4 years,1,2,29,none,own,1,skilled,1,no,yes -unknown,18,critical,car,3229,unknown,unemployed,2,4,38,none,own,1,management,1,yes,no -< 0 DM,12,perfect,furniture/appliances,6199,< 100 DM,1 - 4 years,4,2,28,none,rent,2,skilled,1,yes,yes -unknown,10,good,education,727,500 - 1000 DM,> 7 years,4,4,46,none,other,1,skilled,1,yes,no -1 - 200 DM,24,good,car,1246,< 100 DM,< 1 year,4,2,23,store,own,1,unskilled,1,no,yes -unknown,12,critical,furniture/appliances,2331,unknown,> 7 years,1,4,49,none,own,1,skilled,1,yes,no -unknown,36,poor,furniture/appliances,4463,< 100 DM,1 - 4 years,4,2,26,none,own,2,management,1,yes,yes -unknown,12,good,furniture/appliances,776,< 100 DM,1 - 4 years,4,2,28,none,own,1,skilled,1,no,no -< 0 DM,30,good,furniture/appliances,2406,< 100 DM,4 - 7 years,4,4,23,none,rent,1,skilled,1,no,yes -1 - 200 DM,18,good,education,1239,unknown,1 - 4 years,4,4,61,none,other,1,skilled,1,no,no -> 200 DM,12,good,furniture/appliances,3399,unknown,> 7 years,2,3,37,none,own,1,management,1,no,no -> 200 DM,12,poor,car,2247,< 100 DM,1 - 4 years,2,2,36,store,own,2,skilled,1,yes,no -unknown,6,good,furniture/appliances,1766,< 100 DM,1 - 4 years,1,2,21,none,rent,1,skilled,1,no,no -< 0 DM,18,good,furniture/appliances,2473,< 100 DM,unemployed,4,1,25,none,own,1,unemployed,1,no,yes -unknown,12,good,business,1542,< 100 DM,4 - 7 years,2,4,36,none,own,1,skilled,1,yes,no -unknown,18,critical,car,3850,< 100 DM,4 - 7 years,3,1,27,none,own,2,skilled,1,no,no -< 0 DM,18,good,furniture/appliances,3650,< 100 DM,< 1 year,1,4,22,none,rent,1,skilled,1,no,no -< 0 DM,36,good,furniture/appliances,3446,< 100 DM,> 7 years,4,2,42,none,own,1,skilled,2,no,yes -1 - 200 DM,18,good,furniture/appliances,3001,< 100 DM,4 - 7 years,2,4,40,none,rent,1,skilled,1,no,no -unknown,36,good,car,3079,unknown,1 - 4 years,4,4,36,none,own,1,skilled,1,no,no -unknown,18,critical,furniture/appliances,6070,< 100 DM,> 7 years,3,4,33,none,own,2,skilled,1,yes,no -unknown,10,critical,furniture/appliances,2146,< 100 DM,< 1 year,1,3,23,none,rent,2,skilled,1,no,no -unknown,60,critical,car,13756,unknown,> 7 years,2,4,63,bank,other,1,management,1,yes,no -1 - 200 DM,60,very good,car0,14782,100 - 500 DM,> 7 years,3,4,60,bank,other,2,management,1,yes,yes -< 0 DM,48,very good,business,7685,< 100 DM,4 - 7 years,2,4,37,none,rent,1,skilled,1,no,yes -unknown,18,poor,furniture/appliances,2320,< 100 DM,unemployed,2,3,34,none,own,2,skilled,1,no,no -unknown,7,poor,furniture/appliances,846,unknown,> 7 years,3,4,36,none,other,1,skilled,1,no,no -1 - 200 DM,36,good,car,14318,< 100 DM,> 7 years,4,2,57,none,other,1,management,1,yes,yes -unknown,6,critical,car,362,100 - 500 DM,1 - 4 years,4,4,52,none,own,2,unskilled,1,no,no -< 0 DM,20,good,furniture/appliances,2212,unknown,4 - 7 years,4,4,39,none,own,1,skilled,1,yes,no -1 - 200 DM,18,good,car,12976,< 100 DM,unemployed,3,4,38,none,other,1,management,1,yes,yes -unknown,22,good,car,1283,unknown,4 - 7 years,4,4,25,none,rent,1,skilled,1,no,no -> 200 DM,12,good,car,1330,< 100 DM,< 1 year,4,1,26,none,own,1,skilled,1,no,no -unknown,30,poor,business,4272,100 - 500 DM,1 - 4 years,2,2,26,none,own,2,unskilled,1,no,no -unknown,18,critical,furniture/appliances,2238,< 100 DM,1 - 4 years,2,1,25,none,own,2,skilled,1,no,no -unknown,18,good,furniture/appliances,1126,unknown,< 1 year,4,2,21,none,rent,1,skilled,1,yes,no -1 - 200 DM,18,critical,furniture/appliances,7374,< 100 DM,unemployed,4,4,40,store,own,2,management,1,yes,no -1 - 200 DM,15,critical,business,2326,500 - 1000 DM,1 - 4 years,2,4,27,bank,own,1,skilled,1,no,no -unknown,9,good,business,1449,< 100 DM,4 - 7 years,3,2,27,none,own,2,skilled,1,no,no -unknown,18,good,car,1820,< 100 DM,1 - 4 years,2,2,30,none,own,1,management,1,yes,no -1 - 200 DM,12,good,furniture/appliances,983,> 1000 DM,< 1 year,1,4,19,none,rent,1,unskilled,1,no,no -< 0 DM,36,good,car,3249,< 100 DM,4 - 7 years,2,4,39,bank,other,1,management,2,yes,no -< 0 DM,6,critical,furniture/appliances,1957,< 100 DM,4 - 7 years,1,4,31,none,own,1,skilled,1,no,no -unknown,9,critical,furniture/appliances,2406,< 100 DM,unemployed,2,3,31,none,own,1,management,1,no,no -1 - 200 DM,39,poor,education,11760,100 - 500 DM,4 - 7 years,2,3,32,none,rent,1,skilled,1,yes,no -< 0 DM,12,good,furniture/appliances,2578,< 100 DM,unemployed,3,4,55,none,other,1,management,1,no,no -< 0 DM,36,critical,furniture/appliances,2348,< 100 DM,1 - 4 years,3,2,46,none,own,2,skilled,1,yes,no -1 - 200 DM,12,good,car,1223,< 100 DM,> 7 years,1,1,46,none,rent,2,skilled,1,no,yes -unknown,24,critical,furniture/appliances,1516,> 1000 DM,1 - 4 years,4,1,43,none,own,2,unskilled,1,no,no -unknown,18,good,furniture/appliances,1473,< 100 DM,< 1 year,3,4,39,none,own,1,skilled,1,yes,no -1 - 200 DM,18,critical,business,1887,unknown,1 - 4 years,4,4,28,bank,own,2,skilled,1,no,no -unknown,24,poor,business,8648,< 100 DM,< 1 year,2,2,27,bank,own,2,skilled,1,yes,yes -unknown,14,poor,car,802,< 100 DM,1 - 4 years,4,2,27,none,own,2,unskilled,1,no,no -1 - 200 DM,18,poor,car,2899,unknown,> 7 years,4,4,43,none,own,1,skilled,2,no,no -1 - 200 DM,24,good,furniture/appliances,2039,< 100 DM,< 1 year,1,1,22,none,own,1,skilled,1,yes,yes -unknown,24,critical,car,2197,unknown,4 - 7 years,4,4,43,none,own,2,skilled,2,yes,no -< 0 DM,15,good,furniture/appliances,1053,< 100 DM,< 1 year,4,2,27,none,own,1,skilled,1,no,no -unknown,24,good,furniture/appliances,3235,500 - 1000 DM,> 7 years,3,2,26,none,own,1,management,1,yes,no -> 200 DM,12,critical,car,939,500 - 1000 DM,4 - 7 years,4,2,28,none,own,3,skilled,1,yes,yes -1 - 200 DM,24,good,furniture/appliances,1967,< 100 DM,> 7 years,4,4,20,none,own,1,skilled,1,yes,no -unknown,33,critical,car,7253,< 100 DM,4 - 7 years,3,2,35,none,own,2,management,1,yes,no -unknown,12,critical,business,2292,< 100 DM,unemployed,4,2,42,store,own,2,management,1,yes,yes -unknown,10,good,car,1597,500 - 1000 DM,1 - 4 years,3,2,40,none,rent,1,unskilled,2,no,no -< 0 DM,24,good,car,1381,unknown,1 - 4 years,4,2,35,none,own,1,skilled,1,no,yes -unknown,36,critical,car,5842,< 100 DM,> 7 years,2,2,35,none,own,2,skilled,2,yes,no -< 0 DM,12,good,car,2579,< 100 DM,< 1 year,4,1,33,none,own,1,unskilled,2,no,yes -< 0 DM,18,poor,education,8471,unknown,1 - 4 years,1,2,23,none,rent,2,skilled,1,yes,no -unknown,21,good,car,2782,500 - 1000 DM,4 - 7 years,1,2,31,bank,own,1,management,1,no,no -1 - 200 DM,18,good,car,1042,unknown,1 - 4 years,4,2,33,none,own,1,skilled,1,no,yes -unknown,15,good,car,3186,> 1000 DM,4 - 7 years,2,3,20,none,rent,1,skilled,1,no,no -1 - 200 DM,12,good,car,2028,unknown,1 - 4 years,4,2,30,none,own,1,skilled,1,no,no -1 - 200 DM,12,critical,car,958,< 100 DM,4 - 7 years,2,3,47,none,own,2,unskilled,2,no,no -unknown,21,poor,furniture/appliances,1591,100 - 500 DM,4 - 7 years,4,3,34,none,own,2,management,1,no,no -1 - 200 DM,12,good,furniture/appliances,2762,unknown,> 7 years,1,2,25,bank,own,1,skilled,1,yes,yes -1 - 200 DM,18,good,car,2779,< 100 DM,1 - 4 years,1,3,21,none,rent,1,skilled,1,yes,no -unknown,28,critical,furniture/appliances,2743,< 100 DM,> 7 years,4,2,29,none,own,2,skilled,1,no,no -unknown,18,critical,furniture/appliances,1149,> 1000 DM,1 - 4 years,4,3,46,none,own,2,skilled,1,no,no -unknown,9,good,furniture/appliances,1313,< 100 DM,> 7 years,1,4,20,none,own,1,skilled,1,no,no -< 0 DM,18,critical,renovations,1190,< 100 DM,unemployed,2,4,55,none,other,3,unemployed,2,no,yes -unknown,5,good,business,3448,< 100 DM,4 - 7 years,1,4,74,none,own,1,unskilled,1,no,no -1 - 200 DM,24,good,car0,11328,< 100 DM,1 - 4 years,2,3,29,bank,own,2,management,1,yes,yes -< 0 DM,6,critical,furniture/appliances,1872,< 100 DM,unemployed,4,4,36,none,other,3,management,1,yes,no -unknown,24,critical,renovations,2058,< 100 DM,1 - 4 years,4,2,33,none,own,2,skilled,1,yes,no -< 0 DM,9,good,furniture/appliances,2136,< 100 DM,1 - 4 years,3,2,25,none,own,1,skilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,1484,unknown,1 - 4 years,2,1,25,none,own,1,skilled,1,yes,yes -unknown,6,good,renovations,660,500 - 1000 DM,4 - 7 years,2,4,23,none,rent,1,unskilled,1,no,no -unknown,24,critical,car,1287,> 1000 DM,> 7 years,4,4,37,none,own,2,skilled,1,yes,no -< 0 DM,42,critical,renovations,3394,< 100 DM,unemployed,4,4,65,none,own,2,unemployed,1,no,no -> 200 DM,12,very good,business,609,< 100 DM,< 1 year,4,1,26,none,own,1,unemployed,1,no,yes -unknown,12,good,car,1884,< 100 DM,> 7 years,4,4,39,none,own,1,management,1,yes,no -< 0 DM,12,good,furniture/appliances,1620,< 100 DM,1 - 4 years,2,3,30,none,own,1,skilled,1,no,no -1 - 200 DM,20,poor,car0,2629,< 100 DM,1 - 4 years,2,3,29,bank,own,2,skilled,1,yes,no -unknown,12,good,education,719,< 100 DM,> 7 years,4,4,41,bank,own,1,unskilled,2,no,yes -1 - 200 DM,48,critical,furniture/appliances,5096,< 100 DM,1 - 4 years,2,3,30,none,own,1,management,1,yes,yes -unknown,9,critical,education,1244,unknown,> 7 years,4,4,41,none,rent,2,unskilled,1,no,no -< 0 DM,36,good,car,1842,< 100 DM,< 1 year,4,4,34,none,own,1,skilled,1,yes,yes -1 - 200 DM,7,good,furniture/appliances,2576,< 100 DM,1 - 4 years,2,2,35,none,own,1,skilled,1,no,no -> 200 DM,12,good,furniture/appliances,1424,unknown,> 7 years,3,4,55,none,own,1,management,1,yes,no -1 - 200 DM,15,poor,renovations,1512,> 1000 DM,1 - 4 years,3,3,61,store,own,2,skilled,1,no,yes -unknown,36,critical,car,11054,unknown,1 - 4 years,4,2,30,none,own,1,management,1,yes,no -unknown,6,good,furniture/appliances,518,< 100 DM,1 - 4 years,3,1,29,none,own,1,skilled,1,no,no -unknown,12,perfect,furniture/appliances,2759,< 100 DM,> 7 years,2,4,34,none,own,2,skilled,1,no,no -unknown,24,good,car,2670,< 100 DM,> 7 years,4,4,35,none,own,1,management,1,yes,no -< 0 DM,24,good,car,4817,< 100 DM,4 - 7 years,2,3,31,none,own,1,skilled,1,yes,yes -unknown,24,good,car,2679,< 100 DM,< 1 year,4,1,29,none,own,1,management,1,yes,no -< 0 DM,11,critical,car,3905,< 100 DM,1 - 4 years,2,2,36,none,rent,2,skilled,2,no,no -< 0 DM,12,good,car,3386,< 100 DM,> 7 years,3,4,35,none,other,1,skilled,1,yes,yes -< 0 DM,6,good,furniture/appliances,343,< 100 DM,< 1 year,4,1,27,none,own,1,skilled,1,no,no -unknown,18,good,furniture/appliances,4594,< 100 DM,< 1 year,3,2,32,none,own,1,skilled,1,yes,no -< 0 DM,36,good,furniture/appliances,3620,< 100 DM,1 - 4 years,1,2,37,none,own,1,skilled,2,no,no -< 0 DM,15,good,car,1721,< 100 DM,< 1 year,2,3,36,none,own,1,skilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,3017,< 100 DM,< 1 year,3,1,34,none,rent,1,management,1,no,no -1 - 200 DM,12,good,education,754,unknown,> 7 years,4,4,38,none,own,2,skilled,1,no,no -unknown,18,good,business,1950,< 100 DM,4 - 7 years,4,1,34,store,own,2,skilled,1,yes,no -< 0 DM,24,good,car,2924,< 100 DM,1 - 4 years,3,4,63,bank,own,1,skilled,2,yes,no -< 0 DM,24,poor,furniture/appliances,1659,< 100 DM,< 1 year,4,2,29,none,rent,1,unskilled,1,yes,yes -unknown,48,poor,furniture/appliances,7238,unknown,> 7 years,3,3,32,bank,own,2,skilled,2,no,no -unknown,33,poor,business,2764,< 100 DM,1 - 4 years,2,2,26,none,own,2,skilled,1,yes,no -unknown,24,poor,car,4679,< 100 DM,4 - 7 years,3,3,35,none,own,2,unskilled,1,yes,no -1 - 200 DM,24,good,furniture/appliances,3092,100 - 500 DM,< 1 year,3,2,22,none,rent,1,skilled,1,yes,yes -< 0 DM,6,good,education,448,< 100 DM,< 1 year,4,4,23,none,own,1,skilled,1,no,yes -< 0 DM,9,good,car,654,< 100 DM,1 - 4 years,4,3,28,none,own,1,unskilled,1,no,yes -unknown,6,good,education,1238,unknown,unemployed,4,4,36,none,own,1,management,2,yes,no -1 - 200 DM,18,critical,furniture/appliances,1245,< 100 DM,1 - 4 years,4,2,33,none,own,1,skilled,1,no,yes -< 0 DM,18,perfect,furniture/appliances,3114,< 100 DM,< 1 year,1,4,26,none,rent,1,skilled,1,no,yes -unknown,39,good,car,2569,500 - 1000 DM,1 - 4 years,4,4,24,none,own,1,skilled,1,no,no -> 200 DM,24,good,furniture/appliances,5152,< 100 DM,4 - 7 years,4,2,25,bank,own,1,skilled,1,no,no -1 - 200 DM,12,good,business,1037,100 - 500 DM,4 - 7 years,3,4,39,none,own,1,unskilled,1,no,no -< 0 DM,15,critical,furniture/appliances,1478,< 100 DM,> 7 years,4,4,44,none,own,2,skilled,2,yes,no -1 - 200 DM,12,critical,furniture/appliances,3573,< 100 DM,1 - 4 years,1,1,23,none,own,1,unskilled,1,no,no -1 - 200 DM,24,good,car,1201,< 100 DM,< 1 year,4,1,26,none,own,1,skilled,1,no,no -< 0 DM,30,good,furniture/appliances,3622,> 1000 DM,> 7 years,4,4,57,none,rent,2,skilled,1,yes,no -unknown,15,poor,furniture/appliances,960,> 1000 DM,4 - 7 years,3,2,30,none,own,2,skilled,1,no,no -unknown,12,critical,car,1163,500 - 1000 DM,1 - 4 years,4,4,44,none,own,1,skilled,1,yes,no -1 - 200 DM,6,poor,car,1209,< 100 DM,unemployed,4,4,47,none,own,1,management,1,yes,yes -unknown,12,good,furniture/appliances,3077,< 100 DM,1 - 4 years,2,4,52,none,own,1,skilled,1,yes,no -unknown,24,good,car,3757,< 100 DM,> 7 years,4,4,62,none,other,1,skilled,1,yes,no -unknown,10,good,car,1418,100 - 500 DM,1 - 4 years,3,2,35,none,rent,1,unskilled,1,no,no -unknown,6,good,car,3518,< 100 DM,1 - 4 years,2,3,26,none,rent,1,skilled,1,no,no -unknown,12,critical,furniture/appliances,1934,< 100 DM,> 7 years,2,2,26,none,own,2,skilled,1,no,no -1 - 200 DM,27,perfect,business,8318,< 100 DM,> 7 years,2,4,42,none,other,2,management,1,yes,yes -unknown,6,critical,furniture/appliances,1237,100 - 500 DM,1 - 4 years,1,1,27,none,own,2,skilled,1,no,no -1 - 200 DM,6,good,furniture/appliances,368,unknown,> 7 years,4,4,38,none,own,1,skilled,1,no,no -< 0 DM,12,critical,car,2122,< 100 DM,1 - 4 years,3,2,39,none,rent,2,unskilled,2,no,no -< 0 DM,24,good,furniture/appliances,2996,unknown,1 - 4 years,2,4,20,none,own,1,skilled,1,no,yes -1 - 200 DM,36,good,furniture/appliances,9034,100 - 500 DM,< 1 year,4,1,29,none,rent,1,management,1,yes,yes -unknown,24,critical,furniture/appliances,1585,< 100 DM,4 - 7 years,4,3,40,none,own,2,skilled,1,no,no -1 - 200 DM,18,good,furniture/appliances,1301,< 100 DM,> 7 years,4,2,32,none,own,1,unskilled,1,no,no -> 200 DM,6,critical,car,1323,100 - 500 DM,> 7 years,2,4,28,none,own,2,skilled,2,yes,no -< 0 DM,24,good,car,3123,< 100 DM,< 1 year,4,1,27,none,own,1,skilled,1,no,yes -< 0 DM,36,good,car,5493,< 100 DM,> 7 years,2,4,42,none,other,1,skilled,2,no,no -> 200 DM,9,good,furniture/appliances,1126,100 - 500 DM,> 7 years,2,4,49,none,own,1,skilled,1,no,no -1 - 200 DM,24,critical,furniture/appliances,1216,100 - 500 DM,< 1 year,4,4,38,bank,own,2,skilled,2,no,yes -< 0 DM,24,good,car,1207,< 100 DM,< 1 year,4,4,24,none,rent,1,skilled,1,no,yes -unknown,10,good,car,1309,unknown,1 - 4 years,4,4,27,none,own,1,unskilled,1,no,yes -> 200 DM,15,critical,car,2360,500 - 1000 DM,1 - 4 years,2,2,36,none,own,1,skilled,1,yes,no -1 - 200 DM,15,very good,car,6850,100 - 500 DM,unemployed,1,2,34,none,own,1,management,2,yes,yes -unknown,24,good,furniture/appliances,1413,< 100 DM,1 - 4 years,4,2,28,none,own,1,skilled,1,no,no -unknown,39,good,car,8588,100 - 500 DM,> 7 years,4,2,45,none,own,1,management,1,yes,no -< 0 DM,12,good,car,759,< 100 DM,4 - 7 years,4,2,26,none,own,1,skilled,1,no,yes -unknown,36,good,car,4686,< 100 DM,1 - 4 years,2,2,32,none,other,1,management,1,yes,no -> 200 DM,15,good,business,2687,< 100 DM,4 - 7 years,2,4,26,none,rent,1,skilled,1,yes,no -1 - 200 DM,12,poor,furniture/appliances,585,< 100 DM,1 - 4 years,4,4,20,none,rent,2,skilled,1,no,no -unknown,24,good,car,2255,unknown,< 1 year,4,1,54,none,own,1,skilled,1,no,no -< 0 DM,6,critical,car,609,< 100 DM,4 - 7 years,4,3,37,none,own,2,skilled,1,no,no -< 0 DM,6,critical,car,1361,< 100 DM,< 1 year,2,4,40,none,own,1,unskilled,2,no,no -unknown,36,critical,furniture/appliances,7127,< 100 DM,< 1 year,2,4,23,none,rent,2,skilled,1,yes,yes -< 0 DM,6,good,car,1203,100 - 500 DM,> 7 years,3,2,43,none,own,1,skilled,1,yes,no -unknown,6,critical,furniture/appliances,700,unknown,> 7 years,4,4,36,none,other,2,skilled,1,no,no -unknown,24,critical,renovations,5507,< 100 DM,> 7 years,3,4,44,none,other,2,skilled,1,no,no -< 0 DM,18,good,furniture/appliances,3190,< 100 DM,1 - 4 years,2,2,24,none,own,1,skilled,1,no,yes -< 0 DM,48,perfect,furniture/appliances,7119,< 100 DM,1 - 4 years,3,4,53,none,other,2,skilled,2,no,yes -unknown,24,good,car,3488,100 - 500 DM,4 - 7 years,3,4,23,none,own,1,skilled,1,no,no -1 - 200 DM,18,good,furniture/appliances,1113,< 100 DM,1 - 4 years,4,4,26,none,own,1,unskilled,2,no,no -1 - 200 DM,26,good,car,7966,< 100 DM,< 1 year,2,3,30,none,own,2,skilled,1,no,no -unknown,15,critical,education,1532,100 - 500 DM,1 - 4 years,4,3,31,none,own,1,skilled,1,no,no -unknown,4,critical,furniture/appliances,1503,< 100 DM,4 - 7 years,2,1,42,none,own,2,unskilled,2,no,no -< 0 DM,36,good,furniture/appliances,2302,< 100 DM,1 - 4 years,4,4,31,none,rent,1,skilled,1,no,yes -< 0 DM,6,good,car,662,< 100 DM,< 1 year,3,4,41,none,own,1,unskilled,2,yes,no -1 - 200 DM,36,good,education,2273,< 100 DM,4 - 7 years,3,1,32,none,own,2,skilled,2,no,no -1 - 200 DM,15,good,car,2631,100 - 500 DM,1 - 4 years,2,4,28,none,rent,2,skilled,1,yes,yes -unknown,12,poor,car,1503,< 100 DM,1 - 4 years,4,4,41,none,rent,1,skilled,1,no,no -unknown,24,good,furniture/appliances,1311,100 - 500 DM,4 - 7 years,4,3,26,none,own,1,skilled,1,yes,no -unknown,24,good,furniture/appliances,3105,unknown,< 1 year,4,2,25,none,own,2,skilled,1,no,no -> 200 DM,21,critical,education,2319,< 100 DM,< 1 year,2,1,33,none,rent,1,skilled,1,no,yes -< 0 DM,6,good,car,1374,unknown,unemployed,4,3,75,none,own,1,management,1,yes,no -1 - 200 DM,18,critical,furniture/appliances,3612,< 100 DM,> 7 years,3,4,37,none,own,1,skilled,1,yes,no -< 0 DM,48,good,car,7763,< 100 DM,> 7 years,4,4,42,bank,other,1,management,1,no,yes -> 200 DM,18,good,furniture/appliances,3049,< 100 DM,< 1 year,1,1,45,store,own,1,unskilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,1534,< 100 DM,< 1 year,1,1,23,none,rent,1,skilled,1,no,yes -unknown,24,poor,car,2032,< 100 DM,> 7 years,4,4,60,none,other,2,skilled,1,yes,no -< 0 DM,30,good,furniture/appliances,6350,unknown,> 7 years,4,4,31,none,own,1,skilled,1,no,yes -> 200 DM,18,good,furniture/appliances,2864,< 100 DM,1 - 4 years,2,1,34,none,own,1,unskilled,2,no,yes -unknown,12,critical,car,1255,< 100 DM,> 7 years,4,4,61,none,own,2,unskilled,1,no,no -< 0 DM,24,poor,car,1333,< 100 DM,unemployed,4,2,43,none,other,2,skilled,2,no,yes -unknown,24,critical,car,2022,< 100 DM,1 - 4 years,4,4,37,none,own,1,skilled,1,yes,no -unknown,24,good,furniture/appliances,1552,< 100 DM,4 - 7 years,3,1,32,bank,own,1,skilled,2,no,no -< 0 DM,12,very good,furniture/appliances,626,< 100 DM,1 - 4 years,4,4,24,bank,own,1,unskilled,1,no,yes -unknown,48,critical,car,8858,unknown,4 - 7 years,2,1,35,none,other,2,skilled,1,yes,no -unknown,12,critical,renovations,996,unknown,4 - 7 years,4,4,23,none,own,2,skilled,1,no,no -unknown,6,very good,furniture/appliances,1750,500 - 1000 DM,> 7 years,2,4,45,bank,own,1,unskilled,2,no,no -< 0 DM,48,good,furniture/appliances,6999,< 100 DM,4 - 7 years,1,1,34,none,own,2,skilled,1,yes,yes -1 - 200 DM,12,critical,car,1995,100 - 500 DM,< 1 year,4,1,27,none,own,1,skilled,1,no,no -1 - 200 DM,9,good,education,1199,< 100 DM,4 - 7 years,4,4,67,none,own,2,management,1,yes,no -1 - 200 DM,12,good,furniture/appliances,1331,< 100 DM,< 1 year,2,1,22,store,own,1,skilled,1,no,yes -1 - 200 DM,18,perfect,car,2278,100 - 500 DM,< 1 year,3,3,28,none,own,2,skilled,1,no,yes -unknown,21,perfect,car,5003,unknown,1 - 4 years,1,4,29,bank,own,2,skilled,1,yes,yes -< 0 DM,24,very good,furniture/appliances,3552,< 100 DM,4 - 7 years,3,4,27,bank,own,1,skilled,1,no,yes -1 - 200 DM,18,critical,furniture/appliances,1928,< 100 DM,< 1 year,2,2,31,none,own,2,unskilled,1,no,yes -< 0 DM,24,good,car,2964,unknown,> 7 years,4,4,49,bank,other,1,skilled,2,yes,no -< 0 DM,24,very good,furniture/appliances,1546,< 100 DM,4 - 7 years,4,4,24,bank,rent,1,unskilled,1,no,yes -> 200 DM,6,poor,furniture/appliances,683,< 100 DM,< 1 year,2,1,29,bank,own,1,skilled,1,no,no -1 - 200 DM,36,good,car,12389,unknown,1 - 4 years,1,4,37,none,other,1,skilled,1,yes,yes -1 - 200 DM,24,poor,business,4712,unknown,1 - 4 years,4,2,37,bank,own,2,management,1,yes,no -1 - 200 DM,24,poor,furniture/appliances,1553,100 - 500 DM,4 - 7 years,3,2,23,none,rent,2,skilled,1,yes,no -< 0 DM,12,good,car,1372,< 100 DM,4 - 7 years,2,3,36,none,own,1,skilled,1,no,yes -unknown,24,critical,furniture/appliances,2578,> 1000 DM,> 7 years,2,2,34,none,own,1,skilled,1,no,no -1 - 200 DM,48,good,furniture/appliances,3979,unknown,4 - 7 years,4,1,41,none,own,2,skilled,2,yes,no -< 0 DM,48,good,furniture/appliances,6758,< 100 DM,1 - 4 years,3,2,31,none,own,1,skilled,1,yes,yes -< 0 DM,24,good,furniture/appliances,3234,< 100 DM,< 1 year,4,4,23,none,rent,1,unskilled,1,yes,yes -unknown,30,critical,furniture/appliances,5954,< 100 DM,4 - 7 years,3,2,38,none,own,1,skilled,1,no,no -unknown,24,good,car,5433,unknown,unemployed,2,4,26,none,rent,1,management,1,yes,no -< 0 DM,15,good,business,806,< 100 DM,1 - 4 years,4,4,22,none,own,1,unskilled,1,no,no -1 - 200 DM,9,good,furniture/appliances,1082,< 100 DM,> 7 years,4,4,27,none,own,2,unskilled,1,no,no -unknown,15,critical,furniture/appliances,2788,< 100 DM,4 - 7 years,2,3,24,bank,own,2,skilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,2930,< 100 DM,4 - 7 years,2,1,27,none,own,1,skilled,1,no,no -unknown,24,critical,education,1927,unknown,1 - 4 years,3,2,33,none,own,2,skilled,1,yes,no -1 - 200 DM,36,critical,car,2820,< 100 DM,< 1 year,4,4,27,none,own,2,skilled,1,no,yes -unknown,24,good,education,937,< 100 DM,< 1 year,4,3,27,none,own,2,unskilled,1,no,no -1 - 200 DM,18,critical,car,1056,< 100 DM,> 7 years,3,3,30,bank,own,2,skilled,1,no,yes -1 - 200 DM,12,critical,car,3124,< 100 DM,< 1 year,1,3,49,bank,own,2,unskilled,2,no,no -unknown,9,good,furniture/appliances,1388,< 100 DM,1 - 4 years,4,2,26,none,rent,1,skilled,1,no,no -1 - 200 DM,36,good,renovations,2384,< 100 DM,< 1 year,4,1,33,none,rent,1,unskilled,1,no,yes -unknown,12,good,car,2133,unknown,> 7 years,4,4,52,none,other,1,management,1,yes,no -< 0 DM,18,good,furniture/appliances,2039,< 100 DM,1 - 4 years,1,4,20,bank,rent,1,skilled,1,no,yes -< 0 DM,9,critical,car,2799,< 100 DM,1 - 4 years,2,2,36,none,rent,2,skilled,2,no,no -< 0 DM,12,good,furniture/appliances,1289,< 100 DM,1 - 4 years,4,1,21,none,own,1,unskilled,1,no,no -< 0 DM,18,good,furniture/appliances,1217,< 100 DM,1 - 4 years,4,3,47,none,own,1,unskilled,1,yes,yes -< 0 DM,12,critical,furniture/appliances,2246,< 100 DM,> 7 years,3,3,60,none,own,2,skilled,1,no,yes -< 0 DM,12,critical,furniture/appliances,385,< 100 DM,4 - 7 years,4,3,58,none,own,4,unskilled,1,yes,no -1 - 200 DM,24,poor,car,1965,unknown,1 - 4 years,4,4,42,none,rent,2,skilled,1,yes,no -unknown,21,good,business,1572,> 1000 DM,> 7 years,4,4,36,bank,own,1,unskilled,1,no,no -1 - 200 DM,24,good,car,2718,< 100 DM,1 - 4 years,3,4,20,none,rent,1,unskilled,1,yes,yes -< 0 DM,24,very good,car0,1358,unknown,> 7 years,4,3,40,store,own,1,management,1,yes,yes -1 - 200 DM,6,very good,car,931,100 - 500 DM,< 1 year,1,1,32,store,own,1,unskilled,1,no,yes -< 0 DM,24,good,car,1442,< 100 DM,4 - 7 years,4,4,23,none,rent,2,skilled,1,no,yes -1 - 200 DM,24,perfect,business,4241,< 100 DM,1 - 4 years,1,4,36,none,own,3,unskilled,1,yes,yes -unknown,18,critical,car,2775,< 100 DM,4 - 7 years,2,2,31,bank,own,2,skilled,1,no,yes -unknown,24,poor,business,3863,< 100 DM,1 - 4 years,1,2,32,none,other,1,skilled,1,no,no -1 - 200 DM,7,good,furniture/appliances,2329,< 100 DM,< 1 year,1,1,45,none,own,1,skilled,1,no,no -1 - 200 DM,9,good,furniture/appliances,918,< 100 DM,1 - 4 years,4,1,30,none,own,1,skilled,1,no,yes -1 - 200 DM,24,very good,education,1837,< 100 DM,4 - 7 years,4,4,34,bank,other,1,unskilled,1,no,yes -unknown,36,good,furniture/appliances,3349,< 100 DM,1 - 4 years,4,2,28,none,own,1,management,1,yes,yes -> 200 DM,10,good,furniture/appliances,1275,< 100 DM,< 1 year,4,2,23,none,own,1,skilled,1,no,no -< 0 DM,24,very good,furniture/appliances,2828,500 - 1000 DM,1 - 4 years,4,4,22,store,own,1,skilled,1,yes,no -unknown,24,critical,business,4526,< 100 DM,1 - 4 years,3,2,74,none,own,1,management,1,yes,no -1 - 200 DM,36,good,furniture/appliances,2671,100 - 500 DM,1 - 4 years,4,4,50,none,other,1,skilled,1,no,yes -unknown,18,good,furniture/appliances,2051,< 100 DM,< 1 year,4,1,33,none,own,1,skilled,1,no,no -unknown,15,good,car,1300,unknown,> 7 years,4,4,45,bank,other,1,skilled,2,no,no -< 0 DM,12,good,furniture/appliances,741,100 - 500 DM,unemployed,4,3,22,none,own,1,skilled,1,no,yes -> 200 DM,10,good,car,1240,100 - 500 DM,> 7 years,1,4,48,none,other,1,unskilled,2,no,yes -< 0 DM,21,good,furniture/appliances,3357,> 1000 DM,< 1 year,4,2,29,bank,own,1,skilled,1,no,no -< 0 DM,24,very good,car,3632,< 100 DM,1 - 4 years,1,4,22,bank,rent,1,skilled,1,no,no -unknown,18,poor,furniture/appliances,1808,< 100 DM,4 - 7 years,4,1,22,none,own,1,skilled,1,no,yes -1 - 200 DM,48,perfect,business,12204,unknown,1 - 4 years,2,2,48,bank,own,1,management,1,yes,no -1 - 200 DM,60,poor,furniture/appliances,9157,unknown,1 - 4 years,2,2,27,none,other,1,management,1,no,no -< 0 DM,6,critical,car,3676,< 100 DM,1 - 4 years,1,3,37,none,rent,3,skilled,2,no,no -1 - 200 DM,30,good,furniture/appliances,3441,100 - 500 DM,1 - 4 years,2,4,21,none,rent,1,skilled,1,no,yes -unknown,12,good,car,640,< 100 DM,1 - 4 years,4,2,49,none,own,1,unskilled,1,no,no -1 - 200 DM,21,critical,business,3652,< 100 DM,4 - 7 years,2,3,27,none,own,2,skilled,1,no,no -unknown,18,critical,car,1530,< 100 DM,1 - 4 years,3,2,32,bank,own,2,skilled,1,no,yes -unknown,48,good,business,3914,unknown,1 - 4 years,4,2,38,bank,own,1,skilled,1,no,yes -< 0 DM,12,good,furniture/appliances,1858,< 100 DM,< 1 year,4,1,22,none,rent,1,skilled,1,no,no -< 0 DM,18,good,furniture/appliances,2600,< 100 DM,1 - 4 years,4,4,65,none,other,2,skilled,1,no,yes -unknown,15,good,furniture/appliances,1979,unknown,> 7 years,4,2,35,none,own,1,skilled,1,no,no -> 200 DM,6,good,furniture/appliances,2116,< 100 DM,1 - 4 years,2,2,41,none,own,1,skilled,1,yes,no -1 - 200 DM,9,very good,car,1437,100 - 500 DM,4 - 7 years,2,3,29,none,own,1,skilled,1,no,yes -unknown,42,critical,furniture/appliances,4042,500 - 1000 DM,1 - 4 years,4,4,36,none,own,2,skilled,1,yes,no -unknown,9,good,education,3832,unknown,> 7 years,1,4,64,none,own,1,unskilled,1,no,no -< 0 DM,24,good,furniture/appliances,3660,< 100 DM,1 - 4 years,2,4,28,none,own,1,skilled,1,no,no -< 0 DM,18,very good,furniture/appliances,1553,< 100 DM,1 - 4 years,4,3,44,bank,own,1,skilled,1,no,yes -1 - 200 DM,15,good,furniture/appliances,1444,unknown,< 1 year,4,1,23,none,own,1,skilled,1,no,no -unknown,9,good,furniture/appliances,1980,< 100 DM,< 1 year,2,2,19,none,rent,2,skilled,1,no,yes -1 - 200 DM,24,good,car,1355,< 100 DM,< 1 year,3,4,25,none,own,1,unskilled,1,yes,yes -unknown,12,good,education,1393,< 100 DM,> 7 years,4,4,47,bank,own,3,skilled,2,yes,no -unknown,24,good,furniture/appliances,1376,500 - 1000 DM,4 - 7 years,4,1,28,none,own,1,skilled,1,no,no -unknown,60,poor,furniture/appliances,15653,< 100 DM,4 - 7 years,2,4,21,none,own,2,skilled,1,yes,no -unknown,12,good,furniture/appliances,1493,< 100 DM,< 1 year,4,3,34,none,own,1,skilled,2,no,no -< 0 DM,42,poor,furniture/appliances,4370,< 100 DM,4 - 7 years,3,2,26,bank,own,2,skilled,2,yes,yes -< 0 DM,18,good,education,750,< 100 DM,unemployed,4,1,27,none,own,1,unemployed,1,no,yes -1 - 200 DM,15,good,renovations,1308,< 100 DM,> 7 years,4,4,38,none,own,2,unskilled,1,no,no -unknown,15,good,education,4623,100 - 500 DM,1 - 4 years,3,2,40,none,own,1,management,1,yes,yes -unknown,24,critical,furniture/appliances,1851,< 100 DM,4 - 7 years,4,2,33,none,own,2,skilled,1,yes,no -< 0 DM,18,critical,furniture/appliances,1880,< 100 DM,4 - 7 years,4,1,32,none,own,2,management,1,yes,no -unknown,36,poor,business,7980,unknown,< 1 year,4,4,27,none,rent,2,skilled,1,yes,yes -< 0 DM,30,perfect,furniture/appliances,4583,< 100 DM,1 - 4 years,2,2,32,none,own,2,skilled,1,no,no -unknown,12,good,car,1386,500 - 1000 DM,1 - 4 years,2,2,26,none,own,1,skilled,1,no,yes -> 200 DM,24,good,car,947,< 100 DM,4 - 7 years,4,3,38,bank,other,1,skilled,2,no,yes -< 0 DM,12,good,education,684,< 100 DM,1 - 4 years,4,4,40,none,rent,1,unskilled,2,no,yes -< 0 DM,48,good,education,7476,< 100 DM,4 - 7 years,4,1,50,none,other,1,management,1,yes,no -1 - 200 DM,12,good,furniture/appliances,1922,< 100 DM,1 - 4 years,4,2,37,none,own,1,unskilled,1,no,yes -< 0 DM,24,good,car,2303,< 100 DM,> 7 years,4,1,45,none,own,1,skilled,1,no,yes -1 - 200 DM,36,poor,car,8086,100 - 500 DM,> 7 years,2,4,42,none,own,4,management,1,yes,yes -unknown,24,critical,car,2346,< 100 DM,4 - 7 years,4,3,35,none,own,2,skilled,1,yes,no -< 0 DM,14,good,car,3973,< 100 DM,unemployed,1,4,22,none,other,1,skilled,1,no,no -1 - 200 DM,12,good,car,888,< 100 DM,> 7 years,4,4,41,bank,own,1,unskilled,2,no,yes -unknown,48,good,furniture/appliances,10222,unknown,4 - 7 years,4,3,37,store,own,1,skilled,1,yes,no -1 - 200 DM,30,perfect,business,4221,< 100 DM,1 - 4 years,2,1,28,none,own,2,skilled,1,no,no -1 - 200 DM,18,critical,furniture/appliances,6361,< 100 DM,> 7 years,2,1,41,none,own,1,skilled,1,yes,no -> 200 DM,12,good,furniture/appliances,1297,< 100 DM,1 - 4 years,3,4,23,none,rent,1,skilled,1,no,no -< 0 DM,12,good,car,900,unknown,1 - 4 years,4,2,23,none,own,1,skilled,1,no,yes -unknown,21,good,furniture/appliances,2241,< 100 DM,> 7 years,4,2,50,none,own,2,skilled,1,no,no -1 - 200 DM,6,poor,furniture/appliances,1050,< 100 DM,unemployed,4,1,35,store,own,2,management,1,yes,no -> 200 DM,6,critical,education,1047,< 100 DM,1 - 4 years,2,4,50,none,own,1,unskilled,1,no,no -unknown,24,critical,car0,6314,< 100 DM,unemployed,4,2,27,bank,own,2,management,1,yes,no -1 - 200 DM,30,very good,furniture/appliances,3496,> 1000 DM,1 - 4 years,4,2,34,store,own,1,skilled,2,yes,no -unknown,48,very good,business,3609,< 100 DM,1 - 4 years,1,1,27,store,own,1,skilled,1,no,no -< 0 DM,12,critical,car,4843,< 100 DM,> 7 years,3,4,43,none,rent,2,skilled,1,yes,yes -> 200 DM,30,critical,furniture/appliances,3017,< 100 DM,> 7 years,4,4,47,none,own,1,skilled,1,no,no -unknown,24,critical,business,4139,100 - 500 DM,1 - 4 years,3,3,27,none,own,2,unskilled,1,yes,no -unknown,36,good,business,5742,100 - 500 DM,4 - 7 years,2,2,31,none,own,2,skilled,1,yes,no -unknown,60,good,car,10366,< 100 DM,> 7 years,2,4,42,none,own,1,management,1,yes,no -unknown,6,critical,car,2080,500 - 1000 DM,1 - 4 years,1,2,24,none,own,1,skilled,1,no,no -unknown,21,poor,business,2580,500 - 1000 DM,< 1 year,4,2,41,bank,own,1,unskilled,2,no,yes -unknown,30,critical,furniture/appliances,4530,< 100 DM,4 - 7 years,4,4,26,none,rent,1,management,1,yes,no -unknown,24,critical,furniture/appliances,5150,< 100 DM,> 7 years,4,4,33,none,own,1,skilled,1,yes,no -1 - 200 DM,72,good,furniture/appliances,5595,100 - 500 DM,1 - 4 years,2,2,24,none,own,1,skilled,1,no,yes -< 0 DM,24,good,furniture/appliances,2384,< 100 DM,> 7 years,4,4,64,bank,rent,1,unskilled,1,no,no -unknown,18,good,furniture/appliances,1453,< 100 DM,< 1 year,3,1,26,none,own,1,skilled,1,no,no -unknown,6,good,education,1538,< 100 DM,< 1 year,1,2,56,none,own,1,skilled,1,no,no -unknown,12,good,furniture/appliances,2279,unknown,1 - 4 years,4,4,37,none,other,1,skilled,1,yes,no -unknown,15,poor,furniture/appliances,1478,< 100 DM,1 - 4 years,4,3,33,bank,own,2,skilled,1,no,no -unknown,24,critical,furniture/appliances,5103,< 100 DM,< 1 year,3,3,47,none,other,3,skilled,1,yes,no -1 - 200 DM,36,poor,business,9857,100 - 500 DM,4 - 7 years,1,3,31,none,own,2,unskilled,2,yes,no -unknown,60,good,car,6527,unknown,1 - 4 years,4,4,34,none,other,1,skilled,2,yes,no -> 200 DM,10,critical,furniture/appliances,1347,unknown,4 - 7 years,4,2,27,none,own,2,skilled,1,yes,no -1 - 200 DM,36,poor,car,2862,100 - 500 DM,> 7 years,4,3,30,none,other,1,skilled,1,no,no -unknown,9,good,furniture/appliances,2753,100 - 500 DM,> 7 years,3,4,35,none,own,1,skilled,1,yes,no -< 0 DM,12,good,car,3651,> 1000 DM,1 - 4 years,1,3,31,none,own,1,skilled,2,no,no -< 0 DM,15,critical,furniture/appliances,975,< 100 DM,1 - 4 years,2,3,25,none,own,2,skilled,1,no,no -1 - 200 DM,15,good,renovations,2631,100 - 500 DM,1 - 4 years,3,2,25,none,own,1,unskilled,1,no,no -1 - 200 DM,24,good,furniture/appliances,2896,100 - 500 DM,< 1 year,2,1,29,none,own,1,skilled,1,no,no -< 0 DM,6,critical,car,4716,unknown,< 1 year,1,3,44,none,own,2,unskilled,2,no,no -unknown,24,good,furniture/appliances,2284,< 100 DM,4 - 7 years,4,2,28,none,own,1,skilled,1,yes,no -unknown,6,good,car,1236,500 - 1000 DM,1 - 4 years,2,4,50,none,rent,1,skilled,1,no,no -1 - 200 DM,12,good,furniture/appliances,1103,< 100 DM,4 - 7 years,4,3,29,none,own,2,skilled,1,no,no -unknown,12,critical,car,926,< 100 DM,unemployed,1,2,38,none,own,1,unemployed,1,no,no -unknown,18,critical,furniture/appliances,1800,< 100 DM,1 - 4 years,4,2,24,none,own,2,skilled,1,no,no -> 200 DM,15,good,education,1905,< 100 DM,> 7 years,4,4,40,none,rent,1,management,1,yes,no -unknown,12,good,furniture/appliances,1123,500 - 1000 DM,1 - 4 years,4,4,29,none,rent,1,unskilled,1,no,yes -< 0 DM,48,critical,car,6331,< 100 DM,> 7 years,4,4,46,none,other,2,skilled,1,yes,yes -> 200 DM,24,good,furniture/appliances,1377,100 - 500 DM,> 7 years,4,2,47,none,other,1,skilled,1,yes,no -1 - 200 DM,30,poor,business,2503,100 - 500 DM,> 7 years,4,2,41,store,own,2,skilled,1,no,no -1 - 200 DM,27,good,business,2528,< 100 DM,< 1 year,4,1,32,none,own,1,skilled,2,yes,no -unknown,15,good,car,5324,500 - 1000 DM,> 7 years,1,4,35,none,other,1,skilled,1,no,no -1 - 200 DM,48,good,car,6560,100 - 500 DM,4 - 7 years,3,2,24,none,own,1,skilled,1,no,yes -1 - 200 DM,12,perfect,furniture/appliances,2969,< 100 DM,< 1 year,4,3,25,none,rent,2,skilled,1,no,yes -1 - 200 DM,9,good,furniture/appliances,1206,< 100 DM,> 7 years,4,4,25,none,own,1,skilled,1,no,no -1 - 200 DM,9,good,furniture/appliances,2118,< 100 DM,1 - 4 years,2,2,37,none,own,1,unskilled,2,no,no -unknown,18,critical,furniture/appliances,629,500 - 1000 DM,> 7 years,4,3,32,bank,own,2,management,1,yes,no -< 0 DM,6,very good,education,1198,< 100 DM,> 7 years,4,4,35,none,other,1,skilled,1,no,yes -unknown,21,good,car,2476,unknown,> 7 years,4,4,46,none,own,1,management,1,yes,no -< 0 DM,9,critical,furniture/appliances,1138,< 100 DM,1 - 4 years,4,4,25,none,own,2,unskilled,1,no,no -1 - 200 DM,60,good,car,14027,< 100 DM,4 - 7 years,4,2,27,none,own,1,management,1,yes,yes -unknown,30,critical,car,7596,unknown,> 7 years,1,4,63,none,own,2,skilled,1,no,no -unknown,30,critical,furniture/appliances,3077,unknown,> 7 years,3,2,40,none,own,2,skilled,2,yes,no -unknown,18,good,furniture/appliances,1505,< 100 DM,1 - 4 years,4,2,32,none,other,1,management,1,yes,no -> 200 DM,24,critical,furniture/appliances,3148,unknown,1 - 4 years,3,2,31,none,own,2,skilled,1,yes,no -1 - 200 DM,20,perfect,car,6148,100 - 500 DM,> 7 years,3,4,31,bank,own,2,skilled,1,yes,no -> 200 DM,9,perfect,furniture/appliances,1337,< 100 DM,< 1 year,4,2,34,none,own,2,management,1,yes,yes -1 - 200 DM,6,very good,education,433,> 1000 DM,< 1 year,4,2,24,bank,rent,1,skilled,2,no,yes -< 0 DM,12,good,car,1228,< 100 DM,1 - 4 years,4,2,24,none,own,1,unskilled,1,no,yes -1 - 200 DM,9,good,furniture/appliances,790,500 - 1000 DM,1 - 4 years,4,3,66,none,own,1,unskilled,1,no,no -unknown,27,good,car,2570,< 100 DM,1 - 4 years,3,3,21,none,rent,1,skilled,1,no,yes -unknown,6,critical,car,250,> 1000 DM,1 - 4 years,2,2,41,bank,own,2,unskilled,1,no,no -unknown,15,critical,furniture/appliances,1316,500 - 1000 DM,1 - 4 years,2,2,47,none,own,2,unskilled,1,no,no -< 0 DM,18,good,furniture/appliances,1882,< 100 DM,1 - 4 years,4,4,25,bank,rent,2,skilled,1,no,yes -1 - 200 DM,48,very good,business,6416,< 100 DM,> 7 years,4,3,59,none,rent,1,skilled,1,no,yes -> 200 DM,24,critical,business,1275,> 1000 DM,1 - 4 years,2,4,36,none,own,2,skilled,1,yes,no -1 - 200 DM,24,poor,furniture/appliances,6403,< 100 DM,< 1 year,1,2,33,none,own,1,skilled,1,no,no -< 0 DM,24,good,furniture/appliances,1987,< 100 DM,1 - 4 years,2,4,21,none,rent,1,unskilled,2,no,yes -1 - 200 DM,8,good,furniture/appliances,760,< 100 DM,4 - 7 years,4,2,44,none,own,1,unskilled,1,no,no -unknown,24,good,car,2603,> 1000 DM,1 - 4 years,2,4,28,none,rent,1,skilled,1,yes,no -unknown,4,critical,car,3380,< 100 DM,4 - 7 years,1,1,37,none,own,1,skilled,2,no,no -1 - 200 DM,36,very good,furniture/appliances,3990,unknown,< 1 year,3,2,29,bank,own,1,unemployed,1,no,no -1 - 200 DM,24,good,car,11560,< 100 DM,1 - 4 years,1,4,23,none,rent,2,management,1,no,yes -< 0 DM,18,good,car,4380,100 - 500 DM,1 - 4 years,3,4,35,none,own,1,unskilled,2,yes,no -unknown,6,critical,car,6761,< 100 DM,4 - 7 years,1,3,45,none,own,2,management,2,yes,no -1 - 200 DM,30,perfect,business,4280,100 - 500 DM,1 - 4 years,4,4,26,none,rent,2,unskilled,1,no,yes -< 0 DM,24,very good,car,2325,100 - 500 DM,4 - 7 years,2,3,32,bank,own,1,skilled,1,no,no -1 - 200 DM,10,very good,furniture/appliances,1048,< 100 DM,1 - 4 years,4,4,23,store,own,1,unskilled,1,no,no -unknown,21,good,furniture/appliances,3160,unknown,> 7 years,4,3,41,none,own,1,skilled,1,yes,no -< 0 DM,24,very good,furniture/appliances,2483,500 - 1000 DM,1 - 4 years,4,4,22,store,own,1,skilled,1,yes,no -< 0 DM,39,critical,furniture/appliances,14179,unknown,4 - 7 years,4,4,30,none,own,2,management,1,yes,no -< 0 DM,13,critical,business,1797,< 100 DM,< 1 year,3,1,28,bank,own,2,unskilled,1,no,no -< 0 DM,15,good,car,2511,< 100 DM,unemployed,1,4,23,none,rent,1,skilled,1,no,no -< 0 DM,12,good,car,1274,< 100 DM,< 1 year,3,1,37,none,own,1,unskilled,1,no,yes -unknown,21,good,car,5248,unknown,1 - 4 years,1,3,26,none,own,1,skilled,1,no,no -unknown,15,good,car,3029,< 100 DM,4 - 7 years,2,2,33,none,own,1,skilled,1,no,no -< 0 DM,6,good,furniture/appliances,428,< 100 DM,> 7 years,2,1,49,bank,own,1,skilled,1,yes,no -< 0 DM,18,good,car,976,< 100 DM,< 1 year,1,2,23,none,own,1,unskilled,1,no,yes -1 - 200 DM,12,good,business,841,100 - 500 DM,4 - 7 years,2,4,23,none,rent,1,unskilled,1,no,no -unknown,30,critical,furniture/appliances,5771,< 100 DM,4 - 7 years,4,2,25,none,own,2,skilled,1,no,no -unknown,12,poor,renovations,1555,> 1000 DM,> 7 years,4,4,55,none,other,2,skilled,2,no,yes -< 0 DM,24,good,car,1285,unknown,4 - 7 years,4,4,32,none,rent,1,skilled,1,no,yes -> 200 DM,6,critical,car,1299,< 100 DM,1 - 4 years,1,1,74,none,own,3,unemployed,2,no,no -> 200 DM,15,critical,furniture/appliances,1271,unknown,1 - 4 years,3,4,39,none,other,2,skilled,1,yes,yes -unknown,24,good,car,1393,< 100 DM,1 - 4 years,2,2,31,none,own,1,skilled,1,yes,no -< 0 DM,12,critical,car,691,< 100 DM,> 7 years,4,3,35,none,own,2,skilled,1,no,yes -unknown,15,critical,car,5045,unknown,> 7 years,1,4,59,none,own,1,skilled,1,yes,no -< 0 DM,18,critical,furniture/appliances,2124,< 100 DM,1 - 4 years,4,4,24,none,rent,2,skilled,1,no,yes -< 0 DM,12,good,furniture/appliances,2214,< 100 DM,1 - 4 years,4,3,24,none,own,1,unskilled,1,no,no -unknown,21,critical,car,12680,unknown,> 7 years,4,4,30,none,other,1,management,1,yes,yes -unknown,24,critical,car,2463,100 - 500 DM,4 - 7 years,4,3,27,none,own,2,skilled,1,yes,no -1 - 200 DM,12,good,furniture/appliances,1155,< 100 DM,> 7 years,3,3,40,bank,own,2,unskilled,1,no,no -< 0 DM,30,good,furniture/appliances,3108,< 100 DM,< 1 year,2,4,31,none,own,1,unskilled,1,no,yes -unknown,10,good,car,2901,unknown,< 1 year,1,4,31,none,rent,1,skilled,1,no,no -1 - 200 DM,12,critical,furniture/appliances,3617,< 100 DM,> 7 years,1,4,28,none,rent,3,skilled,1,yes,no -unknown,12,critical,furniture/appliances,1655,< 100 DM,> 7 years,2,4,63,none,own,2,unskilled,1,yes,no -< 0 DM,24,good,car,2812,unknown,> 7 years,2,4,26,none,rent,1,skilled,1,no,no -< 0 DM,36,critical,education,8065,< 100 DM,1 - 4 years,3,2,25,none,own,2,management,1,yes,yes -unknown,21,critical,car,3275,< 100 DM,> 7 years,1,4,36,none,own,1,management,1,yes,no -unknown,24,critical,furniture/appliances,2223,100 - 500 DM,> 7 years,4,4,52,bank,own,2,skilled,1,no,no -> 200 DM,12,critical,car,1480,500 - 1000 DM,unemployed,2,4,66,bank,other,3,unemployed,1,no,no -< 0 DM,24,good,car,1371,unknown,1 - 4 years,4,4,25,none,rent,1,skilled,1,no,yes -unknown,36,critical,car,3535,< 100 DM,4 - 7 years,4,4,37,none,own,2,skilled,1,yes,no -< 0 DM,18,good,furniture/appliances,3509,< 100 DM,4 - 7 years,4,1,25,none,own,1,skilled,1,no,no -unknown,36,critical,car,5711,> 1000 DM,> 7 years,4,2,38,none,own,2,management,1,yes,no -1 - 200 DM,18,good,renovations,3872,< 100 DM,unemployed,2,4,67,none,own,1,skilled,1,yes,no -1 - 200 DM,39,critical,furniture/appliances,4933,< 100 DM,4 - 7 years,2,2,25,none,own,2,skilled,1,no,yes -unknown,24,critical,car,1940,> 1000 DM,> 7 years,4,4,60,none,own,1,skilled,1,yes,no -1 - 200 DM,12,perfect,education,1410,< 100 DM,1 - 4 years,2,2,31,none,own,1,unskilled,1,yes,no -1 - 200 DM,12,good,car,836,100 - 500 DM,< 1 year,4,2,23,bank,own,1,unskilled,1,no,yes -1 - 200 DM,20,good,car,6468,unknown,unemployed,1,4,60,none,own,1,management,1,yes,no -1 - 200 DM,18,good,business,1941,> 1000 DM,1 - 4 years,4,2,35,none,own,1,unskilled,1,yes,no -unknown,22,good,furniture/appliances,2675,500 - 1000 DM,> 7 years,3,4,40,none,own,1,skilled,1,no,no -unknown,48,critical,car,2751,unknown,> 7 years,4,3,38,none,own,2,skilled,2,yes,no -1 - 200 DM,48,poor,education,6224,< 100 DM,> 7 years,4,4,50,none,other,1,skilled,1,no,yes -< 0 DM,40,critical,education,5998,< 100 DM,1 - 4 years,4,3,27,bank,own,1,skilled,1,yes,yes -1 - 200 DM,21,good,business,1188,< 100 DM,> 7 years,2,4,39,none,own,1,skilled,2,no,yes -unknown,24,good,car,6313,unknown,> 7 years,3,4,41,none,own,1,management,2,yes,no -unknown,6,critical,furniture/appliances,1221,unknown,1 - 4 years,1,2,27,none,own,2,skilled,1,no,no -> 200 DM,24,good,furniture/appliances,2892,< 100 DM,> 7 years,3,4,51,none,other,1,skilled,1,no,no -unknown,24,good,furniture/appliances,3062,500 - 1000 DM,> 7 years,4,3,32,none,rent,1,skilled,1,yes,no -unknown,9,good,furniture/appliances,2301,100 - 500 DM,< 1 year,2,4,22,none,rent,1,skilled,1,no,no -< 0 DM,18,good,car,7511,unknown,> 7 years,1,4,51,none,other,1,skilled,2,yes,yes -unknown,12,critical,furniture/appliances,1258,< 100 DM,< 1 year,2,4,22,none,rent,2,unskilled,1,no,no -unknown,24,poor,car,717,unknown,> 7 years,4,4,54,none,own,2,skilled,1,yes,no -1 - 200 DM,9,good,car,1549,unknown,< 1 year,4,2,35,none,own,1,unemployed,1,no,no -unknown,24,critical,education,1597,< 100 DM,> 7 years,4,4,54,none,other,2,skilled,2,no,no -1 - 200 DM,18,critical,furniture/appliances,1795,< 100 DM,> 7 years,3,4,48,bank,rent,2,unskilled,1,yes,no -< 0 DM,20,critical,furniture/appliances,4272,< 100 DM,> 7 years,1,4,24,none,own,2,skilled,1,no,no -unknown,12,critical,furniture/appliances,976,unknown,> 7 years,4,4,35,none,own,2,skilled,1,no,no -1 - 200 DM,12,good,car,7472,unknown,unemployed,1,2,24,none,rent,1,unemployed,1,no,no -< 0 DM,36,good,car,9271,< 100 DM,4 - 7 years,2,1,24,none,own,1,skilled,1,yes,yes -1 - 200 DM,6,good,furniture/appliances,590,< 100 DM,< 1 year,3,3,26,none,own,1,unskilled,1,no,no -unknown,12,critical,furniture/appliances,930,unknown,> 7 years,4,4,65,none,own,4,skilled,1,no,no -1 - 200 DM,42,very good,car,9283,< 100 DM,unemployed,1,2,55,bank,other,1,management,1,yes,no -1 - 200 DM,15,perfect,car,1778,< 100 DM,< 1 year,2,1,26,none,rent,2,unemployed,1,no,yes -1 - 200 DM,8,good,business,907,< 100 DM,< 1 year,3,2,26,none,own,1,skilled,1,yes,no -1 - 200 DM,6,good,furniture/appliances,484,< 100 DM,4 - 7 years,3,3,28,bank,own,1,unskilled,1,no,no -< 0 DM,36,critical,car,9629,< 100 DM,4 - 7 years,4,4,24,none,own,2,skilled,1,yes,yes -< 0 DM,48,good,furniture/appliances,3051,< 100 DM,1 - 4 years,3,4,54,none,own,1,skilled,1,no,yes -< 0 DM,48,good,car,3931,< 100 DM,4 - 7 years,4,4,46,none,other,1,skilled,2,no,yes -1 - 200 DM,36,poor,car,7432,< 100 DM,1 - 4 years,2,2,54,none,rent,1,skilled,1,no,no -unknown,6,good,furniture/appliances,1338,500 - 1000 DM,1 - 4 years,1,4,62,none,own,1,skilled,1,no,no -unknown,6,critical,furniture/appliances,1554,< 100 DM,4 - 7 years,1,2,24,none,rent,2,skilled,1,yes,no -< 0 DM,36,good,car0,15857,< 100 DM,unemployed,2,3,43,none,own,1,management,1,no,no -< 0 DM,18,good,furniture/appliances,1345,< 100 DM,1 - 4 years,4,3,26,bank,own,1,skilled,1,no,yes -unknown,12,good,car,1101,< 100 DM,1 - 4 years,3,2,27,none,own,2,skilled,1,yes,no -> 200 DM,12,good,furniture/appliances,3016,< 100 DM,1 - 4 years,3,1,24,none,own,1,skilled,1,no,no -< 0 DM,36,good,furniture/appliances,2712,< 100 DM,> 7 years,2,2,41,bank,own,1,skilled,2,no,yes -< 0 DM,8,critical,car,731,< 100 DM,> 7 years,4,4,47,none,own,2,unskilled,1,no,no -unknown,18,critical,furniture/appliances,3780,< 100 DM,< 1 year,3,2,35,none,own,2,management,1,yes,no -< 0 DM,21,critical,car,1602,< 100 DM,> 7 years,4,3,30,none,own,2,skilled,1,yes,no -< 0 DM,18,critical,car,3966,< 100 DM,> 7 years,1,4,33,bank,rent,3,skilled,1,yes,yes -unknown,18,perfect,business,4165,< 100 DM,1 - 4 years,2,2,36,store,own,2,skilled,2,no,yes -< 0 DM,36,good,car,8335,unknown,> 7 years,3,4,47,none,other,1,skilled,1,no,yes -1 - 200 DM,48,poor,business,6681,unknown,1 - 4 years,4,4,38,none,other,1,skilled,2,yes,no -unknown,24,poor,business,2375,500 - 1000 DM,1 - 4 years,4,2,44,none,own,2,skilled,2,yes,no -< 0 DM,18,good,car,1216,< 100 DM,< 1 year,4,3,23,none,rent,1,skilled,1,yes,yes -< 0 DM,45,perfect,business,11816,< 100 DM,> 7 years,2,4,29,none,rent,2,skilled,1,no,yes -1 - 200 DM,24,good,furniture/appliances,5084,unknown,> 7 years,2,4,42,none,own,1,skilled,1,yes,no -> 200 DM,15,good,furniture/appliances,2327,< 100 DM,< 1 year,2,3,25,none,own,1,unskilled,1,no,yes -< 0 DM,12,perfect,car,1082,< 100 DM,1 - 4 years,4,4,48,bank,own,2,skilled,1,no,yes -unknown,12,good,furniture/appliances,886,unknown,1 - 4 years,4,2,21,none,own,1,skilled,1,no,no -unknown,4,good,furniture/appliances,601,< 100 DM,< 1 year,1,3,23,none,rent,1,unskilled,2,no,no -< 0 DM,24,critical,car,2957,< 100 DM,> 7 years,4,4,63,none,own,2,skilled,1,yes,no -unknown,24,critical,furniture/appliances,2611,< 100 DM,> 7 years,4,3,46,none,own,2,skilled,1,no,no -< 0 DM,36,good,furniture/appliances,5179,< 100 DM,4 - 7 years,4,2,29,none,own,1,skilled,1,no,yes -unknown,21,poor,car,2993,< 100 DM,1 - 4 years,3,2,28,store,own,2,unskilled,1,no,no -unknown,18,good,renovations,1943,< 100 DM,< 1 year,4,4,23,none,own,1,skilled,1,no,yes -unknown,24,very good,business,1559,< 100 DM,4 - 7 years,4,4,50,bank,own,1,skilled,1,yes,no -unknown,18,good,furniture/appliances,3422,< 100 DM,> 7 years,4,4,47,bank,own,3,skilled,2,yes,no -1 - 200 DM,21,good,furniture/appliances,3976,unknown,4 - 7 years,2,3,35,none,own,1,skilled,1,yes,no -unknown,18,good,car,6761,unknown,1 - 4 years,2,4,68,none,rent,2,skilled,1,no,yes -unknown,24,good,car,1249,< 100 DM,< 1 year,4,2,28,none,own,1,skilled,1,no,no -< 0 DM,9,good,furniture/appliances,1364,< 100 DM,4 - 7 years,3,4,59,none,own,1,skilled,1,no,no -< 0 DM,12,good,furniture/appliances,709,< 100 DM,> 7 years,4,4,57,store,own,1,unskilled,1,no,yes -< 0 DM,20,critical,car,2235,< 100 DM,1 - 4 years,4,2,33,bank,rent,2,skilled,1,no,yes -unknown,24,critical,car,4042,unknown,4 - 7 years,3,4,43,none,own,2,skilled,1,yes,no -unknown,15,critical,furniture/appliances,1471,< 100 DM,1 - 4 years,4,4,35,none,other,2,skilled,1,yes,no -< 0 DM,18,very good,car,1442,< 100 DM,4 - 7 years,4,4,32,none,other,2,unskilled,2,no,yes -unknown,36,poor,car,10875,< 100 DM,> 7 years,2,2,45,none,own,2,skilled,2,yes,no -unknown,24,good,car,1474,100 - 500 DM,< 1 year,4,3,33,none,own,1,skilled,1,yes,no -unknown,10,good,education,894,unknown,4 - 7 years,4,3,40,none,own,1,skilled,1,yes,no -unknown,15,critical,furniture/appliances,3343,< 100 DM,1 - 4 years,4,2,28,none,other,1,skilled,1,yes,no -< 0 DM,15,good,car,3959,< 100 DM,1 - 4 years,3,2,29,none,own,1,skilled,1,yes,yes -unknown,9,good,car,3577,100 - 500 DM,1 - 4 years,1,2,26,none,rent,1,skilled,2,no,no -unknown,24,critical,car,5804,> 1000 DM,1 - 4 years,4,2,27,none,own,2,skilled,1,no,no -unknown,18,poor,business,2169,< 100 DM,1 - 4 years,4,2,28,none,own,1,skilled,1,yes,yes -< 0 DM,24,good,furniture/appliances,2439,< 100 DM,< 1 year,4,4,35,none,own,1,skilled,1,yes,yes -unknown,27,critical,furniture/appliances,4526,> 1000 DM,< 1 year,4,2,32,store,own,2,unskilled,2,yes,no -unknown,10,good,furniture/appliances,2210,< 100 DM,1 - 4 years,2,2,25,bank,rent,1,unskilled,1,no,yes -unknown,15,good,furniture/appliances,2221,500 - 1000 DM,1 - 4 years,2,4,20,none,rent,1,skilled,1,no,no -< 0 DM,18,good,furniture/appliances,2389,< 100 DM,< 1 year,4,1,27,store,own,1,skilled,1,no,no -unknown,12,critical,furniture/appliances,3331,< 100 DM,> 7 years,2,4,42,store,own,1,skilled,1,no,no -unknown,36,good,business,7409,unknown,> 7 years,3,2,37,none,own,2,skilled,1,no,no -< 0 DM,12,good,furniture/appliances,652,< 100 DM,> 7 years,4,4,24,none,rent,1,skilled,1,no,no -unknown,36,poor,furniture/appliances,7678,500 - 1000 DM,4 - 7 years,2,4,40,none,own,2,skilled,1,yes,no -> 200 DM,6,critical,car,1343,< 100 DM,> 7 years,1,4,46,none,own,2,skilled,2,no,no -< 0 DM,24,critical,business,1382,100 - 500 DM,4 - 7 years,4,1,26,none,own,2,skilled,1,yes,no -unknown,15,good,furniture/appliances,874,unknown,< 1 year,4,1,24,none,own,1,skilled,1,no,no -< 0 DM,12,good,furniture/appliances,3590,< 100 DM,1 - 4 years,2,2,29,none,own,1,unskilled,2,no,no -1 - 200 DM,11,critical,car,1322,> 1000 DM,1 - 4 years,4,4,40,none,own,2,skilled,1,no,no -< 0 DM,18,very good,furniture/appliances,1940,< 100 DM,< 1 year,3,4,36,bank,other,1,management,1,yes,no -unknown,36,good,furniture/appliances,3595,< 100 DM,> 7 years,4,2,28,none,own,1,skilled,1,no,no -< 0 DM,9,good,car,1422,< 100 DM,< 1 year,3,2,27,none,other,1,management,1,yes,yes -unknown,30,critical,furniture/appliances,6742,unknown,4 - 7 years,2,3,36,none,own,2,skilled,1,no,no -unknown,24,good,car,7814,< 100 DM,4 - 7 years,3,3,38,none,own,1,management,1,yes,no -unknown,24,good,car,9277,unknown,1 - 4 years,2,4,48,none,other,1,skilled,1,yes,no -1 - 200 DM,30,critical,car,2181,unknown,> 7 years,4,4,36,none,own,2,skilled,1,no,no -unknown,18,critical,furniture/appliances,1098,< 100 DM,unemployed,4,4,65,none,own,2,unemployed,1,no,no -1 - 200 DM,24,good,furniture/appliances,4057,< 100 DM,4 - 7 years,3,3,43,none,own,1,skilled,1,yes,yes -< 0 DM,12,good,education,795,< 100 DM,< 1 year,4,4,53,none,own,1,skilled,1,no,yes -1 - 200 DM,24,critical,business,2825,unknown,4 - 7 years,4,3,34,none,own,2,skilled,2,yes,no -1 - 200 DM,48,good,business,15672,< 100 DM,1 - 4 years,2,2,23,none,own,1,skilled,1,yes,yes -unknown,36,critical,car,6614,< 100 DM,> 7 years,4,4,34,none,own,2,management,1,yes,no -unknown,28,very good,car,7824,unknown,< 1 year,3,4,40,bank,rent,2,skilled,2,yes,no -< 0 DM,27,critical,business,2442,< 100 DM,> 7 years,4,4,43,store,own,4,management,2,yes,no -unknown,15,critical,furniture/appliances,1829,< 100 DM,> 7 years,4,4,46,none,own,2,skilled,1,yes,no -< 0 DM,12,critical,car,2171,< 100 DM,1 - 4 years,4,4,38,bank,own,2,unskilled,1,no,no -1 - 200 DM,36,critical,car,5800,< 100 DM,1 - 4 years,3,4,34,none,own,2,skilled,1,yes,no -unknown,18,critical,furniture/appliances,1169,unknown,1 - 4 years,4,3,29,none,own,2,skilled,1,yes,no -unknown,36,poor,car,8947,unknown,4 - 7 years,3,2,31,store,own,1,management,2,yes,no -< 0 DM,21,good,furniture/appliances,2606,< 100 DM,< 1 year,4,4,28,none,rent,1,management,1,yes,no -unknown,12,critical,furniture/appliances,1592,> 1000 DM,4 - 7 years,3,2,35,none,own,1,skilled,1,no,no -unknown,15,good,furniture/appliances,2186,unknown,4 - 7 years,1,4,33,bank,rent,1,unskilled,1,no,no -< 0 DM,18,good,furniture/appliances,4153,< 100 DM,1 - 4 years,2,3,42,none,own,1,skilled,1,no,yes -< 0 DM,16,critical,car,2625,< 100 DM,> 7 years,2,4,43,bank,rent,1,skilled,1,yes,yes -unknown,20,critical,car,3485,unknown,< 1 year,2,4,44,none,own,2,skilled,1,yes,no -unknown,36,critical,car,10477,unknown,> 7 years,2,4,42,none,other,2,skilled,1,no,no -unknown,15,good,furniture/appliances,1386,unknown,1 - 4 years,4,2,40,none,rent,1,skilled,1,yes,no -unknown,24,good,furniture/appliances,1278,< 100 DM,> 7 years,4,1,36,none,own,1,management,1,yes,no -< 0 DM,12,good,furniture/appliances,1107,< 100 DM,1 - 4 years,2,2,20,none,rent,1,management,2,yes,no -< 0 DM,21,good,car,3763,unknown,4 - 7 years,2,2,24,none,own,1,unskilled,1,no,no -1 - 200 DM,36,good,education,3711,unknown,1 - 4 years,2,2,27,none,own,1,skilled,1,no,no -unknown,15,poor,car,3594,< 100 DM,< 1 year,1,2,46,none,own,2,unskilled,1,no,no -1 - 200 DM,9,good,car,3195,unknown,1 - 4 years,1,2,33,none,own,1,unskilled,1,no,no -unknown,36,poor,furniture/appliances,4454,< 100 DM,1 - 4 years,4,4,34,none,own,2,skilled,1,no,no -1 - 200 DM,24,critical,furniture/appliances,4736,< 100 DM,< 1 year,2,4,25,bank,own,1,unskilled,1,no,yes -1 - 200 DM,30,good,furniture/appliances,2991,unknown,> 7 years,2,4,25,none,own,1,skilled,1,no,no -unknown,11,good,business,2142,> 1000 DM,> 7 years,1,2,28,none,own,1,skilled,1,yes,no -< 0 DM,24,very good,business,3161,< 100 DM,1 - 4 years,4,2,31,none,rent,1,skilled,1,yes,yes -1 - 200 DM,48,perfect,car0,18424,< 100 DM,1 - 4 years,1,2,32,bank,own,1,management,1,yes,yes -unknown,10,good,car,2848,100 - 500 DM,1 - 4 years,1,2,32,none,own,1,skilled,2,no,no -< 0 DM,6,good,car,14896,< 100 DM,> 7 years,1,4,68,bank,own,1,management,1,yes,yes -< 0 DM,24,good,furniture/appliances,2359,100 - 500 DM,unemployed,1,1,33,none,own,1,skilled,1,no,yes -< 0 DM,24,good,furniture/appliances,3345,< 100 DM,> 7 years,4,2,39,none,rent,1,management,1,yes,yes -unknown,18,critical,furniture/appliances,1817,< 100 DM,1 - 4 years,4,2,28,none,own,2,skilled,1,no,no -unknown,48,poor,furniture/appliances,12749,500 - 1000 DM,4 - 7 years,4,1,37,none,own,1,management,1,yes,no -< 0 DM,9,good,furniture/appliances,1366,< 100 DM,< 1 year,3,4,22,none,rent,1,skilled,1,no,yes -1 - 200 DM,12,good,car,2002,< 100 DM,4 - 7 years,3,4,30,none,rent,1,skilled,2,yes,no -< 0 DM,24,very good,furniture/appliances,6872,< 100 DM,< 1 year,2,1,55,bank,own,1,skilled,1,yes,yes -< 0 DM,12,very good,car,697,< 100 DM,< 1 year,4,2,46,bank,own,2,skilled,1,yes,yes -< 0 DM,18,critical,furniture/appliances,1049,< 100 DM,< 1 year,4,4,21,none,rent,1,skilled,1,no,no -< 0 DM,48,good,car,10297,< 100 DM,4 - 7 years,4,4,39,store,other,3,skilled,2,yes,yes -unknown,30,good,furniture/appliances,1867,unknown,> 7 years,4,4,58,none,own,1,skilled,1,yes,no -< 0 DM,12,poor,car,1344,< 100 DM,1 - 4 years,4,2,43,none,own,2,unskilled,2,no,no -< 0 DM,24,good,furniture/appliances,1747,< 100 DM,< 1 year,4,1,24,none,own,1,unskilled,1,no,no -1 - 200 DM,9,good,furniture/appliances,1670,< 100 DM,< 1 year,4,2,22,none,own,1,skilled,1,yes,yes -unknown,9,critical,car,1224,< 100 DM,1 - 4 years,3,1,30,none,own,2,skilled,1,no,no -unknown,12,critical,furniture/appliances,522,500 - 1000 DM,> 7 years,4,4,42,none,own,2,skilled,2,yes,no -< 0 DM,12,good,furniture/appliances,1498,< 100 DM,1 - 4 years,4,1,23,bank,own,1,skilled,1,no,no -1 - 200 DM,30,poor,furniture/appliances,1919,100 - 500 DM,< 1 year,4,3,30,store,own,2,management,1,no,yes -> 200 DM,9,good,furniture/appliances,745,< 100 DM,1 - 4 years,3,2,28,none,own,1,unskilled,1,no,yes -1 - 200 DM,6,good,furniture/appliances,2063,< 100 DM,< 1 year,4,3,30,none,rent,1,management,1,yes,no -1 - 200 DM,60,good,education,6288,< 100 DM,1 - 4 years,4,4,42,none,other,1,skilled,1,no,yes -unknown,24,critical,car,6842,unknown,1 - 4 years,2,4,46,none,own,2,management,2,yes,no -unknown,12,good,car,3527,unknown,< 1 year,2,3,45,none,own,1,management,2,yes,no -unknown,10,good,car,1546,< 100 DM,1 - 4 years,3,2,31,none,own,1,unskilled,2,no,no -unknown,24,good,furniture/appliances,929,unknown,4 - 7 years,4,2,31,store,own,1,skilled,1,yes,no -unknown,4,critical,car,1455,< 100 DM,4 - 7 years,2,1,42,none,own,3,unskilled,2,no,no -< 0 DM,15,good,furniture/appliances,1845,< 100 DM,< 1 year,4,1,46,none,rent,1,skilled,1,no,no -1 - 200 DM,48,perfect,car,8358,500 - 1000 DM,< 1 year,1,1,30,none,own,2,skilled,1,no,no -< 0 DM,24,very good,furniture/appliances,3349,500 - 1000 DM,< 1 year,4,4,30,none,other,1,skilled,2,yes,yes -unknown,12,good,car,2859,unknown,unemployed,4,4,38,none,own,1,management,1,yes,no -unknown,18,good,furniture/appliances,1533,< 100 DM,< 1 year,4,1,43,none,own,1,unskilled,2,no,yes -unknown,24,good,furniture/appliances,3621,100 - 500 DM,> 7 years,2,4,31,none,own,2,skilled,1,no,yes -1 - 200 DM,18,critical,business,3590,< 100 DM,unemployed,3,3,40,none,own,3,unemployed,2,yes,no -< 0 DM,36,poor,business,2145,< 100 DM,4 - 7 years,2,1,24,none,own,2,skilled,1,yes,yes -1 - 200 DM,24,good,car,4113,500 - 1000 DM,< 1 year,3,4,28,none,rent,1,skilled,1,no,yes -unknown,36,good,furniture/appliances,10974,< 100 DM,unemployed,4,2,26,none,own,2,management,1,yes,yes -< 0 DM,12,good,car,1893,< 100 DM,1 - 4 years,4,4,29,none,own,1,skilled,1,yes,no -< 0 DM,24,critical,furniture/appliances,1231,> 1000 DM,> 7 years,4,4,57,none,rent,2,management,1,yes,no -> 200 DM,30,critical,furniture/appliances,3656,unknown,> 7 years,4,4,49,store,own,2,unskilled,1,no,no -1 - 200 DM,9,critical,furniture/appliances,1154,< 100 DM,> 7 years,2,4,37,none,own,3,unskilled,1,no,no -< 0 DM,28,good,car,4006,< 100 DM,1 - 4 years,3,2,45,none,own,1,unskilled,1,no,yes -1 - 200 DM,24,good,furniture/appliances,3069,100 - 500 DM,> 7 years,4,4,30,none,other,1,skilled,1,no,no -unknown,6,critical,furniture/appliances,1740,< 100 DM,> 7 years,2,2,30,none,rent,2,skilled,1,no,no -1 - 200 DM,21,poor,car,2353,< 100 DM,1 - 4 years,1,4,47,none,own,2,skilled,1,no,no -unknown,15,good,car,3556,unknown,1 - 4 years,3,2,29,none,own,1,skilled,1,no,no -unknown,24,good,furniture/appliances,2397,500 - 1000 DM,> 7 years,3,2,35,bank,own,2,skilled,1,yes,yes -1 - 200 DM,6,good,renovations,454,< 100 DM,< 1 year,3,1,22,none,own,1,unskilled,1,no,no -1 - 200 DM,30,good,furniture/appliances,1715,unknown,1 - 4 years,4,1,26,none,own,1,skilled,1,no,no -1 - 200 DM,27,critical,furniture/appliances,2520,500 - 1000 DM,1 - 4 years,4,2,23,none,own,2,unskilled,1,no,yes -unknown,15,good,furniture/appliances,3568,< 100 DM,> 7 years,4,2,54,bank,rent,1,management,1,yes,no -unknown,42,good,furniture/appliances,7166,unknown,4 - 7 years,2,4,29,none,rent,1,skilled,1,yes,no -< 0 DM,11,critical,car,3939,< 100 DM,1 - 4 years,1,2,40,none,own,2,unskilled,2,no,no -1 - 200 DM,15,good,renovations,1514,100 - 500 DM,1 - 4 years,4,2,22,none,own,1,skilled,1,no,no -unknown,24,good,car,7393,< 100 DM,1 - 4 years,1,4,43,none,own,1,unskilled,2,no,no -< 0 DM,24,very good,car,1193,< 100 DM,unemployed,1,4,29,none,rent,2,unemployed,1,no,yes -< 0 DM,60,good,business,7297,< 100 DM,> 7 years,4,4,36,none,rent,1,skilled,1,no,yes -unknown,30,critical,furniture/appliances,2831,< 100 DM,1 - 4 years,4,2,33,none,own,1,skilled,1,yes,no -> 200 DM,24,good,furniture/appliances,1258,500 - 1000 DM,1 - 4 years,3,3,57,none,own,1,unskilled,1,no,no -1 - 200 DM,6,good,furniture/appliances,753,< 100 DM,1 - 4 years,2,3,64,none,own,1,skilled,1,no,no -1 - 200 DM,18,poor,business,2427,unknown,> 7 years,4,2,42,none,own,2,skilled,1,no,no -unknown,24,poor,car,2538,< 100 DM,> 7 years,4,4,47,none,own,2,unskilled,2,no,yes -1 - 200 DM,15,very good,car,1264,100 - 500 DM,1 - 4 years,2,2,25,none,rent,1,skilled,1,no,yes -1 - 200 DM,30,critical,furniture/appliances,8386,< 100 DM,4 - 7 years,2,2,49,none,own,1,skilled,1,no,yes -unknown,48,good,business,4844,< 100 DM,unemployed,3,2,33,bank,rent,1,management,1,yes,yes -> 200 DM,21,good,car,2923,100 - 500 DM,1 - 4 years,1,1,28,bank,own,1,management,1,yes,no -< 0 DM,36,good,car,8229,< 100 DM,1 - 4 years,2,2,26,none,own,1,skilled,2,no,yes -unknown,24,critical,furniture/appliances,2028,< 100 DM,4 - 7 years,2,2,30,none,own,2,unskilled,1,no,no -< 0 DM,15,critical,furniture/appliances,1433,< 100 DM,1 - 4 years,4,3,25,none,rent,2,skilled,1,no,no -> 200 DM,42,perfect,business,6289,< 100 DM,< 1 year,2,1,33,none,own,2,skilled,1,no,no -unknown,13,good,furniture/appliances,1409,100 - 500 DM,unemployed,2,4,64,none,own,1,skilled,1,no,no -< 0 DM,24,good,car,6579,< 100 DM,unemployed,4,2,29,none,other,1,management,1,yes,no -1 - 200 DM,24,critical,furniture/appliances,1743,< 100 DM,> 7 years,4,2,48,none,own,2,unskilled,1,no,no -unknown,12,critical,education,3565,unknown,< 1 year,2,1,37,none,own,2,unskilled,2,no,no -unknown,15,very good,furniture/appliances,1569,100 - 500 DM,> 7 years,4,4,34,bank,own,1,unskilled,2,no,no -< 0 DM,18,good,furniture/appliances,1936,unknown,4 - 7 years,2,4,23,none,rent,2,unskilled,1,no,no -< 0 DM,36,good,furniture/appliances,3959,< 100 DM,unemployed,4,3,30,none,own,1,management,1,yes,no -unknown,12,good,car,2390,unknown,> 7 years,4,3,50,none,own,1,skilled,1,yes,no -unknown,12,good,furniture/appliances,1736,< 100 DM,4 - 7 years,3,4,31,none,own,1,unskilled,1,no,no -< 0 DM,30,good,car,3857,< 100 DM,1 - 4 years,4,4,40,none,own,1,management,1,yes,no -unknown,12,good,furniture/appliances,804,< 100 DM,> 7 years,4,4,38,none,own,1,skilled,1,no,no -< 0 DM,45,good,furniture/appliances,1845,< 100 DM,1 - 4 years,4,4,23,none,other,1,skilled,1,yes,yes -1 - 200 DM,45,critical,car,4576,100 - 500 DM,unemployed,3,4,27,none,own,1,skilled,1,no,no diff --git a/Production/data/lalonde.csv b/Production/data/lalonde.csv deleted file mode 100644 index fedc83b9..00000000 --- a/Production/data/lalonde.csv +++ /dev/null @@ -1,446 +0,0 @@ -age,educ,black,hisp,married,nodegr,re74,re75,re78,u74,u75,treat -37,11,1,0,1,1,0,0,9930.05,1,1,1 -22,9,0,1,0,1,0,0,3595.89,1,1,1 -30,12,1,0,0,0,0,0,24909.5,1,1,1 -27,11,1,0,0,1,0,0,7506.15,1,1,1 -33,8,1,0,0,1,0,0,289.79,1,1,1 -22,9,1,0,0,1,0,0,4056.49,1,1,1 -23,12,1,0,0,0,0,0,0,1,1,1 -32,11,1,0,0,1,0,0,8472.16,1,1,1 -22,16,1,0,0,0,0,0,2164.02,1,1,1 -33,12,0,0,1,0,0,0,12418.1,1,1,1 -19,9,1,0,0,1,0,0,8173.91,1,1,1 -21,13,1,0,0,0,0,0,17094.6,1,1,1 -18,8,1,0,0,1,0,0,0,1,1,1 -27,10,1,0,1,1,0,0,18739.9,1,1,1 -17,7,1,0,0,1,0,0,3023.88,1,1,1 -19,10,1,0,0,1,0,0,3228.5,1,1,1 -27,13,1,0,0,0,0,0,14581.9,1,1,1 -23,10,1,0,0,1,0,0,7693.4,1,1,1 -40,12,1,0,0,0,0,0,10804.3,1,1,1 -26,12,1,0,0,0,0,0,10747.4,1,1,1 -23,11,1,0,0,1,0,0,0,1,1,1 -41,14,0,0,0,0,0,0,5149.5,1,1,1 -38,9,0,0,0,1,0,0,6408.95,1,1,1 -24,11,1,0,0,1,0,0,1991.4,1,1,1 -18,10,1,0,0,1,0,0,11163.2,1,1,1 -29,11,1,0,1,1,0,0,9643,1,1,1 -25,11,1,0,0,1,0,0,9897.05,1,1,1 -27,10,0,1,0,1,0,0,11142.9,1,1,1 -17,10,1,0,0,1,0,0,16218,1,1,1 -24,11,1,0,0,1,0,0,995.7,1,1,1 -17,10,1,0,0,1,0,0,0,1,1,1 -48,4,1,0,0,1,0,0,6551.59,1,1,1 -25,11,1,0,1,1,0,0,1574.42,1,1,1 -20,12,1,0,0,0,0,0,0,1,1,1 -25,12,1,0,0,0,0,0,3191.75,1,1,1 -42,14,1,0,0,0,0,0,20505.9,1,1,1 -25,5,1,0,0,1,0,0,6181.88,1,1,1 -23,12,1,0,1,0,0,0,5911.55,1,1,1 -46,8,1,0,1,1,0,0,3094.16,1,1,1 -24,10,1,0,0,1,0,0,0,1,1,1 -21,12,1,0,0,0,0,0,1254.58,1,1,1 -19,9,0,0,0,1,0,0,13188.8,1,1,1 -17,8,1,0,0,1,0,0,8061.49,1,1,1 -18,8,0,1,1,1,0,0,2787.96,1,1,1 -20,11,1,0,0,1,0,0,3972.54,1,1,1 -25,11,1,0,1,1,0,0,0,1,1,1 -17,8,1,0,0,1,0,0,0,1,1,1 -17,9,1,0,0,1,0,0,0,1,1,1 -25,5,1,0,0,1,0,0,12187.4,1,1,1 -23,12,1,0,0,0,0,0,4843.18,1,1,1 -28,8,1,0,0,1,0,0,0,1,1,1 -31,11,1,0,1,1,0,0,8087.49,1,1,1 -18,11,1,0,0,1,0,0,0,1,1,1 -25,12,1,0,0,0,0,0,2348.97,1,1,1 -30,11,1,0,1,1,0,0,590.782,1,1,1 -17,10,1,0,0,1,0,0,0,1,1,1 -37,9,1,0,0,1,0,0,1067.51,1,1,1 -41,4,1,0,1,1,0,0,7284.99,1,1,1 -42,14,1,0,1,0,0,0,13167.5,1,1,1 -22,11,0,0,0,1,0,0,1048.43,1,1,1 -17,8,1,0,0,1,0,0,0,1,1,1 -29,8,1,0,0,1,0,0,1923.94,1,1,1 -35,10,1,0,0,1,0,0,4666.24,1,1,1 -27,11,1,0,0,1,0,0,549.298,1,1,1 -29,4,1,0,0,1,0,0,762.915,1,1,1 -28,9,1,0,0,1,0,0,10694.3,1,1,1 -27,11,1,0,0,1,0,0,0,1,1,1 -23,7,0,0,0,1,0,0,0,1,1,1 -45,5,1,0,1,1,0,0,8546.72,1,1,1 -29,13,1,0,0,0,0,0,7479.66,1,1,1 -27,9,1,0,0,1,0,0,0,1,1,1 -46,13,1,0,0,0,0,0,647.205,1,1,1 -18,6,1,0,0,1,0,0,0,1,1,1 -25,12,1,0,0,0,0,0,11965.8,1,1,1 -28,15,1,0,0,0,0,0,9598.54,1,1,1 -25,11,0,0,0,1,0,0,18783.4,1,1,1 -22,12,1,0,0,0,0,0,18678.1,1,1,1 -21,9,1,0,0,1,0,0,0,1,1,1 -40,11,1,0,0,1,0,0,23005.6,1,1,1 -22,11,1,0,0,1,0,0,6456.7,1,1,1 -25,12,1,0,0,0,0,0,0,1,1,1 -18,12,1,0,0,0,0,0,2321.11,1,1,1 -38,12,0,0,0,0,0,0,4941.85,1,1,1 -27,13,1,0,0,0,0,0,0,1,1,1 -27,8,1,0,0,1,0,0,0,1,1,1 -38,11,1,0,0,1,0,0,0,1,1,1 -23,8,0,1,0,1,0,0,3881.28,1,1,1 -26,11,1,0,0,1,0,0,17231,1,1,1 -21,12,0,0,0,0,0,0,8048.6,1,1,1 -25,8,1,0,0,1,0,0,0,1,1,1 -31,11,1,0,1,1,0,0,14509.9,1,1,1 -17,10,1,0,0,1,0,0,0,1,1,1 -25,11,1,0,0,1,0,0,0,1,1,1 -21,12,1,0,0,0,0,0,9983.78,1,1,1 -44,11,1,0,0,1,0,0,0,1,1,1 -25,12,0,0,0,0,0,0,5587.5,1,1,1 -18,9,1,0,0,1,0,0,4482.85,1,1,1 -42,12,1,0,0,0,0,0,2456.15,1,1,1 -25,10,1,0,0,1,0,0,0,1,1,1 -31,9,0,1,0,1,0,0,26817.6,1,1,1 -24,10,1,0,0,1,0,0,0,1,1,1 -26,10,1,0,0,1,0,0,9265.79,1,1,1 -25,11,1,0,0,1,0,0,485.23,1,1,1 -18,11,1,0,0,1,0,0,4814.63,1,1,1 -19,11,1,0,0,1,0,0,7458.11,1,1,1 -43,9,1,0,0,1,0,0,0,1,1,1 -27,13,1,0,0,0,0,0,34099.3,1,1,1 -17,9,1,0,0,1,0,0,1953.27,1,1,1 -30,11,1,0,0,1,0,0,0,1,1,1 -26,10,1,0,1,1,2028,0,0,0,1,1 -20,9,1,0,0,1,6083.99,0,8881.67,0,1,1 -17,9,0,1,0,1,445.17,74.3435,6210.67,0,0,1 -20,12,1,0,0,0,989.268,165.208,0,0,0,1 -18,11,1,0,0,1,858.254,214.564,929.884,0,0,1 -27,12,1,0,1,0,3670.87,334.049,0,0,0,1 -21,12,0,0,0,0,3670.87,334.049,12558,0,0,1 -27,12,1,0,0,0,2143.41,357.95,22163.3,0,0,1 -20,12,1,0,0,0,0,377.569,1652.64,1,0,1 -19,10,1,0,0,1,0,385.274,8124.72,1,0,1 -23,12,1,0,0,0,5506.31,501.074,671.332,0,0,1 -29,14,1,0,0,0,0,679.673,17815,1,0,1 -18,10,1,0,0,1,0,798.908,9737.15,1,0,1 -19,9,1,0,0,1,0,798.908,17685.2,1,0,1 -27,13,0,0,1,0,9381.57,853.723,0,0,0,1 -18,11,0,0,0,1,3678.23,919.558,4321.71,0,0,1 -27,9,1,0,1,1,0,934.445,1773.42,1,0,1 -22,12,1,0,0,0,5605.85,936.177,0,0,0,1 -23,10,1,0,1,1,0,936.439,11233.3,1,0,1 -23,12,0,1,0,0,9385.74,1117.44,559.443,0,0,1 -20,11,1,0,0,1,3637.5,1220.84,1085.44,0,0,1 -17,9,1,0,0,1,1716.51,1253.44,5445.2,0,0,1 -28,11,1,0,0,1,0,1284.08,60307.9,1,0,1 -26,11,1,0,1,1,0,1392.85,1460.36,1,0,1 -20,11,1,0,0,1,16318.6,1484.99,6943.34,0,0,1 -24,11,1,0,1,1,824.389,1666.11,4032.71,0,0,1 -31,9,1,0,0,1,0,1698.61,10363.3,1,0,1 -23,8,0,0,1,1,0,1713.15,4232.31,1,0,1 -18,10,1,0,0,1,2143.41,1784.27,11141.4,0,0,1 -29,12,1,0,0,0,10881.9,1817.28,0,0,0,1 -26,11,0,0,0,1,0,2226.27,13385.9,1,0,1 -24,9,1,0,0,1,9154.7,2288.68,4849.56,0,0,1 -25,12,1,0,0,0,14426.8,2409.27,0,0,0,1 -24,10,1,0,0,1,4250.4,2421.95,1660.51,0,0,1 -46,8,1,0,0,1,3165.66,2594.72,0,0,0,1 -31,12,0,0,0,0,0,2611.22,2484.55,1,0,1 -19,11,1,0,0,1,2305.03,2615.28,4146.6,0,0,1 -19,8,1,0,0,1,0,2657.06,9970.68,1,0,1 -27,11,1,0,0,1,2206.94,2666.27,0,0,0,1 -26,11,1,0,1,1,0,2754.65,26372.3,1,0,1 -20,10,1,0,0,1,5005.73,2777.36,5615.19,0,0,1 -28,10,1,0,0,1,0,2836.51,3196.57,1,0,1 -24,12,1,0,0,0,13765.8,2842.76,6167.68,0,0,1 -19,8,1,0,0,1,2636.35,2937.26,7535.94,0,0,1 -23,12,1,0,0,0,6269.34,3039.96,8484.24,0,0,1 -42,9,1,0,1,1,0,3058.53,1294.41,1,0,1 -25,13,1,0,0,0,12362.9,3090.73,0,0,0,1 -18,9,1,0,0,1,0,3287.38,5010.34,1,0,1 -21,12,1,0,0,0,6473.68,3332.41,9371.04,0,0,1 -27,10,1,0,0,1,1001.15,3550.08,0,0,0,1 -21,8,1,0,0,1,989.268,3695.9,4279.61,0,0,1 -22,9,1,0,0,1,2192.88,3836.99,3462.56,0,0,1 -31,4,1,0,0,1,8517.59,4023.21,7382.55,0,0,1 -24,10,1,0,1,1,11703.2,4078.15,0,0,0,1 -29,10,1,0,0,1,0,4398.95,0,1,0,1 -29,12,1,0,0,0,9748.39,4878.94,10976.5,0,0,1 -19,10,0,0,0,1,0,5324.11,13829.6,1,0,1 -19,11,0,1,1,1,5424.49,5463.8,6788.46,0,0,1 -31,9,1,0,0,1,10717,5517.84,9558.5,0,0,1 -22,10,1,0,1,1,1468.35,5588.66,13228.3,0,0,1 -21,9,1,0,0,1,6416.47,5749.33,743.667,0,0,1 -17,10,1,0,0,1,1291.47,5793.85,5522.79,0,0,1 -26,12,1,0,1,0,8408.76,5794.83,1424.94,0,0,1 -20,9,0,1,0,1,12260.8,5875.05,1358.64,0,0,1 -19,10,1,0,0,1,4121.95,6056.75,0,0,0,1 -26,10,1,0,0,1,25929.7,6788.96,672.877,0,0,1 -28,11,1,0,0,1,1929.03,6871.86,0,0,0,1 -22,12,0,1,1,0,492.231,7055.7,10092.8,0,0,1 -33,11,1,0,0,1,0,7867.92,6281.43,1,0,1 -22,12,0,0,0,0,6759.99,8455.5,12590.7,0,0,1 -29,10,0,1,0,1,0,8853.67,5112.01,1,0,1 -33,12,1,0,1,0,20280,10941.4,15952.6,0,0,1 -25,14,1,0,1,0,35040.1,11536.6,36647,0,0,1 -35,9,1,0,1,1,13602.4,13830.6,12804,0,0,1 -35,8,1,0,1,1,13732.1,17976.2,3786.63,0,0,1 -33,11,1,0,1,1,14660.7,25142.2,4181.94,0,0,1 -23,10,1,0,0,1,0,0,0,1,1,0 -26,12,0,0,0,0,0,0,12383.7,1,1,0 -22,9,1,0,0,1,0,0,0,1,1,0 -18,9,1,0,0,1,0,0,10740.1,1,1,0 -45,11,1,0,0,1,0,0,11796.5,1,1,0 -18,9,1,0,0,1,0,0,9227.05,1,1,0 -24,8,0,0,0,1,0,0,10569.3,1,1,0 -34,11,1,0,1,1,0,0,6040.34,1,1,0 -24,4,0,1,0,1,0,0,3880.83,1,1,0 -36,10,1,0,0,1,0,0,0,1,1,0 -21,14,1,0,0,0,0,0,5775.06,1,1,0 -28,9,1,0,0,1,0,0,0,1,1,0 -27,7,1,0,1,1,0,0,0,1,1,0 -19,11,0,0,0,1,0,0,0,1,1,0 -20,8,1,0,0,1,0,0,0,1,1,0 -34,12,1,0,0,0,0,0,2113.72,1,1,0 -24,10,1,0,0,1,0,0,7618.64,1,1,0 -22,8,0,1,0,1,0,0,9920.95,1,1,0 -25,11,1,0,0,1,0,0,4196.38,1,1,0 -39,9,1,0,0,1,0,0,0,1,1,0 -19,9,1,0,1,1,0,0,16658.3,1,1,0 -44,9,1,0,0,1,0,0,9722,1,1,0 -27,8,1,0,0,1,0,0,3783.66,1,1,0 -25,8,1,0,0,1,0,0,3515.93,1,1,0 -31,10,1,0,0,1,0,0,17014.6,1,1,0 -34,10,1,0,1,1,0,0,0,1,1,0 -21,7,0,1,0,1,0,0,0,1,1,0 -33,12,1,0,0,0,0,0,5970.26,1,1,0 -18,10,0,1,0,1,0,0,1859.17,1,1,0 -26,12,1,0,1,0,0,0,6191.94,1,1,0 -31,12,1,0,0,0,0,0,7284.39,1,1,0 -35,10,1,0,0,1,0,0,445.831,1,1,0 -20,12,1,0,0,0,0,0,0,1,1,0 -25,11,1,0,0,1,0,0,0,1,1,0 -25,10,1,0,0,1,0,0,7367.04,1,1,0 -35,11,1,0,0,1,0,0,0,1,1,0 -20,10,1,0,0,1,0,0,2015.5,1,1,0 -25,9,0,1,0,1,0,0,15791.1,1,1,0 -27,10,1,0,0,1,0,0,1135.47,1,1,0 -20,11,0,1,0,1,0,0,6378.72,1,1,0 -26,11,1,0,0,1,0,0,7176.19,1,1,0 -38,8,1,0,0,1,0,0,0,1,1,0 -34,10,1,0,0,1,0,0,7952.54,1,1,0 -19,12,1,0,0,0,0,0,0,1,1,0 -32,8,1,0,0,1,0,0,7152.13,1,1,0 -20,9,0,1,0,1,0,0,8329.82,1,1,0 -23,10,1,0,0,1,0,0,0,1,1,0 -38,10,1,0,0,1,0,0,12429.9,1,1,0 -24,11,1,0,0,1,0,0,0,1,1,0 -23,11,1,0,0,1,0,0,5088.76,1,1,0 -20,7,0,1,0,1,0,0,4374.04,1,1,0 -21,11,1,0,0,1,0,0,1553.29,1,1,0 -25,10,1,0,0,1,0,0,0,1,1,0 -22,11,1,0,1,1,0,0,1698.3,1,1,0 -23,11,1,0,0,1,0,0,0,1,1,0 -24,12,0,0,0,0,0,0,11294.6,1,1,0 -29,11,1,0,0,1,0,0,0,1,1,0 -24,11,1,0,0,1,0,0,14626.4,1,1,0 -22,9,1,0,0,1,0,0,12898.4,1,1,0 -28,11,1,0,0,1,0,0,5767.13,1,1,0 -18,10,0,1,0,1,0,0,6527.92,1,1,0 -26,10,1,0,0,1,0,0,3931.24,1,1,0 -25,10,1,0,0,1,0,0,20942.2,1,1,0 -24,10,1,0,0,1,0,0,0,1,1,0 -26,5,1,0,0,1,0,0,0,1,1,0 -36,10,1,0,0,1,0,0,14690.4,1,1,0 -22,11,1,0,0,1,0,0,0,1,1,0 -25,12,1,0,0,0,0,0,3418.1,1,1,0 -27,11,1,0,0,1,0,0,11197.3,1,1,0 -29,8,1,0,0,1,0,0,0,1,1,0 -24,12,1,0,0,0,0,0,0,1,1,0 -22,10,1,0,0,1,0,0,0,1,1,0 -24,7,1,0,0,1,0,0,1455.69,1,1,0 -29,12,1,0,0,0,0,0,1890.94,1,1,0 -25,11,0,1,1,1,0,0,4485.62,1,1,0 -30,12,1,0,0,0,0,0,13613.4,1,1,0 -22,8,1,0,0,1,0,0,1390.51,1,1,0 -55,3,1,0,0,1,0,0,5843.8,1,1,0 -20,10,1,0,0,1,0,0,8598.52,1,1,0 -34,11,1,0,0,1,0,0,2920.2,1,1,0 -22,12,1,0,0,0,0,0,0,1,1,0 -32,12,0,1,1,0,0,0,6735.32,1,1,0 -31,10,1,0,0,1,0,0,0,1,1,0 -18,9,1,0,0,1,0,0,0,1,1,0 -50,10,0,1,0,1,0,0,0,1,1,0 -25,11,1,0,1,1,0,0,44.7555,1,1,0 -23,10,1,0,1,1,0,0,0,1,1,0 -38,10,1,0,0,1,0,0,0,1,1,0 -25,10,1,0,1,1,0,0,3701.81,1,1,0 -42,10,1,0,0,1,0,0,6930.34,1,1,0 -39,12,1,0,1,0,0,0,3795.8,1,1,0 -34,13,1,0,1,0,0,0,5193.25,1,1,0 -24,7,1,0,0,1,0,0,2193.53,1,1,0 -32,11,1,0,0,1,0,0,11120.5,1,1,0 -27,13,1,0,0,0,0,0,7609.52,1,1,0 -26,10,1,0,0,1,0,0,2169.03,1,1,0 -44,11,1,0,0,1,0,0,0,1,1,0 -25,11,1,0,0,1,0,0,1264.23,1,1,0 -25,12,1,0,0,0,0,0,0,1,1,0 -28,12,1,0,1,0,0,0,0,1,1,0 -32,10,1,0,0,1,0,0,0,1,1,0 -22,10,1,0,0,1,0,0,0,1,1,0 -19,9,1,0,0,1,0,0,5712.64,1,1,0 -31,10,1,0,1,1,0,0,0,1,1,0 -23,11,1,0,0,1,0,0,0,1,1,0 -33,11,1,0,0,1,0,0,0,1,1,0 -27,10,1,0,0,1,0,0,1184.88,1,1,0 -29,11,1,0,1,1,0,0,10225.9,1,1,0 -23,10,1,0,0,1,0,0,0,1,1,0 -25,9,1,0,1,1,0,0,4715.37,1,1,0 -25,10,1,0,0,1,0,0,289.79,1,1,0 -24,10,1,0,0,1,0,0,0,1,1,0 -28,8,0,0,0,1,0,0,8190.42,1,1,0 -26,6,1,0,0,1,0,0,4813.05,1,1,0 -30,14,1,0,1,0,0,0,7344.68,1,1,0 -25,10,1,0,1,1,0,0,0,1,1,0 -29,11,1,0,1,1,0,0,0,1,1,0 -25,12,1,0,1,0,0,0,0,1,1,0 -28,13,1,0,0,0,0,0,0,1,1,0 -23,11,1,0,0,1,0,0,4350.91,1,1,0 -54,11,1,0,0,1,0,0,7812.52,1,1,0 -33,5,0,1,0,1,0,0,0,1,1,0 -20,8,1,0,0,1,0,0,3644.66,1,1,0 -45,9,1,0,0,1,0,0,4844.8,1,1,0 -39,6,1,0,0,1,0,0,0,1,1,0 -26,12,1,0,0,0,0,0,0,1,1,0 -23,10,1,0,0,1,0,0,0,1,1,0 -27,12,0,0,0,0,0,0,14792.9,1,1,0 -33,9,0,1,1,1,0,0,0,1,1,0 -25,10,1,0,1,1,0,0,0,1,1,0 -23,8,1,0,0,1,0,0,3746.7,1,1,0 -18,8,1,0,0,1,0,0,1568.15,1,1,0 -17,8,1,0,0,1,0,0,7010.44,1,1,0 -19,9,0,1,0,1,0,0,3811.68,1,1,0 -18,8,0,1,0,1,0,0,10798.6,1,1,0 -18,11,1,0,0,1,0,0,4657.27,1,1,0 -17,11,1,0,0,1,0,0,8551.53,1,1,0 -19,10,1,0,0,1,0,0,4309.88,1,1,0 -19,10,1,0,0,1,0,0,5286.4,1,1,0 -18,9,1,0,0,1,0,0,12486.2,1,1,0 -18,9,1,0,0,1,0,0,10877.4,1,1,0 -18,10,1,0,0,1,0,0,202.285,1,1,0 -17,10,1,0,0,1,0,0,2657.71,1,1,0 -18,7,1,0,0,1,0,0,4132.58,1,1,0 -18,11,1,0,0,1,0,0,11303.1,1,1,0 -19,10,0,1,0,1,0,0,0,1,1,0 -18,9,1,0,0,1,0,0,0,1,1,0 -17,10,1,0,0,1,0,0,0,1,1,0 -17,10,1,0,0,1,0,0,2189.43,1,1,0 -19,11,1,0,0,1,0,0,0,1,1,0 -17,8,0,0,0,1,0,0,10211,1,1,0 -18,10,1,0,0,1,0,0,11048.1,1,1,0 -18,9,1,0,0,1,0,0,0,1,1,0 -17,8,1,0,0,1,0,0,8993.87,1,1,0 -19,6,0,1,0,1,0,0,5071.8,1,1,0 -19,10,0,0,0,1,0,0,3194.01,1,1,0 -17,11,0,0,0,1,0,0,0,1,1,0 -20,9,1,0,0,1,0,0,5193.09,1,1,0 -17,9,1,0,0,1,0,0,0,1,1,0 -17,10,1,0,0,1,0,0,275.566,1,1,0 -17,9,1,0,0,1,0,0,3590.7,1,1,0 -19,11,1,0,0,1,0,0,0,1,1,0 -19,10,1,0,1,1,0,0,12797.7,1,1,0 -20,9,1,0,0,1,0,0,2035.91,1,1,0 -18,9,1,0,0,1,0,0,2389.68,1,1,0 -18,11,1,0,0,1,0,0,0,1,1,0 -17,10,0,1,0,1,0,0,8469.28,1,1,0 -19,11,1,0,0,1,0,0,0,1,1,0 -17,10,1,0,0,1,0,0,1143.39,1,1,0 -17,9,0,1,0,1,0,0,5114.81,1,1,0 -18,10,1,0,0,1,0,0,781.224,1,1,0 -21,9,1,0,0,1,591.499,0,3343.22,0,1,0 -18,10,1,0,0,1,1563.25,0,9602.44,0,1,0 -19,11,1,0,0,1,1626.62,0,0,0,1,0 -24,9,1,0,0,1,2788.5,0,16461.6,0,1,0 -28,11,0,1,1,1,3472.95,0,6771.62,0,1,0 -25,11,1,0,0,1,5281.25,0,0,0,1,0 -21,7,1,0,0,1,33800,0,11011.6,0,1,0 -39,11,1,0,0,1,0,83.6896,0,1,0,0 -36,12,1,0,0,0,0,142.397,0,1,0,0 -24,12,1,0,0,0,0,159.885,0,1,0,0 -17,11,1,0,0,1,989.268,165.208,4251.13,0,0,0 -18,10,1,0,0,1,960.427,240.107,2891.67,0,0,0 -18,10,1,0,0,1,0,273.553,5514.37,1,0,0 -28,10,1,0,0,1,1471.29,367.823,4858.9,0,0,0 -27,13,0,0,0,0,5214.31,474.502,4812.58,0,0,0 -31,12,0,0,0,0,0,494.643,0,1,0,0 -22,9,1,0,0,1,0,506.408,604.199,1,0,0 -31,10,1,0,0,1,0,520.446,14527.9,1,0,0 -26,10,1,0,1,1,6140.37,558.773,0,0,0,0 -18,9,0,0,0,1,0,559.596,7300.5,1,0,0 -23,11,1,0,0,1,6382.31,580.79,0,0,0,0 -20,12,1,0,0,0,0,591.815,4159.92,1,0,0 -19,10,1,0,0,1,0,604.154,0,1,0,0 -18,11,1,0,0,1,1064.7,645.272,5497.59,0,0,0 -17,10,1,0,0,1,0,664.569,0,1,0,0 -27,12,1,0,1,0,0,752.39,0,1,0,0 -27,11,1,0,0,1,3065.19,766.299,0,0,0,0 -28,12,0,0,0,0,0,803.343,16477,1,0,0 -28,11,1,0,0,1,2431.95,863.48,0,0,0,0 -21,10,1,0,0,1,6661.06,1162.36,39483.5,0,0,0 -17,10,0,1,0,1,4905.12,1168.9,11306.3,0,0,0 -26,11,1,0,0,1,4699.96,1174.99,6672.02,0,0,0 -29,9,1,0,0,1,0,1203.82,9378.65,1,0,0 -17,10,0,1,0,1,1203.61,1239.63,5088.99,0,0,0 -22,11,1,0,0,1,7914.13,1321.66,2639.29,0,0,0 -24,11,1,0,0,1,0,1327.99,9495.9,1,0,0 -20,12,1,0,0,0,557.699,1371.47,20893.1,0,0,0 -18,12,1,0,0,0,0,1405.51,0,1,0,0 -24,11,0,0,0,1,2669.73,1468.38,10361.7,0,0,0 -21,9,0,0,0,1,2988.41,1577.17,1740.2,0,0,0 -30,8,1,0,0,1,0,1706.66,0,1,0,0 -31,11,1,0,0,1,17711.9,1726.45,0,0,0,0 -17,10,0,1,0,1,1442.68,1734.56,6354.19,0,0,0 -19,9,1,0,0,1,8409.63,1778.09,7171,0,0,0 -23,11,1,0,0,1,0,1896.02,5573.55,1,0,0 -22,12,1,0,0,0,4380.02,2003.68,439.688,0,0,0 -29,12,1,0,0,0,22859.4,2080.21,16970,0,0,0 -22,10,1,0,0,1,0,2174.96,5344.02,1,0,0 -29,13,1,0,0,0,718.249,2265.58,2725.32,0,0,0 -19,11,1,0,0,1,721.341,2445.59,9772.28,0,0,0 -17,9,1,0,0,1,0,2595.27,0,1,0,0 -18,10,1,0,0,1,1716.51,2682.13,0,0,0,0 -19,12,1,0,0,0,8417,2814.2,1720.91,0,0,0 -20,6,1,0,0,1,6006.88,2850.61,0,0,0,0 -33,11,1,0,0,1,10523.8,2899.82,18859.9,0,0,0 -36,11,0,1,0,1,5443.73,3063.88,1324.54,0,0,0 -25,11,1,0,0,1,15210,3072.73,284.658,0,0,0 -19,11,1,0,0,1,3504.01,3285.68,11195.9,0,0,0 -23,8,1,0,0,1,7724.28,3403.06,0,0,0,0 -17,11,1,0,0,1,4080.73,3796.03,0,0,0,0 -43,10,1,0,0,1,2502.87,4128.44,7565.27,0,0,0 -26,11,1,0,1,1,0,4184.73,0,1,0,0 -27,11,1,0,1,1,0,4491.88,0,1,0,0 -19,11,1,0,0,1,6337.49,4503.06,0,0,0,0 -28,11,1,0,1,1,8593.16,5393.9,4974.59,0,0,0 -28,12,1,0,1,0,10585.1,5551.46,12780,0,0,0 -26,8,1,0,0,1,1126.29,5562.6,3523.58,0,0,0 -31,12,1,0,0,0,0,5613.91,0,1,0,0 -23,11,1,0,0,1,7617.36,5716.41,10274.8,0,0,0 -20,12,1,0,0,0,7182.49,6004.73,4779.72,0,0,0 -28,10,1,0,1,1,8293.35,6449.48,16988.2,0,0,0 -39,12,1,0,1,0,19785.3,6608.14,499.257,0,0,0 -21,8,1,0,0,1,39570.7,6608.3,3083.58,0,0,0 -22,11,1,0,0,1,8810.07,6974.48,3708.72,0,0,0 -20,11,1,0,0,1,8009.16,7666.88,7659.22,0,0,0 -21,11,0,1,0,1,2992.53,8920.47,20857.8,0,0,0 -23,12,0,1,0,0,5721.7,8960.68,7078.18,0,0,0 -29,9,1,0,0,1,9268.94,9160.69,0,0,0,0 -28,9,1,0,1,1,10222.4,9210.45,1239.84,0,0,0 -30,11,1,0,1,1,0,9311.94,3982.8,1,0,0 -25,10,1,0,1,1,13520,9319.44,0,0,0,0 -28,11,1,0,1,1,824.389,10033.9,0,0,0,0 -22,10,0,0,0,1,27864.4,10598.7,7094.92,0,0,0 -44,9,1,0,1,1,12260.8,10857.2,12359.3,0,0,0 -21,9,1,0,0,1,31886.4,12357.2,0,0,0,0 -28,11,1,0,0,1,17491.5,13371.3,0,0,0,0 -29,9,0,1,0,1,9594.31,16341.2,16900.3,0,0,0 -25,9,1,0,1,1,24731.6,16946.6,7343.96,0,0,0 -22,10,0,0,1,1,25720.9,23032,5448.8,0,0,0 diff --git a/Production/data/lalonde_obs.csv b/Production/data/lalonde_obs.csv deleted file mode 100644 index b992cf29..00000000 --- a/Production/data/lalonde_obs.csv +++ /dev/null @@ -1,2676 +0,0 @@ -age,education,black,hispanic,married,nodegree,re74,re75,re78,u74,u75,treat,id -37,11,1,0,1,1,0,0,9930.05,1,1,1,1 -22,9,0,1,0,1,0,0,3595.89,1,1,1,2 -30,12,1,0,0,0,0,0,24909.5,1,1,1,3 -27,11,1,0,0,1,0,0,7506.15,1,1,1,4 -33,8,1,0,0,1,0,0,289.79,1,1,1,5 -22,9,1,0,0,1,0,0,4056.49,1,1,1,6 -23,12,1,0,0,0,0,0,0,1,1,1,7 -32,11,1,0,0,1,0,0,8472.16,1,1,1,8 -22,16,1,0,0,0,0,0,2164.02,1,1,1,9 -33,12,0,0,1,0,0,0,12418.1,1,1,1,10 -19,9,1,0,0,1,0,0,8173.91,1,1,1,11 -21,13,1,0,0,0,0,0,17094.6,1,1,1,12 -18,8,1,0,0,1,0,0,0,1,1,1,13 -27,10,1,0,1,1,0,0,18739.9,1,1,1,14 -17,7,1,0,0,1,0,0,3023.88,1,1,1,15 -19,10,1,0,0,1,0,0,3228.5,1,1,1,16 -27,13,1,0,0,0,0,0,14581.9,1,1,1,17 -23,10,1,0,0,1,0,0,7693.4,1,1,1,18 -40,12,1,0,0,0,0,0,10804.3,1,1,1,19 -26,12,1,0,0,0,0,0,10747.4,1,1,1,20 -23,11,1,0,0,1,0,0,0,1,1,1,21 -41,14,0,0,0,0,0,0,5149.5,1,1,1,22 -38,9,0,0,0,1,0,0,6408.95,1,1,1,23 -24,11,1,0,0,1,0,0,1991.4,1,1,1,24 -18,10,1,0,0,1,0,0,11163.2,1,1,1,25 -29,11,1,0,1,1,0,0,9643,1,1,1,26 -25,11,1,0,0,1,0,0,9897.05,1,1,1,27 -27,10,0,1,0,1,0,0,11142.9,1,1,1,28 -17,10,1,0,0,1,0,0,16218,1,1,1,29 -24,11,1,0,0,1,0,0,995.7,1,1,1,30 -17,10,1,0,0,1,0,0,0,1,1,1,31 -48,4,1,0,0,1,0,0,6551.59,1,1,1,32 -25,11,1,0,1,1,0,0,1574.42,1,1,1,33 -20,12,1,0,0,0,0,0,0,1,1,1,34 -25,12,1,0,0,0,0,0,3191.75,1,1,1,35 -42,14,1,0,0,0,0,0,20505.9,1,1,1,36 -25,5,1,0,0,1,0,0,6181.88,1,1,1,37 -23,12,1,0,1,0,0,0,5911.55,1,1,1,38 -46,8,1,0,1,1,0,0,3094.16,1,1,1,39 -24,10,1,0,0,1,0,0,0,1,1,1,40 -21,12,1,0,0,0,0,0,1254.58,1,1,1,41 -19,9,0,0,0,1,0,0,13188.8,1,1,1,42 -17,8,1,0,0,1,0,0,8061.49,1,1,1,43 -18,8,0,1,1,1,0,0,2787.96,1,1,1,44 -20,11,1,0,0,1,0,0,3972.54,1,1,1,45 -25,11,1,0,1,1,0,0,0,1,1,1,46 -17,8,1,0,0,1,0,0,0,1,1,1,47 -17,9,1,0,0,1,0,0,0,1,1,1,48 -25,5,1,0,0,1,0,0,12187.4,1,1,1,49 -23,12,1,0,0,0,0,0,4843.18,1,1,1,50 -28,8,1,0,0,1,0,0,0,1,1,1,51 -31,11,1,0,1,1,0,0,8087.49,1,1,1,52 -18,11,1,0,0,1,0,0,0,1,1,1,53 -25,12,1,0,0,0,0,0,2348.97,1,1,1,54 -30,11,1,0,1,1,0,0,590.782,1,1,1,55 -17,10,1,0,0,1,0,0,0,1,1,1,56 -37,9,1,0,0,1,0,0,1067.51,1,1,1,57 -41,4,1,0,1,1,0,0,7284.99,1,1,1,58 -42,14,1,0,1,0,0,0,13167.5,1,1,1,59 -22,11,0,0,0,1,0,0,1048.43,1,1,1,60 -17,8,1,0,0,1,0,0,0,1,1,1,61 -29,8,1,0,0,1,0,0,1923.94,1,1,1,62 -35,10,1,0,0,1,0,0,4666.24,1,1,1,63 -27,11,1,0,0,1,0,0,549.298,1,1,1,64 -29,4,1,0,0,1,0,0,762.915,1,1,1,65 -28,9,1,0,0,1,0,0,10694.3,1,1,1,66 -27,11,1,0,0,1,0,0,0,1,1,1,67 -23,7,0,0,0,1,0,0,0,1,1,1,68 -45,5,1,0,1,1,0,0,8546.72,1,1,1,69 -29,13,1,0,0,0,0,0,7479.66,1,1,1,70 -27,9,1,0,0,1,0,0,0,1,1,1,71 -46,13,1,0,0,0,0,0,647.205,1,1,1,72 -18,6,1,0,0,1,0,0,0,1,1,1,73 -25,12,1,0,0,0,0,0,11965.8,1,1,1,74 -28,15,1,0,0,0,0,0,9598.54,1,1,1,75 -25,11,0,0,0,1,0,0,18783.4,1,1,1,76 -22,12,1,0,0,0,0,0,18678.1,1,1,1,77 -21,9,1,0,0,1,0,0,0,1,1,1,78 -40,11,1,0,0,1,0,0,23005.6,1,1,1,79 -22,11,1,0,0,1,0,0,6456.7,1,1,1,80 -25,12,1,0,0,0,0,0,0,1,1,1,81 -18,12,1,0,0,0,0,0,2321.11,1,1,1,82 -38,12,0,0,0,0,0,0,4941.85,1,1,1,83 -27,13,1,0,0,0,0,0,0,1,1,1,84 -27,8,1,0,0,1,0,0,0,1,1,1,85 -38,11,1,0,0,1,0,0,0,1,1,1,86 -23,8,0,1,0,1,0,0,3881.28,1,1,1,87 -26,11,1,0,0,1,0,0,17231,1,1,1,88 -21,12,0,0,0,0,0,0,8048.6,1,1,1,89 -25,8,1,0,0,1,0,0,0,1,1,1,90 -31,11,1,0,1,1,0,0,14509.9,1,1,1,91 -17,10,1,0,0,1,0,0,0,1,1,1,92 -25,11,1,0,0,1,0,0,0,1,1,1,93 -21,12,1,0,0,0,0,0,9983.78,1,1,1,94 -44,11,1,0,0,1,0,0,0,1,1,1,95 -25,12,0,0,0,0,0,0,5587.5,1,1,1,96 -18,9,1,0,0,1,0,0,4482.85,1,1,1,97 -42,12,1,0,0,0,0,0,2456.15,1,1,1,98 -25,10,1,0,0,1,0,0,0,1,1,1,99 -31,9,0,1,0,1,0,0,26817.6,1,1,1,100 -24,10,1,0,0,1,0,0,0,1,1,1,101 -26,10,1,0,0,1,0,0,9265.79,1,1,1,102 -25,11,1,0,0,1,0,0,485.23,1,1,1,103 -18,11,1,0,0,1,0,0,4814.63,1,1,1,104 -19,11,1,0,0,1,0,0,7458.11,1,1,1,105 -43,9,1,0,0,1,0,0,0,1,1,1,106 -27,13,1,0,0,0,0,0,34099.3,1,1,1,107 -17,9,1,0,0,1,0,0,1953.27,1,1,1,108 -30,11,1,0,0,1,0,0,0,1,1,1,109 -26,10,1,0,1,1,2028,0,0,0,1,1,110 -20,9,1,0,0,1,6083.99,0,8881.67,0,1,1,111 -17,9,0,1,0,1,445.17,74.3435,6210.67,0,0,1,112 -20,12,1,0,0,0,989.268,165.208,0,0,0,1,113 -18,11,1,0,0,1,858.254,214.564,929.884,0,0,1,114 -27,12,1,0,1,0,3670.87,334.049,0,0,0,1,115 -21,12,0,0,0,0,3670.87,334.049,12558,0,0,1,116 -27,12,1,0,0,0,2143.41,357.95,22163.3,0,0,1,117 -20,12,1,0,0,0,0,377.569,1652.64,1,0,1,118 -19,10,1,0,0,1,0,385.274,8124.72,1,0,1,119 -23,12,1,0,0,0,5506.31,501.074,671.332,0,0,1,120 -29,14,1,0,0,0,0,679.673,17815,1,0,1,121 -18,10,1,0,0,1,0,798.908,9737.15,1,0,1,122 -19,9,1,0,0,1,0,798.908,17685.2,1,0,1,123 -27,13,0,0,1,0,9381.57,853.723,0,0,0,1,124 -18,11,0,0,0,1,3678.23,919.558,4321.71,0,0,1,125 -27,9,1,0,1,1,0,934.445,1773.42,1,0,1,126 -22,12,1,0,0,0,5605.85,936.177,0,0,0,1,127 -23,10,1,0,1,1,0,936.439,11233.3,1,0,1,128 -23,12,0,1,0,0,9385.74,1117.44,559.443,0,0,1,129 -20,11,1,0,0,1,3637.5,1220.84,1085.44,0,0,1,130 -17,9,1,0,0,1,1716.51,1253.44,5445.2,0,0,1,131 -28,11,1,0,0,1,0,1284.08,60307.9,1,0,1,132 -26,11,1,0,1,1,0,1392.85,1460.36,1,0,1,133 -20,11,1,0,0,1,16318.6,1484.99,6943.34,0,0,1,134 -24,11,1,0,1,1,824.389,1666.11,4032.71,0,0,1,135 -31,9,1,0,0,1,0,1698.61,10363.3,1,0,1,136 -23,8,0,0,1,1,0,1713.15,4232.31,1,0,1,137 -18,10,1,0,0,1,2143.41,1784.27,11141.4,0,0,1,138 -29,12,1,0,0,0,10881.9,1817.28,0,0,0,1,139 -26,11,0,0,0,1,0,2226.27,13385.9,1,0,1,140 -24,9,1,0,0,1,9154.7,2288.68,4849.56,0,0,1,141 -25,12,1,0,0,0,14426.8,2409.27,0,0,0,1,142 -24,10,1,0,0,1,4250.4,2421.95,1660.51,0,0,1,143 -46,8,1,0,0,1,3165.66,2594.72,0,0,0,1,144 -31,12,0,0,0,0,0,2611.22,2484.55,1,0,1,145 -19,11,1,0,0,1,2305.03,2615.28,4146.6,0,0,1,146 -19,8,1,0,0,1,0,2657.06,9970.68,1,0,1,147 -27,11,1,0,0,1,2206.94,2666.27,0,0,0,1,148 -26,11,1,0,1,1,0,2754.65,26372.3,1,0,1,149 -20,10,1,0,0,1,5005.73,2777.36,5615.19,0,0,1,150 -28,10,1,0,0,1,0,2836.51,3196.57,1,0,1,151 -24,12,1,0,0,0,13765.8,2842.76,6167.68,0,0,1,152 -19,8,1,0,0,1,2636.35,2937.26,7535.94,0,0,1,153 -23,12,1,0,0,0,6269.34,3039.96,8484.24,0,0,1,154 -42,9,1,0,1,1,0,3058.53,1294.41,1,0,1,155 -25,13,1,0,0,0,12362.9,3090.73,0,0,0,1,156 -18,9,1,0,0,1,0,3287.38,5010.34,1,0,1,157 -21,12,1,0,0,0,6473.68,3332.41,9371.04,0,0,1,158 -27,10,1,0,0,1,1001.15,3550.08,0,0,0,1,159 -21,8,1,0,0,1,989.268,3695.9,4279.61,0,0,1,160 -22,9,1,0,0,1,2192.88,3836.99,3462.56,0,0,1,161 -31,4,1,0,0,1,8517.59,4023.21,7382.55,0,0,1,162 -24,10,1,0,1,1,11703.2,4078.15,0,0,0,1,163 -29,10,1,0,0,1,0,4398.95,0,1,0,1,164 -29,12,1,0,0,0,9748.39,4878.94,10976.5,0,0,1,165 -19,10,0,0,0,1,0,5324.11,13829.6,1,0,1,166 -19,11,0,1,1,1,5424.49,5463.8,6788.46,0,0,1,167 -31,9,1,0,0,1,10717,5517.84,9558.5,0,0,1,168 -22,10,1,0,1,1,1468.35,5588.66,13228.3,0,0,1,169 -21,9,1,0,0,1,6416.47,5749.33,743.667,0,0,1,170 -17,10,1,0,0,1,1291.47,5793.85,5522.79,0,0,1,171 -26,12,1,0,1,0,8408.76,5794.83,1424.94,0,0,1,172 -20,9,0,1,0,1,12260.8,5875.05,1358.64,0,0,1,173 -19,10,1,0,0,1,4121.95,6056.75,0,0,0,1,174 -26,10,1,0,0,1,25929.7,6788.96,672.877,0,0,1,175 -28,11,1,0,0,1,1929.03,6871.86,0,0,0,1,176 -22,12,0,1,1,0,492.231,7055.7,10092.8,0,0,1,177 -33,11,1,0,0,1,0,7867.92,6281.43,1,0,1,178 -22,12,0,0,0,0,6759.99,8455.5,12590.7,0,0,1,179 -29,10,0,1,0,1,0,8853.67,5112.01,1,0,1,180 -33,12,1,0,1,0,20280,10941.4,15952.6,0,0,1,181 -25,14,1,0,1,0,35040.1,11536.6,36647,0,0,1,182 -35,9,1,0,1,1,13602.4,13830.6,12804,0,0,1,183 -35,8,1,0,1,1,13732.1,17976.2,3786.63,0,0,1,184 -33,11,1,0,1,1,14660.7,25142.2,4181.94,0,0,1,185 -47,12,0,0,0,0,0,0,0,1,1,0,11000 -50,12,1,0,1,0,0,0,0,1,1,0,2491 -44,12,0,0,0,0,0,0,0,1,1,0,3100 -28,12,1,0,1,0,0,0,0,1,1,0,4100 -54,12,0,0,1,0,0,0,0,1,1,0,5100 -55,12,0,1,1,0,0,0,0,1,1,0,6100 -47,12,0,0,1,0,0,0,0,1,1,0,7100 -25,12,1,0,0,0,0,0,0,1,1,0,8100 -44,12,0,0,1,0,0,0,0,1,1,0,9100 -50,12,1,0,1,0,0,0,0,1,1,0,10100 -23,12,1,0,0,0,0,0,4728.72509765625,1,1,0,11100 -49,14,0,0,1,0,0,0,0,1,1,0,12100 -55,14,0,0,1,0,0,0,0,1,1,0,13100 -34,14,1,0,1,0,0,0,0,1,1,0,14100 -34,16,0,0,1,0,0,0,11821.8134765625,1,1,0,15100 -55,13,0,1,1,0,0,0,0,1,1,0,16100 -52,12,0,0,1,0,0,0,0,1,1,0,17100 -52,15,0,0,1,0,0,0,0,1,1,0,18100 -30,16,0,0,1,0,0,0,0,1,1,0,19100 -21,12,0,0,0,0,0,0,0,1,1,0,20100 -30,17,0,0,0,0,0,0,0,1,1,0,21100 -44,12,0,0,1,0,0,0,0,1,1,0,22100 -46,12,0,0,0,0,0,0,0,1,1,0,23100 -53,17,0,0,1,0,0,0,0,1,1,0,2492 -26,16,0,0,0,0,0,0,9014.1318359375,1,1,0,2510 -49,12,0,0,1,0,0,0,13299.5390625,1,1,0,2610 -39,15,0,0,1,0,0,0,1921.0445556640625,1,1,0,2710 -26,17,0,0,1,0,0,0,11821.8134765625,1,1,0,2810 -32,16,0,0,1,0,0,0,0,1,1,0,2910 -34,12,0,0,1,0,0,0,0,1,1,0,3010 -31,14,0,0,1,0,0,0,0,1,1,0,3110 -39,17,0,1,1,0,0,0,8866.359375,1,1,0,3210 -40,17,0,0,1,0,0,0,0,1,1,0,3310 -31,12,0,0,1,0,0,0,0,1,1,0,3410 -27,13,0,0,1,0,0,0,28076.8046875,1,1,0,3510 -48,12,0,0,1,0,0,0,0,1,1,0,3610 -41,13,0,0,1,0,0,0,0,1,1,0,3710 -26,14,0,0,0,0,0,0,0,1,1,0,3810 -50,17,0,0,0,0,0,0,0,1,1,0,3910 -48,12,0,0,1,0,0,0,12930.1083984375,1,1,0,4010 -45,16,0,0,1,0,0,0,0,1,1,0,4110 -37,13,0,0,1,0,0,0,0,1,1,0,4210 -33,12,0,0,1,0,0,0,0,1,1,0,4310 -31,12,0,0,1,0,0,0,0,1,1,0,4410 -36,12,1,0,1,0,0,0,17732.71875,1,1,0,4510 -44,13,0,0,1,0,0,0,0,1,1,0,4610 -28,17,0,0,1,0,0,0,0,1,1,0,4710 -30,17,0,0,1,0,0,0,0,1,1,0,4810 -42,16,0,0,1,0,0,0,0,1,1,0,4910 -30,12,0,0,1,0,0,0,0,1,1,0,5010 -27,16,0,0,1,0,0,0,0,1,1,0,5110 -37,12,0,0,1,0,0,0,0,1,1,0,5210 -37,12,0,0,1,0,0,0,0,1,1,0,5310 -45,12,0,0,1,0,0,0,22165.8984375,1,1,0,5410 -35,16,0,0,1,0,0,0,0,1,1,0,5510 -37,17,0,0,1,0,0,0,66497.6953125,1,1,0,5610 -27,17,0,0,1,0,0,0,0,1,1,0,5710 -47,14,0,0,1,0,0,0,0,1,1,0,5810 -48,12,0,0,1,0,0,0,0,1,1,0,5910 -42,12,0,0,1,0,0,0,0,1,1,0,6010 -43,12,0,0,1,0,0,0,0,1,1,0,6110 -46,12,0,0,1,0,0,0,0,1,1,0,6210 -46,12,0,0,1,0,0,0,0,1,1,0,6310 -46,12,0,0,1,0,0,0,0,1,1,0,6410 -29,16,0,0,1,0,0,0,8396.4423828125,1,1,0,6510 -39,13,0,0,1,0,0,0,0,1,1,0,6610 -32,12,0,0,1,0,0,0,0,1,1,0,6710 -48,16,0,0,1,0,0,0,0,1,1,0,6810 -48,16,0,0,1,0,0,0,0,1,1,0,6910 -41,13,0,0,1,0,0,0,0,1,1,0,7010 -42,13,0,0,1,0,0,0,0,1,1,0,7110 -42,13,0,0,1,0,0,0,0,1,1,0,7210 -42,13,0,0,1,0,0,0,0,1,1,0,7310 -54,13,0,0,1,0,0,0,0,1,1,0,7410 -29,14,0,0,1,0,0,0,0,1,1,0,7510 -54,12,0,0,1,0,0,0,0,1,1,0,7610 -54,12,0,0,1,0,0,0,0,1,1,0,7710 -26,14,0,0,1,0,0,0,0,1,1,0,7810 -43,17,0,0,1,0,0,0,36943.1640625,1,1,0,7910 -54,12,0,0,1,0,0,0,0,1,1,0,8010 -37,12,0,0,1,0,0,0,0,1,1,0,8110 -54,16,0,0,1,0,0,0,0,1,1,0,8210 -48,17,0,0,1,0,0,0,0,1,1,0,8310 -44,12,0,0,1,0,0,0,0,1,1,0,8410 -54,12,0,0,1,0,0,0,0,1,1,0,8510 -38,12,0,0,1,0,0,0,0,1,1,0,8610 -37,13,0,0,1,0,0,0,0,1,1,0,8710 -27,17,0,0,1,0,0,0,0,1,1,0,8810 -51,12,0,0,1,0,0,0,0,1,1,0,8910 -39,12,0,0,1,0,0,0,0,1,1,0,9010 -55,14,0,0,1,0,0,0,0,1,1,0,9110 -54,13,0,0,1,0,0,0,0,1,1,0,9210 -54,13,0,0,1,0,0,0,0,1,1,0,9310 -34,12,0,0,1,0,0,0,0,1,1,0,9410 -50,14,0,0,1,0,0,0,0,1,1,0,9510 -50,12,0,0,1,0,0,0,0,1,1,0,9610 -21,14,0,1,0,0,0,71.61289978027344,3657.373291015625,1,0,0,9710 -26,12,0,0,1,0,0,71.61289978027344,0,1,0,0,9810 -21,13,0,0,0,0,0,692.8548583984375,2659.90771484375,1,0,0,9910 -23,16,0,0,1,0,0,1521.774169921875,0,1,0,0,10010 -21,15,0,0,0,0,0,3222.58056640625,14777.265625,1,0,0,10110 -23,14,0,0,0,0,0,3401.61279296875,5319.81591796875,1,0,0,10210 -27,16,0,0,1,0,0,4833.87109375,0,1,0,0,10310 -25,12,0,0,1,0,0,5729.0322265625,26599.078125,1,0,0,10410 -27,17,0,0,0,0,0,6087.0966796875,7388.6328125,1,0,0,10510 -55,12,0,0,1,0,0,6266.12890625,10344.0859375,1,0,0,10610 -20,12,0,0,1,0,0,7161.29052734375,0,1,0,0,10710 -18,12,0,0,1,0,0,8056.45166015625,19210.4453125,1,0,0,10810 -27,12,0,0,1,0,0,8235.484375,20688.171875,1,0,0,10910 -28,16,0,0,1,0,0,8951.61328125,36943.1640625,1,0,0,11010 -36,12,1,0,1,0,0,8951.61328125,11821.8134765625,1,0,0,11110 -33,13,1,0,1,0,0,10741.9345703125,20688.171875,1,0,0,11210 -36,12,0,0,1,0,0,10741.9345703125,0,1,0,0,11310 -27,13,0,0,1,0,0,16112.9033203125,29554.53125,1,0,0,11410 -45,17,0,0,1,0,0,16112.9033203125,17732.71875,1,0,0,11510 -45,17,0,0,1,0,0,16112.9033203125,17732.71875,1,0,0,11610 -45,17,0,0,1,0,0,16112.9033203125,17732.71875,1,0,0,11710 -31,12,0,0,1,0,0,17903.2265625,0,1,0,0,11810 -34,12,0,0,1,0,0,17903.2265625,63542.2421875,1,0,0,11910 -34,12,0,0,1,0,0,17903.2265625,63542.2421875,1,0,0,12010 -47,14,0,0,1,0,0,17903.2265625,22165.8984375,1,0,0,12110 -35,16,0,0,1,0,0,19693.548828125,17732.71875,1,0,0,12210 -43,17,0,0,1,0,0,21161.61328125,29554.53125,1,0,0,12310 -25,12,1,0,1,0,0,21483.87109375,1220.6021728515625,1,0,0,12410 -29,15,0,0,0,0,0,21483.87109375,22313.671875,1,0,0,12510 -31,12,0,0,1,0,0,21483.87109375,20688.171875,1,0,0,12610 -52,12,0,0,1,0,0,21483.87109375,22165.8984375,1,0,0,12710 -22,16,0,0,0,0,0,22558.064453125,32509.984375,1,0,0,12810 -53,15,0,0,1,0,0,24169.35546875,28076.8046875,1,0,0,12910 -29,17,0,0,1,0,0,25959.677734375,36898.83203125,1,0,0,13010 -31,13,0,0,1,0,0,25959.677734375,39898.6171875,1,0,0,13110 -35,12,0,0,1,0,0,26138.7109375,29554.53125,1,0,0,13210 -29,16,0,0,1,0,0,26854.83984375,23643.625,1,0,0,13310 -39,12,0,0,1,0,0,28645.16015625,31032.2578125,1,0,0,13410 -37,14,0,0,1,0,0,32225.806640625,0,1,0,0,13510 -30,14,0,0,1,0,0,32225.806640625,22165.8984375,1,0,0,13610 -43,17,0,0,1,0,0,42251.61328125,41376.34375,1,0,0,13710 -32,17,0,0,1,0,0,46548.38671875,39898.6171875,1,0,0,13810 -44,12,0,0,1,0,0,71612.90625,81274.9609375,1,0,0,13910 -32,16,0,0,1,0,577.98370361328125,6910.64501953125,18609.01171875,0,0,0,14010 -43,12,1,0,1,0,715.13238525390625,1879.8387451171875,5910.90625,0,0,0,14110 -24,12,1,0,0,0,783.70672607421875,0,10344.0859375,0,1,0,14210 -22,13,0,0,0,0,783.70672607421875,0,2305.25341796875,0,1,0,14310 -35,15,0,0,1,0,979.6334228515625,537.09674072265625,0,0,0,0,14410 -26,15,0,0,0,0,979.6334228515625,1879.8387451171875,3250.99853515625,0,0,0,14510 -29,17,0,0,1,0,979.6334228515625,8951.61328125,0,0,0,0,14610 -23,12,1,0,0,0,1077.5966796875,3222.58056640625,5910.90625,0,0,0,14710 -19,12,0,0,1,0,1154.008056640625,8593.548828125,26599.078125,0,0,0,14810 -48,16,0,0,1,0,1240.2159423828125,1466.274169921875,1152.626708984375,0,0,0,14910 -48,16,0,0,1,0,1240.2159423828125,1466.274169921875,1152.626708984375,0,0,0,15010 -22,12,1,0,1,0,1269.6048583984375,0,0,0,1,0,15110 -20,12,1,0,0,0,1367.5682373046875,12532.2578125,2955.453125,0,0,0,15210 -24,17,0,0,1,0,1371.48681640625,0,24825.806640625,0,1,0,15310 -27,16,0,0,1,0,1469.4500732421875,1253.225830078125,4363.7265625,0,0,0,15410 -21,14,0,0,0,0,1506.6761474609375,2685.48388671875,11082.94921875,0,0,0,15510 -53,13,0,0,1,0,1567.4134521484375,3938.709716796875,4728.72509765625,0,0,0,15610 -53,13,0,0,1,0,1567.4134521484375,3938.709716796875,4728.72509765625,0,0,0,15710 -53,16,0,0,1,0,1665.3768310546875,0,2955.453125,0,1,0,15810 -22,15,0,0,1,0,1763.340087890625,5370.9677734375,22165.8984375,0,0,0,15910 -21,15,0,0,0,0,1763.340087890625,9667.7421875,4137.63427734375,0,0,0,16010 -30,12,0,0,1,0,1959.266845703125,1790.3226318359375,1477.7265625,0,0,0,16110 -21,12,1,0,0,0,1959.266845703125,5460.48388671875,1152.626708984375,0,0,0,16210 -27,16,0,0,1,0,1959.266845703125,17545.16015625,21427.03515625,0,0,0,16310 -22,15,0,0,0,0,1967.1038818359375,2864.51611328125,5024.2705078125,0,0,0,16410 -22,12,1,0,1,0,2006.2891845703125,2470.645263671875,0,0,0,0,16510 -23,13,0,0,1,0,2155.193603515625,5370.9677734375,11378.4951171875,0,0,0,16610 -33,12,0,0,1,0,2351.1201171875,0,2770.7373046875,0,1,0,16710 -24,13,0,0,0,0,2351.1201171875,3127.693603515625,14777.265625,0,0,0,16810 -20,12,1,0,0,0,2351.1201171875,4475.806640625,17732.71875,0,0,0,16910 -22,16,0,0,0,0,2351.1201171875,23274.193359375,25860.21484375,0,0,0,17010 -19,12,0,0,1,0,2547.046875,10741.9345703125,0,0,0,0,17110 -22,15,0,0,1,0,2547.046875,17187.09765625,25860.21484375,0,0,0,17210 -43,14,0,0,1,0,2645.01025390625,0,6992.60205078125,0,1,0,17310 -39,12,0,0,1,0,2742.973388671875,7161.29052734375,11821.8134765625,0,0,0,17410 -28,12,1,0,0,0,2938.900146484375,2864.51611328125,0,0,0,0,17510 -19,14,0,0,0,0,2938.900146484375,3222.58056640625,0,0,0,0,17610 -26,17,0,0,1,0,2938.900146484375,12532.2578125,23643.625,0,0,0,17710 -18,12,0,0,1,0,3134.826904296875,11100,20688.171875,0,0,0,17810 -23,15,0,0,1,0,3320.957275390625,2506.45166015625,9974.654296875,0,0,0,17910 -24,12,1,0,0,0,3330.753662109375,4654.8388671875,11821.8134765625,0,0,0,18010 -27,12,0,0,1,0,3526.68017578125,0,5910.90625,0,1,0,18110 -29,17,0,0,1,0,3526.68017578125,15217.7421875,24382.48828125,0,0,0,18210 -22,12,1,0,0,0,3579.580322265625,17133.38671875,11821.8134765625,0,0,0,18310 -27,12,0,0,1,0,3722.60693359375,254.22581481933594,1090.562255859375,0,0,0,18410 -27,15,0,0,1,0,3722.60693359375,4654.8388671875,19210.4453125,0,0,0,18510 -20,12,1,0,0,0,3730.444091796875,8951.61328125,13299.5390625,0,0,0,186 -27,12,1,0,1,0,3918.53369140625,1994.41943359375,17732.71875,0,0,0,187 -23,12,1,0,1,0,3918.53369140625,2864.51611328125,8866.359375,0,0,0,188 -23,12,1,0,1,0,3918.53369140625,11637.0966796875,9752.9951171875,0,0,0,189 -22,12,0,0,1,0,3918.53369140625,15396.7744140625,39898.6171875,0,0,0,190 -31,12,1,0,1,0,3918.53369140625,18440.322265625,24973.578125,0,0,0,191 -26,17,0,0,0,0,4173.23828125,11637.0966796875,9457.4501953125,0,0,0,192 -20,12,0,0,1,0,4310.38720703125,0,4433.1796875,0,1,0,193 -30,17,0,0,1,0,4310.38720703125,4296.7744140625,22476.220703125,0,0,0,194 -42,16,0,0,0,0,4398.55419921875,17903.2265625,16254.9921875,0,0,0,195 -21,14,0,0,1,0,4506.3134765625,9309.677734375,23052.53515625,0,0,0,196 -25,16,0,0,1,0,4604.27685546875,2954.0322265625,0,0,0,0,197 -27,15,0,0,1,0,4702.240234375,0,0,0,1,0,198 -26,17,0,0,1,0,4702.240234375,19693.548828125,26599.078125,0,0,0,199 -29,16,0,0,1,0,4800.20361328125,17187.09765625,23643.625,0,0,0,200 -20,12,0,0,0,0,4811.95947265625,716.1290283203125,0,0,0,0,201 -52,12,0,0,1,0,4898.1669921875,0,0,0,1,0,202 -23,17,0,0,0,0,4898.1669921875,2148.38720703125,33987.7109375,0,0,0,203 -21,14,0,0,1,0,4898.1669921875,7161.29052734375,17141.62890625,0,0,0,204 -24,16,0,0,0,0,4898.1669921875,8951.61328125,17732.71875,0,0,0,205 -30,17,0,0,1,0,4898.1669921875,12084.6767578125,5172.04296875,0,0,0,206 -25,17,0,0,0,0,4996.13037109375,17414.46875,5030.18115234375,0,0,0,207 -21,12,0,0,1,0,5094.09375,6803.2255859375,7388.6328125,0,0,0,208 -28,12,0,0,1,0,5094.09375,10741.9345703125,9014.1318359375,0,0,0,209 -20,12,0,0,1,0,5182.2607421875,6266.12890625,15244.2265625,0,0,0,210 -36,16,0,0,0,0,5290.0205078125,4833.87109375,5319.81591796875,0,0,0,211 -19,12,1,0,0,0,5387.98388671875,8056.45166015625,12117.3583984375,0,0,0,212 -21,12,1,0,1,0,5868.00390625,3043.54833984375,10048.541015625,0,0,0,213 -47,12,0,0,1,0,5868.00390625,9513.7744140625,5319.81591796875,0,0,0,214 -24,16,0,0,1,0,5877.80029296875,4833.87109375,33987.7109375,0,0,0,215 -24,12,1,0,1,0,5877.80029296875,8951.61328125,17732.71875,0,0,0,216 -25,17,0,0,1,0,5877.80029296875,10562.9033203125,30101.2890625,0,0,0,217 -21,16,0,0,1,0,5877.80029296875,10562.9033203125,16993.85546875,0,0,0,218 -31,12,1,0,1,0,5877.80029296875,11064.1943359375,15959.447265625,0,0,0,219 -26,14,0,0,1,0,5877.80029296875,13427.4189453125,31032.2578125,0,0,0,220 -22,12,1,0,0,0,5891.51513671875,10367.7578125,5763.1337890625,0,0,0,221 -20,13,1,0,0,0,5897.39306640625,12532.2578125,14777.265625,0,0,0,222 -20,13,0,1,1,0,6073.72705078125,10025.8056640625,27337.94140625,0,0,0,223 -27,14,0,0,1,0,6269.65380859375,0,26007.98828125,0,1,0,224 -26,12,0,0,0,0,6269.65380859375,11637.0966796875,10344.0859375,0,0,0,225 -23,17,0,0,1,0,6367.6171875,5370.9677734375,0,0,0,0,226 -23,12,1,0,0,0,6494.96923828125,12532.2578125,14186.1748046875,0,0,0,227 -22,12,1,0,0,0,6583.13671875,4475.806640625,0,0,0,0,228 -21,12,1,0,0,0,6661.50732421875,11458.0654296875,11208.5556640625,0,0,0,229 -21,12,0,0,1,0,6661.50732421875,12532.2578125,25121.3515625,0,0,0,230 -28,14,0,0,1,0,6739.8779296875,7877.41943359375,13742.857421875,0,0,0,231 -27,12,1,0,1,0,6855.474609375,0,8275.2685546875,0,1,0,232 -25,14,0,0,0,0,6857.43359375,1790.3226318359375,0,0,0,0,233 -30,12,0,0,1,0,6857.43359375,3222.58056640625,3250.99853515625,0,0,0,234 -27,13,1,0,1,0,6857.43359375,4096.25830078125,24514.005859375,0,0,0,235 -22,13,0,0,0,0,6857.43359375,6266.12890625,17363.287109375,0,0,0,236 -23,16,0,0,1,0,6857.43359375,14143.5478515625,22165.8984375,0,0,0,237 -24,12,1,0,1,0,6857.43359375,14322.5810546875,26599.078125,0,0,0,238 -19,13,0,0,0,0,6857.43359375,15217.7421875,17732.71875,0,0,0,239 -21,14,0,0,1,0,6974.98974609375,11407.9345703125,17141.62890625,0,0,0,240 -29,17,0,0,1,0,7053.3603515625,7161.29052734375,8866.359375,0,0,0,241 -27,16,0,0,1,0,7053.3603515625,11637.0966796875,25121.3515625,0,0,0,242 -28,15,0,0,1,0,7249.287109375,15217.7421875,9161.9052734375,0,0,0,243 -26,12,0,0,1,0,7406.0283203125,0,2955.453125,0,1,0,244 -54,12,0,0,1,0,7445.2138671875,0,0,0,1,0,245 -28,15,1,0,0,0,7445.2138671875,0,12708.44921875,0,1,0,246 -27,15,0,0,1,0,7445.2138671875,10741.9345703125,18471.58203125,0,0,0,247 -26,13,0,0,0,0,7449.13232421875,5729.0322265625,9605.22265625,0,0,0,248 -21,12,0,0,1,0,7523.58447265625,7934.70947265625,0,0,0,0,249 -53,14,1,0,1,0,7641.140625,8421.677734375,8127.49609375,0,0,0,250 -21,13,0,0,1,0,7688.1630859375,12743.515625,11082.94921875,0,0,0,251 -22,13,0,0,0,0,7739.10400390625,3759.677490234375,16254.9921875,0,0,0,252 -27,16,0,0,0,0,7837.0673828125,0,0,0,1,0,253 -37,15,0,1,1,0,7837.0673828125,179.03225708007812,11821.8134765625,0,0,0,254 -33,13,0,0,0,0,7837.0673828125,3580.645263671875,16254.9921875,0,0,0,255 -19,12,1,0,0,0,7837.0673828125,3759.677490234375,3694.31640625,0,0,0,256 -28,12,0,0,1,0,7837.0673828125,4475.806640625,15663.90234375,0,0,0,257 -32,12,1,0,1,0,7837.0673828125,5370.9677734375,8866.359375,0,0,0,258 -24,12,0,0,0,0,7837.0673828125,5370.9677734375,5910.90625,0,0,0,259 -22,12,0,0,0,0,7837.0673828125,7497.87109375,17732.71875,0,0,0,260 -20,12,1,0,1,0,7837.0673828125,8951.61328125,20688.171875,0,0,0,261 -23,12,0,0,1,0,7837.0673828125,8951.61328125,12058.2490234375,0,0,0,262 -27,12,1,0,1,0,7837.0673828125,8951.61328125,2210.678955078125,0,0,0,263 -23,12,1,0,1,0,7837.0673828125,12532.2578125,21870.353515625,0,0,0,264 -19,12,0,1,1,0,7837.0673828125,12532.2578125,13299.5390625,0,0,0,265 -27,14,0,0,0,0,7837.0673828125,14322.5810546875,16254.9921875,0,0,0,266 -22,16,0,0,1,0,7837.0673828125,16112.9033203125,16254.9921875,0,0,0,267 -42,12,0,0,1,0,7837.0673828125,16112.9033203125,15516.12890625,0,0,0,268 -20,13,0,0,0,0,7837.0673828125,17491.451171875,2216.58984375,0,0,0,269 -29,13,0,0,0,0,7958.5419921875,0,0,0,1,0,270 -23,12,1,0,1,0,7993.80859375,13427.4189453125,4433.1796875,0,0,0,271 -19,12,0,0,1,0,8054.5458984375,9309.677734375,11963.673828125,0,0,0,272 -21,12,1,0,1,0,8150.5498046875,13092.62890625,10583.4775390625,0,0,0,273 -26,12,0,0,1,0,8228.9208984375,13606.4521484375,11969.5849609375,0,0,0,274 -21,16,0,0,0,0,8228.9208984375,22379.03125,27337.94140625,0,0,0,275 -24,12,1,0,1,0,8275.943359375,15416.4677734375,8335.85546875,0,0,0,276 -29,12,0,0,1,0,8389.580078125,5908.064453125,14481.7197265625,0,0,0,277 -26,12,1,0,1,0,8616.85546875,8593.548828125,10344.0859375,0,0,0,278 -23,14,1,0,1,0,8675.6337890625,10398.1943359375,13003.994140625,0,0,0,279 -25,12,0,0,0,0,8683.470703125,9130.6455078125,15811.673828125,0,0,0,280 -21,12,0,0,1,0,8816.7001953125,5729.0322265625,18096.240234375,0,0,0,281 -25,12,1,0,0,0,8816.7001953125,6266.12890625,10344.0859375,0,0,0,282 -22,12,0,0,1,0,8816.7001953125,9939.87109375,15486.5751953125,0,0,0,283 -22,12,0,0,1,0,8816.7001953125,10741.9345703125,19653.763671875,0,0,0,284 -23,12,1,0,1,0,8816.7001953125,12174.1943359375,18471.58203125,0,0,0,285 -18,12,0,0,0,0,8816.7001953125,14322.5810546875,22165.8984375,0,0,0,286 -27,12,1,0,0,0,8816.7001953125,14322.5810546875,19210.4453125,0,0,0,287 -21,12,1,0,0,0,8816.7001953125,14859.6767578125,5578.41796875,0,0,0,288 -25,12,0,0,1,0,8816.7001953125,16112.9033203125,26599.078125,0,0,0,289 -21,13,0,0,1,0,8816.7001953125,17903.2265625,28224.578125,0,0,0,290 -27,12,0,0,1,0,8816.7001953125,44758.06640625,0,0,0,0,291 -23,12,0,0,1,0,8840.2119140625,7161.29052734375,10416.4951171875,0,0,0,292 -21,12,0,0,1,0,8867.6416015625,14995.7421875,17732.71875,0,0,0,293 -23,14,1,0,1,0,8934.2568359375,12532.2578125,8866.359375,0,0,0,294 -23,16,1,0,0,0,9012.626953125,16490.66015625,19210.4453125,0,0,0,295 -31,17,0,0,1,0,9012.626953125,29465.12890625,39817.34375,0,0,0,296 -27,12,1,0,1,0,9067.486328125,5370.9677734375,6649.76953125,0,0,0,297 -21,12,1,0,1,0,9169.3681640625,7161.29052734375,7388.6328125,0,0,0,298 -23,12,1,0,1,0,9169.3681640625,8271.2900390625,10403.1953125,0,0,0,299 -19,12,0,0,1,0,9208.5537109375,5550,11526.2666015625,0,0,0,300 -46,12,0,0,1,0,9284.9658203125,8504.0322265625,10376.595703125,0,0,0,301 -24,12,0,0,1,0,9371.1728515625,2864.51611328125,2216.58984375,0,0,0,302 -20,13,0,1,0,0,9404.48046875,0,8275.2685546875,0,1,0,303 -24,17,0,0,1,0,9404.48046875,5370.9677734375,22904.76171875,0,0,0,304 -23,12,0,0,1,0,9404.48046875,9130.6455078125,11821.8134765625,0,0,0,305 -34,12,0,0,1,0,9404.48046875,9166.451171875,23475.1640625,0,0,0,306 -35,12,0,0,1,0,9404.48046875,9313.2578125,11821.8134765625,0,0,0,307 -23,12,0,0,0,0,9404.48046875,11834.0322265625,16846.08203125,0,0,0,308 -21,14,1,0,0,0,9420.1552734375,5370.9677734375,9900.767578125,0,0,0,309 -21,12,0,1,1,0,9496.56640625,8772.5810546875,10512.546875,0,0,0,310 -26,12,0,0,1,0,9561.2216796875,0,13299.5390625,0,1,0,311 -23,13,0,0,1,0,9698.37109375,8593.548828125,23643.625,0,0,0,312 -27,12,0,1,1,0,9698.37109375,11279.0322265625,14038.40234375,0,0,0,313 -50,12,0,1,1,0,9788.4970703125,9846.7744140625,13299.5390625,0,0,0,314 -27,12,1,0,1,0,9796.333984375,0,11821.8134765625,0,1,0,315 -25,12,0,0,1,0,9796.333984375,2685.48388671875,25121.3515625,0,0,0,316 -21,12,1,0,1,0,9796.333984375,4296.7744140625,14777.265625,0,0,0,317 -21,13,0,0,1,0,9796.333984375,8593.548828125,28787.591796875,0,0,0,318 -33,12,1,0,0,0,9796.333984375,8951.61328125,0,0,0,0,319 -19,12,0,0,1,0,9796.333984375,9846.7744140625,20688.171875,0,0,0,320 -20,12,0,0,1,0,9796.333984375,10204.8388671875,29258.986328125,0,0,0,321 -22,12,1,0,1,0,9796.333984375,10741.9345703125,11162.7470703125,0,0,0,322 -32,12,0,0,1,0,9796.333984375,11458.0654296875,11821.8134765625,0,0,0,323 -24,13,0,0,1,0,9796.333984375,11458.0654296875,11526.2666015625,0,0,0,324 -29,12,1,0,1,0,9796.333984375,12532.2578125,19210.4453125,0,0,0,325 -23,12,1,0,1,0,9796.333984375,12532.2578125,11821.8134765625,0,0,0,326 -26,14,0,0,1,0,9796.333984375,13427.4189453125,20688.171875,0,0,0,327 -20,12,0,0,1,0,9796.333984375,13427.4189453125,10713.517578125,0,0,0,328 -27,12,1,0,1,0,9796.333984375,14322.5810546875,11821.8134765625,0,0,0,329 -24,12,1,0,1,0,9796.333984375,14322.5810546875,33987.7109375,0,0,0,330 -24,17,0,0,0,0,9796.333984375,16112.9033203125,36943.1640625,0,0,0,331 -21,13,0,0,0,0,9796.333984375,16112.9033203125,20688.171875,0,0,0,332 -25,12,1,0,1,0,9796.333984375,21483.87109375,6649.76953125,0,0,0,333 -30,12,1,0,1,0,9796.333984375,25064.515625,29554.53125,0,0,0,334 -26,12,1,0,0,0,9913.8896484375,10741.9345703125,15619.5703125,0,0,0,335 -22,12,0,0,0,0,9951.1162109375,14322.5810546875,14777.265625,0,0,0,336 -47,12,0,0,1,0,9968.7490234375,10523.515625,11283.919921875,0,0,0,337 -22,12,0,0,0,0,9992.2607421875,15754.8388671875,19949.30859375,0,0,0,338 -31,12,1,0,1,0,10188.1865234375,8951.61328125,9605.22265625,0,0,0,339 -35,12,0,0,1,0,10188.1865234375,9309.677734375,11821.8134765625,0,0,0,340 -49,12,0,0,1,0,10231.291015625,11082.0966796875,6537.46240234375,0,0,0,341 -25,13,1,0,0,0,10246.96484375,15396.7744140625,12486.7900390625,0,0,0,342 -23,12,0,0,1,0,10290.0693359375,10562.9033203125,9221.013671875,0,0,0,343 -25,17,0,0,1,0,10384.1142578125,22004.85546875,49429.953125,0,0,0,344 -23,16,0,0,1,0,10384.1142578125,26854.83984375,11821.8134765625,0,0,0,345 -34,17,0,0,0,0,10580.041015625,7161.29052734375,5910.90625,0,0,0,346 -21,12,0,0,1,0,10580.041015625,8056.45166015625,12117.3583984375,0,0,0,347 -27,12,1,0,0,0,10623.14453125,3222.58056640625,8866.359375,0,0,0,348 -23,12,0,0,1,0,10775.966796875,5370.9677734375,11821.8134765625,0,0,0,349 -23,12,0,0,1,0,10775.966796875,7161.29052734375,16993.85546875,0,0,0,350 -32,17,0,0,0,0,10775.966796875,7161.29052734375,0,0,0,0,351 -27,12,1,0,1,0,10775.966796875,8951.61328125,7536.4052734375,0,0,0,352 -24,12,1,0,0,0,10775.966796875,9309.677734375,8275.2685546875,0,0,0,353 -34,12,0,0,1,0,10775.966796875,11637.0966796875,14186.1748046875,0,0,0,354 -29,12,0,0,1,0,10775.966796875,12532.2578125,25860.21484375,0,0,0,355 -28,14,0,0,1,0,10775.966796875,13427.4189453125,0,0,0,0,356 -18,12,0,0,0,0,10775.966796875,14322.5810546875,21427.03515625,0,0,0,357 -20,12,1,0,0,0,10775.966796875,16372.5,29554.53125,0,0,0,358 -25,13,0,0,1,0,10775.966796875,16739.515625,18966.62109375,0,0,0,359 -23,12,1,0,1,0,10775.966796875,20481.2890625,29391.982421875,0,0,0,360 -26,17,0,0,1,0,10775.966796875,29182.2578125,35465.4375,0,0,0,361 -24,12,0,0,0,0,10873.9306640625,15754.8388671875,20132.546875,0,0,0,362 -23,12,0,0,1,0,10971.8935546875,10204.8388671875,31032.2578125,0,0,0,363 -23,16,0,0,0,0,10971.8935546875,18798.38671875,20924.607421875,0,0,0,364 -26,12,1,0,1,0,11167.8212890625,1074.1934814453125,8866.359375,0,0,0,365 -46,12,0,0,1,0,11167.8212890625,7161.29052734375,17732.71875,0,0,0,366 -23,12,1,0,1,0,11167.8212890625,7812.9677734375,14777.265625,0,0,0,367 -41,12,0,0,1,0,11167.8212890625,10741.9345703125,12412.9033203125,0,0,0,368 -19,12,0,0,1,0,11201.1279296875,14143.5478515625,24338.15625,0,0,0,369 -29,12,0,0,1,0,11259.90625,9041.12890625,26599.078125,0,0,0,370 -24,12,1,0,0,0,11285.376953125,13069.35546875,10344.0859375,0,0,0,371 -23,12,1,0,0,0,11328.4814453125,2685.48388671875,29216.1328125,0,0,0,372 -22,12,0,0,1,0,11363.7470703125,4654.8388671875,13299.5390625,0,0,0,373 -21,12,0,0,0,0,11363.7470703125,9667.7421875,13299.5390625,0,0,0,374 -27,12,0,0,1,0,11363.7470703125,12532.2578125,4137.63427734375,0,0,0,375 -37,12,0,0,1,0,11430.36328125,11372.12890625,8866.359375,0,0,0,376 -44,12,0,0,1,0,11559.673828125,7340.32275390625,27781.259765625,0,0,0,377 -38,16,0,0,1,0,11559.673828125,7877.41943359375,17732.71875,0,0,0,378 -34,12,0,0,1,0,11755.6005859375,0,11821.8134765625,0,1,0,379 -49,12,0,0,0,0,11755.6005859375,0,0,0,1,0,380 -23,12,0,0,1,0,11755.6005859375,0,17732.71875,0,1,0,381 -28,14,1,0,1,0,11755.6005859375,0,25874.9921875,0,1,0,382 -43,12,0,0,1,0,11755.6005859375,0,295.5453186035156,0,1,0,383 -28,16,0,0,0,0,11755.6005859375,6445.1611328125,0,0,0,0,384 -29,12,1,0,1,0,11755.6005859375,9846.7744140625,20688.171875,0,0,0,385 -53,12,0,0,1,0,11755.6005859375,9893.322265625,5172.04296875,0,0,0,386 -21,12,0,0,1,0,11755.6005859375,10204.8388671875,12560.67578125,0,0,0,387 -24,13,1,0,1,0,11755.6005859375,10741.9345703125,31097.27734375,0,0,0,388 -21,12,0,0,1,0,11755.6005859375,10741.9345703125,6649.76953125,0,0,0,389 -24,12,0,0,1,0,11755.6005859375,11074.9345703125,13742.857421875,0,0,0,390 -21,12,0,0,0,0,11755.6005859375,11637.0966796875,10048.541015625,0,0,0,391 -23,14,0,0,1,0,11755.6005859375,11637.0966796875,25121.3515625,0,0,0,392 -28,12,0,0,1,0,11755.6005859375,12532.2578125,0,0,0,0,393 -28,12,0,0,1,0,11755.6005859375,12532.2578125,0,0,0,0,394 -25,17,0,0,1,0,11755.6005859375,12621.7744140625,28963.44140625,0,0,0,395 -23,13,0,0,1,0,11755.6005859375,13427.4189453125,16254.9921875,0,0,0,396 -30,12,0,0,1,0,11755.6005859375,13635.0966796875,26599.078125,0,0,0,397 -23,12,0,0,1,0,11755.6005859375,13785.484375,14186.1748046875,0,0,0,398 -26,12,0,0,1,0,11755.6005859375,14322.5810546875,20688.171875,0,0,0,399 -21,12,1,0,1,0,11755.6005859375,14322.5810546875,16254.9921875,0,0,0,400 -26,12,0,0,1,0,11755.6005859375,14322.5810546875,17732.71875,0,0,0,401 -25,12,1,0,1,0,11755.6005859375,14322.5810546875,21427.03515625,0,0,0,402 -22,12,0,0,1,0,11755.6005859375,14465.8056640625,18102.150390625,0,0,0,403 -28,16,0,0,1,0,11755.6005859375,15217.7421875,20688.171875,0,0,0,404 -22,13,1,0,1,0,11755.6005859375,15217.7421875,0,0,0,0,405 -24,16,0,0,1,0,11755.6005859375,16112.9033203125,31032.2578125,0,0,0,406 -27,15,1,0,0,0,11755.6005859375,16744.88671875,18442.02734375,0,0,0,407 -19,12,0,0,0,0,11755.6005859375,19335.484375,16254.9921875,0,0,0,408 -38,14,0,0,1,0,11755.6005859375,19693.548828125,0,0,0,0,409 -38,14,0,0,0,0,11755.6005859375,21483.87109375,7388.6328125,0,0,0,410 -45,12,0,0,1,0,11771.275390625,11270.0810546875,16822.439453125,0,0,0,411 -26,12,1,0,1,0,11775.193359375,14150.7099609375,16342.177734375,0,0,0,412 -31,16,0,0,1,0,11784.990234375,9846.7744140625,5390.74658203125,0,0,0,413 -25,13,1,0,1,0,11931.9345703125,13824.87109375,12656.7275390625,0,0,0,414 -25,14,0,0,1,0,11973.0791015625,14322.5810546875,14777.265625,0,0,0,415 -22,12,0,0,1,0,12051.4501953125,16025.1767578125,13151.7666015625,0,0,0,416 -36,12,0,0,1,0,12147.4541015625,13964.515625,13299.5390625,0,0,0,417 -27,12,0,0,1,0,12147.4541015625,14322.5810546875,20142.890625,0,0,0,418 -33,12,0,0,1,0,12147.4541015625,16112.9033203125,24382.48828125,0,0,0,419 -27,12,0,0,1,0,12147.4541015625,23274.193359375,26599.078125,0,0,0,420 -30,12,1,0,1,0,12225.8251953125,10741.9345703125,18962.1875,0,0,0,421 -46,12,0,0,1,0,12343.380859375,11637.0966796875,11230.7216796875,0,0,0,422 -23,14,0,0,1,0,12343.380859375,12532.2578125,14186.1748046875,0,0,0,423 -25,16,0,0,1,0,12343.380859375,13606.4521484375,21427.03515625,0,0,0,424 -27,14,0,0,1,0,12419.7919921875,16829.03125,25178.982421875,0,0,0,425 -49,16,0,0,1,0,12504.041015625,12353.2255859375,12560.67578125,0,0,0,426 -22,12,0,0,1,0,12539.3076171875,12532.2578125,14369.4130859375,0,0,0,427 -28,16,0,0,1,0,12572.615234375,21483.87109375,23495.853515625,0,0,0,428 -24,12,1,0,1,0,12658.8232421875,19693.548828125,19210.4453125,0,0,0,429 -37,17,1,0,1,0,12735.234375,1306.935546875,4236.64208984375,0,0,0,430 -22,13,0,0,0,0,12735.234375,12532.2578125,17732.71875,0,0,0,431 -23,17,0,0,0,0,12735.234375,14322.5810546875,28076.8046875,0,0,0,432 -23,12,1,0,0,0,12735.234375,14322.5810546875,20688.171875,0,0,0,433 -26,12,0,0,1,0,12735.234375,14322.5810546875,14925.0380859375,0,0,0,434 -22,12,0,0,0,0,12735.234375,16112.9033203125,21131.490234375,0,0,0,435 -31,14,0,0,1,0,12735.234375,17724.193359375,29850.076171875,0,0,0,436 -31,14,0,0,1,0,12735.234375,17724.193359375,29850.076171875,0,0,0,437 -54,12,0,0,1,0,12735.234375,17894.2734375,19343.44140625,0,0,0,438 -25,16,1,0,1,0,12735.234375,18261.2890625,10521.4130859375,0,0,0,439 -28,12,1,0,1,0,12735.234375,19693.548828125,17732.71875,0,0,0,440 -19,13,0,0,1,0,12735.234375,19693.548828125,28815.66796875,0,0,0,441 -26,17,0,0,1,0,12735.234375,25064.515625,26599.078125,0,0,0,442 -28,12,0,0,1,0,12813.60546875,7161.29052734375,16254.9921875,0,0,0,443 -20,12,0,0,1,0,12931.1611328125,2363.225830078125,14777.265625,0,0,0,444 -26,12,0,0,1,0,12931.1611328125,11100,22165.8984375,0,0,0,445 -25,17,0,0,1,0,12935.0791015625,22379.03125,36943.1640625,0,0,0,446 -24,12,0,0,1,0,13029.1240234375,13964.515625,41571.40234375,0,0,0,447 -22,12,0,0,1,0,13127.087890625,8951.61328125,13595.083984375,0,0,0,448 -27,17,0,0,1,0,13127.087890625,10741.9345703125,29554.53125,0,0,0,449 -26,12,0,0,1,0,13127.087890625,12174.1943359375,12687.759765625,0,0,0,450 -27,12,1,0,1,0,13127.087890625,12353.2255859375,11526.2666015625,0,0,0,451 -19,12,0,0,1,0,13127.087890625,12532.2578125,24382.48828125,0,0,0,452 -29,17,0,0,1,0,13127.087890625,19693.548828125,0,0,0,0,453 -20,12,0,0,1,0,13244.6435546875,8772.5810546875,17289.400390625,0,0,0,454 -25,12,0,0,1,0,13291.666015625,14202.62890625,14777.265625,0,0,0,455 -29,16,0,0,1,0,13323.013671875,5370.9677734375,17732.71875,0,0,0,456 -23,14,0,0,0,0,13323.013671875,12174.1943359375,14777.265625,0,0,0,457 -28,12,0,0,1,0,13323.013671875,12532.2578125,10935.1767578125,0,0,0,458 -30,14,0,0,1,0,13323.013671875,14322.5810546875,14777.265625,0,0,0,459 -26,16,1,0,1,0,13323.013671875,19693.548828125,19934.53125,0,0,0,460 -24,12,0,1,1,0,13493.4697265625,16470.96875,21035.4375,0,0,0,461 -22,12,1,0,1,0,13518.94140625,13427.4189453125,12560.67578125,0,0,0,462 -27,12,0,0,1,0,13597.3115234375,15833.61328125,13246.3408203125,0,0,0,463 -22,12,1,0,1,0,13665.8857421875,17903.2265625,13299.5390625,0,0,0,464 -42,13,0,0,1,0,13701.1533203125,0,33987.7109375,0,1,0,465 -22,12,1,0,1,0,13714.8681640625,0,664.97698974609375,0,1,0,466 -47,12,0,0,1,0,13714.8681640625,0,12560.67578125,0,1,0,467 -26,12,0,0,1,0,13714.8681640625,716.1290283203125,22904.76171875,0,0,0,468 -21,12,0,0,1,0,13714.8681640625,3222.58056640625,14038.40234375,0,0,0,469 -25,16,0,0,0,0,13714.8681640625,6042.3388671875,0,0,0,0,470 -25,12,1,0,1,0,13714.8681640625,8235.484375,17732.71875,0,0,0,471 -23,12,0,0,0,0,13714.8681640625,10741.9345703125,15959.447265625,0,0,0,472 -33,12,1,0,0,0,13714.8681640625,11100,9605.22265625,0,0,0,473 -55,16,1,0,1,0,13714.8681640625,11995.1611328125,23531.318359375,0,0,0,474 -47,12,1,0,1,0,13714.8681640625,12433.7900390625,14777.265625,0,0,0,475 -20,12,1,0,1,0,13714.8681640625,12532.2578125,8866.359375,0,0,0,476 -26,12,1,0,1,0,13714.8681640625,12532.2578125,11821.8134765625,0,0,0,477 -31,12,0,0,1,0,13714.8681640625,12532.2578125,14777.265625,0,0,0,478 -30,12,0,0,1,0,13714.8681640625,12532.2578125,2563.855712890625,0,0,0,479 -21,12,1,0,0,0,13714.8681640625,13339.6943359375,11651.8740234375,0,0,0,480 -28,17,0,0,1,0,13714.8681640625,13427.4189453125,6827.0966796875,0,0,0,481 -24,12,0,0,1,0,13714.8681640625,13427.4189453125,17732.71875,0,0,0,482 -28,12,0,0,1,0,13714.8681640625,13606.4521484375,19210.4453125,0,0,0,483 -23,12,0,0,0,0,13714.8681640625,14322.5810546875,22165.8984375,0,0,0,484 -35,12,0,0,0,0,13714.8681640625,15038.7099609375,26599.078125,0,0,0,485 -27,14,0,0,1,0,13714.8681640625,15217.7421875,13447.3115234375,0,0,0,486 -23,12,0,0,1,0,13714.8681640625,15754.8388671875,24205.16015625,0,0,0,487 -24,12,1,0,1,0,13714.8681640625,16112.9033203125,16254.9921875,0,0,0,488 -24,12,0,0,1,0,13714.8681640625,16112.9033203125,16254.9921875,0,0,0,489 -39,12,1,0,1,0,13714.8681640625,17008.064453125,14629.4931640625,0,0,0,490 -33,12,0,0,1,0,13714.8681640625,18082.2578125,26081.873046875,0,0,0,491 -45,14,0,0,1,0,13714.8681640625,19102.7421875,30145.62109375,0,0,0,492 -45,14,0,0,1,0,13714.8681640625,19102.7421875,30145.62109375,0,0,0,493 -27,12,1,0,1,0,13714.8681640625,19425,25860.21484375,0,0,0,494 -45,17,0,0,1,0,13714.8681640625,23095.16015625,6649.76953125,0,0,0,495 -23,16,0,0,0,0,13714.8681640625,25601.61328125,31623.349609375,0,0,0,496 -26,17,0,0,1,0,13714.8681640625,29540.322265625,29554.53125,0,0,0,497 -27,14,1,0,0,0,13812.8310546875,17036.7109375,20688.171875,0,0,0,498 -21,14,0,0,1,0,13832.423828125,8777.951171875,591.09063720703125,0,0,0,499 -20,12,0,0,1,0,13902.95703125,14322.5810546875,19653.763671875,0,0,0,500 -29,12,0,0,1,0,13910.7939453125,7161.29052734375,19210.4453125,0,0,0,501 -22,12,0,1,1,0,13910.7939453125,8611.451171875,16218.048828125,0,0,0,502 -24,12,0,0,0,0,13910.7939453125,13427.4189453125,19210.4453125,0,0,0,503 -27,12,0,0,1,0,13910.7939453125,14859.6767578125,15072.810546875,0,0,0,504 -23,12,0,0,1,0,14063.6171875,11100,14777.265625,0,0,0,505 -24,16,0,0,1,0,14067.5361328125,24706.451171875,37829.80078125,0,0,0,506 -23,16,0,0,0,0,14106.720703125,6266.12890625,2955.453125,0,0,0,507 -33,14,0,0,1,0,14106.720703125,14322.5810546875,17732.71875,0,0,0,508 -21,12,0,0,0,0,14106.720703125,17903.2265625,22165.8984375,0,0,0,509 -23,12,0,0,1,0,14106.720703125,23453.2265625,0,0,0,0,510 -20,12,1,0,1,0,14322.240234375,17903.2265625,14777.265625,0,0,0,511 -24,12,0,0,1,0,14373.1806640625,19693.548828125,7388.6328125,0,0,0,512 -29,12,1,0,1,0,14392.7744140625,15396.7744140625,14777.265625,0,0,0,513 -34,12,0,0,1,0,14498.57421875,14322.5810546875,10048.541015625,0,0,0,514 -44,12,0,0,1,0,14498.57421875,14424.62890625,14579.25,0,0,0,515 -23,12,0,0,1,0,14498.57421875,19335.484375,19210.4453125,0,0,0,516 -26,14,1,0,1,0,14506.4111328125,17187.09765625,21678.248046875,0,0,0,517 -51,12,0,0,1,0,14533.8408203125,19245.96875,17732.71875,0,0,0,518 -41,12,0,0,1,0,14684.705078125,23274.193359375,26599.078125,0,0,0,519 -37,13,0,0,1,0,14694.5009765625,8951.61328125,17732.71875,0,0,0,520 -26,16,0,0,1,0,14694.5009765625,11637.0966796875,20688.171875,0,0,0,521 -24,12,1,0,1,0,14694.5009765625,11816.12890625,11821.8134765625,0,0,0,522 -22,14,1,0,1,0,14694.5009765625,12532.2578125,21397.48046875,0,0,0,523 -27,12,1,0,1,0,14694.5009765625,13427.4189453125,14079.779296875,0,0,0,524 -23,13,0,0,1,0,14694.5009765625,14322.5810546875,20688.171875,0,0,0,525 -27,12,0,0,1,0,14694.5009765625,14322.5810546875,19210.4453125,0,0,0,526 -28,12,1,0,1,0,14694.5009765625,14859.6767578125,19210.4453125,0,0,0,527 -21,12,0,0,1,0,14694.5009765625,15217.7421875,23643.625,0,0,0,528 -28,12,0,0,1,0,14694.5009765625,15933.87109375,0,0,0,0,529 -22,13,0,0,1,0,14694.5009765625,16112.9033203125,0,0,0,0,530 -20,12,0,0,1,0,14694.5009765625,16112.9033203125,26599.078125,0,0,0,531 -24,16,0,0,1,0,14694.5009765625,16470.96875,27337.94140625,0,0,0,532 -22,12,0,0,1,0,14694.5009765625,16829.03125,21870.353515625,0,0,0,533 -27,12,0,1,1,0,14694.5009765625,16829.03125,37829.80078125,0,0,0,534 -35,12,1,0,1,0,14694.5009765625,17187.09765625,21279.263671875,0,0,0,535 -23,16,0,0,1,0,14694.5009765625,19693.548828125,29554.53125,0,0,0,536 -22,16,0,0,1,0,14694.5009765625,19693.548828125,2955.453125,0,0,0,537 -23,16,0,0,1,0,14694.5009765625,23274.193359375,25121.3515625,0,0,0,538 -20,12,0,0,1,0,14694.5009765625,26854.83984375,31032.2578125,0,0,0,539 -22,12,1,0,1,0,14790.5048828125,14680.64453125,14038.40234375,0,0,0,540 -24,12,0,0,1,0,14890.427734375,719.70965576171875,27963.01953125,0,0,0,541 -26,12,0,0,1,0,14890.427734375,10741.9345703125,0,0,0,0,542 -42,12,1,0,1,0,14988.390625,11185.9345703125,0,0,0,0,543 -28,15,0,0,1,0,15082.435546875,18619.35546875,13986.681640625,0,0,0,544 -24,13,0,0,1,0,15282.28125,14322.5810546875,32509.984375,0,0,0,545 -50,12,0,0,1,0,15282.28125,14322.5810546875,13151.7666015625,0,0,0,546 -50,12,0,0,1,0,15282.28125,14322.5810546875,13151.7666015625,0,0,0,547 -28,13,0,0,1,0,15282.28125,14322.5810546875,14038.40234375,0,0,0,548 -25,12,0,0,1,0,15282.28125,16112.9033203125,25121.3515625,0,0,0,549 -31,12,1,0,0,0,15282.28125,17903.2265625,14777.265625,0,0,0,550 -32,16,1,0,1,0,15282.28125,19693.548828125,28076.8046875,0,0,0,551 -22,12,0,0,1,0,15282.28125,19693.548828125,21870.353515625,0,0,0,552 -22,13,1,0,1,0,15403.755859375,14320.7900390625,18660.73046875,0,0,0,553 -26,12,1,0,1,0,15411.5927734375,8951.61328125,11082.94921875,0,0,0,554 -22,12,0,0,1,0,15478.2080078125,8951.61328125,14186.1748046875,0,0,0,555 -29,12,0,0,0,0,15478.2080078125,14370.9189453125,12615.3515625,0,0,0,556 -53,17,0,0,1,0,15478.2080078125,16399.35546875,15663.90234375,0,0,0,557 -25,12,0,0,1,0,15478.2080078125,17724.193359375,31327.802734375,0,0,0,558 -26,12,1,0,1,0,15478.2080078125,18175.35546875,19949.30859375,0,0,0,559 -24,16,0,0,0,0,15587.9267578125,19505.564453125,19210.4453125,0,0,0,560 -27,17,0,0,0,0,15674.1337890625,0,41376.34375,0,1,0,561 -46,12,0,0,1,0,15674.1337890625,734.03228759765625,20688.171875,0,0,0,562 -25,12,1,0,1,0,15674.1337890625,3738.193603515625,10512.546875,0,0,0,563 -21,13,0,0,0,0,15674.1337890625,4946.6611328125,1733.373291015625,0,0,0,564 -37,12,0,0,1,0,15674.1337890625,8951.61328125,28076.8046875,0,0,0,565 -37,12,0,0,1,0,15674.1337890625,8951.61328125,28076.8046875,0,0,0,566 -28,15,1,0,1,0,15674.1337890625,9452.9033203125,31032.2578125,0,0,0,567 -22,12,0,0,0,0,15674.1337890625,10741.9345703125,28963.44140625,0,0,0,568 -22,12,0,0,0,0,15674.1337890625,11637.0966796875,20688.171875,0,0,0,569 -27,12,0,0,1,0,15674.1337890625,12532.2578125,19210.4453125,0,0,0,570 -21,13,1,0,1,0,15674.1337890625,12532.2578125,25121.3515625,0,0,0,571 -49,16,0,0,1,0,15674.1337890625,12890.3232421875,17732.71875,0,0,0,572 -26,12,0,0,1,0,15674.1337890625,13427.4189453125,0,0,0,0,573 -33,14,0,0,1,0,15674.1337890625,13427.4189453125,13890.6298828125,0,0,0,574 -28,15,0,0,1,0,15674.1337890625,13785.484375,15959.447265625,0,0,0,575 -29,17,0,0,1,0,15674.1337890625,14143.5478515625,25860.21484375,0,0,0,576 -54,16,1,0,1,0,15674.1337890625,14322.5810546875,11821.8134765625,0,0,0,577 -25,14,0,1,1,0,15674.1337890625,14322.5810546875,20702.94921875,0,0,0,578 -32,12,0,0,1,0,15674.1337890625,14322.5810546875,13299.5390625,0,0,0,579 -40,12,0,0,1,0,15674.1337890625,14322.5810546875,16254.9921875,0,0,0,580 -40,12,0,0,1,0,15674.1337890625,14322.5810546875,16254.9921875,0,0,0,581 -27,16,0,0,1,0,15674.1337890625,14322.5810546875,22165.8984375,0,0,0,582 -24,12,0,0,1,0,15674.1337890625,14680.64453125,17732.71875,0,0,0,583 -43,12,0,0,1,0,15674.1337890625,14680.64453125,13831.521484375,0,0,0,584 -25,16,0,0,1,0,15674.1337890625,15217.7421875,19062.673828125,0,0,0,585 -26,12,1,0,1,0,15674.1337890625,15217.7421875,15516.12890625,0,0,0,586 -34,12,1,0,1,0,15674.1337890625,15754.8388671875,17732.71875,0,0,0,587 -21,13,0,0,1,0,15674.1337890625,15933.87109375,25121.3515625,0,0,0,588 -21,12,1,0,1,0,15674.1337890625,16112.9033203125,11821.8134765625,0,0,0,589 -23,12,1,0,1,0,15674.1337890625,16202.4189453125,19210.4453125,0,0,0,590 -26,12,0,0,1,0,15674.1337890625,16470.96875,35022.12109375,0,0,0,591 -28,14,0,0,1,0,15674.1337890625,16757.419921875,16254.9921875,0,0,0,592 -26,17,0,0,1,0,15674.1337890625,16829.03125,19210.4453125,0,0,0,593 -20,14,0,0,0,0,15674.1337890625,17008.064453125,26599.078125,0,0,0,594 -26,12,1,0,1,0,15674.1337890625,17983.7890625,20688.171875,0,0,0,595 -21,12,1,0,1,0,15674.1337890625,19693.548828125,19210.4453125,0,0,0,596 -41,12,0,0,1,0,15674.1337890625,19693.548828125,32509.984375,0,0,0,597 -28,16,0,0,1,0,15674.1337890625,19693.548828125,28815.66796875,0,0,0,598 -23,16,0,0,0,0,15674.1337890625,21483.87109375,26599.078125,0,0,0,599 -22,12,0,0,1,0,15674.1337890625,22916.12890625,31771.12109375,0,0,0,600 -27,14,0,1,0,0,15674.1337890625,23274.193359375,27337.94140625,0,0,0,601 -26,16,0,0,1,0,15674.1337890625,23274.193359375,29554.53125,0,0,0,602 -54,12,0,0,1,0,15674.1337890625,25064.515625,0,0,0,0,603 -54,12,0,0,1,0,15674.1337890625,25064.515625,0,0,0,0,604 -54,12,1,0,0,0,15674.1337890625,25064.515625,20688.171875,0,0,0,605 -37,16,0,0,0,0,15674.1337890625,26854.83984375,29258.986328125,0,0,0,606 -32,13,0,0,1,0,15674.1337890625,30435.484375,22018.126953125,0,0,0,607 -29,12,0,0,1,0,15678.052734375,17487.87109375,10196.3134765625,0,0,0,608 -22,13,0,0,1,0,15870.060546875,15826.4521484375,35465.4375,0,0,0,609 -23,12,1,0,1,0,15870.060546875,30435.484375,27781.259765625,0,0,0,610 -36,12,0,0,1,0,15873.98046875,12727.4033203125,17444.5625,0,0,0,611 -21,13,0,0,1,0,15960.1865234375,21483.87109375,14777.265625,0,0,0,612 -21,12,0,0,1,0,15987.6171875,16291.9345703125,14481.7197265625,0,0,0,613 -26,12,1,0,1,0,15987.6171875,17903.2265625,19505.990234375,0,0,0,614 -28,12,1,0,1,0,15987.6171875,19693.548828125,13299.5390625,0,0,0,615 -43,12,0,0,1,0,15989.576171875,14322.5810546875,14777.265625,0,0,0,616 -27,12,1,0,1,0,16011.1279296875,16112.9033203125,20460.6015625,0,0,0,617 -36,17,0,0,0,0,16015.046875,30793.548828125,29584.0859375,0,0,0,618 -23,12,0,0,1,0,16065.98828125,4833.87109375,25564.669921875,0,0,0,619 -31,12,0,0,1,0,16065.98828125,15038.7099609375,17732.71875,0,0,0,620 -25,14,0,0,1,0,16065.98828125,15217.7421875,18471.58203125,0,0,0,621 -35,12,1,0,1,0,16065.98828125,16086.0478515625,19210.4453125,0,0,0,622 -23,16,0,0,1,0,16065.98828125,16829.03125,20688.171875,0,0,0,623 -21,12,0,0,1,0,16065.98828125,20588.7109375,28815.66796875,0,0,0,624 -22,12,0,0,0,0,16230.56640625,9846.7744140625,2955.453125,0,0,0,625 -36,12,1,0,1,0,16261.9140625,21304.83984375,22165.8984375,0,0,0,626 -21,12,0,0,1,0,16306.9775390625,18529.83984375,11969.5849609375,0,0,0,627 -28,12,0,0,1,0,16393.185546875,13298.515625,0,0,0,0,628 -24,12,0,1,1,0,16457.841796875,8951.61328125,21870.353515625,0,0,0,629 -30,12,0,0,0,0,16457.841796875,14680.64453125,15146.697265625,0,0,0,630 -44,12,0,0,1,0,16457.841796875,16112.9033203125,17289.400390625,0,0,0,631 -30,12,0,0,1,0,16457.841796875,16650,19949.30859375,0,0,0,632 -34,12,0,0,1,0,16457.841796875,16829.03125,20688.171875,0,0,0,633 -26,16,0,0,1,0,16457.841796875,21483.87109375,40637.48046875,0,0,0,634 -23,16,0,0,1,0,16457.841796875,21483.87109375,18471.58203125,0,0,0,635 -20,12,0,0,0,0,16497.025390625,19604.03125,19653.763671875,0,0,0,636 -26,13,0,0,0,0,16653.767578125,3580.645263671875,8866.359375,0,0,0,637 -21,12,1,0,1,0,16653.767578125,9846.7744140625,7388.6328125,0,0,0,638 -25,12,0,0,1,0,16653.767578125,12181.35546875,17732.71875,0,0,0,639 -23,15,0,0,1,0,16653.767578125,13427.4189453125,16993.85546875,0,0,0,640 -25,12,1,0,0,0,16653.767578125,14859.6767578125,22904.76171875,0,0,0,641 -28,16,0,0,1,0,16653.767578125,15396.7744140625,17437.173828125,0,0,0,642 -38,14,0,0,1,0,16653.767578125,16112.9033203125,19505.990234375,0,0,0,643 -29,17,0,0,1,0,16653.767578125,16112.9033203125,17732.71875,0,0,0,644 -24,17,0,0,1,0,16653.767578125,16650,20688.171875,0,0,0,645 -25,16,1,0,1,0,16653.767578125,17008.064453125,21870.353515625,0,0,0,646 -55,12,0,0,1,0,16653.767578125,17545.16015625,16254.9921875,0,0,0,647 -30,14,0,0,1,0,16653.767578125,17545.16015625,0,0,0,0,648 -21,12,0,0,0,0,16653.767578125,17903.2265625,19210.4453125,0,0,0,649 -26,12,0,0,1,0,16653.767578125,17903.2265625,17732.71875,0,0,0,650 -34,12,0,0,1,0,16653.767578125,19532.419921875,16254.9921875,0,0,0,651 -22,12,0,0,1,0,16653.767578125,19693.548828125,26007.98828125,0,0,0,652 -22,16,0,0,0,0,16653.767578125,22737.09765625,37682.02734375,0,0,0,653 -27,15,0,0,0,0,16653.767578125,23274.193359375,23643.625,0,0,0,654 -26,12,0,0,0,0,16653.767578125,23274.193359375,2955.453125,0,0,0,655 -26,16,0,0,1,0,16653.767578125,24706.451171875,29554.53125,0,0,0,656 -24,14,1,0,1,0,16653.767578125,28466.12890625,40637.48046875,0,0,0,657 -26,14,1,0,0,0,16667.482421875,21483.87109375,28815.66796875,0,0,0,658 -23,12,1,0,1,0,16708.626953125,10491.2900390625,7565.9599609375,0,0,0,659 -28,14,0,0,0,0,16849.6953125,12174.1943359375,1921.0445556640625,0,0,0,660 -21,12,0,0,1,0,16849.6953125,15396.7744140625,0,0,0,0,661 -30,12,0,0,1,0,16849.6953125,17366.12890625,18978.44140625,0,0,0,662 -24,12,0,0,1,0,16849.6953125,18619.35546875,25121.3515625,0,0,0,663 -51,12,0,0,1,0,16849.6953125,19693.548828125,17732.71875,0,0,0,664 -21,14,0,0,0,0,16849.6953125,19693.548828125,35465.4375,0,0,0,665 -22,14,1,0,1,0,16849.6953125,21125.806640625,24086.943359375,0,0,0,666 -24,12,0,0,1,0,16884.9609375,9311.4677734375,23080.611328125,0,0,0,667 -23,15,0,0,1,0,16955.494140625,20844.7265625,25514.427734375,0,0,0,668 -26,14,0,0,1,0,17045.62109375,25064.515625,38716.4375,0,0,0,669 -45,12,0,0,1,0,17104.3984375,16381.4521484375,18176.037109375,0,0,0,670 -46,13,0,0,1,0,17241.548828125,15754.8388671875,14777.265625,0,0,0,671 -29,12,0,0,1,0,17241.548828125,19686.38671875,33544.39453125,0,0,0,672 -26,14,0,0,1,0,17241.548828125,20588.7109375,24530.26171875,0,0,0,673 -27,16,0,0,1,0,17241.548828125,24885.484375,22165.8984375,0,0,0,674 -26,14,0,0,1,0,17437.474609375,7161.29052734375,14771.35546875,0,0,0,675 -20,15,0,0,1,0,17437.474609375,8056.45166015625,18471.58203125,0,0,0,676 -23,12,0,0,1,0,17437.474609375,12532.2578125,21427.03515625,0,0,0,677 -30,16,0,0,1,0,17437.474609375,17867.419921875,15516.12890625,0,0,0,678 -24,12,0,0,1,0,17437.474609375,22379.03125,16254.9921875,0,0,0,679 -23,12,0,0,1,0,17633.400390625,0,23643.625,0,1,0,680 -34,12,0,0,1,0,17633.400390625,0,0,0,1,0,681 -24,12,0,1,1,0,17633.400390625,4848.193359375,22165.8984375,0,0,0,682 -43,12,1,0,1,0,17633.400390625,10741.9345703125,21858.53125,0,0,0,683 -28,14,1,0,1,0,17633.400390625,12532.2578125,16254.9921875,0,0,0,684 -20,12,0,0,1,0,17633.400390625,15217.7421875,28815.66796875,0,0,0,685 -23,12,1,0,1,0,17633.400390625,15217.7421875,15516.12890625,0,0,0,686 -27,14,1,0,1,0,17633.400390625,16112.9033203125,26599.078125,0,0,0,687 -53,12,0,0,1,0,17633.400390625,16112.9033203125,19210.4453125,0,0,0,688 -28,16,0,0,1,0,17633.400390625,16112.9033203125,22165.8984375,0,0,0,689 -26,12,0,0,1,0,17633.400390625,16112.9033203125,25121.3515625,0,0,0,690 -25,15,0,0,1,0,17633.400390625,16112.9033203125,18619.35546875,0,0,0,691 -29,14,0,0,1,0,17633.400390625,17187.09765625,19699.572265625,0,0,0,692 -26,12,1,0,1,0,17633.400390625,17416.2578125,23643.625,0,0,0,693 -55,16,0,0,1,0,17633.400390625,17903.2265625,22165.8984375,0,0,0,694 -22,12,0,1,1,0,17633.400390625,17903.2265625,14777.265625,0,0,0,695 -33,12,0,0,1,0,17633.400390625,17903.2265625,15811.673828125,0,0,0,696 -34,14,0,1,1,0,17633.400390625,17903.2265625,8866.359375,0,0,0,697 -24,12,0,0,1,0,17633.400390625,18440.322265625,19949.30859375,0,0,0,698 -24,12,0,0,1,0,17633.400390625,18750.048828125,32509.984375,0,0,0,699 -26,12,1,0,1,0,17633.400390625,18798.38671875,18471.58203125,0,0,0,700 -45,12,0,0,1,0,17633.400390625,18798.38671875,19949.30859375,0,0,0,701 -22,12,0,0,1,0,17633.400390625,19693.548828125,23643.625,0,0,0,702 -55,14,0,0,1,0,17633.400390625,19693.548828125,2068.817138671875,0,0,0,703 -24,12,0,0,1,0,17633.400390625,19693.548828125,11526.2666015625,0,0,0,704 -23,12,0,0,1,0,17633.400390625,21546.53125,4433.1796875,0,0,0,705 -24,13,1,0,0,0,17633.400390625,25064.515625,22165.8984375,0,0,0,706 -31,13,0,0,1,0,17633.400390625,25064.515625,23643.625,0,0,0,707 -43,12,0,0,1,0,17633.400390625,26854.83984375,28076.8046875,0,0,0,708 -43,12,0,0,1,0,17633.400390625,26854.83984375,28076.8046875,0,0,0,709 -23,12,1,0,1,0,17672.587890625,14322.5810546875,12294.6845703125,0,0,0,710 -22,12,0,0,1,0,17703.935546875,12532.2578125,20688.171875,0,0,0,711 -30,12,1,0,1,0,17760.75390625,17366.12890625,19210.4453125,0,0,0,712 -28,12,0,0,0,0,17829.328125,5012.9033203125,16240.21484375,0,0,0,713 -28,12,0,0,1,0,17829.328125,11100,20688.171875,0,0,0,714 -21,12,0,0,0,0,17829.328125,12945.8232421875,26599.078125,0,0,0,715 -28,13,0,0,1,0,17876.349609375,15396.7744140625,22452.578125,0,0,0,716 -25,14,0,0,1,0,17939.046875,14322.5810546875,9974.654296875,0,0,0,717 -54,12,0,0,1,0,18025.255859375,18798.38671875,23643.625,0,0,0,718 -26,16,0,0,1,0,18025.255859375,19872.580078125,20983.716796875,0,0,0,719 -26,16,0,0,1,0,18025.255859375,23274.193359375,28076.8046875,0,0,0,720 -49,13,0,0,1,0,18221.181640625,17903.2265625,17732.71875,0,0,0,721 -21,13,1,0,0,0,18221.181640625,21125.806640625,21870.353515625,0,0,0,722 -26,16,0,0,1,0,18221.181640625,22379.03125,18471.58203125,0,0,0,723 -30,12,1,0,1,0,18338.736328125,25422.580078125,22165.8984375,0,0,0,724 -21,13,0,0,1,0,18417.107421875,8951.61328125,27337.94140625,0,0,0,725 -33,12,0,0,1,0,18417.107421875,12890.3232421875,20688.171875,0,0,0,726 -33,12,0,0,1,0,18417.107421875,14412.0966796875,20688.171875,0,0,0,727 -40,12,0,0,1,0,18417.107421875,17545.16015625,17289.400390625,0,0,0,728 -27,16,0,0,1,0,18417.107421875,18798.38671875,25860.21484375,0,0,0,729 -21,12,0,0,1,0,18417.107421875,19693.548828125,28224.578125,0,0,0,730 -31,12,0,0,1,0,18593.44140625,14814.9189453125,16254.9921875,0,0,0,731 -27,14,1,0,1,0,18613.03515625,0,13299.5390625,0,1,0,732 -47,17,0,0,1,0,18613.03515625,10025.8056640625,35465.4375,0,0,0,733 -32,12,1,0,1,0,18613.03515625,16112.9033203125,17732.71875,0,0,0,734 -28,12,1,0,0,0,18613.03515625,17008.064453125,19949.30859375,0,0,0,735 -35,14,0,0,1,0,18613.03515625,19693.548828125,22424.501953125,0,0,0,736 -26,14,0,0,1,0,18613.03515625,19693.548828125,28076.8046875,0,0,0,737 -37,12,0,0,1,0,18613.03515625,21483.87109375,23052.53515625,0,0,0,738 -23,12,0,0,0,0,18613.03515625,23274.193359375,32953.3046875,0,0,0,739 -44,12,1,0,1,0,18613.03515625,23632.2578125,19210.4453125,0,0,0,740 -44,12,1,0,1,0,18613.03515625,23632.2578125,19210.4453125,0,0,0,741 -36,12,1,0,1,0,18613.03515625,25064.515625,33692.1640625,0,0,0,742 -26,12,0,0,1,0,18677.689453125,18261.2890625,24973.578125,0,0,0,743 -23,14,0,0,1,0,18722.75390625,21662.90234375,28076.8046875,0,0,0,744 -32,13,1,0,1,0,18808.9609375,14143.5478515625,26599.078125,0,0,0,745 -33,12,0,0,0,0,18808.9609375,16028.7578125,17502.193359375,0,0,0,746 -37,12,1,0,1,0,18808.9609375,16112.9033203125,32509.984375,0,0,0,747 -27,12,0,0,1,0,18808.9609375,17187.09765625,19505.990234375,0,0,0,748 -43,12,0,0,1,0,18808.9609375,17903.2265625,26155.759765625,0,0,0,749 -27,16,0,0,1,0,18808.9609375,17903.2265625,18471.58203125,0,0,0,750 -24,12,0,0,1,0,18808.9609375,17903.2265625,18323.810546875,0,0,0,751 -24,12,0,0,1,0,18808.9609375,18798.38671875,23052.53515625,0,0,0,752 -34,12,1,0,0,0,18848.146484375,30435.484375,12560.67578125,0,0,0,753 -42,12,0,0,1,0,18879.494140625,17008.064453125,19210.4453125,0,0,0,754 -24,13,1,0,1,0,18881.453125,16112.9033203125,12560.67578125,0,0,0,755 -27,12,0,0,1,0,18924.55859375,11995.1611328125,22165.8984375,0,0,0,756 -23,12,1,0,1,0,19004.888671875,13427.4189453125,13299.5390625,0,0,0,757 -26,16,0,0,1,0,19004.888671875,16112.9033203125,26599.078125,0,0,0,758 -27,12,1,0,1,0,19004.888671875,19693.548828125,19210.4453125,0,0,0,759 -37,12,1,0,1,0,19004.888671875,25959.677734375,25860.21484375,0,0,0,760 -37,12,0,0,1,0,19016.64453125,20893.064453125,16993.85546875,0,0,0,761 -26,12,0,1,1,0,19055.828125,0,13299.5390625,0,1,0,762 -23,12,0,0,1,0,19096.974609375,20683.59765625,16993.85546875,0,0,0,763 -26,13,0,0,1,0,19200.814453125,14680.64453125,18471.58203125,0,0,0,764 -27,16,0,0,1,0,19200.814453125,17688.38671875,0,0,0,0,765 -27,12,0,0,0,0,19200.814453125,19514.515625,23643.625,0,0,0,766 -29,14,0,0,1,0,19200.814453125,21483.87109375,23052.53515625,0,0,0,767 -25,16,0,0,1,0,19200.814453125,22558.064453125,33396.62109375,0,0,0,768 -26,12,0,0,1,0,19263.51171875,13024.5966796875,24627.791015625,0,0,0,769 -22,14,0,0,1,0,19279.185546875,17616.7734375,17289.400390625,0,0,0,770 -28,12,0,0,1,0,19298.77734375,0,29554.53125,0,1,0,771 -46,12,0,0,1,0,19394.78125,19201.2109375,20431.048828125,0,0,0,772 -33,17,0,0,0,0,19396.740234375,0,1539.7911376953125,0,1,0,773 -23,12,0,0,1,0,19396.740234375,12532.2578125,25121.3515625,0,0,0,774 -23,12,0,0,1,0,19396.740234375,12532.2578125,0,0,0,0,775 -23,13,0,0,1,0,19396.740234375,17903.2265625,31032.2578125,0,0,0,776 -26,16,0,0,1,0,19396.740234375,25780.64453125,25564.669921875,0,0,0,777 -24,16,1,0,0,0,19494.705078125,15217.7421875,23643.625,0,0,0,778 -37,12,1,0,1,0,19586.7890625,12030.9677734375,14777.265625,0,0,0,779 -50,16,0,0,0,0,19592.66796875,0,23643.625,0,1,0,780 -26,13,0,0,1,0,19592.66796875,0,23643.625,0,1,0,781 -21,12,1,0,0,0,19592.66796875,716.1290283203125,22165.8984375,0,0,0,782 -25,12,1,0,1,0,19592.66796875,5370.9677734375,24642.568359375,0,0,0,783 -24,13,1,0,1,0,19592.66796875,11637.0966796875,18442.02734375,0,0,0,784 -24,12,1,0,0,0,19592.66796875,11995.1611328125,19210.4453125,0,0,0,785 -32,14,1,0,1,0,19592.66796875,12335.3232421875,14777.265625,0,0,0,786 -27,16,0,0,1,0,19592.66796875,12532.2578125,17720.896484375,0,0,0,787 -21,12,0,1,1,0,19592.66796875,12532.2578125,17732.71875,0,0,0,788 -24,16,0,0,1,0,19592.66796875,12890.3232421875,31032.2578125,0,0,0,789 -45,14,0,0,1,0,19592.66796875,13606.4521484375,17732.71875,0,0,0,790 -38,12,0,0,1,0,19592.66796875,13964.515625,16286.025390625,0,0,0,791 -27,15,0,0,1,0,19592.66796875,14859.6767578125,23643.625,0,0,0,792 -20,12,1,0,1,0,19592.66796875,16709.080078125,12708.44921875,0,0,0,793 -23,12,1,0,1,0,19592.66796875,17008.064453125,22165.8984375,0,0,0,794 -33,12,0,0,1,0,19592.66796875,17008.064453125,25014.955078125,0,0,0,795 -24,13,0,0,1,0,19592.66796875,17187.09765625,22313.671875,0,0,0,796 -44,12,0,0,1,0,19592.66796875,17187.09765625,15368.3564453125,0,0,0,797 -34,12,1,0,1,0,19592.66796875,17366.12890625,19210.4453125,0,0,0,798 -23,12,1,0,1,0,19592.66796875,17366.12890625,14777.265625,0,0,0,799 -27,12,1,0,1,0,19592.66796875,17724.193359375,25121.3515625,0,0,0,800 -25,16,0,0,1,0,19592.66796875,17903.2265625,25712.44140625,0,0,0,801 -22,12,0,0,1,0,19592.66796875,17903.2265625,23643.625,0,0,0,802 -24,16,0,0,0,0,19592.66796875,17903.2265625,16993.85546875,0,0,0,803 -23,12,0,0,1,0,19592.66796875,17903.2265625,16254.9921875,0,0,0,804 -31,16,0,0,1,0,19592.66796875,17903.2265625,17732.71875,0,0,0,805 -23,12,1,0,1,0,19592.66796875,17903.2265625,26599.078125,0,0,0,806 -27,12,0,0,1,0,19592.66796875,18082.2578125,32657.7578125,0,0,0,807 -20,12,1,0,1,0,19592.66796875,18619.35546875,23643.625,0,0,0,808 -20,12,0,0,1,0,19592.66796875,18798.38671875,17732.71875,0,0,0,809 -52,15,0,0,1,0,19592.66796875,18798.38671875,17437.173828125,0,0,0,810 -33,16,0,0,1,0,19592.66796875,19335.484375,26599.078125,0,0,0,811 -40,12,0,0,1,0,19592.66796875,19335.484375,21279.263671875,0,0,0,812 -31,12,1,0,1,0,19592.66796875,19466.177734375,20259.630859375,0,0,0,813 -35,12,0,0,1,0,19592.66796875,19693.548828125,22535.330078125,0,0,0,814 -33,12,0,0,0,0,19592.66796875,19693.548828125,13299.5390625,0,0,0,815 -22,12,0,0,1,0,19592.66796875,19693.548828125,17732.71875,0,0,0,816 -29,16,1,0,1,0,19592.66796875,20588.7109375,42854.0703125,0,0,0,817 -26,12,0,0,1,0,19592.66796875,21125.806640625,21982.66015625,0,0,0,818 -23,12,0,0,1,0,19592.66796875,21215.322265625,24884.916015625,0,0,0,819 -30,12,0,0,1,0,19592.66796875,21483.87109375,23348.080078125,0,0,0,820 -43,12,0,0,1,0,19592.66796875,21483.87109375,22165.8984375,0,0,0,821 -43,12,0,0,1,0,19592.66796875,21483.87109375,22165.8984375,0,0,0,822 -31,12,0,0,1,0,19592.66796875,21483.87109375,25121.3515625,0,0,0,823 -23,12,0,0,1,0,19592.66796875,21483.87109375,20688.171875,0,0,0,824 -23,13,0,0,1,0,19592.66796875,21483.87109375,21279.263671875,0,0,0,825 -28,16,0,0,1,0,19592.66796875,21483.87109375,32509.984375,0,0,0,826 -30,12,0,0,1,0,19592.66796875,21483.87109375,29554.53125,0,0,0,827 -53,12,1,0,1,0,19592.66796875,21483.87109375,23643.625,0,0,0,828 -32,12,0,0,1,0,19592.66796875,21483.87109375,29554.53125,0,0,0,829 -43,12,0,0,1,0,19592.66796875,21739.88671875,29338.783203125,0,0,0,830 -43,12,0,0,1,0,19592.66796875,21739.88671875,29338.783203125,0,0,0,831 -37,17,0,0,0,0,19592.66796875,23005.64453125,22165.8984375,0,0,0,832 -23,12,1,0,1,0,19592.66796875,23274.193359375,21427.03515625,0,0,0,833 -28,12,1,0,1,0,19592.66796875,24169.35546875,25860.21484375,0,0,0,834 -27,14,1,0,0,0,19592.66796875,25064.515625,28815.66796875,0,0,0,835 -46,12,0,0,0,0,19592.66796875,25064.515625,29554.53125,0,0,0,836 -30,12,1,0,1,0,19592.66796875,26854.83984375,25897.158203125,0,0,0,837 -35,17,0,0,1,0,19592.66796875,44758.06640625,36943.1640625,0,0,0,838 -26,15,0,0,1,0,19596.587890625,19335.484375,23643.625,0,0,0,839 -25,12,0,0,1,0,19641.650390625,8736.7744140625,23643.625,0,0,0,840 -24,12,0,0,1,0,19706.3046875,6624.193359375,25121.3515625,0,0,0,841 -22,14,0,0,1,0,19727.857421875,20141.12890625,22284.1171875,0,0,0,842 -27,13,0,0,1,0,19735.6953125,20051.61328125,36943.1640625,0,0,0,843 -36,12,1,0,1,0,19749.408203125,25064.515625,23643.625,0,0,0,844 -35,13,0,0,1,0,19788.595703125,21269.03125,14777.265625,0,0,0,845 -34,12,1,0,1,0,19788.595703125,23274.193359375,31032.2578125,0,0,0,846 -28,14,0,0,1,0,19984.521484375,12532.2578125,31032.2578125,0,0,0,847 -18,12,0,0,1,0,19984.521484375,23274.193359375,26599.078125,0,0,0,848 -21,12,0,0,1,0,20068.76953125,21215.322265625,56892.47265625,0,0,0,849 -28,16,1,0,1,0,20082.484375,19335.484375,21279.263671875,0,0,0,850 -24,14,0,0,1,0,20141.263671875,0,0,0,1,0,851 -30,12,0,0,1,0,20180.447265625,15754.8388671875,33987.7109375,0,0,0,852 -42,12,0,0,1,0,20180.447265625,17455.64453125,0,0,0,0,853 -24,12,0,0,1,0,20180.447265625,19693.548828125,29554.53125,0,0,0,854 -40,12,0,0,1,0,20180.447265625,19693.548828125,17732.71875,0,0,0,855 -25,17,0,0,1,0,20180.447265625,21036.2890625,22904.76171875,0,0,0,856 -27,17,0,0,1,0,20180.447265625,21578.7578125,28520.123046875,0,0,0,857 -24,16,0,0,1,0,20200.041015625,17903.2265625,42854.0703125,0,0,0,858 -25,16,1,0,0,0,20233.34765625,19335.484375,23052.53515625,0,0,0,859 -53,16,0,0,1,0,20343.06640625,20112.484375,19930.09765625,0,0,0,860 -28,12,0,0,1,0,20376.375,17903.2265625,32509.984375,0,0,0,861 -20,12,0,0,1,0,20376.375,18655.16015625,16993.85546875,0,0,0,862 -26,12,0,0,1,0,20376.375,20946.7734375,22165.8984375,0,0,0,863 -33,12,0,0,1,0,20503.7265625,21483.87109375,20688.171875,0,0,0,864 -24,14,0,0,0,0,20572.30078125,11637.0966796875,12412.9033203125,0,0,0,865 -38,12,1,0,0,0,20572.30078125,14322.5810546875,16254.9921875,0,0,0,866 -27,12,0,0,1,0,20572.30078125,17545.16015625,24530.26171875,0,0,0,867 -27,16,0,0,1,0,20572.30078125,18619.35546875,88663.59375,0,0,0,868 -31,13,0,0,1,0,20572.30078125,18798.38671875,29554.53125,0,0,0,869 -26,15,0,0,1,0,20572.30078125,18798.38671875,23643.625,0,0,0,870 -28,16,0,0,1,0,20572.30078125,18798.38671875,22165.8984375,0,0,0,871 -26,17,0,0,1,0,20572.30078125,18977.419921875,35465.4375,0,0,0,872 -52,12,0,0,1,0,20572.30078125,18977.419921875,20688.171875,0,0,0,873 -25,12,0,0,1,0,20572.30078125,20588.7109375,22461.443359375,0,0,0,874 -24,12,0,0,1,0,20572.30078125,20767.7421875,22165.8984375,0,0,0,875 -41,12,0,0,1,0,20572.30078125,21483.87109375,25310.501953125,0,0,0,876 -40,12,0,0,1,0,20572.30078125,24772.693359375,32586.826171875,0,0,0,877 -40,12,0,0,1,0,20572.30078125,24772.693359375,32586.826171875,0,0,0,878 -32,13,0,0,1,0,20572.30078125,25064.515625,7388.6328125,0,0,0,879 -24,12,1,0,1,0,20572.30078125,25959.677734375,31032.2578125,0,0,0,880 -46,12,1,0,1,0,20572.30078125,32225.806640625,7882.193359375,0,0,0,881 -31,13,0,0,1,0,20572.30078125,33658.06640625,31032.2578125,0,0,0,882 -25,15,0,0,0,0,20738.83984375,21483.87109375,39011.98046875,0,0,0,883 -29,12,0,0,1,0,20768.228515625,0,44331.796875,0,1,0,884 -25,14,0,0,0,0,20768.228515625,14322.5810546875,17437.173828125,0,0,0,885 -42,16,0,0,1,0,20768.228515625,19693.548828125,22165.8984375,0,0,0,886 -24,12,0,0,1,0,20768.228515625,23274.193359375,27485.71484375,0,0,0,887 -25,14,1,0,1,0,20768.228515625,23274.193359375,26303.533203125,0,0,0,888 -44,12,0,0,1,0,20895.580078125,12174.1943359375,20963.029296875,0,0,0,889 -27,12,0,0,0,0,20964.154296875,18440.322265625,23348.080078125,0,0,0,890 -28,14,0,0,1,0,20964.154296875,20588.7109375,28446.236328125,0,0,0,891 -33,16,0,0,1,0,20964.154296875,21483.87109375,22018.126953125,0,0,0,892 -25,16,0,0,1,0,20964.154296875,24706.451171875,26229.646484375,0,0,0,893 -26,12,1,0,1,0,21116.978515625,22379.03125,25121.3515625,0,0,0,894 -39,12,0,0,1,0,21138.529296875,20366.7109375,15049.1669921875,0,0,0,895 -31,14,0,0,1,0,21140.48828125,20141.12890625,19653.763671875,0,0,0,896 -31,14,0,0,1,0,21140.48828125,20141.12890625,19653.763671875,0,0,0,897 -23,13,1,0,1,0,21160.080078125,17903.2265625,23643.625,0,0,0,898 -42,12,0,0,1,0,21160.080078125,21483.87109375,12232.62109375,0,0,0,899 -36,14,0,0,1,0,21160.080078125,23460.38671875,0,0,0,0,900 -26,12,0,0,1,0,21160.080078125,24169.35546875,21279.263671875,0,0,0,901 -46,17,0,0,0,0,21258.044921875,24094.16015625,24787.38671875,0,0,0,902 -31,12,0,0,1,0,21356.0078125,15038.7099609375,35465.4375,0,0,0,903 -27,12,1,0,1,0,21356.0078125,20588.7109375,21722.580078125,0,0,0,904 -25,12,0,1,1,0,21512.748046875,26586.2890625,25558.759765625,0,0,0,905 -42,16,0,0,1,0,21551.935546875,0,41376.34375,0,1,0,906 -28,12,0,0,1,0,21551.935546875,8366.177734375,0,0,0,0,907 -28,12,0,0,1,0,21551.935546875,10562.9033203125,21722.580078125,0,0,0,908 -27,13,0,0,1,0,21551.935546875,14322.5810546875,16254.9921875,0,0,0,909 -35,12,1,0,1,0,21551.935546875,14322.5810546875,15638.7802734375,0,0,0,910 -35,12,1,0,1,0,21551.935546875,14322.5810546875,15638.7802734375,0,0,0,911 -26,12,0,0,1,0,21551.935546875,15217.7421875,26599.078125,0,0,0,912 -19,12,0,0,1,0,21551.935546875,15754.8388671875,19210.4453125,0,0,0,913 -29,12,0,0,1,0,21551.935546875,17008.064453125,20688.171875,0,0,0,914 -34,12,1,0,1,0,21551.935546875,17903.2265625,25121.3515625,0,0,0,915 -28,16,0,0,1,0,21551.935546875,18619.35546875,44331.796875,0,0,0,916 -31,16,0,0,1,0,21551.935546875,18798.38671875,23348.080078125,0,0,0,917 -37,15,1,0,0,0,21551.935546875,19210.16015625,17732.71875,0,0,0,918 -40,12,0,0,1,0,21551.935546875,19693.548828125,31032.2578125,0,0,0,919 -37,12,0,0,1,0,21551.935546875,19693.548828125,44331.796875,0,0,0,920 -48,12,0,0,1,0,21551.935546875,20230.64453125,0,0,0,0,921 -43,12,0,0,1,0,21551.935546875,20588.7109375,19210.4453125,0,0,0,922 -26,16,0,0,1,0,21551.935546875,20588.7109375,28815.66796875,0,0,0,923 -29,12,0,0,1,0,21551.935546875,20588.7109375,19949.30859375,0,0,0,924 -27,12,0,0,1,0,21551.935546875,21120.435546875,23052.53515625,0,0,0,925 -22,14,0,0,1,0,21551.935546875,21483.87109375,23200.306640625,0,0,0,926 -23,12,0,0,1,0,21551.935546875,21483.87109375,26599.078125,0,0,0,927 -21,12,0,0,1,0,21551.935546875,21483.87109375,12534.0771484375,0,0,0,928 -36,12,0,0,1,0,21551.935546875,21483.87109375,23643.625,0,0,0,929 -26,16,0,0,1,0,21551.935546875,21483.87109375,29492.466796875,0,0,0,930 -33,12,0,0,1,0,21551.935546875,21483.87109375,21427.03515625,0,0,0,931 -37,12,0,0,1,0,21551.935546875,22379.03125,24382.48828125,0,0,0,932 -29,16,0,0,0,0,21551.935546875,22737.09765625,33248.84765625,0,0,0,933 -25,14,0,0,1,0,21551.935546875,22916.12890625,31505.130859375,0,0,0,934 -27,16,0,0,1,0,21551.935546875,23274.193359375,27633.486328125,0,0,0,935 -41,17,0,0,1,0,21551.935546875,23274.193359375,22904.76171875,0,0,0,936 -29,16,0,0,1,0,21551.935546875,23274.193359375,23643.625,0,0,0,937 -34,14,0,0,1,0,21551.935546875,23274.193359375,22165.8984375,0,0,0,938 -45,12,0,0,1,0,21551.935546875,23632.2578125,26633.06640625,0,0,0,939 -41,12,1,0,1,0,21551.935546875,24885.484375,21427.03515625,0,0,0,940 -35,13,1,0,1,0,21551.935546875,25959.677734375,26423.228515625,0,0,0,941 -23,12,0,0,1,0,21551.935546875,25959.677734375,58665.74609375,0,0,0,942 -43,17,0,0,0,0,21551.935546875,25959.677734375,36943.1640625,0,0,0,943 -21,12,0,0,1,0,21551.935546875,26138.7109375,38420.890625,0,0,0,944 -22,12,0,0,1,0,21551.935546875,26765.322265625,35465.4375,0,0,0,945 -25,17,0,0,1,0,21551.935546875,31151.61328125,53937.01953125,0,0,0,946 -23,16,0,0,1,0,21551.935546875,35806.453125,44331.796875,0,0,0,947 -28,14,0,0,1,0,21649.8984375,26854.83984375,22165.8984375,0,0,0,948 -44,13,0,0,1,0,21679.287109375,21918.919921875,22165.8984375,0,0,0,949 -23,12,0,0,0,0,21747.861328125,11413.3056640625,2216.58984375,0,0,0,950 -39,14,0,0,1,0,21747.861328125,21841.935546875,18619.35546875,0,0,0,951 -23,12,0,0,1,0,21865.41796875,21483.87109375,25121.3515625,0,0,0,952 -24,14,1,0,1,0,21869.3359375,26353.548828125,18767.126953125,0,0,0,953 -24,13,0,1,1,0,21922.236328125,24742.2578125,35317.6640625,0,0,0,954 -51,12,0,0,1,0,21943.787109375,19156.451171875,24382.48828125,0,0,0,955 -34,12,0,0,1,0,21943.787109375,20409.677734375,21131.490234375,0,0,0,956 -27,12,0,0,1,0,21943.787109375,20588.7109375,18323.810546875,0,0,0,957 -29,17,0,0,1,0,21943.787109375,21752.419921875,22165.8984375,0,0,0,958 -26,14,1,0,1,0,21943.787109375,25959.677734375,36943.1640625,0,0,0,959 -26,13,0,1,1,0,21953.5859375,5671.74169921875,25860.21484375,0,0,0,960 -23,14,0,0,0,0,22139.71484375,18798.38671875,41376.34375,0,0,0,961 -46,12,0,0,1,0,22139.71484375,22622.515625,23643.625,0,0,0,962 -27,12,0,0,0,0,22139.71484375,25422.580078125,61768.97265625,0,0,0,963 -30,17,1,0,1,0,22139.71484375,27929.03125,33248.84765625,0,0,0,964 -25,12,1,0,1,0,22139.71484375,33300,29554.53125,0,0,0,965 -27,14,0,0,1,0,22218.0859375,23306.419921875,26599.078125,0,0,0,966 -27,17,0,0,1,0,22237.677734375,22379.03125,14777.265625,0,0,0,967 -50,12,0,0,1,0,22306.25390625,27544.11328125,26876.890625,0,0,0,968 -50,12,0,0,1,0,22306.25390625,27544.11328125,26876.890625,0,0,0,969 -50,12,0,0,1,0,22306.25390625,27544.11328125,26876.890625,0,0,0,970 -48,12,0,0,1,0,22321.927734375,23881.11328125,25399.1640625,0,0,0,971 -24,16,0,0,1,0,22335.642578125,22880.322265625,29037.326171875,0,0,0,972 -25,12,0,1,1,0,22335.642578125,24169.35546875,31032.2578125,0,0,0,973 -37,12,0,0,1,0,22441.44140625,16385.03125,23269.759765625,0,0,0,974 -37,12,0,0,1,0,22441.44140625,16385.03125,23269.759765625,0,0,0,975 -29,12,1,0,1,0,22531.568359375,18619.35546875,23643.625,0,0,0,976 -27,15,0,0,1,0,22531.568359375,20588.7109375,35465.4375,0,0,0,977 -41,12,0,1,1,0,22531.568359375,20946.7734375,22165.8984375,0,0,0,978 -29,12,0,0,1,0,22531.568359375,21483.87109375,22165.8984375,0,0,0,979 -27,16,0,0,1,0,22531.568359375,21483.87109375,23643.625,0,0,0,980 -44,12,0,0,1,0,22531.568359375,22379.03125,23643.625,0,0,0,981 -26,13,0,0,1,0,22531.568359375,22379.03125,37238.7109375,0,0,0,982 -34,12,0,0,1,0,22531.568359375,22379.03125,26599.078125,0,0,0,983 -20,12,0,0,1,0,22531.568359375,23274.193359375,24382.48828125,0,0,0,984 -43,14,0,0,1,0,22531.568359375,23274.193359375,28520.123046875,0,0,0,985 -47,12,0,1,1,0,22531.568359375,25028.7109375,25564.669921875,0,0,0,986 -31,12,0,0,1,0,22531.568359375,25064.515625,29554.53125,0,0,0,987 -33,12,0,0,1,0,22531.568359375,26496.7734375,24973.578125,0,0,0,988 -24,12,1,0,0,0,22531.568359375,26854.83984375,29554.53125,0,0,0,989 -27,16,0,0,0,0,22531.568359375,30435.484375,42854.0703125,0,0,0,990 -23,14,0,0,1,0,22531.568359375,33658.06640625,26599.078125,0,0,0,991 -27,17,0,0,1,0,22594.265625,18261.2890625,28815.66796875,0,0,0,992 -50,16,0,0,0,0,22629.53125,19693.548828125,17732.71875,0,0,0,993 -22,14,0,0,1,0,22682.431640625,24706.451171875,20688.171875,0,0,0,994 -31,12,1,0,1,0,22727.494140625,1503.8709716796875,27781.259765625,0,0,0,995 -34,12,0,0,1,0,22727.494140625,18619.35546875,20688.171875,0,0,0,996 -28,12,0,0,1,0,22727.494140625,20051.61328125,22904.76171875,0,0,0,997 -26,12,0,0,1,0,22727.494140625,21483.87109375,26599.078125,0,0,0,998 -46,12,0,0,1,0,22727.494140625,21841.935546875,22904.76171875,0,0,0,999 -27,17,0,0,1,0,22727.494140625,22379.03125,24086.943359375,0,0,0,1000 -47,13,0,0,1,0,22727.494140625,22558.064453125,24382.48828125,0,0,0,1001 -29,17,0,0,1,0,22923.421875,21483.87109375,27042.396484375,0,0,0,1002 -24,16,0,0,0,0,22923.421875,22379.03125,26451.306640625,0,0,0,1003 -30,16,0,0,1,0,22923.421875,23274.193359375,28076.8046875,0,0,0,1004 -23,12,0,0,1,0,22982.19921875,24033.2890625,14777.265625,0,0,0,1005 -27,15,0,0,1,0,23119.34765625,0,0,0,1,0,1006 -25,12,0,0,1,0,23119.34765625,24074.46875,25195.23828125,0,0,0,1007 -26,12,0,0,1,0,23315.275390625,26767.11328125,27633.486328125,0,0,0,1008 -26,12,0,0,1,0,23511.201171875,0,0,0,1,0,1009 -25,12,0,0,1,0,23511.201171875,11279.0322265625,21279.263671875,0,0,0,1010 -32,12,0,0,1,0,23511.201171875,13785.484375,31032.2578125,0,0,0,1011 -32,12,0,1,1,0,23511.201171875,13964.515625,66497.6953125,0,0,0,1012 -50,16,0,0,0,0,23511.201171875,14322.5810546875,39973.98046875,0,0,0,1013 -25,13,0,0,0,0,23511.201171875,14322.5810546875,20850.72265625,0,0,0,1014 -33,12,1,0,1,0,23511.201171875,14322.5810546875,23643.625,0,0,0,1015 -27,12,0,0,1,0,23511.201171875,15038.7099609375,12738.0029296875,0,0,0,1016 -28,16,1,0,1,0,23511.201171875,16112.9033203125,22018.126953125,0,0,0,1017 -28,12,0,0,1,0,23511.201171875,16112.9033203125,0,0,0,0,1018 -38,12,0,0,1,0,23511.201171875,16112.9033203125,30293.39453125,0,0,0,1019 -31,12,0,0,1,0,23511.201171875,17903.2265625,22165.8984375,0,0,0,1020 -28,12,0,0,1,0,23511.201171875,18798.38671875,36943.1640625,0,0,0,1021 -43,12,1,0,1,0,23511.201171875,19421.419921875,13559.619140625,0,0,0,1022 -37,17,1,0,1,0,23511.201171875,19693.548828125,76841.78125,0,0,0,1023 -37,17,1,0,1,0,23511.201171875,19693.548828125,76841.78125,0,0,0,1024 -23,12,0,0,1,0,23511.201171875,19854.677734375,18914.900390625,0,0,0,1025 -55,12,0,0,1,0,23511.201171875,20588.7109375,22165.8984375,0,0,0,1026 -34,17,0,0,1,0,23511.201171875,20588.7109375,23421.966796875,0,0,0,1027 -28,17,0,0,1,0,23511.201171875,20946.7734375,69453.1484375,0,0,0,1028 -31,14,0,0,1,0,23511.201171875,21483.87109375,27830.025390625,0,0,0,1029 -28,12,0,0,1,0,23511.201171875,21483.87109375,23643.625,0,0,0,1030 -25,12,0,1,1,0,23511.201171875,21483.87109375,25121.3515625,0,0,0,1031 -54,15,0,0,1,0,23511.201171875,21483.87109375,59109.0625,0,0,0,1032 -42,12,1,0,0,0,23511.201171875,21483.87109375,22165.8984375,0,0,0,1033 -35,12,0,0,1,0,23511.201171875,21483.87109375,29554.53125,0,0,0,1034 -27,13,0,0,0,0,23511.201171875,21483.87109375,22165.8984375,0,0,0,1035 -45,12,0,0,1,0,23511.201171875,21483.87109375,0,0,0,0,1036 -26,12,1,0,1,0,23511.201171875,21483.87109375,31623.349609375,0,0,0,1037 -28,16,0,0,1,0,23511.201171875,21483.87109375,11821.8134765625,0,0,0,1038 -30,16,0,0,1,0,23511.201171875,21483.87109375,22165.8984375,0,0,0,1039 -24,12,0,1,1,0,23511.201171875,21483.87109375,23052.53515625,0,0,0,1040 -26,14,0,0,1,0,23511.201171875,22020.96875,22165.8984375,0,0,0,1041 -35,14,0,0,1,0,23511.201171875,22379.03125,22165.8984375,0,0,0,1042 -42,17,0,0,1,0,23511.201171875,22379.03125,0,0,0,0,1043 -42,17,0,0,1,0,23511.201171875,22379.03125,0,0,0,0,1044 -28,16,0,0,1,0,23511.201171875,22379.03125,27337.94140625,0,0,0,1045 -28,12,0,0,1,0,23511.201171875,22379.03125,29554.53125,0,0,0,1046 -27,14,0,0,1,0,23511.201171875,22558.064453125,23531.318359375,0,0,0,1047 -35,16,0,0,1,0,23511.201171875,22737.09765625,21834.888671875,0,0,0,1048 -55,12,0,0,1,0,23511.201171875,22916.12890625,17732.71875,0,0,0,1049 -36,14,0,0,1,0,23511.201171875,23274.193359375,33248.84765625,0,0,0,1050 -42,16,0,1,1,0,23511.201171875,23274.193359375,29554.53125,0,0,0,1051 -22,12,0,0,1,0,23511.201171875,23274.193359375,26155.759765625,0,0,0,1052 -33,12,1,0,1,0,23511.201171875,23274.193359375,36943.1640625,0,0,0,1053 -38,12,0,0,1,0,23511.201171875,23274.193359375,25121.3515625,0,0,0,1054 -48,16,0,0,1,0,23511.201171875,23274.193359375,39898.6171875,0,0,0,1055 -48,16,0,0,1,0,23511.201171875,23274.193359375,39898.6171875,0,0,0,1056 -25,13,0,0,1,0,23511.201171875,23456.806640625,26007.98828125,0,0,0,1057 -23,14,0,0,1,0,23511.201171875,24169.35546875,31032.2578125,0,0,0,1058 -31,16,0,0,1,0,23511.201171875,24706.451171875,28963.44140625,0,0,0,1059 -26,12,0,0,1,0,23511.201171875,24885.484375,26599.078125,0,0,0,1060 -32,12,0,0,1,0,23511.201171875,25064.515625,26599.078125,0,0,0,1061 -29,13,0,0,1,0,23511.201171875,25064.515625,0,0,0,0,1062 -29,13,0,0,1,0,23511.201171875,25064.515625,0,0,0,0,1063 -30,16,0,0,1,0,23511.201171875,25243.548828125,27042.396484375,0,0,0,1064 -47,14,1,0,1,0,23511.201171875,25565.806640625,23974.63671875,0,0,0,1065 -51,12,1,0,1,0,23511.201171875,25601.61328125,25121.3515625,0,0,0,1066 -26,14,0,0,1,0,23511.201171875,25780.64453125,31032.2578125,0,0,0,1067 -32,16,0,0,1,0,23511.201171875,25959.677734375,35465.4375,0,0,0,1068 -35,14,0,0,1,0,23511.201171875,26496.7734375,29554.53125,0,0,0,1069 -35,14,0,0,1,0,23511.201171875,26496.7734375,29554.53125,0,0,0,1070 -54,12,0,0,1,0,23511.201171875,26854.83984375,2049.606689453125,0,0,0,1071 -55,12,0,0,1,0,23511.201171875,26854.83984375,26599.078125,0,0,0,1072 -55,12,0,0,1,0,23511.201171875,26854.83984375,26599.078125,0,0,0,1073 -38,12,0,0,1,0,23511.201171875,26854.83984375,29554.53125,0,0,0,1074 -25,12,0,0,0,0,23511.201171875,26854.83984375,18176.037109375,0,0,0,1075 -30,12,0,0,1,0,23511.201171875,28645.16015625,32509.984375,0,0,0,1076 -25,17,0,0,1,0,23511.201171875,29003.2265625,28076.8046875,0,0,0,1077 -39,12,0,0,0,0,23511.201171875,31509.677734375,15516.12890625,0,0,0,1078 -28,14,0,0,1,0,23511.201171875,32225.806640625,36943.1640625,0,0,0,1079 -47,12,1,0,1,0,23511.201171875,32225.806640625,17732.71875,0,0,0,1080 -39,17,0,0,1,0,23511.201171875,35448.38671875,32509.984375,0,0,0,1081 -49,12,0,0,1,0,23511.201171875,35806.453125,23643.625,0,0,0,1082 -21,12,0,0,1,0,23511.201171875,50129.03125,0,0,0,0,1083 -31,14,0,0,1,0,23707.12890625,20767.7421875,23939.171875,0,0,0,1084 -27,12,0,0,1,0,23707.12890625,21483.87109375,33987.7109375,0,0,0,1085 -37,12,0,0,1,0,23707.12890625,22200,22904.76171875,0,0,0,1086 -51,12,0,0,1,0,23707.12890625,22379.03125,19411.416015625,0,0,0,1087 -29,12,0,0,1,0,23707.12890625,26854.83984375,28076.8046875,0,0,0,1088 -27,14,0,0,1,0,23707.12890625,29540.322265625,23200.306640625,0,0,0,1089 -24,13,0,0,1,0,23903.0546875,1790.3226318359375,449.2288818359375,0,0,0,1090 -32,12,0,0,1,0,23903.0546875,24812.080078125,12412.9033203125,0,0,0,1091 -31,17,0,0,1,0,23903.0546875,25601.61328125,27042.396484375,0,0,0,1092 -46,12,0,0,0,0,23918.728515625,12532.2578125,0,0,0,0,1093 -40,15,0,1,1,0,24001.017578125,23274.193359375,26599.078125,0,0,0,1094 -27,16,0,0,1,0,24098.982421875,7161.29052734375,36204.30078125,0,0,0,1095 -27,17,0,0,1,0,24098.982421875,22200,25860.21484375,0,0,0,1096 -28,14,0,0,1,0,24098.982421875,22379.03125,27337.94140625,0,0,0,1097 -29,17,0,0,1,0,24098.982421875,24527.419921875,23643.625,0,0,0,1098 -36,13,0,0,1,0,24098.982421875,25064.515625,25564.669921875,0,0,0,1099 -23,12,0,0,1,0,24098.982421875,26854.83984375,17437.173828125,0,0,0,1100 -28,12,0,0,1,0,24294.908203125,18261.2890625,21427.03515625,0,0,0,1101 -28,12,0,0,1,0,24383.07421875,15217.7421875,19210.4453125,0,0,0,1102 -34,12,0,0,1,0,24486.916015625,22200,22904.76171875,0,0,0,1103 -41,12,0,0,1,0,24490.8359375,14322.5810546875,22165.8984375,0,0,0,1104 -25,13,0,0,1,0,24490.8359375,18261.2890625,0,0,0,0,1105 -45,12,0,0,1,0,24490.8359375,21483.87109375,10639.630859375,0,0,0,1106 -45,12,1,0,1,0,24490.8359375,21483.87109375,28076.8046875,0,0,0,1107 -41,12,0,0,1,0,24490.8359375,21483.87109375,33987.7109375,0,0,0,1108 -35,16,0,0,0,0,24490.8359375,21841.935546875,24825.806640625,0,0,0,1109 -35,13,1,0,1,0,24490.8359375,23274.193359375,25121.3515625,0,0,0,1110 -29,16,0,0,1,0,24490.8359375,23453.2265625,25860.21484375,0,0,0,1111 -28,13,0,0,1,0,24490.8359375,23868.580078125,23495.853515625,0,0,0,1112 -35,13,0,0,1,0,24490.8359375,23990.322265625,22165.8984375,0,0,0,1113 -35,16,0,0,1,0,24490.8359375,24169.35546875,25638.556640625,0,0,0,1114 -30,12,0,0,1,0,24490.8359375,25064.515625,29554.53125,0,0,0,1115 -29,12,0,0,1,0,24490.8359375,25064.515625,28076.8046875,0,0,0,1116 -26,14,1,0,1,0,24490.8359375,25717.984375,26643.41015625,0,0,0,1117 -28,16,0,0,1,0,24490.8359375,26460.96875,45809.5234375,0,0,0,1118 -30,16,0,0,1,0,24490.8359375,26854.83984375,38420.890625,0,0,0,1119 -26,17,0,0,0,0,24490.8359375,26854.83984375,29702.3046875,0,0,0,1120 -22,13,0,0,1,0,24490.8359375,26854.83984375,39159.75390625,0,0,0,1121 -22,12,0,0,1,0,24490.8359375,26854.83984375,25121.3515625,0,0,0,1122 -26,16,0,0,0,0,24490.8359375,27750,9605.22265625,0,0,0,1123 -43,12,1,0,1,0,24490.8359375,29355.919921875,35465.4375,0,0,0,1124 -43,13,1,0,1,0,24490.8359375,34016.12890625,39898.6171875,0,0,0,1125 -48,16,0,0,1,0,24663.251953125,18082.2578125,25121.3515625,0,0,0,1126 -45,12,0,0,1,0,24686.76171875,15217.7421875,27929.03125,0,0,0,1127 -27,12,1,0,1,0,24686.76171875,22558.064453125,22609.216796875,0,0,0,1128 -44,17,0,0,1,0,24686.76171875,23274.193359375,23348.080078125,0,0,0,1129 -26,16,0,0,1,0,24686.76171875,25422.580078125,29554.53125,0,0,0,1130 -54,16,0,0,1,0,24686.76171875,26854.83984375,26451.306640625,0,0,0,1131 -54,16,0,0,1,0,24686.76171875,26854.83984375,26451.306640625,0,0,0,1132 -54,16,0,0,1,0,24686.76171875,26854.83984375,26451.306640625,0,0,0,1133 -29,12,0,0,1,0,24686.76171875,27750,24382.48828125,0,0,0,1134 -22,12,0,0,1,0,24765.1328125,21594.87109375,34320.19921875,0,0,0,1135 -39,17,0,0,1,0,24823.91015625,25064.515625,27061.607421875,0,0,0,1136 -35,16,0,0,1,0,24882.6875,24527.419921875,36943.1640625,0,0,0,1137 -44,12,0,0,1,0,24882.6875,27929.03125,25121.3515625,0,0,0,1138 -32,16,0,0,1,0,24980.65234375,25064.515625,26599.078125,0,0,0,1139 -27,17,0,0,1,0,25078.615234375,19693.548828125,24530.26171875,0,0,0,1140 -27,17,0,0,1,0,25078.615234375,19693.548828125,24530.26171875,0,0,0,1141 -26,12,0,0,1,0,25078.615234375,23274.193359375,26599.078125,0,0,0,1142 -46,12,0,0,1,0,25078.615234375,24169.35546875,26780.83984375,0,0,0,1143 -25,16,0,0,0,0,25078.615234375,25601.61328125,30145.62109375,0,0,0,1144 -35,12,0,0,1,0,25078.615234375,26854.83984375,29554.53125,0,0,0,1145 -33,16,0,0,1,0,25078.615234375,26854.83984375,24448.986328125,0,0,0,1146 -26,16,0,0,1,0,25078.615234375,30793.548828125,36943.1640625,0,0,0,1147 -26,12,1,0,1,0,25088.41015625,23274.193359375,29554.53125,0,0,0,1148 -20,12,0,0,1,0,25294.134765625,18798.38671875,25121.3515625,0,0,0,1149 -49,12,0,0,1,0,25470.46875,17953.35546875,20244.853515625,0,0,0,1150 -25,13,0,0,1,0,25470.46875,18798.38671875,23643.625,0,0,0,1151 -28,12,1,0,0,0,25470.46875,19693.548828125,26599.078125,0,0,0,1152 -28,13,0,0,1,0,25470.46875,19693.548828125,26599.078125,0,0,0,1153 -35,12,1,0,1,0,25470.46875,21483.87109375,26599.078125,0,0,0,1154 -27,12,0,0,0,0,25470.46875,21483.87109375,25121.3515625,0,0,0,1155 -44,12,0,0,1,0,25470.46875,21483.87109375,25634.123046875,0,0,0,1156 -23,12,0,1,1,0,25470.46875,21483.87109375,32509.984375,0,0,0,1157 -32,12,1,0,1,0,25470.46875,22379.03125,31771.12109375,0,0,0,1158 -24,12,0,0,1,0,25470.46875,22737.09765625,25121.3515625,0,0,0,1159 -27,12,0,0,1,0,25470.46875,23095.16015625,31032.2578125,0,0,0,1160 -46,12,0,0,1,0,25470.46875,23274.193359375,29554.53125,0,0,0,1161 -31,12,0,0,1,0,25470.46875,23274.193359375,22165.8984375,0,0,0,1162 -27,15,1,0,0,0,25470.46875,24169.35546875,29554.53125,0,0,0,1163 -51,16,0,0,0,0,25470.46875,24169.35546875,12708.44921875,0,0,0,1164 -43,12,1,0,1,0,25470.46875,25064.515625,25121.3515625,0,0,0,1165 -32,16,1,0,1,0,25470.46875,25422.580078125,30145.62109375,0,0,0,1166 -37,12,0,0,0,0,25470.46875,25780.64453125,22461.443359375,0,0,0,1167 -37,12,0,0,0,0,25470.46875,25780.64453125,22461.443359375,0,0,0,1168 -30,12,0,0,1,0,25470.46875,25959.677734375,28076.8046875,0,0,0,1169 -45,12,1,0,1,0,25470.46875,26695.5,27898,0,0,0,1170 -45,12,1,0,1,0,25470.46875,26695.5,27898,0,0,0,1171 -49,17,0,0,1,0,25470.46875,26854.83984375,29554.53125,0,0,0,1172 -49,17,0,0,1,0,25470.46875,26854.83984375,29554.53125,0,0,0,1173 -26,17,0,0,1,0,25470.46875,26854.83984375,44331.796875,0,0,0,1174 -37,13,0,0,1,0,25470.46875,30435.484375,32509.984375,0,0,0,1175 -44,17,0,0,1,0,25470.46875,30435.484375,21427.03515625,0,0,0,1176 -30,17,0,0,1,0,25470.46875,31330.64453125,38420.890625,0,0,0,1177 -51,12,0,0,1,0,25470.46875,32225.806640625,29554.53125,0,0,0,1178 -28,17,0,0,1,0,25607.6171875,18091.2109375,22165.8984375,0,0,0,1179 -29,16,0,0,1,0,25666.39453125,28287.09765625,35465.4375,0,0,0,1180 -40,12,0,0,1,0,25707.5390625,20409.677734375,23052.53515625,0,0,0,1181 -34,16,0,0,1,0,25862.322265625,0,0,0,1,0,1182 -51,12,0,0,1,0,25862.322265625,20588.7109375,24825.806640625,0,0,0,1183 -26,16,0,0,1,0,25862.322265625,22379.03125,35465.4375,0,0,0,1184 -46,12,0,0,1,0,25862.322265625,23274.193359375,35465.4375,0,0,0,1185 -45,14,0,0,1,0,25862.322265625,28645.16015625,26599.078125,0,0,0,1186 -49,12,0,0,1,0,25862.322265625,28645.16015625,26599.078125,0,0,0,1187 -26,16,0,0,0,0,25862.322265625,31790.7578125,15646.1689453125,0,0,0,1188 -30,16,0,0,1,0,26058.248046875,28645.16015625,29258.986328125,0,0,0,1189 -50,12,0,0,1,0,26254.17578125,0,0,0,1,0,1190 -25,12,0,0,0,0,26254.17578125,21483.87109375,26599.078125,0,0,0,1191 -27,17,0,0,0,0,26254.17578125,29540.322265625,31032.2578125,0,0,0,1192 -46,16,0,0,1,0,26293.359375,65160.58203125,17732.71875,0,0,0,1193 -46,16,0,0,1,0,26293.359375,65160.58203125,17732.71875,0,0,0,1194 -43,12,1,0,1,0,26450.1015625,14322.5810546875,29554.53125,0,0,0,1195 -27,12,1,0,1,0,26450.1015625,18798.38671875,31032.2578125,0,0,0,1196 -22,12,0,0,0,0,26450.1015625,23274.193359375,19210.4453125,0,0,0,1197 -55,12,0,0,1,0,26450.1015625,23990.322265625,29554.53125,0,0,0,1198 -53,12,0,0,1,0,26450.1015625,25064.515625,26007.98828125,0,0,0,1199 -44,12,0,0,1,0,26450.1015625,25959.677734375,26746.8515625,0,0,0,1200 -47,13,0,0,1,0,26450.1015625,25959.677734375,26625.677734375,0,0,0,1201 -46,14,0,0,1,0,26450.1015625,26496.7734375,29554.53125,0,0,0,1202 -25,12,0,0,1,0,26450.1015625,26836.935546875,35465.4375,0,0,0,1203 -31,15,1,0,0,0,26450.1015625,26854.83984375,25860.21484375,0,0,0,1204 -28,16,0,0,1,0,26450.1015625,26854.83984375,29554.53125,0,0,0,1205 -40,16,0,0,1,0,26450.1015625,26854.83984375,32421.3203125,0,0,0,1206 -40,16,0,0,1,0,26450.1015625,26854.83984375,32421.3203125,0,0,0,1207 -28,12,0,0,1,0,26450.1015625,26858.419921875,29480.64453125,0,0,0,1208 -29,15,0,0,1,0,26450.1015625,27250.5,28815.66796875,0,0,0,1209 -42,16,0,0,1,0,26450.1015625,27499.35546875,29554.53125,0,0,0,1210 -30,15,0,0,1,0,26450.1015625,27570.96875,29554.53125,0,0,0,1211 -39,12,0,0,1,0,26450.1015625,27750,6354.22412109375,0,0,0,1212 -30,16,0,0,1,0,26450.1015625,28197.580078125,29554.53125,0,0,0,1213 -50,12,0,0,1,0,26450.1015625,30077.419921875,26599.078125,0,0,0,1214 -29,17,0,0,0,0,26614.6796875,28503.7265625,29315.140625,0,0,0,1215 -29,15,0,0,1,0,26646.029296875,19693.548828125,32509.984375,0,0,0,1216 -27,12,0,0,1,0,26646.029296875,29540.322265625,35465.4375,0,0,0,1217 -31,12,0,1,1,0,26841.955078125,6982.25830078125,17732.71875,0,0,0,1218 -31,12,0,1,1,0,26841.955078125,6982.25830078125,17732.71875,0,0,0,1219 -29,12,0,0,1,0,26841.955078125,20588.7109375,42854.0703125,0,0,0,1220 -27,16,0,0,1,0,26841.955078125,22200,19210.4453125,0,0,0,1221 -26,17,1,0,0,0,26841.955078125,25243.548828125,20392.626953125,0,0,0,1222 -42,17,0,0,1,0,26841.955078125,31330.64453125,36943.1640625,0,0,0,1223 -24,12,1,0,1,0,26841.955078125,31688.7109375,33839.9375,0,0,0,1224 -48,12,1,0,1,0,26908.5703125,22558.064453125,36943.1640625,0,0,0,1225 -25,13,0,0,1,0,26996.736328125,28197.580078125,22165.8984375,0,0,0,1226 -21,12,1,0,1,0,27037.8828125,16560.484375,20688.171875,0,0,0,1227 -48,12,0,0,1,0,27037.8828125,25064.515625,23643.625,0,0,0,1228 -50,12,0,0,1,0,27037.8828125,26854.83984375,27337.94140625,0,0,0,1229 -28,17,0,0,1,0,27037.8828125,27750,51720.4296875,0,0,0,1230 -29,17,0,0,0,0,27037.8828125,29182.2578125,26599.078125,0,0,0,1231 -33,17,0,0,1,0,27037.8828125,31867.7421875,28815.66796875,0,0,0,1232 -52,12,0,0,1,0,27220.09375,24706.451171875,32509.984375,0,0,0,1233 -22,12,0,0,1,0,27233.80859375,14322.5810546875,32509.984375,0,0,0,1234 -43,12,0,0,1,0,27233.80859375,25064.515625,29554.53125,0,0,0,1235 -34,13,0,0,1,0,27233.80859375,25064.515625,31032.2578125,0,0,0,1236 -46,12,0,0,1,0,27233.80859375,28645.16015625,28076.8046875,0,0,0,1237 -31,17,0,0,1,0,27429.734375,0,0,0,1,0,1238 -28,13,0,0,1,0,27429.734375,20588.7109375,23578.60546875,0,0,0,1239 -44,12,1,0,1,0,27429.734375,21483.87109375,22609.216796875,0,0,0,1240 -25,12,0,0,1,0,27429.734375,21483.87109375,28520.123046875,0,0,0,1241 -29,14,0,0,1,0,27429.734375,22099.7421875,29644.673828125,0,0,0,1242 -24,16,0,0,0,0,27429.734375,22200,25712.44140625,0,0,0,1243 -31,12,0,0,1,0,27429.734375,22379.03125,0,0,0,0,1244 -40,12,1,0,1,0,27429.734375,23274.193359375,38420.890625,0,0,0,1245 -30,17,0,0,1,0,27429.734375,25064.515625,20688.171875,0,0,0,1246 -26,16,1,0,1,0,27429.734375,25064.515625,32509.984375,0,0,0,1247 -32,12,0,0,1,0,27429.734375,25064.515625,16254.9921875,0,0,0,1248 -26,15,0,0,1,0,27429.734375,25064.515625,28815.66796875,0,0,0,1249 -28,16,0,0,1,0,27429.734375,25064.515625,31032.2578125,0,0,0,1250 -54,13,0,0,1,0,27429.734375,25422.580078125,24382.48828125,0,0,0,1251 -30,14,0,0,1,0,27429.734375,25780.64453125,31032.2578125,0,0,0,1252 -33,14,0,0,1,0,27429.734375,25959.677734375,24382.48828125,0,0,0,1253 -33,12,0,0,1,0,27429.734375,25959.677734375,27846.279296875,0,0,0,1254 -26,12,0,0,1,0,27429.734375,26496.7734375,32509.984375,0,0,0,1255 -44,13,0,0,1,0,27429.734375,26774.2734375,35465.4375,0,0,0,1256 -49,12,0,0,1,0,27429.734375,26854.83984375,26599.078125,0,0,0,1257 -55,17,1,0,1,0,27429.734375,26854.83984375,17806.60546875,0,0,0,1258 -28,12,0,0,1,0,27429.734375,26854.83984375,22165.8984375,0,0,0,1259 -45,12,0,0,1,0,27429.734375,26854.83984375,25121.3515625,0,0,0,1260 -30,14,1,0,1,0,27429.734375,26892.435546875,20688.171875,0,0,0,1261 -40,12,0,0,1,0,27429.734375,27008.806640625,25440.541015625,0,0,0,1262 -27,17,0,0,1,0,27429.734375,27750,26599.078125,0,0,0,1263 -51,16,0,0,1,0,27429.734375,28645.16015625,28076.8046875,0,0,0,1264 -51,16,0,0,1,0,27429.734375,28645.16015625,28076.8046875,0,0,0,1265 -43,12,0,0,1,0,27429.734375,28645.16015625,25121.3515625,0,0,0,1266 -37,12,0,0,1,0,27429.734375,28645.16015625,0,0,0,0,1267 -37,12,0,0,1,0,27429.734375,28645.16015625,0,0,0,0,1268 -38,14,0,0,1,0,27429.734375,29046.193359375,27929.03125,0,0,0,1269 -36,16,0,0,0,0,27429.734375,30256.451171875,30736.712890625,0,0,0,1270 -27,13,1,0,1,0,27429.734375,30435.484375,24973.578125,0,0,0,1271 -21,12,0,0,1,0,27429.734375,30435.484375,31978.00390625,0,0,0,1272 -25,14,0,0,0,0,27429.734375,32225.806640625,31032.2578125,0,0,0,1273 -33,13,0,0,1,0,27429.734375,41177.41796875,38420.890625,0,0,0,1274 -38,14,0,0,1,0,27429.734375,68032.2578125,26599.078125,0,0,0,1275 -32,16,0,0,1,0,27625.662109375,29540.322265625,33987.7109375,0,0,0,1276 -27,12,0,0,0,0,27821.58984375,27212.90234375,32509.984375,0,0,0,1277 -24,17,0,0,0,0,27821.58984375,27570.96875,32509.984375,0,0,0,1278 -43,12,0,0,1,0,27821.58984375,28645.16015625,32509.984375,0,0,0,1279 -26,17,0,0,1,0,27843.140625,28645.16015625,49651.61328125,0,0,0,1280 -33,12,0,0,1,0,28017.515625,25422.580078125,22756.98828125,0,0,0,1281 -34,14,0,0,1,0,28017.515625,26854.83984375,36943.1640625,0,0,0,1282 -28,12,0,0,1,0,28017.515625,29540.322265625,32509.984375,0,0,0,1283 -41,12,0,0,1,0,28017.515625,30435.484375,32509.984375,0,0,0,1284 -25,12,0,0,1,0,28017.515625,31062.09765625,28076.8046875,0,0,0,1285 -28,17,0,0,1,0,28017.515625,31151.61328125,31032.2578125,0,0,0,1286 -26,13,1,0,1,0,28105.681640625,37596.7734375,58653.921875,0,0,0,1287 -28,17,0,0,1,0,28213.44140625,25422.580078125,26451.306640625,0,0,0,1288 -53,12,0,0,1,0,28213.44140625,26854.83984375,0,0,0,0,1289 -55,12,0,0,1,0,28213.44140625,33206.90234375,31771.12109375,0,0,0,1290 -29,14,0,0,1,0,28409.369140625,21125.806640625,23348.080078125,0,0,0,1291 -39,14,0,0,1,0,28409.369140625,28645.16015625,31032.2578125,0,0,0,1292 -31,16,0,0,1,0,28409.369140625,28915.5,32509.984375,0,0,0,1293 -25,16,0,0,1,0,28409.369140625,29540.322265625,32509.984375,0,0,0,1294 -25,14,0,0,1,0,28409.369140625,30435.484375,10935.1767578125,0,0,0,1295 -29,16,0,0,1,0,28409.369140625,32225.806640625,42854.0703125,0,0,0,1296 -29,16,1,0,1,0,28409.369140625,32225.806640625,29554.53125,0,0,0,1297 -27,14,0,0,1,0,28409.369140625,32225.806640625,39898.6171875,0,0,0,1298 -34,16,0,0,1,0,28409.369140625,32583.87109375,35465.4375,0,0,0,1299 -45,12,0,0,1,0,28589.62109375,28263.822265625,29258.986328125,0,0,0,1300 -28,12,0,0,1,0,28605.294921875,20588.7109375,34135.484375,0,0,0,1301 -43,16,0,0,1,0,28801.22265625,27929.03125,26953.732421875,0,0,0,1302 -54,12,0,0,1,0,28889.388671875,35806.453125,31032.2578125,0,0,0,1303 -29,16,0,0,1,0,28899.185546875,29540.322265625,0,0,0,0,1304 -55,12,0,0,1,0,29100.990234375,26409.048828125,29369.81640625,0,0,0,1305 -55,12,0,0,1,0,29100.990234375,26409.048828125,29369.81640625,0,0,0,1306 -29,12,1,0,0,0,29193.07421875,15396.7744140625,31032.2578125,0,0,0,1307 -50,12,1,0,1,0,29193.07421875,17903.2265625,25121.3515625,0,0,0,1308 -24,12,0,0,1,0,29193.07421875,21304.83984375,19242.955078125,0,0,0,1309 -26,12,0,0,1,0,29330.224609375,28287.09765625,38420.890625,0,0,0,1310 -41,13,0,0,0,0,29389.001953125,0,30293.39453125,0,1,0,1311 -47,17,0,0,1,0,29389.001953125,20230.64453125,42410.75390625,0,0,0,1312 -28,17,0,0,1,0,29389.001953125,21483.87109375,19210.4453125,0,0,0,1313 -42,12,0,0,1,0,29389.001953125,22379.03125,28490.568359375,0,0,0,1314 -37,12,1,0,1,0,29389.001953125,22379.03125,19210.4453125,0,0,0,1315 -37,12,1,0,1,0,29389.001953125,22379.03125,19210.4453125,0,0,0,1316 -48,16,0,0,1,0,29389.001953125,23274.193359375,0,0,0,0,1317 -21,12,0,0,1,0,29389.001953125,24169.35546875,28815.66796875,0,0,0,1318 -46,12,0,0,1,0,29389.001953125,24214.11328125,33987.7109375,0,0,0,1319 -29,12,0,0,1,0,29389.001953125,25959.677734375,35465.4375,0,0,0,1320 -38,12,0,0,1,0,29389.001953125,26496.7734375,30191.431640625,0,0,0,1321 -28,12,0,0,1,0,29389.001953125,26854.83984375,35465.4375,0,0,0,1322 -38,12,0,0,1,0,29389.001953125,26854.83984375,31032.2578125,0,0,0,1323 -53,12,0,0,1,0,29389.001953125,26854.83984375,26599.078125,0,0,0,1324 -46,12,0,0,1,0,29389.001953125,27033.87109375,27781.259765625,0,0,0,1325 -46,12,0,0,1,0,29389.001953125,27033.87109375,27781.259765625,0,0,0,1326 -33,16,0,0,1,0,29389.001953125,27750,96052.2265625,0,0,0,1327 -34,12,0,0,1,0,29389.001953125,27912.919921875,11821.8134765625,0,0,0,1328 -35,17,0,0,1,0,29389.001953125,28645.16015625,28076.8046875,0,0,0,1329 -53,12,0,0,1,0,29389.001953125,28645.16015625,29554.53125,0,0,0,1330 -26,12,0,0,1,0,29389.001953125,28645.16015625,33987.7109375,0,0,0,1331 -26,16,0,0,1,0,29389.001953125,28645.16015625,35022.12109375,0,0,0,1332 -50,13,0,0,1,0,29389.001953125,29540.322265625,28076.8046875,0,0,0,1333 -46,12,1,0,1,0,29389.001953125,30435.484375,22165.8984375,0,0,0,1334 -43,14,0,0,0,0,29389.001953125,30435.484375,29554.53125,0,0,0,1335 -26,14,0,0,0,0,29389.001953125,30435.484375,29554.53125,0,0,0,1336 -33,17,0,0,1,0,29389.001953125,30435.484375,31032.2578125,0,0,0,1337 -33,17,0,0,1,0,29389.001953125,30435.484375,19210.4453125,0,0,0,1338 -42,12,0,0,1,0,29389.001953125,30437.2734375,26007.98828125,0,0,0,1339 -34,12,0,0,1,0,29389.001953125,30793.548828125,31180.03125,0,0,0,1340 -34,12,0,0,1,0,29389.001953125,30793.548828125,31180.03125,0,0,0,1341 -34,17,0,0,1,0,29389.001953125,31330.64453125,25712.44140625,0,0,0,1342 -37,17,0,0,1,0,29389.001953125,31330.64453125,33987.7109375,0,0,0,1343 -34,17,0,0,1,0,29389.001953125,32225.806640625,32672.53515625,0,0,0,1344 -37,12,1,0,1,0,29389.001953125,32225.806640625,44331.796875,0,0,0,1345 -26,17,0,0,1,0,29389.001953125,32225.806640625,35465.4375,0,0,0,1346 -36,17,0,0,1,0,29389.001953125,34911.2890625,32509.984375,0,0,0,1347 -28,14,0,0,0,0,29389.001953125,35448.38671875,33987.7109375,0,0,0,1348 -31,12,0,0,1,0,29389.001953125,35806.453125,39159.75390625,0,0,0,1349 -25,14,0,0,1,0,29389.001953125,35806.453125,33839.9375,0,0,0,1350 -31,14,0,0,1,0,29389.001953125,35806.453125,56153.609375,0,0,0,1351 -28,12,0,0,1,0,29389.001953125,41177.41796875,47287.25,0,0,0,1352 -34,12,0,0,1,0,29389.001953125,42967.7421875,31032.2578125,0,0,0,1353 -47,14,1,0,1,0,29390.9609375,27750,36647.6171875,0,0,0,1354 -35,12,0,0,1,0,29422.310546875,28645.16015625,29554.53125,0,0,0,1355 -35,15,1,0,1,0,29477.169921875,34098.484375,19062.673828125,0,0,0,1356 -35,15,1,0,1,0,29477.169921875,34098.484375,19062.673828125,0,0,0,1357 -31,12,0,0,1,0,29584.9296875,26854.83984375,29554.53125,0,0,0,1358 -24,12,0,0,1,0,29780.85546875,30883.064453125,32509.984375,0,0,0,1359 -28,12,0,0,1,0,29976.78125,0,0,0,1,0,1360 -27,16,0,0,1,0,29976.78125,30793.548828125,51720.4296875,0,0,0,1361 -47,12,0,0,1,0,30074.744140625,33312.53125,15072.810546875,0,0,0,1362 -47,12,0,0,1,0,30074.744140625,33312.53125,15072.810546875,0,0,0,1363 -37,14,0,1,1,0,30108.052734375,26854.83984375,26554.74609375,0,0,0,1364 -22,14,0,0,1,0,30368.634765625,20588.7109375,27485.71484375,0,0,0,1365 -47,12,0,0,1,0,30368.634765625,23274.193359375,25860.21484375,0,0,0,1366 -32,14,0,0,1,0,30368.634765625,24169.35546875,22165.8984375,0,0,0,1367 -29,15,0,0,0,0,30368.634765625,28645.16015625,44331.796875,0,0,0,1368 -27,16,0,0,0,0,30368.634765625,31330.64453125,36943.1640625,0,0,0,1369 -37,14,0,0,1,0,30368.634765625,44758.06640625,81274.9609375,0,0,0,1370 -37,14,0,0,1,0,30368.634765625,44758.06640625,81274.9609375,0,0,0,1371 -43,12,0,0,1,0,30564.5625,23811.2890625,31032.2578125,0,0,0,1372 -43,12,0,0,1,0,30564.5625,23811.2890625,31032.2578125,0,0,0,1373 -34,12,0,0,1,0,30564.5625,24885.484375,24678.033203125,0,0,0,1374 -30,12,0,0,1,0,30564.5625,26854.83984375,14777.265625,0,0,0,1375 -39,16,0,0,0,0,30564.5625,28645.16015625,33987.7109375,0,0,0,1376 -35,16,0,0,1,0,30564.5625,29540.322265625,37120.4921875,0,0,0,1377 -28,12,0,0,1,0,30564.5625,32941.93359375,36204.30078125,0,0,0,1378 -32,12,0,0,1,0,30564.5625,35806.453125,23052.53515625,0,0,0,1379 -26,12,0,0,1,0,30564.5625,39387.09765625,39898.6171875,0,0,0,1380 -30,12,1,0,1,0,30758.529296875,35448.38671875,48247.7734375,0,0,0,1381 -27,12,0,0,1,0,30760.48828125,25064.515625,31908.55078125,0,0,0,1382 -27,16,0,0,1,0,30760.48828125,26317.7421875,25860.21484375,0,0,0,1383 -28,12,0,0,1,0,30760.48828125,28824.193359375,39898.6171875,0,0,0,1384 -39,12,0,0,1,0,30760.48828125,32583.87109375,34726.57421875,0,0,0,1385 -28,15,1,0,1,0,30768.326171875,33486.1953125,30828.33203125,0,0,0,1386 -48,12,0,0,1,0,30860.41015625,29269.984375,34753.17578125,0,0,0,1387 -48,14,0,0,1,0,30895.677734375,34732.2578125,32509.984375,0,0,0,1388 -37,17,0,0,1,0,30956.4140625,30435.484375,27939.376953125,0,0,0,1389 -49,17,0,0,1,0,30956.4140625,31867.7421875,35465.4375,0,0,0,1390 -25,15,0,0,1,0,30956.4140625,41177.41796875,35465.4375,0,0,0,1391 -27,15,0,0,1,0,31152.341796875,34016.12890625,43001.84375,0,0,0,1392 -51,17,0,1,1,0,31348.26953125,0,88663.59375,0,1,0,1393 -24,15,0,0,1,0,31348.26953125,26854.83984375,26599.078125,0,0,0,1394 -31,17,0,0,1,0,31348.26953125,26854.83984375,32509.984375,0,0,0,1395 -45,12,0,0,1,0,31348.26953125,27391.935546875,25564.669921875,0,0,0,1396 -45,12,0,0,1,0,31348.26953125,27391.935546875,25564.669921875,0,0,0,1397 -39,14,0,0,1,0,31348.26953125,27750,47287.25,0,0,0,1398 -39,14,0,0,1,0,31348.26953125,27750,47287.25,0,0,0,1399 -25,17,0,0,1,0,31348.26953125,28249.5,35561.48828125,0,0,0,1400 -53,17,0,0,1,0,31348.26953125,28645.16015625,27929.03125,0,0,0,1401 -26,16,0,0,1,0,31348.26953125,28645.16015625,35465.4375,0,0,0,1402 -31,12,0,0,1,0,31348.26953125,28645.16015625,27337.94140625,0,0,0,1403 -32,17,0,0,1,0,31348.26953125,28645.16015625,28076.8046875,0,0,0,1404 -48,17,0,0,1,0,31348.26953125,29540.322265625,32951.82421875,0,0,0,1405 -47,17,0,0,0,0,31348.26953125,29540.322265625,29258.986328125,0,0,0,1406 -44,16,0,0,1,0,31348.26953125,30435.484375,19210.4453125,0,0,0,1407 -41,16,0,0,1,0,31348.26953125,30435.484375,20688.171875,0,0,0,1408 -44,16,0,0,1,0,31348.26953125,30435.484375,33987.7109375,0,0,0,1409 -52,17,0,0,1,0,31348.26953125,31293.048828125,32509.984375,0,0,0,1410 -40,12,0,0,1,0,31348.26953125,31330.64453125,27633.486328125,0,0,0,1411 -52,12,0,0,0,0,31348.26953125,32225.806640625,32509.984375,0,0,0,1412 -53,16,0,0,1,0,31348.26953125,32225.806640625,32509.984375,0,0,0,1413 -42,16,0,0,1,0,31348.26953125,32225.806640625,32214.439453125,0,0,0,1414 -39,14,0,0,1,0,31348.26953125,32569.548828125,31020.435546875,0,0,0,1415 -42,17,0,0,1,0,31348.26953125,32762.90234375,39159.75390625,0,0,0,1416 -31,14,0,0,1,0,31348.26953125,34016.12890625,38986.859375,0,0,0,1417 -47,14,0,0,1,0,31348.26953125,34016.12890625,25150.90625,0,0,0,1418 -51,16,0,0,1,0,31348.26953125,35448.38671875,44331.796875,0,0,0,1419 -44,13,0,0,1,0,31348.26953125,35806.453125,36943.1640625,0,0,0,1420 -35,14,0,0,1,0,31348.26953125,36630,42854.0703125,0,0,0,1421 -44,16,1,0,1,0,31644.1171875,30621.677734375,23495.853515625,0,0,0,1422 -46,12,0,0,1,0,31740.12109375,25780.64453125,17437.173828125,0,0,0,1423 -32,14,0,0,1,0,31818.4921875,31330.64453125,70930.875,0,0,0,1424 -29,16,0,0,1,0,31936.048828125,26640,24825.806640625,0,0,0,1425 -38,17,0,0,0,0,31936.048828125,33300,33805.94921875,0,0,0,1426 -26,14,0,0,1,0,32131.9765625,29898.38671875,28032.47265625,0,0,0,1427 -43,16,0,0,1,0,32131.9765625,31330.64453125,33987.7109375,0,0,0,1428 -45,16,0,0,0,0,32131.9765625,31330.64453125,31401.689453125,0,0,0,1429 -34,17,0,0,0,0,32131.9765625,44758.06640625,9161.9052734375,0,0,0,1430 -49,14,0,0,1,0,32327.90234375,14322.5810546875,24530.26171875,0,0,0,1431 -27,17,0,0,1,0,32327.90234375,25064.515625,36943.1640625,0,0,0,1432 -26,16,0,0,1,0,32327.90234375,27750,32509.984375,0,0,0,1433 -41,16,0,0,1,0,32327.90234375,31330.64453125,0,0,0,0,1434 -43,14,0,0,1,0,32327.90234375,31420.16015625,31032.2578125,0,0,0,1435 -28,13,0,0,1,0,32327.90234375,31688.7109375,40637.48046875,0,0,0,1436 -28,12,1,0,1,0,32327.90234375,32225.806640625,39898.6171875,0,0,0,1437 -27,16,0,0,1,0,32327.90234375,32225.806640625,39159.75390625,0,0,0,1438 -32,12,0,0,1,0,32327.90234375,32225.806640625,32509.984375,0,0,0,1439 -31,12,0,0,1,0,32327.90234375,32225.806640625,32509.984375,0,0,0,1440 -38,17,0,0,0,0,32327.90234375,32225.806640625,43297.390625,0,0,0,1441 -43,12,0,0,0,0,32327.90234375,33479.03125,33987.7109375,0,0,0,1442 -34,17,0,0,1,0,32327.90234375,34016.12890625,33987.7109375,0,0,0,1443 -22,14,0,0,1,0,32327.90234375,41177.41796875,32509.984375,0,0,0,1444 -50,14,0,0,1,0,32602.19921875,27889.64453125,27314.298828125,0,0,0,1445 -44,14,0,0,1,0,32719.755859375,29540.322265625,26952.255859375,0,0,0,1446 -53,12,0,0,1,0,32868.66015625,31509.677734375,18914.900390625,0,0,0,1447 -47,12,0,0,1,0,32915.68359375,27750,18914.900390625,0,0,0,1448 -47,12,0,0,1,0,32915.68359375,27750,18914.900390625,0,0,0,1449 -41,16,1,0,1,0,33307.53515625,23274.193359375,22165.8984375,0,0,0,1450 -41,16,1,0,1,0,33307.53515625,23274.193359375,22165.8984375,0,0,0,1451 -41,16,1,0,1,0,33307.53515625,23274.193359375,22165.8984375,0,0,0,1452 -48,16,0,0,1,0,33307.53515625,26058.14453125,31918.89453125,0,0,0,1453 -48,16,0,0,1,0,33307.53515625,26058.14453125,31918.89453125,0,0,0,1454 -36,13,0,0,1,0,33307.53515625,28645.16015625,28372.349609375,0,0,0,1455 -49,12,0,0,1,0,33307.53515625,28645.16015625,32580.916015625,0,0,0,1456 -33,17,1,0,1,0,33307.53515625,29540.322265625,17732.71875,0,0,0,1457 -49,14,0,0,1,0,33307.53515625,30435.484375,29554.53125,0,0,0,1458 -36,12,0,0,1,0,33307.53515625,30435.484375,31032.2578125,0,0,0,1459 -50,17,0,0,1,0,33307.53515625,30435.484375,25860.21484375,0,0,0,1460 -36,12,0,0,1,0,33307.53515625,30435.484375,41376.34375,0,0,0,1461 -27,16,0,0,1,0,33307.53515625,30435.484375,0,0,0,0,1462 -52,16,0,0,1,0,33307.53515625,30793.548828125,28815.66796875,0,0,0,1463 -38,12,0,0,1,0,33307.53515625,31330.64453125,31771.12109375,0,0,0,1464 -25,14,0,0,1,0,33307.53515625,31330.64453125,35760.984375,0,0,0,1465 -33,17,0,0,1,0,33307.53515625,31867.7421875,35465.4375,0,0,0,1466 -30,12,0,0,1,0,33307.53515625,32046.7734375,37682.02734375,0,0,0,1467 -53,12,0,0,1,0,33307.53515625,32225.806640625,33544.39453125,0,0,0,1468 -34,12,0,0,1,0,33307.53515625,32583.87109375,31032.2578125,0,0,0,1469 -36,12,0,0,1,0,33307.53515625,33120.96875,33987.7109375,0,0,0,1470 -42,13,0,0,1,0,33307.53515625,33120.96875,44331.796875,0,0,0,1471 -34,12,0,0,1,0,33307.53515625,34016.12890625,32509.984375,0,0,0,1472 -29,17,0,0,1,0,33307.53515625,34016.12890625,26980.33203125,0,0,0,1473 -52,12,0,0,1,0,33307.53515625,34171.88671875,28667.896484375,0,0,0,1474 -42,14,0,0,1,0,33307.53515625,37596.7734375,48764.9765625,0,0,0,1475 -53,15,0,0,1,0,33307.53515625,37596.7734375,38420.890625,0,0,0,1476 -32,13,1,0,1,0,33307.53515625,37596.7734375,46891.21875,0,0,0,1477 -39,12,0,0,1,0,33307.53515625,39387.09765625,28076.8046875,0,0,0,1478 -28,16,0,0,1,0,33307.53515625,39387.09765625,34726.57421875,0,0,0,1479 -28,12,1,0,1,0,33503.4609375,26854.83984375,25121.3515625,0,0,0,1480 -26,14,0,0,1,0,33503.4609375,36032.03125,34559.58984375,0,0,0,1481 -25,14,1,0,1,0,33699.390625,17724.193359375,25121.3515625,0,0,0,1482 -52,12,0,0,1,0,33895.31640625,47622.58203125,39011.98046875,0,0,0,1483 -35,16,0,0,1,0,34091.2421875,26854.83984375,31032.2578125,0,0,0,1484 -44,12,0,0,1,0,34091.2421875,32046.7734375,35465.4375,0,0,0,1485 -33,15,0,0,1,0,34091.2421875,34016.12890625,33248.84765625,0,0,0,1486 -29,12,0,1,1,0,34287.16796875,26541.53125,39159.75390625,0,0,0,1487 -53,16,0,0,1,0,34287.16796875,28645.16015625,22165.8984375,0,0,0,1488 -26,16,0,0,1,0,34287.16796875,32225.806640625,36943.1640625,0,0,0,1489 -37,17,0,0,1,0,34287.16796875,35806.453125,41376.34375,0,0,0,1490 -45,12,0,0,1,0,34287.16796875,35806.453125,31032.2578125,0,0,0,1491 -27,17,0,0,1,0,34287.16796875,37596.7734375,39307.52734375,0,0,0,1492 -38,12,1,0,1,0,34483.09765625,23632.2578125,19210.4453125,0,0,0,1493 -34,13,0,0,1,0,34483.09765625,31509.677734375,33396.62109375,0,0,0,1494 -34,12,0,0,1,0,34731.921875,30435.484375,39898.6171875,0,0,0,1495 -32,14,0,0,1,0,34874.94921875,35788.546875,41376.34375,0,0,0,1496 -32,12,0,0,0,0,35070.875,32225.806640625,27337.94140625,0,0,0,1497 -29,14,0,0,1,0,35266.80078125,16112.9033203125,20688.171875,0,0,0,1498 -38,12,1,0,1,0,35266.80078125,25064.515625,36943.1640625,0,0,0,1499 -25,14,1,0,1,0,35266.80078125,25601.61328125,33101.07421875,0,0,0,1500 -35,12,0,0,1,0,35266.80078125,26854.83984375,32509.984375,0,0,0,1501 -35,12,0,0,1,0,35266.80078125,26854.83984375,32509.984375,0,0,0,1502 -31,17,0,0,1,0,35266.80078125,31806.87109375,62064.515625,0,0,0,1503 -49,12,0,0,1,0,35266.80078125,32225.806640625,47287.25,0,0,0,1504 -55,12,0,0,1,0,35266.80078125,32225.806640625,25860.21484375,0,0,0,1505 -32,12,0,0,1,0,35266.80078125,32225.806640625,33987.7109375,0,0,0,1506 -46,14,0,0,1,0,35266.80078125,33120.96875,33987.7109375,0,0,0,1507 -28,15,0,0,1,0,35266.80078125,34016.12890625,35465.4375,0,0,0,1508 -34,16,0,0,1,0,35266.80078125,34016.12890625,35465.4375,0,0,0,1509 -35,16,0,0,1,0,35266.80078125,34016.12890625,40489.70703125,0,0,0,1510 -34,12,0,0,1,0,35266.80078125,35806.453125,36943.1640625,0,0,0,1511 -40,16,0,0,1,0,35266.80078125,35806.453125,36943.1640625,0,0,0,1512 -40,16,0,0,1,0,35266.80078125,35806.453125,36943.1640625,0,0,0,1513 -29,14,0,0,1,0,35266.80078125,37596.7734375,45809.5234375,0,0,0,1514 -45,12,0,0,1,0,35266.80078125,38366.61328125,38420.890625,0,0,0,1515 -34,16,0,0,1,0,35266.80078125,39387.09765625,41671.890625,0,0,0,1516 -47,12,0,0,1,0,35266.80078125,40103.2265625,42262.98046875,0,0,0,1517 -31,16,0,0,1,0,35266.80078125,41177.41796875,35465.4375,0,0,0,1518 -53,12,1,0,1,0,35266.80078125,42967.7421875,35465.4375,0,0,0,1519 -51,12,0,0,1,0,35266.80078125,44758.06640625,0,0,0,0,1520 -40,16,0,0,1,0,35266.80078125,44758.06640625,56153.609375,0,0,0,1521 -27,12,0,0,1,0,35266.80078125,53888.7109375,14777.265625,0,0,0,1522 -33,16,0,1,1,0,35266.80078125,85935.484375,96052.2265625,0,0,0,1523 -41,16,0,0,1,0,35582.2421875,34016.12890625,42854.0703125,0,0,0,1524 -41,16,0,0,1,0,35582.2421875,34016.12890625,42854.0703125,0,0,0,1525 -33,12,0,0,1,0,35658.65625,34016.12890625,32509.984375,0,0,0,1526 -53,13,0,0,1,0,35658.65625,35806.453125,35465.4375,0,0,0,1527 -45,12,0,0,1,0,35756.6171875,31509.677734375,27377.83984375,0,0,0,1528 -50,17,0,0,1,0,36050.5078125,37596.7734375,13299.5390625,0,0,0,1529 -37,14,0,0,1,0,36197.453125,29361.2890625,21870.353515625,0,0,0,1530 -27,16,0,0,1,0,36246.4375,0,0,0,1,0,1531 -27,16,0,0,1,0,36246.4375,28192.2109375,40903.47265625,0,0,0,1532 -48,12,0,0,1,0,36246.4375,31330.64453125,32509.984375,0,0,0,1533 -47,12,0,0,1,0,36246.4375,31796.12890625,42854.0703125,0,0,0,1534 -47,17,0,0,1,0,36246.4375,34016.12890625,35465.4375,0,0,0,1535 -33,15,0,0,1,0,36246.4375,34213.06640625,35465.4375,0,0,0,1536 -32,17,0,0,1,0,36640.24609375,34016.12890625,57631.3359375,0,0,0,1537 -34,14,0,0,1,0,36834.21484375,0,0,0,1,0,1538 -43,17,0,0,1,0,37226.0703125,16650,30441.16796875,0,0,0,1539 -31,14,0,0,1,0,37226.0703125,17903.2265625,25860.21484375,0,0,0,1540 -26,12,0,0,1,0,37226.0703125,25959.677734375,26599.078125,0,0,0,1541 -29,14,0,0,0,0,37226.0703125,27284.515625,36943.1640625,0,0,0,1542 -44,17,0,0,1,0,37226.0703125,32075.419921875,37386.48046875,0,0,0,1543 -36,17,0,1,1,0,37226.0703125,33300,39603.0703125,0,0,0,1544 -26,17,0,0,1,0,37226.0703125,34016.12890625,44331.796875,0,0,0,1545 -28,16,0,0,1,0,37226.0703125,34016.12890625,35465.4375,0,0,0,1546 -35,17,0,0,1,0,37226.0703125,35806.453125,39898.6171875,0,0,0,1547 -52,12,0,0,1,0,37226.0703125,35831.515625,48764.9765625,0,0,0,1548 -36,13,0,0,0,0,37226.0703125,36150.1953125,44308.15234375,0,0,0,1549 -28,17,0,0,1,0,37226.0703125,37507.2578125,38420.890625,0,0,0,1550 -44,17,0,0,1,0,37226.0703125,37596.7734375,36204.30078125,0,0,0,1551 -37,13,0,0,1,0,37226.0703125,37596.7734375,39529.1875,0,0,0,1552 -51,12,0,0,1,0,37226.0703125,38939.515625,35465.4375,0,0,0,1553 -50,12,0,0,1,0,37226.0703125,39029.03125,36943.1640625,0,0,0,1554 -29,12,0,0,1,0,37226.0703125,39924.1953125,27918.6875,0,0,0,1555 -32,17,0,0,1,0,37226.0703125,46548.38671875,25121.3515625,0,0,0,1556 -38,14,0,0,1,0,37226.0703125,50129.03125,44331.796875,0,0,0,1557 -47,17,0,0,1,0,37343.625,28906.548828125,35732.90625,0,0,0,1558 -47,17,0,0,1,0,37343.625,28906.548828125,35732.90625,0,0,0,1559 -31,17,0,0,1,0,38009.77734375,36705.1953125,42854.0703125,0,0,0,1560 -50,16,0,0,1,0,38205.703125,34911.2890625,33987.7109375,0,0,0,1561 -39,12,0,0,1,0,38205.703125,39387.09765625,43740.70703125,0,0,0,1562 -27,13,0,0,1,0,38401.62890625,34016.12890625,11128.7587890625,0,0,0,1563 -46,16,0,0,1,0,38597.5546875,37596.7734375,48764.9765625,0,0,0,1564 -46,16,0,0,1,0,38597.5546875,37596.7734375,48764.9765625,0,0,0,1565 -33,16,0,0,1,0,38597.5546875,41177.41796875,42854.0703125,0,0,0,1566 -25,16,0,0,0,0,39185.3359375,0,23389.455078125,0,1,0,1567 -36,12,0,0,1,0,39185.3359375,15217.7421875,16254.9921875,0,0,0,1568 -39,12,0,0,1,0,39185.3359375,24169.35546875,23643.625,0,0,0,1569 -35,17,0,0,1,0,39185.3359375,30435.484375,33426.17578125,0,0,0,1570 -35,17,0,0,1,0,39185.3359375,30435.484375,33426.17578125,0,0,0,1571 -46,17,0,0,1,0,39185.3359375,31330.64453125,31298.248046875,0,0,0,1572 -31,17,0,0,1,0,39185.3359375,33120.96875,47287.25,0,0,0,1573 -52,15,0,0,1,0,39185.3359375,35806.453125,38420.890625,0,0,0,1574 -50,16,0,0,0,0,39185.3359375,35806.453125,40637.48046875,0,0,0,1575 -49,12,0,0,1,0,39185.3359375,35806.453125,33987.7109375,0,0,0,1576 -53,16,0,0,1,0,39185.3359375,35806.453125,51720.4296875,0,0,0,1577 -44,14,0,0,1,0,39185.3359375,35806.453125,35465.4375,0,0,0,1578 -46,16,0,0,1,0,39185.3359375,35806.453125,36943.1640625,0,0,0,1579 -42,14,0,0,1,0,39185.3359375,36701.61328125,39898.6171875,0,0,0,1580 -43,12,0,0,1,0,39185.3359375,36701.61328125,45809.5234375,0,0,0,1581 -28,12,1,0,1,0,39185.3359375,36776.8046875,34726.57421875,0,0,0,1582 -54,15,0,0,1,0,39185.3359375,37471.453125,39304.5703125,0,0,0,1583 -42,16,0,0,1,0,39185.3359375,37596.7734375,47287.25,0,0,0,1584 -34,16,0,0,1,0,39185.3359375,37596.7734375,39898.6171875,0,0,0,1585 -29,13,1,0,1,0,39185.3359375,37596.7734375,38420.890625,0,0,0,1586 -47,16,0,0,1,0,39185.3359375,39387.09765625,38420.890625,0,0,0,1587 -33,16,0,0,1,0,39185.3359375,39387.09765625,44331.796875,0,0,0,1588 -40,17,0,1,1,0,39185.3359375,41177.41796875,33987.7109375,0,0,0,1589 -40,17,0,1,1,0,39185.3359375,41177.41796875,33987.7109375,0,0,0,1590 -45,14,0,0,1,0,39185.3359375,42538.06640625,36943.1640625,0,0,0,1591 -31,16,0,0,1,0,39185.3359375,42967.7421875,76841.78125,0,0,0,1592 -32,12,0,0,1,0,39185.3359375,42967.7421875,41376.34375,0,0,0,1593 -27,17,0,0,1,0,39185.3359375,44758.06640625,29554.53125,0,0,0,1594 -44,17,0,0,1,0,39185.3359375,44758.06640625,51720.4296875,0,0,0,1595 -38,17,0,0,1,0,39185.3359375,48338.7109375,47287.25,0,0,0,1596 -27,17,0,0,0,0,40164.96875,41177.41796875,44331.796875,0,0,0,1597 -38,12,1,0,1,0,40570.5390625,10741.9345703125,27190.169921875,0,0,0,1598 -39,17,0,0,1,0,40752.75,0,0,0,1,0,1599 -46,14,0,0,1,0,41144.6015625,30256.451171875,35465.4375,0,0,0,1600 -25,17,0,0,1,0,41144.6015625,35806.453125,38420.890625,0,0,0,1601 -52,12,0,0,1,0,41144.6015625,37596.7734375,36943.1640625,0,0,0,1602 -35,15,0,0,1,0,41144.6015625,39387.09765625,35465.4375,0,0,0,1603 -53,12,0,0,1,0,41144.6015625,42967.7421875,39898.6171875,0,0,0,1604 -33,16,0,0,1,0,41144.6015625,42967.7421875,41080.80078125,0,0,0,1605 -30,16,0,0,1,0,41144.6015625,42967.7421875,47287.25,0,0,0,1606 -51,16,0,0,1,0,41144.6015625,44758.06640625,48764.9765625,0,0,0,1607 -36,12,1,0,1,0,41732.3828125,37596.7734375,31032.2578125,0,0,0,1608 -33,13,0,0,1,0,41732.3828125,47264.515625,51073.1875,0,0,0,1609 -50,17,0,0,1,0,42124.234375,0,70930.875,0,1,0,1610 -47,16,0,0,1,0,42124.234375,41177.41796875,44331.796875,0,0,0,1611 -36,14,0,0,1,0,42124.234375,42072.58203125,41376.34375,0,0,0,1612 -48,12,0,0,1,0,42124.234375,42967.7421875,36943.1640625,0,0,0,1613 -48,12,0,0,1,0,42124.234375,42967.7421875,36943.1640625,0,0,0,1614 -48,17,0,0,1,0,42294.69140625,41177.41796875,41376.34375,0,0,0,1615 -37,17,0,0,1,0,42712.015625,43862.90234375,31032.2578125,0,0,0,1616 -50,17,0,0,1,0,42907.94140625,44758.06640625,39898.6171875,0,0,0,1617 -34,16,0,0,1,0,43103.87109375,21304.83984375,20688.171875,0,0,0,1618 -30,12,1,0,1,0,43103.87109375,21483.87109375,26599.078125,0,0,0,1619 -28,16,0,0,1,0,43103.87109375,32225.806640625,38420.890625,0,0,0,1620 -37,12,0,0,0,0,43103.87109375,32225.806640625,32509.984375,0,0,0,1621 -46,12,0,0,1,0,43103.87109375,35806.453125,31032.2578125,0,0,0,1622 -32,12,0,1,1,0,43103.87109375,37596.7734375,38420.890625,0,0,0,1623 -29,12,0,0,0,0,43103.87109375,37596.7734375,50242.703125,0,0,0,1624 -40,16,0,0,1,0,43103.87109375,39387.09765625,45809.5234375,0,0,0,1625 -44,15,0,0,1,0,43103.87109375,39387.09765625,51232.78125,0,0,0,1626 -38,12,0,0,1,0,43103.87109375,41177.41796875,36943.1640625,0,0,0,1627 -51,12,0,0,1,0,43103.87109375,41356.453125,7388.6328125,0,0,0,1628 -33,17,0,0,1,0,43103.87109375,43236.2890625,40415.8203125,0,0,0,1629 -31,16,0,0,0,0,43103.87109375,44364.1953125,54675.8828125,0,0,0,1630 -43,17,0,0,1,0,43103.87109375,44758.06640625,41376.34375,0,0,0,1631 -45,16,0,0,1,0,43103.87109375,48338.7109375,59109.0625,0,0,0,1632 -33,17,0,0,1,0,43566.2578125,42967.7421875,40785.25390625,0,0,0,1633 -25,12,0,0,1,0,43691.6484375,30435.484375,33987.7109375,0,0,0,1634 -51,12,0,0,1,0,44083.50390625,41177.41796875,48764.9765625,0,0,0,1635 -41,17,0,0,1,0,44083.50390625,43862.90234375,66497.6953125,0,0,0,1636 -42,12,0,0,1,0,44475.35546875,47232.2890625,70930.875,0,0,0,1637 -37,13,0,0,1,0,45063.13671875,35806.453125,27337.94140625,0,0,0,1638 -29,17,0,0,1,0,45063.13671875,35806.453125,0,0,0,0,1639 -37,15,0,1,1,0,45063.13671875,39387.09765625,45809.5234375,0,0,0,1640 -46,16,0,0,1,0,45063.13671875,46011.2890625,42854.0703125,0,0,0,1641 -40,12,0,0,1,0,45063.13671875,48338.7109375,44331.796875,0,0,0,1642 -46,17,0,0,1,0,45063.13671875,57290.32421875,36943.1640625,0,0,0,1643 -47,12,0,0,1,0,45063.13671875,62661.2890625,0,0,0,0,1644 -34,13,0,0,1,0,45846.84375,42072.58203125,41376.34375,0,0,0,1645 -52,17,0,0,1,0,46042.76953125,59080.64453125,70930.875,0,0,0,1646 -52,17,0,0,1,0,46042.76953125,59080.64453125,70930.875,0,0,0,1647 -50,12,0,0,1,0,47022.40234375,44758.06640625,8866.359375,0,0,0,1648 -49,17,0,0,1,0,47022.40234375,46548.38671875,42854.0703125,0,0,0,1649 -49,17,0,0,1,0,47022.40234375,48338.7109375,44331.796875,0,0,0,1650 -49,17,0,0,1,0,47022.40234375,48338.7109375,44331.796875,0,0,0,1651 -53,12,0,0,1,0,47649.3671875,47894.7109375,50242.703125,0,0,0,1652 -33,13,0,0,1,0,48981.671875,32225.806640625,0,0,0,0,1653 -54,15,0,0,1,0,48981.671875,35806.453125,88663.59375,0,0,0,1654 -54,15,0,0,1,0,48981.671875,35806.453125,88663.59375,0,0,0,1655 -44,17,0,0,1,0,48981.671875,42967.7421875,39898.6171875,0,0,0,1656 -37,17,0,0,1,0,48981.671875,44758.06640625,44331.796875,0,0,0,1657 -55,16,0,0,1,0,48981.671875,46548.38671875,47878.33984375,0,0,0,1658 -55,16,0,0,1,0,48981.671875,46548.38671875,47878.33984375,0,0,0,1659 -37,17,0,0,1,0,48981.671875,46548.38671875,49503.83984375,0,0,0,1660 -44,14,0,0,1,0,48981.671875,48338.7109375,50242.703125,0,0,0,1661 -41,13,0,0,1,0,48981.671875,48338.7109375,38420.890625,0,0,0,1662 -39,17,0,0,1,0,48981.671875,48338.7109375,51720.4296875,0,0,0,1663 -48,16,0,0,1,0,48981.671875,50129.03125,48764.9765625,0,0,0,1664 -39,17,0,0,1,0,48981.671875,50129.03125,44331.796875,0,0,0,1665 -45,12,0,0,1,0,48981.671875,50487.09765625,46548.38671875,0,0,0,1666 -26,16,0,0,1,0,48981.671875,53709.67578125,45809.5234375,0,0,0,1667 -34,16,0,0,1,0,48981.671875,62661.2890625,54675.8828125,0,0,0,1668 -47,16,0,0,1,0,48981.671875,62741.85546875,65019.96875,0,0,0,1669 -55,16,0,0,1,0,48981.671875,71612.90625,35110.78125,0,0,0,1670 -37,16,0,0,1,0,49961.3046875,41177.41796875,39898.6171875,0,0,0,1671 -43,17,0,0,1,0,49961.3046875,48338.7109375,51424.88671875,0,0,0,1672 -43,16,0,0,1,0,49961.3046875,50129.03125,52969.109375,0,0,0,1673 -33,17,0,0,1,0,50940.9375,39387.09765625,46105.0703125,0,0,0,1674 -29,17,1,0,1,0,50940.9375,41177.41796875,39603.0703125,0,0,0,1675 -36,14,0,0,1,0,50940.9375,42967.7421875,44331.796875,0,0,0,1676 -37,17,0,0,1,0,50940.9375,44758.06640625,50242.703125,0,0,0,1677 -44,12,0,0,1,0,50940.9375,44758.06640625,41376.34375,0,0,0,1678 -42,17,0,0,0,0,50940.9375,50129.03125,48764.9765625,0,0,0,1679 -47,16,0,0,1,0,50940.9375,53709.67578125,54675.8828125,0,0,0,1680 -38,13,0,0,1,0,50940.9375,73403.2265625,25121.3515625,0,0,0,1681 -28,16,0,0,1,0,51920.5703125,48875.8046875,56153.609375,0,0,0,1682 -44,17,0,0,1,0,51920.5703125,56753.2265625,53198.15625,0,0,0,1683 -32,16,0,0,1,0,52900.203125,48338.7109375,0,0,0,0,1684 -47,17,0,0,1,0,52900.203125,49233.87109375,54675.8828125,0,0,0,1685 -28,16,0,0,1,0,52900.203125,59080.64453125,36943.1640625,0,0,0,1686 -45,15,0,0,1,0,53879.8359375,51919.35546875,45809.5234375,0,0,0,1687 -52,16,0,0,1,0,53879.8359375,53709.67578125,63837.7890625,0,0,0,1688 -32,12,0,0,1,0,54859.46875,39387.09765625,40878.3515625,0,0,0,1689 -33,17,0,0,1,0,54859.46875,46548.38671875,76841.78125,0,0,0,1690 -41,17,0,0,1,0,54859.46875,52993.546875,50242.703125,0,0,0,1691 -42,16,0,0,1,0,54859.46875,53709.67578125,53641.4765625,0,0,0,1692 -48,16,0,0,1,0,54859.46875,53709.67578125,73886.328125,0,0,0,1693 -48,16,0,0,1,0,54859.46875,53709.67578125,73886.328125,0,0,0,1694 -46,12,0,0,1,0,56818.73828125,48338.7109375,73886.328125,0,0,0,1695 -48,14,0,0,1,0,56818.73828125,57290.32421875,57631.3359375,0,0,0,1696 -47,14,0,0,1,0,58778.00390625,26854.83984375,32509.984375,0,0,0,1697 -36,17,0,0,1,0,58778.00390625,46548.38671875,56153.609375,0,0,0,1698 -38,16,0,0,1,0,58778.00390625,50129.03125,38420.890625,0,0,0,1699 -48,17,1,0,1,0,58778.00390625,51842.37109375,59109.0625,0,0,0,1700 -44,17,0,0,1,0,58778.00390625,53709.67578125,53198.15625,0,0,0,1701 -38,16,0,0,1,0,58778.00390625,53709.67578125,41376.34375,0,0,0,1702 -39,14,0,0,1,0,58778.00390625,57290.32421875,74625.1953125,0,0,0,1703 -41,17,0,0,1,0,59385.37890625,59438.7109375,82752.6875,0,0,0,1704 -47,16,0,0,1,0,60737.26953125,60870.96875,78319.5078125,0,0,0,1705 -47,16,0,0,1,0,60737.26953125,60870.96875,78319.5078125,0,0,0,1706 -46,16,0,0,1,0,62696.5390625,57290.32421875,63542.2421875,0,0,0,1707 -30,13,0,0,1,0,62696.5390625,75193.546875,70930.875,0,0,0,1708 -52,17,0,0,1,0,63676.171875,60870.96875,59109.0625,0,0,0,1709 -40,16,0,0,1,0,66615.0703125,57290.32421875,66497.6953125,0,0,0,1710 -51,12,0,0,0,0,67594.703125,62661.2890625,71669.7421875,0,0,0,1711 -47,17,0,0,1,0,68574.3359375,38670.96875,0,0,0,0,1712 -53,16,0,0,1,0,68574.3359375,39387.09765625,67236.5625,0,0,0,1713 -48,16,0,0,1,0,68574.3359375,59080.64453125,62064.515625,0,0,0,1714 -28,15,0,0,1,0,68574.3359375,62661.2890625,66497.6953125,0,0,0,1715 -42,17,0,0,1,0,68574.3359375,64451.61328125,62064.515625,0,0,0,1716 -47,16,0,0,1,0,68574.3359375,71612.90625,73886.328125,0,0,0,1717 -50,14,0,0,1,0,70533.6015625,29540.322265625,51720.4296875,0,0,0,1718 -49,12,0,0,1,0,72492.875,71433.8671875,0,0,0,0,1719 -48,15,0,0,1,0,73472.5078125,71612.90625,85708.140625,0,0,0,1720 -51,17,0,0,1,0,74452.140625,0,0,0,1,0,1721 -32,17,0,0,1,0,76411.40625,64451.61328125,99007.6796875,0,0,0,1722 -47,16,0,0,1,0,78370.671875,78774.1953125,97677.7265625,0,0,0,1723 -37,17,0,0,1,0,82289.203125,85040.3203125,110829.4921875,0,0,0,1724 -55,17,0,0,1,0,88167.0078125,98467.7421875,88663.59375,0,0,0,1725 -49,16,0,0,1,0,94044.8046875,98467.7421875,73886.328125,0,0,0,1726 -50,16,0,0,1,0,97963.34375,34016.12890625,33987.7109375,0,0,0,1727 -28,16,0,0,1,0,97963.34375,89516.1328125,70930.875,0,0,0,1728 -42,16,0,0,1,0,103841.140625,93096.7734375,100485.40625,0,0,0,1729 -45,12,0,0,1,0,137148.6875,156653.234375,88663.59375,0,0,0,1730 -54,3,1,0,0,1,0,0,221.65899658203125,1,1,0,1731 -54,3,1,0,1,1,0,0,0,1,1,0,1732 -54,3,1,0,1,1,0,0,0,1,1,0,1733 -54,3,1,0,1,1,0,0,0,1,1,0,1734 -53,4,1,0,0,1,0,0,0,1,1,0,1735 -51,4,1,0,1,1,0,0,0,1,1,0,1736 -51,5,1,0,0,1,0,0,0,1,1,0,1737 -46,6,1,0,1,1,0,0,0,1,1,0,1738 -53,6,0,0,1,1,0,0,0,1,1,0,1739 -41,6,1,0,1,1,0,0,0,1,1,0,1740 -45,7,1,0,1,1,0,0,11821.8134765625,1,1,0,1741 -53,7,0,1,0,1,0,0,0,1,1,0,1742 -47,8,0,0,0,1,0,0,0,1,1,0,1743 -55,8,1,0,1,1,0,0,0,1,1,0,1744 -55,8,0,0,1,1,0,0,0,1,1,0,1745 -53,8,1,0,1,1,0,0,0,1,1,0,1746 -41,8,0,0,1,1,0,0,0,1,1,0,1747 -45,8,0,0,1,1,0,0,0,1,1,0,1748 -45,9,1,0,1,1,0,0,0,1,1,0,1749 -46,9,0,1,1,1,0,0,0,1,1,0,1750 -48,9,0,0,1,1,0,0,0,1,1,0,1751 -46,9,0,1,1,1,0,0,0,1,1,0,1752 -45,9,1,0,1,1,0,0,0,1,1,0,1753 -54,9,0,0,1,1,0,0,0,1,1,0,1754 -23,9,1,0,0,1,0,0,218.7035369873047,1,1,0,1755 -40,10,0,1,1,1,0,0,0,1,1,0,1756 -54,10,1,0,1,1,0,0,0,1,1,0,1757 -54,10,1,0,1,1,0,0,0,1,1,0,1758 -25,11,1,0,0,1,0,0,3694.31640625,1,1,0,1759 -41,11,0,0,1,1,0,0,14481.7197265625,1,1,0,1760 -23,11,1,0,0,1,0,0,0,1,1,0,1761 -23,11,1,0,0,1,0,0,0,1,1,0,1762 -52,8,0,0,1,1,0,0,0,1,1,0,1763 -45,9,0,0,1,1,0,0,0,1,1,0,1764 -40,8,0,0,1,1,0,0,0,1,1,0,1765 -37,10,0,0,1,1,0,0,0,1,1,0,1766 -48,11,0,0,1,1,0,0,11821.8134765625,1,1,0,1767 -36,9,0,0,1,1,0,0,0,1,1,0,1768 -40,7,0,0,1,1,0,0,8866.359375,1,1,0,1769 -40,7,0,0,1,1,0,0,8866.359375,1,1,0,1770 -38,11,0,0,1,1,0,0,0,1,1,0,1771 -53,7,0,0,1,1,0,0,0,1,1,0,1772 -52,10,1,0,1,1,0,0,0,1,1,0,1773 -52,7,0,0,1,1,0,0,0,1,1,0,1774 -43,9,1,0,1,1,0,0,0,1,1,0,1775 -54,4,1,0,1,1,0,0,0,1,1,0,1776 -46,6,0,0,1,1,0,0,0,1,1,0,1777 -40,8,0,0,1,1,0,0,0,1,1,0,1778 -53,8,0,0,1,1,0,0,0,1,1,0,1779 -50,11,0,0,1,1,0,0,10344.0859375,1,1,0,1780 -33,11,0,0,1,1,0,0,0,1,1,0,1781 -33,11,0,0,1,1,0,0,0,1,1,0,1782 -52,8,0,0,1,1,0,0,0,1,1,0,1783 -49,4,1,0,1,1,0,0,0,1,1,0,1784 -50,8,0,0,1,1,0,0,0,1,1,0,1785 -41,8,0,0,1,1,0,0,7093.08740234375,1,1,0,1786 -53,9,0,0,1,1,0,0,0,1,1,0,1787 -48,11,0,0,0,1,0,0,0,1,1,0,1788 -31,9,0,0,1,1,0,0,0,1,1,0,1789 -42,8,0,0,1,1,0,0,0,1,1,0,1790 -54,10,0,0,1,1,0,0,0,1,1,0,1791 -50,10,0,0,1,1,0,0,0,1,1,0,1792 -48,6,0,1,1,1,0,0,0,1,1,0,1793 -22,9,0,0,1,1,0,0,16846.08203125,1,1,0,1794 -41,8,0,0,1,1,0,0,0,1,1,0,1795 -41,8,0,0,1,1,0,0,0,1,1,0,1796 -45,9,0,0,1,1,0,313.30645751953125,4063.748046875,1,0,0,1797 -21,8,1,0,0,1,0,895.16131591796875,2305.25341796875,1,0,0,1798 -46,8,0,0,1,1,0,8951.61328125,0,1,0,0,1799 -46,8,0,0,1,1,0,8951.61328125,0,1,0,0,1800 -21,11,1,0,0,1,0,9846.7744140625,5615.36083984375,1,0,0,1801 -53,8,0,0,1,1,0,14322.5810546875,0,1,0,0,1802 -53,6,0,0,1,1,0,17187.09765625,45809.5234375,1,0,0,1803 -34,11,0,0,1,1,0,19693.548828125,14777.265625,1,0,0,1804 -49,9,0,0,1,1,0,21483.87109375,69453.1484375,1,0,0,1805 -28,11,0,0,1,1,0,62661.2890625,118218.1328125,1,0,0,1806 -43,3,1,0,1,1,17.63340187072754,0,0,0,1,0,1807 -52,6,1,0,1,1,235.1120147705078,1246.064453125,1477.7265625,0,0,0,1808 -54,8,0,0,1,1,293.8900146484375,537.09674072265625,295.5453186035156,0,0,0,1809 -52,7,1,0,0,1,293.8900146484375,5012.9033203125,0,0,0,0,1810 -29,11,1,0,1,1,783.70672607421875,0,23643.625,0,1,0,1811 -37,9,0,0,0,1,940.44805908203125,3544.838623046875,1152.626708984375,0,0,0,1812 -38,2,0,0,0,1,1077.5966796875,6266.12890625,2955.453125,0,0,0,1813 -20,10,0,0,0,1,1381.2830810546875,3523.354736328125,9309.677734375,0,0,0,1814 -31,6,1,0,0,1,1410.672119140625,555,16059.931640625,0,0,0,1815 -23,10,1,0,0,1,1469.4500732421875,5370.9677734375,0,0,0,0,1816 -19,11,1,0,0,1,1567.4134521484375,0,0,0,1,0,1817 -20,11,0,0,1,1,1567.4134521484375,3222.58056640625,2955.453125,0,0,0,1818 -35,9,1,0,0,1,1567.4134521484375,5370.9677734375,5910.90625,0,0,0,1819 -21,10,1,0,0,1,1567.4134521484375,8145.9677734375,8275.2685546875,0,0,0,1820 -41,8,1,0,1,1,1716.3177490234375,8378.7099609375,7388.6328125,0,0,0,1821 -41,8,1,0,1,1,1716.3177490234375,8378.7099609375,7388.6328125,0,0,0,1822 -42,8,0,0,1,1,1763.340087890625,0,8866.359375,0,1,0,1823 -42,8,0,0,1,1,1763.340087890625,0,8866.359375,0,1,0,1824 -20,8,1,0,0,1,1880.8961181640625,3652.258056640625,1018.1536254882812,0,0,0,1825 -30,9,1,0,0,1,1959.266845703125,162.9193572998047,16809.140625,0,0,0,1826 -29,10,1,0,0,1,2037.637451171875,2685.48388671875,0,0,0,0,1827 -22,11,1,0,0,1,2351.1201171875,0,879.247314453125,0,1,0,1828 -25,10,1,0,0,1,2838.9775390625,5370.9677734375,11437.603515625,0,0,0,1829 -20,8,1,0,0,1,2938.900146484375,1838.6612548828125,1226.5130615234375,0,0,0,1830 -55,7,0,0,0,1,2938.900146484375,8342.9033203125,0,0,0,0,1831 -20,10,0,0,0,1,2938.900146484375,8951.61328125,10344.0859375,0,0,0,1832 -40,4,1,0,0,1,2962.411376953125,1933.54833984375,1034.4085693359375,0,0,0,1833 -52,0,0,0,1,1,3134.826904296875,0,295.5453186035156,0,1,0,1834 -22,9,1,0,0,1,3134.826904296875,4345.11279296875,13299.5390625,0,0,0,1835 -24,10,1,0,0,1,3152.460205078125,3902.9033203125,7447.74169921875,0,0,0,1836 -19,11,0,0,0,1,3221.03466796875,12532.2578125,14777.265625,0,0,0,1837 -51,7,0,0,1,1,3291.568115234375,8951.61328125,0,0,0,0,1838 -19,6,1,0,0,1,3526.68017578125,0,0,0,1,0,1839 -50,10,1,0,1,1,3526.68017578125,0,0,0,1,0,1840 -23,11,0,1,0,1,3526.68017578125,2685.48388671875,8127.49609375,0,0,0,1841 -38,3,1,0,1,1,3722.60693359375,5729.0322265625,17732.71875,0,0,0,1842 -38,3,1,0,1,1,3722.60693359375,5729.0322265625,17732.71875,0,0,0,1843 -20,11,0,0,0,1,3844.08154296875,9846.7744140625,13299.5390625,0,0,0,1844 -43,10,1,0,1,1,3918.53369140625,2148.38720703125,0,0,0,0,1845 -30,6,1,0,1,1,3918.53369140625,3401.61279296875,4433.1796875,0,0,0,1846 -35,10,1,0,1,1,3918.53369140625,3795.48388671875,7802.396484375,0,0,0,1847 -35,10,1,0,1,1,3918.53369140625,3795.48388671875,7802.396484375,0,0,0,1848 -35,10,1,0,1,1,3918.53369140625,3795.48388671875,7802.396484375,0,0,0,1849 -40,10,0,0,1,1,3918.53369140625,4833.87109375,7248.2490234375,0,0,0,1850 -44,11,1,0,1,1,3918.53369140625,5370.9677734375,2955.453125,0,0,0,1851 -23,10,1,0,0,1,3918.53369140625,7161.29052734375,6649.76953125,0,0,0,1852 -41,8,1,0,1,1,3918.53369140625,11171.61328125,5910.90625,0,0,0,1853 -39,5,1,0,1,1,4051.763671875,13427.4189453125,14629.4931640625,0,0,0,1854 -39,5,1,0,1,1,4051.763671875,13427.4189453125,14629.4931640625,0,0,0,1855 -39,5,1,0,1,1,4051.763671875,13427.4189453125,14629.4931640625,0,0,0,1856 -25,11,1,0,0,1,4055.682373046875,11637.0966796875,0,0,0,0,1857 -19,11,0,0,0,1,4114.46044921875,4654.8388671875,8570.814453125,0,0,0,1858 -23,6,0,0,1,1,4114.46044921875,7161.29052734375,8127.49609375,0,0,0,1859 -38,9,1,0,1,1,4228.09765625,7941.87109375,11245.4990234375,0,0,0,1860 -50,9,1,0,1,1,4333.8984375,7469.2255859375,6383.77880859375,0,0,0,1861 -18,11,0,0,0,1,4351.53173828125,32270.564453125,2364.362548828125,0,0,0,1862 -22,11,1,0,1,1,4449.4951171875,6187.35498046875,14570.3837890625,0,0,0,1863 -19,10,1,0,0,1,4702.240234375,3437.41943359375,2364.362548828125,0,0,0,1864 -25,10,1,0,1,1,4702.240234375,4282.45166015625,4947.4287109375,0,0,0,1865 -47,6,1,0,1,1,4702.240234375,4296.7744140625,13481.2998046875,0,0,0,1866 -47,4,0,0,1,1,4702.240234375,8593.548828125,24641.091796875,0,0,0,1867 -51,7,0,0,1,1,4702.240234375,8951.61328125,11082.94921875,0,0,0,1868 -19,9,0,0,1,1,4858.98193359375,6087.0966796875,10639.630859375,0,0,0,1869 -24,8,1,0,1,1,4898.1669921875,5370.9677734375,8127.49609375,0,0,0,1870 -19,10,0,0,0,1,5094.09375,4296.7744140625,14777.265625,0,0,0,1871 -44,11,1,0,0,1,5172.46435546875,6266.12890625,0,0,0,0,1872 -52,8,0,0,1,1,5290.0205078125,0,6797.5419921875,0,1,0,1873 -20,9,0,0,1,1,5387.98388671875,8951.61328125,13299.5390625,0,0,0,1874 -24,11,1,0,1,1,5427.1689453125,0,1329.953857421875,0,1,0,1875 -19,11,1,0,1,1,5485.94677734375,7590.9677734375,11348.9404296875,0,0,0,1876 -22,11,1,0,0,1,5485.94677734375,13427.4189453125,8866.359375,0,0,0,1877 -30,6,1,0,1,1,5681.87353515625,0,0,0,1,0,1878 -50,10,1,0,1,1,5681.87353515625,0,0,0,1,0,1879 -20,8,0,0,0,1,5681.87353515625,3584.225830078125,7240.8603515625,0,0,0,1880 -26,8,1,0,1,1,5681.87353515625,4296.7744140625,7093.08740234375,0,0,0,1881 -46,6,1,0,0,1,5838.615234375,9678.484375,7873.3271484375,0,0,0,1882 -38,10,1,0,1,1,5877.80029296875,0,0,0,1,0,1883 -25,8,0,0,1,1,5877.80029296875,0,8866.359375,0,1,0,1884 -24,9,1,0,0,1,5877.80029296875,5370.9677734375,13299.5390625,0,0,0,1885 -55,3,1,0,1,1,5877.80029296875,5370.9677734375,4137.63427734375,0,0,0,1886 -40,5,1,0,1,1,5877.80029296875,5370.9677734375,22165.8984375,0,0,0,1887 -25,9,1,0,1,1,5877.80029296875,6266.12890625,12560.67578125,0,0,0,1888 -43,7,1,0,1,1,5877.80029296875,6815.75830078125,295.5453186035156,0,0,0,1889 -18,11,1,0,0,1,5877.80029296875,6932.12890625,9457.4501953125,0,0,0,1890 -28,7,1,0,1,1,5877.80029296875,8142.38720703125,1477.7265625,0,0,0,1891 -52,4,1,0,1,1,5877.80029296875,11637.0966796875,22165.8984375,0,0,0,1892 -22,8,1,0,1,1,5877.80029296875,12030.9677734375,857.0814208984375,0,0,0,1893 -34,7,1,0,1,1,5877.80029296875,12532.2578125,14777.265625,0,0,0,1894 -25,9,0,0,0,1,5877.80029296875,13427.4189453125,12117.3583984375,0,0,0,1895 -43,10,0,0,1,1,5877.80029296875,17903.2265625,20688.171875,0,0,0,1896 -31,9,1,0,1,1,6024.74560546875,5621.61279296875,10196.3134765625,0,0,0,1897 -27,8,1,0,0,1,6269.65380859375,6624.193359375,7388.6328125,0,0,0,1898 -22,11,0,0,1,1,6442.0693359375,5818.54833984375,2216.58984375,0,0,0,1899 -32,11,1,0,1,1,6524.3583984375,0,930.96771240234375,0,1,0,1900 -49,5,1,0,0,1,6583.13671875,5729.0322265625,12560.67578125,0,0,0,1901 -55,8,0,0,1,1,6661.50732421875,3820.54833984375,4255.8525390625,0,0,0,1902 -20,11,0,0,1,1,6661.50732421875,5370.9677734375,1182.1812744140625,0,0,0,1903 -33,8,1,0,1,1,6661.50732421875,8579.2255859375,9169.29296875,0,0,0,1904 -22,11,0,0,1,1,6802.57421875,1790.3226318359375,7388.6328125,0,0,0,1905 -26,8,1,0,1,1,6857.43359375,3580.645263671875,1994.930908203125,0,0,0,1906 -20,10,1,0,1,1,6857.43359375,6831.87109375,9457.4501953125,0,0,0,1907 -45,2,0,1,1,1,6857.43359375,7161.29052734375,4433.1796875,0,0,0,1908 -45,8,1,0,1,1,6857.43359375,9537.048828125,9408.685546875,0,0,0,1909 -33,11,1,0,1,1,6857.43359375,11637.0966796875,0,0,0,0,1910 -41,3,1,0,1,1,6990.6640625,3222.58056640625,9497.3486328125,0,0,0,1911 -25,7,1,0,1,1,7131.73095703125,10741.9345703125,8866.359375,0,0,0,1912 -35,11,1,0,1,1,7335.4951171875,8557.7421875,7388.6328125,0,0,0,1913 -35,11,1,0,1,1,7335.4951171875,8557.7421875,7388.6328125,0,0,0,1914 -29,10,0,0,1,1,7347.25048828125,0,0,0,1,0,1915 -41,4,1,0,0,1,7494.1953125,5370.9677734375,5910.90625,0,0,0,1916 -36,6,1,0,0,1,7494.1953125,7447.74169921875,4433.1796875,0,0,0,1917 -52,5,1,0,1,1,7523.58447265625,4296.7744140625,2216.58984375,0,0,0,1918 -52,5,1,0,1,1,7523.58447265625,4296.7744140625,2216.58984375,0,0,0,1919 -41,10,0,1,1,1,7562.77001953125,9134.2255859375,11821.8134765625,0,0,0,1920 -29,10,1,0,1,1,7641.140625,8122.693359375,5910.90625,0,0,0,1921 -42,10,1,0,0,1,7837.0673828125,1718.709716796875,0,0,0,0,1922 -22,11,1,0,1,1,7837.0673828125,5012.9033203125,3694.31640625,0,0,0,1923 -27,11,1,0,1,1,7837.0673828125,5370.9677734375,7388.6328125,0,0,0,1924 -42,5,1,0,1,1,7837.0673828125,7161.29052734375,14777.265625,0,0,0,1925 -42,5,1,0,1,1,7837.0673828125,7161.29052734375,14777.265625,0,0,0,1926 -49,5,0,0,1,1,7837.0673828125,8056.45166015625,11821.8134765625,0,0,0,1927 -28,9,1,0,1,1,7837.0673828125,8235.484375,8718.5869140625,0,0,0,1928 -45,9,1,0,1,1,7837.0673828125,8951.61328125,8866.359375,0,0,0,1929 -45,6,1,0,1,1,7837.0673828125,8951.61328125,9605.22265625,0,0,0,1930 -39,8,0,0,1,1,7837.0673828125,9846.7744140625,0,0,0,0,1931 -34,9,1,0,1,1,7837.0673828125,11211,12037.560546875,0,0,0,1932 -22,11,0,0,1,1,7837.0673828125,13964.515625,15072.810546875,0,0,0,1933 -32,10,0,0,1,1,7837.0673828125,16112.9033203125,11082.94921875,0,0,0,1934 -49,5,1,0,1,1,7944.82666015625,7698.38720703125,11993.228515625,0,0,0,1935 -27,7,1,0,1,1,7954.623046875,7161.29052734375,5910.90625,0,0,0,1936 -21,11,1,0,1,1,8032.994140625,4848.193359375,8570.814453125,0,0,0,1937 -40,11,0,0,1,1,8072.17919921875,0,1477.7265625,0,1,0,1938 -26,8,0,0,1,1,8150.5498046875,7447.74169921875,9900.767578125,0,0,0,1939 -33,10,0,0,1,1,8272.0244140625,2619.241943359375,0,0,0,0,1940 -54,6,1,0,1,1,8354.3134765625,0,0,0,1,0,1941 -40,9,1,0,1,1,8424.84765625,6572.2744140625,8866.359375,0,0,0,1942 -27,8,0,0,1,1,8424.84765625,7698.38720703125,15072.810546875,0,0,0,1943 -41,5,1,0,1,1,8424.84765625,10741.9345703125,8689.0322265625,0,0,0,1944 -29,10,1,0,1,1,8464.0322265625,8325,23643.625,0,0,0,1945 -29,10,1,0,1,1,8659.958984375,10892.3232421875,51.720428466796875,0,0,0,1946 -26,10,1,0,1,1,8816.7001953125,0,7388.6328125,0,1,0,1947 -25,10,0,1,1,1,8816.7001953125,8056.45166015625,13299.5390625,0,0,0,1948 -40,8,1,0,1,1,8816.7001953125,8056.45166015625,7184.70654296875,0,0,0,1949 -40,7,1,0,1,1,8816.7001953125,8951.61328125,11821.8134765625,0,0,0,1950 -49,7,1,0,0,1,8816.7001953125,11270.0810546875,8969.80078125,0,0,0,1951 -46,9,0,0,1,1,8816.7001953125,14322.5810546875,13299.5390625,0,0,0,1952 -50,8,1,0,1,1,8985.197265625,9846.7744140625,9102.7958984375,0,0,0,1953 -24,8,1,0,1,1,9008.708984375,13033.5478515625,16254.9921875,0,0,0,1954 -23,9,0,0,1,1,9012.626953125,0,14777.265625,0,1,0,1955 -24,10,1,0,1,1,9012.626953125,6624.193359375,8955.0234375,0,0,0,1956 -20,10,0,1,1,1,9208.5537109375,8951.61328125,16254.9921875,0,0,0,1957 -30,11,1,0,1,1,9228.146484375,8808.38671875,17881.96875,0,0,0,1958 -47,4,0,0,1,1,9355.4990234375,20884.11328125,20512.322265625,0,0,0,1959 -26,10,1,0,1,1,9404.48046875,4923.38720703125,17732.71875,0,0,0,1960 -50,5,1,0,1,1,9404.48046875,10136.8056640625,9266.8232421875,0,0,0,1961 -49,11,0,0,1,1,9404.48046875,11637.0966796875,9457.4501953125,0,0,0,1962 -27,10,0,0,1,1,9404.48046875,11812.5478515625,11821.8134765625,0,0,0,1963 -28,8,0,0,1,1,9404.48046875,14322.5810546875,12560.67578125,0,0,0,1964 -22,10,1,0,1,1,9717.962890625,9023.2255859375,13299.5390625,0,0,0,1965 -40,7,1,0,1,1,9737.5556640625,8674.11328125,9221.013671875,0,0,0,1966 -52,5,1,0,1,1,9796.333984375,1074.1934814453125,0,0,0,0,1967 -34,10,0,0,1,1,9796.333984375,2327.41943359375,26599.078125,0,0,0,1968 -38,7,0,0,1,1,9796.333984375,5370.9677734375,11821.8134765625,0,0,0,1969 -49,5,1,0,1,1,9796.333984375,5370.9677734375,0,0,0,0,1970 -20,10,1,0,1,1,9796.333984375,5370.9677734375,7388.6328125,0,0,0,1971 -44,5,1,0,1,1,9796.333984375,8951.61328125,8866.359375,0,0,0,1972 -34,9,1,0,1,1,9796.333984375,8951.61328125,10344.0859375,0,0,0,1973 -46,9,1,0,0,1,9796.333984375,9309.677734375,8866.359375,0,0,0,1974 -47,4,1,0,0,1,9796.333984375,10741.9345703125,5910.90625,0,0,0,1975 -24,11,1,0,1,1,9796.333984375,10741.9345703125,13299.5390625,0,0,0,1976 -39,5,1,0,1,1,9796.333984375,10741.9345703125,19210.4453125,0,0,0,1977 -32,11,1,0,0,1,9796.333984375,14322.5810546875,886.63592529296875,0,0,0,1978 -43,11,0,0,1,1,9796.333984375,21483.87109375,22165.8984375,0,0,0,1979 -24,11,0,0,1,1,9796.333984375,24885.484375,25121.3515625,0,0,0,1980 -37,7,0,0,1,1,9796.333984375,29719.35546875,5172.04296875,0,0,0,1981 -23,11,1,0,1,1,9980.5048828125,6266.12890625,10344.0859375,0,0,0,1982 -21,11,0,1,1,1,9992.2607421875,4114.1611328125,17732.71875,0,0,0,1983 -39,11,1,0,1,1,9992.2607421875,11637.0966796875,7260.07080078125,0,0,0,1984 -27,6,0,0,1,1,9992.2607421875,11637.0966796875,13299.5390625,0,0,0,1985 -41,10,1,0,1,1,10090.2236328125,14757.62890625,9752.9951171875,0,0,0,1986 -32,10,1,0,0,1,10188.1865234375,8951.61328125,0,0,0,0,1987 -40,5,1,0,1,1,10188.1865234375,12174.1943359375,0,0,0,0,1988 -37,11,1,0,1,1,10188.1865234375,13964.515625,13299.5390625,0,0,0,1989 -37,11,1,0,1,1,10188.1865234375,13964.515625,13299.5390625,0,0,0,1990 -50,11,1,0,0,1,10188.1865234375,17903.2265625,14777.265625,0,0,0,1991 -47,8,0,1,1,1,10286.1513671875,7161.29052734375,1477.7265625,0,0,0,1992 -29,10,1,0,1,1,10384.1142578125,7304.51611328125,11501.146484375,0,0,0,1993 -19,10,0,0,1,1,10431.1357421875,6982.25830078125,9752.9951171875,0,0,0,1994 -44,6,0,0,1,1,10450.728515625,13427.4189453125,17023.41015625,0,0,0,1995 -28,7,1,0,1,1,10487.955078125,8260.548828125,8127.49609375,0,0,0,1996 -25,10,0,0,1,1,10580.041015625,8647.2578125,8866.359375,0,0,0,1997 -39,9,1,0,1,1,10580.041015625,9667.7421875,11821.8134765625,0,0,0,1998 -39,9,1,0,1,1,10580.041015625,9667.7421875,11821.8134765625,0,0,0,1999 -34,8,1,0,1,1,10580.041015625,12532.2578125,19210.4453125,0,0,0,2000 -39,7,0,0,1,1,10580.041015625,17545.16015625,0,0,0,0,2001 -53,7,1,0,1,1,10583.958984375,17525.46875,15926.9365234375,0,0,0,2002 -53,7,1,0,1,1,10583.958984375,17525.46875,15926.9365234375,0,0,0,2003 -28,8,0,0,1,1,10678.00390625,10382.0810546875,15146.697265625,0,0,0,2004 -49,10,1,0,1,1,10775.966796875,0,5319.81591796875,0,1,0,2005 -49,10,1,0,1,1,10775.966796875,0,5319.81591796875,0,1,0,2006 -47,6,1,0,1,1,10775.966796875,8056.45166015625,0,0,0,0,2007 -30,9,1,0,1,1,10775.966796875,8951.61328125,16254.9921875,0,0,0,2008 -31,9,1,0,1,1,10775.966796875,8951.61328125,5910.90625,0,0,0,2009 -29,8,0,0,1,1,10775.966796875,8951.61328125,9605.22265625,0,0,0,2010 -44,7,1,0,1,1,10775.966796875,10741.9345703125,1078.7403564453125,0,0,0,2011 -19,10,0,0,1,1,10775.966796875,14322.5810546875,23643.625,0,0,0,2012 -42,6,0,1,1,1,10775.966796875,22558.064453125,11821.8134765625,0,0,0,2013 -54,10,0,0,1,1,10775.966796875,32225.806640625,19210.4453125,0,0,0,2014 -48,10,1,0,1,1,10785.763671875,5370.9677734375,14895.484375,0,0,0,2015 -27,11,1,0,1,1,10897.4423828125,3938.709716796875,7684.17822265625,0,0,0,2016 -22,11,1,0,0,1,10971.8935546875,7161.29052734375,7675.31201171875,0,0,0,2017 -33,10,0,0,1,1,10971.8935546875,12174.1943359375,24825.806640625,0,0,0,2018 -37,8,0,0,1,1,10971.8935546875,13427.4189453125,14777.265625,0,0,0,2019 -22,11,1,0,0,1,11069.857421875,5191.935546875,9605.22265625,0,0,0,2020 -21,11,0,0,0,1,11167.8212890625,5370.9677734375,13151.7666015625,0,0,0,2021 -23,9,0,0,1,1,11167.8212890625,11995.1611328125,11891.265625,0,0,0,2022 -35,8,0,0,1,1,11167.8212890625,18796.59765625,13299.5390625,0,0,0,2023 -31,8,0,0,1,1,11167.8212890625,19335.484375,20688.171875,0,0,0,2024 -26,6,1,0,1,1,11461.7109375,9807.38671875,7979.7236328125,0,0,0,2025 -22,9,1,0,1,1,11708.578125,10419.6767578125,9079.15234375,0,0,0,2026 -33,6,1,0,1,1,11739.9267578125,5958.193359375,9788.4609375,0,0,0,2027 -27,9,0,0,1,1,11749.72265625,2327.41943359375,19210.4453125,0,0,0,2028 -34,11,1,0,0,1,11755.6005859375,2148.38720703125,15516.12890625,0,0,0,2029 -23,11,1,0,1,1,11755.6005859375,5818.54833984375,10048.541015625,0,0,0,2030 -25,9,1,0,0,1,11755.6005859375,7161.29052734375,6649.76953125,0,0,0,2031 -28,9,1,0,1,1,11755.6005859375,7161.29052734375,11821.8134765625,0,0,0,2032 -46,10,0,0,1,1,11755.6005859375,7161.29052734375,10166.7587890625,0,0,0,2033 -46,10,0,0,1,1,11755.6005859375,7161.29052734375,10166.7587890625,0,0,0,2034 -53,2,0,0,1,1,11755.6005859375,8593.548828125,0,0,0,0,2035 -48,8,0,0,1,1,11755.6005859375,8844.193359375,3073.67138671875,0,0,0,2036 -48,8,0,0,1,1,11755.6005859375,8844.193359375,3073.67138671875,0,0,0,2037 -35,11,1,0,1,1,11755.6005859375,8951.61328125,0,0,0,0,2038 -29,10,1,0,1,1,11755.6005859375,9780.5322265625,8866.359375,0,0,0,2039 -43,9,0,0,1,1,11755.6005859375,10741.9345703125,10344.0859375,0,0,0,2040 -42,8,1,0,1,1,11755.6005859375,10741.9345703125,11821.8134765625,0,0,0,2041 -47,11,1,0,1,1,11755.6005859375,10741.9345703125,14260.060546875,0,0,0,2042 -34,10,0,0,1,1,11755.6005859375,12174.1943359375,11821.8134765625,0,0,0,2043 -39,10,1,0,0,1,11755.6005859375,12532.2578125,25248.435546875,0,0,0,2044 -43,8,1,0,1,1,11755.6005859375,12532.2578125,12930.1083984375,0,0,0,2045 -43,8,1,0,1,1,11755.6005859375,12532.2578125,12930.1083984375,0,0,0,2046 -28,10,1,0,1,1,11755.6005859375,15217.7421875,10639.630859375,0,0,0,2047 -47,11,1,0,1,1,11755.6005859375,16053.8232421875,0,0,0,0,2048 -45,0,0,1,1,1,11755.6005859375,16112.9033203125,10344.0859375,0,0,0,2049 -53,4,1,0,1,1,11892.7490234375,8951.61328125,10344.0859375,0,0,0,2050 -54,4,1,0,0,1,11933.8935546875,10965.7255859375,11821.8134765625,0,0,0,2051 -41,9,0,0,1,1,11951.5283203125,12890.3232421875,8718.5869140625,0,0,0,2052 -44,7,1,0,1,1,11967.2021484375,14566.0654296875,14147.75390625,0,0,0,2053 -51,8,0,0,1,1,11986.7939453125,1546.8387451171875,0,0,0,0,2054 -26,10,0,0,0,1,12000.5087890625,14322.5810546875,17732.71875,0,0,0,2055 -53,4,0,0,1,1,12039.6953125,2660.41943359375,7388.6328125,0,0,0,2056 -30,9,0,0,1,1,12178.8017578125,11493.87109375,12847.35546875,0,0,0,2057 -54,3,1,0,1,1,12225.8251953125,9606.87109375,11821.8134765625,0,0,0,2058 -53,8,0,0,1,1,12235.62109375,0,7240.8603515625,0,1,0,2059 -34,10,1,0,1,1,12343.380859375,11637.0966796875,9900.767578125,0,0,0,2060 -48,5,1,0,1,1,12343.380859375,13606.4521484375,13323.1826171875,0,0,0,2061 -45,11,0,0,1,1,12382.56640625,21483.87109375,0,0,0,0,2062 -45,11,0,0,1,1,12382.56640625,21483.87109375,0,0,0,0,2063 -49,6,0,1,1,1,12539.3076171875,16470.96875,13595.083984375,0,0,0,2064 -49,6,0,1,1,1,12539.3076171875,16470.96875,13595.083984375,0,0,0,2065 -22,11,1,0,1,1,12539.3076171875,21483.87109375,13299.5390625,0,0,0,2066 -25,10,1,0,1,1,12696.048828125,8951.61328125,14777.265625,0,0,0,2067 -37,11,0,0,1,1,12735.234375,0,0,0,1,0,2068 -33,9,0,0,1,1,12735.234375,6266.12890625,8866.359375,0,0,0,2069 -33,9,0,0,1,1,12735.234375,6266.12890625,8866.359375,0,0,0,2070 -20,11,0,0,1,1,12735.234375,7161.29052734375,14038.40234375,0,0,0,2071 -44,8,0,0,1,1,12735.234375,10312.2578125,12412.9033203125,0,0,0,2072 -53,6,1,0,1,1,12735.234375,10741.9345703125,13299.5390625,0,0,0,2073 -31,6,1,0,0,1,12735.234375,10741.9345703125,5910.90625,0,0,0,2074 -28,9,0,0,1,1,12735.234375,12532.2578125,17732.71875,0,0,0,2075 -25,11,0,0,1,1,12735.234375,21483.87109375,8204.337890625,0,0,0,2076 -50,6,1,0,1,1,13033.04296875,4092.677490234375,0,0,0,0,2077 -35,7,0,0,1,1,13127.087890625,12711.2900390625,13447.3115234375,0,0,0,2078 -35,7,0,0,1,1,13127.087890625,12711.2900390625,13447.3115234375,0,0,0,2079 -31,11,1,0,1,1,13127.087890625,14859.6767578125,16254.9921875,0,0,0,2080 -21,9,1,0,0,1,13127.087890625,16327.7421875,8866.359375,0,0,0,2081 -36,11,1,0,1,1,13140.8017578125,12532.2578125,12811.888671875,0,0,0,2082 -40,10,1,0,1,1,13244.6435546875,19693.548828125,17732.71875,0,0,0,2083 -30,8,0,0,1,1,13303.421875,17903.2265625,14333.9482421875,0,0,0,2084 -44,9,1,0,1,1,13366.1181640625,14644.8388671875,12435.0693359375,0,0,0,2085 -41,9,0,0,1,1,13518.94140625,13964.515625,17732.71875,0,0,0,2086 -40,10,0,0,0,1,13616.904296875,10741.9345703125,15368.3564453125,0,0,0,2087 -20,11,0,0,0,1,13714.8681640625,6194.51611328125,14777.265625,0,0,0,2088 -19,11,0,0,1,1,13714.8681640625,6416.51611328125,27781.259765625,0,0,0,2089 -39,7,0,0,1,1,13714.8681640625,6624.193359375,0,0,0,0,2090 -46,8,1,0,1,1,13714.8681640625,7089.67724609375,0,0,0,0,2091 -22,11,0,0,1,1,13714.8681640625,8593.548828125,8866.359375,0,0,0,2092 -37,11,0,0,1,1,13714.8681640625,9259.548828125,0,0,0,0,2093 -48,6,1,0,0,1,13714.8681640625,11637.0966796875,10604.166015625,0,0,0,2094 -52,10,0,0,1,1,13714.8681640625,12174.1943359375,23643.625,0,0,0,2095 -50,7,1,0,1,1,13714.8681640625,12532.2578125,16254.9921875,0,0,0,2096 -50,7,1,0,1,1,13714.8681640625,12532.2578125,16254.9921875,0,0,0,2097 -26,11,1,0,1,1,13714.8681640625,13248.38671875,11082.94921875,0,0,0,2098 -31,11,0,0,1,1,13714.8681640625,13785.484375,20688.171875,0,0,0,2099 -21,10,0,0,1,1,13714.8681640625,14080.88671875,7249.7265625,0,0,0,2100 -52,8,0,0,1,1,13714.8681640625,14322.5810546875,8748.1416015625,0,0,0,2101 -30,10,1,0,0,1,13714.8681640625,14322.5810546875,2364.362548828125,0,0,0,2102 -20,11,0,0,0,1,13714.8681640625,14322.5810546875,36943.1640625,0,0,0,2103 -52,5,0,0,1,1,13714.8681640625,14322.5810546875,14777.265625,0,0,0,2104 -45,3,0,1,1,1,13714.8681640625,16112.9033203125,23643.625,0,0,0,2105 -46,10,1,0,1,1,13714.8681640625,16112.9033203125,15522.0400390625,0,0,0,2106 -32,7,0,0,1,1,13714.8681640625,17008.064453125,19613.865234375,0,0,0,2107 -50,7,1,0,1,1,13714.8681640625,17903.2265625,16254.9921875,0,0,0,2108 -28,6,0,0,1,1,13734.4599609375,6395.0322265625,10048.541015625,0,0,0,2109 -33,10,1,0,0,1,13754.052734375,13964.515625,16905.19140625,0,0,0,2110 -53,5,1,0,1,1,14008.7578125,2660.41943359375,11082.94921875,0,0,0,2111 -44,9,0,0,1,1,14051.8623046875,13905.4345703125,16373.2099609375,0,0,0,2112 -28,11,0,0,1,1,14106.720703125,10741.9345703125,20392.626953125,0,0,0,2113 -53,8,0,0,1,1,14106.720703125,14322.5810546875,14843.7626953125,0,0,0,2114 -53,7,0,0,1,1,14106.720703125,14322.5810546875,13299.5390625,0,0,0,2115 -52,4,0,0,1,1,14106.720703125,15074.515625,14422.611328125,0,0,0,2116 -23,11,0,1,1,1,14263.4619140625,8414.515625,26599.078125,0,0,0,2117 -25,9,0,0,1,1,14263.4619140625,12890.3232421875,16254.9921875,0,0,0,2118 -54,8,0,1,1,1,14302.6484375,0,8866.359375,0,1,0,2119 -54,8,0,1,1,1,14302.6484375,0,8866.359375,0,1,0,2120 -40,10,0,0,1,1,14302.6484375,24169.35546875,21427.03515625,0,0,0,2121 -40,10,0,0,1,1,14302.6484375,24169.35546875,21427.03515625,0,0,0,2122 -21,11,0,0,1,1,14400.611328125,11458.0654296875,0,0,0,0,2123 -51,8,0,0,1,1,14465.2666015625,21752.419921875,0,0,0,0,2124 -24,10,1,0,1,1,14482.900390625,10741.9345703125,11821.8134765625,0,0,0,2125 -46,8,0,0,1,1,14498.57421875,10741.9345703125,14186.1748046875,0,0,0,2126 -55,3,1,0,1,1,14547.5556640625,13463.2255859375,10344.0859375,0,0,0,2127 -41,10,1,0,0,1,14678.8271484375,15253.5478515625,11821.8134765625,0,0,0,2128 -25,11,1,0,1,1,14694.5009765625,6624.193359375,7107.86474609375,0,0,0,2129 -39,8,0,0,1,1,14694.5009765625,12532.2578125,16254.9921875,0,0,0,2130 -19,8,0,0,1,1,14694.5009765625,12532.2578125,18539.55859375,0,0,0,2131 -23,11,1,0,1,1,14694.5009765625,13427.4189453125,17732.71875,0,0,0,2132 -49,10,0,0,1,1,14694.5009765625,14322.5810546875,8423.041015625,0,0,0,2133 -38,11,0,0,1,1,14694.5009765625,14322.5810546875,28076.8046875,0,0,0,2134 -42,11,1,0,0,1,14694.5009765625,15217.7421875,11821.8134765625,0,0,0,2135 -24,11,0,0,1,1,14694.5009765625,15575.8056640625,14777.265625,0,0,0,2136 -36,7,1,0,1,1,14694.5009765625,15754.8388671875,19210.4453125,0,0,0,2137 -39,6,1,0,1,1,14694.5009765625,16470.96875,28076.8046875,0,0,0,2138 -20,11,0,0,1,1,14694.5009765625,17008.064453125,0,0,0,0,2139 -31,10,0,0,1,1,14890.427734375,12532.2578125,16254.9921875,0,0,0,2140 -29,9,0,0,1,1,14890.427734375,19693.548828125,25860.21484375,0,0,0,2141 -53,9,1,0,1,1,14945.287109375,13697.7578125,14186.1748046875,0,0,0,2142 -45,4,0,0,1,1,15004.0654296875,13586.7578125,17686.908203125,0,0,0,2143 -28,9,0,0,0,1,15086.353515625,13248.38671875,19210.4453125,0,0,0,2144 -53,8,1,0,1,1,15086.353515625,15649.2099609375,12921.2412109375,0,0,0,2145 -43,3,0,0,1,1,15086.353515625,15933.87109375,14038.40234375,0,0,0,2146 -50,7,0,0,1,1,15160.806640625,15933.87109375,17732.71875,0,0,0,2147 -50,7,0,0,1,1,15160.806640625,15933.87109375,17732.71875,0,0,0,2148 -31,8,1,0,1,1,15176.4814453125,10851.14453125,19604.998046875,0,0,0,2149 -34,11,0,0,1,1,15184.318359375,0,19210.4453125,0,1,0,2150 -46,8,0,0,0,1,15282.28125,13158.87109375,10048.541015625,0,0,0,2151 -20,9,0,0,1,1,15282.28125,15933.87109375,20614.28515625,0,0,0,2152 -30,9,0,0,1,1,15478.2080078125,7877.41943359375,8866.359375,0,0,0,2153 -34,6,0,1,1,1,15478.2080078125,16112.9033203125,16254.9921875,0,0,0,2154 -27,9,0,0,1,1,15478.2080078125,16470.96875,15516.12890625,0,0,0,2155 -19,11,1,0,0,1,15587.9267578125,10741.9345703125,0,0,0,0,2156 -49,8,0,1,0,1,15674.1337890625,1074.1934814453125,0,0,0,0,2157 -31,11,1,0,0,1,15674.1337890625,4316.4677734375,7093.08740234375,0,0,0,2158 -25,11,1,0,0,1,15674.1337890625,6982.25830078125,13890.6298828125,0,0,0,2159 -23,11,1,0,1,1,15674.1337890625,8414.515625,8866.359375,0,0,0,2160 -18,10,0,1,1,1,15674.1337890625,10741.9345703125,20688.171875,0,0,0,2161 -34,10,1,0,0,1,15674.1337890625,12532.2578125,25121.3515625,0,0,0,2162 -46,4,0,0,1,1,15674.1337890625,14322.5810546875,8866.359375,0,0,0,2163 -46,7,0,0,1,1,15674.1337890625,14680.64453125,9605.22265625,0,0,0,2164 -53,6,0,0,1,1,15674.1337890625,15217.7421875,14777.265625,0,0,0,2165 -54,7,0,0,1,1,15674.1337890625,16112.9033203125,18841.013671875,0,0,0,2166 -37,9,1,0,1,1,15674.1337890625,16112.9033203125,19210.4453125,0,0,0,2167 -24,9,0,0,1,1,15674.1337890625,16112.9033203125,36943.1640625,0,0,0,2168 -53,6,1,0,1,1,15674.1337890625,16112.9033203125,9974.654296875,0,0,0,2169 -21,10,0,0,1,1,15674.1337890625,16112.9033203125,20141.412109375,0,0,0,2170 -35,10,1,0,1,1,15674.1337890625,16470.96875,23643.625,0,0,0,2171 -54,2,1,0,1,1,15674.1337890625,16990.16015625,18096.240234375,0,0,0,2172 -43,10,0,0,1,1,15674.1337890625,17903.2265625,19709.91796875,0,0,0,2173 -46,8,0,0,1,1,15674.1337890625,17903.2265625,17732.71875,0,0,0,2174 -35,11,1,0,1,1,15674.1337890625,17903.2265625,0,0,0,0,2175 -50,8,0,0,1,1,15674.1337890625,18109.11328125,17437.173828125,0,0,0,2176 -47,10,0,0,1,1,15674.1337890625,19693.548828125,22165.8984375,0,0,0,2177 -47,10,0,0,1,1,15674.1337890625,19693.548828125,22165.8984375,0,0,0,2178 -21,9,0,0,1,1,15674.1337890625,19693.548828125,1773.2718505859375,0,0,0,2179 -18,10,0,0,1,1,15674.1337890625,21483.87109375,24973.578125,0,0,0,2180 -37,8,0,0,1,1,15674.1337890625,26317.7421875,36943.1640625,0,0,0,2181 -41,7,1,0,1,1,15674.1337890625,32225.806640625,11082.94921875,0,0,0,2182 -31,11,0,0,1,1,15870.060546875,15602.6611328125,17732.71875,0,0,0,2183 -35,10,0,0,1,1,15921.001953125,16148.7099609375,16606.69140625,0,0,0,2184 -51,8,1,0,1,1,15987.6171875,5800.64501953125,0,0,0,0,2185 -30,7,1,0,1,1,15995.4541015625,15387.8232421875,13151.7666015625,0,0,0,2186 -30,11,0,0,1,1,16065.98828125,17989.16015625,23052.53515625,0,0,0,2187 -30,11,0,0,1,1,16065.98828125,17989.16015625,23052.53515625,0,0,0,2188 -53,4,1,0,1,1,16142.3994140625,984.67742919921875,0,0,0,0,2189 -24,10,0,0,1,1,16144.3583984375,20767.7421875,22904.76171875,0,0,0,2190 -48,8,1,0,1,1,16261.9140625,11637.0966796875,5172.04296875,0,0,0,2191 -48,8,1,0,1,1,16261.9140625,11637.0966796875,5172.04296875,0,0,0,2192 -47,6,1,0,1,1,16261.9140625,14412.0966796875,14260.060546875,0,0,0,2193 -45,4,0,1,1,1,16261.9140625,28108.064453125,28076.8046875,0,0,0,2194 -47,8,1,0,1,1,16301.099609375,17129.806640625,17732.71875,0,0,0,2195 -47,8,1,0,1,1,16301.099609375,17129.806640625,17732.71875,0,0,0,2196 -31,11,1,0,1,1,16453.923828125,19693.548828125,14777.265625,0,0,0,2197 -46,8,0,0,1,1,16457.841796875,16112.9033203125,16254.9921875,0,0,0,2198 -22,11,0,0,0,1,16653.767578125,3759.677490234375,0,0,0,0,2199 -21,11,0,0,1,1,16653.767578125,13427.4189453125,10344.0859375,0,0,0,2200 -33,10,0,0,1,1,16653.767578125,16112.9033203125,12560.67578125,0,0,0,2201 -28,9,0,0,1,1,16653.767578125,17158.451171875,17957.33203125,0,0,0,2202 -20,10,0,0,1,1,16849.6953125,11995.1611328125,17880.4921875,0,0,0,2203 -47,11,0,0,1,1,16928.064453125,15409.3056640625,17732.71875,0,0,0,2204 -23,11,0,0,1,1,17045.62109375,11986.2099609375,5910.90625,0,0,0,2205 -35,10,1,0,0,1,17045.62109375,14322.5810546875,16846.08203125,0,0,0,2206 -25,7,1,0,0,1,17045.62109375,16137.9677734375,11821.8134765625,0,0,0,2207 -23,11,1,0,1,1,17116.154296875,10741.9345703125,8866.359375,0,0,0,2208 -31,8,0,0,1,1,17241.548828125,15754.8388671875,16210.6611328125,0,0,0,2209 -55,8,1,0,1,1,17241.548828125,17903.2265625,16254.9921875,0,0,0,2210 -33,11,1,0,1,1,17370.859375,15844.35546875,14753.6220703125,0,0,0,2211 -31,9,1,0,0,1,17437.474609375,13427.4189453125,11326.7744140625,0,0,0,2212 -34,7,0,0,0,1,17619.685546875,20481.2890625,19432.103515625,0,0,0,2213 -22,11,0,0,1,1,17633.400390625,0,13299.5390625,0,1,0,2214 -21,9,0,0,1,1,17633.400390625,3202.88720703125,3250.99853515625,0,0,0,2215 -42,8,1,0,0,1,17633.400390625,10562.9033203125,0,0,0,0,2216 -46,10,0,1,1,1,17633.400390625,10741.9345703125,5910.90625,0,0,0,2217 -23,9,1,0,1,1,17633.400390625,12532.2578125,14777.265625,0,0,0,2218 -33,8,0,0,1,1,17633.400390625,12890.3232421875,22165.8984375,0,0,0,2219 -43,11,1,0,1,1,17633.400390625,14322.5810546875,17732.71875,0,0,0,2220 -43,11,1,0,1,1,17633.400390625,14322.5810546875,17732.71875,0,0,0,2221 -29,8,0,0,1,1,17633.400390625,16112.9033203125,11821.8134765625,0,0,0,2222 -35,9,0,0,1,1,17633.400390625,16112.9033203125,17732.71875,0,0,0,2223 -50,9,1,0,1,1,17633.400390625,16112.9033203125,16254.9921875,0,0,0,2224 -18,9,0,0,1,1,17633.400390625,16112.9033203125,17584.9453125,0,0,0,2225 -44,11,0,0,1,1,17633.400390625,16470.96875,14555.607421875,0,0,0,2226 -34,6,0,0,1,1,17633.400390625,17903.2265625,4876.49755859375,0,0,0,2227 -26,8,0,0,1,1,17633.400390625,18440.322265625,886.63592529296875,0,0,0,2228 -47,10,0,0,1,1,17633.400390625,19693.548828125,30884.484375,0,0,0,2229 -25,11,1,0,1,1,17633.400390625,21483.87109375,26599.078125,0,0,0,2230 -44,8,1,0,1,1,17633.400390625,21483.87109375,19210.4453125,0,0,0,2231 -36,10,1,0,0,1,17633.400390625,21483.87109375,17732.71875,0,0,0,2232 -40,2,1,0,1,1,17645.15625,13427.4189453125,8866.359375,0,0,0,2233 -46,11,0,0,1,1,17684.341796875,16112.9033203125,19210.4453125,0,0,0,2234 -44,5,1,0,1,1,17688.26171875,17903.2265625,19210.4453125,0,0,0,2235 -38,9,0,0,1,1,17829.328125,7877.41943359375,20688.171875,0,0,0,2236 -54,11,0,0,1,1,17829.328125,15754.8388671875,18102.150390625,0,0,0,2237 -32,8,0,0,1,1,17829.328125,21483.87109375,20688.171875,0,0,0,2238 -23,10,0,0,1,1,17829.328125,21483.87109375,23643.625,0,0,0,2239 -46,11,1,0,1,1,17868.513671875,17903.2265625,13326.1376953125,0,0,0,2240 -44,11,1,0,1,1,17929.251953125,18588.919921875,19210.4453125,0,0,0,2241 -41,10,1,0,1,1,18025.255859375,17366.12890625,21427.03515625,0,0,0,2242 -44,8,0,0,1,1,18025.255859375,18798.38671875,28076.8046875,0,0,0,2243 -36,11,1,0,1,1,18025.255859375,21483.87109375,26599.078125,0,0,0,2244 -23,8,0,0,1,1,18221.181640625,25073.46875,12117.3583984375,0,0,0,2245 -20,9,0,0,1,1,18285.837890625,20767.7421875,23643.625,0,0,0,2246 -46,3,1,0,1,1,18319.14453125,14322.5810546875,19949.30859375,0,0,0,2247 -36,10,1,0,1,1,18417.107421875,16112.9033203125,22165.8984375,0,0,0,2248 -40,10,0,0,1,1,18417.107421875,17903.2265625,20688.171875,0,0,0,2249 -40,10,0,0,1,1,18417.107421875,17903.2265625,20688.171875,0,0,0,2250 -27,8,1,0,1,1,18417.107421875,22916.12890625,31032.2578125,0,0,0,2251 -24,11,1,0,0,1,18613.03515625,20230.64453125,31032.2578125,0,0,0,2252 -34,11,1,0,1,1,18808.9609375,17903.2265625,14777.265625,0,0,0,2253 -47,10,0,0,1,1,19004.888671875,17903.2265625,21722.580078125,0,0,0,2254 -47,10,0,0,1,1,19004.888671875,17903.2265625,21722.580078125,0,0,0,2255 -49,4,0,0,1,1,19200.814453125,7161.29052734375,2955.453125,0,0,0,2256 -35,9,0,0,1,1,19200.814453125,17706.2890625,8866.359375,0,0,0,2257 -33,9,1,0,1,1,19396.740234375,16112.9033203125,19210.4453125,0,0,0,2258 -51,11,0,0,1,1,19592.66796875,6982.25830078125,26599.078125,0,0,0,2259 -33,10,0,0,1,1,19592.66796875,10741.9345703125,26599.078125,0,0,0,2260 -20,7,1,0,1,1,19592.66796875,11637.0966796875,14777.265625,0,0,0,2261 -36,8,0,1,1,1,19592.66796875,11995.1611328125,16993.85546875,0,0,0,2262 -36,8,0,1,1,1,19592.66796875,11995.1611328125,16993.85546875,0,0,0,2263 -28,11,1,0,1,1,19592.66796875,12890.3232421875,7130.03076171875,0,0,0,2264 -44,6,1,0,1,1,19592.66796875,14322.5810546875,5615.36083984375,0,0,0,2265 -22,10,0,0,1,1,19592.66796875,15217.7421875,0,0,0,0,2266 -50,10,0,0,1,1,19592.66796875,15933.87109375,29554.53125,0,0,0,2267 -52,9,0,0,1,1,19592.66796875,16112.9033203125,24045.56640625,0,0,0,2268 -25,5,1,0,1,1,19592.66796875,16650,28076.8046875,0,0,0,2269 -52,8,0,0,1,1,19592.66796875,17903.2265625,17289.400390625,0,0,0,2270 -38,8,0,0,1,1,19592.66796875,17903.2265625,30207.6875,0,0,0,2271 -53,7,0,0,1,1,19592.66796875,19693.548828125,22165.8984375,0,0,0,2272 -38,8,0,0,1,1,19592.66796875,19693.548828125,23643.625,0,0,0,2273 -38,8,0,0,1,1,19592.66796875,19693.548828125,23643.625,0,0,0,2274 -22,11,0,0,1,1,19592.66796875,20588.7109375,27929.03125,0,0,0,2275 -41,9,0,0,1,1,19592.66796875,21483.87109375,20303.962890625,0,0,0,2276 -30,11,1,0,1,1,19592.66796875,24547.11328125,22165.8984375,0,0,0,2277 -24,10,0,0,1,1,19592.66796875,25064.515625,29554.53125,0,0,0,2278 -43,6,1,0,1,1,19912.029296875,16112.9033203125,20688.171875,0,0,0,2279 -55,6,1,0,1,1,19962.96875,26854.83984375,14777.265625,0,0,0,2280 -27,7,0,0,1,1,19984.521484375,20409.677734375,31032.2578125,0,0,0,2281 -23,10,0,0,1,1,19984.521484375,21483.87109375,17732.71875,0,0,0,2282 -53,10,0,0,1,1,19984.521484375,21483.87109375,4433.1796875,0,0,0,2283 -48,8,0,0,1,1,19984.521484375,21483.87109375,19210.4453125,0,0,0,2284 -53,10,1,0,1,1,20062.892578125,15502.4033203125,13299.5390625,0,0,0,2285 -50,7,0,0,1,1,20180.447265625,14322.5810546875,0,0,0,0,2286 -40,11,1,0,1,1,20278.41015625,16112.9033203125,19210.4453125,0,0,0,2287 -50,7,1,0,1,1,20384.212890625,17008.064453125,17732.71875,0,0,0,2288 -38,9,1,0,1,1,20388.130859375,22407.677734375,16254.9921875,0,0,0,2289 -52,5,0,0,1,1,20572.30078125,16112.9033203125,19210.4453125,0,0,0,2290 -36,10,0,0,1,1,20572.30078125,17366.12890625,14481.7197265625,0,0,0,2291 -40,11,0,0,1,1,20572.30078125,21483.87109375,27485.71484375,0,0,0,2292 -38,11,0,0,1,1,20572.30078125,21483.87109375,19210.4453125,0,0,0,2293 -41,8,0,0,1,1,20572.30078125,22379.03125,19633.07421875,0,0,0,2294 -43,11,0,0,1,1,20629.119140625,31330.64453125,26599.078125,0,0,0,2295 -46,10,0,0,1,1,20944.5625,21338.85546875,21131.490234375,0,0,0,2296 -53,8,0,0,1,1,20964.154296875,22033.5,23195.873046875,0,0,0,2297 -25,10,0,0,1,1,20964.154296875,23632.2578125,23495.853515625,0,0,0,2298 -44,10,1,0,1,1,20993.544921875,19190.46875,25068.154296875,0,0,0,2299 -44,10,1,0,1,1,20993.544921875,19190.46875,25068.154296875,0,0,0,2300 -37,8,0,0,1,1,21481.400390625,14322.5810546875,23643.625,0,0,0,2301 -34,10,1,0,1,1,21551.935546875,10083.0966796875,18471.58203125,0,0,0,2302 -46,11,0,0,1,1,21551.935546875,16112.9033203125,13299.5390625,0,0,0,2303 -48,6,1,0,1,1,21551.935546875,16112.9033203125,17732.71875,0,0,0,2304 -42,10,0,0,1,1,21551.935546875,18798.38671875,22165.8984375,0,0,0,2305 -55,10,0,0,1,1,21551.935546875,19693.548828125,14777.265625,0,0,0,2306 -39,9,0,0,1,1,21551.935546875,19693.548828125,20688.171875,0,0,0,2307 -41,10,1,0,1,1,21551.935546875,20767.7421875,25121.3515625,0,0,0,2308 -33,8,1,0,1,1,21551.935546875,22379.03125,27485.71484375,0,0,0,2309 -22,10,1,0,1,1,21551.935546875,25064.515625,31032.2578125,0,0,0,2310 -25,8,0,0,1,1,21551.935546875,25959.677734375,25121.3515625,0,0,0,2311 -54,9,1,0,0,1,21551.935546875,30435.484375,33987.7109375,0,0,0,2312 -49,8,0,0,0,1,21551.935546875,36316.6953125,44331.796875,0,0,0,2313 -35,10,0,0,1,1,21583.283203125,23847.09765625,22756.98828125,0,0,0,2314 -43,9,0,0,1,1,21630.3046875,11565.484375,11821.8134765625,0,0,0,2315 -39,7,0,0,1,1,21712.595703125,24065.515625,23643.625,0,0,0,2316 -47,10,0,1,1,1,21943.787109375,18977.419921875,19210.4453125,0,0,0,2317 -51,10,0,0,1,1,21943.787109375,23274.193359375,25860.21484375,0,0,0,2318 -51,10,0,0,1,1,21943.787109375,23274.193359375,25860.21484375,0,0,0,2319 -49,5,0,1,1,1,22041.751953125,23274.193359375,20392.626953125,0,0,0,2320 -48,11,0,0,1,1,22178.900390625,19693.548828125,16254.9921875,0,0,0,2321 -48,11,0,0,1,1,22178.900390625,19693.548828125,16254.9921875,0,0,0,2322 -30,10,1,0,1,1,22335.642578125,0,121173.578125,0,1,0,2323 -31,9,0,0,1,1,22531.568359375,21483.87109375,0,0,0,0,2324 -28,9,0,0,1,1,22727.494140625,20767.7421875,22904.76171875,0,0,0,2325 -49,10,0,0,1,1,22727.494140625,23095.16015625,24086.943359375,0,0,0,2326 -48,10,0,0,1,1,22727.494140625,26854.83984375,27042.396484375,0,0,0,2327 -49,9,0,0,1,1,22727.494140625,30435.484375,29554.53125,0,0,0,2328 -49,4,1,0,1,1,22968.484375,28645.16015625,22165.8984375,0,0,0,2329 -32,10,0,0,1,1,23025.302734375,21483.87109375,33987.7109375,0,0,0,2330 -30,11,0,0,1,1,23119.34765625,20051.61328125,22018.126953125,0,0,0,2331 -47,10,0,0,1,1,23236.904296875,17903.2265625,35364.953125,0,0,0,2332 -31,10,0,0,1,1,23315.275390625,2467.064453125,15220.583984375,0,0,0,2333 -48,10,0,0,1,1,23511.201171875,2864.51611328125,0,0,0,0,2334 -28,11,0,0,1,1,23511.201171875,5370.9677734375,21796.466796875,0,0,0,2335 -33,10,1,0,1,1,23511.201171875,12532.2578125,18471.58203125,0,0,0,2336 -52,8,1,0,0,1,23511.201171875,15217.7421875,7093.08740234375,0,0,0,2337 -53,5,0,0,1,1,23511.201171875,17903.2265625,20215.30078125,0,0,0,2338 -42,6,0,0,1,1,23511.201171875,17903.2265625,23643.625,0,0,0,2339 -42,6,0,0,1,1,23511.201171875,17903.2265625,23643.625,0,0,0,2340 -42,6,0,0,1,1,23511.201171875,17903.2265625,23643.625,0,0,0,2341 -42,8,0,0,1,1,23511.201171875,18798.38671875,26569.5234375,0,0,0,2342 -30,9,0,0,1,1,23511.201171875,19441.11328125,26599.078125,0,0,0,2343 -36,7,1,0,1,1,23511.201171875,21483.87109375,13299.5390625,0,0,0,2344 -54,8,0,0,1,1,23511.201171875,21483.87109375,19210.4453125,0,0,0,2345 -42,9,0,0,1,1,23511.201171875,21841.935546875,26303.533203125,0,0,0,2346 -51,8,1,0,1,1,23511.201171875,23274.193359375,23643.625,0,0,0,2347 -24,10,0,0,1,1,23511.201171875,25062.7265625,29678.66015625,0,0,0,2348 -23,10,0,0,1,1,23511.201171875,25064.515625,25121.3515625,0,0,0,2349 -50,8,0,0,1,1,23511.201171875,25243.548828125,26155.759765625,0,0,0,2350 -51,11,0,0,1,1,23511.201171875,25780.64453125,27190.169921875,0,0,0,2351 -51,8,0,0,1,1,23511.201171875,26407.2578125,22165.8984375,0,0,0,2352 -51,8,0,0,1,1,23511.201171875,27019.548828125,27337.94140625,0,0,0,2353 -30,10,0,0,1,1,23511.201171875,28645.16015625,28047.25,0,0,0,2354 -52,11,0,0,1,1,23568.01953125,0,0,0,1,0,2355 -50,8,1,0,1,1,23707.12890625,28913.7109375,31032.2578125,0,0,0,2356 -29,10,0,0,1,1,23711.046875,26854.83984375,13299.5390625,0,0,0,2357 -48,9,0,0,1,1,23859.951171875,25064.515625,26968.509765625,0,0,0,2358 -30,9,0,0,1,1,23903.0546875,23900.806640625,23791.3984375,0,0,0,2359 -37,8,0,0,1,1,24098.982421875,22823.03125,23145.630859375,0,0,0,2360 -28,11,0,0,1,1,24098.982421875,24169.35546875,35465.4375,0,0,0,2361 -44,11,1,0,1,1,24294.908203125,35806.453125,29554.53125,0,0,0,2362 -44,11,1,0,1,1,24294.908203125,35806.453125,29554.53125,0,0,0,2363 -54,3,0,0,1,1,24530.01953125,19514.515625,30549.041015625,0,0,0,2364 -52,9,0,0,1,1,24627.984375,25064.515625,19210.4453125,0,0,0,2365 -35,9,1,0,1,1,24686.76171875,16829.03125,20392.626953125,0,0,0,2366 -32,10,0,0,1,1,24686.76171875,27033.87109375,22904.76171875,0,0,0,2367 -47,7,0,0,1,1,24784.724609375,23811.2890625,25860.21484375,0,0,0,2368 -30,11,0,0,1,1,24882.6875,26854.83984375,33248.84765625,0,0,0,2369 -49,6,0,0,1,1,25274.54296875,21841.935546875,29111.21484375,0,0,0,2370 -48,8,0,0,1,1,25470.46875,0,13299.5390625,0,1,0,2371 -32,9,0,0,1,1,25470.46875,1432.258056640625,24803.640625,0,0,0,2372 -44,6,0,0,1,1,25470.46875,7619.61279296875,11821.8134765625,0,0,0,2373 -48,8,0,1,1,1,25470.46875,16112.9033203125,23643.625,0,0,0,2374 -52,7,1,0,0,1,25470.46875,17903.2265625,25121.3515625,0,0,0,2375 -49,11,0,0,1,1,25470.46875,19693.548828125,481.7388610839844,0,0,0,2376 -38,9,0,0,1,1,25470.46875,21483.87109375,47287.25,0,0,0,2377 -46,8,1,0,1,1,25470.46875,21483.87109375,11390.31640625,0,0,0,2378 -40,8,0,0,1,1,25470.46875,21483.87109375,16254.9921875,0,0,0,2379 -44,3,1,0,1,1,25470.46875,21483.87109375,26599.078125,0,0,0,2380 -40,10,1,0,0,1,25470.46875,23274.193359375,20688.171875,0,0,0,2381 -26,8,1,0,1,1,25470.46875,23274.193359375,23643.625,0,0,0,2382 -49,11,0,0,1,1,25470.46875,25064.515625,25121.3515625,0,0,0,2383 -51,11,0,0,1,1,25470.46875,25064.515625,26599.078125,0,0,0,2384 -44,8,0,0,1,1,25470.46875,26854.83984375,25860.21484375,0,0,0,2385 -47,8,0,0,1,1,25707.5390625,25064.515625,19062.673828125,0,0,0,2386 -49,8,0,0,1,1,25862.322265625,22916.12890625,16254.9921875,0,0,0,2387 -40,8,0,0,1,1,25862.322265625,26138.7109375,26155.759765625,0,0,0,2388 -48,10,0,0,0,1,26058.248046875,26854.83984375,33043.4453125,0,0,0,2389 -35,9,1,0,1,1,26134.66015625,24169.35546875,26599.078125,0,0,0,2390 -44,6,0,1,1,1,26450.1015625,3580.645263671875,0,0,0,0,2391 -42,11,0,0,1,1,26450.1015625,22379.03125,23327.392578125,0,0,0,2392 -31,8,0,0,1,1,26450.1015625,32225.806640625,26953.732421875,0,0,0,2393 -46,11,0,0,1,1,26841.955078125,29361.2890625,36943.1640625,0,0,0,2394 -51,10,1,0,1,1,27037.8828125,21483.87109375,26894.623046875,0,0,0,2395 -50,8,0,0,0,1,27084.904296875,21125.806640625,26599.078125,0,0,0,2396 -46,11,0,0,1,1,27429.734375,9846.7744140625,16993.85546875,0,0,0,2397 -51,10,1,0,1,1,27429.734375,25064.515625,24382.48828125,0,0,0,2398 -41,7,1,0,1,1,27429.734375,26708.03125,14777.265625,0,0,0,2399 -39,8,1,0,1,1,27429.734375,26854.83984375,28076.8046875,0,0,0,2400 -48,10,1,0,1,1,27429.734375,30435.484375,29554.53125,0,0,0,2401 -48,10,1,0,1,1,27429.734375,30435.484375,29554.53125,0,0,0,2402 -50,10,0,0,1,1,27429.734375,32225.806640625,33987.7109375,0,0,0,2403 -49,6,1,0,1,1,27429.734375,34016.12890625,32509.984375,0,0,0,2404 -49,8,0,0,1,1,27482.634765625,25064.515625,27337.94140625,0,0,0,2405 -47,7,0,0,1,1,27821.58984375,27929.03125,28925.01953125,0,0,0,2406 -42,9,0,0,1,1,28017.515625,23453.2265625,26377.419921875,0,0,0,2407 -42,9,0,0,1,1,28017.515625,23453.2265625,26377.419921875,0,0,0,2408 -45,10,0,0,1,1,28017.515625,32225.806640625,36943.1640625,0,0,0,2409 -55,10,0,0,1,1,28330.998046875,28602.193359375,28815.66796875,0,0,0,2410 -40,11,0,0,1,1,28409.369140625,12532.2578125,13299.5390625,0,0,0,2411 -48,8,0,0,1,1,28409.369140625,26317.7421875,28076.8046875,0,0,0,2412 -36,10,0,1,1,1,28409.369140625,28645.16015625,39159.75390625,0,0,0,2413 -46,9,1,0,1,1,28605.294921875,32225.806640625,41376.34375,0,0,0,2414 -46,10,0,0,1,1,28765.955078125,19514.515625,25676.9765625,0,0,0,2415 -45,9,1,0,1,1,28863.919921875,26854.83984375,36943.1640625,0,0,0,2416 -49,7,0,0,1,1,29247.935546875,20767.7421875,21341.326171875,0,0,0,2417 -37,10,0,0,1,1,29369.408203125,27750,39898.6171875,0,0,0,2418 -48,9,0,0,1,1,29389.001953125,19693.548828125,23052.53515625,0,0,0,2419 -37,11,1,0,1,1,29389.001953125,21483.87109375,13063.1025390625,0,0,0,2420 -28,10,0,0,1,1,29389.001953125,23274.193359375,22904.76171875,0,0,0,2421 -36,11,1,0,0,1,29389.001953125,25982.951171875,45809.5234375,0,0,0,2422 -40,11,0,0,1,1,29389.001953125,26407.2578125,31032.2578125,0,0,0,2423 -44,10,0,0,1,1,29389.001953125,26854.83984375,23643.625,0,0,0,2424 -47,10,1,0,1,1,29389.001953125,26854.83984375,0,0,0,0,2425 -47,10,1,0,1,1,29389.001953125,26854.83984375,0,0,0,0,2426 -30,11,0,1,1,1,29389.001953125,26854.83984375,36943.1640625,0,0,0,2427 -33,10,0,0,1,1,29389.001953125,28645.16015625,36499.84765625,0,0,0,2428 -48,9,0,0,1,1,29389.001953125,32225.806640625,31032.2578125,0,0,0,2429 -19,11,1,0,0,1,29725.99609375,8806.5966796875,9457.4501953125,0,0,0,2430 -38,9,0,0,1,1,29976.78125,25064.515625,47287.25,0,0,0,2431 -42,9,0,0,0,1,30368.634765625,19693.548828125,35465.4375,0,0,0,2432 -32,10,1,0,1,1,30930.9453125,35806.453125,38125.34765625,0,0,0,2433 -55,11,0,0,1,1,31048.501953125,31053.14453125,28076.8046875,0,0,0,2434 -37,11,0,0,1,1,31250.3046875,26854.83984375,36943.1640625,0,0,0,2435 -21,10,0,0,1,1,31348.26953125,10741.9345703125,44331.796875,0,0,0,2436 -51,11,1,0,1,1,31348.26953125,21483.87109375,26007.98828125,0,0,0,2437 -42,6,1,0,1,1,31348.26953125,28645.16015625,20688.171875,0,0,0,2438 -42,5,1,0,1,1,31348.26953125,32225.806640625,23643.625,0,0,0,2439 -52,11,0,0,1,1,31348.26953125,33120.96875,28076.8046875,0,0,0,2440 -45,5,0,0,1,1,31348.26953125,37596.7734375,31477.0546875,0,0,0,2441 -49,8,0,0,1,1,31348.26953125,37596.7734375,38420.890625,0,0,0,2442 -48,8,0,0,1,1,31510.888671875,35795.7109375,28076.8046875,0,0,0,2443 -48,8,0,0,1,1,31510.888671875,35795.7109375,28076.8046875,0,0,0,2444 -55,7,1,0,1,1,32504.236328125,26854.83984375,31918.89453125,0,0,0,2445 -55,7,1,0,1,1,32504.236328125,26854.83984375,31918.89453125,0,0,0,2446 -47,11,0,0,1,1,32719.755859375,30435.484375,36943.1640625,0,0,0,2447 -51,8,0,0,1,1,33111.609375,27750,32362.212890625,0,0,0,2448 -54,11,0,0,1,1,33158.6328125,32225.806640625,36943.1640625,0,0,0,2449 -42,9,0,0,1,1,33221.328125,32225.806640625,33987.7109375,0,0,0,2450 -42,9,0,0,1,1,33221.328125,32225.806640625,33987.7109375,0,0,0,2451 -51,8,1,0,1,1,33299.69921875,25064.515625,25121.3515625,0,0,0,2452 -55,2,1,0,1,1,33307.53515625,20946.7734375,28076.8046875,0,0,0,2453 -32,10,0,0,1,1,33307.53515625,25064.515625,29554.53125,0,0,0,2454 -38,8,0,0,1,1,33307.53515625,35448.38671875,33987.7109375,0,0,0,2455 -42,11,0,0,1,1,33307.53515625,44758.06640625,54675.8828125,0,0,0,2456 -49,8,0,0,1,1,33699.390625,28645.16015625,2955.453125,0,0,0,2457 -35,7,0,0,1,1,34091.2421875,28287.09765625,25121.3515625,0,0,0,2458 -46,11,0,0,1,1,34287.16796875,30077.419921875,39898.6171875,0,0,0,2459 -46,11,0,0,1,1,34287.16796875,30077.419921875,39898.6171875,0,0,0,2460 -31,11,0,0,1,1,34483.09765625,35806.453125,36943.1640625,0,0,0,2461 -52,10,0,0,1,1,35266.80078125,17187.09765625,39159.75390625,0,0,0,2462 -51,8,1,0,1,1,35266.80078125,25064.515625,1182.1812744140625,0,0,0,2463 -51,9,0,0,0,1,35266.80078125,32225.806640625,39898.6171875,0,0,0,2464 -52,8,1,0,1,1,35266.80078125,33120.96875,44147.08203125,0,0,0,2465 -49,6,0,0,1,1,35266.80078125,33120.96875,26894.623046875,0,0,0,2466 -48,10,0,0,1,1,35266.80078125,34911.2890625,38568.6640625,0,0,0,2467 -31,10,0,0,1,1,35266.80078125,35806.453125,44331.796875,0,0,0,2468 -42,11,0,0,1,1,35266.80078125,44758.06640625,38420.890625,0,0,0,2469 -50,11,0,0,1,1,36205.2890625,38563.546875,31032.2578125,0,0,0,2470 -50,11,0,0,1,1,36205.2890625,38563.546875,31032.2578125,0,0,0,2471 -37,10,0,0,1,1,36246.4375,17545.16015625,17732.71875,0,0,0,2472 -37,10,0,0,1,1,36246.4375,17545.16015625,17732.71875,0,0,0,2473 -55,11,0,0,1,1,36638.2890625,37417.7421875,32177.49609375,0,0,0,2474 -50,11,0,0,1,1,36677.4765625,46548.38671875,47287.25,0,0,0,2475 -41,8,1,0,1,1,36691.1875,32888.2265625,42262.98046875,0,0,0,2476 -49,8,0,0,1,1,37226.0703125,14322.5810546875,23643.625,0,0,0,2477 -48,8,1,0,1,1,37226.0703125,26854.83984375,30569.73046875,0,0,0,2478 -48,8,1,0,1,1,37226.0703125,26854.83984375,30569.73046875,0,0,0,2479 -48,6,0,1,1,1,38670.05078125,42967.7421875,36943.1640625,0,0,0,2480 -48,6,0,1,1,1,38670.05078125,42967.7421875,36943.1640625,0,0,0,2481 -46,11,0,0,1,1,39185.3359375,39387.09765625,35465.4375,0,0,0,2482 -29,10,0,0,1,1,41144.6015625,8951.61328125,31032.2578125,0,0,0,2483 -55,8,0,0,1,1,43025.5,37972.7421875,51580.046875,0,0,0,2484 -32,10,0,0,1,1,43103.87109375,39387.09765625,36943.1640625,0,0,0,2485 -47,8,0,0,1,1,44667.36328125,33837.09765625,38568.6640625,0,0,0,2486 -32,8,0,0,1,1,47022.40234375,67137.09375,59109.0625,0,0,0,2487 -47,10,0,0,1,1,48197.96484375,47968.11328125,55710.29296875,0,0,0,2488 -54,0,0,1,1,1,49228.5390625,44220.96875,20540.3984375,0,0,0,2489 -40,8,0,0,1,1,50940.9375,55500,53198.15625,0,0,0,2490 diff --git a/Production/data/randomization_df.csv b/Production/data/randomization_df.csv deleted file mode 100644 index 7b06d0b6..00000000 --- a/Production/data/randomization_df.csv +++ /dev/null @@ -1,101 +0,0 @@ -Cholesterol_LDL,Cholesterol_HDL,Age,Genetic_disposition,Packs_per_day,Exercise_per_week,treat -35.600060389310634,63.54329053190665,43,0.4638203245620088,0,5,0 -35.471092325851274,34.48229106473817,42,1,0,6,1 -37.81196598451013,61.59702885777309,65,0.18029891980404678,0,7,1 -38.6796237919098,95.18814542017783,58,0.5271603228397789,0,3,1 -39.70959345231919,80.13930538681063,81,0.2938513707561523,0,4,1 -40.678300149719874,101.40258515416257,66,0.7583879421692076,0,4,1 -36.509656424184755,59.97567476560243,67,0.41531934052618547,0,2,0 -38.85832693447983,87.85500638537212,69,0.43287400570704954,0,3,1 -37.86893728697649,91.40323223898677,60,0.40748584929410814,0,4,0 -39.97896070413736,91.41852666829027,67,0.6733251187539482,0,2,0 -41.843786679520086,77.04073588751359,57,0.43285870031871715,0,5,0 -40.750142888237505,111.77624900678964,51,0.3764884801763879,0,3,1 -40.86852655985952,82.37692913339025,50,0.1665249932407722,6,1,0 -43.66225496770841,101.3270761456892,80,0.3599221656583375,0,5,0 -40.68045149068507,90.5194298787897,55,0.5502473868308037,0,5,1 -35.58221378417617,79.85017666798637,67,0.3482659856369621,0,5,0 -39.74088022752112,88.4228646624366,62,0.37313745778968943,0,4,0 -39.08339625084403,90.75651020263821,63,0.772051683202426,0,1,0 -37.23098102785302,69.64684305010702,46,0.3978873114661434,0,2,0 -37.43345109630995,105.60781221921724,59,0.7349153414862385,0,2,0 -36.567175309620644,60.420704137422746,62,0.4241569938492942,0,3,1 -36.57259944920412,80.51295223115261,69,0.5703236918216571,0,4,0 -37.996151356467564,74.74506630393992,49,0.6036797667878673,0,6,0 -35.3643473471704,57.45425032715199,58,0.6456171318556556,0,4,1 -37.48557082006611,74.42299008351077,44,0.4786142676026919,0,3,1 -33.35658735455727,68.872243831106,61,0.7622560978897989,0,7,1 -37.31411722460755,68.76370934816786,68,0.299117992948851,0,7,0 -50.13053667264564,153.2537101444457,74,0.6907796069573878,7,1,0 -36.884507725429835,84.11239141579743,57,0.3426814475953292,0,5,0 -44.89841141154858,140.1817502451311,72,0.733157427952556,4,3,0 -38.02451728823533,71.17728064293325,59,0.547149658857457,0,4,1 -34.95244804530747,69.44005911839307,70,0.25448828791347694,4,3,0 -42.82543621075796,96.89180227804314,62,0.8169867629693142,4,0,0 -34.213709187332995,64.88541131982613,65,0.1378294352117338,0,7,0 -32.962385489588044,54.89473124720317,76,0.4808705406089972,0,12,0 -33.94826309906082,69.12104160176399,44,0.2776855756133943,0,3,1 -41.77667944942795,100.42994224895949,66,0.3568448081394628,4,1,1 -36.893921064928996,74.32068446477629,83,0.22193584614795983,0,3,1 -46.53296924663646,142.31219031663238,66,0.6781388318683109,8,1,1 -37.54146467297717,65.91647825910776,73,0.4459913099064962,0,5,0 -40.326000275705425,86.93824741599737,66,0.8518923230469397,0,8,0 -37.728942902030845,70.66857729182722,46,0.5907427985768282,0,7,1 -37.72131227291296,86.53579008965112,58,0.3289543429265766,0,5,1 -38.483933121487006,97.91915475230975,65,0.44722054444157544,0,9,0 -34.66173419213899,53.33306194832407,60,0.27491534071140716,0,3,0 -34.79352846677452,71.5046593372201,52,0.49067764921008583,0,3,1 -38.218901400431555,74.50791250133238,57,0.825275424558012,0,2,0 -32.3311585200738,72.75774595687453,55,0.6604971257025934,0,7,1 -42.03322416212814,103.48588529115432,77,0.3172614759154534,0,3,1 -38.24209686345875,101.45904882504705,55,0.7146640424913577,0,4,0 -37.59017468768469,92.90053091389467,74,0.41043771968918163,0,5,1 -35.831259208016334,66.23924391330833,54,0.4861896693476153,0,3,0 -36.57688886657206,83.18652776430015,58,0.5717420209193782,0,4,0 -34.56339435486427,83.00125712570124,63,0.33690218726737714,0,5,1 -39.29119203468064,74.4557376214048,51,0.35844885835008805,4,4,0 -36.28186986542142,67.49134305738704,57,0.4314251169465646,0,7,1 -41.32135211962998,95.68989072428919,78,0.6121187899280023,2,4,1 -37.30999511079124,59.58780495001838,68,0.1557482138262743,0,1,1 -38.007216527300976,106.50714543113418,63,0.6917157483612382,0,4,0 -42.51240507178029,114.81040424796471,73,0.578786196998164,0,2,0 -36.60391398185304,75.91363386185309,55,0.39678392979639365,0,6,0 -38.967714955574145,50.429920669423936,52,0.35853213243268256,0,3,1 -40.96079153896621,100.94391616249294,66,0.27985125947880224,5,4,0 -40.28124847620866,74.65753185550862,68,0.40316335726858055,0,3,1 -37.882104857364986,85.38314987675986,64,0.5710123589747225,0,5,1 -45.66481246297074,159.57708540688068,77,0.3817855536267959,10,0,0 -35.461761543181844,52.55988967531267,52,0.5795981312574711,0,3,0 -35.27240735906224,101.51950471224374,68,0.4020375223372079,0,5,1 -40.52482389386522,89.09012093792612,56,0.38611694046329886,0,2,0 -36.300604551941554,69.97455700997554,52,0.4285498569136989,4,4,1 -43.13586235097905,108.96916093006425,74,0.4015111849593041,6,4,0 -44.614079944241375,93.11837740350897,68,0.6333442119863912,0,8,0 -35.16285755493945,51.888494760457704,47,0,0,6,1 -41.06493822137739,89.17404211518628,62,0.5246877466978096,0,8,0 -44.16440400946371,117.74036835805246,71,0.5791436917963132,0,1,1 -38.94683879927957,87.78386064070423,43,0.39617491673382943,0,1,0 -39.52271183570347,75.89179079630874,67,0.45048454524328224,0,4,1 -35.36821272498813,54.72458566608383,49,0.35297568785714334,0,5,1 -33.99911448832039,69.45256130364376,46,0.7898157297219994,0,10,0 -37.08433681327634,73.51042406833795,63,0.13977881655566438,4,2,1 -37.673507013530845,72.23026247874698,66,0.12067929847228316,0,8,0 -37.989725087160416,86.99813642586108,66,0.5698256016642338,3,2,1 -36.95907545603824,71.43843776898402,66,0.18527658758715987,0,8,0 -37.06250178273486,87.67123413196792,58,0.39996675880476806,0,8,0 -33.25177552043213,56.31344410917117,44,0.40426360058299055,0,9,1 -37.19092105448121,55.700597016102186,41,0.3404576059716503,0,5,1 -41.42830106714044,97.97274635959516,72,0.2031067891505592,5,3,1 -36.87438199973072,79.01173686575568,59,0.7409727753040104,0,3,0 -40.31156330689335,93.88969733433082,53,0.6710493612765441,3,5,1 -42.164215176908016,116.24903327972284,61,0.705490036719425,9,1,1 -32.89328951155409,46.41602130535196,46,0.5275187855439676,0,5,1 -35.03897035661423,51.66050880526319,46,0.24573409054757295,0,6,1 -37.63719805498994,67.16473302317328,66,0.5982166707499053,0,11,0 -35.56552006445664,75.86778041051944,58,0.29785163074210497,0,8,1 -41.48448860017861,110.40773109351645,71,0.8042266845495649,0,3,0 -35.317601291723115,66.43971256226887,65,0.524663073127554,0,7,0 -33.8938779500676,93.65508340939087,50,0.49239733294432037,6,3,0 -43.67051709793073,109.34128444643238,57,0.45503024024754835,9,0,1 -36.56477104564699,74.70174518073765,38,0.2773794970932435,0,5,1 -38.41075744148226,84.85771291860698,63,0.3932783988200914,0,6,0 diff --git a/Production/global.R b/Production/global.R deleted file mode 100644 index d20142d3..00000000 --- a/Production/global.R +++ /dev/null @@ -1,83 +0,0 @@ -library(shiny) - -# for reading data -library(foreign) -library(readstata13) -library(openxlsx) - -# for javascript and Shiny tools -library(shinyjs) # for running javascript on the server-side -library(shinyWidgets) # for alerts -library(DT) # for javascript datatables -library(sortable) # for drag and drop divs -library(kableExtra) # for one html table. Can easily replace with one custom function -- see https://github.com/joemarlo/sequenchr/blob/57375aebe59330cfcc02d69a7fd98ec476a6bf28/R/helpers.R#L173 - -# for data munging and plotting -library(tidyverse) -library(patchwork) # for combining ggplots -library(viridis) # for color blind sensitive colors -library(rpart.plot) # for plotting single regression tree -library(gtools) # for combination function -# for bart -library(plotBart) # devtools::install_github("joemarlo/plotBart") -library(bartCause) - -# global options -options(shiny.reactlog = TRUE) # for testing; when running, hit Ctrl-F3 to see the reactivity tree -options(shiny.maxRequestSize = 10*1024^2) # increase maximum file upload size limit to 10mb - - -# data and objects -------------------------------------------------------- - -# violet color -violet_col <- "#5c5980" - -# text for model specification -analysis_model_text <- list( - 'design' = list( - 'non_random' = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat", - 'random' = 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', - 'quasi' = 'Sed euismod nisi porta lorem mollis aliquam ut. Et sollicitudin ac orci phasellus egestas. Purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae.', - "None" = 'Please make a selection' - ), - 'estimand' = list( - 'ATE' = 'Vestibulum lorem sed risus ultricies. Leo vel fringilla est ullamcorper eget nulla. Enim diam vulputate ut pharetra sit amet aliquam id diam.', - 'ATT' = 'Rutrum tellus pellentesque eu tincidunt tortor aliquam. Nulla facilisi etiam dignissim diam quis. Aliquet nibh praesent tristique magna sit amet purus gravida. Integer feugiat scelerisque varius morbi enim nunc.', - 'ATC' = 'Commodo ullamcorper a lacus vestibulum sed arcu non odio. Augue eget arcu dictum varius duis at consectetur. Duis at tellus at urna condimentum mattis. Ultricies mi eget mauris pharetra.', - "None" = 'Please make a selection' - ), - 'support' = list( - 'none' = "None", - 'sd' = 'Condimentum lacinia quis vel eros donec. Et leo duis ut diam. Adipiscing elit duis tristique sollicitudin nibh sit. Ut placerat orci nulla pellentesque dignissim enim sit amet.', - 'chi' = 'Integer vitae justo eget magna fermentum iaculis eu non. Sed libero enim sed faucibus turpis in. At volutpat diam ut venenatis.', - "None" = 'Please make a selection' - ) -) - - -# # data and objects for the concepts modules ----------------------------- - -# randomization module -## read in randomization df -randomization_df <- read_csv( - 'data/randomization_df.csv', - col_types = cols( - Cholesterol_LDL = col_double(), - Cholesterol_HDL = col_double(), - Age = col_double(), - Genetic_disposition = col_double(), - Packs_per_day = col_double(), - Exercise_per_week = col_double(), - treat = col_double() - ) -) %>% as.data.frame() -rownames(randomization_df) <- 1:nrow(randomization_df) - - -# UI files (this should always be last) ----------------------------------- - -# read in all the UI and module files -map(list.files('R', recursive = TRUE), function(file) source(file.path('R', file))) -map(list.files(file.path('UI', 'concepts')), function(file) source(file.path("UI", "concepts", file))) -map(list.files(file.path('UI', 'pages')), function(file) source(file.path("UI", "pages", file))) -map(list.files(file.path('UI', 'headers')), function(file) source(file.path("UI", "headers", file))) diff --git a/Production/man/clean_auto_convert_logicals.Rd b/Production/man/clean_auto_convert_logicals.Rd deleted file mode 100644 index c3a5ce60..00000000 --- a/Production/man/clean_auto_convert_logicals.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/clean_auto_convert_logicals.R -\name{clean_auto_convert_logicals} -\alias{clean_auto_convert_logicals} -\title{Convert all psuedo-logical columns in a dataframe to booleans} -\usage{ -clean_auto_convert_logicals(input_data) -} -\arguments{ -\item{input_data}{dataframe} -} -\value{ -dataframe -} -\description{ -Converts columns of a dataframe containing binary c(0, 1), c("T", "F"), c("True", "False") to boolean c(TRUE, FALSE). Is agnostic to case. -} -\examples{ -x <- data.frame( - zero_one = sample(0:1, 10, replace = TRUE), - TF = sample(c("T", "F"), 10, replace = TRUE), - truefalse = sample(c('true', 'false'), 10, replace = TRUE) - ) -clean_auto_convert_logicals(x) -} -\author{ -Joe Marlo -} diff --git a/Production/man/clean_detect_ZYX_columns.Rd b/Production/man/clean_detect_ZYX_columns.Rd deleted file mode 100644 index 30c6f2e5..00000000 --- a/Production/man/clean_detect_ZYX_columns.Rd +++ /dev/null @@ -1,30 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/clean_detect_ZYX_columns.R -\name{clean_detect_ZYX_columns} -\alias{clean_detect_ZYX_columns} -\title{Attempt to detect which columns of a dataframe are Z, Y, and X} -\usage{ -clean_detect_ZYX_columns(.data) -} -\arguments{ -\item{.data}{a dataframe} -} -\value{ -a list denoting which column names are Z, Y, X, and ID -} -\description{ -Attempts to auto detect which columns are treatment, response, or ID columns. Treatment and response are detected based on column name alone; ID is based on column name and the values. If none are detected, then columns are categorized as 'X'. Will only return one item (the first) for Z, Y, and ID. -} -\examples{ -.data <- data.frame( - treatment = c(TRUE, TRUE, FALSE, TRUE, FALSE), - rsp = c(0.808, 0.296,-1.579,-1.272, 0.627), - ID = c(0.808, 0.296,-1.579,-1.272, 0.627), - dummyID = 1:5, - dummy1 = c(34, 35, 10, 5, 38) -) -clean_detect_ZYX_columns(.data) -} -\author{ -Joe Marlo -} diff --git a/Production/man/clean_detect_column_types.Rd b/Production/man/clean_detect_column_types.Rd deleted file mode 100644 index e632bf7d..00000000 --- a/Production/man/clean_detect_column_types.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/clean_detect_column_types.R -\name{clean_detect_column_types} -\alias{clean_detect_column_types} -\title{Return a list of the column types} -\usage{ -clean_detect_column_types(.data) -} -\arguments{ -\item{.data}{a dataframe} -} -\value{ - -} -\description{ -Categorizes the types of columns in a dataframe by categorical or continuous. -} -\examples{ -X <- data.frame(X1 = 1:5, X2 = rnorm(5), X3 = LETTERS[1:5], X4 = as.factor(LETTERS[1:5])) -clean_detect_column_types(X) -} diff --git a/Production/man/clean_detect_plot_vars.Rd b/Production/man/clean_detect_plot_vars.Rd deleted file mode 100644 index 9147d5ad..00000000 --- a/Production/man/clean_detect_plot_vars.Rd +++ /dev/null @@ -1,36 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/clean_detect_plot_vars.R -\name{clean_detect_plot_vars} -\alias{clean_detect_plot_vars} -\title{Determine which default columns to use in plot_exploration()} -\usage{ -clean_detect_plot_vars(.column_types, .treatment_column, .response_column) -} -\arguments{ -\item{.column_types}{a list containing names of categorical and continuous columns. Ideally from output of clean_detect_column_types().} - -\item{.treatment_column}{name of column denoting treatment} - -\item{.response_column}{name of the outcome column} -} -\value{ -a list denoting which columns to use in plotting -} -\description{ -Determine which default columns to use in plot_exploration() -} -\examples{ -X <- data.frame( - treatment = sample(as.logical(0:1), 5, TRUE), - response = rnorm(5), - X1 = 1:5, - X2 = rnorm(5), - X3 = LETTERS[1:5], - X4 = as.factor(LETTERS[1:5]) -) -column_types <- clean_detect_column_types(X) -clean_detect_plot_vars(column_types, 'treatment', 'response') -} -\seealso{ -\code{\link{plot_exploration} \link{clean_detect_column_types}} -} diff --git a/Production/man/clean_names.Rd b/Production/man/clean_names.Rd deleted file mode 100644 index f9d1ab26..00000000 --- a/Production/man/clean_names.Rd +++ /dev/null @@ -1,31 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/clean_names.R -\name{clean_names} -\alias{clean_names} -\title{Clean a string for use in column names} -\usage{ -clean_names(.names) -} -\arguments{ -\item{.names}{} -} -\value{ -character vector -} -\description{ -Cleans up strings for use as column names in dataframes. Makes the following changes: -\itemize{ - \item replaces non-ASCII characters with ASCII counterparts - \item replaces spaces with underscores - \item replaces percent sign with '_percent' - \item removes all punctuation except underscores and periods - \item adds 'n' to the beginning of strings that start with numeric characters -} -} -\examples{ -.names <- c("yes", "TRUE", "nope\%", "98", 'Ábcdêãçoàúü', 'yep_-,.yep', 'hello goodbye') -clean_names(.names) -} -\author{ -Joe Marlo -} diff --git a/Production/man/convert_data_type_to_complex.Rd b/Production/man/convert_data_type_to_complex.Rd deleted file mode 100644 index 2d8d36b6..00000000 --- a/Production/man/convert_data_type_to_complex.Rd +++ /dev/null @@ -1,25 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/convert_data_type_to_complex.R -\name{convert_data_type_to_complex} -\alias{convert_data_type_to_complex} -\title{Convert human readable data type to R data} -\usage{ -convert_data_type_to_complex(.data, .simple_data_types, new_levels) -} -\arguments{ -\item{.data}{a dataframe} - -\item{.simple_data_types}{human readable data types from list("Categorical", "Binary", "Continuous"). Must be length == ncol(.data)} -} -\value{ -a dataframe with dim == dim(.data) -} -\description{ -The inverse of convert_data_type_to_simple(). Converts a dataframe to new data types based on human readable strings. -} -\seealso{ -\code{\link{convert_data_type_to_simple}} -} -\author{ -Joe Marlo -} diff --git a/Production/man/convert_data_type_to_simple.Rd b/Production/man/convert_data_type_to_simple.Rd deleted file mode 100644 index 01255e52..00000000 --- a/Production/man/convert_data_type_to_simple.Rd +++ /dev/null @@ -1,31 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/convert_data_type_to_simple.R -\name{convert_data_type_to_simple} -\alias{convert_data_type_to_simple} -\title{Simplify data types for humans} -\usage{ -convert_data_type_to_simple(.data) -} -\arguments{ -\item{.data}{dataframe} -} -\value{ -character vector of length ncol(.data) -} -\description{ -Categorizes R data types into 'Continuous', 'Categorical', or 'Binary' -} -\examples{ -n_row <- 10 -my_character = sample(c('one', 'two', 'three'), size = n_row, replace = TRUE) -my_logical = sample(c(TRUE, FALSE), size = n_row, replace = TRUE) -my_numeric = rnorm(n_row) -X <- data.frame(my_character = my_character, my_logical = my_logical, my_numeric = my_numeric) -convert_data_type_to_simple(X) -} -\seealso{ -\code{\link{convert_data_type_to_complex}} -} -\author{ -Joe Marlo -} diff --git a/Production/man/create_datatable.Rd b/Production/man/create_datatable.Rd deleted file mode 100644 index f09764f4..00000000 --- a/Production/man/create_datatable.Rd +++ /dev/null @@ -1,35 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_datatable.R -\name{create_datatable} -\alias{create_datatable} -\title{Create a pretty datatable} -\usage{ -create_datatable(.data, digits = 3, ...) -} -\arguments{ -\item{.data}{a dataframe} - -\item{digits}{number of digits to round continuous columns to} - -\item{...}{arguments to be passed to DT::datatable. Typically a dataframe} -} -\value{ -HTML datatable -} -\description{ -Create an HTML datatable using the JavaScript library DataTables. This is a wrapper around DT::datatable with commonly used arguments set as defaults. -} -\examples{ -X <- data.frame(x = 1:10, y = 1:10) -create_datatable(X) - -## within Shiny -# UI -#DT::dataTableOutput(outputId = tableId) - -# server -#output$tableId <- DT::renderDataTable(create_datatable(X)) -} -\author{ -Joe Marlo -} diff --git a/Production/man/create_progress_bar.Rd b/Production/man/create_progress_bar.Rd deleted file mode 100644 index 16fb58e0..00000000 --- a/Production/man/create_progress_bar.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_progress_bar.R -\name{create_progress_bar} -\alias{create_progress_bar} -\title{Create a progress bar} -\usage{ -create_progress_bar(progress) -} -\arguments{ -\item{progress}{integer between 0 and 100 representing the fill percentage} -} -\value{ -HTML -} -\description{ -Create a bootstrap HTML progress bar filled. `progress` specifies the fill percentage of the bar. -} -\examples{ -create_progress_bar(80) -} -\author{ -Joe Marlo -} diff --git a/Production/man/create_script.Rd b/Production/man/create_script.Rd deleted file mode 100644 index 90da3535..00000000 --- a/Production/man/create_script.Rd +++ /dev/null @@ -1,35 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/create_script.R -\name{create_script} -\alias{create_script} -\title{Build a reproducible script which mimics the thinkCausal work-flow} -\usage{ -create_script( - uploaded_file_name, - uploaded_file_type, - uploaded_file_header, - uploaded_file_delim, - selected_columns, - column_names, - estimand, - common_support -) -} -\value{ -string -} -\description{ -Build a reproducible script which mimics the thinkCausal work-flow -} -\examples{ -create_script( - uploaded_file_name = 'test.csv', - uploaded_file_type = 'csv', - uploaded_file_header = 'TRUE', - uploaded_file_delim = ',', - selected_columns = c("Z", "Y", "X1", 'X2', "X3"), - column_names = c("treatment", "response", "covariate1", "covariate2", "covariate3"), - estimand = 'att', - common_support = 'none' -) -} diff --git a/Production/man/plot_DAG.Rd b/Production/man/plot_DAG.Rd deleted file mode 100644 index a4dba144..00000000 --- a/Production/man/plot_DAG.Rd +++ /dev/null @@ -1,24 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/plot_DAG.R -\name{plot_DAG} -\alias{plot_DAG} -\title{Plot a simple DAG} -\usage{ -plot_DAG(Z_col, Y_col, X_cols) -} -\arguments{ -\item{Z_col}{string} - -\item{Y_col}{string} - -\item{X_cols}{string or list of strings} -} -\value{ -ggplot object -} -\description{ -Plot a simple DAG -} -\examples{ -plot_DAG("myZ", "myY", c("X1", "X2", "X3")) -} diff --git a/Production/man/plot_exploration.Rd b/Production/man/plot_exploration.Rd deleted file mode 100644 index 7822a7aa..00000000 --- a/Production/man/plot_exploration.Rd +++ /dev/null @@ -1,90 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/plot_exploration.R -\name{plot_exploration} -\alias{plot_exploration} -\title{General purpose plotting for EDA} -\usage{ -plot_exploration( - .data, - .plot_type = c("Pairs", "Scatter", "Histogram", "Barplot", "Density", "Boxplot"), - .x, - .y, - .fill, - .fill_static = "grey20", - .size, - .shape, - .alpha = 0.9, - .vars_pairs, - .n_bins, - .jitter, - .groups, - .facet, - .facet_second, - .include_regression = c("Include", "None") -) -} -\arguments{ -\item{.data}{typically store$selected_df} - -\item{.plot_type}{one of c("Pairs", 'Scatter', 'Histogram', 'Density', 'Boxplot')} - -\item{.x}{} - -\item{.y}{} - -\item{.fill}{} - -\item{.fill_static}{} - -\item{.size}{} - -\item{.alpha}{} - -\item{.vars_pairs}{} - -\item{.n_bins}{} - -\item{.jitter}{} - -\item{.groups}{} - -\item{.facet}{} - -\item{.facet_second}{} - -\item{.include_regression}{one of c("Include", "None")} -} -\value{ - -} -\description{ -To be used programmatically. Not recommended for script/console use. -} -\examples{ -library(arm) -data('lalonde', package = 'arm') -X <- lalonde -X <- dplyr::select(X, 'treat', 're78', 'age', 'educ', 'black', 'hisp', 'married', 'nodegr') -X <- clean_auto_convert_logicals(X) -plot_exploration( - .data = X, - .plot_type = 'Boxplot', #c("Pairs", 'Scatter', 'Histogram', 'Density', 'Boxplot'), - .x = 're78', - .y = 'age', - .fill = NULL, - .fill_static = "#5c5980", - .size = 'age', - .shape = 'None', - .alpha = 0.5, - .vars_pairs, - .n_bins = 30, - .jitter = FALSE, - .groups = 'None', - .facet = 'None', - .facet_second = 'None', - .include_regression = 'None' -) -} -\seealso{ -\code{\link{clean_detect_plot_vars}} -} diff --git a/Production/man/plot_variable_importance.Rd b/Production/man/plot_variable_importance.Rd deleted file mode 100644 index f5312af2..00000000 --- a/Production/man/plot_variable_importance.Rd +++ /dev/null @@ -1,22 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/plot_variable_importance.R -\name{plot_variable_importance} -\alias{plot_variable_importance} -\title{Variable importance of Bayesian Additive Regression Trees} -\usage{ -plot_variable_importance(.model, confounders, out = "all") -} -\arguments{ -\item{.model}{a model produced by bartCause::bartc(). Typically store$model_results} - -\item{confounders}{matrix of confounders} -} -\value{ -a list containing variable importance plot & ordered table of confounders by scaled importance -} -\description{ -Fit single regression tree on bartc() icates to produce variable importance plot & table. -} -\author{ -George Perrett, Joe Marlo -} diff --git a/Production/manual_workflow.R b/Production/manual_workflow.R deleted file mode 100644 index 3d4dae0e..00000000 --- a/Production/manual_workflow.R +++ /dev/null @@ -1,55 +0,0 @@ -### this is a dev script that mimics the Shiny app analysis workflow -### useful for testing functions -library(tidyverse) -library(bartCause) -theme_set(theme_minimal()) - - -# setup ------------------------------------------------------------------- - -X <- read_csv("data/lalonde.csv") -X <- dplyr::select(X, 'treat', 're78', 'age', 'educ', 'black', 'hisp', 'married', 'nodegr') -X <- clean_auto_convert_logicals(X) - -treatment_v <- X[, 1] -response_v <- X[, 2] -confounders_mat <- as.matrix(X[, 3:ncol(X)]) - -# run model -model_results <- bartCause::bartc( - response = response_v, - treatment = treatment_v, - confounders = confounders_mat, - estimand = 'ate', - commonSup.rule = 'none' -) - - -# functions to test ------------------------------------------------------- - -classes_categorical <- c('logical', 'character', 'factor') -classes_continuous <- c('numeric', 'double', 'integer') -cols_by_class <- split(colnames(X), sapply(X, function(x) class(x)[1])) -store$selected_df_categorical_vars <- as.vector(unlist(cols_by_class[classes_categorical])) -store$selected_df_numeric_vars <- as.vector(unlist(cols_by_class[classes_continuous])) - - - -plot_exploration( - .data = X, - plot_type = 'Boxplot', #c("Pairs", 'Scatter', 'Histogram', 'Density', 'Boxplot'), - .x = 're78', - .y = 'age', - .fill = 'age', - .fill_static = "#5c5980", - .size = 'age', - .alpha = 0.5, - vars_pairs, - n_bins = 30, - jitter = FALSE, - .groups = 'None', - .facet = 'None', - .facet_second = 'None', - include_regression = 'None' - ) - diff --git a/Production/server.R b/Production/server.R deleted file mode 100644 index 1a1272b9..00000000 --- a/Production/server.R +++ /dev/null @@ -1,1732 +0,0 @@ -# Define server logic required to draw a histogram -shinyServer(function(input, output, session) { - - # initialize list to store variables - store <- reactiveValues(uploaded_df = data.frame(), log = list()) - - # back next buttons ------------------------------------------------------- - - # data page - # observeEvent(input$analysis_data_load_button_next, { - # updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Select Data") - # }) - observeEvent(input$analysis_data_select_button_back, { - updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Load Data") - }) - # observeEvent(input$analysis_data_select_button_next, { - # - # # ensure data has been selected first - # data_has_been_selected <- isTRUE(nrow(store$selected_df) > 0) - # if (isFALSE(data_has_been_selected)){ - # shinyWidgets::show_alert( - # title = 'Please select and save columns assignments', - # text = "Must be saved prior to proceeding", - # type = 'error' - # ) - # } - # validate(need(data_has_been_selected, "No dataframe uploaded")) - # - # updateNavbarPage(session, inputId = "nav", selected = "Exploratory Plots") - # updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Descriptive Plots") - # }) - - # plotting page - observeEvent(input[['analysis_plots_descriptive_button_back']], { - updateNavbarPage(session, inputId = "nav", selected = "Data") - updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Select Data") - }) - observeEvent(input[['analysis_plots_descriptive_button_next']], { - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Common Support Plots") - }) - observeEvent(input$analysis_plots_support_button_back, { - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Descriptive Plots") - }) - observeEvent(input$analysis_plots_support_button_next, { - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Balance Plots") - }) - observeEvent(input$analysis_plots_balance_button_back, { - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Common Support Plots") - }) - - observeEvent(input$analysis_plots_balance_button_next, { - updateNavbarPage(session, inputId = "nav", selected = "Model") - }) - - # model page - observeEvent(input$analysis_model_button_back, { - updateNavbarPage(session, inputId = "nav", selected = "Exploratory Plots") - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Balance Plots") - }) - observeEvent(input$analysis_model_button_popup, { - updateNavbarPage(session, inputId = "nav", selected = "Data") - updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Load") - shinyWidgets::closeSweetAlert() - }) - - # diagnostics page - observeEvent(input$analysis_diagnostics_button_back, { - updateNavbarPage(session, inputId = "nav", selected = "Model") - }) - observeEvent(input$analysis_diagnostics_button_next, { - updateNavbarPage(session, inputId = "nav", selected = "Results") - }) - - # results page - observeEvent(input$analysis_results_button_back, { - updateNavbarPage(session, inputId = "nav", selected = "Model diagnostics") - }) - - - # upload data ------------------------------------------------------------- - - # read in the uploaded file - uploaded_df <- reactive({ - # TODO: test all the file types (e.g. stata is only stata 15 or older) - # TODO: this behavior is really unintuitive; need to rethink it - # TODO: add parsing failures to log - - req(input$analysis_data_upload) - - # extract the filepath and the filetype - filepath <- input$analysis_data_upload$datapath - filetype <- tools::file_ext(filepath) - - tryCatch({ - - # if it's a txt file then ask the user what the delimiter is - if (filetype == 'txt'){ - output$analysis_data_delim <- renderUI({ - textInput(inputId = 'analysis_data_delim_value', - label = "Column delimiter", - # value = ',', - placeholder = ", | - :") - }) - req(input$analysis_data_delim_value) - } - - # upload the file based on its filetype - if (filetype == "csv"){ - uploaded_file <- readr::read_csv( - file = filepath, - col_names = input$analysis_data_header) - } else if (filetype == 'dta'){ - uploaded_file <- readstata13::read.dta13(file = filepath) - } else if (filetype == 'xlsx'){ - uploaded_file <- xlsx::read.xlsx(file = filepath) - } else if (filetype == 'txt'){ - delim <- input$analysis_data_delim_value - if (delim == "") delim <- "," - uploaded_file <- readr::read_delim( - file = filepath, - delim = delim, - col_names = input$analysis_data_header - ) - } else if (filetype == 'spss'){ - uploaded_file <- Hmisc::spss.get(file = filepath) - } else stop("File type is invalid") - }, - error = function(e) { - # return a safeError if a parsing error occurs or if dataset isn't yet uploaded - stop(safeError(e)) - }) - - # clean column names; bad csvs will crash the server - colnames(uploaded_file) <- clean_names(colnames(uploaded_file)) - - return(uploaded_file) - }) - - - # # Practice df - # uploaded_df <- reactive({ - # req(input$create_practice) - # sim <- make_dat_demo() - # return(sim) - # }) - - # add dataframe to store object - # TODO: does this need to be eager or can it be lazy via reactive()? - observeEvent(uploaded_df(), { - - # add to log - log_event <- paste0('Uploaded ', input$analysis_data_upload$name) - store$log <- append(store$log, log_event) - - # retrieve the raw uploaded data frame - uploaded_df <- uploaded_df() - - # auto convert all of the logical columns - auto_cleaned_df <- clean_auto_convert_logicals(uploaded_df) - - # add to store - store$uploaded_df <- auto_cleaned_df - }) - - - # maintain a user modified dataframe that is continuously updated - # TODO: does this need to be eager or can it be lazy via reactive()? - # a few things would need to be modified, primarily the resetting of the df - observe({ - - # stop here if columns haven't been assigned - validate(need(nrow(store$col_assignment_df) > 0, - "Columns must first be assigned. Please see 'Load data' tab.")) - - # use assigned dataframe as the template - user_modified_df <- store$col_assignment_df - - if (isTRUE(nrow(store$user_modified_df) > 0)){ - - # get input indices and current input values - indices <- seq_along(user_modified_df) - current_values <- reactiveValuesToList(input) - - ## change column names - user_entered_names <- as.character(current_values[paste0("analysis_data_", indices, '_rename')]) - user_entered_names <- clean_names(user_entered_names) - names(user_modified_df) <- user_entered_names - - # TODO: theres some issues here; may need to use promises: https://rstudio.github.io/promises/articles/motivation.html - # change data type - # current_dataTypes <- convert_data_type_to_simple(store$user_modified_df) - # user_entered_dataTypes <- as.character(current_values[paste0("analysis_data_", indices, '_changeDataType')]) - # - # if (all(user_entered_dataTypes != 'NULL')) { - # pmap(list(colnames(store$user_modified_df), current_dataTypes, user_entered_dataTypes), - # function(column_name, current_dataType, new_dataType){ - # - # if (current_dataType != new_dataType){ - # # c("Continuous", "Categorical", "Binary") - # - # # convert column to character - # current_col_as_char <- as.character(store$user_modified_df[[column_name]]) - # - # if (new_dataType == "Binary"){ - # auto_binary <- readr::parse_logical(as.character(current_col_as_char)) - # if (any(is.na(auto_binary))){ - # print("Issue auto converting column!!!") - # - # # launch popup so user can choose which values map to true/false - # shinyWidgets::show_alert( - # title = "Please choose which value corresponds to true and false", - # text = tags$div( - # selectInput( - # inputId = "analysis_data_select_TRUE", - # label = "Value representing 'true'", - # choices = unique(current_col_as_char) - # ), - # selectInput( - # inputId = "analysis_data_select_FALSE", - # label = "Value representing 'false'", - # choices = unique(current_col_as_char) - # ) - # ), - # type = 'info', - # btn_labels = c("Confirm"), - # closeOnClickOutside = FALSE, - # showCloseButton = FALSE - # ) - # } - # } - # - # print(paste0("Changing ", column_name, " from ", current_dataType, " to ", new_dataType)) - # } - # }) - # } - - - # new_data_types <- - # user_modified_df <- convert_data_type_to_complex(user_modified_df, user_entered_dataTypes) - - # TODO? - # change categorical levels - } - - # save the data to the store - store$user_modified_df <- user_modified_df - }) - - # reset dataframe back to original when user clicks button - observeEvent(input$analysis_data_button_reset, { - - # reset dataframe - store$user_modified_df <- store$col_assignment_df - - ## reset UI - # set indices to map over - all_col_names <- colnames(store$col_assignment_df) - default_data_types <- convert_data_type_to_simple(store$col_assignment_df) - indices <- seq_along(all_col_names) - - # update the inputs - lapply(indices, function(i){ - updateTextInput( - session = session, - inputId = paste0("analysis_data_", i, "_rename"), - value = all_col_names[i] - ) - updateSelectInput( - session = session, - inputId = paste0("analysis_data_", i, "_changeDataType"), - selected = default_data_types[i] - ) - }) - }) - - # vector of selector ids - # analysis_data_select_selector_ids <- - # c( - # "analysis_data_select_select_zcol", - # "analysis_data_select_select_ycol", - # "analysis_data_select_select_xcol" - # ) - - # update select inputs when the input data changes - # TODO: does this need to be eager or can it lazy via reactive()? - # observeEvent(store$uploaded_df, { - # - # # stop here if data hasn't been uploaded - # validate(need(nrow(store$uploaded_df) > 0, - # "Data must be first uploaded. Please see 'Data' tab.")) - # - # # infer which columns are Z, Y, and X columns for smart defaults - # auto_columns <- clean_detect_ZYX_columns(store$uploaded_df) - # - # all_colnames <- colnames(store$uploaded_df) - # - # # fill the dropdown options with the colnames - # for (i in 1:3){ - # updateSelectInput(session = session, - # inputId = analysis_data_select_selector_ids[i], - # choices = all_colnames, - # selected = auto_columns[[i]] - # ) - # } - # }) - - # render the drag and drop UI - output$analysis_data_UI_dragdrop <- renderUI({ - - # stop here if data hasn't been uploaded - validate(need(nrow(store$uploaded_df) > 0, - "Data must be first uploaded")) - - # infer which columns are Z, Y, and X columns (i.e. smart defaults) - auto_columns <- clean_detect_ZYX_columns(store$uploaded_df) - - # render the UI - drag_drop_html <- tagList( - bucket_list( - header = "Drag the variables to their respective roles", - group_name = "analysis_data_dragdrop", - orientation = "horizontal", - add_rank_list( - input_id = "analysis_data_dragdrop_covariates", - text = strong("Covariates"), - labels = auto_columns$X, - options = sortable_options(multiDrag = TRUE) - ), - add_rank_list( - input_id = "analysis_data_dragdrop_treatment", - text = strong("Treatment"), - labels = auto_columns$Z, - options = sortable_options(multiDrag = TRUE) - ), - add_rank_list( - input_id = "analysis_data_dragdrop_response", - text = strong("Response"), - labels = auto_columns$Y, - options = sortable_options(multiDrag = TRUE) - ), - add_rank_list( - input_id = "analysis_data_dragdrop_delete", - text = strong("Exclude these variables"), - labels = auto_columns$ID, - options = sortable_options(multiDrag = TRUE) - ) - ) - ) - - return(drag_drop_html) - }) - - # plot the DAG - # output$analysis_data_plot_DAG <- renderPlot({ - # - # # stop here if data hasn't been uploaded - # validate(need(nrow(store$uploaded_df) > 0, - # "Data must be first uploaded. Please see 'Data' tab.")) - # - # # get user inputs - # cols_z <- input$analysis_data_select_select_zcol - # cols_y <- input$analysis_data_select_select_ycol - # cols_x <- input$analysis_data_select_select_xcol - # - # # plot it - # p <- plot_DAG(cols_z, cols_y, cols_x) - # - # return(p) - # }) - - # create new dataframe when user saves column assignments - observeEvent(input$analysis_data_button_columnAssignSave, { - - # get user inputs - cols_z <- input$analysis_data_dragdrop_treatment - cols_y <- input$analysis_data_dragdrop_response - cols_x <- input$analysis_data_dragdrop_covariates - all_cols <- unlist(c(cols_z, cols_y, cols_x)) - - # are there duplicate selections? - all_unique <- isTRUE(length(all_cols) == length(unique(all_cols))) - z_is_only_one <- length(cols_z) == 1 - y_is_only_one <- length(cols_y) == 1 - x_more_than_zero <- length(cols_x) > 0 - all_good <- isTRUE(all(c(all_unique, z_is_only_one, y_is_only_one, x_more_than_zero))) - - # launch error message - if (!all_good){ - shinyWidgets::show_alert( - title = "Whoops, there's an issue with variable assignment", - text = "Did you miss an variable assignment? Or either treatment or response have more than one column or somehow there's duplicate columns. Please correct before saving.", - type = 'error' - ) - } - validate(need(all_good, "There are duplicate column selections")) - - # store the new dataframe using the uploaded df as the template - store$col_assignment_df <- store$uploaded_df[, all_cols] - - # save columns assignments - store$column_assignments <- NULL - store$column_assignments$z <- cols_z - store$column_assignments$y <- cols_y - store$column_assignments$x <- cols_x - - # add to log - log_event <- paste0('Assigned columns to roles: \n', - '\ttreatment: ', cols_z, '\n', - '\tresponse: ', cols_y, '\n', - '\tcovariates: ', paste0(cols_x, collapse = '; ')) - store$log <- append(store$log, log_event) - - # launch success message - # shinyWidgets::show_alert( - # title = 'Column assignments saved', - # type = 'success' - # ) - - # move to next page - updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Select Data") - }) - - - # select data ------------------------------------------------------------- - - # render UI for modifying the data - output$analysis_data_modify_UI <- renderUI({ - - # stop here if columns haven't been assigned - validate(need(nrow(store$col_assignment_df) > 0, - "Columns must first be assigned. Please see 'Load data' tab.")) - - # get default data types - default_data_types <- convert_data_type_to_simple(store$col_assignment_df) - - # set indices to map over - all_col_names <- colnames(store$col_assignment_df) - indices <- seq_along(all_col_names) - - # create vector of column type names - column_types <- c('Treatment', 'Response', rep('Covariate', length(all_col_names)-2)) - - # render the header to the table - UI_header <- fluidRow( - column(2, h5('Role')), - column(3, h5('Rename variable')), - column(3, h5('Verify variable type')), - column(2, h5('Levels')), - column(2, h5('Percent NA')) - ) - - # render the rows - UI_grid <- lapply(indices, function(i){ - fluidRow( - column(width = 2, - shinyjs::disabled( - textInput( - inputId = paste0('analysis_data_', i, '_type'), - label = NULL, - value = column_types[i]) - ) - ), - column(width = 3, - textInput( - inputId = paste0("analysis_data_", i, "_rename"), - label = NULL, - value = all_col_names[i]) - ), - column(width = 3, - selectInput( - inputId = paste0("analysis_data_", i, "_changeDataType"), - label = NULL, - choices = c('Continuous', 'Categorical', 'Binary'), - selected = default_data_types[i]) - ), - column(width = 2, - shinyjs::disabled( - textInput( - inputId = paste0("analysis_data_", i, "_levels"), - label = NULL, - placeholder = 'TBD') - ) - ), - column(width = 2, - shinyjs::disabled( - textInput( - inputId = paste0("analysis_data_", i, "_percentNA"), - label = NULL, - placeholder = 'TBD') - ) - ) - ) - }) - - # combine the header and the rows - UI_table <- tagList(UI_header, UI_grid) - - # add default column types to store - store$current_simple_column_types <- default_data_types - - # # add observers to launch modal if user changes data type to binary - # lapply(indices, function(i){ - # input_id <- paste0("analysis_data_", i, "_changeDataType") - # observeEvent(input[[input_id]], { - # - # previous_value <- store$current_simple_column_types[i] - # new_value <- input[[input_id]] - # - # # update column types in store - # store$current_simple_column_types[i] <- new_value - # - # if (new_value == 'Binary'){ - # shinyWidgets::show_alert( - # title = 'Please specify the levels', - # text = tags$div( - # - # actionButton( - # inputId = paste0('analysis_data_', i, '_button_confirmLevel'), - # label = 'Confirm') - # ), - # type = 'info', - # btn_labels = NA, - # closeOnClickOutside = FALSE - # ) - # } - # - # print(store$current_simple_column_types) - # }) - # }) - # - # # add observers to record the input within the launched modals - # lapply(indices, function(i){ - # - # }) - - return(UI_table) - }) - - # update levels and percentNAs fields with actual data - # TODO: this fails to update if user goes back and reassigns the dataset; if the user then clicks on - # on rename or data type then it updates - observe_multiple <- reactive(list(store$user_modified_df, input$analysis_data_button_columnAssignSave)) - observeEvent(observe_multiple(), { - - # stop here if columns haven't been assigned - validate(need(nrow(store$col_assignment_df) > 0, - "Columns must first be assigned. Please see 'Load data' tab.")) - - # original data column indices - indices <- seq_along(colnames(store$col_assignment_df)) - - lapply(X = indices, function(i) { - - # update the levels - col_levels <- unique(store$col_assignment_df[[i]]) - updateTextInput( - session = session, - inputId = paste0("analysis_data_", i, "_levels"), - value = col_levels - ) - - # update the percent NA - percent_NA <- mean(is.na(store$user_modified_df[[i]])) - percent_NA <- paste0(round(percent_NA, 3) * 100, "%") - updateTextInput( - session = session, - inputId = paste0("analysis_data_", i, "_percentNA"), - value = percent_NA - ) - }) - }) - - # table of selected dataset - output$analysis_data_table <- DT::renderDataTable({ - - # stop here if columns haven't been assigned - validate(need(nrow(store$col_assignment_df) > 0, - "Columns must first be assigned. Please see 'Load data' tab.")) - - # create JS datatable - tab <- create_datatable( - store$user_modified_df, - selection = "none" - ) - - return(tab) - }) - - # # add listeners to each data type dropdown that notify when the value changes - # observeEvent(nrow(store$col_assignment_df), { - # - # req(nrow(store$col_assignment_df) > 0) - # - # # set indices to map over - # indices <- seq_along(store$col_assignment_df) - # - # # require data types to render first - # data_type_values <- reactiveValuesToList(input)[paste0("analysis_data_", indices, "_changeDataType")] - # req(all(data_type_values %in% c('Continuous', 'Categorical', 'Binary'))) - # - # # add the listeners - # lapply(indices, function(i){ - # - # # get id of this dropdown - # data_type_input <- paste0("analysis_data_", i, "_changeDataType") - # - # # add the listener - # observeEvent(input[[data_type_input]], { - # - # # TODO: resume here; this initially launches a bunch of unnecessary alerts - # - # # get the current values - # input_value <- input[[data_type_input]] - # column_values <- store$col_assignment_df[, i] - # - # # did the data type change to a binary value and is it coercible to binary? - # is_binary <- input_value == 'Binary' - # if (isTRUE(is_binary)){ - # - # # coerce to binary - # coerced_values <- readr::parse_logical(as.character(column_values)) - # is_not_coercible <- any(is.na(coerced_values)) - # - # # launch alert if it is binary and not coercible - # if (isTRUE(is_not_coercible)){ - # shinyWidgets::show_alert( - # title = 'Please specify the levels of the input?', - # text = tags$div( - # # actionButton( - # # inputId = 'analysis_model_button_popup', - # # label = 'Take me to the Data tab') - # ), - # type = 'error', - # btn_labels = NA - # ) - # } - # } - # }) - # }) - # }) - - # when user hits 'save column assignments', create a new dataframe from store$uploaded_df - # with the new columns - observeEvent(input$analysis_data_save, { - - # new column names - old_col_names <- colnames(store$user_modified_df) - new_col_names <- paste0(c('Z', - 'Y', - rep('X', length(old_col_names)-2)), - "_", - old_col_names) - - # save original column names - store$selected_df_original_names <- old_col_names - - # create new dataframe of just the selected vars and rename them - store$selected_df <- store$user_modified_df - colnames(store$selected_df) <- new_col_names - - # save the column names by their respective class - store$column_types <- clean_detect_column_types(store$selected_df) - - # add to log - column_types <- convert_data_type_to_simple(store$selected_df) - log_event <- paste0( - 'Saved columns with following specification: \n', - paste0(paste0("\t", new_col_names), - ": ", - column_types, - collapse = "\n") - ) - store$log <- append(store$log, log_event) - - # update selects on Descriptive plots page - col_names <- colnames(store$selected_df) - cols_categorical <- store$column_types$categorical - cols_continuous <- store$column_types$continuous - - # get smart defaults for the plotting variables - column_treatment <- new_col_names[stringr::str_starts(new_col_names, "Z")] - column_response <- new_col_names[stringr::str_starts(new_col_names, "Y")] - plot_vars <- clean_detect_plot_vars(.column_types = store$column_types, - .treatment_column = column_treatment, - .response_column = column_response) - - # updateSelectInput( - # session = session, - # inputId = "analysis_eda_variable_pairs_vars", - # choices = new_col_names, - # selected = new_col_names - # ) - updateSelectInput( - session = session, - inputId = "analysis_eda_select_plot_type", - selected = plot_vars$plot_type - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_x", - choices = new_col_names, - selected = plot_vars$X - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_y", - choices = new_col_names, - selected = plot_vars$Y - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_fill", - choices = c("None", new_col_names), - selected = plot_vars$fill - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_shape", - choices = c("None", cols_categorical), - selected = plot_vars$shape - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_size", - choices = c("None", new_col_names), - selected = plot_vars$size - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_group", - choices = c("None", cols_categorical), - selected = plot_vars$grouping - ) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_facet", - choices = c("None", cols_categorical) - ) - - # update selects on balance plots - X_cols <- new_col_names[stringr::str_starts(new_col_names, "X")] - X_cols_continuous <- cols_continuous[stringr::str_starts(cols_continuous, "X")] - - # create moderator options - X_mods <- as.data.frame(combinations(n = length(X_cols), r =2, v = X_cols)) - remove <- X_mods[X_mods$V1 %in% X_cols_continuous & X_mods$V2 %in% X_cols_continuous,] - X_mods <- X_mods %>% anti_join(remove) - X_mods <- X_mods %>% mutate(V1 = str_sub(V1, start = 3), - V2 = str_sub(V2, start = 3)) - X_mods <- X_mods %>% - mutate(mod = paste(V1, V2, sep = ' x ')) %>% - dplyr::select(mod) - - X_mods <- X_mods$mod - X_mods <- c(str_sub(X_cols, start = 3), X_mods) - - - # update options for balance - updateSelectInput(session = session, - inputId = 'analysis_plot_balance_select_var', - choices = X_cols_continuous, - selected = X_cols_continuous - ) - updateSelectInput(session = session, - inputId = 'analysis_plot_overlap_select_var', - choices = X_cols_continuous, - selected = X_cols_continuous - ) - - #update moderator select on model page and moderator test page - updateSelectInput(session = session, - inputId = 'analysis_model_moderator_vars', - choices = X_mods) - - updateSelectInput(session = session, - inputId = 'analysis_moderators_explore_select', - choices = X_mods) - - updateSelectInput(session = session, - inputId = 'analysis_moderators_explore_only', - choices = X_mods) - - - # move to next page - updateNavbarPage(session, inputId = "nav", selected = "Exploratory plots") - updateTabsetPanel(session, inputId = "analysis_plot_tabs", selected = "Descriptive Plots") - }) - - - # EDA --------------------------------------------------------------------- - - # only show continuous variables if histogram, boxplot, or boxplot is selected - # only show categorical if barplot - observeEvent(input$analysis_eda_select_plot_type, { - - plot_type <- input$analysis_eda_select_plot_type - selection_current <- input$analysis_eda_variable_x - - if (plot_type %in% c("Histogram", "Density", "Boxplot")){ - - # update the available variables to just continuous and keep the current - # selection if its continuous - vars_continuous <- store$column_types$continuous - selection_new <- ifelse(selection_current %in% vars_continuous, - selection_current, - vars_continuous[1]) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_x", - choices = vars_continuous, - selected = selection_new - ) - } else if (plot_type == "Barplot") { - - # update the available variables to just categorical and keep the current - # selection if its categorical - vars_categorical <- store$column_types$categorical - selection_new <- ifelse(selection_current %in% vars_categorical, - selection_current, - vars_categorical[1]) - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_x", - choices = vars_categorical, - selected = selection_new - ) - } else { - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_x", - choices = colnames(store$selected_df), - selected = selection_current - ) - } - }) - - # create the descriptive plots - # build the exploration plots - - descriptive_plot <- reactive( { - # stop here if data hasn't been uploaded and selected - validate(need(is.data.frame(store$selected_df), - "Data must be first uploaded and selected. Please see 'Data' tab.")) - - p <- tryCatch({ - plot_exploration( - .data = store$selected_df, #TODO: formalize sampling? - .plot_type = input$analysis_eda_select_plot_type, - .x = input$analysis_eda_variable_x, - .y = input$analysis_eda_variable_y, - .fill = input$analysis_eda_variable_fill, - .fill_static = 'grey20', #"#5c5980", - .shape = input$analysis_eda_variable_shape, - .size = input$analysis_eda_variable_size, - .alpha = input$analysis_eda_variable_alpha, - .vars_pairs = input$analysis_eda_variable_pairs_vars, - .n_bins = input$analysis_eda_variable_n_bins, - .jitter = input$analysis_eda_check_jitter, - .groups = input$analysis_eda_variable_group, - .facet = input$analysis_eda_variable_facet, - .facet_second = input$analysis_eda_variable_facet_second, - .include_regression = input$analysis_eda_variable_regression - ) - } - # warning = function(e) NULL, - # error = function(e) NULL - ) - - # TODO: this doesn't catch the error codes - # validate(need(is.ggplot(p), - # "Variable selection is not valid. Please try another combination.")) - - # add theme - p + theme_custom() - - # return(p) - }) - - output$analysis_eda_plot <- renderPlot({ - descriptive_plot() - }) - - - output$download_descriptive_plot <- downloadHandler( - filename = 'descriptive_plot.png', - content = function(file) { - device <- function(..., width, height) { - grDevices::png(..., width = width, height = height, - res = 300, units = "in") - } - ggsave(file, plot = descriptive_plot(), device = device) - }) - - # text above the brush table - output$analysis_eda_brush_text <- renderText({ - - if (input$analysis_eda_variable_facet == "None" & input$analysis_eda_select_plot_type == 'Scatter') { - txt <- "

Highlight data points on the above plot to view their information below

" - } else { - txt <- NULL - } - - return(txt) - }) - - # table of brushed data points from plot - output$analysis_eda_brush_info <- DT::renderDataTable({ - - # stop here if data hasn't been uploaded and selected - validate(need(is.data.frame(store$selected_df), - "Data must be first uploaded and selected. Please see 'Data' tab.")) - - # show only if there isn't faceting - if (input$analysis_eda_variable_facet == "None" & input$analysis_eda_select_plot_type == 'Scatter') { - - create_datatable( - brushedPoints(store$selected_df, input$analysis_eda_plot_brush), - selection = "none" - ) - } - }) - - # update second facet options so user cannot double facet on the same variable - # b/c that causes an error - observeEvent(input$analysis_eda_variable_facet, { - if (input$analysis_eda_variable_facet != "None") { - updateSelectInput( - session = session, - inputId = "analysis_eda_variable_facet_second", - choices = setdiff(c("None", store$column_types$categorical), input$analysis_eda_variable_facet) - ) - } - }) - - # create the overlap plot - overlap_plot <- reactive({ - - # stop here if data hasn't been uploaded and selected - validate(need(is.data.frame(store$selected_df), - "Data must be first uploaded and selected. Please see 'Data' tab.")) - - # stop here if there are no numeric columns selected - validate(need(length(input$analysis_plot_overlap_select_var) > 0, - "No continuous columns available or currently selected")) - - # get variables for input into plotting functions - X <- store$selected_df - col_names <- colnames(X) - treatment_col <- col_names[stringr::str_starts(col_names, "Z_")] - response_col <- col_names[stringr::str_starts(col_names, "Y_")] - cols_continuous <- store$column_types$continuous - confounder_cols <- cols_continuous[stringr::str_starts(cols_continuous, "X")] - plt_type <- input$analysis_plot_overlap_method - - # plot either the variables or the 1 dimension propensity scores - if(input$analysis_plot_overlap_type == 1){ - p <- plot_overlap_vars( - .data = X, - treatment_col = treatment_col, - confounder_cols = input$analysis_plot_overlap_select_var, - plt_type = plt_type - ) - } - - else if(input$analysis_plot_overlap_type == 2){ - p <- plot_overlap_pScores( - .data = X, - treatment_col = treatment_col, - response_col = response_col, - confounder_cols = confounder_cols, - plt_type = plt_type - ) - } - - # add theme - p + theme_custom() - - # return(p) - }) - - output$analysis_plot_overlap_plot <- renderPlot({ - overlap_plot() - }) - - output$download_overlap_plot <- downloadHandler( - filename = 'overlap_plot.png', - content = function(file) { - device <- function(..., width, height) { - grDevices::png(..., width = width, height = height, - res = 300, units = "in") - } - ggsave(file, plot = overlap_plot(), device = device) - }) - - # create the balance plot - balance_plot <- reactive({ - # stop here if data hasn't been uploaded and selected - validate(need(is.data.frame(store$selected_df), - "Data must be first uploaded and selected. Please see 'Data' tab.")) - - # stop here if there are no numeric columns selected - validate(need(length(input$analysis_plot_balance_select_var) > 0, - "No continuous columns available or currently selected")) - - # plot it - X <- store$selected_df - col_names <- colnames(X) - treatment_col <- col_names[stringr::str_starts(col_names, "Z_")] - confounder_cols <- input$analysis_plot_balance_select_var - p <- plot_balance(.data = X, - treatment_col = treatment_col, - confounder_cols = confounder_cols) - - # add theme - p + theme_custom() - - # return(p) - }) - - output$analysis_plot_balance_plot <- renderPlot({ - balance_plot() - }) - - output$download_balance_plot <- downloadHandler( - filename = 'balance_plot.png', - content = function(file) { - device <- function(..., width, height) { - grDevices::png(..., width = width, height = height, - res = 300, units = "in") - } - ggsave(file, plot = balance_plot(), device = device) - }) - - - # run the eda module server. the UI is rendered server side within an observeEvent function - # edaServer(id = 'analysis_plots_descriptive', input_data = store$selected_df) #user_data) # - - - # diagnostics ------------------------------------------------------------- - - # render either both the back and next buttons or just the back if its a bad - # model fit - output$analysis_diagnosis_buttons_ui <- renderUI({ - if (isTRUE(store$good_model_fit)){ - tagList( - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_diagnostics_button_back", - label = "Back to specify model"), - actionButton(inputId = "analysis_diagnostics_button_next", - label = "Model results") - ) - ) - } else { - # actionButton(inputId = "analysis_diagnostics_button_back", - # label = "Back to specify model") - tagList( - div( - class = 'backNextContainer', - actionButton(inputId = "analysis_diagnostics_button_back", - label = "Back to specify model"), - actionButton(inputId = "analysis_diagnostics_button_next", - label = "Proceed to model results") - ) - ) - - - } - }) - - # trace plot - output$analysis_diagnostics_plot_trace <- renderPlot({ - - # stop here if model is not run yet - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - # call function - p <- plot_trace(.model = store$model_results) - - # add theme - p <- p + theme_custom() - - return(p) - }) - - # common support plot - output$analysis_diagnostics_plot_support <- renderPlot({ - - # stop here if model is not run yet - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - # plot it - theme_pick <- theme_custom() - - p1 <- plot_diagnostic_common_support(.model = store$model_results, - .rule = 'sd') - p1 <- p1 + theme_custom() - - p2 <- plot_diagnostic_common_support(.model = store$model_results, - .rule = 'chi') - p2 <- p2 + theme_custom() - - p <- p1/p2 - return(p) - }) - - - # specify model ----------------------------------------------------------- - - - # pop ups for estimand and common support help - observeEvent(input$analysis_model_radio_estimand, { - - req(input$analysis_model_radio_estimand) - - if(input$analysis_model_radio_estimand == 'unsure'){ - shinyWidgets::sendSweetAlert( - session, - title = "I would like to learn more about causal estimands:", - text = NULL, - type = NULL, - btn_labels = c("Yes", "No"), - btn_colors = "#3085d6", - html = TRUE, - closeOnClickOutside = FALSE, - showCloseButton = FALSE, - width = NULL - ) - } - }) - - observeEvent(input$analysis_model_radio_support, { - - req(input$analysis_model_radio_support) - - if (input$analysis_model_radio_support == 'unsure'){ - shinyWidgets::sendSweetAlert( - session, - title = "I would like to learn more about common support:", - text = NULL, - type = NULL, - btn_labels = c("Yes", "No"), - btn_colors = "#3085d6", - html = TRUE, - closeOnClickOutside = FALSE, - showCloseButton = FALSE, - width = NULL - ) - } - }) - - - - # render text output to summarize the users inputs - output$analysis_model_summary <- renderText({ - - # extract inputs - design <- input$analysis_model_radio_design - estimand <- input$analysis_model_radio_estimand - support <- input$analysis_model_radio_support - if (is.null(design)) design <- "None" - if (is.null(estimand)) estimand <- "None" - if (is.null(support)) support <- "None" - - # grab text from object - design_text <- analysis_model_text$design[[design]] - estimand_text <- analysis_model_text$estimand[[estimand]] - support_text <- analysis_model_text$support[[support]] - - # paste together all the text - custom_text <- paste0( - "

Design

", - design_text, - "

", - "

Estimand

", - estimand_text, - "

", - "

Common Support

", - support_text - ) - - return(custom_text) - }) - - # render text below the radio buttons - output$analysis_model_text_design <- renderUI({ - - if (isTRUE(input$analysis_model_radio_design == 'quasi')){ - html_out <- tags$span( - style = 'color: red;', - "Natural experiment design is not currently supported", - br(), br() - ) - return(html_out) - } - - html_out <- '' - return(html_out) - }) - - # remove no text UI spawns if user makes a selection - observeEvent(input$analysis_model_radio_design, { - removeUI('#analysis_model_text_design_noinput') - }) - observeEvent(input$analysis_model_radio_estimand, { - removeUI('#analysis_model_text_estimand_noinput') - }) - observeEvent(input$analysis_model_radio_support, { - removeUI('#analysis_model_text_support_noinput') - }) - - # when user runs the model, take a number of actions - observeEvent(input$analysis_model_button_next, { - - # launch popup if data is not yet selected - if (!is.data.frame(store$selected_df)) { - shinyWidgets::show_alert( - title = 'Data must be first uploaded and columns selected', - text = tags$div( - actionButton( - inputId = 'analysis_model_button_popup', - label = 'Take me to the Data tab') - ), - type = 'error', - btn_labels = NA - ) - } - - # spawn red text if selection isn't made - if (isTRUE(is.null(input$analysis_model_radio_design))) { - output$analysis_model_text_design_noinput <- renderUI({ - html_out <- tags$span(style = 'color: red;', - "Please make a selection", - br(), br()) - return(html_out) - }) - } - if (isTRUE(is.null(input$analysis_model_radio_estimand))) { - output$analysis_model_text_estimand_noinput <- renderUI({ - html_out <- tags$span(style = 'color: red;', - "Please make a selection", - br(), br()) - return(html_out) - }) - } - if (isTRUE(is.null(input$analysis_model_radio_support))) { - output$analysis_model_text_support_noinput <- renderUI({ - html_out <- tags$span(style = 'color: red;', - "Please make a selection", - br(), br()) - return(html_out) - }) - } - - # stop here if inputs aren't found - validate( - need( - is.data.frame(store$selected_df), - "Data must be first uploaded and selected. Please see 'Data' tab." - ), - need( - isFALSE(input$analysis_model_radio_design == 'quasi'), - 'Natural experiment design is not currently supported' - ), - need( - isFALSE(is.null(input$analysis_model_radio_design)), - 'Please select an assignment mechanism' - ), - need( - isFALSE(is.null(input$analysis_model_radio_estimand)), - 'Please select an estimand and common support rule' - ), - need( - isFALSE(is.null(input$analysis_model_radio_support)), - 'Please select a common support rule' - ) - ) - - # insert popup to notify user of model fit process - # TODO estimate the time remaining empirically? - shinyWidgets::show_alert( - title = 'Fitting BART model...', - text = tags$div( - img(src = file.path('img', 'tree.gif'), - width = "50%"), - h5("...sometimes this takes a while..."), - ), - html = TRUE, - btn_labels = NA, - closeOnClickOutside = FALSE - ) - - # pull the response, treatment, and confounders variables out of the df - treatment_v <- store$selected_df[, 1] - response_v <- store$selected_df[, 2] - confounders_mat <- as.matrix(store$selected_df[, 3:ncol(store$selected_df)]) - colnames(confounders_mat) <- str_sub(colnames(confounders_mat), start = 3) - - # run model - store$model_results <- bartCause::bartc( - response = response_v, - treatment = treatment_v, - confounders = confounders_mat, - estimand = base::tolower(input$analysis_model_radio_estimand), - commonSup.rule = input$analysis_model_radio_support - ) - - # store the results - # TODO: need way to test if actually have a good fit - #store$good_model_fit <- TRUE - - # # update select on moderators page - updateSelectInput(session = session, - inputId = 'analysis_moderator_vars', - choices = input$analysis_model_moderator_vars, - selected = input$analysis_model_moderator_vars[1]) - - - - # add to log - log_event <- paste0( - 'Ran BART model with following specification: \n', - '\t', 'Experiment design: ', input$analysis_model_radio_design, '\n', - '\t', 'Causal estimand: ', input$analysis_model_radio_estimand, '\n', - '\t', 'Common support rule: ', input$analysis_model_radio_support, '\n', - '\t', 'Moderators: ', paste0(input$analysis_model_moderator_vars, collapse = "; "), '\n', - '\t', 'Model outcome: ', input$analysis_model_outcome, '\n', - '\t', 'Propensity score fit: ', input$analysis_model_pscore, '\n', - '\t', 'Good model fit: ', store$good_model_fit - ) - store$log <- append(store$log, log_event) - - # close the alert - shinyWidgets::closeSweetAlert() - - - # common support warning - - total <- sum(store$model_results$sd.cf > max(store$model_results$sd.obs) + sd(store$model_results$sd.obs)) - prop_sd <- round(total / length(store$model_results$sd.cf), 2)*100 - sd_output <- paste0(prop_sd, "% of cases would have been removed under the standard deviation common support rule") - - - total_chi <- sum(((store$model_results$sd.cf / store$model_results$sd.obs) ** 2) > 3.841) - prop_chi <- round(total_chi / length(store$model_results$sd.cf), 2)*100 - chi_output <- paste0(prop_chi, "% of cases would have been removed under the chi squared common support rule") - common_support_message <- paste(sd_output, chi_output, sep = '\n') - - - if((prop_sd > 0 | prop_chi > 0) & input$analysis_model_radio_support == 'none'){ - shinyWidgets::sendSweetAlert( - session, - title = 'Common Support Warning', - text = tags$div(sd_output, - br(), - br(), - chi_output, - br(), - br(), - 'How would you like to proceed?', - br(), - br(), - div(class = 'backNextContainer', - style= "width:60%;display:inline-block;horizontal-align:center;", - actionButton(inputId = 'common_support_opt3', - label = 'See common support diagnostics')), - br(), - br(), - div(class = 'backNextContainer', - style= "width:60%;display:inline-block;horizontal-align:center;", - actionButton(inputId = 'common_support_new_rule', - label = 'Change common support rule')), - - br(), - br(), - div(class = 'backNextContainer', - style= "width:60%;display:inline-block;horizontal-align:center;", - actionButton(inputId = 'common_support_opt2', - label = 'Learn more about common support rules')), - br(), - br(), - div(class = 'backNextContainer', - style= "width:60%;display:inline-block;horizontal-align:center;", - actionButton(inputId = 'common_support_continue', - label = 'Continue to results') - ) - - ), - type = NULL, - btn_labels = NA, - btn_colors = "#3085d6", - html = TRUE, - closeOnClickOutside = FALSE, - showCloseButton = FALSE, - width = '75%' - ) - } - - - - - observeEvent(input$common_support_new_rule, { - updateNavbarPage(session, inputId = "nav", selected = "Model") - shinyWidgets::closeSweetAlert() - }) - - observeEvent(input$common_support_continue, { - updateNavbarPage(session, inputId = "nav", selected = "Results") - shinyWidgets::closeSweetAlert() - }) - - - - - # move to next page based on model fit - if((prop_sd == 0 | prop_chi == 0) & input$analysis_model_radio_support == 'none'){ - updateNavbarPage(session, inputId = "nav", selected = "Results") - } - - if( input$analysis_model_radio_support != 'none'){ - updateNavbarPage(session, inputId = "nav", selected = "Results") - } - - - }) - - - # results ----------------------------------------------------------------- - - # render the summary table - output$analysis_results_table_summary <- renderText({ - - # stop here if model isn't fit yet - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - # extract estimates and format - summary(store$model_results)$estimates %>% - t() %>% - knitr::kable(digits = 1, format = 'html') %>% - kableExtra::kable_styling(bootstrap_options = c("hover", "condensed")) - }) - - # TODO: render the interpretation text - - # PATE plot - output$analysis_results_plot_PATE <- renderPlot({ - - # hold <- sum(input$show_interval == .8) > 0 - # print(hold == T) - #print(input$show_interval == .8) - # stop here if model isn't fit yet - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - if(input$show_reference == 'No'){ - # plot it - p <- - plot_PATE( - .model = store$model_results, - type = input$plot_result_style, - ci_80 = sum(input$show_interval == .8) > 0, - ci_95 = sum(input$show_interval == .95) > 0, - .mean = sum(input$central_tendency == 'Mean') > 0, - .median = sum(input$central_tendency == 'Median') > 0, - reference = NULL - ) - - # add theme - p <- - p + theme_custom() + theme(legend.position = c(0.1, 0.9), - legend.title = element_blank()) - } - - if(input$show_reference != 'No'){ - # plot it - p <- - plot_PATE( - .model = store$model_results, - type = input$plot_result_style, - ci_80 = sum(input$show_interval == .8) > 0, - ci_95 = sum(input$show_interval == .95) > 0, - .mean = sum(input$central_tendency == 'Mean') > 0, - .median = sum(input$central_tendency == 'Median') > 0, - reference = input$reference_bar - ) - - # add theme - p <- - p + theme_custom() + theme(legend.position = c(0.1, 0.9), - legend.title = element_blank()) - } - return(p) - }) - - # reproducible script - # TODO: this hasn't been tested - reproducible_script <- reactive({ - - # these probably should be stored in realtime and then extracted here - # this would prevent issues if user goes back and changes something but doesn't save it - - # file inputs - uploaded_file_name <- input$analysis_data_upload$name - uploaded_file_type <- tools::file_ext(uploaded_file_name) - uploaded_file_header <- input$analysis_data_header - uploaded_file_delim <- input$analysis_data_delim_value - - # get the selected columns and names - selected_columns <- colnames(store$col_assignment_df) - column_names <- colnames(store$user_modified_df) - - # TODO: add data type changes - - # model - estimand <- base::tolower(input$analysis_model_radio_estimand) - common_support <- input$analysis_model_radio_support - - # create the script - reproducible_script <- create_script( - uploaded_file_name = uploaded_file_name, - uploaded_file_type = uploaded_file_type, - uploaded_file_header = uploaded_file_header, - uploaded_file_delim = uploaded_file_delim, - selected_columns = selected_columns, - column_names = column_names, - estimand = estimand, - common_support = common_support - ) - - return(reproducible_script) - }) - - # download reproducible script - output$analysis_results_button_download <- downloadHandler( - filename <- function() { - time <- gsub("-|:| ", "", Sys.time()) - paste0(time, '_thinkCausal_script.zip') - }, - content <- function(filename){ - - # go to a temp dir to avoid permission issues - owd <- setwd(tempdir()) - on.exit(setwd(owd)) - files <- NULL; - - # create file containing the clean_auto_convert_logicals function - functionFile <- file("clean_auto_convert_logicals.R") - writeLines(attributes(attributes(clean_auto_convert_logicals)$srcref)$srcfile$lines, - functionFile) - close(functionFile) - files <- "clean_auto_convert_logicals.R" - - # create the script file - fileConn <- file("thinkCausal_script.R") - writeLines(reproducible_script(), fileConn) - close(fileConn) - files <- c('thinkCausal_script.R', files) - - # create the zip file - zip(filename, files) - } - ) - - - # Moderators ------------------------------------------------------------- - observeEvent(input$go_to_subgroup_results, { - updateNavbarPage(session, inputId = "nav", selected = "Subgroup Results") - }) - ## ICATE plots - - # ordered icate - output$ordered_icate <- renderPlot({ - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - p <- plot_individual_effects(store$model_results, type = 'ordered') - - p <- p + theme_custom() - - return(p) - }) - - # histigram of icates - output$histigram_icate <- renderPlot({ - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - p <- plot_individual_effects(store$model_results, type = 'histigram') - - p <- p + theme_custom() - - return(p) - }) - - - - # Single decision tree on icates - output$analysis_moderator_single_tree <- renderPlot({ - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - conf <- as.matrix(store$selected_df[, 3:ncol(store$selected_df)]) - colnames(conf) <- str_sub(colnames(conf, 3)) - p <- plot_single_tree(store$model_results, confounders = conf, depth = input$set_tree_depth) - - - return(p) - }) - - # plot the moderators - - - output$analysis_moderators_explore_plot <- renderPlot({ - validate(need(is(store$model_results, "bartcFit"), - "Model must first be fitted on the 'Model' tab")) - - shinyWidgets::show_alert( - title = 'Rendering Plot...', - text = tags$div( - img(src = file.path('img', 'tree.gif'), - width = "20%"), - h5("...sometimes this takes a while..."), - ), - html = TRUE, - btn_labels = NA, - closeOnClickOutside = T - ) - - - # plot it - p <- plot_continuous_sub(.model = store$model_results, - grouped_on = input$analysis_moderators_explore_select) - - # add theme - p <- p + theme_custom() - return(p) - }) - - - - - # concepts ---------------------------------------------------------------- - - # add listeners that link the concepts title image to its article - tab_titles <- c("Randomization", 'Fundamental problem', 'Assumptions', 'Regression methods') - lapply(tab_titles, function(page_to_go_to) { - page_id <- paste0("concepts_link_", page_to_go_to) - observeEvent(input[[page_id]], { - updateNavbarPage(session, "nav", page_to_go_to) - }) - }) - - # run the randomization module - randomizationServer(id = 'concepts_randomization', plot_theme = theme_custom) - - - # welcome page ------------------------------------------------------------ - - # add listeners that link the front page images to their respective pages - observeEvent(input$welcome_link_concepts, { - updateNavbarPage(session, inputId = "nav", selected = "All concepts") - }) - observeEvent(input$welcome_link_Analysis, { - updateNavbarPage(session, inputId = "nav", selected = "Data") - updateTabsetPanel(session, inputId = "analysis_data_tabs", selected = "Load Data") - }) - - - # options ----------------------------------------------------------------- - - # change plot theme, font size, and point size - theme_custom <- reactive({ - theme_custom <- switch( - input$settings_options_ggplot_theme, - "Minimal" = ggplot2::theme_minimal, - "Simple" = ggplot2::theme_bw, - "Classic" = ggplot2::theme_classic, - "Gray" = ggplot2::theme_gray - ) - update_geom_defaults("point", list(size = input$settings_options_ggplotPointSize)) # is this a memory hog? - theme_custom <- theme_custom(base_size = input$settings_options_ggplotTextSize) - return(theme_custom) - }) - - # update plot theme preview - output$settings_options_ggplot_preview <- renderPlot({ - - # create dummy plot - p <- ggplot( - tibble(x = c(-19.0, 10.3, 8.4, 0.3, -1.8, 11.7, 9.6, 7.5, -13.0, 2.3), - y = c(2.1, -7.5, 0.9, 2.8, -0.8, -1.2, 6.7, 8.1, 4.0, 18.9), - shape = rep(LETTERS[1:5], 2)), - aes(x = x, y = y, color = x, shape = shape)) + - geom_point() + - labs(title = "thinkCausal", - color = 'color') - - # add theme - p <- p + theme_custom() - - return(p) - }) - - - # log --------------------------------------------------------------------- - - # print the log - # the log is created by appending text descriptions of events to store$log - output$settings_log_text <- renderText({ - log <- store$log - if (length(log) == 0) log <- "No logged events to display" - log <- paste0(log, collapse = '\n\n') - return(log) - }) - - # download the log - output$settins_log_download <- downloadHandler( - filename <- function() { - time <- gsub("-|:| ", "", Sys.time()) - paste0(time, '_thinkCausal_log.txt') - }, - content <- function(filename){ - fileConn <- file(filename) - log <- paste0(paste0(store$log, collapse = '\n\n'), "\n") - writeLines(log, fileConn) - close(fileConn) - } - ) - -}) diff --git a/Production/tests/testthat.R b/Production/tests/testthat.R deleted file mode 100644 index 1d7dae28..00000000 --- a/Production/tests/testthat.R +++ /dev/null @@ -1,4 +0,0 @@ -library(testthat) -library(thinkCausal) - -test_check("thinkCausal") diff --git a/Production/tests/testthat/test_clean_functions.R b/Production/tests/testthat/test_clean_functions.R deleted file mode 100644 index 1f481a40..00000000 --- a/Production/tests/testthat/test_clean_functions.R +++ /dev/null @@ -1,54 +0,0 @@ -x <- data.frame( - zero_one = c(0, 1, 0, 1, 1), - TF = c("T", "T", "F", "T", "F"), - truefalse = c('true', 'false', 'false', 'false', 'true') - ) -converted_x <- clean_auto_convert_logicals(x) -test_that("clean_auto_convert_logicals() output is correct", { - expect_equal(as.list(table(as.matrix(converted_x))), - list('FALSE' = 7, 'TRUE' = 8)) - expect_s3_class(converted_x, 'data.frame') -}) - -y <- data.frame( - treatment = c(TRUE, TRUE, FALSE, TRUE, FALSE), - rsp = c(0.808, 0.296,-1.579,-1.272, 0.627), - ID = c(0.808, 0.296,-1.579,-1.272, 0.627), - dummyID = 1:5, - dummy1 = c(34, 35, 10, 5, 38) -) -detected_y <- clean_detect_ZYX_columns(y) -test_that("clean_detect_ZYX_columns() output is correct", { - expect_equal(detected_y, list(Z = 'treatment', Y = 'rsp', X = c('dummyID', 'dummy1'), ID = 'ID')) - expect_type(detected_y, 'list') -}) - -col_names <- c("yes", "TRUE", "nope%", "98", 'Ábcdêãçoàúü', 'yep_-,.yep', 'hello goodbye') -cleaned_names <- clean_names(col_names) -test_that("clean_names() output is correct", { - expect_equal(cleaned_names, c("yes", "TRUE", "nope_percent", "n98", "Abcdeacoauu", "yep_.yep", "hello_goodbye")) - expect_type(cleaned_names, 'character') -}) - -X <- data.frame(X1 = 1:5, X2 = rnorm(5), X3 = LETTERS[1:5], X4 = as.factor(LETTERS[1:5])) -column_types <- clean_detect_column_types(X) -test_that("clean_detect_column_types() output is correct", { - expect_equal(names(column_types), c('categorical', 'continuous')) - expect_equal(column_types, list(categorical = c("X3", "X4"), continuous = c("X2", "X1"))) - expect_type(column_types, 'list') -}) - -X <- data.frame( - treatment = sample(as.logical(0:1), 5, TRUE), - response = rnorm(5), - X1 = 1:5, - X2 = rnorm(5), - X3 = LETTERS[1:5], - X4 = as.factor(LETTERS[1:5]) -) -column_types <- clean_detect_column_types(X) -plot_vars <- clean_detect_plot_vars(column_types, 'treatment', 'response') -test_that("clean_detect_plot_vars() output is correct", { - expect_equal(names(plot_vars), c('plot_type', 'X', 'Y', 'fill', 'shape', 'size', 'grouping', 'facet')) - expect_type(plot_vars, 'list') -}) diff --git a/Production/tests/testthat/test_convert_functions.R b/Production/tests/testthat/test_convert_functions.R deleted file mode 100644 index 8df75577..00000000 --- a/Production/tests/testthat/test_convert_functions.R +++ /dev/null @@ -1,16 +0,0 @@ -my_character = c('one', 'two', 'three') -my_logical = c(TRUE, FALSE, FALSE) -my_numeric = c(1.24, 7, -22) -X <- data.frame(my_character = my_character, my_logical = my_logical, my_numeric = my_numeric) -simple_data_types <- convert_data_type_to_simple(X) -test_that("convert_data_type_to_simple() output is correct", { - expect_equal(simple_data_types, - c("Categorical", 'Binary', 'Continuous')) - expect_type(simple_data_types, 'character') -}) - -# clean_auto_convert_logicals(X) -# test_that("clean_auto_convert_logicals() output is correct", { -# expect_equal(detected_y, list(Z = 'treatment', Y = 'rsp', X = c('dummy1', 'dummy2'))) -# expect_type(detected_y, 'list') -# }) diff --git a/Production/tests/testthat/test_create_functions.R b/Production/tests/testthat/test_create_functions.R deleted file mode 100644 index f4f9193b..00000000 --- a/Production/tests/testthat/test_create_functions.R +++ /dev/null @@ -1,29 +0,0 @@ -x <- data.frame( - zero_one = c(0, 1, 0, 1, 1), - TF = c("T", "T", "F", "T", "F"), - truefalse = c('true', 'false', 'false', 'false', 'true') -) -js_table <- create_datatable(x) -test_that("create_datatable() output is correct", { - expect_s3_class(js_table, 'datatables') -}) - -progress_bar <- create_progress_bar(50) -test_that("create_progress_bar() output is correct", { - expect_s3_class(progress_bar, 'shiny.tag') -}) - -reproducible_script <- create_script( - uploaded_file_name = 'test.csv', - uploaded_file_type = 'csv', - uploaded_file_header = 'TRUE', - uploaded_file_delim = ',', - selected_columns = c("Z", "Y", "X1", 'X2', "X3"), - column_names = c("treatment", "response", "covariate1", "covariate2", "covariate3"), - estimand = 'att', - common_support = 'none' -) -test_that("create_script() output is correct", { - expect_type(reproducible_script, 'character') - expect_equal(length(reproducible_script), 1) -}) diff --git a/Production/ui.R b/Production/ui.R deleted file mode 100644 index 347b3e0e..00000000 --- a/Production/ui.R +++ /dev/null @@ -1,54 +0,0 @@ -shinyUI( - fluidPage( - # download roboto font - HTML(''), - - # set default slider skin - chooseSliderSkin(skin = "Flat", color = "#221146"), - - # use shinyjs - shinyjs::useShinyjs(), - - # load custom CSS file - includeCSS("www/thinkCausal.css"), - - # floating button to activate slide over - tags$div(id = 'sideBarBtn', - class = 'sideBarBtn', - onclick = "openConcepts()", - 'Help'), - - # div for help slide over - tags$div(id = 'mySideBar', - class = 'conceptsSideBar', - tags$div(class = 'conceptsSideBarContainer', - tags$div( - class = 'conceptsHeader', - h1("Help"), - HTML('×') - ), - tags$div( - class = 'markdownContainer', - includeMarkdown(file.path("UI", "markdowns", 'help.md')) - ) - ) - ), - - # set main navigation - tags$div( - class = "wrapper", - navbarPage( - id = "nav", - title = 'thinkCausal', - welcome_header, - concepts_header, - analysis_header, - settings_header, - reproducibility_header - ) - ), - - # load custom JavaScript - tags$script(src = "navSlideOver.js") - ) -) diff --git a/Production/www/img/placeholder.png b/Production/www/img/placeholder.png deleted file mode 100644 index c18e0b26..00000000 Binary files a/Production/www/img/placeholder.png and /dev/null differ diff --git a/Production/www/img/tree.gif b/Production/www/img/tree.gif deleted file mode 100644 index ba1270d2..00000000 Binary files a/Production/www/img/tree.gif and /dev/null differ diff --git a/Production/www/navSlideOver.js b/Production/www/navSlideOver.js deleted file mode 100644 index 4e21f097..00000000 --- a/Production/www/navSlideOver.js +++ /dev/null @@ -1,32 +0,0 @@ -// open/closes the concepts sidebar -function openConcepts() { - let sideDiv = document.getElementById("mySideBar") - if (sideDiv.style.width === 'min(100%, 700px)'){ - sideDiv.style.width = '0'; - } else { - sideDiv.style.width = "min(100%, 700px)" - } -} - -// maybe replace with this https://css-tricks.com/sticky-smooth-active-nav/ -function openConceptsPage(divID) { - document.getElementById("mySideBar").style.width = "min(100%, 700px)"; - let elmnt = document.getElementById(divID); - setTimeout(function(){elmnt.scrollIntoView(true);}, 750); - //let topPos = document.getElementById('Concept2').offsetTop - //setTimeout(function(){document.getElementById("conceptsSideBarContainer").scrollTop = topPos;}, 500); -} - -function closeConcepts() { - document.getElementById("mySideBar").style.width = "0"; -} - -// wrap every h3 header in the concepts markdown in a div -$(".markdownContainer h3").wrap("
"); - -// add id to every h3 based on its title -$('.conceptsSubHeader').each(function(){ - id = $(this).text() - id = id.replace(/\s/g, '') - $(this).attr('id', id) -}) diff --git a/Production/www/thinkCausal.css b/Production/www/thinkCausal.css deleted file mode 100644 index f94486a9..00000000 --- a/Production/www/thinkCausal.css +++ /dev/null @@ -1,519 +0,0 @@ -/* -most of this CSS overrides the default bootstrap -main color palette: #938497 #558B6E #D7837F #E6DFE8 #F5F5F5 -*/ - -body { - padding: 5px 20px 20px 5px; - font-family: "Roboto", Helvetica, Arial, sans-serif; - color: #636363; - font-weight: 300; -} - -.wrapper { - max-width: 1280px; - margin: auto; - display: block; -} - -/* headers */ -h1, h2, h3, h4, h5, h6 { - color: #525252; - font-weight: 500; -} - -/* links */ -a { - color: #5c5980; - text-decoration: none; -} - -/* horizontal line */ -hr { - border-top: 1px solid #fff -} - -.text-primary { - color: #5c5980; -} - -.bg-primary { - color: #fff; - background-color: #5c5980; -} - -/* text color of the expansion sections */ -summary{ - color: #a3a3a3; - font-size: 0.9em; -} - -/*background squares for nav and main input sections*/ -.well { - border: 0px solid #e3e3e3; - border-radius: 0px; - -webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.00); - box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.00); -} - -.menulayer { - z-index: 10; - position: absolute; -} - -/* prevents flickering on plot refresh */ -.recalculating { - opacity: 1.0; -} - -/* nav tabs at the top of the page */ -#nav > li.active > a { - color: #fff; - background-color: #5c5980; -} -#nav > li:hover { - background-color: #eeefef; -} - -/* nav dropdowns */ -.dropdown-menu > li > a { - color: #525252; - font-weight: 300; -} - -.dropdown-menu > li.active > a, -.dropdown-menu > li.active > a:hover, -.dropdown-menu > li.active > a:focus { - color: #fff; - background-color: #5c5980; -} - - -/* navigation pills on the left side */ -.nav-pills > li > a { - border-radius: 0 0 0 0; -} - -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #5c5980; -} - -/* navigation tabs on the top */ -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 0 0 0 0; -} - -.nav-tabs > li:hover > a { - color: #5c5980; -} - -/* dropdowns */ -.selectize-input, .form-control { - border: 1px solid #cccccc; - padding: 6px 12px; - display: inline-block; - width: 100%; - overflow: hidden; - position: relative; - z-index: 1; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.selectize-input.dropdown-active { - -webkit-border-radius: 0 0 0 0; - -moz-border-radius: 0 0 0 0; - border-radius: 0 0 0 0; -} - -.selectize-input.focus { - border-color: #5c5980; - /*color: #f5f5f5 !important;*/ - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); -} - -.form-control.shiny-bound-input:focus { - border-color: #5c5980; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); -} - -/* the little 'pills' when multiple items are selected -within the selectize dropdowns */ -.item { - -webkit-border-radius: 0 0 0 0 !important; - -moz-border-radius: 0 0 0 0 !important; - border-radius: 0 0 0 0 !important; -} - -.item:hover, item:active, .item:focus, .item:selected { - background-color: #eeefef !important; -} - -/* buttons .btn:hover, .btn:active, .btn:visited */ -.btn { - background-color: #302f42 !important; - border-radius: 0; - box-shadow: none; - border: none; - color: #f5f5f5 !important; - font-weight: 300; - font-family: "Roboto", Helvetica, Arial, sans-serif; - max-width: 100%; - word-wrap: break-word; - white-space: normal; - display: inline-block; - padding: 10px; - width: 100%; -} - -.btn:hover { - background-color: #424159 !important; -} - -.btn:active { - background-color: #54536e !important; -} - -#upload_file_div .btn { - font-size: normal; - word-wrap: normal; - padding: 7px; -} - -#upload_file_div .progress-bar { - background-color: #5d5c7a; -} - -#upload_file_div .form-control { - -webkit-border-radius: 0 0 0 0; - -moz-border-radius: 0 0 0 0; - border-radius: 0 0 0 0; -} - -#upload_file_div .form-control:focus { - border-color: #5c5980; - /*color: #f5f5f5 !important;*/ - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(92, 89, 128, 0.6); -} - -.floating_message { - background-color: #5c5980; - opacity: 0.9; - filter: alpha(opacity=90); - border: 0; - border-radius: 5px; - padding: 10px 10px 10px 10px; - color: white; -} - -/* tooltips and popovers */ -/* tooltips no longer used b/c of rendering issue */ -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); - border: 0; - color: white; - font-family: "Roboto", Helvetica, Arial, sans-serif !important; -} - -.tooltip.bottom .tooltip-inner { - background-color: #5c5980; -} - -.tooltip.bottom .tooltip-arrow { - border-bottom-color: #5c5980; -} - -.tooltip.top .tooltip-inner { - background-color: #5c5980; -} - -.tooltip.top .tooltip-arrow { - border-top-color: #5c5980; -} - -.popover, .popover-title { - background-color: #5c5980; - color: white; - border: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif !important; -} - -.popover-title { - font-weight: 700; - font-family: "Roboto", Helvetica, Arial, sans-serif !important; -} - -.popover.in, .popover-title.in, .tooltip.in { - opacity: 0.90; - filter: alpha(opacity=90); - border: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; -} - -.popover.bottom .arrow:after { - border-bottom-color: #5c5980; -} - -.popover.top .arrow:after { - border-top-color: #5c5980; -} - -.popover.left .arrow:after { - border-left-color: #5c5980; -} - -.popover.right .arrow:after { - border-right-color: #5c5980; -} - -/* the below code is for the datatables -Note that much of this CSS overrides the default datatable CSS sheet */ -/* row striping for data table */ -table.dataTable.stripe tbody tr.odd, -table.dataTable.display tbody tr.odd { - background-color:#F5F5F5 !important; - border-color: white !important; -} - -/* table row border */ -table.dataTable.row-border tbody th, -table.dataTable.row-border tbody td, -table.dataTable.display tbody th, -table.dataTable.display tbody td { - border-top: 0 !important -} - -/* table row hover fill */ -table.dataTable.hover tbody tr:hover, -table.dataTable.display tbody tr:hover { - background-color: #e8e8e8 !important; -} - -/* this is the nav buttons at the bottom of datatables -border 0 fixes the buttons moving around when you hover / click */ -.dataTables_wrapper .dataTables_paginate .paginate_button { - border: 0; -} - -/* current table nav button */ -.dataTables_wrapper .dataTables_paginate .paginate_button.current, -.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { - /*border-radius: 1px;*/ - color: white !important; - border: 0 !important; - background-color:#5c5980 !important; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5c5980), color-stop(100%, #5c5980))!important; - background:-webkit-linear-gradient(top, #5c5980 0%, #5c5980 100%)!important; - background:-moz-linear-gradient(top, #5c5980 0%, #5c5980 100%)!important; - background:-ms-linear-gradient(top, #5c5980 0%, #5c5980 100%)!important; - background:-o-linear-gradient(top, #5c5980 0%, #5c5980 100%)!important; -} - -/* table nav button hover */ -.dataTables_wrapper .dataTables_paginate .paginate_button:hover { - /*border-radius: 1px;*/ - color: black !important; - border: 0 !important; - background-color:#e8e8e8 !important; - background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #e8e8e8), color-stop(100%, #e8e8e8))!important; - background:-webkit-linear-gradient(top, #e8e8e8 0%, #e8e8e8 100%)!important; - background:-moz-linear-gradient(top, #e8e8e8 0%, #e8e8e8 100%)!important; - background:-ms-linear-gradient(top, #e8e8e8 0%, #e8e8e8 100%)!important; - background:-o-linear-gradient(top, #e8e8e8 0%, #e8e8e8 100%)!important; - background:linear-gradient(to bottom, #e8e8e8 0%, #e8e8e8 100%)!important; -} - -/* help slideover */ -/*https://www.w3schools.com/howto/howto_js_sidenav.asp*/ -.conceptsSideBar { - height: 100%; - width: 0; - position: fixed; - z-index: 99999; - top: 0; - left: 0; - background-color: #3e374a; - overflow-x: hidden; - transition: 0.5s; - padding-top: 1rem; - -webkit-box-shadow: 400px 0px 300px rgba(74, 74, 74, 0.5); - -moz-box-shadow: 400px 0px 300px rgba(74, 74, 74, 0.5); - box-shadow: 400px 0px 300px rgba(74, 74, 74, 0.5); -} - -.conceptsSideBar a { - padding: 8px 8px 8px 32px; - text-decoration: none; - font-size: 25px; - color: #b0b0b0; - display: block; - transition: 0.3s; -} - -.conceptsSideBar a:hover { - color: #f1f1f1; -} - -.conceptsSideBarContainer p, .conceptsSideBarContainer h1, .conceptsSideBarContainer h2, .conceptsSideBarContainer h3, .conceptsSideBarContainer h4, .conceptsSideBarContainer h5 { - color: #b0b0b0; -} - -.conceptsHeader { - position: -webkit-sticky; - position: sticky; - top: 0rem; - z-index: 99; - background-color: #3e374a; - padding: 0.2rem 3rem 0.2rem 3rem; - border-bottom-width: 0.1rem; - border-bottom-color: #b0b0b0; - border-bottom-style: solid; - box-shadow: 0rem -2rem 2rem 1rem #3e374a; - margin: 0; -} - -.conceptsHeader .closebtn { - position: absolute; - top: 0.5rem; - right: 1rem; - font-size: 3em; -} - -.markdownContainer > p, .markdownContainer > h4, .conceptsSubHeader > h3 { - padding: 0.2rem 3rem 0.3rem 3rem; - margin: 0rem; -} - -.markdownContainer > p { - padding: 1rem 3rem 1rem 3rem; -} - - .markdownContainer > h4 { - padding: 1rem 3rem 0.3rem 3rem; - } - -.conceptsSubHeader { - position: -webkit-sticky; - position: sticky; - top: 7.45rem; - z-index: 98; - background-color: #3e374a; - padding: 0rem 0 0rem 0; - margin: 0 0 0rem 0; - border-bottom-width: 0.1rem; - border-bottom-color: #b0b0b0; - border-bottom-style: solid; -} - -.sideBarBtn { - position: fixed; - bottom: 1rem; - right: 1rem; - width: 5rem; - height: 5rem; - z-index: 99997; - text-align: center; - color: #b0b0b0; - font-size: 1.5rem; - font-weight: 400; - padding: 1rem 0; - border-radius: 50%; - border: 2px solid white; - background-color: #3e374a; - opacity: 0.6; - cursor: pointer; -} - -.sideBarBtn:hover { - opacity: 1; - transition-duration: 400ms; -} - -.conceptsGrid img { - width: 95%; - height: 180px; - -webkit-box-shadow: 0px 0px 10px #c4c4c4; - box-shadow: 0px 0px 10px #c4c4c4; - display: block; - margin-left: auto; - margin-right: auto; - object-fit: cover; -} %>% - -/* make consistent height of grid bricks on concepts page */ -#conceptsGrid1 > .row > .col-sm-3 > .well { - height: 45rem; -} - -.backNextContainer { - display: flex; -} - -.backNextContainer > button { - flex: 1 -} - -.backNextContainer > button:first-child { - margin-right: 1rem; -} - -.btn.btn-default.help { - background-color: #938497 !important; -} - -.btn.btn-default.help:hover { - background-color: #a997ad !important; -} - -.progress { - height: 1rem; -} - -/*drag-and-drop items*/ -.rank-list-item { - border: 0.2rem solid white !important;; - border-radius: 0px !important; - background-color: #F5F5F5 !important; -} - -.rank-list.rank-list-empty { - border-radius: 0px !important; -} - -.rank-list-item:hover { - background-color: #e6dfe8 !important; -} - -.rank-list-item.sortable-selected, .rank-list-item.sortable-chosen { - background-color: #5c5980 !important; - color: white !important; -} - -#analysis_data_upload_progress { - height: 2rem; -} - -/* make scrollbar always visible so site doesn't shift when it is visible */ -html { - overflow: -moz-scrollbars-vertical; - overflow-y: scroll; -} diff --git a/Production/www/thumbnails/PA.png b/Production/www/thumbnails/PA.png deleted file mode 100644 index b402b1ae..00000000 Binary files a/Production/www/thumbnails/PA.png and /dev/null differ diff --git a/Production/www/thumbnails/PO.png b/Production/www/thumbnails/PO.png deleted file mode 100644 index 2433699e..00000000 Binary files a/Production/www/thumbnails/PO.png and /dev/null differ diff --git a/Production/www/thumbnails/assumptions.png b/Production/www/thumbnails/assumptions.png deleted file mode 100644 index 5642e19d..00000000 Binary files a/Production/www/thumbnails/assumptions.png and /dev/null differ diff --git a/Production/www/thumbnails/balance.png b/Production/www/thumbnails/balance.png deleted file mode 100644 index a8df4a7b..00000000 Binary files a/Production/www/thumbnails/balance.png and /dev/null differ diff --git a/Production/www/thumbnails/fundamental_problem.png b/Production/www/thumbnails/fundamental_problem.png deleted file mode 100644 index 10cce41b..00000000 Binary files a/Production/www/thumbnails/fundamental_problem.png and /dev/null differ diff --git a/Production/www/thumbnails/practice_test.png b/Production/www/thumbnails/practice_test.png deleted file mode 100644 index c54ce27d..00000000 Binary files a/Production/www/thumbnails/practice_test.png and /dev/null differ diff --git a/Production/www/thumbnails/propensity.png b/Production/www/thumbnails/propensity.png deleted file mode 100644 index e57f3756..00000000 Binary files a/Production/www/thumbnails/propensity.png and /dev/null differ diff --git a/Production/www/thumbnails/randomization.png b/Production/www/thumbnails/randomization.png deleted file mode 100644 index 0bdb08f0..00000000 Binary files a/Production/www/thumbnails/randomization.png and /dev/null differ diff --git a/Production/www/thumbnails/regression.png b/Production/www/thumbnails/regression.png deleted file mode 100644 index c297e787..00000000 Binary files a/Production/www/thumbnails/regression.png and /dev/null differ diff --git a/Production/www/thumbnails/regression_discontinuity.png b/Production/www/thumbnails/regression_discontinuity.png deleted file mode 100644 index a222eedd..00000000 Binary files a/Production/www/thumbnails/regression_discontinuity.png and /dev/null differ diff --git a/Development/DESCRIPTION b/thinkCausal/DESCRIPTION similarity index 100% rename from Development/DESCRIPTION rename to thinkCausal/DESCRIPTION diff --git a/Development/NAMESPACE b/thinkCausal/NAMESPACE similarity index 100% rename from Development/NAMESPACE rename to thinkCausal/NAMESPACE diff --git a/Development/R/clean_auto_convert_logicals.R b/thinkCausal/R/clean_auto_convert_logicals.R similarity index 100% rename from Development/R/clean_auto_convert_logicals.R rename to thinkCausal/R/clean_auto_convert_logicals.R diff --git a/Development/R/clean_detect_ZYX_columns.R b/thinkCausal/R/clean_detect_ZYX_columns.R similarity index 100% rename from Development/R/clean_detect_ZYX_columns.R rename to thinkCausal/R/clean_detect_ZYX_columns.R diff --git a/Development/R/clean_detect_column_types.R b/thinkCausal/R/clean_detect_column_types.R similarity index 100% rename from Development/R/clean_detect_column_types.R rename to thinkCausal/R/clean_detect_column_types.R diff --git a/Development/R/clean_detect_dummy_cols.R b/thinkCausal/R/clean_detect_dummy_cols.R similarity index 100% rename from Development/R/clean_detect_dummy_cols.R rename to thinkCausal/R/clean_detect_dummy_cols.R diff --git a/Development/R/clean_detect_plot_vars.R b/thinkCausal/R/clean_detect_plot_vars.R similarity index 100% rename from Development/R/clean_detect_plot_vars.R rename to thinkCausal/R/clean_detect_plot_vars.R diff --git a/Development/R/clean_names.R b/thinkCausal/R/clean_names.R similarity index 100% rename from Development/R/clean_names.R rename to thinkCausal/R/clean_names.R diff --git a/Development/R/common_suport_diagnostic.R b/thinkCausal/R/common_suport_diagnostic.R similarity index 100% rename from Development/R/common_suport_diagnostic.R rename to thinkCausal/R/common_suport_diagnostic.R diff --git a/Development/R/convert_data_type_to_complex.R b/thinkCausal/R/convert_data_type_to_complex.R similarity index 100% rename from Development/R/convert_data_type_to_complex.R rename to thinkCausal/R/convert_data_type_to_complex.R diff --git a/Development/R/convert_data_type_to_simple.R b/thinkCausal/R/convert_data_type_to_simple.R similarity index 100% rename from Development/R/convert_data_type_to_simple.R rename to thinkCausal/R/convert_data_type_to_simple.R diff --git a/Development/R/create_datatable.R b/thinkCausal/R/create_datatable.R similarity index 100% rename from Development/R/create_datatable.R rename to thinkCausal/R/create_datatable.R diff --git a/Development/R/create_interactive_table.R b/thinkCausal/R/create_interactive_table.R similarity index 100% rename from Development/R/create_interactive_table.R rename to thinkCausal/R/create_interactive_table.R diff --git a/Development/R/create_progress_bar.R b/thinkCausal/R/create_progress_bar.R similarity index 100% rename from Development/R/create_progress_bar.R rename to thinkCausal/R/create_progress_bar.R diff --git a/Development/R/create_script.R b/thinkCausal/R/create_script.R similarity index 100% rename from Development/R/create_script.R rename to thinkCausal/R/create_script.R diff --git a/Development/R/ggplot_settings.R b/thinkCausal/R/ggplot_settings.R similarity index 100% rename from Development/R/ggplot_settings.R rename to thinkCausal/R/ggplot_settings.R diff --git a/Development/R/make_data_demo.R b/thinkCausal/R/make_data_demo.R similarity index 100% rename from Development/R/make_data_demo.R rename to thinkCausal/R/make_data_demo.R diff --git a/Development/R/modules/eda_module.R b/thinkCausal/R/modules/eda_module.R similarity index 100% rename from Development/R/modules/eda_module.R rename to thinkCausal/R/modules/eda_module.R diff --git a/Development/R/new_cate_plots.R b/thinkCausal/R/new_cate_plots.R similarity index 100% rename from Development/R/new_cate_plots.R rename to thinkCausal/R/new_cate_plots.R diff --git a/Development/R/plot_DAG.R b/thinkCausal/R/plot_DAG.R similarity index 100% rename from Development/R/plot_DAG.R rename to thinkCausal/R/plot_DAG.R diff --git a/Development/R/plot_cate.R b/thinkCausal/R/plot_cate.R similarity index 100% rename from Development/R/plot_cate.R rename to thinkCausal/R/plot_cate.R diff --git a/Development/R/plot_continuous_categorical.R b/thinkCausal/R/plot_continuous_categorical.R similarity index 100% rename from Development/R/plot_continuous_categorical.R rename to thinkCausal/R/plot_continuous_categorical.R diff --git a/Development/R/plot_exploration.R b/thinkCausal/R/plot_exploration.R similarity index 100% rename from Development/R/plot_exploration.R rename to thinkCausal/R/plot_exploration.R diff --git a/Development/R/plot_individual_effects.R b/thinkCausal/R/plot_individual_effects.R similarity index 100% rename from Development/R/plot_individual_effects.R rename to thinkCausal/R/plot_individual_effects.R diff --git a/Development/R/plot_pate.R b/thinkCausal/R/plot_pate.R similarity index 100% rename from Development/R/plot_pate.R rename to thinkCausal/R/plot_pate.R diff --git a/Development/R/plot_single_tree.R b/thinkCausal/R/plot_single_tree.R similarity index 100% rename from Development/R/plot_single_tree.R rename to thinkCausal/R/plot_single_tree.R diff --git a/Development/R/plot_variable_importance.R b/thinkCausal/R/plot_variable_importance.R similarity index 100% rename from Development/R/plot_variable_importance.R rename to thinkCausal/R/plot_variable_importance.R diff --git a/Development/R/validate_.R b/thinkCausal/R/validate_.R similarity index 100% rename from Development/R/validate_.R rename to thinkCausal/R/validate_.R diff --git a/Development/UI/concepts/PotnetialOutcomes_module.R b/thinkCausal/UI/concepts/PotnetialOutcomes_module.R similarity index 100% rename from Development/UI/concepts/PotnetialOutcomes_module.R rename to thinkCausal/UI/concepts/PotnetialOutcomes_module.R diff --git a/Development/UI/concepts/randomization_module.R b/thinkCausal/UI/concepts/randomization_module.R similarity index 100% rename from Development/UI/concepts/randomization_module.R rename to thinkCausal/UI/concepts/randomization_module.R diff --git a/Development/UI/headers/analysis_header.R b/thinkCausal/UI/headers/analysis_header.R similarity index 100% rename from Development/UI/headers/analysis_header.R rename to thinkCausal/UI/headers/analysis_header.R diff --git a/Development/UI/headers/concepts_header.R b/thinkCausal/UI/headers/concepts_header.R similarity index 100% rename from Development/UI/headers/concepts_header.R rename to thinkCausal/UI/headers/concepts_header.R diff --git a/Development/UI/headers/help_header.R b/thinkCausal/UI/headers/help_header.R similarity index 100% rename from Development/UI/headers/help_header.R rename to thinkCausal/UI/headers/help_header.R diff --git a/Development/UI/headers/reproducibility_header.R b/thinkCausal/UI/headers/reproducibility_header.R similarity index 100% rename from Development/UI/headers/reproducibility_header.R rename to thinkCausal/UI/headers/reproducibility_header.R diff --git a/Development/UI/headers/settings_header.R b/thinkCausal/UI/headers/settings_header.R similarity index 100% rename from Development/UI/headers/settings_header.R rename to thinkCausal/UI/headers/settings_header.R diff --git a/Development/UI/headers/welcome_header.R b/thinkCausal/UI/headers/welcome_header.R similarity index 100% rename from Development/UI/headers/welcome_header.R rename to thinkCausal/UI/headers/welcome_header.R diff --git a/Development/UI/markdowns/PotentialOutcomes_scenario1.md b/thinkCausal/UI/markdowns/PotentialOutcomes_scenario1.md similarity index 100% rename from Development/UI/markdowns/PotentialOutcomes_scenario1.md rename to thinkCausal/UI/markdowns/PotentialOutcomes_scenario1.md diff --git a/Development/UI/markdowns/PotentialOutcomes_scenario2.md b/thinkCausal/UI/markdowns/PotentialOutcomes_scenario2.md similarity index 100% rename from Development/UI/markdowns/PotentialOutcomes_scenario2.md rename to thinkCausal/UI/markdowns/PotentialOutcomes_scenario2.md diff --git a/Development/UI/markdowns/PotentialOutcomes_scenario3.md b/thinkCausal/UI/markdowns/PotentialOutcomes_scenario3.md similarity index 100% rename from Development/UI/markdowns/PotentialOutcomes_scenario3.md rename to thinkCausal/UI/markdowns/PotentialOutcomes_scenario3.md diff --git a/Development/UI/markdowns/concepts.md b/thinkCausal/UI/markdowns/concepts.md similarity index 100% rename from Development/UI/markdowns/concepts.md rename to thinkCausal/UI/markdowns/concepts.md diff --git a/Development/UI/markdowns/estimands.md b/thinkCausal/UI/markdowns/estimands.md similarity index 100% rename from Development/UI/markdowns/estimands.md rename to thinkCausal/UI/markdowns/estimands.md diff --git a/Development/UI/markdowns/help.md b/thinkCausal/UI/markdowns/help.md similarity index 100% rename from Development/UI/markdowns/help.md rename to thinkCausal/UI/markdowns/help.md diff --git a/Development/UI/markdowns/landing.md b/thinkCausal/UI/markdowns/landing.md similarity index 100% rename from Development/UI/markdowns/landing.md rename to thinkCausal/UI/markdowns/landing.md diff --git a/Development/UI/pages/PotentialOutcomes_tables.R b/thinkCausal/UI/pages/PotentialOutcomes_tables.R similarity index 100% rename from Development/UI/pages/PotentialOutcomes_tables.R rename to thinkCausal/UI/pages/PotentialOutcomes_tables.R diff --git a/Development/UI/pages/concepts_page.R b/thinkCausal/UI/pages/concepts_page.R similarity index 100% rename from Development/UI/pages/concepts_page.R rename to thinkCausal/UI/pages/concepts_page.R diff --git a/Development/UI/pages/data_page.R b/thinkCausal/UI/pages/data_page.R similarity index 100% rename from Development/UI/pages/data_page.R rename to thinkCausal/UI/pages/data_page.R diff --git a/Development/UI/pages/eda_page.R b/thinkCausal/UI/pages/eda_page.R similarity index 100% rename from Development/UI/pages/eda_page.R rename to thinkCausal/UI/pages/eda_page.R diff --git a/Development/UI/pages/log_page.R b/thinkCausal/UI/pages/log_page.R similarity index 100% rename from Development/UI/pages/log_page.R rename to thinkCausal/UI/pages/log_page.R diff --git a/Development/UI/pages/model_diagnostic_page.R b/thinkCausal/UI/pages/model_diagnostic_page.R similarity index 100% rename from Development/UI/pages/model_diagnostic_page.R rename to thinkCausal/UI/pages/model_diagnostic_page.R diff --git a/Development/UI/pages/model_moderator_results_page.R b/thinkCausal/UI/pages/model_moderator_results_page.R similarity index 100% rename from Development/UI/pages/model_moderator_results_page.R rename to thinkCausal/UI/pages/model_moderator_results_page.R diff --git a/Development/UI/pages/model_page.R b/thinkCausal/UI/pages/model_page.R similarity index 100% rename from Development/UI/pages/model_page.R rename to thinkCausal/UI/pages/model_page.R diff --git a/Development/UI/pages/model_results_page.R b/thinkCausal/UI/pages/model_results_page.R similarity index 100% rename from Development/UI/pages/model_results_page.R rename to thinkCausal/UI/pages/model_results_page.R diff --git a/Development/UI/pages/options_page.R b/thinkCausal/UI/pages/options_page.R similarity index 100% rename from Development/UI/pages/options_page.R rename to thinkCausal/UI/pages/options_page.R diff --git a/Development/UI/pages/script_page.R b/thinkCausal/UI/pages/script_page.R similarity index 100% rename from Development/UI/pages/script_page.R rename to thinkCausal/UI/pages/script_page.R diff --git a/Development/data/IHDP_observational.csv b/thinkCausal/data/IHDP_observational.csv similarity index 100% rename from Development/data/IHDP_observational.csv rename to thinkCausal/data/IHDP_observational.csv diff --git a/Development/data/credit.csv b/thinkCausal/data/credit.csv similarity index 100% rename from Development/data/credit.csv rename to thinkCausal/data/credit.csv diff --git a/Development/data/lalonde.csv b/thinkCausal/data/lalonde.csv similarity index 100% rename from Development/data/lalonde.csv rename to thinkCausal/data/lalonde.csv diff --git a/Development/data/lalonde_obs.csv b/thinkCausal/data/lalonde_obs.csv similarity index 100% rename from Development/data/lalonde_obs.csv rename to thinkCausal/data/lalonde_obs.csv diff --git a/Development/data/linear_data.R b/thinkCausal/data/linear_data.R similarity index 100% rename from Development/data/linear_data.R rename to thinkCausal/data/linear_data.R diff --git a/Development/data/linear_data.csv b/thinkCausal/data/linear_data.csv similarity index 100% rename from Development/data/linear_data.csv rename to thinkCausal/data/linear_data.csv diff --git a/Development/data/randomization_df.csv b/thinkCausal/data/randomization_df.csv similarity index 100% rename from Development/data/randomization_df.csv rename to thinkCausal/data/randomization_df.csv diff --git a/Development/global.R b/thinkCausal/global.R similarity index 100% rename from Development/global.R rename to thinkCausal/global.R diff --git a/Development/man/clean_auto_convert_logicals.Rd b/thinkCausal/man/clean_auto_convert_logicals.Rd similarity index 100% rename from Development/man/clean_auto_convert_logicals.Rd rename to thinkCausal/man/clean_auto_convert_logicals.Rd diff --git a/Development/man/clean_detect_ZYX_columns.Rd b/thinkCausal/man/clean_detect_ZYX_columns.Rd similarity index 100% rename from Development/man/clean_detect_ZYX_columns.Rd rename to thinkCausal/man/clean_detect_ZYX_columns.Rd diff --git a/Development/man/clean_detect_column_types.Rd b/thinkCausal/man/clean_detect_column_types.Rd similarity index 100% rename from Development/man/clean_detect_column_types.Rd rename to thinkCausal/man/clean_detect_column_types.Rd diff --git a/Development/man/clean_detect_plot_vars.Rd b/thinkCausal/man/clean_detect_plot_vars.Rd similarity index 100% rename from Development/man/clean_detect_plot_vars.Rd rename to thinkCausal/man/clean_detect_plot_vars.Rd diff --git a/Development/man/clean_names.Rd b/thinkCausal/man/clean_names.Rd similarity index 100% rename from Development/man/clean_names.Rd rename to thinkCausal/man/clean_names.Rd diff --git a/Development/man/convert_data_type_to_complex.Rd b/thinkCausal/man/convert_data_type_to_complex.Rd similarity index 100% rename from Development/man/convert_data_type_to_complex.Rd rename to thinkCausal/man/convert_data_type_to_complex.Rd diff --git a/Development/man/convert_data_type_to_simple.Rd b/thinkCausal/man/convert_data_type_to_simple.Rd similarity index 100% rename from Development/man/convert_data_type_to_simple.Rd rename to thinkCausal/man/convert_data_type_to_simple.Rd diff --git a/Development/man/create_datatable.Rd b/thinkCausal/man/create_datatable.Rd similarity index 100% rename from Development/man/create_datatable.Rd rename to thinkCausal/man/create_datatable.Rd diff --git a/Development/man/create_progress_bar.Rd b/thinkCausal/man/create_progress_bar.Rd similarity index 100% rename from Development/man/create_progress_bar.Rd rename to thinkCausal/man/create_progress_bar.Rd diff --git a/Development/man/create_script.Rd b/thinkCausal/man/create_script.Rd similarity index 100% rename from Development/man/create_script.Rd rename to thinkCausal/man/create_script.Rd diff --git a/Development/man/plot_DAG.Rd b/thinkCausal/man/plot_DAG.Rd similarity index 100% rename from Development/man/plot_DAG.Rd rename to thinkCausal/man/plot_DAG.Rd diff --git a/Development/man/plot_exploration.Rd b/thinkCausal/man/plot_exploration.Rd similarity index 100% rename from Development/man/plot_exploration.Rd rename to thinkCausal/man/plot_exploration.Rd diff --git a/Development/man/plot_variable_importance.Rd b/thinkCausal/man/plot_variable_importance.Rd similarity index 100% rename from Development/man/plot_variable_importance.Rd rename to thinkCausal/man/plot_variable_importance.Rd diff --git a/Development/manual_workflow.R b/thinkCausal/manual_workflow.R similarity index 100% rename from Development/manual_workflow.R rename to thinkCausal/manual_workflow.R diff --git a/Development/server.R b/thinkCausal/server.R similarity index 100% rename from Development/server.R rename to thinkCausal/server.R diff --git a/Development/stand_alone/Balance_Overlap.Rmd b/thinkCausal/stand_alone/Balance_Overlap.Rmd similarity index 100% rename from Development/stand_alone/Balance_Overlap.Rmd rename to thinkCausal/stand_alone/Balance_Overlap.Rmd diff --git a/Development/stand_alone/Balance_Overlap/BART_Overlap.Rmd b/thinkCausal/stand_alone/Balance_Overlap/BART_Overlap.Rmd similarity index 100% rename from Development/stand_alone/Balance_Overlap/BART_Overlap.Rmd rename to thinkCausal/stand_alone/Balance_Overlap/BART_Overlap.Rmd diff --git a/Development/stand_alone/Balance_Overlap/Balance.Rmd b/thinkCausal/stand_alone/Balance_Overlap/Balance.Rmd similarity index 100% rename from Development/stand_alone/Balance_Overlap/Balance.Rmd rename to thinkCausal/stand_alone/Balance_Overlap/Balance.Rmd diff --git a/Development/stand_alone/Balance_Overlap/Overlap.Rmd b/thinkCausal/stand_alone/Balance_Overlap/Overlap.Rmd similarity index 100% rename from Development/stand_alone/Balance_Overlap/Overlap.Rmd rename to thinkCausal/stand_alone/Balance_Overlap/Overlap.Rmd diff --git a/Development/stand_alone/Balance_Overlap/apps/BART_Overlap.R b/thinkCausal/stand_alone/Balance_Overlap/apps/BART_Overlap.R similarity index 100% rename from Development/stand_alone/Balance_Overlap/apps/BART_Overlap.R rename to thinkCausal/stand_alone/Balance_Overlap/apps/BART_Overlap.R diff --git a/Development/stand_alone/Balance_Overlap/apps/Balance.R b/thinkCausal/stand_alone/Balance_Overlap/apps/Balance.R similarity index 100% rename from Development/stand_alone/Balance_Overlap/apps/Balance.R rename to thinkCausal/stand_alone/Balance_Overlap/apps/Balance.R diff --git a/Development/stand_alone/Balance_Overlap/apps/Overlap.R b/thinkCausal/stand_alone/Balance_Overlap/apps/Overlap.R similarity index 100% rename from Development/stand_alone/Balance_Overlap/apps/Overlap.R rename to thinkCausal/stand_alone/Balance_Overlap/apps/Overlap.R diff --git a/Development/stand_alone/PO2/app.R b/thinkCausal/stand_alone/PO2/app.R similarity index 100% rename from Development/stand_alone/PO2/app.R rename to thinkCausal/stand_alone/PO2/app.R diff --git a/Development/stand_alone/PO2/app_cases_filledin.R b/thinkCausal/stand_alone/PO2/app_cases_filledin.R similarity index 100% rename from Development/stand_alone/PO2/app_cases_filledin.R rename to thinkCausal/stand_alone/PO2/app_cases_filledin.R diff --git a/Development/stand_alone/PotentialOutcomes_scenario1.R b/thinkCausal/stand_alone/PotentialOutcomes_scenario1.R similarity index 100% rename from Development/stand_alone/PotentialOutcomes_scenario1.R rename to thinkCausal/stand_alone/PotentialOutcomes_scenario1.R diff --git a/Development/stand_alone/PotentialOutcomes_scenario2.R b/thinkCausal/stand_alone/PotentialOutcomes_scenario2.R similarity index 100% rename from Development/stand_alone/PotentialOutcomes_scenario2.R rename to thinkCausal/stand_alone/PotentialOutcomes_scenario2.R diff --git a/Development/stand_alone/PotentialOutcomes_scenario3.R b/thinkCausal/stand_alone/PotentialOutcomes_scenario3.R similarity index 100% rename from Development/stand_alone/PotentialOutcomes_scenario3.R rename to thinkCausal/stand_alone/PotentialOutcomes_scenario3.R diff --git a/Development/stand_alone/Potential_Outcomes_Draft.Rmd b/thinkCausal/stand_alone/Potential_Outcomes_Draft.Rmd similarity index 100% rename from Development/stand_alone/Potential_Outcomes_Draft.Rmd rename to thinkCausal/stand_alone/Potential_Outcomes_Draft.Rmd diff --git a/Development/stand_alone/confounders/app.R b/thinkCausal/stand_alone/confounders/app.R similarity index 100% rename from Development/stand_alone/confounders/app.R rename to thinkCausal/stand_alone/confounders/app.R diff --git a/Development/stand_alone/html_version/scenario1.html b/thinkCausal/stand_alone/html_version/scenario1.html similarity index 100% rename from Development/stand_alone/html_version/scenario1.html rename to thinkCausal/stand_alone/html_version/scenario1.html diff --git a/Development/stand_alone/html_version/scenario2.html b/thinkCausal/stand_alone/html_version/scenario2.html similarity index 100% rename from Development/stand_alone/html_version/scenario2.html rename to thinkCausal/stand_alone/html_version/scenario2.html diff --git a/Development/stand_alone/html_version/scenario3.html b/thinkCausal/stand_alone/html_version/scenario3.html similarity index 100% rename from Development/stand_alone/html_version/scenario3.html rename to thinkCausal/stand_alone/html_version/scenario3.html diff --git a/Development/stand_alone/regression_trees_explainer/app.R b/thinkCausal/stand_alone/regression_trees_explainer/app.R similarity index 100% rename from Development/stand_alone/regression_trees_explainer/app.R rename to thinkCausal/stand_alone/regression_trees_explainer/app.R diff --git a/Development/stand_alone/regression_trees_explainer/regression_trees/text_1.md b/thinkCausal/stand_alone/regression_trees_explainer/regression_trees/text_1.md similarity index 100% rename from Development/stand_alone/regression_trees_explainer/regression_trees/text_1.md rename to thinkCausal/stand_alone/regression_trees_explainer/regression_trees/text_1.md diff --git a/Development/stand_alone/regression_trees_explainer/regression_trees/text_2.md b/thinkCausal/stand_alone/regression_trees_explainer/regression_trees/text_2.md similarity index 100% rename from Development/stand_alone/regression_trees_explainer/regression_trees/text_2.md rename to thinkCausal/stand_alone/regression_trees_explainer/regression_trees/text_2.md diff --git a/Development/stand_alone/regression_trees_explainer/www/diagram.png b/thinkCausal/stand_alone/regression_trees_explainer/www/diagram.png similarity index 100% rename from Development/stand_alone/regression_trees_explainer/www/diagram.png rename to thinkCausal/stand_alone/regression_trees_explainer/www/diagram.png diff --git a/Development/stand_alone/regression_trees_explainer/www/diagram_parameters.png b/thinkCausal/stand_alone/regression_trees_explainer/www/diagram_parameters.png similarity index 100% rename from Development/stand_alone/regression_trees_explainer/www/diagram_parameters.png rename to thinkCausal/stand_alone/regression_trees_explainer/www/diagram_parameters.png diff --git a/Development/tests/testthat.R b/thinkCausal/tests/testthat.R similarity index 100% rename from Development/tests/testthat.R rename to thinkCausal/tests/testthat.R diff --git a/Development/tests/testthat/test_clean_functions.R b/thinkCausal/tests/testthat/test_clean_functions.R similarity index 100% rename from Development/tests/testthat/test_clean_functions.R rename to thinkCausal/tests/testthat/test_clean_functions.R diff --git a/Development/tests/testthat/test_convert_functions.R b/thinkCausal/tests/testthat/test_convert_functions.R similarity index 100% rename from Development/tests/testthat/test_convert_functions.R rename to thinkCausal/tests/testthat/test_convert_functions.R diff --git a/Development/tests/testthat/test_create_functions.R b/thinkCausal/tests/testthat/test_create_functions.R similarity index 100% rename from Development/tests/testthat/test_create_functions.R rename to thinkCausal/tests/testthat/test_create_functions.R diff --git a/Development/ui.R b/thinkCausal/ui.R similarity index 100% rename from Development/ui.R rename to thinkCausal/ui.R diff --git a/Development/www/img/placeholder.png b/thinkCausal/www/img/placeholder.png similarity index 100% rename from Development/www/img/placeholder.png rename to thinkCausal/www/img/placeholder.png diff --git a/Development/www/img/tree.gif b/thinkCausal/www/img/tree.gif similarity index 100% rename from Development/www/img/tree.gif rename to thinkCausal/www/img/tree.gif diff --git a/Development/www/navSlideOver.js b/thinkCausal/www/navSlideOver.js similarity index 100% rename from Development/www/navSlideOver.js rename to thinkCausal/www/navSlideOver.js diff --git a/Development/www/thinkCausal.css b/thinkCausal/www/thinkCausal.css similarity index 100% rename from Development/www/thinkCausal.css rename to thinkCausal/www/thinkCausal.css diff --git a/Development/www/thumbnails/PA.png b/thinkCausal/www/thumbnails/PA.png similarity index 100% rename from Development/www/thumbnails/PA.png rename to thinkCausal/www/thumbnails/PA.png diff --git a/Development/www/thumbnails/PO.png b/thinkCausal/www/thumbnails/PO.png similarity index 100% rename from Development/www/thumbnails/PO.png rename to thinkCausal/www/thumbnails/PO.png diff --git a/Development/www/thumbnails/assumptions.png b/thinkCausal/www/thumbnails/assumptions.png similarity index 100% rename from Development/www/thumbnails/assumptions.png rename to thinkCausal/www/thumbnails/assumptions.png diff --git a/Development/www/thumbnails/balance.png b/thinkCausal/www/thumbnails/balance.png similarity index 100% rename from Development/www/thumbnails/balance.png rename to thinkCausal/www/thumbnails/balance.png diff --git a/Development/www/thumbnails/fundamental_problem.png b/thinkCausal/www/thumbnails/fundamental_problem.png similarity index 100% rename from Development/www/thumbnails/fundamental_problem.png rename to thinkCausal/www/thumbnails/fundamental_problem.png diff --git a/Development/www/thumbnails/practice_test.png b/thinkCausal/www/thumbnails/practice_test.png similarity index 100% rename from Development/www/thumbnails/practice_test.png rename to thinkCausal/www/thumbnails/practice_test.png diff --git a/Development/www/thumbnails/propensity.png b/thinkCausal/www/thumbnails/propensity.png similarity index 100% rename from Development/www/thumbnails/propensity.png rename to thinkCausal/www/thumbnails/propensity.png diff --git a/Development/www/thumbnails/randomization.png b/thinkCausal/www/thumbnails/randomization.png similarity index 100% rename from Development/www/thumbnails/randomization.png rename to thinkCausal/www/thumbnails/randomization.png diff --git a/Development/www/thumbnails/regression.png b/thinkCausal/www/thumbnails/regression.png similarity index 100% rename from Development/www/thumbnails/regression.png rename to thinkCausal/www/thumbnails/regression.png diff --git a/Development/www/thumbnails/regression_discontinuity.png b/thinkCausal/www/thumbnails/regression_discontinuity.png similarity index 100% rename from Development/www/thumbnails/regression_discontinuity.png rename to thinkCausal/www/thumbnails/regression_discontinuity.png