Data

source("0_helpers.R")

load("data/cleaned_selected_wrangled.rdata")

Selection Model

Hormonal Contraception

Simple Model

Model
m_selection_hc_simple = brm(contraception_hormonal ~
                              age + net_income + relationship_duration_factor,
                            data = data,
                            family = bernoulli("probit"),
                            file = "m_selection_hc_simple")
Summary
summary(m_selection_hc_simple, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: contraception_hormonal ~ age + net_income + relationship_duration_factor 
##    Data: data (Number of observations: 1179) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                        Estimate Est.Error l-90% CI u-90% CI Rhat Bulk_ESS
## Intercept                                                  1.00      0.23     0.63     1.37 1.00     5799
## age                                                       -0.06      0.01    -0.08    -0.05 1.00     4109
## net_incomeeuro_500_1000                                   -0.12      0.10    -0.28     0.03 1.00     4105
## net_incomeeuro_1000_2000                                   0.14      0.13    -0.07     0.36 1.00     3463
## net_incomeeuro_2000_3000                                   0.12      0.20    -0.20     0.45 1.00     4109
## net_incomeeuro_gt_3000                                     0.41      0.35    -0.14     1.00 1.00     5466
## net_incomedont_tell                                       -0.00      0.25    -0.42     0.40 1.00     5421
## relationship_duration_factorPartnered_upto12months         0.39      0.11     0.21     0.57 1.00     4734
## relationship_duration_factorPartnered_upto28months         0.56      0.11     0.38     0.75 1.00     4483
## relationship_duration_factorPartnered_upto52months         0.57      0.11     0.38     0.76 1.00     4365
## relationship_duration_factorPartnered_morethan52months     0.74      0.12     0.54     0.94 1.00     4671
##                                                        Tail_ESS
## Intercept                                                  2987
## age                                                        3228
## net_incomeeuro_500_1000                                    3075
## net_incomeeuro_1000_2000                                   3352
## net_incomeeuro_2000_3000                                   3459
## net_incomeeuro_gt_3000                                     3171
## net_incomedont_tell                                        2810
## relationship_duration_factorPartnered_upto12months         3407
## relationship_duration_factorPartnered_upto28months         3208
## relationship_duration_factorPartnered_upto52months         3327
## relationship_duration_factorPartnered_morethan52months     3341
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_hc_simple, ask = FALSE)

Forest Plot for Effect Sizes
m_selection_hc_simple %>%
  spread_draws(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto12months,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months) %>%
  pivot_longer(cols = c(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto12months,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months),
               names_to = "condition",
               values_to = "r_condition") %>%
  mutate(condition_mean = r_condition,
         group = ifelse(condition %contains% "b_relationship_duration_factor",
                        "Relationship Duration",
                        ifelse(condition %contains% "b_net_income",
                               "Income",
                               NA)),
         condition = ifelse(condition == "b_age", "Age",
                ifelse(condition == "b_net_incomeeuro_500_1000", "500-1000 Euro",
                ifelse(condition == "b_net_incomeeuro_1000_2000", "1000-2000 Euro",
                ifelse(condition == "b_net_incomeeuro_2000_3000", "2000-3000 Euro",
                ifelse(condition == "b_net_incomeeuro_gt_3000", ">3000 Euro",
                ifelse(condition == "b_net_incomedont_tell", "do not tell",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto12months",
                       "0-12 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto28months",
                       "13-28 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto52months",
                       "29-52 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_morethan52months",
                       ">52 months",
                       condition)))))))))),
         group = ifelse(is.na(group), condition, group),
         condition = factor(condition, levels = rev(c("Age",
                                        "500-1000 Euro", "1000-2000 Euro",
                                        "2000-3000 Euro", ">3000 Euro", "do not tell",
                                        "0-12 months", "13-28 months", "29-52 months",
                                        ">52 months")))) %>%
  ggplot(aes(y = condition, x = condition_mean, color = group)) +
  stat_halfeye() +
  geom_vline(xintercept = 0, linetype = "dotted", size = 1) +
  apatheme +
  theme(legend.title = element_blank()) +
  labs(x = "Effect Size Estimates", y = "Predictors")

Complex Model

Model
m_selection_hc_complex = brm(contraception_hormonal ~
                              age + net_income + relationship_duration_factor +
                              education_years +
                              bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open +
                              religiosity,
                            data = data,
                            family = bernoulli("probit"),
                            file = "m_selection_hc_complex")
Summary
summary(m_selection_hc_complex, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: contraception_hormonal ~ age + net_income + relationship_duration_factor + education_years + bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open + religiosity 
##    Data: data (Number of observations: 1179) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                        Estimate Est.Error l-90% CI u-90% CI Rhat Bulk_ESS
## Intercept                                                  0.20      0.55    -0.71     1.10 1.00     5305
## age                                                       -0.06      0.01    -0.08    -0.04 1.00     3417
## net_incomeeuro_500_1000                                   -0.13      0.10    -0.29     0.03 1.00     3819
## net_incomeeuro_1000_2000                                   0.13      0.13    -0.09     0.35 1.00     3198
## net_incomeeuro_2000_3000                                   0.07      0.20    -0.27     0.40 1.00     3459
## net_incomeeuro_gt_3000                                     0.40      0.34    -0.16     0.96 1.00     4356
## net_incomedont_tell                                       -0.01      0.24    -0.40     0.39 1.00     5075
## relationship_duration_factorPartnered_upto12months         0.38      0.11     0.20     0.57 1.00     4658
## relationship_duration_factorPartnered_upto28months         0.54      0.11     0.36     0.72 1.00     4441
## relationship_duration_factorPartnered_upto52months         0.52      0.11     0.34     0.71 1.00     3901
## relationship_duration_factorPartnered_morethan52months     0.70      0.12     0.51     0.90 1.00     4237
## education_years                                            0.01      0.01    -0.00     0.03 1.00     6464
## bfi_extra                                                  0.06      0.06    -0.03     0.15 1.00     5838
## bfi_neuro                                                  0.07      0.06    -0.02     0.17 1.00     4854
## bfi_agree                                                  0.07      0.07    -0.05     0.18 1.00     5349
## bfi_consc                                                  0.20      0.06     0.10     0.30 1.00     7477
## bfi_open                                                  -0.18      0.06    -0.28    -0.07 1.00     7614
## religiosity                                               -0.04      0.03    -0.09     0.01 1.00     6300
##                                                        Tail_ESS
## Intercept                                                  3393
## age                                                        3249
## net_incomeeuro_500_1000                                    3001
## net_incomeeuro_1000_2000                                   3363
## net_incomeeuro_2000_3000                                   3322
## net_incomeeuro_gt_3000                                     2965
## net_incomedont_tell                                        3361
## relationship_duration_factorPartnered_upto12months         3385
## relationship_duration_factorPartnered_upto28months         3471
## relationship_duration_factorPartnered_upto52months         3427
## relationship_duration_factorPartnered_morethan52months     3142
## education_years                                            2953
## bfi_extra                                                  3351
## bfi_neuro                                                  3486
## bfi_agree                                                  3472
## bfi_consc                                                  3112
## bfi_open                                                   3173
## religiosity                                                3310
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_hc_complex, ask = FALSE)

Forest Plot for Effect Sizes
m_selection_hc_complex %>%
  spread_draws(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto12months,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months,
               b_education_years,
               b_bfi_extra, b_bfi_neuro, b_bfi_agree, b_bfi_consc, b_bfi_open, 
               b_religiosity) %>%
  pivot_longer(cols = c(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto12months,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months,
               b_education_years,
               b_bfi_extra, b_bfi_neuro, b_bfi_agree, b_bfi_consc, b_bfi_open, 
               b_religiosity),
               names_to = "condition",
               values_to = "r_condition") %>%
  mutate(condition_mean = r_condition,
         group = ifelse(condition %contains% "b_relationship_duration_factor",
                        "Relationship Duration",
                        ifelse(condition %contains% "b_net_income",
                               "Income",
                               NA)),
         condition = ifelse(condition == "b_age", "Age",
                ifelse(condition == "b_net_incomeeuro_500_1000", "500-1000 Euro",
                ifelse(condition == "b_net_incomeeuro_1000_2000", "1000-2000 Euro",
                ifelse(condition == "b_net_incomeeuro_2000_3000", "2000-3000 Euro",
                ifelse(condition == "b_net_incomeeuro_gt_3000", ">3000 Euro",
                ifelse(condition == "b_net_incomedont_tell", "do not tell",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto12months",
                       "0-12 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto28months",
                       "13-28 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto52months",
                       "29-52 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_morethan52months",
                       ">52 months",
                ifelse(condition == "b_education_years", "Years of Education",
                ifelse(condition == "b_bfi_extra", "Extraversion",
                ifelse(condition == "b_bfi_neuro", "Neuroticism",
                ifelse(condition == "b_bfi_agree", "Agreeableness",
                ifelse(condition == "b_bfi_consc", "Conscientiousness",
                ifelse(condition == "b_bfi_open", "Openness",
                ifelse(condition == "b_religiosity", "Religiosity",
                       condition))))))))))))))))),
         group = ifelse(is.na(group), condition, group),
         condition = factor(condition, levels = rev(c("Age",
                                        "500-1000 Euro", "1000-2000 Euro",
                                        "2000-3000 Euro", ">3000 Euro", "do not tell",
                                        "0-12 months", "13-28 months", "29-52 months",
                                        ">52 months",
                                        "Years of Education",
                                        "Extraversion", "Neuroticism", "Agreeableness",
                                         "Conscientiousness","Openness","Religiosity"))),
         group = factor(group, levels = c("Age", "Income", "Relationship Duration",
                                          
                                          "Years of Education",
                                          "Extraversion", "Neuroticism", "Agreeableness",
                                         "Conscientiousness","Openness","Religiosity"))) %>%
  ggplot(aes(y = condition, x = condition_mean, color = group)) +
  stat_halfeye() +
  geom_vline(xintercept = 0, linetype = "dotted", size = 1) +
  apatheme +
  theme(legend.title = element_blank()) +
  labs(x = "Effect Size Estimates", y = "Predictors")

Comparison

compare_models = loo(m_selection_hc_simple, m_selection_hc_complex)

LooIC first model: 1530.01

LooIC second model: 1523.11

Model Comparisons: The difference between models is -3.45 compared to a standard error of 4.71

compare_models
## Output of model 'm_selection_hc_simple':
## 
## Computed from 4000 by 1179 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -765.0 11.2
## p_loo        11.7  0.6
## looic      1530.0 22.5
## ------
## Monte Carlo SE of elpd_loo is 0.0.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Output of model 'm_selection_hc_complex':
## 
## Computed from 4000 by 1179 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -761.6 12.1
## p_loo        18.9  0.7
## looic      1523.1 24.3
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Model comparisons:
##                        elpd_diff se_diff
## m_selection_hc_complex  0.0       0.0   
## m_selection_hc_simple  -3.5       4.7

(In)congruent use of hormonal contraceptives

Simple Model

Model
m_selection_congruent_simple = brm(congruent_contraception ~
                              age + net_income + relationship_duration_factor,
                            data = data,
                            family = bernoulli("probit"),
                            file = "m_selection_congruent_simple")
Summary
summary(m_selection_congruent_simple, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: congruent_contraception ~ age + net_income + relationship_duration_factor 
##    Data: data (Number of observations: 774) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                        Estimate Est.Error l-90% CI u-90% CI Rhat Bulk_ESS
## Intercept                                                  0.32      0.29    -0.16     0.79 1.00     4641
## age                                                        0.03      0.01     0.01     0.05 1.00     3638
## net_incomeeuro_500_1000                                   -0.09      0.12    -0.29     0.11 1.00     3077
## net_incomeeuro_1000_2000                                  -0.06      0.16    -0.32     0.21 1.00     2805
## net_incomeeuro_2000_3000                                  -0.49      0.23    -0.86    -0.12 1.00     3333
## net_incomeeuro_gt_3000                                    -0.54      0.39    -1.18     0.10 1.00     4548
## net_incomedont_tell                                       -0.30      0.30    -0.80     0.21 1.00     4430
## relationship_duration_factorPartnered_upto28months        -0.41      0.14    -0.65    -0.17 1.00     3200
## relationship_duration_factorPartnered_upto52months        -0.97      0.14    -1.20    -0.73 1.00     2908
## relationship_duration_factorPartnered_morethan52months    -1.00      0.15    -1.24    -0.76 1.00     2883
##                                                        Tail_ESS
## Intercept                                                  2666
## age                                                        3154
## net_incomeeuro_500_1000                                    3198
## net_incomeeuro_1000_2000                                   3175
## net_incomeeuro_2000_3000                                   3141
## net_incomeeuro_gt_3000                                     3044
## net_incomedont_tell                                        3134
## relationship_duration_factorPartnered_upto28months         3480
## relationship_duration_factorPartnered_upto52months         3357
## relationship_duration_factorPartnered_morethan52months     3272
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_congruent_simple, ask = FALSE)

Forest Plot for Effect Sizes
m_selection_congruent_simple %>%
  spread_draws(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months) %>%
  pivot_longer(cols = c(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months),
               names_to = "condition",
               values_to = "r_condition") %>%
  mutate(condition_mean = r_condition,
         group = ifelse(condition %contains% "b_relationship_duration_factor",
                        "Relationship Duration",
                        ifelse(condition %contains% "b_net_income",
                               "Income",
                               NA)),
         condition = ifelse(condition == "b_age", "Age",
                ifelse(condition == "b_net_incomeeuro_500_1000", "500-1000 Euro",
                ifelse(condition == "b_net_incomeeuro_1000_2000", "1000-2000 Euro",
                ifelse(condition == "b_net_incomeeuro_2000_3000", "2000-3000 Euro",
                ifelse(condition == "b_net_incomeeuro_gt_3000", ">3000 Euro",
                ifelse(condition == "b_net_incomedont_tell", "do not tell",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto12months",
                       "0-12 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto28months",
                       "13-28 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto52months",
                       "29-52 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_morethan52months",
                       ">52 months",
                       condition)))))))))),
         group = ifelse(is.na(group), condition, group),
         condition = factor(condition, levels = rev(c("Age",
                                        "500-1000 Euro", "1000-2000 Euro",
                                        "2000-3000 Euro", ">3000 Euro", "do not tell",
                                        "13-28 months", "29-52 months",
                                        ">52 months")))) %>%
  ggplot(aes(y = condition, x = condition_mean, color = group)) +
  stat_halfeye() +
  geom_vline(xintercept = 0, linetype = "dotted", size = 1) +
  apatheme +
  theme(legend.title = element_blank()) +
  labs(x = "Effect Size Estimates", y = "Predictors")

Complex Model

Model
m_selection_congruent_complex = brm(congruent_contraception ~
                              age + net_income + relationship_duration_factor +
                              education_years +
                              bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open +
                              religiosity,
                            data = data,
                            family = bernoulli("probit"),
                            file = "m_selection_congruent_complex")
Summary
summary(m_selection_congruent_complex, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: congruent_contraception ~ age + net_income + relationship_duration_factor + education_years + bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open + religiosity 
##    Data: data (Number of observations: 774) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                        Estimate Est.Error l-90% CI u-90% CI Rhat Bulk_ESS
## Intercept                                                 -0.07      0.70    -1.23     1.09 1.00     4393
## age                                                        0.03      0.01     0.01     0.05 1.00     3691
## net_incomeeuro_500_1000                                   -0.09      0.12    -0.29     0.11 1.00     3177
## net_incomeeuro_1000_2000                                  -0.07      0.16    -0.33     0.21 1.00     2871
## net_incomeeuro_2000_3000                                  -0.52      0.22    -0.89    -0.15 1.00     3250
## net_incomeeuro_gt_3000                                    -0.52      0.37    -1.14     0.10 1.00     3902
## net_incomedont_tell                                       -0.30      0.31    -0.81     0.21 1.00     4380
## relationship_duration_factorPartnered_upto28months        -0.43      0.14    -0.66    -0.20 1.00     3234
## relationship_duration_factorPartnered_upto52months        -1.01      0.14    -1.25    -0.78 1.00     3126
## relationship_duration_factorPartnered_morethan52months    -1.03      0.15    -1.27    -0.78 1.00     3059
## education_years                                            0.01      0.01    -0.01     0.03 1.00     6073
## bfi_extra                                                  0.02      0.07    -0.09     0.13 1.00     4778
## bfi_neuro                                                  0.08      0.07    -0.04     0.20 1.00     3730
## bfi_agree                                                 -0.04      0.09    -0.19     0.10 1.00     4347
## bfi_consc                                                  0.13      0.08     0.00     0.25 1.00     5472
## bfi_open                                                  -0.07      0.08    -0.20     0.06 1.00     5426
## religiosity                                               -0.03      0.04    -0.09     0.03 1.00     5400
##                                                        Tail_ESS
## Intercept                                                  2895
## age                                                        2883
## net_incomeeuro_500_1000                                    2953
## net_incomeeuro_1000_2000                                   3018
## net_incomeeuro_2000_3000                                   3041
## net_incomeeuro_gt_3000                                     3104
## net_incomedont_tell                                        2638
## relationship_duration_factorPartnered_upto28months         3143
## relationship_duration_factorPartnered_upto52months         3161
## relationship_duration_factorPartnered_morethan52months     3084
## education_years                                            3208
## bfi_extra                                                  3542
## bfi_neuro                                                  2624
## bfi_agree                                                  3080
## bfi_consc                                                  3270
## bfi_open                                                   3681
## religiosity                                                3126
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_congruent_complex, ask = FALSE)

Forest Plot for Effect Sizes
m_selection_congruent_complex %>%
  spread_draws(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months,
               b_education_years,
               b_bfi_extra, b_bfi_neuro, b_bfi_agree, b_bfi_consc, b_bfi_open, 
               b_religiosity) %>%
  pivot_longer(cols = c(b_age,
               b_net_incomeeuro_500_1000, b_net_incomeeuro_1000_2000, 
               b_net_incomeeuro_2000_3000, b_net_incomeeuro_gt_3000, b_net_incomedont_tell,
               b_relationship_duration_factorPartnered_upto28months,
               b_relationship_duration_factorPartnered_upto52months,
               b_relationship_duration_factorPartnered_morethan52months,
               b_education_years,
               b_bfi_extra, b_bfi_neuro, b_bfi_agree, b_bfi_consc, b_bfi_open, 
               b_religiosity),
               names_to = "condition",
               values_to = "r_condition") %>%
  mutate(condition_mean = r_condition,
         group = ifelse(condition %contains% "b_relationship_duration_factor",
                        "Relationship Duration",
                        ifelse(condition %contains% "b_net_income",
                               "Income",
                               NA)),
         condition = ifelse(condition == "b_age", "Age",
                ifelse(condition == "b_net_incomeeuro_500_1000", "500-1000 Euro",
                ifelse(condition == "b_net_incomeeuro_1000_2000", "1000-2000 Euro",
                ifelse(condition == "b_net_incomeeuro_2000_3000", "2000-3000 Euro",
                ifelse(condition == "b_net_incomeeuro_gt_3000", ">3000 Euro",
                ifelse(condition == "b_net_incomedont_tell", "do not tell",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto12months",
                       "0-12 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto28months",
                       "13-28 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_upto52months",
                       "29-52 months",
                ifelse(condition == "b_relationship_duration_factorPartnered_morethan52months",
                       ">52 months",
                ifelse(condition == "b_education_years", "Years of Education",
                ifelse(condition == "b_bfi_extra", "Extraversion",
                ifelse(condition == "b_bfi_neuro", "Neuroticism",
                ifelse(condition == "b_bfi_agree", "Agreeableness",
                ifelse(condition == "b_bfi_consc", "Conscientiousness",
                ifelse(condition == "b_bfi_open", "Openness",
                ifelse(condition == "b_religiosity", "Religiosity",
                       condition))))))))))))))))),
         group = ifelse(is.na(group), condition, group),
         condition = factor(condition, levels = rev(c("Age",
                                        "500-1000 Euro", "1000-2000 Euro",
                                        "2000-3000 Euro", ">3000 Euro", "do not tell",
                                        "13-28 months", "29-52 months",
                                        ">52 months",
                                        "Years of Education",
                                        "Extraversion", "Neuroticism", "Agreeableness",
                                         "Conscientiousness","Openness","Religiosity"))),
         group = factor(group, levels = c("Age", "Income", "Relationship Duration",
                                          
                                          "Years of Education",
                                          "Extraversion", "Neuroticism", "Agreeableness",
                                         "Conscientiousness","Openness","Religiosity"))) %>%
  ggplot(aes(y = condition, x = condition_mean, color = group)) +
  stat_halfeye() +
  geom_vline(xintercept = 0, linetype = "dotted", size = 1) +
  apatheme +
  theme(legend.title = element_blank()) +
  labs(x = "Effect Size Estimates", y = "Predictors")

Comparison

compare_models = loo(m_selection_congruent_simple, m_selection_congruent_complex)

LooIC first model: 963.57

LooIC second model: 971.32

Model Comparisons: The difference between models is -3.87 compared to a standard error of 2.65

compare_models
## Output of model 'm_selection_congruent_simple':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -481.8 10.6
## p_loo        10.4  0.6
## looic       963.6 21.2
## ------
## Monte Carlo SE of elpd_loo is 0.0.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Output of model 'm_selection_congruent_complex':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -485.7 11.1
## p_loo        17.4  0.7
## looic       971.3 22.2
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Model comparisons:
##                               elpd_diff se_diff
## m_selection_congruent_simple   0.0       0.0   
## m_selection_congruent_complex -3.9       2.6

(In)congruent use of hormonal contraceptives including current contraceptive method

Simple Model

Model
m_selection_congruent_simple_includinghc = brm(congruent_contraception ~
                              (age + net_income + relationship_duration_factor) *
                                contraception_meeting_partner,
                            data = data,
                            family = bernoulli("probit"),
                            file = "m_selection_congruent_simple_includinghc")
Summary
summary(m_selection_congruent_simple_includinghc, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: congruent_contraception ~ (age + net_income + relationship_duration_factor) * as.factor(contraception_meeting_partner) 
##    Data: data (Number of observations: 774) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                                                                  Estimate
## Intercept                                                                                           -1.92
## age                                                                                                  0.12
## net_incomeeuro_500_1000                                                                              0.11
## net_incomeeuro_1000_2000                                                                            -0.05
## net_incomeeuro_2000_3000                                                                            -0.70
## net_incomeeuro_gt_3000                                                                              -0.76
## net_incomedont_tell                                                                                 -0.40
## relationship_duration_factorPartnered_upto28months                                                  -0.38
## relationship_duration_factorPartnered_upto52months                                                  -0.98
## relationship_duration_factorPartnered_morethan52months                                              -1.19
## as.factorcontraception_meeting_partneryes                                                            4.16
## age:as.factorcontraception_meeting_partneryes                                                       -0.16
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                   -0.42
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                  -0.12
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                   0.33
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                     0.69
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                        0.11
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes        -0.09
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes         0.02
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes     0.43
##                                                                                                  Est.Error
## Intercept                                                                                             0.47
## age                                                                                                   0.02
## net_incomeeuro_500_1000                                                                               0.18
## net_incomeeuro_1000_2000                                                                              0.26
## net_incomeeuro_2000_3000                                                                              0.36
## net_incomeeuro_gt_3000                                                                                0.52
## net_incomedont_tell                                                                                   0.44
## relationship_duration_factorPartnered_upto28months                                                    0.19
## relationship_duration_factorPartnered_upto52months                                                    0.19
## relationship_duration_factorPartnered_morethan52months                                                0.21
## as.factorcontraception_meeting_partneryes                                                             0.63
## age:as.factorcontraception_meeting_partneryes                                                         0.03
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                     0.26
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                    0.34
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                    0.48
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                      0.75
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                         0.65
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes          0.29
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes          0.28
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes      0.30
##                                                                                                  l-90% CI
## Intercept                                                                                           -2.70
## age                                                                                                  0.09
## net_incomeeuro_500_1000                                                                             -0.19
## net_incomeeuro_1000_2000                                                                            -0.47
## net_incomeeuro_2000_3000                                                                            -1.28
## net_incomeeuro_gt_3000                                                                              -1.60
## net_incomedont_tell                                                                                 -1.12
## relationship_duration_factorPartnered_upto28months                                                  -0.70
## relationship_duration_factorPartnered_upto52months                                                  -1.28
## relationship_duration_factorPartnered_morethan52months                                              -1.54
## as.factorcontraception_meeting_partneryes                                                            3.17
## age:as.factorcontraception_meeting_partneryes                                                       -0.20
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                   -0.85
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                  -0.66
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                  -0.45
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                    -0.54
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                       -0.94
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes        -0.57
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes        -0.46
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes    -0.08
##                                                                                                  u-90% CI
## Intercept                                                                                           -1.15
## age                                                                                                  0.15
## net_incomeeuro_500_1000                                                                              0.42
## net_incomeeuro_1000_2000                                                                             0.39
## net_incomeeuro_2000_3000                                                                            -0.11
## net_incomeeuro_gt_3000                                                                               0.12
## net_incomedont_tell                                                                                  0.33
## relationship_duration_factorPartnered_upto28months                                                  -0.08
## relationship_duration_factorPartnered_upto52months                                                  -0.67
## relationship_duration_factorPartnered_morethan52months                                              -0.86
## as.factorcontraception_meeting_partneryes                                                            5.20
## age:as.factorcontraception_meeting_partneryes                                                       -0.12
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                   -0.00
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                   0.45
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                   1.13
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                     1.92
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                        1.17
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes         0.38
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes         0.48
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes     0.92
##                                                                                                  Rhat
## Intercept                                                                                        1.00
## age                                                                                              1.00
## net_incomeeuro_500_1000                                                                          1.00
## net_incomeeuro_1000_2000                                                                         1.00
## net_incomeeuro_2000_3000                                                                         1.00
## net_incomeeuro_gt_3000                                                                           1.00
## net_incomedont_tell                                                                              1.00
## relationship_duration_factorPartnered_upto28months                                               1.00
## relationship_duration_factorPartnered_upto52months                                               1.00
## relationship_duration_factorPartnered_morethan52months                                           1.00
## as.factorcontraception_meeting_partneryes                                                        1.00
## age:as.factorcontraception_meeting_partneryes                                                    1.00
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                1.00
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                               1.00
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                               1.00
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                 1.00
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                    1.00
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes     1.00
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes     1.00
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes 1.00
##                                                                                                  Bulk_ESS
## Intercept                                                                                            2608
## age                                                                                                  1983
## net_incomeeuro_500_1000                                                                              1955
## net_incomeeuro_1000_2000                                                                             1789
## net_incomeeuro_2000_3000                                                                             2116
## net_incomeeuro_gt_3000                                                                               2516
## net_incomedont_tell                                                                                  2655
## relationship_duration_factorPartnered_upto28months                                                   2285
## relationship_duration_factorPartnered_upto52months                                                   2401
## relationship_duration_factorPartnered_morethan52months                                               2472
## as.factorcontraception_meeting_partneryes                                                            2226
## age:as.factorcontraception_meeting_partneryes                                                        2005
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                    1938
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                   1848
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                   2161
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                     2579
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                        2810
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes         2124
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes         2151
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes     2320
##                                                                                                  Tail_ESS
## Intercept                                                                                            2672
## age                                                                                                  2342
## net_incomeeuro_500_1000                                                                              2203
## net_incomeeuro_1000_2000                                                                             2414
## net_incomeeuro_2000_3000                                                                             2614
## net_incomeeuro_gt_3000                                                                               2695
## net_incomedont_tell                                                                                  2481
## relationship_duration_factorPartnered_upto28months                                                   2955
## relationship_duration_factorPartnered_upto52months                                                   3132
## relationship_duration_factorPartnered_morethan52months                                               2326
## as.factorcontraception_meeting_partneryes                                                            2474
## age:as.factorcontraception_meeting_partneryes                                                        2195
## net_incomeeuro_500_1000:as.factorcontraception_meeting_partneryes                                    2620
## net_incomeeuro_1000_2000:as.factorcontraception_meeting_partneryes                                   2259
## net_incomeeuro_2000_3000:as.factorcontraception_meeting_partneryes                                   2773
## net_incomeeuro_gt_3000:as.factorcontraception_meeting_partneryes                                     2964
## net_incomedont_tell:as.factorcontraception_meeting_partneryes                                        2816
## relationship_duration_factorPartnered_upto28months:as.factorcontraception_meeting_partneryes         2757
## relationship_duration_factorPartnered_upto52months:as.factorcontraception_meeting_partneryes         2965
## relationship_duration_factorPartnered_morethan52months:as.factorcontraception_meeting_partneryes     2566
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_congruent_simple_includinghc, ask = FALSE)

Forest Plot for Effect Sizes

Complex Model

Model
m_selection_congruent_complex_includinghc = brm(congruent_contraception  ~
                              (age + net_income + relationship_duration_factor +
                                 education_years +
                              bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open +
                              religiosity) *
                                contraception_meeting_partner,
                            data = data,
                            family = bernoulli("probit"),
                            inits = "0",
                            file = "m_selection_congruent_complex_includinghc")
Summary
summary(m_selection_congruent_complex_includinghc, conf.int = T, prob = 0.90)
##  Family: bernoulli 
##   Links: mu = probit 
## Formula: congruent_contraception ~ (age + net_income + relationship_duration_factor + education_years + bfi_extra + bfi_neuro + bfi_agree + bfi_consc + bfi_open + religiosity) * contraception_meeting_partner 
##    Data: data (Number of observations: 774) 
##   Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
##          total post-warmup draws = 4000
## 
## Population-Level Effects: 
##                                                                                         Estimate Est.Error
## Intercept                                                                                  -1.23      1.06
## age                                                                                         0.12      0.02
## net_incomeeuro_500_1000                                                                     0.13      0.18
## net_incomeeuro_1000_2000                                                                   -0.01      0.27
## net_incomeeuro_2000_3000                                                                   -0.71      0.37
## net_incomeeuro_gt_3000                                                                     -0.86      0.55
## net_incomedont_tell                                                                        -0.42      0.45
## relationship_duration_factorPartnered_upto28months                                         -0.39      0.20
## relationship_duration_factorPartnered_upto52months                                         -1.00      0.21
## relationship_duration_factorPartnered_morethan52months                                     -1.21      0.23
## education_years                                                                            -0.02      0.02
## bfi_extra                                                                                   0.04      0.10
## bfi_neuro                                                                                   0.00      0.11
## bfi_agree                                                                                  -0.30      0.13
## bfi_consc                                                                                  -0.09      0.12
## bfi_open                                                                                    0.17      0.13
## religiosity                                                                                 0.03      0.05
## contraception_meeting_partneryes                                                            1.79      1.45
## age:contraception_meeting_partneryes                                                       -0.16      0.03
## net_incomeeuro_500_1000:contraception_meeting_partneryes                                   -0.44      0.26
## net_incomeeuro_1000_2000:contraception_meeting_partneryes                                  -0.14      0.35
## net_incomeeuro_2000_3000:contraception_meeting_partneryes                                   0.45      0.50
## net_incomeeuro_gt_3000:contraception_meeting_partneryes                                     0.90      0.80
## net_incomedont_tell:contraception_meeting_partneryes                                        0.27      0.67
## relationship_duration_factorPartnered_upto28months:contraception_meeting_partneryes        -0.05      0.30
## relationship_duration_factorPartnered_upto52months:contraception_meeting_partneryes         0.00      0.31
## relationship_duration_factorPartnered_morethan52months:contraception_meeting_partneryes     0.36      0.33
## education_years:contraception_meeting_partneryes                                            0.03      0.03
## bfi_extra:contraception_meeting_partneryes                                                 -0.02      0.14
## bfi_neuro:contraception_meeting_partneryes                                                  0.16      0.16
## bfi_agree:contraception_meeting_partneryes                                                  0.52      0.18
## bfi_consc:contraception_meeting_partneryes                                                  0.38      0.16
## bfi_open:contraception_meeting_partneryes                                                  -0.44      0.17
## religiosity:contraception_meeting_partneryes                                               -0.03      0.08
##                                                                                         l-90% CI u-90% CI
## Intercept                                                                                  -3.00     0.50
## age                                                                                         0.09     0.16
## net_incomeeuro_500_1000                                                                    -0.17     0.43
## net_incomeeuro_1000_2000                                                                   -0.44     0.44
## net_incomeeuro_2000_3000                                                                   -1.33    -0.09
## net_incomeeuro_gt_3000                                                                     -1.74     0.04
## net_incomedont_tell                                                                        -1.15     0.33
## relationship_duration_factorPartnered_upto28months                                         -0.72    -0.05
## relationship_duration_factorPartnered_upto52months                                         -1.35    -0.67
## relationship_duration_factorPartnered_morethan52months                                     -1.58    -0.84
## education_years                                                                            -0.05     0.02
## bfi_extra                                                                                  -0.12     0.20
## bfi_neuro                                                                                  -0.18     0.17
## bfi_agree                                                                                  -0.52    -0.08
## bfi_consc                                                                                  -0.29     0.11
## bfi_open                                                                                   -0.03     0.39
## religiosity                                                                                -0.06     0.11
## contraception_meeting_partneryes                                                           -0.58     4.17
## age:contraception_meeting_partneryes                                                       -0.21    -0.12
## net_incomeeuro_500_1000:contraception_meeting_partneryes                                   -0.87    -0.01
## net_incomeeuro_1000_2000:contraception_meeting_partneryes                                  -0.70     0.43
## net_incomeeuro_2000_3000:contraception_meeting_partneryes                                  -0.36     1.27
## net_incomeeuro_gt_3000:contraception_meeting_partneryes                                    -0.43     2.19
## net_incomedont_tell:contraception_meeting_partneryes                                       -0.81     1.36
## relationship_duration_factorPartnered_upto28months:contraception_meeting_partneryes        -0.55     0.43
## relationship_duration_factorPartnered_upto52months:contraception_meeting_partneryes        -0.51     0.51
## relationship_duration_factorPartnered_morethan52months:contraception_meeting_partneryes    -0.17     0.89
## education_years:contraception_meeting_partneryes                                           -0.01     0.07
## bfi_extra:contraception_meeting_partneryes                                                 -0.25     0.21
## bfi_neuro:contraception_meeting_partneryes                                                 -0.09     0.42
## bfi_agree:contraception_meeting_partneryes                                                  0.23     0.81
## bfi_consc:contraception_meeting_partneryes                                                  0.12     0.65
## bfi_open:contraception_meeting_partneryes                                                  -0.71    -0.17
## religiosity:contraception_meeting_partneryes                                               -0.16     0.09
##                                                                                         Rhat Bulk_ESS
## Intercept                                                                               1.00     3298
## age                                                                                     1.00     2945
## net_incomeeuro_500_1000                                                                 1.00     3233
## net_incomeeuro_1000_2000                                                                1.00     2964
## net_incomeeuro_2000_3000                                                                1.00     2990
## net_incomeeuro_gt_3000                                                                  1.00     3884
## net_incomedont_tell                                                                     1.00     3740
## relationship_duration_factorPartnered_upto28months                                      1.00     3655
## relationship_duration_factorPartnered_upto52months                                      1.00     3199
## relationship_duration_factorPartnered_morethan52months                                  1.00     3183
## education_years                                                                         1.00     3151
## bfi_extra                                                                               1.00     3863
## bfi_neuro                                                                               1.00     3560
## bfi_agree                                                                               1.00     3814
## bfi_consc                                                                               1.00     4218
## bfi_open                                                                                1.00     3678
## religiosity                                                                             1.00     4245
## contraception_meeting_partneryes                                                        1.00     3048
## age:contraception_meeting_partneryes                                                    1.00     2707
## net_incomeeuro_500_1000:contraception_meeting_partneryes                                1.00     3141
## net_incomeeuro_1000_2000:contraception_meeting_partneryes                               1.00     2788
## net_incomeeuro_2000_3000:contraception_meeting_partneryes                               1.00     2897
## net_incomeeuro_gt_3000:contraception_meeting_partneryes                                 1.00     3869
## net_incomedont_tell:contraception_meeting_partneryes                                    1.00     3671
## relationship_duration_factorPartnered_upto28months:contraception_meeting_partneryes     1.00     3155
## relationship_duration_factorPartnered_upto52months:contraception_meeting_partneryes     1.00     2994
## relationship_duration_factorPartnered_morethan52months:contraception_meeting_partneryes 1.00     2902
## education_years:contraception_meeting_partneryes                                        1.00     3304
## bfi_extra:contraception_meeting_partneryes                                              1.00     3804
## bfi_neuro:contraception_meeting_partneryes                                              1.00     3377
## bfi_agree:contraception_meeting_partneryes                                              1.00     3708
## bfi_consc:contraception_meeting_partneryes                                              1.00     3987
## bfi_open:contraception_meeting_partneryes                                               1.00     3691
## religiosity:contraception_meeting_partneryes                                            1.00     4063
##                                                                                         Tail_ESS
## Intercept                                                                                   2892
## age                                                                                         2654
## net_incomeeuro_500_1000                                                                     2904
## net_incomeeuro_1000_2000                                                                    2656
## net_incomeeuro_2000_3000                                                                    2642
## net_incomeeuro_gt_3000                                                                      2798
## net_incomedont_tell                                                                         3000
## relationship_duration_factorPartnered_upto28months                                          2718
## relationship_duration_factorPartnered_upto52months                                          3061
## relationship_duration_factorPartnered_morethan52months                                      3070
## education_years                                                                             3123
## bfi_extra                                                                                   3092
## bfi_neuro                                                                                   2630
## bfi_agree                                                                                   3029
## bfi_consc                                                                                   3039
## bfi_open                                                                                    2958
## religiosity                                                                                 2874
## contraception_meeting_partneryes                                                            2879
## age:contraception_meeting_partneryes                                                        2960
## net_incomeeuro_500_1000:contraception_meeting_partneryes                                    3391
## net_incomeeuro_1000_2000:contraception_meeting_partneryes                                   3165
## net_incomeeuro_2000_3000:contraception_meeting_partneryes                                   2763
## net_incomeeuro_gt_3000:contraception_meeting_partneryes                                     2712
## net_incomedont_tell:contraception_meeting_partneryes                                        2948
## relationship_duration_factorPartnered_upto28months:contraception_meeting_partneryes         2774
## relationship_duration_factorPartnered_upto52months:contraception_meeting_partneryes         2822
## relationship_duration_factorPartnered_morethan52months:contraception_meeting_partneryes     3245
## education_years:contraception_meeting_partneryes                                            2994
## bfi_extra:contraception_meeting_partneryes                                                  3195
## bfi_neuro:contraception_meeting_partneryes                                                  3264
## bfi_agree:contraception_meeting_partneryes                                                  2764
## bfi_consc:contraception_meeting_partneryes                                                  2967
## bfi_open:contraception_meeting_partneryes                                                   2754
## religiosity:contraception_meeting_partneryes                                                3085
## 
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
Plots
conditional_effects(m_selection_congruent_complex_includinghc, ask = FALSE)

Forest Plot for Effect Sizes

Comparison

compare_models = loo(m_selection_congruent_simple_includinghc,
                     m_selection_congruent_complex_includinghc)

LooIC first model: 933.83

LooIC second model: 941.28

Model Comparisons: The difference between models is -3.73 compared to a standard error of 5.42

compare_models
## Output of model 'm_selection_congruent_simple_includinghc':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -466.9 12.7
## p_loo        22.4  1.7
## looic       933.8 25.4
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Output of model 'm_selection_congruent_complex_includinghc':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -470.6 13.9
## p_loo        37.9  2.1
## looic       941.3 27.8
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## Pareto k diagnostic values:
##                          Count Pct.    Min. n_eff
## (-Inf, 0.5]   (good)     771   99.6%   1268      
##  (0.5, 0.7]   (ok)         3    0.4%   1243      
##    (0.7, 1]   (bad)        0    0.0%   <NA>      
##    (1, Inf)   (very bad)   0    0.0%   <NA>      
## 
## All Pareto k estimates are ok (k < 0.7).
## See help('pareto-k-diagnostic') for details.
## 
## Model comparisons:
##                                           elpd_diff se_diff
## m_selection_congruent_simple_includinghc   0.0       0.0   
## m_selection_congruent_complex_includinghc -3.7       5.4
compare_models = loo(m_selection_congruent_simple,
                     m_selection_congruent_simple_includinghc)

LooIC first model: 963.57

LooIC second model: 933.83

Model Comparisons: The difference between models is -14.87 compared to a standard error of 7.54

compare_models
## Output of model 'm_selection_congruent_simple':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -481.8 10.6
## p_loo        10.4  0.6
## looic       963.6 21.2
## ------
## Monte Carlo SE of elpd_loo is 0.0.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Output of model 'm_selection_congruent_simple_includinghc':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -466.9 12.7
## p_loo        22.4  1.7
## looic       933.8 25.4
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Model comparisons:
##                                          elpd_diff se_diff
## m_selection_congruent_simple_includinghc   0.0       0.0  
## m_selection_congruent_simple             -14.9       7.5
compare_models = loo(m_selection_congruent_complex,
                     m_selection_congruent_complex_includinghc)

LooIC first model: 971.32

LooIC second model: 941.28

Model Comparisons: The difference between models is -15.02 compared to a standard error of 8.74

compare_models
## Output of model 'm_selection_congruent_complex':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -485.7 11.1
## p_loo        17.4  0.7
## looic       971.3 22.2
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## All Pareto k estimates are good (k < 0.5).
## See help('pareto-k-diagnostic') for details.
## 
## Output of model 'm_selection_congruent_complex_includinghc':
## 
## Computed from 4000 by 774 log-likelihood matrix
## 
##          Estimate   SE
## elpd_loo   -470.6 13.9
## p_loo        37.9  2.1
## looic       941.3 27.8
## ------
## Monte Carlo SE of elpd_loo is 0.1.
## 
## Pareto k diagnostic values:
##                          Count Pct.    Min. n_eff
## (-Inf, 0.5]   (good)     771   99.6%   1268      
##  (0.5, 0.7]   (ok)         3    0.4%   1243      
##    (0.7, 1]   (bad)        0    0.0%   <NA>      
##    (1, Inf)   (very bad)   0    0.0%   <NA>      
## 
## All Pareto k estimates are ok (k < 0.7).
## See help('pareto-k-diagnostic') for details.
## 
## Model comparisons:
##                                           elpd_diff se_diff
## m_selection_congruent_complex_includinghc   0.0       0.0  
## m_selection_congruent_complex             -15.0       8.7
LS0tDQp0aXRsZTogIkFuYWx5c2VzIFNlbGVjdGlvbiBFZmZlY3RzIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogJ2hpZGUnDQogICAgc2VsZl9jb250YWluZWQ6IGZhbHNlDQotLS0NCiAgDQogIA0KIyMgRGF0YSANCmBgYHtyIHJlc3VsdHM9J2hpZGUnLG1lc3NhZ2U9Rix3YXJuaW5nPUZ9DQpzb3VyY2UoIjBfaGVscGVycy5SIikNCg0KbG9hZCgiZGF0YS9jbGVhbmVkX3NlbGVjdGVkX3dyYW5nbGVkLnJkYXRhIikNCmBgYA0KDQoNCiMjIFNlbGVjdGlvbiBNb2RlbCB7LnRhYnNldH0NCiMjIyBIb3Jtb25hbCBDb250cmFjZXB0aW9uIHsudGFic2V0fQ0KIyMjIyBTaW1wbGUgTW9kZWwgey50YWJzZXR9DQojIyMjIyBNb2RlbA0KYGBge3J9DQptX3NlbGVjdGlvbl9oY19zaW1wbGUgPSBicm0oY29udHJhY2VwdGlvbl9ob3Jtb25hbCB+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgKyBuZXRfaW5jb21lICsgcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiZXJub3VsbGkoInByb2JpdCIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSAibV9zZWxlY3Rpb25faGNfc2ltcGxlIikNCmBgYA0KDQojIyMjIyBTdW1tYXJ5DQpgYGB7cn0NCnN1bW1hcnkobV9zZWxlY3Rpb25faGNfc2ltcGxlLCBjb25mLmludCA9IFQsIHByb2IgPSAwLjkwKQ0KYGBgDQoNCiMjIyMjIFBsb3RzDQpgYGB7ciB3YXJuaW5nID0gRkFMU0V9DQpjb25kaXRpb25hbF9lZmZlY3RzKG1fc2VsZWN0aW9uX2hjX3NpbXBsZSwgYXNrID0gRkFMU0UpDQpgYGANCg0KIyMjIyMgRm9yZXN0IFBsb3QgZm9yIEVmZmVjdCBTaXplcyB7LmFjdGl2ZX0NCmBgYHtyfQ0KbV9zZWxlY3Rpb25faGNfc2ltcGxlICU+JQ0KICBzcHJlYWRfZHJhd3MoYl9hZ2UsDQogICAgICAgICAgICAgICBiX25ldF9pbmNvbWVldXJvXzUwMF8xMDAwLCBiX25ldF9pbmNvbWVldXJvXzEwMDBfMjAwMCwgDQogICAgICAgICAgICAgICBiX25ldF9pbmNvbWVldXJvXzIwMDBfMzAwMCwgYl9uZXRfaW5jb21lZXVyb19ndF8zMDAwLCBiX25ldF9pbmNvbWVkb250X3RlbGwsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzEybW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG8yOG1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvNTJtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfbW9yZXRoYW41Mm1vbnRocykgJT4lDQogIHBpdm90X2xvbmdlcihjb2xzID0gYyhiX2FnZSwNCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAsIGJfbmV0X2luY29tZWV1cm9fMTAwMF8yMDAwLCANCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwLCBiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAsIGJfbmV0X2luY29tZWRvbnRfdGVsbCwNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMTJtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzI4bW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG81Mm1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF9tb3JldGhhbjUybW9udGhzKSwNCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gImNvbmRpdGlvbiIsDQogICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAicl9jb25kaXRpb24iKSAlPiUNCiAgbXV0YXRlKGNvbmRpdGlvbl9tZWFuID0gcl9jb25kaXRpb24sDQogICAgICAgICBncm91cCA9IGlmZWxzZShjb25kaXRpb24gJWNvbnRhaW5zJSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJSZWxhdGlvbnNoaXAgRHVyYXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiAlY29udGFpbnMlICJiX25ldF9pbmNvbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BKSksDQogICAgICAgICBjb25kaXRpb24gPSBpZmVsc2UoY29uZGl0aW9uID09ICJiX2FnZSIsICJBZ2UiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAiLCAiNTAwLTEwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb18xMDAwXzIwMDAiLCAiMTAwMC0yMDAwIEV1cm8iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwIiwgIjIwMDAtMzAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAiLCAiPjMwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZG9udF90ZWxsIiwgImRvIG5vdCB0ZWxsIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzEybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjAtMTIgbW9udGhzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzI4bW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjEzLTI4IG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG81Mm1vbnRocyIsDQogICAgICAgICAgICAgICAgICAgICAgICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF9tb3JldGhhbjUybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIj41MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24pKSkpKSkpKSkpLA0KICAgICAgICAgZ3JvdXAgPSBpZmVsc2UoaXMubmEoZ3JvdXApLCBjb25kaXRpb24sIGdyb3VwKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGZhY3Rvcihjb25kaXRpb24sIGxldmVscyA9IHJldihjKCJBZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1MDAtMTAwMCBFdXJvIiwgIjEwMDAtMjAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwMC0zMDAwIEV1cm8iLCAiPjMwMDAgRXVybyIsICJkbyBub3QgdGVsbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAtMTIgbW9udGhzIiwgIjEzLTI4IG1vbnRocyIsICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NTIgbW9udGhzIikpKSkgJT4lDQogIGdncGxvdChhZXMoeSA9IGNvbmRpdGlvbiwgeCA9IGNvbmRpdGlvbl9tZWFuLCBjb2xvciA9IGdyb3VwKSkgKw0KICBzdGF0X2hhbGZleWUoKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRvdHRlZCIsIHNpemUgPSAxKSArDQogIGFwYXRoZW1lICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnMoeCA9ICJFZmZlY3QgU2l6ZSBFc3RpbWF0ZXMiLCB5ID0gIlByZWRpY3RvcnMiKQ0KYGBgDQoNCiMjIyMgQ29tcGxleCBNb2RlbCB7LnRhYnNldH0NCiMjIyMjIE1vZGVsDQpgYGB7cn0NCm1fc2VsZWN0aW9uX2hjX2NvbXBsZXggPSBicm0oY29udHJhY2VwdGlvbl9ob3Jtb25hbCB+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgKyBuZXRfaW5jb21lICsgcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvciArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZHVjYXRpb25feWVhcnMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZpX2V4dHJhICsgYmZpX25ldXJvICsgYmZpX2FncmVlICsgYmZpX2NvbnNjICsgYmZpX29wZW4gKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsaWdpb3NpdHksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmVybm91bGxpKCJwcm9iaXQiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gIm1fc2VsZWN0aW9uX2hjX2NvbXBsZXgiKQ0KYGBgDQoNCiMjIyMjIFN1bW1hcnkNCmBgYHtyfQ0Kc3VtbWFyeShtX3NlbGVjdGlvbl9oY19jb21wbGV4LCBjb25mLmludCA9IFQsIHByb2IgPSAwLjkwKQ0KYGBgDQoNCiMjIyMjIFBsb3RzDQpgYGB7ciB3YXJuaW5nID0gRkFMU0V9DQpjb25kaXRpb25hbF9lZmZlY3RzKG1fc2VsZWN0aW9uX2hjX2NvbXBsZXgsIGFzayA9IEZBTFNFKQ0KYGBgDQoNCiMjIyMjIEZvcmVzdCBQbG90IGZvciBFZmZlY3QgU2l6ZXMgey5hY3RpdmV9DQpgYGB7cn0NCm1fc2VsZWN0aW9uX2hjX2NvbXBsZXggJT4lDQogIHNwcmVhZF9kcmF3cyhiX2FnZSwNCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAsIGJfbmV0X2luY29tZWV1cm9fMTAwMF8yMDAwLCANCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwLCBiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAsIGJfbmV0X2luY29tZWRvbnRfdGVsbCwNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMTJtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzI4bW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG81Mm1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF9tb3JldGhhbjUybW9udGhzLA0KICAgICAgICAgICAgICAgYl9lZHVjYXRpb25feWVhcnMsDQogICAgICAgICAgICAgICBiX2JmaV9leHRyYSwgYl9iZmlfbmV1cm8sIGJfYmZpX2FncmVlLCBiX2JmaV9jb25zYywgYl9iZmlfb3BlbiwgDQogICAgICAgICAgICAgICBiX3JlbGlnaW9zaXR5KSAlPiUNCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjKGJfYWdlLA0KICAgICAgICAgICAgICAgYl9uZXRfaW5jb21lZXVyb181MDBfMTAwMCwgYl9uZXRfaW5jb21lZXVyb18xMDAwXzIwMDAsIA0KICAgICAgICAgICAgICAgYl9uZXRfaW5jb21lZXVyb18yMDAwXzMwMDAsIGJfbmV0X2luY29tZWV1cm9fZ3RfMzAwMCwgYl9uZXRfaW5jb21lZG9udF90ZWxsLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG8xMm1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMjhtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzUybW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX21vcmV0aGFuNTJtb250aHMsDQogICAgICAgICAgICAgICBiX2VkdWNhdGlvbl95ZWFycywNCiAgICAgICAgICAgICAgIGJfYmZpX2V4dHJhLCBiX2JmaV9uZXVybywgYl9iZmlfYWdyZWUsIGJfYmZpX2NvbnNjLCBiX2JmaV9vcGVuLCANCiAgICAgICAgICAgICAgIGJfcmVsaWdpb3NpdHkpLA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiY29uZGl0aW9uIiwNCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJyX2NvbmRpdGlvbiIpICU+JQ0KICBtdXRhdGUoY29uZGl0aW9uX21lYW4gPSByX2NvbmRpdGlvbiwNCiAgICAgICAgIGdyb3VwID0gaWZlbHNlKGNvbmRpdGlvbiAlY29udGFpbnMlICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3IiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIlJlbGF0aW9uc2hpcCBEdXJhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uICVjb250YWlucyUgImJfbmV0X2luY29tZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29tZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEpKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGlmZWxzZShjb25kaXRpb24gPT0gImJfYWdlIiwgIkFnZSIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb181MDBfMTAwMCIsICI1MDAtMTAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVldXJvXzEwMDBfMjAwMCIsICIxMDAwLTIwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb18yMDAwXzMwMDAiLCAiMjAwMC0zMDAwIEV1cm8iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fZ3RfMzAwMCIsICI+MzAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVkb250X3RlbGwiLCAiZG8gbm90IHRlbGwiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMTJtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiMC0xMiBtb250aHMiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMjhtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiMTMtMjggbW9udGhzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzUybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjI5LTUyIG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX21vcmV0aGFuNTJtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiPjUyIG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9lZHVjYXRpb25feWVhcnMiLCAiWWVhcnMgb2YgRWR1Y2F0aW9uIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9leHRyYSIsICJFeHRyYXZlcnNpb24iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfYmZpX25ldXJvIiwgIk5ldXJvdGljaXNtIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9hZ3JlZSIsICJBZ3JlZWFibGVuZXNzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9jb25zYyIsICJDb25zY2llbnRpb3VzbmVzcyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9iZmlfb3BlbiIsICJPcGVubmVzcyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxpZ2lvc2l0eSIsICJSZWxpZ2lvc2l0eSIsDQogICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbikpKSkpKSkpKSkpKSkpKSkpLA0KICAgICAgICAgZ3JvdXAgPSBpZmVsc2UoaXMubmEoZ3JvdXApLCBjb25kaXRpb24sIGdyb3VwKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGZhY3Rvcihjb25kaXRpb24sIGxldmVscyA9IHJldihjKCJBZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1MDAtMTAwMCBFdXJvIiwgIjEwMDAtMjAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwMC0zMDAwIEV1cm8iLCAiPjMwMDAgRXVybyIsICJkbyBub3QgdGVsbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAtMTIgbW9udGhzIiwgIjEzLTI4IG1vbnRocyIsICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NTIgbW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVhcnMgb2YgRWR1Y2F0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXh0cmF2ZXJzaW9uIiwgIk5ldXJvdGljaXNtIiwgIkFncmVlYWJsZW5lc3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29uc2NpZW50aW91c25lc3MiLCJPcGVubmVzcyIsIlJlbGlnaW9zaXR5IikpKSwNCiAgICAgICAgIGdyb3VwID0gZmFjdG9yKGdyb3VwLCBsZXZlbHMgPSBjKCJBZ2UiLCAiSW5jb21lIiwgIlJlbGF0aW9uc2hpcCBEdXJhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZWFycyBvZiBFZHVjYXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4dHJhdmVyc2lvbiIsICJOZXVyb3RpY2lzbSIsICJBZ3JlZWFibGVuZXNzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnNjaWVudGlvdXNuZXNzIiwiT3Blbm5lc3MiLCJSZWxpZ2lvc2l0eSIpKSkgJT4lDQogIGdncGxvdChhZXMoeSA9IGNvbmRpdGlvbiwgeCA9IGNvbmRpdGlvbl9tZWFuLCBjb2xvciA9IGdyb3VwKSkgKw0KICBzdGF0X2hhbGZleWUoKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRvdHRlZCIsIHNpemUgPSAxKSArDQogIGFwYXRoZW1lICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnMoeCA9ICJFZmZlY3QgU2l6ZSBFc3RpbWF0ZXMiLCB5ID0gIlByZWRpY3RvcnMiKQ0KYGBgDQoNCg0KIyMjIyBDb21wYXJpc29uIHsuYWN0aXZlfQ0KYGBge3J9DQpjb21wYXJlX21vZGVscyA9IGxvbyhtX3NlbGVjdGlvbl9oY19zaW1wbGUsIG1fc2VsZWN0aW9uX2hjX2NvbXBsZXgpDQpgYGANCkxvb0lDIGZpcnN0IG1vZGVsOiBgciByb3VuZChjb21wYXJlX21vZGVscyRsb29zJG1fc2VsZWN0aW9uX2hjX3NpbXBsZSRlc3RpbWF0ZXNbMywxXSwgMilgDQoNCkxvb0lDIHNlY29uZCBtb2RlbDogYHIgcm91bmQoY29tcGFyZV9tb2RlbHMkbG9vcyRtX3NlbGVjdGlvbl9oY19jb21wbGV4JGVzdGltYXRlc1szLDFdLCAyKWANCg0KTW9kZWwgQ29tcGFyaXNvbnM6IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9kZWxzIGlzIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMV0sIDIpYCBjb21wYXJlZCB0byBhIHN0YW5kYXJkIGVycm9yIG9mIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMl0sIDIpYA0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzDQpgYGANCg0KIyMjIChJbiljb25ncnVlbnQgdXNlIG9mIGhvcm1vbmFsIGNvbnRyYWNlcHRpdmVzIHsudGFic2V0fQ0KIyMjIyBTaW1wbGUgTW9kZWwgey50YWJzZXR9DQojIyMjIyBNb2RlbA0KYGBge3J9DQptX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlID0gYnJtKGNvbmdydWVudF9jb250cmFjZXB0aW9uIH4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZSArIG5ldF9pbmNvbWUgKyByZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbWlseSA9IGJlcm5vdWxsaSgicHJvYml0IiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSA9ICJtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlIikNCmBgYA0KDQojIyMjIyBTdW1tYXJ5DQpgYGB7cn0NCnN1bW1hcnkobV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZSwgY29uZi5pbnQgPSBULCBwcm9iID0gMC45MCkNCmBgYA0KDQojIyMjIyBQbG90cw0KYGBge3Igd2FybmluZyA9IEZBTFNFfQ0KY29uZGl0aW9uYWxfZWZmZWN0cyhtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlLCBhc2sgPSBGQUxTRSkNCg0KYGBgDQoNCiMjIyMjIEZvcmVzdCBQbG90IGZvciBFZmZlY3QgU2l6ZXMgey5hY3RpdmV9DQpgYGB7cn0NCm1fc2VsZWN0aW9uX2NvbmdydWVudF9zaW1wbGUgJT4lDQogIHNwcmVhZF9kcmF3cyhiX2FnZSwNCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAsIGJfbmV0X2luY29tZWV1cm9fMTAwMF8yMDAwLCANCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwLCBiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAsIGJfbmV0X2luY29tZWRvbnRfdGVsbCwNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMjhtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzUybW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX21vcmV0aGFuNTJtb250aHMpICU+JQ0KICBwaXZvdF9sb25nZXIoY29scyA9IGMoYl9hZ2UsDQogICAgICAgICAgICAgICBiX25ldF9pbmNvbWVldXJvXzUwMF8xMDAwLCBiX25ldF9pbmNvbWVldXJvXzEwMDBfMjAwMCwgDQogICAgICAgICAgICAgICBiX25ldF9pbmNvbWVldXJvXzIwMDBfMzAwMCwgYl9uZXRfaW5jb21lZXVyb19ndF8zMDAwLCBiX25ldF9pbmNvbWVkb250X3RlbGwsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzI4bW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG81Mm1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF9tb3JldGhhbjUybW9udGhzKSwNCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gImNvbmRpdGlvbiIsDQogICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAicl9jb25kaXRpb24iKSAlPiUNCiAgbXV0YXRlKGNvbmRpdGlvbl9tZWFuID0gcl9jb25kaXRpb24sDQogICAgICAgICBncm91cCA9IGlmZWxzZShjb25kaXRpb24gJWNvbnRhaW5zJSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJSZWxhdGlvbnNoaXAgRHVyYXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiAlY29udGFpbnMlICJiX25ldF9pbmNvbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvbWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BKSksDQogICAgICAgICBjb25kaXRpb24gPSBpZmVsc2UoY29uZGl0aW9uID09ICJiX2FnZSIsICJBZ2UiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAiLCAiNTAwLTEwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb18xMDAwXzIwMDAiLCAiMTAwMC0yMDAwIEV1cm8iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwIiwgIjIwMDAtMzAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAiLCAiPjMwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZG9udF90ZWxsIiwgImRvIG5vdCB0ZWxsIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzEybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjAtMTIgbW9udGhzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzI4bW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjEzLTI4IG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG81Mm1vbnRocyIsDQogICAgICAgICAgICAgICAgICAgICAgICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF9tb3JldGhhbjUybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIj41MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24pKSkpKSkpKSkpLA0KICAgICAgICAgZ3JvdXAgPSBpZmVsc2UoaXMubmEoZ3JvdXApLCBjb25kaXRpb24sIGdyb3VwKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGZhY3Rvcihjb25kaXRpb24sIGxldmVscyA9IHJldihjKCJBZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1MDAtMTAwMCBFdXJvIiwgIjEwMDAtMjAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwMC0zMDAwIEV1cm8iLCAiPjMwMDAgRXVybyIsICJkbyBub3QgdGVsbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEzLTI4IG1vbnRocyIsICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NTIgbW9udGhzIikpKSkgJT4lDQogIGdncGxvdChhZXMoeSA9IGNvbmRpdGlvbiwgeCA9IGNvbmRpdGlvbl9tZWFuLCBjb2xvciA9IGdyb3VwKSkgKw0KICBzdGF0X2hhbGZleWUoKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRvdHRlZCIsIHNpemUgPSAxKSArDQogIGFwYXRoZW1lICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnMoeCA9ICJFZmZlY3QgU2l6ZSBFc3RpbWF0ZXMiLCB5ID0gIlByZWRpY3RvcnMiKQ0KDQpgYGANCg0KDQojIyMjIENvbXBsZXggTW9kZWwgey50YWJzZXR9DQojIyMjIyBNb2RlbA0KYGBge3J9DQptX3NlbGVjdGlvbl9jb25ncnVlbnRfY29tcGxleCA9IGJybShjb25ncnVlbnRfY29udHJhY2VwdGlvbiB+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgKyBuZXRfaW5jb21lICsgcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvciArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZHVjYXRpb25feWVhcnMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZpX2V4dHJhICsgYmZpX25ldXJvICsgYmZpX2FncmVlICsgYmZpX2NvbnNjICsgYmZpX29wZW4gKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsaWdpb3NpdHksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmVybm91bGxpKCJwcm9iaXQiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gIm1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4IikNCmBgYA0KDQojIyMjIyBTdW1tYXJ5DQpgYGB7cn0NCnN1bW1hcnkobV9zZWxlY3Rpb25fY29uZ3J1ZW50X2NvbXBsZXgsIGNvbmYuaW50ID0gVCwgcHJvYiA9IDAuOTApDQoNCg0KYGBgDQoNCiMjIyMjIFBsb3RzDQpgYGB7ciB3YXJuaW5nID0gRkFMU0V9DQpjb25kaXRpb25hbF9lZmZlY3RzKG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4LCBhc2sgPSBGQUxTRSkNCmBgYA0KDQojIyMjIyBGb3Jlc3QgUGxvdCBmb3IgRWZmZWN0IFNpemVzIHsuYWN0aXZlfQ0KYGBge3J9DQptX3NlbGVjdGlvbl9jb25ncnVlbnRfY29tcGxleCAlPiUNCiAgc3ByZWFkX2RyYXdzKGJfYWdlLA0KICAgICAgICAgICAgICAgYl9uZXRfaW5jb21lZXVyb181MDBfMTAwMCwgYl9uZXRfaW5jb21lZXVyb18xMDAwXzIwMDAsIA0KICAgICAgICAgICAgICAgYl9uZXRfaW5jb21lZXVyb18yMDAwXzMwMDAsIGJfbmV0X2luY29tZWV1cm9fZ3RfMzAwMCwgYl9uZXRfaW5jb21lZG9udF90ZWxsLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX3VwdG8yOG1vbnRocywNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvNTJtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfbW9yZXRoYW41Mm1vbnRocywNCiAgICAgICAgICAgICAgIGJfZWR1Y2F0aW9uX3llYXJzLA0KICAgICAgICAgICAgICAgYl9iZmlfZXh0cmEsIGJfYmZpX25ldXJvLCBiX2JmaV9hZ3JlZSwgYl9iZmlfY29uc2MsIGJfYmZpX29wZW4sIA0KICAgICAgICAgICAgICAgYl9yZWxpZ2lvc2l0eSkgJT4lDQogIHBpdm90X2xvbmdlcihjb2xzID0gYyhiX2FnZSwNCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fNTAwXzEwMDAsIGJfbmV0X2luY29tZWV1cm9fMTAwMF8yMDAwLCANCiAgICAgICAgICAgICAgIGJfbmV0X2luY29tZWV1cm9fMjAwMF8zMDAwLCBiX25ldF9pbmNvbWVldXJvX2d0XzMwMDAsIGJfbmV0X2luY29tZWRvbnRfdGVsbCwNCiAgICAgICAgICAgICAgIGJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMjhtb250aHMsDQogICAgICAgICAgICAgICBiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzUybW9udGhzLA0KICAgICAgICAgICAgICAgYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX21vcmV0aGFuNTJtb250aHMsDQogICAgICAgICAgICAgICBiX2VkdWNhdGlvbl95ZWFycywNCiAgICAgICAgICAgICAgIGJfYmZpX2V4dHJhLCBiX2JmaV9uZXVybywgYl9iZmlfYWdyZWUsIGJfYmZpX2NvbnNjLCBiX2JmaV9vcGVuLCANCiAgICAgICAgICAgICAgIGJfcmVsaWdpb3NpdHkpLA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiY29uZGl0aW9uIiwNCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJyX2NvbmRpdGlvbiIpICU+JQ0KICBtdXRhdGUoY29uZGl0aW9uX21lYW4gPSByX2NvbmRpdGlvbiwNCiAgICAgICAgIGdyb3VwID0gaWZlbHNlKGNvbmRpdGlvbiAlY29udGFpbnMlICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3IiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIlJlbGF0aW9uc2hpcCBEdXJhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uICVjb250YWlucyUgImJfbmV0X2luY29tZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29tZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEpKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGlmZWxzZShjb25kaXRpb24gPT0gImJfYWdlIiwgIkFnZSIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb181MDBfMTAwMCIsICI1MDAtMTAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVldXJvXzEwMDBfMjAwMCIsICIxMDAwLTIwMDAgRXVybyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9uZXRfaW5jb21lZXVyb18yMDAwXzMwMDAiLCAiMjAwMC0zMDAwIEV1cm8iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfbmV0X2luY29tZWV1cm9fZ3RfMzAwMCIsICI+MzAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX25ldF9pbmNvbWVkb250X3RlbGwiLCAiZG8gbm90IHRlbGwiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMTJtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiMC0xMiBtb250aHMiLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvclBhcnRuZXJlZF91cHRvMjhtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiMTMtMjggbW9udGhzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX3JlbGF0aW9uc2hpcF9kdXJhdGlvbl9mYWN0b3JQYXJ0bmVyZWRfdXB0bzUybW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIjI5LTUyIG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxhdGlvbnNoaXBfZHVyYXRpb25fZmFjdG9yUGFydG5lcmVkX21vcmV0aGFuNTJtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAiPjUyIG1vbnRocyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9lZHVjYXRpb25feWVhcnMiLCAiWWVhcnMgb2YgRWR1Y2F0aW9uIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9leHRyYSIsICJFeHRyYXZlcnNpb24iLA0KICAgICAgICAgICAgICAgIGlmZWxzZShjb25kaXRpb24gPT0gImJfYmZpX25ldXJvIiwgIk5ldXJvdGljaXNtIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9hZ3JlZSIsICJBZ3JlZWFibGVuZXNzIiwNCiAgICAgICAgICAgICAgICBpZmVsc2UoY29uZGl0aW9uID09ICJiX2JmaV9jb25zYyIsICJDb25zY2llbnRpb3VzbmVzcyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9iZmlfb3BlbiIsICJPcGVubmVzcyIsDQogICAgICAgICAgICAgICAgaWZlbHNlKGNvbmRpdGlvbiA9PSAiYl9yZWxpZ2lvc2l0eSIsICJSZWxpZ2lvc2l0eSIsDQogICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbikpKSkpKSkpKSkpKSkpKSkpLA0KICAgICAgICAgZ3JvdXAgPSBpZmVsc2UoaXMubmEoZ3JvdXApLCBjb25kaXRpb24sIGdyb3VwKSwNCiAgICAgICAgIGNvbmRpdGlvbiA9IGZhY3Rvcihjb25kaXRpb24sIGxldmVscyA9IHJldihjKCJBZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1MDAtMTAwMCBFdXJvIiwgIjEwMDAtMjAwMCBFdXJvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwMC0zMDAwIEV1cm8iLCAiPjMwMDAgRXVybyIsICJkbyBub3QgdGVsbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEzLTI4IG1vbnRocyIsICIyOS01MiBtb250aHMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NTIgbW9udGhzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVhcnMgb2YgRWR1Y2F0aW9uIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXh0cmF2ZXJzaW9uIiwgIk5ldXJvdGljaXNtIiwgIkFncmVlYWJsZW5lc3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29uc2NpZW50aW91c25lc3MiLCJPcGVubmVzcyIsIlJlbGlnaW9zaXR5IikpKSwNCiAgICAgICAgIGdyb3VwID0gZmFjdG9yKGdyb3VwLCBsZXZlbHMgPSBjKCJBZ2UiLCAiSW5jb21lIiwgIlJlbGF0aW9uc2hpcCBEdXJhdGlvbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZWFycyBvZiBFZHVjYXRpb24iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4dHJhdmVyc2lvbiIsICJOZXVyb3RpY2lzbSIsICJBZ3JlZWFibGVuZXNzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnNjaWVudGlvdXNuZXNzIiwiT3Blbm5lc3MiLCJSZWxpZ2lvc2l0eSIpKSkgJT4lDQogIGdncGxvdChhZXMoeSA9IGNvbmRpdGlvbiwgeCA9IGNvbmRpdGlvbl9tZWFuLCBjb2xvciA9IGdyb3VwKSkgKw0KICBzdGF0X2hhbGZleWUoKSArDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRvdHRlZCIsIHNpemUgPSAxKSArDQogIGFwYXRoZW1lICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnMoeCA9ICJFZmZlY3QgU2l6ZSBFc3RpbWF0ZXMiLCB5ID0gIlByZWRpY3RvcnMiKQ0KDQpgYGANCg0KDQojIyMjIENvbXBhcmlzb24gey5hY3RpdmV9DQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzID0gbG9vKG1fc2VsZWN0aW9uX2NvbmdydWVudF9zaW1wbGUsIG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4KQ0KYGBgDQpMb29JQyBmaXJzdCBtb2RlbDogYHIgcm91bmQoY29tcGFyZV9tb2RlbHMkbG9vcyRtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlJGVzdGltYXRlc1szLDFdLCAyKWANCg0KTG9vSUMgc2Vjb25kIG1vZGVsOiBgciByb3VuZChjb21wYXJlX21vZGVscyRsb29zJG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4JGVzdGltYXRlc1szLDFdLCAyKWANCg0KTW9kZWwgQ29tcGFyaXNvbnM6IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9kZWxzIGlzIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMV0sIDIpYCBjb21wYXJlZCB0byBhIHN0YW5kYXJkIGVycm9yIG9mIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMl0sIDIpYA0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzDQpgYGANCg0KIyMjIChJbiljb25ncnVlbnQgdXNlIG9mIGhvcm1vbmFsIGNvbnRyYWNlcHRpdmVzIGluY2x1ZGluZyBjdXJyZW50IGNvbnRyYWNlcHRpdmUgbWV0aG9kIHsudGFic2V0fQ0KIyMjIyBTaW1wbGUgTW9kZWwgey50YWJzZXR9DQojIyMjIyBNb2RlbA0KYGBge3J9DQptX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlX2luY2x1ZGluZ2hjID0gYnJtKGNvbmdydWVudF9jb250cmFjZXB0aW9uIH4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhZ2UgKyBuZXRfaW5jb21lICsgcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvcikgKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjZXB0aW9uX21lZXRpbmdfcGFydG5lciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiZXJub3VsbGkoInByb2JpdCIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSAibV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZV9pbmNsdWRpbmdoYyIpDQpgYGANCg0KIyMjIyMgU3VtbWFyeQ0KYGBge3J9DQpzdW1tYXJ5KG1fc2VsZWN0aW9uX2NvbmdydWVudF9zaW1wbGVfaW5jbHVkaW5naGMsIGNvbmYuaW50ID0gVCwgcHJvYiA9IDAuOTApDQpgYGANCg0KIyMjIyMgUGxvdHMNCmBgYHtyIHdhcm5pbmcgPSBGQUxTRX0NCmNvbmRpdGlvbmFsX2VmZmVjdHMobV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZV9pbmNsdWRpbmdoYywgYXNrID0gRkFMU0UpDQpgYGANCg0KIyMjIyMgRm9yZXN0IFBsb3QgZm9yIEVmZmVjdCBTaXplcyB7LmFjdGl2ZX0NCmBgYHtyfQ0KYGBgDQoNCg0KIyMjIyBDb21wbGV4IE1vZGVsIHsudGFic2V0fQ0KIyMjIyMgTW9kZWwNCmBgYHtyfQ0KbV9zZWxlY3Rpb25fY29uZ3J1ZW50X2NvbXBsZXhfaW5jbHVkaW5naGMgPSBicm0oY29uZ3J1ZW50X2NvbnRyYWNlcHRpb24gIH4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhZ2UgKyBuZXRfaW5jb21lICsgcmVsYXRpb25zaGlwX2R1cmF0aW9uX2ZhY3RvciArDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZHVjYXRpb25feWVhcnMgKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZpX2V4dHJhICsgYmZpX25ldXJvICsgYmZpX2FncmVlICsgYmZpX2NvbnNjICsgYmZpX29wZW4gKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsaWdpb3NpdHkpICoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY2VwdGlvbl9tZWV0aW5nX3BhcnRuZXIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmVybm91bGxpKCJwcm9iaXQiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0cyA9ICIwIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gIm1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4X2luY2x1ZGluZ2hjIikNCmBgYA0KDQojIyMjIyBTdW1tYXJ5DQpgYGB7cn0NCnN1bW1hcnkobV9zZWxlY3Rpb25fY29uZ3J1ZW50X2NvbXBsZXhfaW5jbHVkaW5naGMsIGNvbmYuaW50ID0gVCwgcHJvYiA9IDAuOTApDQpgYGANCg0KIyMjIyMgUGxvdHMNCmBgYHtyIHdhcm5pbmcgPSBGQUxTRX0NCmNvbmRpdGlvbmFsX2VmZmVjdHMobV9zZWxlY3Rpb25fY29uZ3J1ZW50X2NvbXBsZXhfaW5jbHVkaW5naGMsIGFzayA9IEZBTFNFKQ0KYGBgDQoNCiMjIyMjIEZvcmVzdCBQbG90IGZvciBFZmZlY3QgU2l6ZXMgey5hY3RpdmV9DQpgYGB7cn0NCmBgYA0KDQoNCiMjIyMgQ29tcGFyaXNvbiB7LmFjdGl2ZX0NCmBgYHtyfQ0KY29tcGFyZV9tb2RlbHMgPSBsb28obV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZV9pbmNsdWRpbmdoYywNCiAgICAgICAgICAgICAgICAgICAgIG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4X2luY2x1ZGluZ2hjKQ0KYGBgDQpMb29JQyBmaXJzdCBtb2RlbDogYHIgcm91bmQoY29tcGFyZV9tb2RlbHMkbG9vcyRtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlX2luY2x1ZGluZ2hjJGVzdGltYXRlc1szLDFdLCAyKWANCg0KTG9vSUMgc2Vjb25kIG1vZGVsOiBgciByb3VuZChjb21wYXJlX21vZGVscyRsb29zJG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4X2luY2x1ZGluZ2hjJGVzdGltYXRlc1szLDFdLCAyKWANCg0KTW9kZWwgQ29tcGFyaXNvbnM6IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9kZWxzIGlzIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMV0sIDIpYCBjb21wYXJlZCB0byBhIHN0YW5kYXJkIGVycm9yIG9mIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMl0sIDIpYA0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzDQpgYGANCg0KYGBge3J9DQpjb21wYXJlX21vZGVscyA9IGxvbyhtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlLA0KICAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZV9pbmNsdWRpbmdoYykNCmBgYA0KTG9vSUMgZmlyc3QgbW9kZWw6IGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGxvb3MkbV9zZWxlY3Rpb25fY29uZ3J1ZW50X3NpbXBsZSRlc3RpbWF0ZXNbMywxXSwgMilgDQoNCkxvb0lDIHNlY29uZCBtb2RlbDogYHIgcm91bmQoY29tcGFyZV9tb2RlbHMkbG9vcyRtX3NlbGVjdGlvbl9jb25ncnVlbnRfc2ltcGxlX2luY2x1ZGluZ2hjJGVzdGltYXRlc1szLDFdLCAyKWANCg0KTW9kZWwgQ29tcGFyaXNvbnM6IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9kZWxzIGlzIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMV0sIDIpYCBjb21wYXJlZCB0byBhIHN0YW5kYXJkIGVycm9yIG9mIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMl0sIDIpYA0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzDQpgYGANCg0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzID0gbG9vKG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4LA0KICAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25fY29uZ3J1ZW50X2NvbXBsZXhfaW5jbHVkaW5naGMpDQpgYGANCkxvb0lDIGZpcnN0IG1vZGVsOiBgciByb3VuZChjb21wYXJlX21vZGVscyRsb29zJG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4JGVzdGltYXRlc1szLDFdLCAyKWANCg0KTG9vSUMgc2Vjb25kIG1vZGVsOiBgciByb3VuZChjb21wYXJlX21vZGVscyRsb29zJG1fc2VsZWN0aW9uX2NvbmdydWVudF9jb21wbGV4X2luY2x1ZGluZ2hjJGVzdGltYXRlc1szLDFdLCAyKWANCg0KTW9kZWwgQ29tcGFyaXNvbnM6IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9kZWxzIGlzIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMV0sIDIpYCBjb21wYXJlZCB0byBhIHN0YW5kYXJkIGVycm9yIG9mIGByIHJvdW5kKGNvbXBhcmVfbW9kZWxzJGRpZmZzWzIsMl0sIDIpYA0KDQpgYGB7cn0NCmNvbXBhcmVfbW9kZWxzDQpgYGANCg0KDQo=