From 941fa3a03f0d8893f886a8219d3ecc4d775633eb Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Wed, 29 May 2024 22:09:47 -0400 Subject: [PATCH 01/22] replaced hard coding of expr(USUBJID, STUDYID) or expr(USUBJID) with !!!get_admiral_option("subject_keys") to allow for flexibility in using the function. There is an error in the bds_exposure.Rmd markdown on line 361, chunk 22 that needs to be fixed. --- inst/templates/ad_adae.R | 8 ++++---- inst/templates/ad_adcm.R | 6 +++--- inst/templates/ad_adeg.R | 26 +++++++++++++------------- inst/templates/ad_adex.R | 22 +++++++++++----------- inst/templates/ad_adlb.R | 34 +++++++++++++++++----------------- inst/templates/ad_adlbhy.R | 6 +++--- inst/templates/ad_admh.R | 26 +++++++++++++------------- inst/templates/ad_adpc.R | 28 ++++++++++++++-------------- inst/templates/ad_adpp.R | 4 ++-- inst/templates/ad_adppk.R | 22 +++++++++++----------- inst/templates/ad_adsl.R | 20 ++++++++++---------- inst/templates/ad_advs.R | 30 +++++++++++++++--------------- 12 files changed, 116 insertions(+), 116 deletions(-) diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index e68fcd1d4d..de274accfd 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by = exprs(STUDYID, USUBJID) + by = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -88,7 +88,7 @@ adae <- adae %>% ## Derive last dose date/time ---- derive_vars_joined( dataset_add = ex_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" @@ -128,7 +128,7 @@ adae <- adae %>% adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index e80ed2032a..2b3702b139 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -36,7 +36,7 @@ adcm <- cm %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by = exprs(STUDYID, USUBJID) + by = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -97,7 +97,7 @@ adcm <- adcm %>% derivation = derive_var_extreme_flag, args = params( new_var = AOCCPFL, - by_vars = exprs(USUBJID, CMDECOD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), CMDECOD), order = exprs(ASTDTM, CMSEQ), mode = "first" ), @@ -132,7 +132,7 @@ adcm <- adcm %>% adcm <- adcm %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index 617ce24244..abdd5414af 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -105,7 +105,7 @@ adeg <- eg %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ADTM, ADY ---- derive_vars_dtm( @@ -133,7 +133,7 @@ adeg <- adeg %>% # Derive RRR derive_param_rr( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), set_values_to = exprs(PARAMCD = "RRR"), hr_code = "HR", get_unit_expr = tolower(EGSTRESU), @@ -141,7 +141,7 @@ adeg <- adeg %>% ) %>% # Derive QTCBR derive_param_qtc( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Bazett", set_values_to = exprs(PARAMCD = "QTCBR"), qt_code = "QT", @@ -151,7 +151,7 @@ adeg <- adeg %>% ) %>% # Derive QTCFR derive_param_qtc( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), qt_code = "QT", @@ -161,7 +161,7 @@ adeg <- adeg %>% ) %>% # Derive QTLCR derive_param_qtc( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Sagie", set_values_to = exprs(PARAMCD = "QTLCR"), qt_code = "QT", @@ -198,7 +198,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_summary_records( dataset_add = adeg, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT), filter_add = dplyr::n() >= 2 & PARAMCD != "EGINTP", set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), @@ -241,7 +241,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, EGSEQ), new_var = ABLFL, mode = "last" @@ -256,19 +256,19 @@ adeg <- adeg %>% adeg <- adeg %>% # Calculate BASE derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -282,7 +282,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(USUBJID, PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" @@ -302,7 +302,7 @@ adeg <- adeg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -325,7 +325,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 822386ac00..c449c693b7 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -37,13 +37,13 @@ ex <- convert_blanks_to_na(ex) ex <- ex %>% mutate( EXADJ = case_when( - USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ "ADVERSE EVENT", - USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ "MEDICATION ERROR", + USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ "ADVERSE EVENT", + USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ "MEDICATION ERROR", TRUE ~ NA_character_ ), EXDOSE = case_when( - USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ 0, - USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ 0, + USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ 0, + USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ 0, TRUE ~ EXDOSE ) ) %>% @@ -63,7 +63,7 @@ adex0 <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ASTDTM, AENDTM using `derive_vars_dtm()` ---- derive_vars_dtm( @@ -159,7 +159,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars) + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) ) %>% # W2-W24 exposure call_derivation( @@ -208,7 +208,7 @@ adex <- adex %>% ), dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars) + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( @@ -226,7 +226,7 @@ adex <- adex %>% ) ), by_vars = exprs( - STUDYID, USUBJID, !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT + !!!get_admiral_option("subject_keys"), !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT ) ) %>% # Overall/W2-24 Average daily dose @@ -249,7 +249,7 @@ adex <- adex %>% ) ), by_vars = exprs( - STUDYID, USUBJID, !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT + !!!get_admiral_option("subject_keys"), !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT ) ) @@ -306,7 +306,7 @@ adex <- adex %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -315,7 +315,7 @@ adex <- adex %>% adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index cb99ade60e..a02c7a6c91 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -92,7 +92,7 @@ adlb <- lb %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -126,7 +126,7 @@ adlb <- adlb %>% adlb <- adlb %>% # Derive absolute Basophils derive_param_wbc_abs( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), set_values_to = exprs( PARAMCD = "BASO", PARAM = "Basophils Abs (10^9/L)", @@ -139,7 +139,7 @@ adlb <- adlb %>% ) %>% # Derive absolute Lymphocytes derive_param_wbc_abs( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -191,7 +191,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, LBSEQ), new_var = ABLFL, mode = "last" @@ -203,19 +203,19 @@ adlb <- adlb %>% adlb <- adlb %>% # Calculate BASE derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -289,19 +289,19 @@ adlb <- adlb %>% derive_var_atoxgr() %>% # Derive baseline toxicity grade for low values BTOXGRL derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGRL, new_var = BTOXGRL ) %>% # Derive baseline toxicity grade for high values BTOXGRH derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGRH, new_var = BTOXGRH ) %>% # Derive baseline toxicity grade for for overall grade BTOXGR derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGR, new_var = BTOXGR ) @@ -348,7 +348,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(USUBJID, PARAMCD, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" @@ -358,7 +358,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT, AVAL), new_var = LVOTFL, mode = "last" @@ -381,7 +381,7 @@ adlb <- adlb %>% # get MINIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(AVAL, ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -394,7 +394,7 @@ adlb <- adlb %>% # get MAXIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(desc(AVAL), ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -407,7 +407,7 @@ adlb <- adlb %>% # get LOV value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(ADT, AVISITN), mode = "last", filter_add = (ONTRTFL == "Y"), @@ -423,7 +423,7 @@ adlb <- adlb %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM), check_type = "error" ) @@ -432,7 +432,7 @@ adlb <- adlb %>% adlb <- adlb %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index c9591fe9a9..0870bfc55e 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -32,7 +32,7 @@ adlb_annotated <- adlb %>% ., derivation = derive_var_merged_exist_flag, dataset_add = ., - by_vars = exprs(USUBJID, LBSEQ, PARAMCD, ADT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), variable_params = list( params( new_var = CRIT1FL, @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", @@ -79,7 +79,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = exprs(STUDYID, USUBJID, TRT01A), # add AVISIT, ADT for by visit + by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN" diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index 7bf9c66bd4..9e80b09ab1 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -41,7 +41,7 @@ admh <- mh %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Derive dates (ASTDT, AEDT, ...) ---- # Derive analysis start date and flag @@ -82,39 +82,39 @@ admh <- mh %>% )) %>% ## Derive occurrence flags ---- derive_var_extreme_flag( - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ASTDT, MHSEQ), new_var = AOCCFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, MHBODSYS), - order = exprs(USUBJID, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS), + order = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, MHDECOD), - order = exprs(USUBJID, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = exprs(!!!get_admiral_option("subject_keys"), MHDECOD), + order = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCPFL, mode = "first" ) %>% # (company specific occurrence flag variables derivation) derive_var_extreme_flag( - by_vars = exprs(USUBJID), - order = exprs(USUBJID, AHIST, ASTDT, MHSEQ), + by_vars = exprs(!!!get_admiral_option("subject_keys")), + order = exprs(!!!get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), new_var = AOCPFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, MHBODSYS), - order = exprs(USUBJID, AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), + by_vars = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS), + order = exprs(!!!get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), new_var = AOCPSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, MHDECOD), - order = exprs(USUBJID, AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = exprs(!!!get_admiral_option("subject_keys"), MHDECOD), + order = exprs(!!!get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCPPFL, mode = "first" ) %>% @@ -159,7 +159,7 @@ admh <- restrict_derivation( admh <- admh %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index d71621740b..a307f86636 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -149,7 +149,7 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = exprs( - STUDYID, USUBJID, EVID, EXDOSFRQ, EXDOSFRM, + !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars @@ -182,7 +182,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID, DRUG) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -199,7 +199,7 @@ adpc_first_dose <- pc_dates %>% adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -218,7 +218,7 @@ adpc_prev <- adpc_first_dose %>% adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -237,7 +237,7 @@ adpc_next <- adpc_prev %>% adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -253,7 +253,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -433,7 +433,7 @@ dtype <- adpc_aval %>% # ---- Combine original records and DTYPE copy records ---- adpc_dtype <- bind_rows(adpc_aval, dtype) %>% - arrange(STUDYID, USUBJID, BASETYPE, ADTM, NFRLT) %>% + arrange(USUBJID, BASETYPE, ADTM, NFRLT) %>% mutate( # Derive MRRLT, ANL01FL and ANL02FL MRRLT = if_else(ARRLT < 0, 0, ARRLT), @@ -445,7 +445,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% adpc_base <- adpc_dtype %>% derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, PARCAT1, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" @@ -459,7 +459,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -479,13 +479,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -499,7 +499,7 @@ adpc_baselines <- adpc_aseq %>% adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adpp.R b/inst/templates/ad_adpp.R index dd7ab444ff..7d5217faf9 100644 --- a/inst/templates/ad_adpp.R +++ b/inst/templates/ad_adpp.R @@ -87,7 +87,7 @@ adpp_pp <- pp %>% derive_vars_merged( dataset_add = admiral_adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -145,7 +145,7 @@ adpp_avisit <- adpp_aval %>% adpp <- adpp_avisit %>% derive_vars_merged( dataset_add = select(admiral_adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 70cb76bf9b..d100d968b9 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -54,7 +54,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -79,7 +79,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -126,7 +126,7 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = exprs( - STUDYID, USUBJID, EVID, EXDOSFRQ, EXDOSFRM, + !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars @@ -158,7 +158,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID, DRUG) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -175,7 +175,7 @@ adppk_first_dose <- pc_dates %>% adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -194,7 +194,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -321,7 +321,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -416,18 +416,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -454,7 +454,7 @@ covar_vslb <- covar %>% adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/inst/templates/ad_adsl.R b/inst/templates/ad_adsl.R index e97e9e2c66..c72f056efd 100644 --- a/inst/templates/ad_adsl.R +++ b/inst/templates/ad_adsl.R @@ -130,7 +130,7 @@ adsl <- dm %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## derive treatment end date (TRTEDTM) ---- derive_vars_merged( @@ -141,7 +141,7 @@ adsl <- dm %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Derive treatment end/start date TRTSDT/TRTEDT ---- derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% @@ -160,27 +160,27 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(SCRFDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD == "SCREEN FAILURE" ) %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) %>% # EOS status derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)) ) %>% # Last retrieval date derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(FRVDT = DSSTDT), filter_add = DSCAT == "OTHER EVENT" & DSDECOD == "FINAL RETRIEVAL VISIT" ) %>% @@ -188,7 +188,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(RANDDT = DSSTDT) ) %>% # Death date - impute partial date to first day/month @@ -213,7 +213,7 @@ adsl <- adsl %>% ) %>% # Cause of Death and Traceability Variables derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -246,7 +246,7 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -289,7 +289,7 @@ adsl <- adsl %>% ) %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) %>% diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 3c1106b4b4..06fb2210d0 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -81,7 +81,7 @@ advs <- vs %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -109,27 +109,27 @@ advs <- advs %>% # Derive Mean Arterial Pressure derive_param_map( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) ) %>% # Derive Body Surface Area derive_param_bsa( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(USUBJID) + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive Body Mass Index derive_param_bmi( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(USUBJID) + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) @@ -157,7 +157,7 @@ advs <- advs %>% advs <- advs %>% derive_summary_records( dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), filter_add = !is.na(AVAL), set_values_to = exprs( AVAL = mean(AVAL), @@ -196,7 +196,7 @@ advs <- advs %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, VSSEQ), new_var = ABLFL, mode = "last" @@ -209,19 +209,19 @@ advs <- advs %>% advs <- advs %>% # Calculate BASE derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -237,7 +237,7 @@ advs <- advs %>% derivation = derive_var_extreme_flag, args = params( new_var = ANL01FL, - by_vars = exprs(USUBJID, PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), order = exprs(ADT, AVAL), mode = "last" ), @@ -252,7 +252,7 @@ advs <- advs %>% # Create End of Treatment Record derive_extreme_records( dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, ATPTN), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, ATPTN), order = exprs(ADT, AVISITN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 13 & ANL01FL == "Y" & is.na(DTYPE)), @@ -272,7 +272,7 @@ advs <- advs %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -287,7 +287,7 @@ advs <- advs %>% advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels From fd5a2922b3103b0c722aaf711ec32456cf3d1188 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Thu, 30 May 2024 10:43:40 -0400 Subject: [PATCH 02/22] merged with changes from origin main --- inst/templates/ad_advs.R | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 79aa2c66fd..a521998270 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -215,20 +215,13 @@ advs <- advs %>% new_var = BASE ) %>% # Calculate BASEC -<<<<<<< HEAD - derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), - source_var = AVALC, - new_var = BASEC - ) %>% -======= + # only if AVALC is mapped # derive_var_base( # by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), # source_var = AVALC, # new_var = BASEC # ) %>% ->>>>>>> 3183d8b88fe9ecf75e134fede0726d1c6e907e7e # Calculate BNRIND derive_var_base( by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), From cb3363e2077afd3ae7160c46c488480aeee1b437 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Thu, 30 May 2024 14:12:35 -0400 Subject: [PATCH 03/22] replaced expr(STUDYID, USUBJID) and expr(USUBJID) with !!!get_admiral_option("subject_keys") in .Rmd files and ran each file to check for errors. --- vignettes/admiral.Rmd | 20 ++++----- vignettes/adsl.Rmd | 58 ++++++++++++------------ vignettes/bds_exposure.Rmd | 40 ++++++++--------- vignettes/bds_finding.Rmd | 86 ++++++++++++++++++------------------ vignettes/bds_tte.Rmd | 32 +++++++------- vignettes/generic.Rmd | 30 ++++++------- vignettes/higher_order.Rmd | 38 ++++++++-------- vignettes/hys_law.Rmd | 4 +- vignettes/occds.Rmd | 22 ++++----- vignettes/pk_adnca.Rmd | 82 +++++++++++++++++----------------- vignettes/questionnaires.Rmd | 56 +++++++++++------------ vignettes/visits_periods.Rmd | 8 ++-- 12 files changed, 238 insertions(+), 238 deletions(-) diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index cdb3b9ce4a..44f7a495dd 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -128,14 +128,14 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTSDTM, TRTSTMF) + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTSDTM, TRTSTMF) ) ``` @@ -151,7 +151,7 @@ the variable values for the new derived record. ```{r eval=TRUE} advs <- advs %>% derive_param_computed( - by_vars = exprs(USUBJID, AVISIT, AVISITN), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, AVISITN), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP + 2 * AVAL.DIABP) / 3, @@ -164,9 +164,9 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} advs %>% - arrange(USUBJID, AVISITN, PARAMCD) %>% + arrange(!!!get_admiral_option("subject_keys"), AVISITN, PARAMCD) %>% dataset_vignette( - display_vars = exprs(USUBJID, AVISIT, PARAMCD, AVAL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` @@ -208,7 +208,7 @@ of the Final Lab Visit Date (`FINLABDT`) in the example below: adsl <- dm %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(FINLABDT = convert_dtc_to_dt(DSSTDTC)), filter_add = DSDECOD == "FINAL LAB VISIT" ) @@ -217,7 +217,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(STUDYID, USUBJID, FINLABDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), FINLABDT) ) ``` @@ -233,7 +233,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(STUDYID, USUBJID, RFSTDTC, RFSTDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, RFSTDT) ) ``` @@ -250,7 +250,7 @@ below we use `filter_extreme()` to extract the most recent MAP records in `advs` advs_lastmap <- advs %>% filter(PARAMCD == "MAP") %>% filter_extreme( - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(AVISITN, PARAMCD), mode = "last" ) @@ -259,7 +259,7 @@ advs_lastmap <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs_lastmap, - display_vars = exprs(USUBJID, AVISIT, PARAMCD, AVAL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` diff --git a/vignettes/adsl.Rmd b/vignettes/adsl.Rmd index cae3eabcad..8d5e5f3fb4 100644 --- a/vignettes/adsl.Rmd +++ b/vignettes/adsl.Rmd @@ -88,7 +88,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM) + display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM) ) ``` @@ -147,7 +147,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% derive_vars_merged( dataset_add = ex_ext, @@ -157,7 +157,7 @@ adsl <- adsl %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` @@ -186,7 +186,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD) + display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD) ) ``` @@ -215,7 +215,7 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) @@ -225,14 +225,14 @@ The `ds_ext` dataset: ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ds_ext, - display_vars = exprs(USUBJID, DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC), + display_vars = exprs(!!!get_admiral_option("subject_keys"), DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC), filter = DSDECOD != "SCREEN FAILURE" ) ``` The `adsl` dataset: ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(USUBJID, EOSDT)) +dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT)) ``` The `derive_vars_dt()` function allows to impute partial dates as well. If @@ -272,7 +272,7 @@ set to `"ONGOING"` by specifying the `missing_values` argument. adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)), missing_values = exprs(EOSSTT = "ONGOING") @@ -280,7 +280,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(USUBJID, EOSDT, EOSSTT)) +dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT)) ``` This call would return the input dataset with the column `EOSSTT` added. @@ -305,7 +305,7 @@ will map `DCSREAS` as `DSDECOD`, and `DCSREASP` as `DSTERM` if `DSDECOD` is not adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(DCSREAS = DSDECOD, DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & !(DSDECOD %in% c("SCREEN FAILURE", "COMPLETED", NA)) @@ -313,7 +313,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(USUBJID, EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) ``` This call would return the input dataset with the column `DCSREAS` and `DCSREASP` added. @@ -333,21 +333,21 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(DCSREAS = DSDECOD), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %notin% c("SCREEN FAILURE", "COMPLETED", NA) ) %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %in% "OTHER" ) ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(USUBJID, EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) ``` ### Randomization Date (`RANDDT`) {#randomization_date} @@ -360,7 +360,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(RANDDT = DSSTDT) ) ``` @@ -369,7 +369,7 @@ adsl <- adsl %>% This call would return the input dataset with the column `RANDDT` is added. ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(USUBJID, RANDDT)) +dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), RANDDT)) ``` ## Derive Death Variables {#death} @@ -390,7 +390,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = exprs(USUBJID, TRTEDT, DTHDTC, DTHDT, DTHFL)) +dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHFL)) ``` This call would return the input dataset with the columns `DTHDT` added and, by @@ -431,7 +431,7 @@ An example call to `derive_vars_extreme_event()` would be: ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -455,7 +455,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, EOSDT, DTHDTC, DTHDT, DTHCAUS), + display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, DTHDTC, DTHDT, DTHCAUS), filter = DTHFL == "Y" ) ``` @@ -468,7 +468,7 @@ that domain). The traceability variables should be added to the `event()` calls adsl <- adsl %>% select(-DTHCAUS) %>% # remove it before deriving it again derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -492,7 +492,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ), + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ), filter = DTHFL == "Y" ) ``` @@ -540,7 +540,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD), + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD), filter = DTHFL == "Y" ) ``` @@ -556,7 +556,7 @@ day and month to the first): ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -602,7 +602,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTEDT, DTHDTC, LSTALVDT), + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT), filter = !is.na(TRTSDT) ) ``` @@ -613,7 +613,7 @@ Traceability variables can be added by specifying the variables in the `set_valu adsl <- adsl %>% select(-LSTALVDT) %>% # created in the previous call derive_vars_extreme_event( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -665,7 +665,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR), + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR), filter = !is.na(TRTSDT) ) ``` @@ -718,7 +718,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, AGE, SEX, COUNTRY, AGEGR1, REGION1) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AGE, SEX, COUNTRY, AGEGR1, REGION1) ) ``` @@ -733,7 +733,7 @@ An example of an implementation could be: adsl <- adsl %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) @@ -742,7 +742,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(USUBJID, TRTSDT, ARM, ACTARM, SAFFL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTSDT, ARM, ACTARM, SAFFL) ) ``` diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index 262ceb7547..ed8170cb73 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -82,7 +82,7 @@ adex <- derive_vars_merged( ex, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` @@ -90,7 +90,7 @@ adex <- derive_vars_merged( dataset_vignette( adex, display_vars = exprs( - USUBJID, EXTRT, EXDOSE, EXDOSFRQ, + !!!get_admiral_option("subject_keys"), EXTRT, EXDOSE, EXDOSFRQ, VISIT, EXSTDTC, EXENDTC, TRTSDTM, TRTEDTM ) @@ -136,7 +136,7 @@ adex <- derive_vars_dt(adex, new_vars_prefix = "AEN", dtc = EXENDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(USUBJID, VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) ) ``` @@ -163,7 +163,7 @@ adex <- derive_vars_dtm( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(USUBJID, VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) ) ``` @@ -188,7 +188,7 @@ adex <- dataset_vignette( adex, display_vars = exprs( - USUBJID, + !!!get_admiral_option("subject_keys"), VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT ) ) @@ -213,7 +213,7 @@ adex <- adex %>% dataset_vignette( adex, display_vars = exprs( - USUBJID, + !!!get_admiral_option("subject_keys"), VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD ) ) @@ -236,7 +236,7 @@ adex <- adex %>% dataset_vignette( adex, display_vars = exprs( - USUBJID, + !!!get_admiral_option("subject_keys"), VISIT, ASTDT, AENDT, EXDURD, EXDURDY ) ) @@ -260,7 +260,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) + display_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) ) ``` @@ -277,13 +277,13 @@ frequency to a corresponding set of records each representing one dose (i.e. ```{r eval=TRUE, echo=TRUE} single_dose <- adex %>% filter(USUBJID == "01-701-1015" & EXSTDY == 1) %>% - create_single_dose_dataset(keep_source_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) + create_single_dose_dataset(keep_source_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( single_dose, - display_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) ) ``` @@ -346,7 +346,7 @@ count(adex, PARAMCD) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, VISIT, desc(PARAMCD), EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs(USUBJID, VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) + dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) ``` ## Create Summary Records {#summaryrec} @@ -376,7 +376,7 @@ adex <- derive_param_exposure( adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% dataset_vignette(display_vars = exprs( - USUBJID, VISIT, + !!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, AENDT )) ``` @@ -442,7 +442,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars) + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) ) count(adex, PARAMCD, PARCAT1) @@ -453,7 +453,7 @@ count(adex, PARAMCD, PARCAT1) adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% dataset_vignette(display_vars = exprs( - USUBJID, VISIT, + !!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT )) ``` @@ -466,7 +466,7 @@ specified in the `by_vars` argument will be populated in this new record. ```{r eval=TRUE, echo=TRUE} adex <- adex %>% derive_param_doseint( - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars), set_values_to = exprs(PARAMCD = "TNDOSINT"), tadm_code = "TDOSE", tpadm_code = "TPDOSE" @@ -478,7 +478,7 @@ adex <- adex %>% dataset_vignette( adex, display_vars = exprs( - USUBJID, VISIT, EXSTDTC, EXENDTC, + !!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, PARCAT1, PARAMCD, AVAL, ASTDT, AENDT ) ) @@ -567,7 +567,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, AVALCAT1, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs(USUBJID, VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) + dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) ``` ## Assign `ASEQ` {#aseq} @@ -579,7 +579,7 @@ example call is: adex <- derive_var_obs_number( adex, new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -588,7 +588,7 @@ adex <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(USUBJID, VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) ) ``` @@ -600,7 +600,7 @@ If needed, the other `ADSL` variables can now be added: adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ## Add Labels and Attributes {#attributes} diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 37dd34ebce..f7588bf774 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -86,14 +86,14 @@ advs <- derive_vars_merged( vs, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), filter = VSTESTCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -113,7 +113,7 @@ advs <- derive_vars_dt(advs, new_vars_prefix = "A", dtc = VSDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VISIT, VSDTC, ADT), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT), filter = VSTESTCD == "DIABP" ) ``` @@ -147,7 +147,7 @@ advs <- derive_vars_dt( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VISIT, VSDTC, ADT, ADTF), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT, ADTF), filter = USUBJID == "01-716-1024" ) ``` @@ -188,7 +188,7 @@ advs <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VISIT, ADT, ADY, TRTSDT), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ADT, ADY, TRTSDT), filter = USUBJID == "01-716-1024" ) ``` @@ -245,7 +245,7 @@ advs <- derive_vars_merged_lookup( ```{r, eval=TRUE, echo=FALSE} advs_param <- distinct(advs, USUBJID, PARAMCD, VSTESTCD) -dataset_vignette(advs_param, display_vars = exprs(USUBJID, VSTESTCD, PARAMCD)) +dataset_vignette(advs_param, display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], VSTESTCD, PARAMCD)) ``` Please note, it may be necessary to include other variables in the join. For @@ -293,7 +293,7 @@ Example 3 in section below [Derive New Rows](#additional) for alternative way of ```{r eval=TRUE} advs <- derive_param_map( advs, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) @@ -314,28 +314,28 @@ Likewise, function call below, to create parameter `Body Surface Area` (BSA) and ```{r eval=TRUE} advs <- derive_param_bsa( advs, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(USUBJID) + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) advs <- derive_param_bmi( advs, - by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(USUBJID) + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs, USUBJID, VISITNUM, VSTPTNUM, ADT, PARAMCD), - display_vars = exprs(USUBJID, VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), filter = PARAMCD %in% c("BSA", "BMI") ) ``` @@ -354,7 +354,7 @@ adeg <- tibble::tribble( adeg <- derive_param_qtc( adeg, - by_vars = exprs(USUBJID, VISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), get_unit_expr = EGSTRESU @@ -375,7 +375,7 @@ adlb <- tibble::tribble( derive_param_wbc_abs( dataset = adlb, - by_vars = exprs(USUBJID, VISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -460,7 +460,7 @@ advs <- derive_var_ontrtfl( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -536,7 +536,7 @@ advs <- derive_var_ontrtfl( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL) + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL) ) ``` @@ -574,7 +574,7 @@ advs <- derive_var_anrind(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -615,7 +615,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, ATPTN, VISITNUM), new_var = ABLFL, mode = "last" @@ -627,7 +627,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -641,14 +641,14 @@ Lastly, the `BASE`, and `BNRIND` columns can be derived using the `{admiral}` f ```{r eval=TRUE} advs <- derive_var_base( advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) advs <- derive_var_base( advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) @@ -657,7 +657,7 @@ advs <- derive_var_base( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), + display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -678,7 +678,7 @@ advs <- derive_var_pchg(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VISIT, BASE, AVAL, CHG, PCHG), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, CHG, PCHG), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -728,7 +728,7 @@ advs <- derive_var_analysis_ratio(advs, ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -754,7 +754,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN, AVAL), new_var = ANL01FL, mode = "last" @@ -766,7 +766,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -781,7 +781,7 @@ advs <- slice_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, BASETYPE, PARAMCD, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN), new_var = WORSTFL, mode = "first" @@ -794,14 +794,14 @@ advs <- slice_derivation( args = params(mode = "last") ) ) %>% - arrange(STUDYID, USUBJID, BASETYPE, PARAMCD, AVISIT) + arrange(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), filter = USUBJID == "01-701-1015" & WORSTFL == "Y" ) ``` @@ -832,7 +832,7 @@ example call is: advs <- derive_var_obs_number( advs, new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN), check_type = "error" ) @@ -841,7 +841,7 @@ advs <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ), filter = USUBJID == "01-701-1015" ) ``` @@ -877,7 +877,7 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, PARAMCD, AVAL, AVALCA1N, AVALCAT1), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, AVALCA1N, AVALCAT1), filter = PARAMCD == "HEIGHT" ) ``` @@ -890,14 +890,14 @@ List of ADSL variables already merged held in vector `adsl_vars` advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(USUBJID, RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU), filter = USUBJID == "01-701-1015" ) ``` @@ -924,7 +924,7 @@ assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT, AVISITN, ATPTN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y"), @@ -939,7 +939,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = exprs(USUBJID, PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` @@ -954,7 +954,7 @@ and assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(AVAL, ADT, AVISITN, ATPTN), mode = "first", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y" & !is.na(AVAL)), @@ -969,7 +969,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = exprs(USUBJID, PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` @@ -988,7 +988,7 @@ Set `DTYPE` to `AVERAGE`. advs_ex2 <- derive_summary_records( advs, dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID, PARAMCD, VISITNUM, ADT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT), set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), DTYPE = "AVERAGE" @@ -999,7 +999,7 @@ advs_ex2 <- derive_summary_records( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex2, USUBJID, PARAMCD, VISITNUM, ADT, DTYPE), - display_vars = exprs(USUBJID, PARAMCD, VISITNUM, ADT, AVAL, DTYPE), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT, AVAL, DTYPE), filter = USUBJID == "01-701-1015" ) ``` @@ -1016,7 +1016,7 @@ Below is an example of creating `Mean Arterial Pressure` ```{r eval=TRUE} advs_ex3 <- derive_param_computed( advs, - by_vars = exprs(USUBJID, VISIT, ATPT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ATPT), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP - AVAL.DIABP) / 3 + AVAL.DIABP, @@ -1028,8 +1028,8 @@ advs_ex3 <- derive_param_computed( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( - arrange(advs_ex3, USUBJID, VISIT, ATPT, PARAMCD), - display_vars = exprs(USUBJID, PARAMCD, VISIT, ATPT, AVAL), + arrange(advs_ex3, !!!get_admiral_option("subject_keys"), VISIT, ATPT, PARAMCD), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISIT, ATPT, AVAL), filter = USUBJID == "01-701-1015" & PARAMCD %in% c("MAP2", "SYSBP", "DIABP") ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index 4c48659608..12fe73032e 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -148,7 +148,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(USUBJID, PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) ) ``` @@ -190,7 +190,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(USUBJID, PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) ) ``` @@ -239,7 +239,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(USUBJID, EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT) ) # save adtte and adsl for next section adtte_bak <- adtte @@ -282,7 +282,7 @@ adsl <- tibble::tribble( dataset_vignette( adsl, - display_vars = exprs(USUBJID, DTHFL, DTHDT, TRTSDT, TRTSDTF) + display_vars = exprs(!!!get_admiral_option("subject_keys"), DTHFL, DTHDT, TRTSDT, TRTSDTF) ) ``` @@ -305,11 +305,11 @@ adrs <- tibble::tribble( PARAMCD = "OVR", PARAM = "Overall Response" ) %>% - select(STUDYID, USUBJID, PARAMCD, PARAM, ADT, ASEQ, AVALC) + select(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADT, ASEQ, AVALC) dataset_vignette( adrs, - display_vars = exprs(USUBJID, AVALC, ADT, ASEQ, PARAMCD, PARAM) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AVALC, ADT, ASEQ, PARAMCD, PARAM) ) ``` @@ -407,10 +407,10 @@ adtte <- derive_param_tte( dataset_vignette( adtte %>% select( - STUDYID, USUBJID, PARAMCD, PARAM, STARTDT, ADT, ADTF, CNSR, + !!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, ADTF, CNSR, EVNTDESC, SRCDOM, SRCVAR ), - display_vars = exprs(USUBJID, PARAMCD, STARTDT, ADT, ADTF, CNSR) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, ADTF, CNSR) ) ``` @@ -503,9 +503,9 @@ adaette <- call_derivation( ```{r, echo=FALSE} adaette %>% - select(STUDYID, USUBJID, PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% - arrange(USUBJID, PARAMCD) %>% - dataset_vignette(display_vars = exprs(USUBJID, PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% + arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% + dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) ``` ### Deriving Time-to-Event Parameters Using By Groups @@ -602,10 +602,10 @@ adtte <- derive_param_tte( dataset_vignette( adtte %>% select( - USUBJID, STARTDT, PARAMCD, PARAM, PARCAT1, PARCAT2, ADT, CNSR, + !!!get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, PARCAT1, PARCAT2, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR, SRCSEQ ), - display_vars = exprs(USUBJID, STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ) + display_vars = exprs(!!!get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ) ) ``` @@ -642,7 +642,7 @@ The `{admiral}` function `derive_var_obs_number()` can be used to derive `ASEQ`: ```{r eval=TRUE} adtte <- derive_var_obs_number( adtte, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD), check_type = "error" ) @@ -662,14 +662,14 @@ adtte <- derive_vars_merged( adtte, dataset_add = adsl, new_vars = exprs(ARMCD, ARM, ACTARMCD, ACTARM, AGE, SEX), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(USUBJID, PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX) ) ``` diff --git a/vignettes/generic.Rmd b/vignettes/generic.Rmd index 9450dc529a..3c32ec339d 100644 --- a/vignettes/generic.Rmd +++ b/vignettes/generic.Rmd @@ -219,7 +219,7 @@ advs <- tribble( derive_vars_merged( adsl, dataset_add = advs, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), filter_add = PARAMCD == "WEIGHT" & ABLFL == "Y", new_vars = exprs(WGTBL = AVAL) ) @@ -251,7 +251,7 @@ ex <- tribble( derive_vars_merged( adsl, dataset_add = ex, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), filter_add = EXDOSE > 0, order = exprs(EXSTDY), mode = "last", @@ -287,7 +287,7 @@ ex <- tribble( derive_vars_joined( adae, dataset_add = ex, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), filter_add = EXDOSE > 0, filter_join = EXSTDY <= ASTDY, join_type = "all", @@ -302,7 +302,7 @@ The `filter_join` condition is applied on a temporary dataset created by left jo admiral:::get_joined_data( adae, dataset_add = ex, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), filter_add = EXDOSE > 0, join_vars = exprs(EXDOSE), join_type = "all", @@ -334,7 +334,7 @@ adlb <- tribble( derive_var_joined_exist_flag( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -353,7 +353,7 @@ So the temporary dataset for applying `filter_join` is: admiral:::get_joined_data( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after" @@ -368,7 +368,7 @@ set it to the condition for confirmation. derive_var_joined_exist_flag( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -383,7 +383,7 @@ dataset are restricted up to the first records where the condition is fulfilled: admiral:::get_joined_data( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -419,7 +419,7 @@ advs <- tribble( derive_var_extreme_flag( advs, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(AVISITN), mode = "last", new_var = LSTVISFL @@ -431,7 +431,7 @@ the `AVISITN == 3` record is flagged. ```{r} derive_var_extreme_flag( advs, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(if_else(is.na(AVISITN), -Inf, AVISITN)), mode = "last", new_var = LSTVISFL @@ -442,7 +442,7 @@ variables. ```{r} derive_var_extreme_flag( advs, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), order = exprs(!is.na(AVISITN), AVISITN), mode = "last", new_var = LSTVISFL @@ -485,7 +485,7 @@ derive_summary_records( adex, dataset_add = adex, filter_add = AVAL > 0, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), set_values_to = exprs( AVAL = mean(AVAL), PARAMCD = "AVERAGE DOSE" @@ -510,7 +510,7 @@ derive_var_merged_summary( adsl, dataset_add = adex, filter_add = AVAL > 0, - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), new_vars = exprs( AVERDOSE = mean(AVAL) ), @@ -539,7 +539,7 @@ advs <- tribble( derive_param_computed( advs, - by_vars = exprs(USUBJID, AVISIT), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], AVISIT), parameters = c("WEIGHT", "HEIGHT"), set_values_to = exprs( AVAL = AVAL.WEIGHT / (AVAL.HEIGHT / 100)^2, @@ -555,7 +555,7 @@ example `compute_bmi()` could be used instead of the formula for BMI: ```{r} derive_param_computed( advs, - by_vars = exprs(USUBJID, AVISIT), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], AVISIT), parameters = c("WEIGHT", "HEIGHT"), set_values_to = exprs( AVAL = compute_bmi(weight = AVAL.WEIGHT, height = AVAL.HEIGHT), diff --git a/vignettes/higher_order.Rmd b/vignettes/higher_order.Rmd index db73719473..970ecb2471 100644 --- a/vignettes/higher_order.Rmd +++ b/vignettes/higher_order.Rmd @@ -87,13 +87,13 @@ Here is an example of how to achieve this **without** using `call_derivation()`: ```{r} vs_without <- vs %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, VSTESTCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ), new_var = AHIFL, mode = "last" ) %>% derive_var_extreme_flag( - by_vars = exprs(USUBJID, VSTESTCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ), new_var = ALOFL, mode = "first" @@ -102,9 +102,9 @@ vs_without <- vs %>% ```{r, eval=TRUE, echo=FALSE} vs_without %>% - arrange(USUBJID, VSTESTCD, VSDY, VSSEQ) %>% + arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = exprs(USUBJID, VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -120,16 +120,16 @@ vs_with <- vs %>% params(new_var = AHIFL, mode = "last"), params(new_var = ALOFL, mode = "first") ), - by_vars = exprs(USUBJID, VSTESTCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ) ) ``` ```{r, eval=TRUE, echo=FALSE} vs_with %>% - arrange(USUBJID, VSTESTCD, VSDY, VSSEQ) %>% + arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = exprs(USUBJID, VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -174,9 +174,9 @@ adaette <- call_derivation( ```{r, eval=TRUE, echo=FALSE} adaette %>% - select(USUBJID, PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% - arrange(USUBJID, PARAMCD) %>% - dataset_vignette(display_vars = exprs(USUBJID, PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% + arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% + dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) ``` Developing your ADaM scripts this way using `call_derivation()` could give the @@ -209,7 +209,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEVFL, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(TEMP_AESEVN, AESTDY, AESEQ), mode = "first" ), @@ -219,9 +219,9 @@ ae <- ae %>% ```{r, eval=TRUE, echo=FALSE} ae %>% - arrange(USUBJID, AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% + arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = exprs(USUBJID, AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL) ) ``` @@ -247,7 +247,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV2FL, - by_vars = exprs(USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ), derivation_slice( filter = AESTDY >= 1, @@ -262,9 +262,9 @@ ae <- ae %>% ```{r, eval=TRUE, echo=FALSE} ae %>% - arrange(USUBJID, AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% + arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = exprs(USUBJID, AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL) ) ``` @@ -286,7 +286,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV3FL, - by_vars = exprs(USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ), derivation_slice( filter = AESEV == "SEVERE", @@ -305,9 +305,9 @@ ae <- ae %>% ```{r, eval=TRUE, echo=FALSE} ae %>% - arrange(USUBJID, AESTDY, AESEQ) %>% + arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ) %>% dataset_vignette( - display_vars = exprs(USUBJID, AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL) ) ``` diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index bd8744329a..db0d9f1fd5 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -113,7 +113,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADY), join_type = "all", filter_join = 0 <= ADT.join - ADT & ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", @@ -154,7 +154,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = exprs(STUDYID, USUBJID, TRT01A), # add AVISIT, ADT for by visit + by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN", diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index 0ae5fb0000..c07d34b71b 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -79,7 +79,7 @@ adae <- derive_vars_merged( ae, dataset_add = adsl, new_vars = adsl_vars, - by = exprs(STUDYID, USUBJID) + by = exprs(!!!get_admiral_option("subject_keys")) ) ``` @@ -87,7 +87,7 @@ adae <- derive_vars_merged( dataset_vignette( adae, display_vars = exprs( - USUBJID, AESEQ, AETERM, AESTDTC, TRTSDT, + !!!get_admiral_option("subject_keys"), AESEQ, AETERM, AESTDTC, TRTSDT, TRTEDT, TRT01A, TRT01P, DTHDT, EOSDT ) ) @@ -128,7 +128,7 @@ adae <- adae %>% dataset_vignette( adae, display_vars = exprs( - USUBJID, AESTDTC, AEENDTC, ASTDTM, ASTDT, + !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDTM, ASTDT, ASTDY, AENDTM, AENDT, AENDY ) ) @@ -155,7 +155,7 @@ adae <- adae %>% dataset_vignette( adae, display_vars = exprs( - USUBJID, AESTDTC, AEENDTC, ASTDT, AENDT, + !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDT, AENDT, ADURN, ADURU ) ) @@ -239,7 +239,7 @@ ex_single <- derive_vars_dtm( adae <- derive_vars_joined( adae, ex_single, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -254,7 +254,7 @@ adae <- derive_vars_joined( dataset_vignette( adae, display_vars = exprs( - USUBJID, AEDECOD, AESEQ, AESTDTC, AEENDTC, + !!!get_admiral_option("subject_keys"), AEDECOD, AESEQ, AESTDTC, AEENDTC, ASTDT, AENDT, LDOSEDTM ) ) @@ -292,7 +292,7 @@ adae <- adae %>% dataset_vignette( adae, display_vars = exprs( - USUBJID, TRTSDT, TRTEDT, AESTDTC, ASTDT, + !!!get_admiral_option("subject_keys"), TRTSDT, TRTEDT, AESTDTC, ASTDT, TRTEMFL ) ) @@ -406,7 +406,7 @@ adae <- adae %>% dataset_vignette( adae, display_vars = exprs( - USUBJID, ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL + !!!get_admiral_option("subject_keys"), ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL ) ) ``` @@ -485,7 +485,7 @@ If needed, the other `ADSL` variables can now be added: adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` @@ -493,7 +493,7 @@ adae <- adae %>% dataset_vignette( adae, display_vars = exprs( - USUBJID, AEDECOD, ASTDTM, DTHDT, RFSTDTC, + !!!get_admiral_option("subject_keys"), AEDECOD, ASTDTM, DTHDT, RFSTDTC, RFENDTC, AGE, AGEU, SEX ) ) @@ -517,7 +517,7 @@ adcm <- tibble::tribble( adcm_aseq <- adcm %>% derive_var_obs_number( - by_vars = exprs(USUBJID), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), order = exprs(ASTDTM, CMSEQ, ATC1CD, ATC2CD, ATC3CD, ATC4CD), new_var = ASEQ, check_type = "error" diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index a947df46fb..ba44396055 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -175,7 +175,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -200,7 +200,7 @@ pc_dates <- pc %>% dataset_vignette( pc_dates, display_vars = exprs( - USUBJID, PCTEST, ADTM, VISIT, PCTPT, NFRLT + !!!get_admiral_option("subject_keys"), PCTEST, ADTM, VISIT, PCTPT, NFRLT ) ) ``` @@ -219,7 +219,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -259,7 +259,7 @@ ex_dates <- ex %>% dataset_vignette( ex_dates, display_vars = exprs( - USUBJID, EXTRT, EXDOSFRQ, ASTDTM, AENDTM, VISIT, VISITDY, NFRLT + !!!get_admiral_option("subject_keys"), EXTRT, EXDOSFRQ, ASTDTM, AENDTM, VISIT, VISITDY, NFRLT ) ) ``` @@ -298,7 +298,7 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = exprs( - STUDYID, USUBJID, EVID, EXDOSFRQ, EXDOSFRM, + STUDYID, !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars ) @@ -324,7 +324,7 @@ ex_exp <- ex_dates %>% dataset_vignette( ex_exp, display_vars = exprs( - USUBJID, DRUG, EXDOSFRQ, ASTDTM, AENDTM, AVISIT, NFRLT + !!!get_admiral_option("subject_keys"), DRUG, EXDOSFRQ, ASTDTM, AENDTM, AVISIT, NFRLT ) ) ``` @@ -348,7 +348,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID, DRUG) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -364,7 +364,7 @@ adpc_first_dose <- pc_dates %>% dataset_vignette( adpc_first_dose, display_vars = exprs( - USUBJID, FANLDTM, AVISIT, ADTM, PCTPT + !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, ADTM, PCTPT ) ) ``` @@ -383,7 +383,7 @@ previous dose (`ADTM_prev)`, we also keep the actual dose amount adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -402,7 +402,7 @@ adpc_prev <- adpc_first_dose %>% dataset_vignette( adpc_prev, display_vars = exprs( - USUBJID, VISIT, ADTM, VISIT, PCTPT, ADTM_prev, EXDOSE_prev, AVISIT_prev + !!!get_admiral_option("subject_keys"), VISIT, ADTM, VISIT, PCTPT, ADTM_prev, EXDOSE_prev, AVISIT_prev ) ) ``` @@ -418,7 +418,7 @@ and the next analysis visit `AVISIT_next`. adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -437,7 +437,7 @@ adpc_next <- adpc_prev %>% dataset_vignette( adpc_next, display_vars = exprs( - USUBJID, + !!!get_admiral_option("subject_keys"), VISIT, ADTM, VISIT, PCTPT, ADTM_next, EXDOSE_next, AVISIT_next ) ) @@ -457,7 +457,7 @@ parameter uses the nominal relative times, e.g. `NFRLT > NFRLT.join`. adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -473,7 +473,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -489,7 +489,7 @@ adpc_nom_next <- adpc_nom_prev %>% dataset_vignette( adpc_nom_next, display_vars = exprs( - USUBJID, NFRLT, PCTPT, NFRLT_prev, NFRLT_next + !!!get_admiral_option("subject_keys"), NFRLT, PCTPT, NFRLT_prev, NFRLT_next ) ) ``` @@ -583,7 +583,7 @@ adpc_arrlt <- bind_rows(adpc_nom_next, ex_exp) %>% dataset_vignette( adpc_arrlt, display_vars = exprs( - USUBJID, FANLDTM, AVISIT, PCTPT, AFRLT, ARRLT, AXRLT + !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, PCTPT, AFRLT, ARRLT, AXRLT ) ) ``` @@ -611,7 +611,7 @@ adpc_nrrlt <- adpc_arrlt %>% dataset_vignette( adpc_nrrlt, display_vars = exprs( - USUBJID, AVISIT, PCTPT, NFRLT, NRRLT, NXRLT + !!!get_admiral_option("subject_keys"), AVISIT, PCTPT, NFRLT, NRRLT, NXRLT ) ) ``` @@ -721,7 +721,7 @@ adpc_aval <- adpc_nrrlt %>% dataset_vignette( adpc_aval, display_vars = exprs( - USUBJID, NFRLT, AVISIT, ATPT, ABLFL, ATPTREF, AVAL, AVALCAT1 + !!!get_admiral_option("subject_keys"), NFRLT, AVISIT, ATPT, ABLFL, ATPTREF, AVAL, AVALCAT1 ) ) ``` @@ -775,7 +775,7 @@ dtype <- adpc_aval %>% dataset_vignette( dtype, display_vars = exprs( - USUBJID, DTYPE, ATPT, NFRLT, NRRLT, AFRLT, ARRLT, BASETYPE + !!!get_admiral_option("subject_keys"), DTYPE, ATPT, NFRLT, NRRLT, AFRLT, ARRLT, BASETYPE ) ) ``` @@ -797,7 +797,7 @@ figures, etc. # ---- Combine original records and DTYPE copy records ---- adpc_dtype <- bind_rows(adpc_aval, dtype) %>% - arrange(STUDYID, USUBJID, BASETYPE, ADTM, NFRLT) %>% + arrange(!!!get_admiral_option("subject_keys"), BASETYPE, ADTM, NFRLT) %>% mutate( # Derive MRRLT, ANL01FL and ANL02FL MRRLT = if_else(ARRLT < 0, 0, ARRLT), @@ -809,7 +809,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% ```{r, eval=TRUE, echo=FALSE} adpc_dtype %>% dataset_vignette(display_vars = exprs( - STUDYID, USUBJID, BASETYPE, ADTM, ATPT, NFRLT, NRRLT, ARRLT, MRRLT + !!!get_admiral_option("subject_keys"), BASETYPE, ADTM, ATPT, NFRLT, NRRLT, ARRLT, MRRLT )) ``` @@ -830,7 +830,7 @@ Finally we derive `PARAM` and `PARAMN` from a lookup table. adpc_base <- adpc_dtype %>% # Derive BASE derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD, PARCAT1, BASETYPE), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" @@ -844,7 +844,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -863,7 +863,7 @@ adpc_aseq <- adpc_chg %>% ```{r, eval=TRUE, echo=FALSE} adpc_aseq %>% dataset_vignette(display_vars = exprs( - USUBJID, BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG + !!!get_admiral_option("subject_keys"), BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG )) ``` @@ -881,13 +881,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -899,7 +899,7 @@ adpc_baselines <- adpc_aseq %>% ```{r, eval=TRUE, echo=FALSE} adpc_baselines %>% dataset_vignette(display_vars = exprs( - USUBJID, HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL + !!!get_admiral_option("subject_keys"), HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL )) ``` @@ -912,7 +912,7 @@ If needed, the other `ADSL` variables can now be added: adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` @@ -991,7 +991,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(STUDYID, USUBJID, DRUG) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -1007,7 +1007,7 @@ adppk_first_dose <- pc_dates %>% dataset_vignette( adppk_first_dose, display_vars = exprs( - USUBJID, FANLDTM, AVISIT, ADTM, PCTPT + !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, ADTM, PCTPT ) ) ``` @@ -1025,7 +1025,7 @@ and nominal time. We will use `derive_vars_joined()` as we did for adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -1044,7 +1044,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -1060,7 +1060,7 @@ adppk_nom_prev <- adppk_prev %>% dataset_vignette( adppk_nom_prev, display_vars = exprs( - USUBJID, VISIT, ADTM, VISIT, PCTPT, ADTM_prev, NFRLT_prev + !!!get_admiral_option("subject_keys"), VISIT, ADTM, VISIT, PCTPT, ADTM_prev, NFRLT_prev ) ) ``` @@ -1126,7 +1126,7 @@ adppk_aprlt <- bind_rows(adppk_nom_prev, ex_exp) %>% dataset_vignette( adppk_aprlt, display_vars = exprs( - USUBJID, EVID, NFRLT, AFRLT, APRLT, NPRLT + !!!get_admiral_option("subject_keys"), EVID, NFRLT, AFRLT, APRLT, NPRLT ) ) ``` @@ -1210,7 +1210,7 @@ adppk_aval <- adppk_aprlt %>% dataset_vignette( adppk_aval, display_vars = exprs( - USUBJID, EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN + !!!get_admiral_option("subject_keys"), EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN ) ) ``` @@ -1228,7 +1228,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -1252,7 +1252,7 @@ adppk_aseq <- adppk_aval %>% dataset_vignette( adppk_aseq, display_vars = exprs( - USUBJID, EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ + !!!get_admiral_option("subject_keys"), EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ ) ) ``` @@ -1359,18 +1359,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -1413,7 +1413,7 @@ Finally, we combine the covariates with the `ADPPK` data. adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index ef37f997e5..9c35798746 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -88,7 +88,7 @@ adqs <- qs %>% derive_vars_merged( dataset_add = adsl, new_vars = exprs(TRTSDT, DTHCAUS), - by_vars = exprs(STUDYID, USUBJID) + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Add analysis parameter variables mutate( @@ -110,7 +110,7 @@ adqs <- qs %>% ```{r echo=FALSE} dataset_vignette( arrange(adqs, USUBJID, PARCAT1, ADY, PARAMCD), - display_vars = exprs(USUBJID, PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT) ) ``` @@ -143,7 +143,7 @@ adgad7 <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = exprs(STUDYID, USUBJID, AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GAD020[1-7]"), set_values_to = exprs( @@ -157,7 +157,7 @@ adgad7 <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgad7, USUBJID, ADY, PARAMCD), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) ) ``` @@ -173,7 +173,7 @@ adgdssf <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = exprs(STUDYID, USUBJID, AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), set_values_to = exprs( @@ -193,7 +193,7 @@ adgdssf <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, ADY, PARAMCD), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) ) ``` @@ -205,7 +205,7 @@ adgdssf <- adgdssf %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = ABLFL, mode = "last" @@ -214,7 +214,7 @@ adgdssf <- adgdssf %>% ) %>% # Derive baseline and change from baseline variables derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), source_var = AVAL, new_var = BASE ) %>% @@ -222,7 +222,7 @@ adgdssf <- adgdssf %>% derive_var_pchg() %>% # Derive sequence number derive_var_obs_number( - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT), check_type = "error" ) @@ -231,7 +231,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( adgdssf, - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG) ) ``` @@ -264,12 +264,12 @@ adgdssf <- adgdssf %>% ) ) %>% derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), source_var = AVALCAT1, new_var = BASECAT1 ) %>% derive_var_base( - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), source_var = AVALCAT1N, new_var = BASECA1N ) %>% @@ -285,7 +285,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1) ) ``` @@ -349,7 +349,7 @@ adgdstte <- derive_param_tte( ```{r echo=FALSE} dataset_vignette( adgdstte, - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR) ) ``` @@ -365,7 +365,7 @@ later: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CDETFL, join_vars = exprs(CHGCAT1, ADY), @@ -379,7 +379,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, ADY, CHGCAT1, CDETFL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CDETFL) ) ``` @@ -391,7 +391,7 @@ argument is helpful: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CONDETFL, join_vars = exprs(CHGCAT1), @@ -407,7 +407,7 @@ adgdssf <- adgdssf %>% derive_var_joined_exist_flag( ., dataset_add = ., - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CDTDTHFL, join_vars = exprs(CHGCAT1, ADY), @@ -422,7 +422,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL) ) ``` @@ -433,7 +433,7 @@ parameter summary functions like `all()` can be used in the filter condition: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(USUBJID, PARAMCD), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = DEFDETFL, join_vars = exprs(CHGCAT1), @@ -445,7 +445,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL) ) ``` @@ -465,7 +465,7 @@ example, "no sleeping problems" is assumed if all questions were answered with adsp <- adqs %>% filter(PARCAT1 == "SLEEPING PROBLEMS") %>% derive_extreme_event( - by_vars = exprs(USUBJID, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADY, QSSEQ), mode = "first", @@ -516,7 +516,7 @@ adsp <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adsp, USUBJID, ADY, PARAMCD), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVISIT, AVALC) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` @@ -529,7 +529,7 @@ adgdssf <- adgdssf %>% derive_summary_records( dataset_add = adgdssf, filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = exprs(USUBJID, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), set_values_to = exprs( AVAL = sum(!is.na(AVAL)) / 15 >= 0.9, PARAMCD = "COMPL90P", @@ -542,7 +542,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVISIT, AVALC) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` @@ -571,7 +571,7 @@ parm_visit_ref <- crossing( adgdssf <- adgdssf %>% derive_expected_records( dataset_ref = parm_visit_ref, - by_vars = exprs(USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), set_values_to = exprs( filled_in = 1 ) @@ -580,7 +580,7 @@ adgdssf <- adgdssf %>% dataset = ., dataset_add = ., filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = exprs(USUBJID, AVISIT), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), set_values_to = exprs( AVAL = all(!is.na(AVAL)), PARAMCD = "COMPLALL", @@ -595,6 +595,6 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = exprs(USUBJID, PARAMCD, PARAM, AVISIT, AVALC) + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index b4b9fec3b7..cb642cfa18 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -288,7 +288,7 @@ adsl2 <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl2, - display_vars = exprs(STUDYID, USUBJID, AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) ) ``` @@ -316,7 +316,7 @@ adae <- tribble( adae1 <- adae %>% derive_vars_joined( dataset_add = phase_ref, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), filter_join = PHSDT <= ASTDT & ASTDT <= PHEDT, join_type = "all" ) @@ -358,7 +358,7 @@ adsl <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(STUDYID, USUBJID, TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT) ) ``` @@ -385,7 +385,7 @@ adae <- tribble( adae2 <- adae %>% derive_vars_joined( dataset_add = period_ref, - by_vars = exprs(STUDYID, USUBJID), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(APERIOD, TRTA), join_vars = exprs(APERSDT, APEREDT), join_type = "all", From 84794a103069c10d2c3fd22315f447066373853e Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Thu, 30 May 2024 14:17:30 -0400 Subject: [PATCH 04/22] ran styler::style_file("inst/templates/ad_adex.R") to address Code Style error in pull request check --- inst/templates/ad_adex.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index c449c693b7..287579804b 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -37,13 +37,13 @@ ex <- convert_blanks_to_na(ex) ex <- ex %>% mutate( EXADJ = case_when( - USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ "ADVERSE EVENT", - USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ "MEDICATION ERROR", + USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ "ADVERSE EVENT", + USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ "MEDICATION ERROR", TRUE ~ NA_character_ ), EXDOSE = case_when( - USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ 0, - USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ 0, + USUBJID == "01-701-1034" & VISIT %in% c("WEEK 2", "WEEK 24") ~ 0, + USUBJID == "01-701-1148" & VISIT %in% c("WEEK 24") ~ 0, TRUE ~ EXDOSE ) ) %>% From 2157bba719a45bf64d0d74a16fab9be8720d52af Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 10:34:38 -0400 Subject: [PATCH 05/22] change instances of by = get_admiral_option(...) to by_vars =. Also removed "!!!" from get_admiral_options as we do not neednto use unquoting where it is an argument --- inst/templates/ad_adae.R | 8 ++++---- inst/templates/ad_adcm.R | 4 ++-- inst/templates/ad_adeg.R | 6 +++--- inst/templates/ad_adex.R | 6 +++--- inst/templates/ad_adlb.R | 6 +++--- inst/templates/ad_adlbhy.R | 2 +- inst/templates/ad_admh.R | 8 ++++---- inst/templates/ad_adpc.R | 20 ++++++++++---------- inst/templates/ad_adpp.R | 4 ++-- inst/templates/ad_adppk.R | 18 +++++++++--------- inst/templates/ad_adsl.R | 20 ++++++++++---------- inst/templates/ad_advs.R | 10 +++++----- vignettes/admiral.Rmd | 6 +++--- vignettes/adsl.Rmd | 26 +++++++++++++------------- vignettes/bds_exposure.Rmd | 6 +++--- vignettes/bds_finding.Rmd | 10 +++++----- vignettes/bds_tte.Rmd | 4 ++-- vignettes/higher_order.Rmd | 6 +++--- vignettes/hys_law.Rmd | 2 +- vignettes/occds.Rmd | 6 +++--- vignettes/pk_adnca.Rmd | 34 +++++++++++++++++----------------- vignettes/questionnaires.Rmd | 6 +++--- vignettes/visits_periods.Rmd | 4 ++-- 23 files changed, 111 insertions(+), 111 deletions(-) diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index de274accfd..9be8b37198 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -88,7 +88,7 @@ adae <- adae %>% ## Derive last dose date/time ---- derive_vars_joined( dataset_add = ex_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" @@ -128,7 +128,7 @@ adae <- adae %>% adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index 2b3702b139..92eb17a2e2 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -36,7 +36,7 @@ adcm <- cm %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -132,7 +132,7 @@ adcm <- adcm %>% adcm <- adcm %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index fea4b4ca39..bf67dc5205 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -105,7 +105,7 @@ adeg <- eg %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Calculate ADTM, ADY ---- derive_vars_dtm( @@ -306,7 +306,7 @@ adeg <- adeg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -329,7 +329,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 287579804b..9e4135b37a 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -63,7 +63,7 @@ adex0 <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Calculate ASTDTM, AENDTM using `derive_vars_dtm()` ---- derive_vars_dtm( @@ -306,7 +306,7 @@ adex <- adex %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -315,7 +315,7 @@ adex <- adex %>% adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index b8d2d88ea4..82a8eab9df 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -92,7 +92,7 @@ adlb <- lb %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -428,7 +428,7 @@ adlb <- adlb %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM), check_type = "error" ) @@ -437,7 +437,7 @@ adlb <- adlb %>% adlb <- adlb %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 0870bfc55e..e3f95ee3d6 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index 9e80b09ab1..d5e32046ef 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -41,7 +41,7 @@ admh <- mh %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Derive dates (ASTDT, AEDT, ...) ---- # Derive analysis start date and flag @@ -82,7 +82,7 @@ admh <- mh %>% )) %>% ## Derive occurrence flags ---- derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ASTDT, MHSEQ), new_var = AOCCFL, mode = "first" @@ -101,7 +101,7 @@ admh <- mh %>% ) %>% # (company specific occurrence flag variables derivation) derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(!!!get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), new_var = AOCPFL, mode = "first" @@ -159,7 +159,7 @@ admh <- restrict_derivation( admh <- admh %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 0c463fed5b..30b29e1c0d 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -202,7 +202,7 @@ adpc_first_dose <- pc_dates %>% adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -221,7 +221,7 @@ adpc_prev <- adpc_first_dose %>% adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -240,7 +240,7 @@ adpc_next <- adpc_prev %>% adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -256,7 +256,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -462,7 +462,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -482,13 +482,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -502,7 +502,7 @@ adpc_baselines <- adpc_aseq %>% adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adpp.R b/inst/templates/ad_adpp.R index f6c8838c07..3acade0c83 100644 --- a/inst/templates/ad_adpp.R +++ b/inst/templates/ad_adpp.R @@ -87,7 +87,7 @@ adpp_pp <- pp %>% derive_vars_merged( dataset_add = admiral_adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -144,7 +144,7 @@ adpp_avisit <- adpp_aval %>% adpp <- adpp_avisit %>% derive_vars_merged( dataset_add = select(admiral_adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 472a5f1771..413d0ccec4 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -54,7 +54,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -79,7 +79,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -178,7 +178,7 @@ adppk_first_dose <- pc_dates %>% adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -197,7 +197,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -324,7 +324,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -417,18 +417,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -455,7 +455,7 @@ covar_vslb <- covar %>% adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/inst/templates/ad_adsl.R b/inst/templates/ad_adsl.R index 6df6859177..4925133af6 100644 --- a/inst/templates/ad_adsl.R +++ b/inst/templates/ad_adsl.R @@ -130,7 +130,7 @@ adsl <- dm %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## derive treatment end date (TRTEDTM) ---- derive_vars_merged( @@ -141,7 +141,7 @@ adsl <- dm %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Derive treatment end/start date TRTSDT/TRTEDT ---- derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% @@ -160,20 +160,20 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(SCRFDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD == "SCREEN FAILURE" ) %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) %>% # EOS status derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)), missing_values = exprs(EOSSTT = "ONGOING") @@ -181,7 +181,7 @@ adsl <- adsl %>% # Last retrieval date derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(FRVDT = DSSTDT), filter_add = DSCAT == "OTHER EVENT" & DSDECOD == "FINAL RETRIEVAL VISIT" ) %>% @@ -189,7 +189,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(RANDDT = DSSTDT) ) %>% # Death date - impute partial date to first day/month @@ -214,7 +214,7 @@ adsl <- adsl %>% ) %>% # Cause of Death and Traceability Variables derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -247,7 +247,7 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -290,7 +290,7 @@ adsl <- adsl %>% ) %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) %>% diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index a521998270..fab099c0b5 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -81,7 +81,7 @@ advs <- vs %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -122,7 +122,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Derive Body Mass Index derive_param_bmi( @@ -130,7 +130,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = exprs(get_admiral_option("subject_keys")) ) @@ -275,7 +275,7 @@ advs <- advs %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -290,7 +290,7 @@ advs <- advs %>% advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index 44f7a495dd..32dd8c485b 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -128,7 +128,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -208,7 +208,7 @@ of the Final Lab Visit Date (`FINLABDT`) in the example below: adsl <- dm %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(FINLABDT = convert_dtc_to_dt(DSSTDTC)), filter_add = DSDECOD == "FINAL LAB VISIT" ) @@ -250,7 +250,7 @@ below we use `filter_extreme()` to extract the most recent MAP records in `advs` advs_lastmap <- advs %>% filter(PARAMCD == "MAP") %>% filter_extreme( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(AVISITN, PARAMCD), mode = "last" ) diff --git a/vignettes/adsl.Rmd b/vignettes/adsl.Rmd index 8d5e5f3fb4..a117c763f6 100644 --- a/vignettes/adsl.Rmd +++ b/vignettes/adsl.Rmd @@ -147,7 +147,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% derive_vars_merged( dataset_add = ex_ext, @@ -157,7 +157,7 @@ adsl <- adsl %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -215,7 +215,7 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) @@ -272,7 +272,7 @@ set to `"ONGOING"` by specifying the `missing_values` argument. adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)), missing_values = exprs(EOSSTT = "ONGOING") @@ -305,7 +305,7 @@ will map `DCSREAS` as `DSDECOD`, and `DCSREASP` as `DSTERM` if `DSDECOD` is not adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(DCSREAS = DSDECOD, DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & !(DSDECOD %in% c("SCREEN FAILURE", "COMPLETED", NA)) @@ -333,14 +333,14 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(DCSREAS = DSDECOD), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %notin% c("SCREEN FAILURE", "COMPLETED", NA) ) %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %in% "OTHER" ) @@ -360,7 +360,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(RANDDT = DSSTDT) ) ``` @@ -431,7 +431,7 @@ An example call to `derive_vars_extreme_event()` would be: ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -468,7 +468,7 @@ that domain). The traceability variables should be added to the `event()` calls adsl <- adsl %>% select(-DTHCAUS) %>% # remove it before deriving it again derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -556,7 +556,7 @@ day and month to the first): ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -613,7 +613,7 @@ Traceability variables can be added by specifying the variables in the `set_valu adsl <- adsl %>% select(-LSTALVDT) %>% # created in the previous call derive_vars_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), events = list( event( dataset_name = "ae", @@ -733,7 +733,7 @@ An example of an implementation could be: adsl <- adsl %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index ed8170cb73..139fd5ae99 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -82,7 +82,7 @@ adex <- derive_vars_merged( ex, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -579,7 +579,7 @@ example call is: adex <- derive_var_obs_number( adex, new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -600,7 +600,7 @@ If needed, the other `ADSL` variables can now be added: adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` ## Add Labels and Attributes {#attributes} diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index f7588bf774..ac126802e2 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -86,7 +86,7 @@ advs <- derive_vars_merged( vs, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -319,7 +319,7 @@ advs <- derive_param_bsa( set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = exprs(get_admiral_option("subject_keys")) ) advs <- derive_param_bmi( @@ -328,7 +328,7 @@ advs <- derive_param_bmi( set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -832,7 +832,7 @@ example call is: advs <- derive_var_obs_number( advs, new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN), check_type = "error" ) @@ -890,7 +890,7 @@ List of ADSL variables already merged held in vector `adsl_vars` advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index 12fe73032e..cd2ffc42fe 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -642,7 +642,7 @@ The `{admiral}` function `derive_var_obs_number()` can be used to derive `ASEQ`: ```{r eval=TRUE} adtte <- derive_var_obs_number( adtte, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD), check_type = "error" ) @@ -662,7 +662,7 @@ adtte <- derive_vars_merged( adtte, dataset_add = adsl, new_vars = exprs(ARMCD, ARM, ACTARMCD, ACTARM, AGE, SEX), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` diff --git a/vignettes/higher_order.Rmd b/vignettes/higher_order.Rmd index 970ecb2471..a6c26518ec 100644 --- a/vignettes/higher_order.Rmd +++ b/vignettes/higher_order.Rmd @@ -209,7 +209,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEVFL, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(TEMP_AESEVN, AESTDY, AESEQ), mode = "first" ), @@ -247,7 +247,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV2FL, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ), derivation_slice( filter = AESTDY >= 1, @@ -286,7 +286,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV3FL, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ), derivation_slice( filter = AESEV == "SEVERE", diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index db0d9f1fd5..d0b0c8da13 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -113,7 +113,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADY), join_type = "all", filter_join = 0 <= ADT.join - ADT & ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index c07d34b71b..289b35cecc 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -79,7 +79,7 @@ adae <- derive_vars_merged( ae, dataset_add = adsl, new_vars = adsl_vars, - by = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -239,7 +239,7 @@ ex_single <- derive_vars_dtm( adae <- derive_vars_joined( adae, ex_single, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -485,7 +485,7 @@ If needed, the other `ADSL` variables can now be added: adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index ba44396055..363fac479a 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -175,7 +175,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -219,7 +219,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -383,7 +383,7 @@ previous dose (`ADTM_prev)`, we also keep the actual dose amount adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -418,7 +418,7 @@ and the next analysis visit `AVISIT_next`. adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -457,7 +457,7 @@ parameter uses the nominal relative times, e.g. `NFRLT > NFRLT.join`. adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -473,7 +473,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -844,7 +844,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -881,13 +881,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -912,7 +912,7 @@ If needed, the other `ADSL` variables can now be added: adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) ``` @@ -1025,7 +1025,7 @@ and nominal time. We will use `derive_vars_joined()` as we did for adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -1044,7 +1044,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -1228,7 +1228,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -1359,18 +1359,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -1413,7 +1413,7 @@ Finally, we combine the covariates with the `ADPPK` data. adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index 9c35798746..c4f4151d8b 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -88,7 +88,7 @@ adqs <- qs %>% derive_vars_merged( dataset_add = adsl, new_vars = exprs(TRTSDT, DTHCAUS), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = exprs(get_admiral_option("subject_keys")) ) %>% # Add analysis parameter variables mutate( @@ -222,7 +222,7 @@ adgdssf <- adgdssf %>% derive_var_pchg() %>% # Derive sequence number derive_var_obs_number( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT), check_type = "error" ) @@ -571,7 +571,7 @@ parm_visit_ref <- crossing( adgdssf <- adgdssf %>% derive_expected_records( dataset_ref = parm_visit_ref, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), set_values_to = exprs( filled_in = 1 ) diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index cb642cfa18..ab7efd1724 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -316,7 +316,7 @@ adae <- tribble( adae1 <- adae %>% derive_vars_joined( dataset_add = phase_ref, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), filter_join = PHSDT <= ASTDT & ASTDT <= PHEDT, join_type = "all" ) @@ -385,7 +385,7 @@ adae <- tribble( adae2 <- adae %>% derive_vars_joined( dataset_add = period_ref, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = exprs(get_admiral_option("subject_keys")), new_vars = exprs(APERIOD, TRTA), join_vars = exprs(APERSDT, APEREDT), join_type = "all", From e2638ed5f359dc1de6acce4d72cf2bad4b5b6ba2 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 10:38:39 -0400 Subject: [PATCH 06/22] Updated News.md --- NEWS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS.md b/NEWS.md index 07bd18bfab..2d831c2b0b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -11,6 +11,7 @@ - New `country_code_lookup()` metadata added to decode countries based on [ISO 3166 codes](https://www.iso.org/iso-3166-country-codes.html). (#2388) ## Updates of Existing Functions +- Replaced hard coding of `expr(USUBJID, STUDYID)` and `expr(USUBJID)` with `get_admiral_option("subject_keys")` so the argument is flexible and can be changed from the default by the user. (#2415) - Templates for ADPC, ADPPK and ADPP are updated to handle urine records. (#2392) From 80b9cf299d18cc0c939c6a9902b95b9cd0e13ec2 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 13:14:40 -0400 Subject: [PATCH 07/22] fixed syntax and remoced expr() from around get_admiral_options(...). Also ran styler() on ad.adcm.rm ad_adae, and occds.Rmd --- R/duplicates.R | 3 ++- inst/templates/ad_adae.R | 8 ++++---- inst/templates/ad_adcm.R | 4 ++-- inst/templates/ad_adeg.R | 6 +++--- inst/templates/ad_adex.R | 6 +++--- inst/templates/ad_adlb.R | 6 +++--- inst/templates/ad_adlbhy.R | 2 +- inst/templates/ad_admh.R | 8 ++++---- inst/templates/ad_adpc.R | 20 +++++++++---------- inst/templates/ad_adpp.R | 4 ++-- inst/templates/ad_adppk.R | 18 ++++++++--------- inst/templates/ad_adsl.R | 20 +++++++++---------- inst/templates/ad_advs.R | 10 +++++----- man/signal_duplicate_records.Rd | 2 +- vignettes/admiral.Rmd | 6 +++--- vignettes/adsl.Rmd | 26 ++++++++++++------------- vignettes/bds_exposure.Rmd | 6 +++--- vignettes/bds_finding.Rmd | 10 +++++----- vignettes/bds_tte.Rmd | 4 ++-- vignettes/higher_order.Rmd | 6 +++--- vignettes/hys_law.Rmd | 2 +- vignettes/occds.Rmd | 6 +++--- vignettes/pk_adnca.Rmd | 34 ++++++++++++++++----------------- vignettes/questionnaires.Rmd | 6 +++--- vignettes/visits_periods.Rmd | 4 ++-- 25 files changed, 114 insertions(+), 113 deletions(-) diff --git a/R/duplicates.R b/R/duplicates.R index d5de01aa3c..7af84275c8 100644 --- a/R/duplicates.R +++ b/R/duplicates.R @@ -108,7 +108,8 @@ extract_duplicate_records <- function(dataset, by_vars) { #' signal_duplicate_records(adsl, exprs(USUBJID), cnd_type = "message") signal_duplicate_records <- function(dataset, by_vars, - msg = "Dataset contains duplicate records with respect to {.var {replace_values_by_names(by_vars)}}", # nolint + msg = "Dataset contains duplicate records with respect to + {.var {replace_values_by_names(by_vars)}}", # nolint cnd_type = "error") { assert_expr_list(by_vars) assert_data_frame(dataset, required_vars = extract_vars(by_vars), check_is_grouped = FALSE) diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index 9be8b37198..bb2f5891d7 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -88,7 +88,7 @@ adae <- adae %>% ## Derive last dose date/time ---- derive_vars_joined( dataset_add = ex_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" @@ -128,7 +128,7 @@ adae <- adae %>% adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index 92eb17a2e2..e23b7870c4 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -36,7 +36,7 @@ adcm <- cm %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -132,7 +132,7 @@ adcm <- adcm %>% adcm <- adcm %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index bf67dc5205..8823dee98a 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -105,7 +105,7 @@ adeg <- eg %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ADTM, ADY ---- derive_vars_dtm( @@ -306,7 +306,7 @@ adeg <- adeg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -329,7 +329,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 9e4135b37a..2533dd3240 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -63,7 +63,7 @@ adex0 <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ASTDTM, AENDTM using `derive_vars_dtm()` ---- derive_vars_dtm( @@ -306,7 +306,7 @@ adex <- adex %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -315,7 +315,7 @@ adex <- adex %>% adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index 82a8eab9df..aa7fdb2258 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -92,7 +92,7 @@ adlb <- lb %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -428,7 +428,7 @@ adlb <- adlb %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM), check_type = "error" ) @@ -437,7 +437,7 @@ adlb <- adlb %>% adlb <- adlb %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index e3f95ee3d6..efada5e56d 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index d5e32046ef..645701ecc7 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -41,7 +41,7 @@ admh <- mh %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive dates (ASTDT, AEDT, ...) ---- # Derive analysis start date and flag @@ -82,7 +82,7 @@ admh <- mh %>% )) %>% ## Derive occurrence flags ---- derive_var_extreme_flag( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ASTDT, MHSEQ), new_var = AOCCFL, mode = "first" @@ -101,7 +101,7 @@ admh <- mh %>% ) %>% # (company specific occurrence flag variables derivation) derive_var_extreme_flag( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(!!!get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), new_var = AOCPFL, mode = "first" @@ -159,7 +159,7 @@ admh <- restrict_derivation( admh <- admh %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 30b29e1c0d..d684ef6eba 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -202,7 +202,7 @@ adpc_first_dose <- pc_dates %>% adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -221,7 +221,7 @@ adpc_prev <- adpc_first_dose %>% adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -240,7 +240,7 @@ adpc_next <- adpc_prev %>% adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -256,7 +256,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -462,7 +462,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -482,13 +482,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -502,7 +502,7 @@ adpc_baselines <- adpc_aseq %>% adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adpp.R b/inst/templates/ad_adpp.R index 3acade0c83..eb4d11236a 100644 --- a/inst/templates/ad_adpp.R +++ b/inst/templates/ad_adpp.R @@ -87,7 +87,7 @@ adpp_pp <- pp %>% derive_vars_merged( dataset_add = admiral_adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -144,7 +144,7 @@ adpp_avisit <- adpp_aval %>% adpp <- adpp_avisit %>% derive_vars_merged( dataset_add = select(admiral_adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 413d0ccec4..b460d613e2 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -54,7 +54,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -79,7 +79,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -178,7 +178,7 @@ adppk_first_dose <- pc_dates %>% adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -197,7 +197,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -324,7 +324,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -417,18 +417,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -455,7 +455,7 @@ covar_vslb <- covar %>% adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/inst/templates/ad_adsl.R b/inst/templates/ad_adsl.R index 4925133af6..428326c601 100644 --- a/inst/templates/ad_adsl.R +++ b/inst/templates/ad_adsl.R @@ -130,7 +130,7 @@ adsl <- dm %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## derive treatment end date (TRTEDTM) ---- derive_vars_merged( @@ -141,7 +141,7 @@ adsl <- dm %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive treatment end/start date TRTSDT/TRTEDT ---- derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% @@ -160,20 +160,20 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(SCRFDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD == "SCREEN FAILURE" ) %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) %>% # EOS status derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)), missing_values = exprs(EOSSTT = "ONGOING") @@ -181,7 +181,7 @@ adsl <- adsl %>% # Last retrieval date derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(FRVDT = DSSTDT), filter_add = DSCAT == "OTHER EVENT" & DSDECOD == "FINAL RETRIEVAL VISIT" ) %>% @@ -189,7 +189,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(RANDDT = DSSTDT) ) %>% # Death date - impute partial date to first day/month @@ -214,7 +214,7 @@ adsl <- adsl %>% ) %>% # Cause of Death and Traceability Variables derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -247,7 +247,7 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -290,7 +290,7 @@ adsl <- adsl %>% ) %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) %>% diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index fab099c0b5..9b6b45400b 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -81,7 +81,7 @@ advs <- vs %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -122,7 +122,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) %>% # Derive Body Mass Index derive_param_bmi( @@ -130,7 +130,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) @@ -275,7 +275,7 @@ advs <- advs %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -290,7 +290,7 @@ advs <- advs %>% advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/man/signal_duplicate_records.Rd b/man/signal_duplicate_records.Rd index 076bc3cbaf..0ae321a7f2 100644 --- a/man/signal_duplicate_records.Rd +++ b/man/signal_duplicate_records.Rd @@ -8,7 +8,7 @@ signal_duplicate_records( dataset, by_vars, msg = - "Dataset contains duplicate records with respect to {.var {replace_values_by_names(by_vars)}}", + "Dataset contains duplicate records with respect to\\n {.var {replace_values_by_names(by_vars)}}", cnd_type = "error" ) } diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index 32dd8c485b..f009dd0223 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -128,7 +128,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -208,7 +208,7 @@ of the Final Lab Visit Date (`FINLABDT`) in the example below: adsl <- dm %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(FINLABDT = convert_dtc_to_dt(DSSTDTC)), filter_add = DSDECOD == "FINAL LAB VISIT" ) @@ -250,7 +250,7 @@ below we use `filter_extreme()` to extract the most recent MAP records in `advs` advs_lastmap <- advs %>% filter(PARAMCD == "MAP") %>% filter_extreme( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN, PARAMCD), mode = "last" ) diff --git a/vignettes/adsl.Rmd b/vignettes/adsl.Rmd index a117c763f6..3df26ae469 100644 --- a/vignettes/adsl.Rmd +++ b/vignettes/adsl.Rmd @@ -147,7 +147,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% derive_vars_merged( dataset_add = ex_ext, @@ -157,7 +157,7 @@ adsl <- adsl %>% new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM, EXSEQ), mode = "last", - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -215,7 +215,7 @@ ds_ext <- derive_vars_dt( adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(EOSDT = DSSTDT), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD != "SCREEN FAILURE" ) @@ -272,7 +272,7 @@ set to `"ONGOING"` by specifying the `missing_values` argument. adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), filter_add = DSCAT == "DISPOSITION EVENT", new_vars = exprs(EOSSTT = format_eosstt(DSDECOD)), missing_values = exprs(EOSSTT = "ONGOING") @@ -305,7 +305,7 @@ will map `DCSREAS` as `DSDECOD`, and `DCSREASP` as `DSTERM` if `DSDECOD` is not adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(DCSREAS = DSDECOD, DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & !(DSDECOD %in% c("SCREEN FAILURE", "COMPLETED", NA)) @@ -333,14 +333,14 @@ adsl <- adsl %>% adsl <- adsl %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(DCSREAS = DSDECOD), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %notin% c("SCREEN FAILURE", "COMPLETED", NA) ) %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(DCSREASP = DSTERM), filter_add = DSCAT == "DISPOSITION EVENT" & DSDECOD %in% "OTHER" ) @@ -360,7 +360,7 @@ adsl <- adsl %>% derive_vars_merged( dataset_add = ds_ext, filter_add = DSDECOD == "RANDOMIZED", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(RANDDT = DSSTDT) ) ``` @@ -431,7 +431,7 @@ An example call to `derive_vars_extreme_event()` would be: ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -468,7 +468,7 @@ that domain). The traceability variables should be added to the `event()` calls adsl <- adsl %>% select(-DTHCAUS) %>% # remove it before deriving it again derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -556,7 +556,7 @@ day and month to the first): ```{r eval=TRUE} adsl <- adsl %>% derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -613,7 +613,7 @@ Traceability variables can be added by specifying the variables in the `set_valu adsl <- adsl %>% select(-LSTALVDT) %>% # created in the previous call derive_vars_extreme_event( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", @@ -733,7 +733,7 @@ An example of an implementation could be: adsl <- adsl %>% derive_var_merged_exist_flag( dataset_add = ex, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_var = SAFFL, condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO"))) ) diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index 139fd5ae99..09d7f44c4c 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -82,7 +82,7 @@ adex <- derive_vars_merged( ex, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -579,7 +579,7 @@ example call is: adex <- derive_var_obs_number( adex, new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -600,7 +600,7 @@ If needed, the other `ADSL` variables can now be added: adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` ## Add Labels and Attributes {#attributes} diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index ac126802e2..88ae64988c 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -86,7 +86,7 @@ advs <- derive_vars_merged( vs, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -319,7 +319,7 @@ advs <- derive_param_bsa( set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) advs <- derive_param_bmi( @@ -328,7 +328,7 @@ advs <- derive_param_bmi( set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) ``` @@ -832,7 +832,7 @@ example call is: advs <- derive_var_obs_number( advs, new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN), check_type = "error" ) @@ -890,7 +890,7 @@ List of ADSL variables already merged held in vector `adsl_vars` advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index cd2ffc42fe..6ec45c2eb0 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -642,7 +642,7 @@ The `{admiral}` function `derive_var_obs_number()` can be used to derive `ASEQ`: ```{r eval=TRUE} adtte <- derive_var_obs_number( adtte, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD), check_type = "error" ) @@ -662,7 +662,7 @@ adtte <- derive_vars_merged( adtte, dataset_add = adsl, new_vars = exprs(ARMCD, ARM, ACTARMCD, ACTARM, AGE, SEX), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` diff --git a/vignettes/higher_order.Rmd b/vignettes/higher_order.Rmd index a6c26518ec..3d262e9865 100644 --- a/vignettes/higher_order.Rmd +++ b/vignettes/higher_order.Rmd @@ -209,7 +209,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEVFL, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(TEMP_AESEVN, AESTDY, AESEQ), mode = "first" ), @@ -247,7 +247,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV2FL, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ), derivation_slice( filter = AESTDY >= 1, @@ -286,7 +286,7 @@ ae <- ae %>% derivation = derive_var_extreme_flag, args = params( new_var = AHSEV3FL, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ), derivation_slice( filter = AESEV == "SEVERE", diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index d0b0c8da13..3736512381 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -113,7 +113,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADY), join_type = "all", filter_join = 0 <= ADT.join - ADT & ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index 289b35cecc..ca99d247b5 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -79,7 +79,7 @@ adae <- derive_vars_merged( ae, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -239,7 +239,7 @@ ex_single <- derive_vars_dtm( adae <- derive_vars_joined( adae, ex_single, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -485,7 +485,7 @@ If needed, the other `ADSL` variables can now be added: adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index 363fac479a..e0a741827e 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -175,7 +175,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -219,7 +219,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -383,7 +383,7 @@ previous dose (`ADTM_prev)`, we also keep the actual dose amount adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -418,7 +418,7 @@ and the next analysis visit `AVISIT_next`. adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -457,7 +457,7 @@ parameter uses the nominal relative times, e.g. `NFRLT > NFRLT.join`. adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -473,7 +473,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -844,7 +844,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -881,13 +881,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -912,7 +912,7 @@ If needed, the other `ADSL` variables can now be added: adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -1025,7 +1025,7 @@ and nominal time. We will use `derive_vars_joined()` as we did for adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -1044,7 +1044,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -1228,7 +1228,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -1359,18 +1359,18 @@ covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -1413,7 +1413,7 @@ Finally, we combine the covariates with the `ADPPK` data. adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index c4f4151d8b..23d9ceecd7 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -88,7 +88,7 @@ adqs <- qs %>% derive_vars_merged( dataset_add = adsl, new_vars = exprs(TRTSDT, DTHCAUS), - by_vars = exprs(get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Add analysis parameter variables mutate( @@ -222,7 +222,7 @@ adgdssf <- adgdssf %>% derive_var_pchg() %>% # Derive sequence number derive_var_obs_number( - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT), check_type = "error" ) @@ -571,7 +571,7 @@ parm_visit_ref <- crossing( adgdssf <- adgdssf %>% derive_expected_records( dataset_ref = parm_visit_ref, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), set_values_to = exprs( filled_in = 1 ) diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index ab7efd1724..0a8faf7aee 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -316,7 +316,7 @@ adae <- tribble( adae1 <- adae %>% derive_vars_joined( dataset_add = phase_ref, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), filter_join = PHSDT <= ASTDT & ASTDT <= PHEDT, join_type = "all" ) @@ -385,7 +385,7 @@ adae <- tribble( adae2 <- adae %>% derive_vars_joined( dataset_add = period_ref, - by_vars = exprs(get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(APERIOD, TRTA), join_vars = exprs(APERSDT, APEREDT), join_type = "all", From 3628b0b04f0f81c326d34089e10b441fa9cab85a Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 13:20:13 -0400 Subject: [PATCH 08/22] styler function ran on templates wasnt in last push --- inst/templates/ad_adae.R | 2 +- inst/templates/ad_adcm.R | 2 +- vignettes/occds.Rmd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index bb2f5891d7..8c1f718fe0 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive analysis start time ---- derive_vars_dtm( diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index e23b7870c4..6ab911a372 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -36,7 +36,7 @@ adcm <- cm %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive analysis start time ---- derive_vars_dtm( diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index ca99d247b5..45306ba723 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -79,7 +79,7 @@ adae <- derive_vars_merged( ae, dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = get_admiral_option("subject_keys") ) ``` From b56823fe197a0d21ff7417526224f46c95f5aab1 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 13:29:26 -0400 Subject: [PATCH 09/22] Missed some get_admiral_option syntax changes that werentt included in last pushs --- inst/templates/ad_adcm.R | 2 +- inst/templates/ad_adeg.R | 20 ++++++------- inst/templates/ad_adex.R | 4 +-- inst/templates/ad_adlb.R | 28 +++++++++---------- inst/templates/ad_adlbhy.R | 4 +-- inst/templates/ad_admh.R | 18 ++++++------ inst/templates/ad_adpc.R | 4 +-- inst/templates/ad_adppk.R | 2 +- inst/templates/ad_advs.R | 18 ++++++------ vignettes/admiral.Rmd | 12 ++++---- vignettes/adsl.Rmd | 32 ++++++++++----------- vignettes/bds_exposure.Rmd | 22 +++++++-------- vignettes/bds_finding.Rmd | 54 ++++++++++++++++++------------------ vignettes/bds_tte.Rmd | 18 ++++++------ vignettes/higher_order.Rmd | 18 ++++++------ vignettes/hys_law.Rmd | 2 +- vignettes/pk_adnca.Rmd | 6 ++-- vignettes/questionnaires.Rmd | 50 ++++++++++++++++----------------- vignettes/visits_periods.Rmd | 4 +-- 19 files changed, 159 insertions(+), 159 deletions(-) diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index 6ab911a372..ae86ba14d3 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -97,7 +97,7 @@ adcm <- adcm %>% derivation = derive_var_extreme_flag, args = params( new_var = AOCCPFL, - by_vars = exprs(!!!get_admiral_option("subject_keys"), CMDECOD), + by_vars = get_admiral_option("subject_keys"), CMDECOD), order = exprs(ASTDTM, CMSEQ), mode = "first" ), diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index 8823dee98a..dced481f14 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -137,7 +137,7 @@ adeg <- adeg %>% # Derive RRR derive_param_rr( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), set_values_to = exprs(PARAMCD = "RRR"), hr_code = "HR", get_unit_expr = tolower(EGSTRESU), @@ -145,7 +145,7 @@ adeg <- adeg %>% ) %>% # Derive QTCBR derive_param_qtc( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Bazett", set_values_to = exprs(PARAMCD = "QTCBR"), qt_code = "QT", @@ -155,7 +155,7 @@ adeg <- adeg %>% ) %>% # Derive QTCFR derive_param_qtc( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), qt_code = "QT", @@ -165,7 +165,7 @@ adeg <- adeg %>% ) %>% # Derive QTLCR derive_param_qtc( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), method = "Sagie", set_values_to = exprs(PARAMCD = "QTLCR"), qt_code = "QT", @@ -202,7 +202,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_summary_records( dataset_add = adeg, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT), filter_add = dplyr::n() >= 2 & PARAMCD != "EGINTP", set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), @@ -245,7 +245,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, EGSEQ), new_var = ABLFL, mode = "last" @@ -260,19 +260,19 @@ adeg <- adeg %>% adeg <- adeg %>% # Calculate BASE derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -286,7 +286,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 2533dd3240..b512190a03 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -159,7 +159,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) ) %>% # W2-W24 exposure call_derivation( @@ -208,7 +208,7 @@ adex <- adex %>% ), dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index aa7fdb2258..236fd8ddbd 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -131,7 +131,7 @@ adlb <- adlb %>% adlb <- adlb %>% # Derive absolute Basophils derive_param_wbc_abs( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), set_values_to = exprs( PARAMCD = "BASO", PARAM = "Basophils Abs (10^9/L)", @@ -144,7 +144,7 @@ adlb <- adlb %>% ) %>% # Derive absolute Lymphocytes derive_param_wbc_abs( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -196,7 +196,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, LBSEQ), new_var = ABLFL, mode = "last" @@ -208,19 +208,19 @@ adlb <- adlb %>% adlb <- adlb %>% # Calculate BASE derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -294,19 +294,19 @@ adlb <- adlb %>% derive_var_atoxgr() %>% # Derive baseline toxicity grade for low values BTOXGRL derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGRL, new_var = BTOXGRL ) %>% # Derive baseline toxicity grade for high values BTOXGRH derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGRH, new_var = BTOXGRH ) %>% # Derive baseline toxicity grade for for overall grade BTOXGR derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ATOXGR, new_var = BTOXGR ) @@ -353,7 +353,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT), + by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" @@ -363,7 +363,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT, AVAL), new_var = LVOTFL, mode = "last" @@ -386,7 +386,7 @@ adlb <- adlb %>% # get MINIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(AVAL, ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -399,7 +399,7 @@ adlb <- adlb %>% # get MAXIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(desc(AVAL), ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -412,7 +412,7 @@ adlb <- adlb %>% # get LOV value derive_extreme_records( dataset_add = adlb, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), order = exprs(ADT, AVISITN), mode = "last", filter_add = (ONTRTFL == "Y"), diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index efada5e56d..2586474731 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -32,7 +32,7 @@ adlb_annotated <- adlb %>% ., derivation = derive_var_merged_exist_flag, dataset_add = ., - by_vars = exprs(!!!get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), + by_vars = get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), variable_params = list( params( new_var = CRIT1FL, @@ -79,7 +79,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit + by_vars = get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN" diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index 645701ecc7..9e11158d80 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -88,33 +88,33 @@ admh <- mh %>% mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS), - order = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = get_admiral_option("subject_keys"), MHBODSYS), + order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), MHDECOD), - order = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = get_admiral_option("subject_keys"), MHDECOD), + order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCPFL, mode = "first" ) %>% # (company specific occurrence flag variables derivation) derive_var_extreme_flag( by_vars = get_admiral_option("subject_keys"), - order = exprs(!!!get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), + order = get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), new_var = AOCPFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), MHBODSYS), - order = exprs(!!!get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), + by_vars = get_admiral_option("subject_keys"), MHBODSYS), + order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), new_var = AOCPSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), MHDECOD), - order = exprs(!!!get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + by_vars = get_admiral_option("subject_keys"), MHDECOD), + order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCPPFL, mode = "first" ) %>% diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index d684ef6eba..20d7845c4c 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -185,7 +185,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) + by_vars = get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -448,7 +448,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% adpc_base <- adpc_dtype %>% derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index b460d613e2..2e21b7a225 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -161,7 +161,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) + by_vars = get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 9b6b45400b..8f751dea6d 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -110,14 +110,14 @@ advs <- advs %>% # Derive Mean Arterial Pressure derive_param_map( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) ) %>% # Derive Body Surface Area derive_param_bsa( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -126,7 +126,7 @@ advs <- advs %>% ) %>% # Derive Body Mass Index derive_param_bmi( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), @@ -158,7 +158,7 @@ advs <- advs %>% advs <- advs %>% derive_summary_records( dataset_add = advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), filter_add = !is.na(AVAL), set_values_to = exprs( AVAL = mean(AVAL), @@ -197,7 +197,7 @@ advs <- advs %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, VSSEQ), new_var = ABLFL, mode = "last" @@ -210,7 +210,7 @@ advs <- advs %>% advs <- advs %>% # Calculate BASE derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% @@ -224,7 +224,7 @@ advs <- advs %>% # ) %>% # Calculate BNRIND derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -240,7 +240,7 @@ advs <- advs %>% derivation = derive_var_extreme_flag, args = params( new_var = ANL01FL, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), order = exprs(ADT, AVAL), mode = "last" ), @@ -255,7 +255,7 @@ advs <- advs %>% # Create End of Treatment Record derive_extreme_records( dataset_add = advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, ATPTN), + by_vars = get_admiral_option("subject_keys"), PARAMCD, ATPTN), order = exprs(ADT, AVISITN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 13 & ANL01FL == "Y" & is.na(DTYPE)), diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index f009dd0223..b856f908cb 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -135,7 +135,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTSDTM, TRTSTMF) + display_vars = get_admiral_option("subject_keys"), TRTSDTM, TRTSTMF) ) ``` @@ -151,7 +151,7 @@ the variable values for the new derived record. ```{r eval=TRUE} advs <- advs %>% derive_param_computed( - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, AVISITN), + by_vars = get_admiral_option("subject_keys"), AVISIT, AVISITN), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP + 2 * AVAL.DIABP) / 3, @@ -166,7 +166,7 @@ advs <- advs %>% advs %>% arrange(!!!get_admiral_option("subject_keys"), AVISITN, PARAMCD) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) + display_vars = get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` @@ -217,7 +217,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), FINLABDT) + display_vars = get_admiral_option("subject_keys"), FINLABDT) ) ``` @@ -233,7 +233,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, RFSTDT) + display_vars = get_admiral_option("subject_keys"), RFSTDTC, RFSTDT) ) ``` @@ -259,7 +259,7 @@ advs_lastmap <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs_lastmap, - display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) + display_vars = get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` diff --git a/vignettes/adsl.Rmd b/vignettes/adsl.Rmd index 3df26ae469..fe77af129e 100644 --- a/vignettes/adsl.Rmd +++ b/vignettes/adsl.Rmd @@ -88,7 +88,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM) + display_vars = get_admiral_option("subject_keys"), RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM) ) ``` @@ -186,7 +186,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD) + display_vars = get_admiral_option("subject_keys"), RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD) ) ``` @@ -225,14 +225,14 @@ The `ds_ext` dataset: ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ds_ext, - display_vars = exprs(!!!get_admiral_option("subject_keys"), DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC), + display_vars = get_admiral_option("subject_keys"), DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC), filter = DSDECOD != "SCREEN FAILURE" ) ``` The `adsl` dataset: ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT)) +dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT)) ``` The `derive_vars_dt()` function allows to impute partial dates as well. If @@ -280,7 +280,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT)) +dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT)) ``` This call would return the input dataset with the column `EOSSTT` added. @@ -313,7 +313,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) ``` This call would return the input dataset with the column `DCSREAS` and `DCSREASP` added. @@ -347,7 +347,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) ``` ### Randomization Date (`RANDDT`) {#randomization_date} @@ -369,7 +369,7 @@ adsl <- adsl %>% This call would return the input dataset with the column `RANDDT` is added. ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = exprs(!!!get_admiral_option("subject_keys"), RANDDT)) +dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), RANDDT)) ``` ## Derive Death Variables {#death} @@ -390,7 +390,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHFL)) +dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHFL)) ``` This call would return the input dataset with the columns `DTHDT` added and, by @@ -455,7 +455,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), EOSDT, DTHDTC, DTHDT, DTHCAUS), + display_vars = get_admiral_option("subject_keys"), EOSDT, DTHDTC, DTHDT, DTHCAUS), filter = DTHFL == "Y" ) ``` @@ -492,7 +492,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ), + display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ), filter = DTHFL == "Y" ) ``` @@ -540,7 +540,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD), + display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD), filter = DTHFL == "Y" ) ``` @@ -602,7 +602,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT), + display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT), filter = !is.na(TRTSDT) ) ``` @@ -665,7 +665,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR), + display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR), filter = !is.na(TRTSDT) ) ``` @@ -718,7 +718,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), AGE, SEX, COUNTRY, AGEGR1, REGION1) + display_vars = get_admiral_option("subject_keys"), AGE, SEX, COUNTRY, AGEGR1, REGION1) ) ``` @@ -742,7 +742,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTSDT, ARM, ACTARM, SAFFL) + display_vars = get_admiral_option("subject_keys"), TRTSDT, ARM, ACTARM, SAFFL) ) ``` diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index 09d7f44c4c..b40a66d128 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -136,7 +136,7 @@ adex <- derive_vars_dt(adex, new_vars_prefix = "AEN", dtc = EXENDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) + display_vars = get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) ) ``` @@ -163,7 +163,7 @@ adex <- derive_vars_dtm( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) + display_vars = get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) ) ``` @@ -260,7 +260,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) + display_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) ) ``` @@ -277,13 +277,13 @@ frequency to a corresponding set of records each representing one dose (i.e. ```{r eval=TRUE, echo=TRUE} single_dose <- adex %>% filter(USUBJID == "01-701-1015" & EXSTDY == 1) %>% - create_single_dose_dataset(keep_source_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) + create_single_dose_dataset(keep_source_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( single_dose, - display_vars = exprs(!!!get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) + display_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) ) ``` @@ -346,7 +346,7 @@ count(adex, PARAMCD) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, VISIT, desc(PARAMCD), EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) + dataset_vignette(display_vars = get_admiral_option("subject_keys"), VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) ``` ## Create Summary Records {#summaryrec} @@ -362,7 +362,7 @@ For example, to calculate the total dose by subject and treatment, adex <- derive_param_exposure( adex, dataset_add = adex, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars), input_code = "DOSE", set_values_to = exprs( PARAMCD = "TDOSE", @@ -442,7 +442,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars) + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) ) count(adex, PARAMCD, PARCAT1) @@ -466,7 +466,7 @@ specified in the `by_vars` argument will be populated in this new record. ```{r eval=TRUE, echo=TRUE} adex <- adex %>% derive_param_doseint( - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars), set_values_to = exprs(PARAMCD = "TNDOSINT"), tadm_code = "TDOSE", tpadm_code = "TPDOSE" @@ -567,7 +567,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, AVALCAT1, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) + dataset_vignette(display_vars = get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) ``` ## Assign `ASEQ` {#aseq} @@ -588,7 +588,7 @@ adex <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) + display_vars = get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) ) ``` diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 88ae64988c..7a975fae82 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -93,7 +93,7 @@ advs <- derive_vars_merged( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), + display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), filter = VSTESTCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -113,7 +113,7 @@ advs <- derive_vars_dt(advs, new_vars_prefix = "A", dtc = VSDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT), + display_vars = get_admiral_option("subject_keys"), VISIT, VSDTC, ADT), filter = VSTESTCD == "DIABP" ) ``` @@ -147,7 +147,7 @@ advs <- derive_vars_dt( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT, ADTF), + display_vars = get_admiral_option("subject_keys"), VISIT, VSDTC, ADT, ADTF), filter = USUBJID == "01-716-1024" ) ``` @@ -188,7 +188,7 @@ advs <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ADT, ADY, TRTSDT), + display_vars = get_admiral_option("subject_keys"), VISIT, ADT, ADY, TRTSDT), filter = USUBJID == "01-716-1024" ) ``` @@ -293,7 +293,7 @@ Example 3 in section below [Derive New Rows](#additional) for alternative way of ```{r eval=TRUE} advs <- derive_param_map( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) @@ -314,7 +314,7 @@ Likewise, function call below, to create parameter `Body Surface Area` (BSA) and ```{r eval=TRUE} advs <- derive_param_bsa( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -324,7 +324,7 @@ advs <- derive_param_bsa( advs <- derive_param_bmi( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), @@ -335,7 +335,7 @@ advs <- derive_param_bmi( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs, USUBJID, VISITNUM, VSTPTNUM, ADT, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), + display_vars = get_admiral_option("subject_keys"), VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), filter = PARAMCD %in% c("BSA", "BMI") ) ``` @@ -354,7 +354,7 @@ adeg <- tibble::tribble( adeg <- derive_param_qtc( adeg, - by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), + by_vars = get_admiral_option("subject_keys"), VISIT), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), get_unit_expr = EGSTRESU @@ -375,7 +375,7 @@ adlb <- tibble::tribble( derive_param_wbc_abs( dataset = adlb, - by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), + by_vars = get_admiral_option("subject_keys"), VISIT), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -615,7 +615,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, ATPTN, VISITNUM), new_var = ABLFL, mode = "last" @@ -627,7 +627,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), + display_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -641,14 +641,14 @@ Lastly, the `BASE`, and `BNRIND` columns can be derived using the `{admiral}` f ```{r eval=TRUE} advs <- derive_var_base( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) advs <- derive_var_base( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) @@ -657,7 +657,7 @@ advs <- derive_var_base( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), + display_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -678,7 +678,7 @@ advs <- derive_var_pchg(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, CHG, PCHG), + display_vars = get_admiral_option("subject_keys"), VISIT, BASE, AVAL, CHG, PCHG), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -728,7 +728,7 @@ advs <- derive_var_analysis_ratio(advs, ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), + display_vars = get_admiral_option("subject_keys"), VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -754,7 +754,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN, AVAL), new_var = ANL01FL, mode = "last" @@ -766,7 +766,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), + display_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -781,7 +781,7 @@ advs <- slice_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), + by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN), new_var = WORSTFL, mode = "first" @@ -801,7 +801,7 @@ advs <- slice_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), + display_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), filter = USUBJID == "01-701-1015" & WORSTFL == "Y" ) ``` @@ -924,7 +924,7 @@ assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT, AVISITN, ATPTN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y"), @@ -954,7 +954,7 @@ and assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(AVAL, ADT, AVISITN, ATPTN), mode = "first", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y" & !is.na(AVAL)), @@ -988,7 +988,7 @@ Set `DTYPE` to `AVERAGE`. advs_ex2 <- derive_summary_records( advs, dataset_add = advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT), + by_vars = get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT), set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), DTYPE = "AVERAGE" @@ -999,7 +999,7 @@ advs_ex2 <- derive_summary_records( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex2, USUBJID, PARAMCD, VISITNUM, ADT, DTYPE), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT, AVAL, DTYPE), + display_vars = get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT, AVAL, DTYPE), filter = USUBJID == "01-701-1015" ) ``` @@ -1016,7 +1016,7 @@ Below is an example of creating `Mean Arterial Pressure` ```{r eval=TRUE} advs_ex3 <- derive_param_computed( advs, - by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ATPT), + by_vars = get_admiral_option("subject_keys"), VISIT, ATPT), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP - AVAL.DIABP) / 3 + AVAL.DIABP, @@ -1029,7 +1029,7 @@ advs_ex3 <- derive_param_computed( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex3, !!!get_admiral_option("subject_keys"), VISIT, ATPT, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISIT, ATPT, AVAL), + display_vars = get_admiral_option("subject_keys"), PARAMCD, VISIT, ATPT, AVAL), filter = USUBJID == "01-701-1015" & PARAMCD %in% c("MAP2", "SYSBP", "DIABP") ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index 6ec45c2eb0..326708f311 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -148,7 +148,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) ) ``` @@ -190,7 +190,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) ) ``` @@ -239,7 +239,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(!!!get_admiral_option("subject_keys"), EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT) + display_vars = get_admiral_option("subject_keys"), EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT) ) # save adtte and adsl for next section adtte_bak <- adtte @@ -282,7 +282,7 @@ adsl <- tibble::tribble( dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), DTHFL, DTHDT, TRTSDT, TRTSDTF) + display_vars = get_admiral_option("subject_keys"), DTHFL, DTHDT, TRTSDT, TRTSDTF) ) ``` @@ -309,7 +309,7 @@ adrs <- tibble::tribble( dataset_vignette( adrs, - display_vars = exprs(!!!get_admiral_option("subject_keys"), AVALC, ADT, ASEQ, PARAMCD, PARAM) + display_vars = get_admiral_option("subject_keys"), AVALC, ADT, ASEQ, PARAMCD, PARAM) ) ``` @@ -410,7 +410,7 @@ dataset_vignette( !!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, ADTF, CNSR, EVNTDESC, SRCDOM, SRCVAR ), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, ADTF, CNSR) + display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, ADTF, CNSR) ) ``` @@ -505,7 +505,7 @@ adaette <- call_derivation( adaette %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% - dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + dataset_vignette(display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) ``` ### Deriving Time-to-Event Parameters Using By Groups @@ -605,7 +605,7 @@ dataset_vignette( !!!get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, PARCAT1, PARCAT2, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR, SRCSEQ ), - display_vars = exprs(!!!get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ) + display_vars = get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ) ) ``` @@ -669,7 +669,7 @@ adtte <- derive_vars_merged( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX) + display_vars = get_admiral_option("subject_keys"), PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX) ) ``` diff --git a/vignettes/higher_order.Rmd b/vignettes/higher_order.Rmd index 3d262e9865..415b9421f8 100644 --- a/vignettes/higher_order.Rmd +++ b/vignettes/higher_order.Rmd @@ -87,13 +87,13 @@ Here is an example of how to achieve this **without** using `call_derivation()`: ```{r} vs_without <- vs %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), + by_vars = get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ), new_var = AHIFL, mode = "last" ) %>% derive_var_extreme_flag( - by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), + by_vars = get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ), new_var = ALOFL, mode = "first" @@ -104,7 +104,7 @@ vs_without <- vs %>% vs_without %>% arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -120,7 +120,7 @@ vs_with <- vs %>% params(new_var = AHIFL, mode = "last"), params(new_var = ALOFL, mode = "first") ), - by_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD), + by_vars = get_admiral_option("subject_keys"), VSTESTCD), order = exprs(VSORRES, VSSEQ) ) ``` @@ -129,7 +129,7 @@ vs_with <- vs %>% vs_with %>% arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -176,7 +176,7 @@ adaette <- call_derivation( adaette %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% - dataset_vignette(display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + dataset_vignette(display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) ``` Developing your ADaM scripts this way using `call_derivation()` could give the @@ -221,7 +221,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL) + display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL) ) ``` @@ -264,7 +264,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL) + display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL) ) ``` @@ -307,7 +307,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ) %>% dataset_vignette( - display_vars = exprs(!!!get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL) + display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL) ) ``` diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index 3736512381..0a6ac30a8b 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -154,7 +154,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit + by_vars = get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN", diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index e0a741827e..4a96ff6caa 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -348,7 +348,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) + by_vars = get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -830,7 +830,7 @@ Finally we derive `PARAM` and `PARAMN` from a lookup table. adpc_base <- adpc_dtype %>% # Derive BASE derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), + by_vars = get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" @@ -991,7 +991,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) + by_vars = get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index 23d9ceecd7..b68e48380c 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -110,7 +110,7 @@ adqs <- qs %>% ```{r echo=FALSE} dataset_vignette( arrange(adqs, USUBJID, PARCAT1, ADY, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT) ) ``` @@ -143,7 +143,7 @@ adgad7 <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GAD020[1-7]"), set_values_to = exprs( @@ -157,7 +157,7 @@ adgad7 <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgad7, USUBJID, ADY, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) ) ``` @@ -173,7 +173,7 @@ adgdssf <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), set_values_to = exprs( @@ -193,7 +193,7 @@ adgdssf <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, ADY, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) ) ``` @@ -205,7 +205,7 @@ adgdssf <- adgdssf %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = ABLFL, mode = "last" @@ -214,7 +214,7 @@ adgdssf <- adgdssf %>% ) %>% # Derive baseline and change from baseline variables derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), source_var = AVAL, new_var = BASE ) %>% @@ -231,7 +231,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( adgdssf, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG) ) ``` @@ -264,12 +264,12 @@ adgdssf <- adgdssf %>% ) ) %>% derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), source_var = AVALCAT1, new_var = BASECAT1 ) %>% derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), source_var = AVALCAT1N, new_var = BASECA1N ) %>% @@ -285,7 +285,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1) ) ``` @@ -349,7 +349,7 @@ adgdstte <- derive_param_tte( ```{r echo=FALSE} dataset_vignette( adgdstte, - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR) ) ``` @@ -365,7 +365,7 @@ later: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CDETFL, join_vars = exprs(CHGCAT1, ADY), @@ -379,7 +379,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CDETFL) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CDETFL) ) ``` @@ -391,7 +391,7 @@ argument is helpful: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CONDETFL, join_vars = exprs(CHGCAT1), @@ -407,7 +407,7 @@ adgdssf <- adgdssf %>% derive_var_joined_exist_flag( ., dataset_add = ., - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = CDTDTHFL, join_vars = exprs(CHGCAT1, ADY), @@ -422,7 +422,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL) ) ``` @@ -433,7 +433,7 @@ parameter summary functions like `all()` can be used in the filter condition: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), + by_vars = get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT), new_var = DEFDETFL, join_vars = exprs(CHGCAT1), @@ -445,7 +445,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL) ) ``` @@ -465,7 +465,7 @@ example, "no sleeping problems" is assumed if all questions were answered with adsp <- adqs %>% filter(PARCAT1 == "SLEEPING PROBLEMS") %>% derive_extreme_event( - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), + by_vars = get_admiral_option("subject_keys"), AVISIT), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADY, QSSEQ), mode = "first", @@ -516,7 +516,7 @@ adsp <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adsp, USUBJID, ADY, PARAMCD), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` @@ -529,7 +529,7 @@ adgdssf <- adgdssf %>% derive_summary_records( dataset_add = adgdssf, filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), + by_vars = get_admiral_option("subject_keys"), AVISIT), set_values_to = exprs( AVAL = sum(!is.na(AVAL)) / 15 >= 0.9, PARAMCD = "COMPL90P", @@ -542,7 +542,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` @@ -580,7 +580,7 @@ adgdssf <- adgdssf %>% dataset = ., dataset_add = ., filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT), + by_vars = get_admiral_option("subject_keys"), AVISIT), set_values_to = exprs( AVAL = all(!is.na(AVAL)), PARAMCD = "COMPLALL", @@ -595,6 +595,6 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) ) ``` diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index 0a8faf7aee..bd57f3a83e 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -288,7 +288,7 @@ adsl2 <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl2, - display_vars = exprs(!!!get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) ) ``` @@ -358,7 +358,7 @@ adsl <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = get_admiral_option("subject_keys"), TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT) ) ``` From 61fd719a85b945ac93779e8d18a809d2b5fb751b Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 19:43:24 -0400 Subject: [PATCH 10/22] Addressed additional get_admiral_option(...) syntax issues --- inst/templates/ad_adcm.R | 2 +- inst/templates/ad_adeg.R | 20 +++--- inst/templates/ad_adex.R | 16 ++--- inst/templates/ad_adlb.R | 28 ++++---- inst/templates/ad_adlbhy.R | 4 +- inst/templates/ad_admh.R | 8 +-- inst/templates/ad_adpc.R | 12 ++-- inst/templates/ad_adppk.R | 8 +-- inst/templates/ad_advs.R | 18 +++--- vignettes/admiral.Rmd | 12 ++-- vignettes/adsl.Rmd | 32 +++++----- vignettes/bds_exposure.Rmd | 74 ++++++++++----------- vignettes/bds_finding.Rmd | 54 ++++++++-------- vignettes/bds_tte.Rmd | 25 +++++--- vignettes/higher_order.Rmd | 18 +++--- vignettes/hys_law.Rmd | 2 +- vignettes/occds.Rmd | 37 ++++++----- vignettes/pk_adnca.Rmd | 120 ++++++++++++++++++++--------------- vignettes/questionnaires.Rmd | 50 +++++++-------- vignettes/visits_periods.Rmd | 4 +- 20 files changed, 288 insertions(+), 256 deletions(-) diff --git a/inst/templates/ad_adcm.R b/inst/templates/ad_adcm.R index ae86ba14d3..16ce9f9cd3 100644 --- a/inst/templates/ad_adcm.R +++ b/inst/templates/ad_adcm.R @@ -97,7 +97,7 @@ adcm <- adcm %>% derivation = derive_var_extreme_flag, args = params( new_var = AOCCPFL, - by_vars = get_admiral_option("subject_keys"), CMDECOD), + by_vars = c(get_admiral_option("subject_keys"), exprs(CMDECOD)), order = exprs(ASTDTM, CMSEQ), mode = "first" ), diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index dced481f14..4101294913 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -137,7 +137,7 @@ adeg <- adeg %>% # Derive RRR derive_param_rr( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), set_values_to = exprs(PARAMCD = "RRR"), hr_code = "HR", get_unit_expr = tolower(EGSTRESU), @@ -145,7 +145,7 @@ adeg <- adeg %>% ) %>% # Derive QTCBR derive_param_qtc( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Bazett", set_values_to = exprs(PARAMCD = "QTCBR"), qt_code = "QT", @@ -155,7 +155,7 @@ adeg <- adeg %>% ) %>% # Derive QTCFR derive_param_qtc( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), qt_code = "QT", @@ -165,7 +165,7 @@ adeg <- adeg %>% ) %>% # Derive QTLCR derive_param_qtc( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Sagie", set_values_to = exprs(PARAMCD = "QTLCR"), qt_code = "QT", @@ -202,7 +202,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_summary_records( dataset_add = adeg, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT)), filter_add = dplyr::n() >= 2 & PARAMCD != "EGINTP", set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), @@ -245,7 +245,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), order = exprs(ADT, VISITNUM, EGSEQ), new_var = ABLFL, mode = "last" @@ -260,19 +260,19 @@ adeg <- adeg %>% adeg <- adeg %>% # Calculate BASE derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ANRIND, new_var = BNRIND ) %>% @@ -286,7 +286,7 @@ adeg <- adeg %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, ATPT, DTYPE)), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index b512190a03..25e2ebff10 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -159,7 +159,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) ) %>% # W2-W24 exposure call_derivation( @@ -208,7 +208,7 @@ adex <- adex %>% ), dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( @@ -225,9 +225,9 @@ adex <- adex %>% tpadm_code = "PPDOSE" ) ), - by_vars = exprs( - !!!get_admiral_option("subject_keys"), !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - ) + by_vars = c( + get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT + )) ) %>% # Overall/W2-24 Average daily dose call_derivation( @@ -248,9 +248,9 @@ adex <- adex %>% ) ) ), - by_vars = exprs( - !!!get_admiral_option("subject_keys"), !!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - ) + by_vars = c( + get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT + )) ) # Part 4: Derive/Assign the last required variables ---- diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index 236fd8ddbd..f2974894f0 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -131,7 +131,7 @@ adlb <- adlb %>% adlb <- adlb %>% # Derive absolute Basophils derive_param_wbc_abs( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY)), set_values_to = exprs( PARAMCD = "BASO", PARAM = "Basophils Abs (10^9/L)", @@ -144,7 +144,7 @@ adlb <- adlb %>% ) %>% # Derive absolute Lymphocytes derive_param_wbc_abs( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY)), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -196,7 +196,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), order = exprs(ADT, VISITNUM, LBSEQ), new_var = ABLFL, mode = "last" @@ -208,19 +208,19 @@ adlb <- adlb %>% adlb <- adlb %>% # Calculate BASE derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVALC, new_var = BASEC ) %>% # Calculate BNRIND derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ANRIND, new_var = BNRIND ) %>% @@ -294,19 +294,19 @@ adlb <- adlb %>% derive_var_atoxgr() %>% # Derive baseline toxicity grade for low values BTOXGRL derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ATOXGRL, new_var = BTOXGRL ) %>% # Derive baseline toxicity grade for high values BTOXGRH derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ATOXGRH, new_var = BTOXGRH ) %>% # Derive baseline toxicity grade for for overall grade BTOXGR derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ATOXGR, new_var = BTOXGR ) @@ -353,7 +353,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT)), order = exprs(ADT, AVAL), new_var = ANL01FL, mode = "last" @@ -363,7 +363,7 @@ adlb <- adlb %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT, AVAL), new_var = LVOTFL, mode = "last" @@ -386,7 +386,7 @@ adlb <- adlb %>% # get MINIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), order = exprs(AVAL, ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -399,7 +399,7 @@ adlb <- adlb %>% # get MAXIMUM value derive_extreme_records( dataset_add = adlb, - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), order = exprs(desc(AVAL), ADT, AVISITN), mode = "first", filter_add = (!is.na(AVAL) & ONTRTFL == "Y"), @@ -412,7 +412,7 @@ adlb <- adlb %>% # get LOV value derive_extreme_records( dataset_add = adlb, - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), order = exprs(ADT, AVISITN), mode = "last", filter_add = (ONTRTFL == "Y"), diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 2586474731..d5296df361 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -32,7 +32,7 @@ adlb_annotated <- adlb %>% ., derivation = derive_var_merged_exist_flag, dataset_add = ., - by_vars = get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), + by_vars = c(get_admiral_option("subject_keys"), exprs(LBSEQ, PARAMCD, ADT)), variable_params = list( params( new_var = CRIT1FL, @@ -79,7 +79,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit + by_vars = c(get_admiral_option("subject_keys"), exprs(TRT01A)), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN" diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index 9e11158d80..e8e22d402c 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -88,13 +88,13 @@ admh <- mh %>% mode = "first" ) %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), MHBODSYS), + by_vars = c(get_admiral_option("subject_keys"), exprs(MHBODSYS)), order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), MHDECOD), + by_vars = c(get_admiral_option("subject_keys"), exprs(MHDECOD)), order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCCPFL, mode = "first" @@ -107,13 +107,13 @@ admh <- mh %>% mode = "first" ) %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), MHBODSYS), + by_vars = c(get_admiral_option("subject_keys"), exprs(MHBODSYS)), order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), new_var = AOCPSFL, mode = "first" ) %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), MHDECOD), + by_vars = c(get_admiral_option("subject_keys"), exprs(MHDECOD)), order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), new_var = AOCPPFL, mode = "first" diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 20d7845c4c..9212db81cc 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -151,12 +151,12 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + keep_source_vars = c( + get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - ) + )) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -185,8 +185,8 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = get_admiral_option("subject_keys"), DRUG) - ) %>% + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG) + )) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -448,7 +448,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% adpc_base <- adpc_dtype %>% derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARCAT1, BASETYPE)), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 2e21b7a225..b9a80cf101 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -128,12 +128,12 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + keep_source_vars = c( + get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - ) + )) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -161,7 +161,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = get_admiral_option("subject_keys"), DRUG) + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 8f751dea6d..1762b247e2 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -110,14 +110,14 @@ advs <- advs %>% # Derive Mean Arterial Pressure derive_param_map( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) ) %>% # Derive Body Surface Area derive_param_bsa( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -126,7 +126,7 @@ advs <- advs %>% ) %>% # Derive Body Mass Index derive_param_bmi( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), @@ -158,7 +158,7 @@ advs <- advs %>% advs <- advs %>% derive_summary_records( dataset_add = advs, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY)), filter_add = !is.na(AVAL), set_values_to = exprs( AVAL = mean(AVAL), @@ -197,7 +197,7 @@ advs <- advs %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), order = exprs(ADT, VISITNUM, VSSEQ), new_var = ABLFL, mode = "last" @@ -210,7 +210,7 @@ advs <- advs %>% advs <- advs %>% # Calculate BASE derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVAL, new_var = BASE ) %>% @@ -224,7 +224,7 @@ advs <- advs %>% # ) %>% # Calculate BNRIND derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ANRIND, new_var = BNRIND ) %>% @@ -240,7 +240,7 @@ advs <- advs %>% derivation = derive_var_extreme_flag, args = params( new_var = ANL01FL, - by_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, ATPT, DTYPE)), order = exprs(ADT, AVAL), mode = "last" ), @@ -255,7 +255,7 @@ advs <- advs %>% # Create End of Treatment Record derive_extreme_records( dataset_add = advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD, ATPTN), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ATPTN)), order = exprs(ADT, AVISITN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 13 & ANL01FL == "Y" & is.na(DTYPE)), diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index b856f908cb..c446aeebc4 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -135,7 +135,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTSDTM, TRTSTMF) + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTSDTM, TRTSTMF)) ) ``` @@ -151,7 +151,7 @@ the variable values for the new derived record. ```{r eval=TRUE} advs <- advs %>% derive_param_computed( - by_vars = get_admiral_option("subject_keys"), AVISIT, AVISITN), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, AVISITN)), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP + 2 * AVAL.DIABP) / 3, @@ -166,7 +166,7 @@ advs <- advs %>% advs %>% arrange(!!!get_admiral_option("subject_keys"), AVISITN, PARAMCD) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) + display_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, PARAMCD, AVAL)) ) ``` @@ -217,7 +217,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), FINLABDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(FINLABDT)) ) ``` @@ -233,7 +233,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), RFSTDTC, RFSTDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, RFSTDT)) ) ``` @@ -259,7 +259,7 @@ advs_lastmap <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs_lastmap, - display_vars = get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) + display_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, PARAMCD, AVAL)) ) ``` diff --git a/vignettes/adsl.Rmd b/vignettes/adsl.Rmd index fe77af129e..eab11b8637 100644 --- a/vignettes/adsl.Rmd +++ b/vignettes/adsl.Rmd @@ -88,7 +88,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM) + display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, COUNTRY, AGE, SEX, RACE, ETHNIC, ARM, ACTARM)) ) ``` @@ -186,7 +186,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD) + display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, TRTSDTM, TRTSDT, TRTEDTM, TRTEDT, TRTDURD)) ) ``` @@ -225,14 +225,14 @@ The `ds_ext` dataset: ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ds_ext, - display_vars = get_admiral_option("subject_keys"), DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC), + display_vars = c(get_admiral_option("subject_keys"), exprs(DSCAT, DSDECOD, DSTERM, DSSTDT, DSSTDTC)), filter = DSDECOD != "SCREEN FAILURE" ) ``` The `adsl` dataset: ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT)) +dataset_vignette(adsl, display_vars = c(get_admiral_option("subject_keys"), exprs(EOSDT))) ``` The `derive_vars_dt()` function allows to impute partial dates as well. If @@ -280,7 +280,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT)) +dataset_vignette(adsl, display_vars = c(get_admiral_option("subject_keys"), exprs(EOSDT, EOSSTT))) ``` This call would return the input dataset with the column `EOSSTT` added. @@ -313,7 +313,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = c(get_admiral_option("subject_keys"), exprs(EOSDT, EOSSTT, DCSREAS, DCSREASP))) ``` This call would return the input dataset with the column `DCSREAS` and `DCSREASP` added. @@ -347,7 +347,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), EOSDT, EOSSTT, DCSREAS, DCSREASP)) +dataset_vignette(adsl, display_vars = c(get_admiral_option("subject_keys"), exprs(EOSDT, EOSSTT, DCSREAS, DCSREASP))) ``` ### Randomization Date (`RANDDT`) {#randomization_date} @@ -369,7 +369,7 @@ adsl <- adsl %>% This call would return the input dataset with the column `RANDDT` is added. ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl, display_vars = get_admiral_option("subject_keys"), RANDDT)) +dataset_vignette(adsl, display_vars = c(get_admiral_option("subject_keys"), exprs(RANDDT))) ``` ## Derive Death Variables {#death} @@ -390,7 +390,7 @@ adsl <- adsl %>% ``` ```{r, eval=TRUE, echo=FALSE} -dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHFL)) +dataset_vignette(adsl %>% filter(!is.na(DTHDT) | row_number() %% 50 == 0), display_vars = c(get_admiral_option("subject_keys"), exprs(TRTEDT, DTHDTC, DTHDT, DTHFL))) ``` This call would return the input dataset with the columns `DTHDT` added and, by @@ -455,7 +455,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), EOSDT, DTHDTC, DTHDT, DTHCAUS), + display_vars = c(get_admiral_option("subject_keys"), exprs(EOSDT, DTHDTC, DTHDT, DTHCAUS)), filter = DTHFL == "Y" ) ``` @@ -492,7 +492,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ), + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHDOM, DTHSEQ)), filter = DTHFL == "Y" ) ``` @@ -540,7 +540,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD), + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTEDT, DTHDTC, DTHDT, DTHCAUS, DTHADY, LDDTHELD)), filter = DTHFL == "Y" ) ``` @@ -602,7 +602,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT), + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTEDT, DTHDTC, LSTALVDT)), filter = !is.na(TRTSDT) ) ``` @@ -665,7 +665,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR), + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTEDT, DTHDTC, LSTALVDT, LALVDOM, LALVSEQ, LALVVAR)), filter = !is.na(TRTSDT) ) ``` @@ -718,7 +718,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), AGE, SEX, COUNTRY, AGEGR1, REGION1) + display_vars = c(get_admiral_option("subject_keys"), exprs(AGE, SEX, COUNTRY, AGEGR1, REGION1)) ) ``` @@ -742,7 +742,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRTSDT, ARM, ACTARM, SAFFL) + display_vars = c(get_admiral_option("subject_keys"), exprs(TRTSDT, ARM, ACTARM, SAFFL)) ) ``` diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index b40a66d128..cd0b61f8d2 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -89,11 +89,11 @@ adex <- derive_vars_merged( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), EXTRT, EXDOSE, EXDOSFRQ, + display_vars = c( + get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, VISIT, EXSTDTC, EXENDTC, TRTSDTM, TRTEDTM - ) + )) ) ``` @@ -136,7 +136,7 @@ adex <- derive_vars_dt(adex, new_vars_prefix = "AEN", dtc = EXENDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT)) ) ``` @@ -163,7 +163,7 @@ adex <- derive_vars_dtm( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM)) ) ``` @@ -187,10 +187,10 @@ adex <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), - VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT + )) ) ``` @@ -212,10 +212,10 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), - VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD + )) ) ``` @@ -235,10 +235,10 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), - VISIT, ASTDT, AENDT, EXDURD, EXDURDY - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(VISIT, ASTDT, AENDT, EXDURD, EXDURDY + )) ) ``` @@ -260,7 +260,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) + display_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO)) ) ``` @@ -277,13 +277,14 @@ frequency to a corresponding set of records each representing one dose (i.e. ```{r eval=TRUE, echo=TRUE} single_dose <- adex %>% filter(USUBJID == "01-701-1015" & EXSTDY == 1) %>% - create_single_dose_dataset(keep_source_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) + create_single_dose_dataset(keep_source_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) + ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( single_dose, - display_vars = get_admiral_option("subject_keys"), EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) ) ``` @@ -346,7 +347,7 @@ count(adex, PARAMCD) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, VISIT, desc(PARAMCD), EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = get_admiral_option("subject_keys"), VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC))) ``` ## Create Summary Records {#summaryrec} @@ -362,7 +363,7 @@ For example, to calculate the total dose by subject and treatment, adex <- derive_param_exposure( adex, dataset_add = adex, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)), input_code = "DOSE", set_values_to = exprs( PARAMCD = "TDOSE", @@ -375,10 +376,10 @@ adex <- derive_param_exposure( ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs( - !!!get_admiral_option("subject_keys"), VISIT, + dataset_vignette(display_vars = + c(get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - )) + ))) ``` @@ -442,8 +443,8 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars) - ) + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) + )) count(adex, PARAMCD, PARCAT1) ``` @@ -452,10 +453,11 @@ count(adex, PARAMCD, PARCAT1) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = exprs( - !!!get_admiral_option("subject_keys"), VISIT, + dataset_vignette(display_vars = c( + get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT - )) + )) + ) ``` Dose intensity can be calculated using the function `derive_param_doseint()`. The @@ -466,7 +468,7 @@ specified in the `by_vars` argument will be populated in this new record. ```{r eval=TRUE, echo=TRUE} adex <- adex %>% derive_param_doseint( - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)), set_values_to = exprs(PARAMCD = "TNDOSINT"), tadm_code = "TDOSE", tpadm_code = "TPDOSE" @@ -477,10 +479,10 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), VISIT, EXSTDTC, EXENDTC, + display_vars = c( + get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - ) + )) ) ``` @@ -567,7 +569,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, AVALCAT1, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1))) ``` ## Assign `ASEQ` {#aseq} @@ -588,7 +590,7 @@ adex <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = get_admiral_option("subject_keys"), VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ)) ) ``` diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 7a975fae82..f36f0d932a 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -93,7 +93,7 @@ advs <- derive_vars_merged( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P)), filter = VSTESTCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -113,7 +113,7 @@ advs <- derive_vars_dt(advs, new_vars_prefix = "A", dtc = VSDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VISIT, VSDTC, ADT), + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, VSDTC, ADT)), filter = VSTESTCD == "DIABP" ) ``` @@ -147,7 +147,7 @@ advs <- derive_vars_dt( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VISIT, VSDTC, ADT, ADTF), + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, VSDTC, ADT, ADTF)), filter = USUBJID == "01-716-1024" ) ``` @@ -188,7 +188,7 @@ advs <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VISIT, ADT, ADY, TRTSDT), + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ADT, ADY, TRTSDT)), filter = USUBJID == "01-716-1024" ) ``` @@ -293,7 +293,7 @@ Example 3 in section below [Derive New Rows](#additional) for alternative way of ```{r eval=TRUE} advs <- derive_param_map( advs, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) @@ -314,7 +314,7 @@ Likewise, function call below, to create parameter `Body Surface Area` (BSA) and ```{r eval=TRUE} advs <- derive_param_bsa( advs, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -324,7 +324,7 @@ advs <- derive_param_bsa( advs <- derive_param_bmi( advs, - by_vars = get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), @@ -335,7 +335,7 @@ advs <- derive_param_bmi( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs, USUBJID, VISITNUM, VSTPTNUM, ADT, PARAMCD), - display_vars = get_admiral_option("subject_keys"), VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL)), filter = PARAMCD %in% c("BSA", "BMI") ) ``` @@ -354,7 +354,7 @@ adeg <- tibble::tribble( adeg <- derive_param_qtc( adeg, - by_vars = get_admiral_option("subject_keys"), VISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT)), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), get_unit_expr = EGSTRESU @@ -375,7 +375,7 @@ adlb <- tibble::tribble( derive_param_wbc_abs( dataset = adlb, - by_vars = get_admiral_option("subject_keys"), VISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT)), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -615,7 +615,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), order = exprs(ADT, ATPTN, VISITNUM), new_var = ABLFL, mode = "last" @@ -627,7 +627,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), + display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL)), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -641,14 +641,14 @@ Lastly, the `BASE`, and `BNRIND` columns can be derived using the `{admiral}` f ```{r eval=TRUE} advs <- derive_var_base( advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = AVAL, new_var = BASE ) advs <- derive_var_base( advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), source_var = ANRIND, new_var = BNRIND ) @@ -657,7 +657,7 @@ advs <- derive_var_base( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), + display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND)), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -678,7 +678,7 @@ advs <- derive_var_pchg(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VISIT, BASE, AVAL, CHG, PCHG), + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, BASE, AVAL, CHG, PCHG)), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -728,7 +728,7 @@ advs <- derive_var_analysis_ratio(advs, ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), + display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO)), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -754,7 +754,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, AVISIT)), order = exprs(ADT, ATPTN, AVAL), new_var = ANL01FL, mode = "last" @@ -766,7 +766,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL)), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -781,7 +781,7 @@ advs <- slice_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, AVISIT)), order = exprs(ADT, ATPTN), new_var = WORSTFL, mode = "first" @@ -801,7 +801,7 @@ advs <- slice_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = get_admiral_option("subject_keys"), PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL)), filter = USUBJID == "01-701-1015" & WORSTFL == "Y" ) ``` @@ -924,7 +924,7 @@ assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT, AVISITN, ATPTN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y"), @@ -954,7 +954,7 @@ and assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(AVAL, ADT, AVISITN, ATPTN), mode = "first", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y" & !is.na(AVAL)), @@ -988,7 +988,7 @@ Set `DTYPE` to `AVERAGE`. advs_ex2 <- derive_summary_records( advs, dataset_add = advs, - by_vars = get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISITNUM, ADT)), set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), DTYPE = "AVERAGE" @@ -999,7 +999,7 @@ advs_ex2 <- derive_summary_records( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex2, USUBJID, PARAMCD, VISITNUM, ADT, DTYPE), - display_vars = get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT, AVAL, DTYPE), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISITNUM, ADT, AVAL, DTYPE)), filter = USUBJID == "01-701-1015" ) ``` @@ -1016,7 +1016,7 @@ Below is an example of creating `Mean Arterial Pressure` ```{r eval=TRUE} advs_ex3 <- derive_param_computed( advs, - by_vars = get_admiral_option("subject_keys"), VISIT, ATPT), + by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ATPT)), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP - AVAL.DIABP) / 3 + AVAL.DIABP, @@ -1029,7 +1029,7 @@ advs_ex3 <- derive_param_computed( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex3, !!!get_admiral_option("subject_keys"), VISIT, ATPT, PARAMCD), - display_vars = get_admiral_option("subject_keys"), PARAMCD, VISIT, ATPT, AVAL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISIT, ATPT, AVAL)), filter = USUBJID == "01-701-1015" & PARAMCD %in% c("MAP2", "SYSBP", "DIABP") ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index 326708f311..858ac82012 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -148,7 +148,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, STARTDT, ADT, CNSR)) ) ``` @@ -190,7 +190,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, CNSR) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, STARTDT, ADT, CNSR)) ) ``` @@ -239,7 +239,7 @@ adtte <- derive_param_tte( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = get_admiral_option("subject_keys"), EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT) + display_vars = c(get_admiral_option("subject_keys"), exprs(EVNTDESC, SRCDOM, SRCVAR, CNSR, ADT)) ) # save adtte and adsl for next section adtte_bak <- adtte @@ -282,7 +282,7 @@ adsl <- tibble::tribble( dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), DTHFL, DTHDT, TRTSDT, TRTSDTF) + display_vars = c(get_admiral_option("subject_keys"), exprs(DTHFL, DTHDT, TRTSDT, TRTSDTF)) ) ``` @@ -306,10 +306,11 @@ adrs <- tibble::tribble( PARAM = "Overall Response" ) %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADT, ASEQ, AVALC) + dataset_vignette( adrs, - display_vars = get_admiral_option("subject_keys"), AVALC, ADT, ASEQ, PARAMCD, PARAM) + display_vars = c(get_admiral_option("subject_keys"), exprs(AVALC, ADT, ASEQ, PARAMCD, PARAM)) ) ``` @@ -409,8 +410,9 @@ dataset_vignette( select( !!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, ADTF, CNSR, EVNTDESC, SRCDOM, SRCVAR - ), - display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, ADTF, CNSR) + ) + , + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, ADTF, CNSR)) ) ``` @@ -505,7 +507,10 @@ adaette <- call_derivation( adaette %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% - dataset_vignette(display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) + ) + ) ``` ### Deriving Time-to-Event Parameters Using By Groups @@ -605,7 +610,7 @@ dataset_vignette( !!!get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, PARCAT1, PARCAT2, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR, SRCSEQ ), - display_vars = get_admiral_option("subject_keys"), STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ) + display_vars = c(get_admiral_option("subject_keys"), exprs(STARTDT, PARAMCD, PARAM, ADT, CNSR, SRCSEQ)) ) ``` @@ -669,7 +674,7 @@ adtte <- derive_vars_merged( ```{r, echo=FALSE} dataset_vignette( adtte, - display_vars = get_admiral_option("subject_keys"), PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, CNSR, AVAL, ARMCD, AGE, SEX)) ) ``` diff --git a/vignettes/higher_order.Rmd b/vignettes/higher_order.Rmd index 415b9421f8..af0dd40c39 100644 --- a/vignettes/higher_order.Rmd +++ b/vignettes/higher_order.Rmd @@ -87,13 +87,13 @@ Here is an example of how to achieve this **without** using `call_derivation()`: ```{r} vs_without <- vs %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), VSTESTCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD)), order = exprs(VSORRES, VSSEQ), new_var = AHIFL, mode = "last" ) %>% derive_var_extreme_flag( - by_vars = get_admiral_option("subject_keys"), VSTESTCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD)), order = exprs(VSORRES, VSSEQ), new_var = ALOFL, mode = "first" @@ -104,7 +104,7 @@ vs_without <- vs %>% vs_without %>% arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VSORRES, ALOFL, AHIFL)), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -120,7 +120,7 @@ vs_with <- vs %>% params(new_var = AHIFL, mode = "last"), params(new_var = ALOFL, mode = "first") ), - by_vars = get_admiral_option("subject_keys"), VSTESTCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD)), order = exprs(VSORRES, VSSEQ) ) ``` @@ -129,7 +129,7 @@ vs_with <- vs %>% vs_with %>% arrange(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDY, VSSEQ) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), VSTESTCD, VSORRES, ALOFL, AHIFL), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VSORRES, ALOFL, AHIFL)), filter = VSTESTCD %in% c("TEMP", "WEIGHT") ) ``` @@ -176,7 +176,7 @@ adaette <- call_derivation( adaette %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% - dataset_vignette(display_vars = get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR)) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR))) ``` Developing your ADaM scripts this way using `call_derivation()` could give the @@ -221,7 +221,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL) + display_vars = c(get_admiral_option("subject_keys"), exprs(AEDECOD, AESTDY, AESEQ, AESEV, AHSEVFL)) ) ``` @@ -264,7 +264,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ, desc(TEMP_AESEVN)) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL) + display_vars = c(get_admiral_option("subject_keys"), exprs(AEDECOD, AESTDY, AESEQ, AESEV, AHSEV2FL)) ) ``` @@ -307,7 +307,7 @@ ae <- ae %>% ae %>% arrange(!!!get_admiral_option("subject_keys"), AESTDY, AESEQ) %>% dataset_vignette( - display_vars = get_admiral_option("subject_keys"), AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL) + display_vars = c(get_admiral_option("subject_keys"), exprs(AEDECOD, AESTDY, AESEQ, AESEV, AHSEV3FL)) ) ``` diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index 0a6ac30a8b..333bf59196 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -154,7 +154,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit + by_vars = c(get_admiral_option("subject_keys"), exprs(TRT01A)), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN", diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index 45306ba723..ef645c5666 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -86,9 +86,9 @@ adae <- derive_vars_merged( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AESEQ, AETERM, AESTDTC, TRTSDT, + display_vars = c(get_admiral_option("subject_keys"), exprs(AESEQ, AETERM, AESTDTC, TRTSDT, TRTEDT, TRT01A, TRT01P, DTHDT, EOSDT + ) ) ) ``` @@ -127,9 +127,10 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDTM, ASTDT, - ASTDY, AENDTM, AENDT, AENDY + display_vars = c(get_admiral_option("subject_keys"), + exprs(AESTDTC, AEENDTC, ASTDTM, ASTDT, + ASTDY, AENDTM, AENDT, AENDY + ) ) ) ``` @@ -154,9 +155,10 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDT, AENDT, + display_vars = c(get_admiral_option("subject_keys"), + exprs(AESTDTC, AEENDTC, ASTDT, AENDT, ADURN, ADURU + ) ) ) ``` @@ -253,9 +255,10 @@ adae <- derive_vars_joined( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AEDECOD, AESEQ, AESTDTC, AEENDTC, + display_vars = c(get_admiral_option("subject_keys"), + exprs(AEDECOD, AESEQ, AESTDTC, AEENDTC, ASTDT, AENDT, LDOSEDTM + ) ) ) ``` @@ -291,9 +294,10 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), TRTSDT, TRTEDT, AESTDTC, ASTDT, + display_vars = c(get_admiral_option("subject_keys"), + exprs(TRTSDT, TRTEDT, AESTDTC, ASTDT, TRTEMFL + ) ) ) ``` @@ -405,8 +409,9 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL + display_vars = c(get_admiral_option("subject_keys"), + exprs(ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL + ) ) ) ``` @@ -492,10 +497,10 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AEDECOD, ASTDTM, DTHDT, RFSTDTC, + display_vars = c( + get_admiral_option("subject_keys"), exprs(AEDECOD, ASTDTM, DTHDT, RFSTDTC, RFENDTC, AGE, AGEU, SEX - ) + )) ) ``` diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index 4a96ff6caa..5b293bfa22 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -199,8 +199,9 @@ pc_dates <- pc %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( pc_dates, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), PCTEST, ADTM, VISIT, PCTPT, NFRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(PCTEST, ADTM, VISIT, PCTPT, NFRLT + ) ) ) ``` @@ -258,8 +259,9 @@ ex_dates <- ex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ex_dates, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), EXTRT, EXDOSFRQ, ASTDTM, AENDTM, VISIT, VISITDY, NFRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(EXTRT, EXDOSFRQ, ASTDTM, AENDTM, + VISIT,VISITDY, NFRLT) ) ) ``` @@ -297,11 +299,11 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = exprs( - STUDYID, !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + keep_source_vars = c( + get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - ) + )) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -323,8 +325,9 @@ ex_exp <- ex_dates %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ex_exp, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), DRUG, EXDOSFRQ, ASTDTM, AENDTM, AVISIT, NFRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(DRUG,EXDOSFRQ, ASTDTM, AENDTM, + AVISIT, NFRLT) ) ) ``` @@ -348,7 +351,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = get_admiral_option("subject_keys"), DRUG) + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -357,14 +360,16 @@ adpc_first_dose <- pc_dates %>% mutate( AVISITN = NFRLT %/% 24 + 1, AVISIT = paste("Day", AVISITN) - ) + ) + ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_first_dose, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, ADTM, PCTPT + display_vars = c( + get_admiral_option("subject_keys"), exprs(FANLDTM, AVISIT, ADTM, PCTPT + ) ) ) ``` @@ -401,8 +406,10 @@ adpc_prev <- adpc_first_dose %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_prev, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), VISIT, ADTM, VISIT, PCTPT, ADTM_prev, EXDOSE_prev, AVISIT_prev + display_vars = c(get_admiral_option("subject_keys"), + exprs(VISIT, ADTM, VISIT, PCTPT, + ADTM_prev, EXDOSE_prev, AVISIT_prev + ) ) ) ``` @@ -436,9 +443,9 @@ adpc_next <- adpc_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_next, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), - VISIT, ADTM, VISIT, PCTPT, ADTM_next, EXDOSE_next, AVISIT_next + display_vars = c(get_admiral_option("subject_keys"), + exprs(VISIT, ADTM, VISIT, PCTPT, ADTM_next, EXDOSE_next, + AVISIT_next) ) ) ``` @@ -488,8 +495,9 @@ adpc_nom_next <- adpc_nom_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_nom_next, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), NFRLT, PCTPT, NFRLT_prev, NFRLT_next + display_vars = c(get_admiral_option("subject_keys"), + exprs(NFRLT, PCTPT, NFRLT_prev, NFRLT_next + ) ) ) ``` @@ -582,8 +590,9 @@ adpc_arrlt <- bind_rows(adpc_nom_next, ex_exp) %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_arrlt, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, PCTPT, AFRLT, ARRLT, AXRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(FANLDTM, AVISIT, PCTPT, AFRLT, + ARRLT, AXRLT) ) ) ``` @@ -610,8 +619,9 @@ adpc_nrrlt <- adpc_arrlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_nrrlt, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), AVISIT, PCTPT, NFRLT, NRRLT, NXRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(AVISIT, PCTPT, NFRLT, NRRLT, NXRLT + ) ) ) ``` @@ -720,8 +730,9 @@ adpc_aval <- adpc_nrrlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_aval, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), NFRLT, AVISIT, ATPT, ABLFL, ATPTREF, AVAL, AVALCAT1 + display_vars = c(get_admiral_option("subject_keys"), + exprs(NFRLT, AVISIT, ATPT, ABLFL, + ATPTREF, AVAL, AVALCAT1) ) ) ``` @@ -774,8 +785,9 @@ dtype <- adpc_aval %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( dtype, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), DTYPE, ATPT, NFRLT, NRRLT, AFRLT, ARRLT, BASETYPE + display_vars = c(get_admiral_option("subject_keys"), + exprs(DTYPE, ATPT, NFRLT, NRRLT, + AFRLT, ARRLT, BASETYPE) ) ) ``` @@ -808,9 +820,11 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% ```{r, eval=TRUE, echo=FALSE} adpc_dtype %>% - dataset_vignette(display_vars = exprs( - !!!get_admiral_option("subject_keys"), BASETYPE, ADTM, ATPT, NFRLT, NRRLT, ARRLT, MRRLT - )) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, ADTM, + ATPT, NFRLT, NRRLT, + ARRLT, MRRLT) + ) + ) ``` ## Calculate Change from Baseline and Assign `ASEQ` {#aseq} @@ -830,7 +844,7 @@ Finally we derive `PARAM` and `PARAMN` from a lookup table. adpc_base <- adpc_dtype %>% # Derive BASE derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARCAT1, BASETYPE)), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" @@ -862,9 +876,10 @@ adpc_aseq <- adpc_chg %>% ```{r, eval=TRUE, echo=FALSE} adpc_aseq %>% - dataset_vignette(display_vars = exprs( - !!!get_admiral_option("subject_keys"), BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG - )) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG + ) + ) +) ``` ## Add Additional Baseline Variables {#baselines} @@ -898,9 +913,9 @@ adpc_baselines <- adpc_aseq %>% ```{r, eval=TRUE, echo=FALSE} adpc_baselines %>% - dataset_vignette(display_vars = exprs( - !!!get_admiral_option("subject_keys"), HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL - )) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL) + ) +) ``` ## Add the `ADSL` variables {#adsl_vars} @@ -991,7 +1006,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = get_admiral_option("subject_keys"), DRUG) + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -1006,8 +1021,9 @@ adppk_first_dose <- pc_dates %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_first_dose, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), FANLDTM, AVISIT, ADTM, PCTPT + display_vars = c(get_admiral_option("subject_keys"), + exprs(FANLDTM, AVISIT, ADTM, PCTPT + ) ) ) ``` @@ -1059,8 +1075,10 @@ adppk_nom_prev <- adppk_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_nom_prev, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), VISIT, ADTM, VISIT, PCTPT, ADTM_prev, NFRLT_prev + display_vars = c(get_admiral_option("subject_keys"), + exprs(VISIT, ADTM, VISIT, PCTPT, + ADTM_prev, NFRLT_prev + ) ) ) ``` @@ -1125,8 +1143,9 @@ adppk_aprlt <- bind_rows(adppk_nom_prev, ex_exp) %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_aprlt, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, NFRLT, AFRLT, APRLT, NPRLT + display_vars = c(get_admiral_option("subject_keys"), + exprs(EVID, NFRLT, AFRLT, APRLT, NPRLT + ) ) ) ``` @@ -1209,8 +1228,9 @@ adppk_aval <- adppk_aprlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_aval, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN + display_vars = c(get_admiral_option("subject_keys"), + exprs(EVID, DOSEA, AMT, NFRLT, AFRLT, + CMT, DV, MDV, BLQFN) ) ) ``` @@ -1251,9 +1271,9 @@ adppk_aseq <- adppk_aval %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_aseq, - display_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ - ) + display_vars = c( + get_admiral_option("subject_keys"), exprs(EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ + )) ) ``` diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index b68e48380c..e37d9a0703 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -110,7 +110,7 @@ adqs <- qs %>% ```{r echo=FALSE} dataset_vignette( arrange(adqs, USUBJID, PARCAT1, ADY, PARAMCD), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT)) ) ``` @@ -143,7 +143,7 @@ adgad7 <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, ADT, ADY, TRTSDT, DTHCAUS)), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GAD020[1-7]"), set_values_to = exprs( @@ -157,7 +157,7 @@ adgad7 <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgad7, USUBJID, ADY, PARAMCD), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVAL, ADY, AVISIT)) ) ``` @@ -173,7 +173,7 @@ adgdssf <- adqs %>% derive_summary_records( dataset = ., dataset_add = ., - by_vars = get_admiral_option("subject_keys"), AVISIT, ADT, ADY, TRTSDT, DTHCAUS), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, ADT, ADY, TRTSDT, DTHCAUS)), # Select records contributing to total score filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), set_values_to = exprs( @@ -193,7 +193,7 @@ adgdssf <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, ADY, PARAMCD), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, ADY, AVISIT) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVAL, ADY, AVISIT)) ) ``` @@ -205,7 +205,7 @@ adgdssf <- adgdssf %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT), new_var = ABLFL, mode = "last" @@ -214,7 +214,7 @@ adgdssf <- adgdssf %>% ) %>% # Derive baseline and change from baseline variables derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), source_var = AVAL, new_var = BASE ) %>% @@ -231,7 +231,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( adgdssf, - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVAL, BASE, CHG, PCHG)) ) ``` @@ -264,12 +264,12 @@ adgdssf <- adgdssf %>% ) ) %>% derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), source_var = AVALCAT1, new_var = BASECAT1 ) %>% derive_var_base( - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), source_var = AVALCAT1N, new_var = BASECA1N ) %>% @@ -285,7 +285,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1)) ) ``` @@ -349,7 +349,7 @@ adgdstte <- derive_param_tte( ```{r echo=FALSE} dataset_vignette( adgdstte, - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVAL, CNSR, EVNTDESC, SRCDOM, SRCVAR)) ) ``` @@ -365,7 +365,7 @@ later: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT), new_var = CDETFL, join_vars = exprs(CHGCAT1, ADY), @@ -379,7 +379,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CDETFL) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, CDETFL)) ) ``` @@ -391,7 +391,7 @@ argument is helpful: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT), new_var = CONDETFL, join_vars = exprs(CHGCAT1), @@ -407,7 +407,7 @@ adgdssf <- adgdssf %>% derive_var_joined_exist_flag( ., dataset_add = ., - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT), new_var = CDTDTHFL, join_vars = exprs(CHGCAT1, ADY), @@ -422,7 +422,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL)) ) ``` @@ -433,7 +433,7 @@ parameter summary functions like `all()` can be used in the filter condition: adgdssf <- adgdssf %>% derive_var_joined_exist_flag( dataset_add = adgdssf, - by_vars = get_admiral_option("subject_keys"), PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADT), new_var = DEFDETFL, join_vars = exprs(CHGCAT1), @@ -445,7 +445,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL)) ) ``` @@ -465,7 +465,7 @@ example, "no sleeping problems" is assumed if all questions were answered with adsp <- adqs %>% filter(PARCAT1 == "SLEEPING PROBLEMS") %>% derive_extreme_event( - by_vars = get_admiral_option("subject_keys"), AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT)), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADY, QSSEQ), mode = "first", @@ -516,7 +516,7 @@ adsp <- adqs %>% ```{r echo=FALSE} dataset_vignette( arrange(adsp, USUBJID, ADY, PARAMCD), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` @@ -529,7 +529,7 @@ adgdssf <- adgdssf %>% derive_summary_records( dataset_add = adgdssf, filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = get_admiral_option("subject_keys"), AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT)), set_values_to = exprs( AVAL = sum(!is.na(AVAL)) / 15 >= 0.9, PARAMCD = "COMPL90P", @@ -542,7 +542,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` @@ -580,7 +580,7 @@ adgdssf <- adgdssf %>% dataset = ., dataset_add = ., filter_add = str_detect(PARAMCD, "GDS02[01][0-9]"), - by_vars = get_admiral_option("subject_keys"), AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT)), set_values_to = exprs( AVAL = all(!is.na(AVAL)), PARAMCD = "COMPLALL", @@ -595,6 +595,6 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( arrange(adgdssf, USUBJID, PARAMCD, ADY), - display_vars = get_admiral_option("subject_keys"), PARAMCD, PARAM, AVISIT, AVALC) + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index bd57f3a83e..918031548e 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -288,7 +288,7 @@ adsl2 <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl2, - display_vars = get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(AP01SDT, AP01EDT, AP02SDT, AP02EDT)) ) ``` @@ -358,7 +358,7 @@ adsl <- derive_vars_period( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = get_admiral_option("subject_keys"), TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT) + display_vars = c(get_admiral_option("subject_keys"), exprs(TRT01A, TRT02A, AP01SDT, AP01EDT, AP02SDT, AP02EDT)) ) ``` From 7f009464f44d7a42b5d42b5272fba9020b11743c Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 20:12:59 -0400 Subject: [PATCH 11/22] Fixed errors due to missing parentheses in ad_adex, ad_admh, and adppk .R files --- inst/templates/ad_adex.R | 11 ++- inst/templates/ad_admh.R | 10 +-- inst/templates/ad_adpc.R | 16 ++-- inst/templates/ad_adppk.R | 2 +- vignettes/bds_exposure.Rmd | 57 +++++++------- vignettes/bds_tte.Rmd | 10 +-- vignettes/occds.Rmd | 52 +++++++------ vignettes/pk_adnca.Rmd | 150 +++++++++++++++++++++---------------- 8 files changed, 173 insertions(+), 135 deletions(-) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 25e2ebff10..cbad8ef7c0 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -160,6 +160,7 @@ adex <- adex %>% ), dataset_add = adex, by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) + ) ) %>% # W2-W24 exposure call_derivation( @@ -208,8 +209,8 @@ adex <- adex %>% ), dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) - ) %>% + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) + ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( derivation = derive_param_doseint, @@ -227,7 +228,8 @@ adex <- adex %>% ), by_vars = c( get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - )) + ) + ) ) %>% # Overall/W2-24 Average daily dose call_derivation( @@ -250,7 +252,8 @@ adex <- adex %>% ), by_vars = c( get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - )) + ) + ) ) # Part 4: Derive/Assign the last required variables ---- diff --git a/inst/templates/ad_admh.R b/inst/templates/ad_admh.R index e8e22d402c..4a2b00ea47 100644 --- a/inst/templates/ad_admh.R +++ b/inst/templates/ad_admh.R @@ -89,32 +89,32 @@ admh <- mh %>% ) %>% derive_var_extreme_flag( by_vars = c(get_admiral_option("subject_keys"), exprs(MHBODSYS)), - order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + order = c(get_admiral_option("subject_keys"), exprs(MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ)), new_var = AOCCSFL, mode = "first" ) %>% derive_var_extreme_flag( by_vars = c(get_admiral_option("subject_keys"), exprs(MHDECOD)), - order = get_admiral_option("subject_keys"), MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + order = c(get_admiral_option("subject_keys"), exprs(MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ)), new_var = AOCCPFL, mode = "first" ) %>% # (company specific occurrence flag variables derivation) derive_var_extreme_flag( by_vars = get_admiral_option("subject_keys"), - order = get_admiral_option("subject_keys"), AHIST, ASTDT, MHSEQ), + order = c(get_admiral_option("subject_keys"), exprs(AHIST, ASTDT, MHSEQ)), new_var = AOCPFL, mode = "first" ) %>% derive_var_extreme_flag( by_vars = c(get_admiral_option("subject_keys"), exprs(MHBODSYS)), - order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ), + order = c(get_admiral_option("subject_keys"), exprs(AHIST, MHBODSYS, MHCAT, ASTDT, MHSEQ)), new_var = AOCPSFL, mode = "first" ) %>% derive_var_extreme_flag( by_vars = c(get_admiral_option("subject_keys"), exprs(MHDECOD)), - order = get_admiral_option("subject_keys"), AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ), + order = c(get_admiral_option("subject_keys"), exprs(AHIST, MHBODSYS, MHCAT, MHDECOD, MHTERM, ASTDT, MHSEQ)), new_var = AOCPPFL, mode = "first" ) %>% diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 9212db81cc..3210c72c67 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -152,11 +152,13 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = c( - get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, - NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, - VISIT, VISITNUM, VISITDY, - TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - )) + get_admiral_option("subject_keys"), exprs( + EVID, EXDOSFRQ, EXDOSFRM, + NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, + VISIT, VISITNUM, VISITDY, + TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars + ) + ) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -185,8 +187,8 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG) - )) %>% + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) + ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index b9a80cf101..2206f6cf72 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -161,7 +161,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG) + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index cd0b61f8d2..5d13d0e6a8 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -90,10 +90,12 @@ adex <- derive_vars_merged( dataset_vignette( adex, display_vars = c( - get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, - VISIT, EXSTDTC, EXENDTC, - TRTSDTM, TRTEDTM - )) + get_admiral_option("subject_keys"), exprs( + EXTRT, EXDOSE, EXDOSFRQ, + VISIT, EXSTDTC, EXENDTC, + TRTSDTM, TRTEDTM + ) + ) ) ``` @@ -189,8 +191,8 @@ dataset_vignette( adex, display_vars = c( get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT - )) + exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT) + ) ) ``` @@ -214,8 +216,8 @@ dataset_vignette( adex, display_vars = c( get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD - )) + exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD) + ) ) ``` @@ -237,8 +239,8 @@ dataset_vignette( adex, display_vars = c( get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, AENDT, EXDURD, EXDURDY - )) + exprs(VISIT, ASTDT, AENDT, EXDURD, EXDURDY) + ) ) ``` @@ -277,8 +279,7 @@ frequency to a corresponding set of records each representing one dose (i.e. ```{r eval=TRUE, echo=TRUE} single_dose <- adex %>% filter(USUBJID == "01-701-1015" & EXSTDY == 1) %>% - create_single_dose_dataset(keep_source_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) - ) + create_single_dose_dataset(keep_source_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT))) ``` ```{r, eval=TRUE, echo=FALSE} @@ -376,10 +377,13 @@ adex <- derive_param_exposure( ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = - c(get_admiral_option("subject_keys"), exprs(VISIT, - PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - ))) + dataset_vignette( + display_vars = + c(get_admiral_option("subject_keys"), exprs( + VISIT, + PARCAT1, PARAMCD, AVAL, ASTDT, AENDT + )) + ) ``` @@ -443,8 +447,8 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) - )) + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) + ) count(adex, PARAMCD, PARCAT1) ``` @@ -454,10 +458,11 @@ count(adex, PARAMCD, PARCAT1) adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% dataset_vignette(display_vars = c( - get_admiral_option("subject_keys"), exprs(VISIT, - PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT - )) - ) + get_admiral_option("subject_keys"), exprs( + VISIT, + PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT + ) + )) ``` Dose intensity can be calculated using the function `derive_param_doseint()`. The @@ -480,9 +485,11 @@ adex <- adex %>% dataset_vignette( adex, display_vars = c( - get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, - PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - )) + get_admiral_option("subject_keys"), exprs( + VISIT, EXSTDTC, EXENDTC, + PARCAT1, PARAMCD, AVAL, ASTDT, AENDT + ) + ) ) ``` diff --git a/vignettes/bds_tte.Rmd b/vignettes/bds_tte.Rmd index 858ac82012..290c2eaf04 100644 --- a/vignettes/bds_tte.Rmd +++ b/vignettes/bds_tte.Rmd @@ -306,7 +306,7 @@ adrs <- tibble::tribble( PARAM = "Overall Response" ) %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, PARAM, ADT, ASEQ, AVALC) - + dataset_vignette( adrs, @@ -410,8 +410,7 @@ dataset_vignette( select( !!!get_admiral_option("subject_keys"), PARAMCD, PARAM, STARTDT, ADT, ADTF, CNSR, EVNTDESC, SRCDOM, SRCVAR - ) - , + ), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, ADTF, CNSR)) ) ``` @@ -507,10 +506,7 @@ adaette <- call_derivation( adaette %>% select(!!!get_admiral_option("subject_keys"), PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) %>% arrange(!!!get_admiral_option("subject_keys"), PARAMCD) %>% - - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR) - ) - ) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, STARTDT, ADT, CNSR, EVNTDESC, SRCDOM, SRCVAR))) ``` ### Deriving Time-to-Event Parameters Using By Groups diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index ef645c5666..da6162b225 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -86,10 +86,10 @@ adae <- derive_vars_merged( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), exprs(AESEQ, AETERM, AESTDTC, TRTSDT, + display_vars = c(get_admiral_option("subject_keys"), exprs( + AESEQ, AETERM, AESTDTC, TRTSDT, TRTEDT, TRT01A, TRT01P, DTHDT, EOSDT - ) - ) + )) ) ``` @@ -127,9 +127,11 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), - exprs(AESTDTC, AEENDTC, ASTDTM, ASTDT, - ASTDY, AENDTM, AENDT, AENDY + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + AESTDTC, AEENDTC, ASTDTM, ASTDT, + ASTDY, AENDTM, AENDT, AENDY ) ) ) @@ -155,9 +157,11 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), - exprs(AESTDTC, AEENDTC, ASTDT, AENDT, - ADURN, ADURU + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + AESTDTC, AEENDTC, ASTDT, AENDT, + ADURN, ADURU ) ) ) @@ -255,9 +259,11 @@ adae <- derive_vars_joined( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), - exprs(AEDECOD, AESEQ, AESTDTC, AEENDTC, - ASTDT, AENDT, LDOSEDTM + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + AEDECOD, AESEQ, AESTDTC, AEENDTC, + ASTDT, AENDT, LDOSEDTM ) ) ) @@ -294,9 +300,11 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), - exprs(TRTSDT, TRTEDT, AESTDTC, ASTDT, - TRTEMFL + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + TRTSDT, TRTEDT, AESTDTC, ASTDT, + TRTEMFL ) ) ) @@ -409,9 +417,9 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), - exprs(ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL) ) ) ``` @@ -498,9 +506,11 @@ adae <- adae %>% dataset_vignette( adae, display_vars = c( - get_admiral_option("subject_keys"), exprs(AEDECOD, ASTDTM, DTHDT, RFSTDTC, - RFENDTC, AGE, AGEU, SEX - )) + get_admiral_option("subject_keys"), exprs( + AEDECOD, ASTDTM, DTHDT, RFSTDTC, + RFENDTC, AGE, AGEU, SEX + ) + ) ) ``` diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index 5b293bfa22..6c1416e583 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -199,9 +199,9 @@ pc_dates <- pc %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( pc_dates, - display_vars = c(get_admiral_option("subject_keys"), - exprs(PCTEST, ADTM, VISIT, PCTPT, NFRLT - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(PCTEST, ADTM, VISIT, PCTPT, NFRLT) ) ) ``` @@ -259,9 +259,12 @@ ex_dates <- ex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ex_dates, - display_vars = c(get_admiral_option("subject_keys"), - exprs(EXTRT, EXDOSFRQ, ASTDTM, AENDTM, - VISIT,VISITDY, NFRLT) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + EXTRT, EXDOSFRQ, ASTDTM, AENDTM, + VISIT, VISITDY, NFRLT + ) ) ) ``` @@ -300,10 +303,12 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = c( - get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, - NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, - VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - )) + get_admiral_option("subject_keys"), exprs( + EVID, EXDOSFRQ, EXDOSFRM, + NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, + VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars + ) + ) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division @@ -325,9 +330,12 @@ ex_exp <- ex_dates %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( ex_exp, - display_vars = c(get_admiral_option("subject_keys"), - exprs(DRUG,EXDOSFRQ, ASTDTM, AENDTM, - AVISIT, NFRLT) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + DRUG, EXDOSFRQ, ASTDTM, AENDTM, + AVISIT, NFRLT + ) ) ) ``` @@ -360,16 +368,14 @@ adpc_first_dose <- pc_dates %>% mutate( AVISITN = NFRLT %/% 24 + 1, AVISIT = paste("Day", AVISITN) - ) - + ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_first_dose, display_vars = c( - get_admiral_option("subject_keys"), exprs(FANLDTM, AVISIT, ADTM, PCTPT - ) + get_admiral_option("subject_keys"), exprs(FANLDTM, AVISIT, ADTM, PCTPT) ) ) ``` @@ -406,10 +412,12 @@ adpc_prev <- adpc_first_dose %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_prev, - display_vars = c(get_admiral_option("subject_keys"), - exprs(VISIT, ADTM, VISIT, PCTPT, - ADTM_prev, EXDOSE_prev, AVISIT_prev - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + VISIT, ADTM, VISIT, PCTPT, + ADTM_prev, EXDOSE_prev, AVISIT_prev + ) ) ) ``` @@ -443,9 +451,12 @@ adpc_next <- adpc_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_next, - display_vars = c(get_admiral_option("subject_keys"), - exprs(VISIT, ADTM, VISIT, PCTPT, ADTM_next, EXDOSE_next, - AVISIT_next) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + VISIT, ADTM, VISIT, PCTPT, ADTM_next, EXDOSE_next, + AVISIT_next + ) ) ) ``` @@ -495,9 +506,9 @@ adpc_nom_next <- adpc_nom_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_nom_next, - display_vars = c(get_admiral_option("subject_keys"), - exprs(NFRLT, PCTPT, NFRLT_prev, NFRLT_next - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(NFRLT, PCTPT, NFRLT_prev, NFRLT_next) ) ) ``` @@ -590,9 +601,12 @@ adpc_arrlt <- bind_rows(adpc_nom_next, ex_exp) %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_arrlt, - display_vars = c(get_admiral_option("subject_keys"), - exprs(FANLDTM, AVISIT, PCTPT, AFRLT, - ARRLT, AXRLT) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + FANLDTM, AVISIT, PCTPT, AFRLT, + ARRLT, AXRLT + ) ) ) ``` @@ -619,9 +633,9 @@ adpc_nrrlt <- adpc_arrlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_nrrlt, - display_vars = c(get_admiral_option("subject_keys"), - exprs(AVISIT, PCTPT, NFRLT, NRRLT, NXRLT - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(AVISIT, PCTPT, NFRLT, NRRLT, NXRLT) ) ) ``` @@ -730,9 +744,12 @@ adpc_aval <- adpc_nrrlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adpc_aval, - display_vars = c(get_admiral_option("subject_keys"), - exprs(NFRLT, AVISIT, ATPT, ABLFL, - ATPTREF, AVAL, AVALCAT1) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + NFRLT, AVISIT, ATPT, ABLFL, + ATPTREF, AVAL, AVALCAT1 + ) ) ) ``` @@ -785,9 +802,12 @@ dtype <- adpc_aval %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( dtype, - display_vars = c(get_admiral_option("subject_keys"), - exprs(DTYPE, ATPT, NFRLT, NRRLT, - AFRLT, ARRLT, BASETYPE) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + DTYPE, ATPT, NFRLT, NRRLT, + AFRLT, ARRLT, BASETYPE + ) ) ) ``` @@ -820,11 +840,11 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% ```{r, eval=TRUE, echo=FALSE} adpc_dtype %>% - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, ADTM, - ATPT, NFRLT, NRRLT, - ARRLT, MRRLT) - ) - ) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs( + BASETYPE, ADTM, + ATPT, NFRLT, NRRLT, + ARRLT, MRRLT + ))) ``` ## Calculate Change from Baseline and Assign `ASEQ` {#aseq} @@ -876,10 +896,7 @@ adpc_aseq <- adpc_chg %>% ```{r, eval=TRUE, echo=FALSE} adpc_aseq %>% - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG - ) - ) -) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, DTYPE, AVISIT, ATPT, AVAL, NFRLT, NRRLT, AFRLT, ARRLT, BASE, CHG))) ``` ## Add Additional Baseline Variables {#baselines} @@ -913,9 +930,7 @@ adpc_baselines <- adpc_aseq %>% ```{r, eval=TRUE, echo=FALSE} adpc_baselines %>% - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL) - ) -) + dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(HTBL, HTBLU, WTBL, WTBLU, BMIBL, BMIBLU, BASETYPE, ATPT, AVAL))) ``` ## Add the `ADSL` variables {#adsl_vars} @@ -1021,9 +1036,9 @@ adppk_first_dose <- pc_dates %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_first_dose, - display_vars = c(get_admiral_option("subject_keys"), - exprs(FANLDTM, AVISIT, ADTM, PCTPT - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(FANLDTM, AVISIT, ADTM, PCTPT) ) ) ``` @@ -1075,9 +1090,11 @@ adppk_nom_prev <- adppk_prev %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_nom_prev, - display_vars = c(get_admiral_option("subject_keys"), - exprs(VISIT, ADTM, VISIT, PCTPT, - ADTM_prev, NFRLT_prev + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + VISIT, ADTM, VISIT, PCTPT, + ADTM_prev, NFRLT_prev ) ) ) @@ -1143,9 +1160,9 @@ adppk_aprlt <- bind_rows(adppk_nom_prev, ex_exp) %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_aprlt, - display_vars = c(get_admiral_option("subject_keys"), - exprs(EVID, NFRLT, AFRLT, APRLT, NPRLT - ) + display_vars = c( + get_admiral_option("subject_keys"), + exprs(EVID, NFRLT, AFRLT, APRLT, NPRLT) ) ) ``` @@ -1228,9 +1245,12 @@ adppk_aval <- adppk_aprlt %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adppk_aval, - display_vars = c(get_admiral_option("subject_keys"), - exprs(EVID, DOSEA, AMT, NFRLT, AFRLT, - CMT, DV, MDV, BLQFN) + display_vars = c( + get_admiral_option("subject_keys"), + exprs( + EVID, DOSEA, AMT, NFRLT, AFRLT, + CMT, DV, MDV, BLQFN + ) ) ) ``` @@ -1272,8 +1292,8 @@ adppk_aseq <- adppk_aval %>% dataset_vignette( adppk_aseq, display_vars = c( - get_admiral_option("subject_keys"), exprs(EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ - )) + get_admiral_option("subject_keys"), exprs(EVID, DOSEA, AMT, NFRLT, AFRLT, CMT, DV, MDV, BLQFN, ASEQ) + ) ) ``` From f51d7beec58ed9fd59530ec220588bbfc2745932 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Fri, 31 May 2024 22:29:09 -0400 Subject: [PATCH 12/22] ran styler::style_file(c("inst/templates/ad_adex.R", "inst/templates/ad_adppk.R")) to fix code style error --- inst/templates/ad_adex.R | 11 ++++------- inst/templates/ad_adppk.R | 12 +++++++----- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index cbad8ef7c0..4536e50ae5 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -159,8 +159,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars) - ) + by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) ) %>% # W2-W24 exposure call_derivation( @@ -210,7 +209,7 @@ adex <- adex %>% dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) - ) %>% + ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( derivation = derive_param_doseint, @@ -227,8 +226,7 @@ adex <- adex %>% ) ), by_vars = c( - get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - ) + get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) ) ) %>% # Overall/W2-24 Average daily dose @@ -251,8 +249,7 @@ adex <- adex %>% ) ), by_vars = c( - get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT - ) + get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) ) ) diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 2206f6cf72..ceff03a7c6 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -129,11 +129,13 @@ ex_exp <- ex_dates %>% lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, keep_source_vars = c( - get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, - NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, - VISIT, VISITNUM, VISITDY, - TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - )) + get_admiral_option("subject_keys"), exprs( + EVID, EXDOSFRQ, EXDOSFRM, + NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, + VISIT, VISITNUM, VISITDY, + TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars + ) + ) ) %>% # Derive AVISIT based on nominal relative time # Derive AVISITN to nominal time in whole days using integer division From 5e20b1b1652c5ed3832677356f3f519852c1dad2 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Tue, 4 Jun 2024 16:01:09 -0400 Subject: [PATCH 13/22] Added STUDYID to vignettes so that get_admiral_option("subject_keys") can be used instead of subsetting with []. Replaced instances of !!!adsl_vars with just adsl_vars. Found other instances of USUBJID, STUDYID and replaced with get_admiral_optios("subject_keys") where errors didnt occur from the change. --- inst/templates/ad_adex.R | 4 +- inst/templates/ad_adlbhy.R | 6 +- inst/templates/ad_adppk.R | 4 +- inst/templates/ad_advs.R | 2 +- vignettes/bds_exposure.Rmd | 6 +- vignettes/bds_finding.Rmd | 29 +++---- vignettes/generic.Rmd | 162 ++++++++++++++++++------------------- vignettes/occds.Rmd | 14 ++-- 8 files changed, 114 insertions(+), 113 deletions(-) diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index 4536e50ae5..c81b83b481 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -159,7 +159,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) + by_vars = c(get_admiral_option("subject_keys"), adsl_vars) ) %>% # W2-W24 exposure call_derivation( @@ -208,7 +208,7 @@ adex <- adex %>% ), dataset_add = adex, filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) + by_vars = c(get_admiral_option("subject_keys"), adsl_vars) ) %>% # Overall Dose intensity and W2-24 dose intensity call_derivation( diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index d5296df361..963f6d1a45 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -43,7 +43,7 @@ adlb_annotated <- adlb %>% ) ) ) %>% - select(STUDYID, USUBJID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) + select(get_admiral_option("subject_keys"), TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) # Subset Datasets altast_records <- adlb_annotated %>% @@ -65,11 +65,11 @@ hylaw_records <- derive_vars_joined( ) hylaw_records_pts_visits <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A) %>% # add AVISIT, ADT for by visit + select(get_admiral_option("subject_keys"), TRT01A) %>% # add AVISIT, ADT for by visit distinct() hylaw_records_fls <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit + select(get_admiral_option("subject_keys"), TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit distinct() # Create new parameters based on records that present potential case diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index ceff03a7c6..2c57b3da20 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -403,7 +403,7 @@ covar <- adsl %>% ) ) %>% select( - STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJID, USUBJIDN, + get_admiral_option("subject_keys"), STUDYIDN, SITEID, SITEIDN, USUBJIDN, SUBJID, SUBJIDN, AGE, SEX, SEXN, COHORT, COHORTC, ROUTE, ROUTEN, RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, COUNTRYL ) @@ -413,7 +413,7 @@ covar <- adsl %>% labsbl <- lb %>% filter(LBBLFL == "Y" & LBTESTCD %in% c("CREAT", "ALT", "AST", "BILI")) %>% mutate(LBTESTCDB = paste0(LBTESTCD, "BL")) %>% - select(STUDYID, USUBJID, LBTESTCDB, LBSTRESN) + select(get_admiral_option("subject_keys"), LBTESTCDB, LBSTRESN) covar_vslb <- covar %>% derive_vars_merged( diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 1762b247e2..8ce7e9aeb7 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -218,7 +218,7 @@ advs <- advs %>% # only if AVALC is mapped # derive_var_base( - # by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE), + # by_vars = exprs(get_admiral_option("subject_keys"), PARAMCD, BASETYPE), # source_var = AVALC, # new_var = BASEC # ) %>% diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index 5d13d0e6a8..d4cf1d1aab 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -364,7 +364,7 @@ For example, to calculate the total dose by subject and treatment, adex <- derive_param_exposure( adex, dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars), input_code = "DOSE", set_values_to = exprs( PARAMCD = "TDOSE", @@ -447,7 +447,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)) + by_vars = c(get_admiral_option("subject_keys"), adsl_vars) ) count(adex, PARAMCD, PARCAT1) @@ -473,7 +473,7 @@ specified in the `by_vars` argument will be populated in this new record. ```{r eval=TRUE, echo=TRUE} adex <- adex %>% derive_param_doseint( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars), set_values_to = exprs(PARAMCD = "TNDOSINT"), tadm_code = "TDOSE", tpadm_code = "TPDOSE" diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index f36f0d932a..12f37c3a58 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -243,9 +243,9 @@ advs <- derive_vars_merged_lookup( ``` ```{r, eval=TRUE, echo=FALSE} -advs_param <- distinct(advs, USUBJID, PARAMCD, VSTESTCD) +advs_param <- distinct(advs, STUDYID, USUBJID, PARAMCD, VSTESTCD) -dataset_vignette(advs_param, display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], VSTESTCD, PARAMCD)) +dataset_vignette(advs_param, display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, PARAMCD))) ``` Please note, it may be necessary to include other variables in the join. For @@ -460,7 +460,7 @@ advs <- derive_var_ontrtfl( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL)), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -515,10 +515,10 @@ and `ref_end_date = AP01EDT`. advs_pre <- select(advs, -ONTRTFL) advs <- tibble::tribble( - ~USUBJID, ~ASTDT, ~AP01SDT, ~AP01EDT, ~AENDT, - "P01", ymd("2020-03-15"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-12-01"), - "P02", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-03-15"), - "P03", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), NA, + ~STUDYID, ~USUBJID, ~ASTDT, ~AP01SDT, ~AP01EDT, ~AENDT, + "odr_1", "P01", ymd("2020-03-15"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-12-01"), + "odr_1", "P02", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-03-15"), + "odr_1", "P03", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), NA, ) ``` @@ -533,10 +533,11 @@ advs <- derive_var_ontrtfl( span_period = TRUE ) ``` + ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL) + display_vars = c(get_admiral_option("subject_keys"), exprs(ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL)) ) ``` @@ -574,7 +575,7 @@ advs <- derive_var_anrind(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND)), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -841,7 +842,7 @@ advs <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ)), filter = USUBJID == "01-701-1015" ) ``` @@ -877,7 +878,7 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, AVALCA1N, AVALCAT1), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVAL, AVALCA1N, AVALCAT1)), filter = PARAMCD == "HEIGHT" ) ``` @@ -897,7 +898,7 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU), + display_vars = c(get_admiral_option("subject_keys"),exprs(RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU)), filter = USUBJID == "01-701-1015" ) ``` @@ -939,7 +940,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL)), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` @@ -969,7 +970,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), + display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL)), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` diff --git a/vignettes/generic.Rmd b/vignettes/generic.Rmd index 3c32ec339d..b2a75ce855 100644 --- a/vignettes/generic.Rmd +++ b/vignettes/generic.Rmd @@ -201,25 +201,25 @@ specified by the `filter_add` or `filter` argument. In the following example baseline weight is added to `ADSL`. ```{r} adsl <- tribble( - ~USUBJID, - "1", - "2", - "3" + ~STUDYID, ~USUBJID, + "xyz", "1", + "xyz", "2", + "xyz", "3" ) advs <- tribble( - ~USUBJID, ~PARAMCD, ~AVISIT, ~ABLFL, ~AVAL, ~AVALU, - "1", "WEIGHT", "BASELINE", "Y", 58.7, "kg", - "1", "HEIGHT", "BASELINE", "Y", 169.2, "cm", - "1", "WEIGHT", "WEEK 3", NA, 59.3, "kg", - "2", "WEIGHT", "BASELINE", "Y", 72.5, "kg", - "2", "WEIGHT", "WEKK 3", NA, 71.9, "kg", +~STUDYID, ~USUBJID, ~PARAMCD, ~AVISIT, ~ABLFL, ~AVAL, ~AVALU, + "xyz" ,"1", "WEIGHT", "BASELINE", "Y", 58.7, "kg", + "xyz", "1", "HEIGHT", "BASELINE", "Y", 169.2, "cm", + "xyz", "1", "WEIGHT", "WEEK 3", NA, 59.3, "kg", + "xyz", "2", "WEIGHT", "BASELINE", "Y", 72.5, "kg", + "xyz", "2", "WEIGHT", "WEKK 3", NA, 71.9, "kg", ) derive_vars_merged( adsl, dataset_add = advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), filter_add = PARAMCD == "WEIGHT" & ABLFL == "Y", new_vars = exprs(WGTBL = AVAL) ) @@ -233,25 +233,25 @@ Below the day of the last valid dose is added to `ADSL`. ```{r} adsl <- tribble( - ~USUBJID, - "1", - "2", - "3" + ~STUDYID, ~USUBJID, + "xyz", "1", + "xyz", "2", + "xyz", "3" ) ex <- tribble( - ~USUBJID, ~EXSTDY, ~EXDOSE, - "1", 1, 50, - "1", 7, 70, - "1", 14, 0, - "2", 1, 75, - "2", 9, 70 -) + ~STUDYID, ~USUBJID, ~EXSTDY, ~EXDOSE, + "xyz", "1", 1, 50, + "xyz", "1", 7, 70, + "xyz", "1", 14, 0, + "xyz", "2", 1, 75, + "xyz", "2", 9, 70 + ) derive_vars_merged( adsl, dataset_add = ex, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), filter_add = EXDOSE > 0, order = exprs(EXSTDY), mode = "last", @@ -269,25 +269,25 @@ dose of the last study treatment before an adverse event: ```{r} adae <- tribble( - ~USUBJID, ~ASTDY, ~AESEQ, - "1", 3, 1, - "1", 3, 2, - "1", 15, 3 +~STUDYID, ~USUBJID, ~ASTDY, ~AESEQ, + "xyz", "1", 3, 1, + "xyz", "1", 3, 2, + "xyz", "1", 15, 3 ) ex <- tribble( - ~USUBJID, ~EXSTDY, ~EXDOSE, - "1", 1, 50, - "1", 7, 70, - "1", 14, 0, - "2", 1, 75, - "2", 9, 70 +~STUDYID, ~USUBJID, ~EXSTDY, ~EXDOSE, + "xyz", "1", 1, 50, + "xyz", "1", 7, 70, + "xyz", "1", 14, 0, + "xyz", "2", 1, 75, + "xyz", "2", 9, 70 ) derive_vars_joined( adae, dataset_add = ex, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), filter_add = EXDOSE > 0, filter_join = EXSTDY <= ASTDY, join_type = "all", @@ -302,7 +302,7 @@ The `filter_join` condition is applied on a temporary dataset created by left jo admiral:::get_joined_data( adae, dataset_add = ex, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), filter_add = EXDOSE > 0, join_vars = exprs(EXDOSE), join_type = "all", @@ -318,23 +318,23 @@ where `"HIGH"` results should be flagged which are confirmed by a second `"HIGH"` result at least ten days later. ```{r} adlb <- tribble( - ~USUBJID, ~PARAMCD, ~ADY, ~ANRIND, - "1", "AST", 1, "HIGH", - "1", "AST", 7, "HIGH", - "1", "AST", 14, "NORMAL", - "1", "ALT", 1, "HIGH", - "1", "ALT", 7, "NORMAL", - "1", "ALT", 14, "HIGH", - "2", "AST", 1, "HIGH", - "2", "AST", 15, "HIGH", - "2", "AST", 22, "NORMAL", - "2", "ALT", 1, "HIGH" + ~STUDYID, ~USUBJID, ~PARAMCD, ~ADY, ~ANRIND, + "xyz", "1", "AST", 1, "HIGH", + "xyz", "1", "AST", 7, "HIGH", + "xyz", "1", "AST", 14, "NORMAL", + "xyz", "1", "ALT", 1, "HIGH", + "xyz", "1", "ALT", 7, "NORMAL", + "xyz", "1", "ALT", 14, "HIGH", + "xyz", "2", "AST", 1, "HIGH", + "xyz", "2", "AST", 15, "HIGH", + "xyz", "2", "AST", 22, "NORMAL", + "xyz", "2", "ALT", 1, "HIGH" ) derive_var_joined_exist_flag( adlb, dataset_add = adlb, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -353,7 +353,7 @@ So the temporary dataset for applying `filter_join` is: admiral:::get_joined_data( adlb, dataset_add = adlb, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after" @@ -368,7 +368,7 @@ set it to the condition for confirmation. derive_var_joined_exist_flag( adlb, dataset_add = adlb, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -383,7 +383,7 @@ dataset are restricted up to the first records where the condition is fulfilled: admiral:::get_joined_data( adlb, dataset_add = adlb, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(ADY), join_vars = exprs(ADY, ANRIND), join_type = "after", @@ -410,16 +410,16 @@ Consider for example the following derivation of a last visit flag. The record with `AVISITN == NA` is flagged because `NA` is sorted to the end. ```{r} advs <- tribble( - ~USUBJID, ~PARAMCD, ~AVISITN, ~AVAL, - "1", "WEIGHT", NA, 62.1, - "1", "WEIGHT", 1, 62.3, - "1", "WEIGHT", 2, 62.5, - "1", "WEIGHT", 3, 62.4 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVISITN, ~AVAL, + "xyz", "1", "WEIGHT", NA, 62.1, + "xyz", "1", "WEIGHT", 1, 62.3, + "xyz", "1", "WEIGHT", 2, 62.5, + "xyz", "1", "WEIGHT", 3, 62.4 ) derive_var_extreme_flag( advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(AVISITN), mode = "last", new_var = LSTVISFL @@ -431,7 +431,7 @@ the `AVISITN == 3` record is flagged. ```{r} derive_var_extreme_flag( advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(if_else(is.na(AVISITN), -Inf, AVISITN)), mode = "last", new_var = LSTVISFL @@ -442,7 +442,7 @@ variables. ```{r} derive_var_extreme_flag( advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(!is.na(AVISITN), AVISITN), mode = "last", new_var = LSTVISFL @@ -473,19 +473,19 @@ concatenation, ..., the functions `derive_summary_records()` or parameter to `ADEX` can be done by the following: ```{r} adex <- tribble( - ~USUBJID, ~ASTDY, ~AVAL, ~PARAMCD, - "1", 1, 50, "DOSE", - "1", 7, 70, "DOSE", - "1", 14, 0, "DOSE", - "2", 1, 75, "DOSE", - "2", 9, 70, "DOSE" + ~STUDYID, ~USUBJID, ~ASTDY, ~AVAL, ~PARAMCD, + "xyz", "1", 1, 50, "DOSE", + "xyz", "1", 7, 70, "DOSE", + "xyz", "1", 14, 0, "DOSE", + "xyz", "2", 1, 75, "DOSE", + "xyz", "2", 9, 70, "DOSE" ) derive_summary_records( adex, dataset_add = adex, filter_add = AVAL > 0, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), set_values_to = exprs( AVAL = mean(AVAL), PARAMCD = "AVERAGE DOSE" @@ -500,17 +500,17 @@ If the average dose should be added as a variable to `ADSL`, consider the following: ```{r} adsl <- tribble( - ~USUBJID, - "1", - "2", - "3" + ~STUDYID, ~USUBJID, + "xyz", "1", + "xyz", "2", + "xyz", "3" ) derive_var_merged_summary( adsl, dataset_add = adex, filter_add = AVAL > 0, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs( AVERDOSE = mean(AVAL) ), @@ -526,20 +526,20 @@ the value of the new variable can be defined by the `missing_values` argument. If the new values should be computed from different parameters of the source dataset, `derive_param_computed()` can be used. The computed value can be specified by the `set_values_to` argument. The values of the source variable for a parameter can be referred to by temporary variables of the form `.`. ```{r} advs <- tribble( - ~USUBJID, ~AVISIT, ~PARAMCD, ~AVAL, ~AVALU, - "1", "BASELINE", "WEIGHT", 32.6, "kg", - "1", "BASELINE", "HEIGHT", 155.4, "cm", - "1", "MONTH 6", "WEIGHT", 33.2, "kg", - "1", "MONTH 6", "HEIGHT", 155.8, "cm", - "2", "BASELINE", "WEIGHT", 44.2, "kg", - "2", "BASELINE", "HEIGHT", 145.3, "cm", - "2", "MONTH 6", "WEIGHT", 42.0, "kg", - "2", "MONTH 6", "HEIGHT", 146.4, "cm" + ~STUDYID, ~USUBJID, ~AVISIT, ~PARAMCD, ~AVAL, ~AVALU, + "xyz", "1", "BASELINE", "WEIGHT", 32.6, "kg", + "xyz", "1", "BASELINE", "HEIGHT", 155.4, "cm", + "xyz", "1", "MONTH 6", "WEIGHT", 33.2, "kg", + "xyz", "1", "MONTH 6", "HEIGHT", 155.8, "cm", + "xyz", "2", "BASELINE", "WEIGHT", 44.2, "kg", + "xyz", "2", "BASELINE", "HEIGHT", 145.3, "cm", + "xyz", "2", "MONTH 6", "WEIGHT", 42.0, "kg", + "xyz", "2", "MONTH 6", "HEIGHT", 146.4, "cm" ) derive_param_computed( advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT)), parameters = c("WEIGHT", "HEIGHT"), set_values_to = exprs( AVAL = AVAL.WEIGHT / (AVAL.HEIGHT / 100)^2, @@ -555,7 +555,7 @@ example `compute_bmi()` could be used instead of the formula for BMI: ```{r} derive_param_computed( advs, - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]], AVISIT), + by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT)), parameters = c("WEIGHT", "HEIGHT"), set_values_to = exprs( AVAL = compute_bmi(weight = AVAL.WEIGHT, height = AVAL.HEIGHT), diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index da6162b225..b6b82f4e86 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -522,17 +522,17 @@ For example, there can be multiple records present in `ADCM` for a single subjec ``` {r eval=TRUE, echo=TRUE} adcm <- tibble::tribble( - ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, - "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", - "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", - "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", - "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", - "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" + ~STUDYID, ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, + "xyz112", "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", + "xyz112", "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" ) adcm_aseq <- adcm %>% derive_var_obs_number( - by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), + by_vars = get_admiral_option("subject_keys"), order = exprs(ASTDTM, CMSEQ, ATC1CD, ATC2CD, ATC3CD, ATC4CD), new_var = ASEQ, check_type = "error" From d0d9aa17e474d94ab069537548f960ccc19a0565 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Tue, 4 Jun 2024 16:06:08 -0400 Subject: [PATCH 14/22] ran styler_file() on changed vignettes in this commit --- vignettes/bds_finding.Rmd | 2 +- vignettes/generic.Rmd | 124 +++++++++++++++++++------------------- vignettes/occds.Rmd | 12 ++-- 3 files changed, 69 insertions(+), 69 deletions(-) diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 12f37c3a58..3285b4bd12 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -898,7 +898,7 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"),exprs(RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU)), + display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU)), filter = USUBJID == "01-701-1015" ) ``` diff --git a/vignettes/generic.Rmd b/vignettes/generic.Rmd index b2a75ce855..7c0226bea9 100644 --- a/vignettes/generic.Rmd +++ b/vignettes/generic.Rmd @@ -202,18 +202,18 @@ baseline weight is added to `ADSL`. ```{r} adsl <- tribble( ~STUDYID, ~USUBJID, - "xyz", "1", - "xyz", "2", - "xyz", "3" + "xyz", "1", + "xyz", "2", + "xyz", "3" ) advs <- tribble( -~STUDYID, ~USUBJID, ~PARAMCD, ~AVISIT, ~ABLFL, ~AVAL, ~AVALU, - "xyz" ,"1", "WEIGHT", "BASELINE", "Y", 58.7, "kg", - "xyz", "1", "HEIGHT", "BASELINE", "Y", 169.2, "cm", - "xyz", "1", "WEIGHT", "WEEK 3", NA, 59.3, "kg", - "xyz", "2", "WEIGHT", "BASELINE", "Y", 72.5, "kg", - "xyz", "2", "WEIGHT", "WEKK 3", NA, 71.9, "kg", + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVISIT, ~ABLFL, ~AVAL, ~AVALU, + "xyz", "1", "WEIGHT", "BASELINE", "Y", 58.7, "kg", + "xyz", "1", "HEIGHT", "BASELINE", "Y", 169.2, "cm", + "xyz", "1", "WEIGHT", "WEEK 3", NA, 59.3, "kg", + "xyz", "2", "WEIGHT", "BASELINE", "Y", 72.5, "kg", + "xyz", "2", "WEIGHT", "WEKK 3", NA, 71.9, "kg", ) derive_vars_merged( @@ -234,19 +234,19 @@ Below the day of the last valid dose is added to `ADSL`. ```{r} adsl <- tribble( ~STUDYID, ~USUBJID, - "xyz", "1", - "xyz", "2", - "xyz", "3" + "xyz", "1", + "xyz", "2", + "xyz", "3" ) ex <- tribble( ~STUDYID, ~USUBJID, ~EXSTDY, ~EXDOSE, - "xyz", "1", 1, 50, - "xyz", "1", 7, 70, - "xyz", "1", 14, 0, - "xyz", "2", 1, 75, - "xyz", "2", 9, 70 - ) + "xyz", "1", 1, 50, + "xyz", "1", 7, 70, + "xyz", "1", 14, 0, + "xyz", "2", 1, 75, + "xyz", "2", 9, 70 +) derive_vars_merged( adsl, @@ -269,19 +269,19 @@ dose of the last study treatment before an adverse event: ```{r} adae <- tribble( -~STUDYID, ~USUBJID, ~ASTDY, ~AESEQ, - "xyz", "1", 3, 1, - "xyz", "1", 3, 2, - "xyz", "1", 15, 3 + ~STUDYID, ~USUBJID, ~ASTDY, ~AESEQ, + "xyz", "1", 3, 1, + "xyz", "1", 3, 2, + "xyz", "1", 15, 3 ) ex <- tribble( -~STUDYID, ~USUBJID, ~EXSTDY, ~EXDOSE, - "xyz", "1", 1, 50, - "xyz", "1", 7, 70, - "xyz", "1", 14, 0, - "xyz", "2", 1, 75, - "xyz", "2", 9, 70 + ~STUDYID, ~USUBJID, ~EXSTDY, ~EXDOSE, + "xyz", "1", 1, 50, + "xyz", "1", 7, 70, + "xyz", "1", 14, 0, + "xyz", "2", 1, 75, + "xyz", "2", 9, 70 ) derive_vars_joined( @@ -319,16 +319,16 @@ where `"HIGH"` results should be flagged which are confirmed by a second ```{r} adlb <- tribble( ~STUDYID, ~USUBJID, ~PARAMCD, ~ADY, ~ANRIND, - "xyz", "1", "AST", 1, "HIGH", - "xyz", "1", "AST", 7, "HIGH", - "xyz", "1", "AST", 14, "NORMAL", - "xyz", "1", "ALT", 1, "HIGH", - "xyz", "1", "ALT", 7, "NORMAL", - "xyz", "1", "ALT", 14, "HIGH", - "xyz", "2", "AST", 1, "HIGH", - "xyz", "2", "AST", 15, "HIGH", - "xyz", "2", "AST", 22, "NORMAL", - "xyz", "2", "ALT", 1, "HIGH" + "xyz", "1", "AST", 1, "HIGH", + "xyz", "1", "AST", 7, "HIGH", + "xyz", "1", "AST", 14, "NORMAL", + "xyz", "1", "ALT", 1, "HIGH", + "xyz", "1", "ALT", 7, "NORMAL", + "xyz", "1", "ALT", 14, "HIGH", + "xyz", "2", "AST", 1, "HIGH", + "xyz", "2", "AST", 15, "HIGH", + "xyz", "2", "AST", 22, "NORMAL", + "xyz", "2", "ALT", 1, "HIGH" ) derive_var_joined_exist_flag( @@ -410,11 +410,11 @@ Consider for example the following derivation of a last visit flag. The record with `AVISITN == NA` is flagged because `NA` is sorted to the end. ```{r} advs <- tribble( - ~STUDYID, ~USUBJID, ~PARAMCD, ~AVISITN, ~AVAL, - "xyz", "1", "WEIGHT", NA, 62.1, - "xyz", "1", "WEIGHT", 1, 62.3, - "xyz", "1", "WEIGHT", 2, 62.5, - "xyz", "1", "WEIGHT", 3, 62.4 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVISITN, ~AVAL, + "xyz", "1", "WEIGHT", NA, 62.1, + "xyz", "1", "WEIGHT", 1, 62.3, + "xyz", "1", "WEIGHT", 2, 62.5, + "xyz", "1", "WEIGHT", 3, 62.4 ) derive_var_extreme_flag( @@ -473,12 +473,12 @@ concatenation, ..., the functions `derive_summary_records()` or parameter to `ADEX` can be done by the following: ```{r} adex <- tribble( - ~STUDYID, ~USUBJID, ~ASTDY, ~AVAL, ~PARAMCD, - "xyz", "1", 1, 50, "DOSE", - "xyz", "1", 7, 70, "DOSE", - "xyz", "1", 14, 0, "DOSE", - "xyz", "2", 1, 75, "DOSE", - "xyz", "2", 9, 70, "DOSE" + ~STUDYID, ~USUBJID, ~ASTDY, ~AVAL, ~PARAMCD, + "xyz", "1", 1, 50, "DOSE", + "xyz", "1", 7, 70, "DOSE", + "xyz", "1", 14, 0, "DOSE", + "xyz", "2", 1, 75, "DOSE", + "xyz", "2", 9, 70, "DOSE" ) derive_summary_records( @@ -500,10 +500,10 @@ If the average dose should be added as a variable to `ADSL`, consider the following: ```{r} adsl <- tribble( - ~STUDYID, ~USUBJID, - "xyz", "1", - "xyz", "2", - "xyz", "3" + ~STUDYID, ~USUBJID, + "xyz", "1", + "xyz", "2", + "xyz", "3" ) derive_var_merged_summary( @@ -526,15 +526,15 @@ the value of the new variable can be defined by the `missing_values` argument. If the new values should be computed from different parameters of the source dataset, `derive_param_computed()` can be used. The computed value can be specified by the `set_values_to` argument. The values of the source variable for a parameter can be referred to by temporary variables of the form `.`. ```{r} advs <- tribble( - ~STUDYID, ~USUBJID, ~AVISIT, ~PARAMCD, ~AVAL, ~AVALU, - "xyz", "1", "BASELINE", "WEIGHT", 32.6, "kg", - "xyz", "1", "BASELINE", "HEIGHT", 155.4, "cm", - "xyz", "1", "MONTH 6", "WEIGHT", 33.2, "kg", - "xyz", "1", "MONTH 6", "HEIGHT", 155.8, "cm", - "xyz", "2", "BASELINE", "WEIGHT", 44.2, "kg", - "xyz", "2", "BASELINE", "HEIGHT", 145.3, "cm", - "xyz", "2", "MONTH 6", "WEIGHT", 42.0, "kg", - "xyz", "2", "MONTH 6", "HEIGHT", 146.4, "cm" + ~STUDYID, ~USUBJID, ~AVISIT, ~PARAMCD, ~AVAL, ~AVALU, + "xyz", "1", "BASELINE", "WEIGHT", 32.6, "kg", + "xyz", "1", "BASELINE", "HEIGHT", 155.4, "cm", + "xyz", "1", "MONTH 6", "WEIGHT", 33.2, "kg", + "xyz", "1", "MONTH 6", "HEIGHT", 155.8, "cm", + "xyz", "2", "BASELINE", "WEIGHT", 44.2, "kg", + "xyz", "2", "BASELINE", "HEIGHT", 145.3, "cm", + "xyz", "2", "MONTH 6", "WEIGHT", 42.0, "kg", + "xyz", "2", "MONTH 6", "HEIGHT", 146.4, "cm" ) derive_param_computed( diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index b6b82f4e86..0b4e7b4eb3 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -522,12 +522,12 @@ For example, there can be multiple records present in `ADCM` for a single subjec ``` {r eval=TRUE, echo=TRUE} adcm <- tibble::tribble( - ~STUDYID, ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, - "xyz112", "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", - "xyz112", "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" + ~STUDYID, ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, + "xyz112", "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", + "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", + "xyz112", "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" ) adcm_aseq <- adcm %>% From badf8c91208def4788eb45347e8902d4c18aa06a Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Tue, 4 Jun 2024 16:12:11 -0400 Subject: [PATCH 15/22] ran styler_file() on changed vignettes in this commit. Reverted get_admiral_options to USUBJID, STUDYID inside of select() functions to see if thats why scripts couldnt be executed --- inst/templates/ad_adlbhy.R | 6 +++--- inst/templates/ad_adppk.R | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 963f6d1a45..26dac22f08 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -43,7 +43,7 @@ adlb_annotated <- adlb %>% ) ) ) %>% - select(get_admiral_option("subject_keys"), TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) + select(USUBJID, STUDYID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) # Subset Datasets altast_records <- adlb_annotated %>% @@ -65,11 +65,11 @@ hylaw_records <- derive_vars_joined( ) hylaw_records_pts_visits <- hylaw_records %>% - select(get_admiral_option("subject_keys"), TRT01A) %>% # add AVISIT, ADT for by visit + select(USUBJID, STUDYID, TRT01A) %>% # add AVISIT, ADT for by visit distinct() hylaw_records_fls <- hylaw_records %>% - select(get_admiral_option("subject_keys"), TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit + select(USUBJID, STUDYID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit distinct() # Create new parameters based on records that present potential case diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index 2c57b3da20..c066c099fc 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -403,7 +403,7 @@ covar <- adsl %>% ) ) %>% select( - get_admiral_option("subject_keys"), STUDYIDN, SITEID, SITEIDN, USUBJIDN, + USUBJID, STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJIDN, SUBJID, SUBJIDN, AGE, SEX, SEXN, COHORT, COHORTC, ROUTE, ROUTEN, RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, COUNTRYL ) @@ -413,7 +413,7 @@ covar <- adsl %>% labsbl <- lb %>% filter(LBBLFL == "Y" & LBTESTCD %in% c("CREAT", "ALT", "AST", "BILI")) %>% mutate(LBTESTCDB = paste0(LBTESTCD, "BL")) %>% - select(get_admiral_option("subject_keys"), LBTESTCDB, LBSTRESN) + select(USUBJID, STUDYID, LBTESTCDB, LBSTRESN) covar_vslb <- covar %>% derive_vars_merged( From 27dc85df0961de15c606cc42082df64bba83e16a Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Tue, 4 Jun 2024 18:00:07 -0400 Subject: [PATCH 16/22] made changes to !!!adsl_vars to remove exclamations and bring it outside the exprs() argument when defining by_vars --- inst/templates/ad_adeg.R | 10 +++++----- inst/templates/ad_adex.R | 4 ++-- inst/templates/ad_adlb.R | 4 ++-- inst/templates/ad_advs.R | 8 ++++---- vignettes/bds_finding.Rmd | 6 +++--- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/inst/templates/ad_adeg.R b/inst/templates/ad_adeg.R index 4101294913..4d91a2f411 100644 --- a/inst/templates/ad_adeg.R +++ b/inst/templates/ad_adeg.R @@ -137,7 +137,7 @@ adeg <- adeg %>% # Derive RRR derive_param_rr( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), set_values_to = exprs(PARAMCD = "RRR"), hr_code = "HR", get_unit_expr = tolower(EGSTRESU), @@ -145,7 +145,7 @@ adeg <- adeg %>% ) %>% # Derive QTCBR derive_param_qtc( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Bazett", set_values_to = exprs(PARAMCD = "QTCBR"), qt_code = "QT", @@ -155,7 +155,7 @@ adeg <- adeg %>% ) %>% # Derive QTCFR derive_param_qtc( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), qt_code = "QT", @@ -165,7 +165,7 @@ adeg <- adeg %>% ) %>% # Derive QTLCR derive_param_qtc( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, EGTPT, EGTPTNUM, ADTM, ADY)), method = "Sagie", set_values_to = exprs(PARAMCD = "QTLCR"), qt_code = "QT", @@ -202,7 +202,7 @@ adeg <- adeg %>% adeg <- adeg %>% derive_summary_records( dataset_add = adeg, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(PARAMCD, AVISITN, AVISIT, ADT)), filter_add = dplyr::n() >= 2 & PARAMCD != "EGINTP", set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), diff --git a/inst/templates/ad_adex.R b/inst/templates/ad_adex.R index c81b83b481..7158e6bb02 100644 --- a/inst/templates/ad_adex.R +++ b/inst/templates/ad_adex.R @@ -226,7 +226,7 @@ adex <- adex %>% ) ), by_vars = c( - get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) + get_admiral_option("subject_keys"), adsl_vars, exprs(PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) ) ) %>% # Overall/W2-24 Average daily dose @@ -249,7 +249,7 @@ adex <- adex %>% ) ), by_vars = c( - get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) + get_admiral_option("subject_keys"), adsl_vars, exprs(PARCAT1, ASTDTM, ASTDT, AENDTM, AENDT) ) ) diff --git a/inst/templates/ad_adlb.R b/inst/templates/ad_adlb.R index f2974894f0..052cfe4caa 100644 --- a/inst/templates/ad_adlb.R +++ b/inst/templates/ad_adlb.R @@ -131,7 +131,7 @@ adlb <- adlb %>% adlb <- adlb %>% # Derive absolute Basophils derive_param_wbc_abs( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(DOMAIN, VISIT, VISITNUM, ADT, ADY)), set_values_to = exprs( PARAMCD = "BASO", PARAM = "Basophils Abs (10^9/L)", @@ -144,7 +144,7 @@ adlb <- adlb %>% ) %>% # Derive absolute Lymphocytes derive_param_wbc_abs( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, DOMAIN, VISIT, VISITNUM, ADT, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(DOMAIN, VISIT, VISITNUM, ADT, ADY)), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 8ce7e9aeb7..592cae1396 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -110,14 +110,14 @@ advs <- advs %>% # Derive Mean Arterial Pressure derive_param_map( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) ) %>% # Derive Body Surface Area derive_param_bsa( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -126,7 +126,7 @@ advs <- advs %>% ) %>% # Derive Body Mass Index derive_param_bmi( - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), @@ -158,7 +158,7 @@ advs <- advs %>% advs <- advs %>% derive_summary_records( dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(PARAMCD, AVISITN, AVISIT, ADT, ADY)), filter_add = !is.na(AVAL), set_values_to = exprs( AVAL = mean(AVAL), diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 3285b4bd12..7f7e4fc092 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -293,7 +293,7 @@ Example 3 in section below [Derive New Rows](#additional) for alternative way of ```{r eval=TRUE} advs <- derive_param_map( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) @@ -314,7 +314,7 @@ Likewise, function call below, to create parameter `Body Surface Area` (BSA) and ```{r eval=TRUE} advs <- derive_param_bsa( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, @@ -324,7 +324,7 @@ advs <- derive_param_bsa( advs <- derive_param_bmi( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(!!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), From 8573bdc083b4c429cf4fd1d1bf622be0b2f02992 Mon Sep 17 00:00:00 2001 From: ProfessorP Date: Thu, 6 Jun 2024 11:08:58 -0400 Subject: [PATCH 17/22] addressed additional instances where get_admiral_options should be used, tested rmd and testthat files, but more test files should be addressed and tested where USUBJID and STUDYID are used. --- .github/workflows/R-CMD-check.yaml | 60 + ADaM.Rproj | 19 + NAMESPACE | 86 + R/ADaM-package.R | 5 + R/addin_format_testthat.R | 107 + R/admiraldev-package.R | 26 + R/admiraldev_environment.R | 23 + R/assertions.R | 1925 +++++++++++++++++ R/call_derivation.R | 4 +- R/compat_friendly_type.R | 187 ++ R/create_single_dose_dataset.R | 13 +- R/dataset_vignette.R | 85 + R/derive_advs_params.R | 6 +- R/derive_extreme_event.R | 8 +- R/derive_extreme_records.R | 10 +- R/derive_joined.R | 8 +- R/derive_locf_records.R | 2 +- R/derive_merged.R | 24 +- R/derive_param_computed.R | 4 +- R/derive_param_exposure.R | 6 +- R/derive_param_extreme_record.R | 2 +- R/derive_var_extreme_flag.R | 4 +- R/derive_var_joined_exist_flag.R | 10 +- R/derive_var_merged_ef_msrc.R | 2 +- R/derive_var_relative_flag.R | 6 +- R/derive_vars_computed.R | 2 +- R/derive_vars_extreme_event.R | 4 +- R/dev_utilities.R | 208 ++ R/duplicates.R | 6 +- R/event.R | 4 +- R/expect_dfs_equal.R | 59 + R/filter_exist.R | 4 +- R/filter_extreme.R | 4 +- R/filter_joined.R | 10 +- R/filter_relative.R | 8 +- R/get.R | 140 ++ R/get_flagged_records.R | 4 +- R/global.R | 10 + R/hello.R | 9 + R/is.R | 60 + R/joins.R | 42 + R/period_dataset.R | 7 +- R/process_set_values_to.R | 113 + R/quo.R | 158 ++ R/quote.R | 95 + R/restrict_derivation.R | 4 +- R/tmp_vars.R | 115 + R/utils.R | 11 + R/warnings.R | 200 ++ R/what.R | 49 + README.Rmd | 67 + admiraldev.Rproj | 22 + inst/rstudio/addins.dcf | 4 + inst/templates/ad_adae.R | 8 +- inst/templates/ad_adlbhy.R | 12 +- inst/templates/ad_adpc.R | 41 +- inst/templates/ad_adppk.R | 57 +- inst/templates/ad_advs.R | 45 +- inst/templates/ad_adxx.R | 9 + inst/www/style.css | 16 + man/add_suffix_to_vars.Rd | 43 + man/admiral-package.Rd | 28 +- man/arg_name.Rd | 31 + man/assert_atomic_vector.Rd | 86 + man/assert_character_scalar.Rd | 113 + man/assert_character_vector.Rd | 100 + man/assert_data_frame.Rd | 106 + man/assert_date_var.Rd | 97 + man/assert_date_vector.Rd | 87 + man/assert_expr.Rd | 77 + man/assert_expr_list.Rd | 94 + man/assert_filter_cond.Rd | 99 + man/assert_function.Rd | 103 + man/assert_function_param.Rd | 29 + man/assert_has_variables.Rd | 32 + man/assert_integer_scalar.Rd | 95 + man/assert_list_element.Rd | 98 + man/assert_list_of.Rd | 101 + man/assert_logical_scalar.Rd | 91 + man/assert_named.Rd | 88 + man/assert_named_exprs.Rd | 30 + man/assert_numeric_vector.Rd | 86 + man/assert_one_to_one.Rd | 108 + man/assert_param_does_not_exist.Rd | 87 + man/assert_s3_class.Rd | 91 + man/assert_same_type.Rd | 74 + man/assert_symbol.Rd | 98 + man/assert_unit.Rd | 95 + man/assert_vars.Rd | 105 + man/assert_varval_list.Rd | 100 + man/backquote.Rd | 25 + man/call_derivation.Rd | 2 +- man/call_user_fun.Rd | 3 +- man/contains_vars.Rd | 33 + man/convert_dtm_to_dtc.Rd | 33 + man/create_single_dose_dataset.Rd | 14 +- man/dataset_vignette.Rd | 33 + man/derive_extreme_event.Rd | 8 +- man/derive_extreme_records.Rd | 10 +- man/derive_locf_records.Rd | 2 +- man/derive_param_bmi.Rd | 2 +- man/derive_param_bsa.Rd | 4 +- man/derive_param_computed.Rd | 4 +- man/derive_param_exposure.Rd | 6 +- man/derive_param_extreme_record.Rd | 2 +- man/derive_var_extreme_flag.Rd | 4 +- man/derive_var_joined_exist_flag.Rd | 10 +- man/derive_var_merged_ef_msrc.Rd | 2 +- man/derive_var_merged_exist_flag.Rd | 8 +- man/derive_var_merged_summary.Rd | 2 +- man/derive_var_relative_flag.Rd | 6 +- man/derive_vars_computed.Rd | 2 +- man/derive_vars_extreme_event.Rd | 4 +- man/derive_vars_joined.Rd | 8 +- man/derive_vars_merged.Rd | 14 +- man/derive_vars_period.Rd | 7 +- man/dquote.Rd | 27 + man/enumerate.Rd | 36 + man/event_joined.Rd | 4 +- man/expect_dfs_equal.Rd | 59 + man/expr_c.Rd | 25 + man/extract_duplicate_records.Rd | 2 +- man/extract_unit.Rd | 3 +- man/extract_vars.Rd | 39 + man/figures/admiral_contribution_model.png | Bin 0 -> 167331 bytes man/filter_exist.Rd | 2 +- man/filter_extreme.Rd | 4 +- man/filter_if.Rd | 34 + man/filter_joined.Rd | 10 +- man/filter_not_exist.Rd | 2 +- man/filter_relative.Rd | 8 +- man/friendly_type_of.Rd | 42 + man/get_constant_vars.Rd | 36 + man/get_dataset.Rd | 45 + man/get_duplicates.Rd | 30 + man/get_duplicates_dataset.Rd | 2 +- man/get_flagged_records.Rd | 7 +- man/get_new_tmp_var.Rd | 41 + man/get_not_mapped.Rd | 3 +- man/get_source_vars.Rd | 27 + man/get_vars_query.Rd | 3 +- man/grapes-notin-grapes.Rd | 34 + man/grapes-or-grapes.Rd | 38 + man/hello.Rd | 11 + man/is_auto.Rd | 25 + man/is_order_vars.Rd | 24 + man/is_valid_dtc.Rd | 24 + man/joins.Rd | 35 + man/params.Rd | 2 +- man/process_set_values_to.Rd | 69 + man/remove_tmp_vars.Rd | 46 + man/replace_symbol_in_expr.Rd | 41 + man/replace_values_by_names.Rd | 31 + man/restrict_derivation.Rd | 4 +- man/signal_duplicate_records.Rd | 2 +- man/squote.Rd | 25 + man/suppress_warning.Rd | 32 + man/use_ad_template.Rd | 2 +- man/valid_time_units.Rd | 28 + man/vars2chr.Rd | 39 + man/warn_if_incomplete_dtc.Rd | 28 + man/warn_if_inconsistent_list.Rd | 51 + man/warn_if_invalid_dtc.Rd | 37 + man/warn_if_vars_exist.Rd | 42 + man/what_is_it.Rd | 25 + tests/testthat/_snaps/assertions.md | 447 ++++ tests/testthat/_snaps/derive_extreme_event.md | 6 +- .../testthat/_snaps/process_set_values_to.md | 24 + tests/testthat/_snaps/tmp_vars.md | 8 + tests/testthat/_snaps/warnings.md | 34 + tests/testthat/test-addin_format_testthat.R | 49 + tests/testthat/test-assertions.R | 1562 +++++++++++++ tests/testthat/test-compat_friendly_type.R | 102 + tests/testthat/test-dataset_vignette.R | 48 + tests/testthat/test-derive_extreme_event.R | 250 +-- tests/testthat/test-derive_extreme_records.R | 96 +- tests/testthat/test-derive_joined.R | 2 +- tests/testthat/test-derive_param_tte.R | 4 +- .../testthat/test-derive_vars_extreme_event.R | 2 +- tests/testthat/test-dev_utilities.R | 105 + tests/testthat/test-get.R | 87 + tests/testthat/test-is.R | 26 + tests/testthat/test-process_set_values_to.R | 78 + tests/testthat/test-quo.R | 140 ++ tests/testthat/test-quote.R | 24 + tests/testthat/test-test_helpers.R | 11 + tests/testthat/test-tmp_vars.R | 66 + tests/testthat/test-warnings.R | 77 + tests/testthat/test-what.R | 44 + vignettes/admiral.Rmd | 18 +- vignettes/admiraldev.Rmd | 60 + vignettes/bds_exposure.Rmd | 83 +- vignettes/bds_finding.Rmd | 93 +- vignettes/concepts_conventions.Rmd | 36 +- vignettes/dummy_issue.png | Bin 0 -> 162776 bytes vignettes/git_usage.Rmd | 196 ++ vignettes/github_committ.png | Bin 0 -> 124769 bytes vignettes/github_conflicts.png | Bin 0 -> 62675 bytes vignettes/github_create_pr.png | Bin 0 -> 42483 bytes vignettes/github_done.png | Bin 0 -> 127143 bytes vignettes/github_feature_branch.png | Bin 0 -> 56794 bytes vignettes/github_linked_issues.png | Bin 0 -> 125293 bytes vignettes/github_linked_issues_dark.png | Bin 0 -> 154909 bytes vignettes/github_sprint_done.png | Bin 0 -> 113868 bytes vignettes/how-to-get-started.Rmd | 65 + vignettes/hys_law.Rmd | 6 +- vignettes/occds.Rmd | 75 +- vignettes/package_extensions.Rmd | 115 + vignettes/pk_adnca.Rmd | 12 +- vignettes/pr_review_actions.png | Bin 0 -> 75630 bytes vignettes/pr_review_checkbox.png | Bin 0 -> 130861 bytes vignettes/pr_review_checklist.png | Bin 0 -> 106191 bytes vignettes/pr_review_guidance.Rmd | 102 + vignettes/programming_strategy.Rmd | 762 +++++++ vignettes/project_board.png | Bin 0 -> 476697 bytes vignettes/questionnaires.Rmd | 20 +- vignettes/rcmd_issues.Rmd | 104 + vignettes/release_strategy.Rmd | 169 ++ vignettes/test_data_guidance.Rmd | 20 + vignettes/unit_test_format_tests.png | Bin 0 -> 54985 bytes vignettes/unit_test_guidance.Rmd | 315 +++ vignettes/unit_test_guidance.png | Bin 0 -> 41600 bytes vignettes/unit_test_toc.png | Bin 0 -> 263153 bytes vignettes/visits_periods.Rmd | 4 +- vignettes/writing_vignettes.Rmd | 257 +++ 225 files changed, 13323 insertions(+), 626 deletions(-) create mode 100644 .github/workflows/R-CMD-check.yaml create mode 100644 ADaM.Rproj create mode 100644 R/ADaM-package.R create mode 100644 R/addin_format_testthat.R create mode 100644 R/admiraldev-package.R create mode 100644 R/admiraldev_environment.R create mode 100644 R/assertions.R create mode 100644 R/compat_friendly_type.R create mode 100644 R/dataset_vignette.R create mode 100644 R/dev_utilities.R create mode 100644 R/expect_dfs_equal.R create mode 100644 R/get.R create mode 100644 R/global.R create mode 100644 R/hello.R create mode 100644 R/is.R create mode 100644 R/joins.R create mode 100644 R/process_set_values_to.R create mode 100644 R/quo.R create mode 100644 R/quote.R create mode 100644 R/tmp_vars.R create mode 100644 R/utils.R create mode 100644 R/warnings.R create mode 100644 R/what.R create mode 100644 README.Rmd create mode 100644 admiraldev.Rproj create mode 100644 inst/rstudio/addins.dcf create mode 100644 inst/templates/ad_adxx.R create mode 100644 inst/www/style.css create mode 100644 man/add_suffix_to_vars.Rd create mode 100644 man/arg_name.Rd create mode 100644 man/assert_atomic_vector.Rd create mode 100644 man/assert_character_scalar.Rd create mode 100644 man/assert_character_vector.Rd create mode 100644 man/assert_data_frame.Rd create mode 100644 man/assert_date_var.Rd create mode 100644 man/assert_date_vector.Rd create mode 100644 man/assert_expr.Rd create mode 100644 man/assert_expr_list.Rd create mode 100644 man/assert_filter_cond.Rd create mode 100644 man/assert_function.Rd create mode 100644 man/assert_function_param.Rd create mode 100644 man/assert_has_variables.Rd create mode 100644 man/assert_integer_scalar.Rd create mode 100644 man/assert_list_element.Rd create mode 100644 man/assert_list_of.Rd create mode 100644 man/assert_logical_scalar.Rd create mode 100644 man/assert_named.Rd create mode 100644 man/assert_named_exprs.Rd create mode 100644 man/assert_numeric_vector.Rd create mode 100644 man/assert_one_to_one.Rd create mode 100644 man/assert_param_does_not_exist.Rd create mode 100644 man/assert_s3_class.Rd create mode 100644 man/assert_same_type.Rd create mode 100644 man/assert_symbol.Rd create mode 100644 man/assert_unit.Rd create mode 100644 man/assert_vars.Rd create mode 100644 man/assert_varval_list.Rd create mode 100644 man/backquote.Rd create mode 100644 man/contains_vars.Rd create mode 100644 man/convert_dtm_to_dtc.Rd create mode 100644 man/dataset_vignette.Rd create mode 100644 man/dquote.Rd create mode 100644 man/enumerate.Rd create mode 100644 man/expect_dfs_equal.Rd create mode 100644 man/expr_c.Rd create mode 100644 man/extract_vars.Rd create mode 100644 man/figures/admiral_contribution_model.png create mode 100644 man/filter_if.Rd create mode 100644 man/friendly_type_of.Rd create mode 100644 man/get_constant_vars.Rd create mode 100644 man/get_dataset.Rd create mode 100644 man/get_duplicates.Rd create mode 100644 man/get_new_tmp_var.Rd create mode 100644 man/get_source_vars.Rd create mode 100644 man/grapes-notin-grapes.Rd create mode 100644 man/grapes-or-grapes.Rd create mode 100644 man/hello.Rd create mode 100644 man/is_auto.Rd create mode 100644 man/is_order_vars.Rd create mode 100644 man/is_valid_dtc.Rd create mode 100644 man/joins.Rd create mode 100644 man/process_set_values_to.Rd create mode 100644 man/remove_tmp_vars.Rd create mode 100644 man/replace_symbol_in_expr.Rd create mode 100644 man/replace_values_by_names.Rd create mode 100644 man/squote.Rd create mode 100644 man/suppress_warning.Rd create mode 100644 man/valid_time_units.Rd create mode 100644 man/vars2chr.Rd create mode 100644 man/warn_if_incomplete_dtc.Rd create mode 100644 man/warn_if_inconsistent_list.Rd create mode 100644 man/warn_if_invalid_dtc.Rd create mode 100644 man/warn_if_vars_exist.Rd create mode 100644 man/what_is_it.Rd create mode 100644 tests/testthat/_snaps/assertions.md create mode 100644 tests/testthat/_snaps/process_set_values_to.md create mode 100644 tests/testthat/_snaps/tmp_vars.md create mode 100644 tests/testthat/_snaps/warnings.md create mode 100644 tests/testthat/test-addin_format_testthat.R create mode 100644 tests/testthat/test-assertions.R create mode 100644 tests/testthat/test-compat_friendly_type.R create mode 100644 tests/testthat/test-dataset_vignette.R create mode 100644 tests/testthat/test-dev_utilities.R create mode 100644 tests/testthat/test-get.R create mode 100644 tests/testthat/test-is.R create mode 100644 tests/testthat/test-process_set_values_to.R create mode 100644 tests/testthat/test-quo.R create mode 100644 tests/testthat/test-quote.R create mode 100644 tests/testthat/test-test_helpers.R create mode 100644 tests/testthat/test-tmp_vars.R create mode 100644 tests/testthat/test-warnings.R create mode 100644 tests/testthat/test-what.R create mode 100644 vignettes/admiraldev.Rmd create mode 100644 vignettes/dummy_issue.png create mode 100644 vignettes/git_usage.Rmd create mode 100644 vignettes/github_committ.png create mode 100644 vignettes/github_conflicts.png create mode 100644 vignettes/github_create_pr.png create mode 100644 vignettes/github_done.png create mode 100644 vignettes/github_feature_branch.png create mode 100644 vignettes/github_linked_issues.png create mode 100644 vignettes/github_linked_issues_dark.png create mode 100644 vignettes/github_sprint_done.png create mode 100644 vignettes/how-to-get-started.Rmd create mode 100644 vignettes/package_extensions.Rmd create mode 100644 vignettes/pr_review_actions.png create mode 100644 vignettes/pr_review_checkbox.png create mode 100644 vignettes/pr_review_checklist.png create mode 100644 vignettes/pr_review_guidance.Rmd create mode 100644 vignettes/programming_strategy.Rmd create mode 100644 vignettes/project_board.png create mode 100644 vignettes/rcmd_issues.Rmd create mode 100644 vignettes/release_strategy.Rmd create mode 100644 vignettes/test_data_guidance.Rmd create mode 100644 vignettes/unit_test_format_tests.png create mode 100644 vignettes/unit_test_guidance.Rmd create mode 100644 vignettes/unit_test_guidance.png create mode 100644 vignettes/unit_test_toc.png create mode 100644 vignettes/writing_vignettes.Rmd diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000000..1c85c15a43 --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,60 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +# +# NOTE: This workflow is overkill for most R packages and +# check-standard.yaml is likely a better choice. +# usethis::use_github_action("check-standard") will install it. +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +name: R-CMD-check + +jobs: + R-CMD-check: + runs-on: ${{ matrix.config.os }} + + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + # - {os: macos-latest, r: 'release'} + + # - {os: windows-latest, r: 'release'} + # use 4.1 to check with rtools40's older compiler + # - {os: windows-latest, r: '4.1'} + + # - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + - {os: ubuntu-latest, r: 'release'} + # - {os: ubuntu-latest, r: 'oldrel-1'} + # - {os: ubuntu-latest, r: 'oldrel-2'} + # - {os: ubuntu-latest, r: 'oldrel-3'} + # - {os: ubuntu-latest, r: 'oldrel-4'} + + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + R_KEEP_PKG_SOURCE: yes + + steps: + - uses: actions/checkout@v3 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true diff --git a/ADaM.Rproj b/ADaM.Rproj new file mode 100644 index 0000000000..49f2092f8b --- /dev/null +++ b/ADaM.Rproj @@ -0,0 +1,19 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source diff --git a/NAMESPACE b/NAMESPACE index 236fbec4be..4d8f48d83d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,6 +13,9 @@ S3method(print,adam_templates) S3method(print,duplicates) S3method(print,source) export("%>%") +export("%notin%") +export("%or%") +export(add_suffix_to_vars) export(ae_event) export(ae_gr1_event) export(ae_gr2_event) @@ -23,6 +26,36 @@ export(ae_gr5_event) export(ae_ser_event) export(ae_sev_event) export(ae_wd_event) +export(anti_join) +export(arg_name) +export(assert_atomic_vector) +export(assert_character_scalar) +export(assert_character_vector) +export(assert_data_frame) +export(assert_date_var) +export(assert_date_vector) +export(assert_expr) +export(assert_expr_list) +export(assert_filter_cond) +export(assert_function) +export(assert_function_param) +export(assert_has_variables) +export(assert_integer_scalar) +export(assert_list_element) +export(assert_list_of) +export(assert_logical_scalar) +export(assert_named) +export(assert_named_exprs) +export(assert_numeric_vector) +export(assert_one_to_one) +export(assert_param_does_not_exist) +export(assert_s3_class) +export(assert_same_type) +export(assert_symbol) +export(assert_unit) +export(assert_vars) +export(assert_varval_list) +export(backquote) export(basket_select) export(call_derivation) export(call_user_fun) @@ -43,16 +76,19 @@ export(compute_rr) export(compute_scale) export(compute_tmf) export(consolidate_metadata) +export(contains_vars) export(convert_blanks_to_na) export(convert_date_to_dtm) export(convert_dtc_to_dt) export(convert_dtc_to_dtm) +export(convert_dtm_to_dtc) export(convert_na_to_blanks) export(count_vals) export(country_code_lookup) export(create_period_dataset) export(create_query_data) export(create_single_dose_dataset) +export(dataset_vignette) export(date_source) export(death_event) export(default_qtc_paramcd) @@ -116,30 +152,48 @@ export(derive_vars_query) export(derive_vars_transposed) export(desc) export(dose_freq_lookup) +export(dquote) export(dthcaus_source) +export(enumerate) export(event) export(event_joined) export(event_source) +export(expect_dfs_equal) +export(expr_c) export(exprs) export(extract_duplicate_records) export(extract_unit) +export(extract_vars) export(filter_exist) export(filter_extreme) +export(filter_if) export(filter_joined) export(filter_not_exist) export(filter_relative) export(flag_event) +export(friendly_type_of) export(get_admiral_option) +export(get_constant_vars) +export(get_dataset) +export(get_duplicates) export(get_duplicates_dataset) export(get_flagged_records) export(get_many_to_one_dataset) +export(get_new_tmp_var) export(get_not_mapped) export(get_one_to_many_dataset) +export(get_source_vars) export(get_summary_records) export(get_vars_query) +export(hello) export(impute_dtc_dt) export(impute_dtc_dtm) +export(inner_join) +export(is_auto) +export(is_order_vars) +export(is_valid_dtc) export(lastalive_censor) +export(left_join) export(list_all_templates) export(list_tte_source_objects) export(max_cond) @@ -147,13 +201,26 @@ export(min_cond) export(negate_vars) export(params) export(print_named_list) +export(process_set_values_to) export(query) export(records_source) +export(remove_tmp_vars) +export(replace_symbol_in_expr) +export(replace_values_by_names) export(restrict_derivation) export(set_admiral_options) export(signal_duplicate_records) export(slice_derivation) +export(squote) +export(suppress_warning) export(use_ad_template) +export(valid_time_units) +export(vars2chr) +export(warn_if_incomplete_dtc) +export(warn_if_inconsistent_list) +export(warn_if_invalid_dtc) +export(warn_if_vars_exist) +export(what_is_it) export(yn_to_numeric) import(admiraldev) importFrom(cli,ansi_collapse) @@ -162,6 +229,7 @@ importFrom(cli,cli_div) importFrom(cli,cli_inform) importFrom(cli,cli_text) importFrom(cli,cli_warn) +importFrom(dplyr,"%>%") importFrom(dplyr,across) importFrom(dplyr,arrange) importFrom(dplyr,bind_cols) @@ -178,6 +246,7 @@ importFrom(dplyr,full_join) importFrom(dplyr,group_by) importFrom(dplyr,group_by_at) importFrom(dplyr,if_else) +importFrom(dplyr,left_join) importFrom(dplyr,mutate) importFrom(dplyr,n) importFrom(dplyr,n_distinct) @@ -193,9 +262,12 @@ importFrom(dplyr,starts_with) importFrom(dplyr,summarise) importFrom(dplyr,summarise_all) importFrom(dplyr,tibble) +importFrom(dplyr,transmute) importFrom(dplyr,tribble) importFrom(dplyr,ungroup) importFrom(dplyr,union) +importFrom(glue,glue) +importFrom(glue,glue_collapse) importFrom(hms,as_hms) importFrom(lifecycle,deprecate_stop) importFrom(lifecycle,deprecate_warn) @@ -239,6 +311,7 @@ importFrom(purrr,pmap) importFrom(purrr,reduce) importFrom(purrr,transpose) importFrom(purrr,walk) +importFrom(rlang,"%||%") importFrom(rlang,":=") importFrom(rlang,.data) importFrom(rlang,abort) @@ -254,6 +327,7 @@ importFrom(rlang,caller_env) importFrom(rlang,current_env) importFrom(rlang,enexpr) importFrom(rlang,enexprs) +importFrom(rlang,enquo) importFrom(rlang,eval_bare) importFrom(rlang,eval_tidy) importFrom(rlang,exec) @@ -264,15 +338,27 @@ importFrom(rlang,exprs) importFrom(rlang,f_lhs) importFrom(rlang,f_rhs) importFrom(rlang,inform) +importFrom(rlang,is_bare_formula) importFrom(rlang,is_call) +importFrom(rlang,is_character) importFrom(rlang,is_expression) +importFrom(rlang,is_formula) +importFrom(rlang,is_integerish) +importFrom(rlang,is_logical) importFrom(rlang,is_missing) importFrom(rlang,is_named) +importFrom(rlang,is_quosure) +importFrom(rlang,is_symbol) +importFrom(rlang,is_symbolic) importFrom(rlang,list2) +importFrom(rlang,missing_arg) importFrom(rlang,new_environment) importFrom(rlang,new_formula) importFrom(rlang,parse_expr) importFrom(rlang,parse_exprs) +importFrom(rlang,quo) +importFrom(rlang,quo_is_missing) +importFrom(rlang,quo_is_null) importFrom(rlang,set_names) importFrom(rlang,sym) importFrom(rlang,syms) diff --git a/R/ADaM-package.R b/R/ADaM-package.R new file mode 100644 index 0000000000..874cb13e4e --- /dev/null +++ b/R/ADaM-package.R @@ -0,0 +1,5 @@ +#' @keywords internal +#' @importFrom dplyr filter mutate left_join rename select +#' @importFrom magrittr %>% +#' @importFrom rlang abort +"_PACKAGE" diff --git a/R/addin_format_testthat.R b/R/addin_format_testthat.R new file mode 100644 index 0000000000..df6c5b0a2e --- /dev/null +++ b/R/addin_format_testthat.R @@ -0,0 +1,107 @@ +# Returns the call for updating a given test_that test file +# by adding a function name, a test number, and a section. +# Call the function either by using RStudio Addin "format_test_that_file" or +# programmatically in a for loop on the test files and running +# rstudioapi::navigateToFile and format_test_that_file +prepare_test_that_file <- function(path) { + assert_character_scalar(path) + + # check that file exists + if (!file.exists(path)) { + stop("Invalid file path, the file does not exist.") + } + + # check that testthat is used and testing file is opened + uses_test_file <- grepl("tests/testthat/test-", path, fixed = TRUE) + if (!uses_test_file) { + stop("This Addin works only on unit test files that follow a testthat structure.") + } + + # parse the name of the testing function + testing_file <- sub("^test-", "", sub(".R$", "", basename(path))) + + # get file content + file_content <- readLines(path) + + # get locations of tests - match 'test_that("' strings + test_that_loc <- grep('^test_that\\("', file_content) + + if (length(test_that_loc) == 0) { + return(invisible(NULL)) + } + + #### + ## HANDLE test_that DESCRIPTIONS + #### + + # get and parse test descriptions + test_that_lines <- file_content[test_that_loc] + test_that_desc_parsed <- stringr::str_extract( + string = test_that_lines, + pattern = paste0( + '(?<=test_that\\(")', # positive look-ahead - search matching expression after test_that(" + ".*", # matching expression - match everything + '(?=")' # positive look-behind - search matching expression before " + ) + ) + test_that_desc_cleaned <- stringr::str_remove( + string = test_that_desc_parsed, + pattern = paste0("([\\w\\.]+,? )?[Tt]est \\d{1,} ?: ") + ) + + # determine name of function which is tested + # the function name can be specified by # function_name ---- comments + function_name <- str_match(file_content, "# ([\\w\\.]+) ----")[, 2] + if (is.na(function_name[1])) { + function_name[1] <- testing_file + } + function_name <- tidyr::fill(data.frame(name = function_name), name)$name + function_name <- function_name[test_that_loc] + + # formulate new test descriptions (update only those that don't include test_title) + new_desc <- paste0( + "Test ", seq_along(test_that_loc), ": ", + test_that_desc_cleaned + ) + + # insert new test descriptions into test_that lines + test_that_lines_updated <- stringr::str_replace( + string = test_that_lines, + pattern = '(?<=test_that\\(").*"', + replacement = paste0(function_name, " ", new_desc, '"') + ) + + # modify the file content + file_content[test_that_loc] <- test_that_lines_updated + + #### + ## HANDLE HEADERS + #### + + # formulate headers according to RStudio editor functionality + headers <- paste0("## ", new_desc, " ----") + + # get locations of headers created by this function + header_loc_lgl <- grepl(paste0("^##?( ----)?( \\w+)?,? [tT]est \\d{1,} ?: "), file_content) + + # remove those headers + file_content <- file_content[!header_loc_lgl] + + # add new headers just before test_that calls + header_loc <- grep('^test_that\\("', file_content) + seq_along(headers) - 1 + file_content_new <- vector(mode = "character", length = length(file_content) + length(headers)) + file_content_new[header_loc] <- headers + file_content_new[-header_loc] <- file_content + + list(file_content = file_content_new) +} + +# Function for the RStudio Addin, see inst/rstudio/addins.dcf. +# Wrapper of prepare_test_that_file. +format_test_that_file <- function() { + file_info <- rstudioapi::getActiveDocumentContext() + rstudioapi::documentSave(id = file_info$id) + result <- prepare_test_that_file(path = file_info$path) + rstudioapi::setDocumentContents(paste0(result$file_content, collapse = "\n"), id = file_info$id) + rstudioapi::documentSave(id = file_info$id) +} diff --git a/R/admiraldev-package.R b/R/admiraldev-package.R new file mode 100644 index 0000000000..70af824a84 --- /dev/null +++ b/R/admiraldev-package.R @@ -0,0 +1,26 @@ +#' @keywords internal +#' @importFrom dplyr across arrange bind_rows case_when desc ends_with filter +#' full_join group_by if_else mutate n pull rename row_number select slice +#' starts_with transmute ungroup n_distinct union distinct summarise coalesce +#' bind_cols na_if tibble %>% +#' @importFrom rlang := abort arg_match as_function as_label as_name as_string +#' call2 caller_env call_name current_env .data enexpr enquo eval_bare +#' eval_tidy expr expr_interp expr_label exprs f_lhs f_rhs is_named inform missing_arg +#' is_bare_formula is_call is_character is_expression is_formula is_integerish +#' is_logical is_missing is_quosure is_symbol is_symbolic new_formula +#' parse_expr parse_exprs quo quo_is_missing quo_is_null set_names sym syms +#' type_of warn %||% +#' @importFrom utils capture.output str +#' @importFrom purrr map map2 map_chr map_lgl reduce walk keep map_if transpose +#' flatten every modify_at modify_if reduce compose +#' @importFrom stringr str_c str_detect str_extract str_glue str_match +#' str_remove str_remove_all str_replace str_trim str_to_lower str_subset +#' str_to_title str_to_upper +#' @importFrom lubridate as_datetime ceiling_date date days duration floor_date is.Date is.instant +#' time_length %--% ymd ymd_hms weeks years hours minutes +#' @importFrom tidyr drop_na nest pivot_longer pivot_wider unnest +#' @importFrom tidyselect all_of contains vars_select +#' @importFrom lifecycle deprecate_warn deprecated deprecate_stop +#' @importFrom cli cli_abort cli_div +#' @importFrom glue glue glue_collapse +"_PACKAGE" diff --git a/R/admiraldev_environment.R b/R/admiraldev_environment.R new file mode 100644 index 0000000000..2817631583 --- /dev/null +++ b/R/admiraldev_environment.R @@ -0,0 +1,23 @@ +#' Environment Objects +#' +#' @details +#' Once in a while, we may encounter "locked binding for 'xxx'." errors +#' during the development process while building out functions. This may arise because +#' we want to create dynamic data/objects based on user-inputs that need modification +#' at points in time after the package has been loaded. To manage such data or objects, +#' R has a data structure known as an 'environment'. These environment objects are created +#' at build time, but can be populated with values after the package has been loaded and +#' update those values over the course of an R session. For more details how environments work, +#' see relevant sections on environments in R Packages and Advanced R textbooks for more details. +#' @noRd +admiraldev_environment <- new.env(parent = emptyenv()) +# See respective ...R page for usage + +# assertions.R ---- +## assert_one_to_one +admiraldev_environment$many_to_one <- NULL +admiraldev_environment$one_to_many <- NULL + +# datasets.R ---- +## get_dataset +# Function above is used to retrieve many_to_one and one_to_many diff --git a/R/assertions.R b/R/assertions.R new file mode 100644 index 0000000000..62c014ceec --- /dev/null +++ b/R/assertions.R @@ -0,0 +1,1925 @@ +#' Is an Argument a Data Frame? +#' +#' Checks if an argument is a data frame and (optionally) whether is contains +#' a set of required variables +#' +#' @param arg A function argument to be checked +#' @param required_vars A list of variables created using `exprs()` +#' @param check_is_grouped Throw an error is `dataset` is grouped? Defaults to `TRUE`. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' +#' @inheritParams assert_logical_scalar +#' +#' @return +#' The function throws an error if `arg` is not a data frame or if `arg` is a +#' data frame but misses any variable specified in `required_vars`. Otherwise, +#' the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' +#' @examples +#' library(dplyr) +#' library(rlang) +#' dm <- tribble( +#' ~STUDYID, ~USUBJID, +#' "XYZ", "1", +#' "XYZ", "2" +#' ) +#' +#' example_fun <- function(dataset) { +#' assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) +#' } +#' +#' example_fun(dm) +#' +#' try(example_fun(select(dm, -STUDYID))) +#' +#' try(example_fun("Not a dataset")) +#' +#' try(example_fun(group_by(dm, USUBJID))) +assert_data_frame <- function(arg, + required_vars = NULL, + check_is_grouped = TRUE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_data_frame", + call = parent.frame()) { + assert_vars(required_vars, optional = TRUE) + assert_logical_scalar(check_is_grouped) + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + assert_s3_class( + arg, + cls = "data.frame", + optional = optional, + arg_name = arg_name, + message = message, + class = class, + call = call + ) + + if (check_is_grouped && dplyr::is_grouped_df(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must not be a grouped dataset, please `ungroup()` it.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + if (!is.null(required_vars)) { + required_vars <- vars2chr(required_vars) + is_missing <- !required_vars %in% colnames(arg) + if (any(is_missing)) { + missing_vars <- required_vars[is_missing] + if (length(missing_vars) == 1L) { + err_msg <- "Required variable {.var {missing_vars}} is missing in {.arg {arg_name}}" + } else { + err_msg <- "Required variables {.var {missing_vars}} are missing in {.arg {arg_name}}" + } + cli_abort( + message = message %||% + err_msg, + class = c(class, "assert-admiraldev"), + call = call + ) + } + } + + invisible(arg) +} + +#' Is an Argument a Character Scalar (String)? +#' +#' Checks if an argument is a character scalar and (optionally) whether it matches +#' one of the provided `values`. +#' +#' @param arg A function argument to be checked +#' @param values A `character` vector of valid values for `arg`. +#' Values is converted to a lower case vector if case_sensitive = FALSE is used. +#' @param case_sensitive Should the argument be handled case-sensitive? +#' If set to `FALSE`, the argument is converted to lower case for checking the +#' permitted values and returning the argument. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a character vector or if `arg` +#' is a character vector but of length > 1 or if its value is not one of the `values` +#' specified. Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(msg_type) { +#' assert_character_scalar(msg_type, values = c("warning", "error")) +#' } +#' +#' example_fun("warning") +#' +#' try(example_fun("message")) +#' +#' try(example_fun(TRUE)) +#' +#' # handling arguments case-insensitive +#' example_fun2 <- function(msg_type) { +#' msg_type <- assert_character_scalar( +#' msg_type, +#' values = c("warning", "error"), +#' case_sensitive = FALSE +#' ) +#' if (msg_type == "warning") { +#' print("A warning was requested.") +#' } +#' } +#' +#' example_fun2("Warning") +assert_character_scalar <- function(arg, + values = NULL, + case_sensitive = TRUE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_character_scalar", + call = parent.frame()) { + assert_character_vector(values, optional = TRUE) + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + # change cli `.val` to end with OR instead of AND + divid <- cli_div(theme = list(.val = list("vec-last" = ", or ", "vec_sep2" = " or "))) + + # check class and length of `arg` + if (!is.character(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a scalar of class {.cls character}, + but is {.obj_type_friendly {arg}}.", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + if (length(arg) != 1L) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a scalar of class {.cls character}, + but is length {.val {length(arg)}}", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + # Create case_adjusted_arg and case_adjusted_values for the following purpose: + # + # 1. To simplify the comparison of arg and values; i.e. the "case_adjusted_" + # variables take into consideration whether `case_sensitive = TRUE`, or + # `case_sensitive = FALSE`. + # + # 2. To avoid overwriting the original "arg" and "values", so that subsequent + # code can refer directly to the initial function arguments: this is + # required whilst generating an error message if "arg" is not one of the + # user-specified valid values. + + if (case_sensitive) { + case_adjusted_arg <- arg + if (!is.null(values)) { + case_adjusted_values <- values + } + } else { + case_adjusted_arg <- tolower(arg) + if (!is.null(values)) { + case_adjusted_values <- tolower(values) + } + } + + if (!is.null(values) && case_adjusted_arg %notin% case_adjusted_values) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be equal to one of {.val {values}}.", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(case_adjusted_arg) +} + +#' Is an Argument a Character Vector? +#' +#' Checks if an argument is a character vector +#' +#' @param arg A function argument to be checked +#' @param values A `character` vector of valid values for `arg` +#' @param named If set to `TRUE`, an error is issued if not all elements of the +#' vector are named. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a character vector or if +#' any element is not included in the list of valid values. Otherwise, the input +#' is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(chr) { +#' assert_character_vector(chr) +#' } +#' +#' example_fun(letters) +#' +#' try(example_fun(1:10)) +#' +#' example_fun2 <- function(chr) { +#' assert_character_vector(chr, named = TRUE) +#' } +#' +#' try(example_fun2(c(alpha = "a", "b", gamma = "c"))) +assert_character_vector <- function(arg, values = NULL, named = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_character_vector", + call = parent.frame()) { + assert_logical_scalar(named) + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + message <- + message %||% + ifelse( + is.null(values), + "Argument {.arg {arg_name}} must be {.cls character}, but is {.obj_type_friendly {arg}}.", + "Argument {.arg {arg_name}} must be {.cls character} with values {.val {values}}." + ) + + if (!is.character(arg) || + (!is.null(values) && length(unique(arg[!map_lgl(arg, `%in%`, values)])) > 0L)) { + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + if (named) { + assert_named(arg, call = call, class = class, arg_name = arg_name) + } + + invisible(arg) +} + +#' Is an Argument a Logical Scalar (Boolean)? +#' +#' Checks if an argument is a logical scalar +#' +#' @param arg A function argument to be checked +#' @param optional Is the checked argument optional?\cr +#' If set to `FALSE` and `arg` is `NULL` then an error is thrown. Otherwise, +#' `NULL` is considered as valid value. +#' @param arg_name string indicating the label/symbol of the object being checked. +#' @param message string passed to `cli::cli_abort(message)`. +#' When `NULL`, default messaging is used (see examples for default messages). +#' `"{arg_name}"` can be used in messaging. +#' @inheritParams cli::cli_abort +#' @inheritParams rlang::abort +#' +#' @return +#' The function throws an error if `arg` is neither `TRUE` or `FALSE`. Otherwise, +#' the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(flag) { +#' assert_logical_scalar(flag) +#' } +#' +#' example_fun(FALSE) +#' +#' try(example_fun(NA)) +#' +#' try(example_fun(c(TRUE, FALSE, FALSE))) +#' +#' try(example_fun(1:10)) +assert_logical_scalar <- function(arg, optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_logical_scalar", + call = parent.frame()) { + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + # set default error message, if not specified + message <- + message %||% + "Argument {.arg {arg_name}} must be either {.val {TRUE}} or + {.val {FALSE}}, but is {.obj_type_friendly {arg}}." + + if (!is.logical(arg) || length(arg) != 1L || is.na(arg)) { + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(arg) +} + +#' Is an Argument a Symbol? +#' +#' Checks if an argument is a symbol +#' +#' @param arg A function argument to be checked. Must be a `symbol`. See examples. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a symbol and returns the input +#' invisibly otherwise. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' dm <- dplyr::tribble( +#' ~DOMAIN, ~USUBJID, +#' "DM", "01-701-1015", +#' "DM", "01-701-1016", +#' ) +#' example_fun <- function(dat, var) { +#' var <- assert_symbol(enexpr(var)) +#' select(dat, !!var) +#' } +#' +#' example_fun(dm, USUBJID) +#' +#' try(example_fun(dm)) +#' +#' try(example_fun(dm, "USUBJID")) +#' +#' try(example_fun(dm, toupper(PARAMCD))) +assert_symbol <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_symbol", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + # set default error message, if not specified + message <- + message %||% + ifelse( + is_missing(arg), + "Argument {.arg {arg_name}} must be a {.cls symbol}, but is missing.", + "Argument {.arg {arg_name}} must be a {.cls symbol}, but is {.obj_type_friendly {arg}}." + ) + + if (is_missing(arg) || !is.symbol(arg)) { + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(arg) +} + +#' Assert Argument is an Expression +#' +#' @inheritParams assert_data_frame +#' @inheritParams assert_character_scalar +#' +#' @keywords assertion +#' @family assertion +#' +#' @return +#' The function throws an error if `arg` is not an expression, i.e. either +#' a symbol or a call, or returns the input invisibly otherwise +#' +#' @export +assert_expr <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_expr", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + arg_name <- tryCatch(force(arg_name), error = function(e) "arg") + if (is_missing(arg)) { + cli_abort( + message = message %||% "Argument {.arg {arg_name}} cannot be missing.", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + if (!(is_call(arg) || is_expression(arg))) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be an expression, but is {.obj_type_friendly {arg}}", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(arg) +} + +#' Is an Argument a Filter Condition? +#' +#' @param arg Quosure - filtering condition. +#' @param optional Logical - is the argument optional? Defaults to `FALSE`. +#' @inheritParams assert_logical_scalar +#' +#' @details Check if `arg` is a suitable filtering condition to be used in +#' functions like `subset` or `dplyr::filter`. +#' +#' @return Performs necessary checks and returns `arg` if all pass. +#' Otherwise throws an informative error. +#' +#' @export +#' @keywords assertion +#' @family assertion +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' dm <- dplyr::tribble( +#' ~DOMAIN, ~STUDYID, ~USUBJID, ~AGE, +#' "DM", "STUDY X", "01-701-1015", 64, +#' "DM", "STUDY X", "01-701-1016", 65, +#' ) +#' +#' # typical usage in a function as an argument check +#' example_fun <- function(dat, x) { +#' x <- assert_filter_cond(enexpr(x), arg_name = "x") +#' filter(dat, !!x) +#' } +#' +#' example_fun(dm, AGE == 64) +#' +#' try(assert_filter_cond(mtcars)) +assert_filter_cond <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_filter_cond", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + arg_name <- gsub("^.*\\((.*)\\)$", "\\1", arg_name) + + provided <- !is_missing(arg) + if (provided && !(is_call(arg) || is_logical(arg))) { + cli_abort( + message = message %||% + "Argument {.arg {(arg_name)}} must be a filter condition, but is {.obj_type_friendly {arg}}", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Is an Argument a List of Variables? +#' +#' Checks if an argument is a valid list of symbols (e.g., created by `exprs()`) +#' +#' @param arg A function argument to be checked +#' +#' @param expect_names If the argument is set to `TRUE`, it is checked if all +#' variables are named, e.g., `exprs(APERSDT = APxxSDT, APEREDT = APxxEDT)`. +#' +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' +#' @inheritParams assert_logical_scalar +#' +#' @return +#' The function throws an error if `arg` is not a list of symbols (e.g., created +#' by `exprs()` and returns the input invisibly otherwise. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' +#' example_fun <- function(by_vars) { +#' assert_vars(by_vars) +#' } +#' +#' example_fun(exprs(USUBJID, PARAMCD)) +#' +#' try(example_fun(quos(USUBJID, PARAMCD))) +#' +#' try(example_fun(c("USUBJID", "PARAMCD", "VISIT"))) +#' +#' try(example_fun(exprs(USUBJID, toupper(PARAMCD), desc(AVAL)))) +#' +#' example_fun_name <- function(by_vars) { +#' assert_vars(by_vars, expect_names = TRUE) +#' } +#' +#' example_fun_name(exprs(APERSDT = APxxSDT, APEREDT = APxxEDT)) +#' +#' try(example_fun_name(exprs(APERSDT = APxxSDT, APxxEDT))) +assert_vars <- function(arg, + expect_names = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_vars", + call = parent.frame()) { + assert_logical_scalar(expect_names) + assert_logical_scalar(optional) + + if (isTRUE(tryCatch(force(arg), error = function(e) TRUE))) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a list of {.cls symbol}, + e.g., {.code exprs(USUBJID, VISIT)}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + assert_list_of( + arg, + "symbol", + named = expect_names, + optional = optional, + arg_name = arg_name, + message = message, + class = class, + call = call + ) +} + +#' Is an Argument an Integer Scalar? +#' +#' Checks if an argument is an integer scalar +#' +#' @param arg A function argument to be checked +#' @param subset A subset of integers that `arg` should be part of. Should be one +#' of `"none"` (the default), `"positive"`, `"non-negative"` or `"negative"`. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' @return +#' The function throws an error if `arg` is not an integer belonging to the +#' specified `subset`. Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(num1, num2) { +#' assert_integer_scalar(num1, subset = "positive") +#' assert_integer_scalar(num2, subset = "negative") +#' } +#' +#' example_fun(1, -9) +#' +#' try(example_fun(1.5, -9)) +#' +#' try(example_fun(2, 0)) +#' +#' try(example_fun("2", 0)) +assert_integer_scalar <- function(arg, + subset = "none", + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_integer_scalar", + call = parent.frame()) { + subsets <- list( + "positive" = quote(arg > 0L), + "non-negative" = quote(arg >= 0L), + "negative" = quote(arg < 0L), + "none" = quote(TRUE) + ) + assert_character_scalar(subset, values = names(subsets)) + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (!is_integerish(arg) || length(arg) != 1L || !is.finite(arg) || !eval(subsets[[subset]])) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be + {ifelse(subset == 'none', 'an', paste('a', subset))} + integer scalar.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(as.integer(arg)) +} + +#' Is an Argument a Numeric Vector? +#' +#' Checks if an argument is a numeric vector +#' +#' @param arg A function argument to be checked +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a numeric vector. +#' Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(num) { +#' assert_numeric_vector(num) +#' } +#' +#' example_fun(1:10) +#' +#' try(example_fun(letters)) +assert_numeric_vector <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_numeric_vector", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (!is.numeric(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a numeric vector, but it is + {.obj_type_friendly {arg}}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Is an Argument an Atomic Vector? +#' +#' Checks if an argument is an atomic vector +#' +#' @param arg A function argument to be checked +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not an atomic vector. +#' Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(x) { +#' assert_atomic_vector(x) +#' } +#' +#' example_fun(1:10) +#' +#' try(example_fun(list(1, 2))) +assert_atomic_vector <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_atomic_vector", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (!is.atomic(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be an atomic vector, but is {.obj_type_friendly {arg}}.", + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(arg) +} + +#' Is an Argument an Object of a Specific S3 Class? +#' +#' Checks if an argument is an object inheriting from the S3 class specified. +#' @param arg A function argument to be checked +#' @param cls The S3 class to check for +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is an object which does *not* inherit from `class`. +#' Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(obj) { +#' assert_s3_class(obj, "factor") +#' } +#' +#' example_fun(as.factor(letters)) +#' +#' try(example_fun(letters)) +#' +#' try(example_fun(1:10)) +assert_s3_class <- function(arg, cls, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_s3_class", + call = parent.frame()) { + assert_character_scalar(cls) + assert_logical_scalar(optional) + + if (is.null(arg) && optional) { + return(invisible(arg)) + } + + messagge <- + message %||% + "Argument {.arg {arg_name}} must be class {.cls {cls}}, but is {.obj_type_friendly {arg}}." + + if (!inherits(arg, cls)) { + cli_abort( + message = messagge, + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Is an Argument a List of Objects of a Specific S3 Class or Type? +#' +#' Checks if an argument is a `list` of objects inheriting from the S3 class or type specified. +#' +#' @param arg A function argument to be checked +#' @param cls The S3 class or type to check for +#' @param named If set to `TRUE`, an error is issued if not all elements of the +#' list are named. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a list or if `arg` is a list but +#' its elements are not objects inheriting from `class` or of type `class`. +#' Otherwise, the input is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' @examples +#' example_fun <- function(list) { +#' assert_list_of(list, "data.frame") +#' } +#' +#' example_fun(list(mtcars, iris)) +#' +#' try(example_fun(list(letters, 1:10))) +#' +#' try(example_fun(c(TRUE, FALSE))) +#' +#' example_fun2 <- function(list) { +#' assert_list_of(list, "numeric", named = TRUE) +#' } +#' try(example_fun2(list(1, 2, 3, d = 4))) +assert_list_of <- function(arg, cls, + named = FALSE, + optional = TRUE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_list_of", + call = parent.frame()) { + assert_character_scalar(cls) + assert_logical_scalar(named) + assert_logical_scalar(optional) + + if (is.null(arg) && optional) { + return(invisible(arg)) + } + + # check the passed argument is a list + assert_s3_class( + arg, + cls = "list", + arg_name = arg_name, + message = message, + class = class, + call = call + ) + # if list must be named, check this + if (named) { + assert_named( + arg, + arg_name = arg_name, + message = message, + class = class, + call = call + ) + } + + # check each list element is the expected class/type + is_class <- map_lgl(arg, inherits, cls) | map_chr(arg, typeof) == cls + if (!all(is_class)) { + # construct supplementary message listing elements that are not correct type + if (is.null(message)) { + info_msg <- glue_collapse( + glue( + "element {{.val {{{which(!is_class)}}}}} is ", + "{{.obj_type_friendly {{arg[[{which(!is_class)}]]}}}}" + ), + sep = ", ", last = ", and " + ) + message <- c( + "Each element of the list in argument {.arg {arg_name}} + must be class/type {.cls {cls}}.", + i = paste("But,", info_msg) + ) + } + + cli_abort( + message = message, + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Assert Argument is a Named List or Vector +#' +#' Assert that all elements of the argument are named. +#' +#' @inheritParams assert_data_frame +#' @inheritParams assert_logical_scalar +#' +#' @keywords assertion +#' @family assertion +#' +#' @return +#' The function throws an error if `arg` is not a named list or vector or +#' returns the input invisibly otherwise +#' +#' @export +#' +#' @examples +#' example_fun <- function(varval_list) { +#' assert_named(varval_list) +#' } +#' +#' example_fun(list(var1 = 1, var2 = "x")) +#' +#' try(example_fun(list(1, "x"))) +#' +#' try(example_fun(list(var = 1, "x"))) +assert_named <- function(arg, optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_named", + call = parent.frame()) { + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + # if argument is greater than length 0 and all element named, return arg invisibly + any_unnamed <- length(arg) > 0L && !is_named(arg) + if (isFALSE(any_unnamed)) { + return(invisible(arg)) + } + + # get the indices of the unnamed elements for using in the error message. + if (is.null(names(arg))) { + indices <- seq_along(arg) + } else { + indices <- which(names(arg) == "") + } + + message <- message %||% + c("All elements of {.arg {arg_name}} argument must be named.", + i = "The indices of the unnamed elements are {.val {indices}}" + ) + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) +} + +#' Assert Argument is a Named List of Expressions +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' This function is *deprecated*, please use `assert_expr_list()` instead. +#' +#' @inheritParams assert_data_frame +#' +#' @keywords deprecated +#' @family deprecated +#' +#' @return +#' The function throws an error if `arg` is not a named `list` of expression or +#' returns the input invisibly otherwise +#' +#' @export +assert_named_exprs <- function(arg, optional = FALSE) { + deprecate_stop("0.5.0", "assert_named_exprs()", "assert_expr_list()") +} + +#' Does a Dataset Contain All Required Variables? +#' +#' Checks if a dataset contains all required variables +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' This function is *deprecated*, please use `assert_data_frame()` instead. +#' +#' @param dataset A `data.frame` +#' @param required_vars A `character` vector of variable names +#' +#' +#' @return The function throws an error if any of the required variables are +#' missing in the input dataset. Otherwise, the dataset is returned invisibly. +#' +#' @export +#' +#' @keywords deprecated +#' @family deprecated +assert_has_variables <- function(dataset, required_vars) { + deprecate_stop("0.5.0", "assert_has_variables()", "assert_data_frame()") +} + +#' Is Argument a Function? +#' +#' Checks if the argument is a function and if all expected arguments are +#' provided by the function. +#' +#' @param arg A function +#' +#' The function to be checked +#' +#' @param params A character vector +#' +#' A character vector of expected argument names for the aforementioned function in `arg`. +#' If ellipsis, `...`, is included in the function formals of the function in `arg`, +#' this argument, `params` will be ignored, accepting all values of the character vector. +#' +#' @param optional Is the checked argument optional? +#' +#' If set to `FALSE` and `arg` is `NULL` then an error is thrown. +#' @inheritParams assert_logical_scalar +#' +#' @return The function throws an error +#' +#' - if the argument is not a function or +#' +#' - if the function does not provide all arguments as specified for the +#' `params` argument (assuming ellipsis is not in function formals) +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' +#' @examples +#' example_fun <- function(fun) { +#' assert_function(fun, params = c("x")) +#' } +#' +#' example_fun(mean) +#' +#' try(example_fun(1)) +#' +#' try(example_fun(sum)) +assert_function <- function(arg, + params = NULL, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_function", + call = parent.frame()) { + assert_character_vector(params, optional = TRUE) + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + arg_name <- tryCatch(force(arg_name), error = function(e) "arg") + if (missing(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} cannot be missing.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + if (!is.function(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a function, but is {.obj_type_friendly {arg}}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + if (!is.null(params)) { + if ("..." %in% names(formals(arg))) { + return(invisible(arg)) + } + is_param <- params %in% names(formals(arg)) + + if (!all(is_param)) { + cli_abort( + message = message %||% + "{.val {params[!is_param]}} {?is/are} not {?an argument/arguments} + of the function specified for {.arg {arg_name}}.", + call = call, + class = c(class, "assert-admiraldev") + ) + } + } + + invisible(arg) +} + +#' Assert Argument is a Parameter of a Function +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' This function is *deprecated*, please use `assert_function()` instead. +#' +#' @param arg The name of a function passed as a string +#' @param params A character vector of function parameters +#' +#' @keywords deprecated +#' @family deprecated +#' +#' @return +#' The function throws an error if any elements of `params` is not an argument of +#' the function given by `arg` +#' +#' @export +assert_function_param <- function(arg, params) { + deprecate_stop("0.5.0", "assert_function_param()", "assert_function()") +} + +#' Asserts That a Parameter is Provided in the Expected Unit +#' +#' Checks if a parameter (`PARAMCD`) in a dataset is provided in the expected +#' unit. +#' +#' @param dataset A `data.frame` +#' @param param Parameter code of the parameter to check +#' @param required_unit Expected unit +#' @param get_unit_expr Expression used to provide the unit of `param` +#' +#' @inheritParams assert_logical_scalar +#' +#' +#' @keywords assertion +#' @family assertion +#' +#' @return +#' The function throws an error if the unit variable differs from the +#' unit for any observation of the parameter in the input dataset. Otherwise, the +#' dataset is returned invisibly. +#' +#' @export +#' +#' @examples +#' library(dplyr) +#' +#' advs <- tribble( +#' ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, +#' "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, +#' "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 +#' ) +#' +#' assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU) +assert_unit <- function(dataset, + param, + required_unit, + get_unit_expr, + arg_name = rlang::caller_arg(required_unit), + message = NULL, + class = "assert_unit", + call = parent.frame()) { + assert_data_frame(dataset, required_vars = exprs(PARAMCD)) + assert_character_scalar(param) + assert_character_scalar(required_unit) + get_unit_expr <- enexpr(get_unit_expr) + + units <- dataset %>% + mutate(`_unit` = !!get_unit_expr) %>% + filter(PARAMCD == param & !is.na(`_unit`)) %>% + pull(`_unit`) %>% + unique() + + if (length(units) != 1L) { + message <- + message %||% + "Multiple units {.val {units}} found for {.val {param}}. Please review and update the units." + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + if (tolower(units) != tolower(required_unit)) { + message <- + message %||% + "It is expected that {.val {param}} has unit of {.val {required_unit}}. + In the input dataset the unit is {.val {units}}." + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(dataset) +} + +#' Asserts That a Parameter Does Not Exist in the Dataset +#' +#' Checks if a parameter (`PARAMCD`) does not exist in a dataset. +#' +#' @param dataset A `data.frame` +#' @param param Parameter code to check +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if the parameter exists in the input +#' dataset. Otherwise, the dataset is returned invisibly. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' +#' @examples +#' library(dplyr) +#' +#' advs <- tribble( +#' ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, +#' "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, +#' "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 +#' ) +#' assert_param_does_not_exist(advs, param = "HR") +#' try(assert_param_does_not_exist(advs, param = "WEIGHT")) +assert_param_does_not_exist <- function(dataset, + param, + arg_name = rlang::caller_arg(dataset), + message = NULL, + class = "assert_param_does_not_exist", + call = parent.frame()) { + assert_data_frame(dataset, required_vars = exprs(PARAMCD)) + if (param %in% unique(dataset$PARAMCD)) { + message <- + message %||% + "The parameter code {.val {param}} already exists in dataset {.arg {arg_name}}." + + cli_abort( + message = message, + class = c(class, "assert-admiraldev"), + call = call + ) + } + invisible(dataset) +} + +#' Is an Argument a Variable-Value List? +#' +#' Checks if the argument is a list of expressions where the expressions are +#' variable-value pairs. The value can be a symbol, a string, a numeric, an +#' expression, or `NA`. +#' +#' @param arg A function argument to be checked +#' @param required_elements A `character` vector of names that must be present in `arg` +#' @param accept_expr Should expressions on the right hand side be accepted? +#' @param accept_var Should unnamed variable names (e.g. `exprs(USUBJID)`) on the +#' right hand side be accepted? +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown. +#' @inheritParams assert_logical_scalar +#' +#' +#' @return +#' The function throws an error if `arg` is not a list of variable-value expressions. +#' Otherwise, the input it returned invisibly. +#' +#' @keywords assertion +#' @family assertion +#' @export +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' +#' example_fun <- function(vars) { +#' assert_varval_list(vars) +#' } +#' example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ)) +#' +#' try(example_fun(exprs("AE", DTSEQ = AESEQ))) +assert_varval_list <- function(arg, # nolint + required_elements = NULL, + accept_expr = TRUE, + accept_var = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_varval_list", + call = parent.frame()) { + assert_logical_scalar(accept_expr) + assert_logical_scalar(accept_var) + assert_logical_scalar(optional) + assert_character_vector(required_elements, optional = TRUE) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (accept_expr) { + valid_vals <- "a symbol, character scalar, numeric scalar, an expression, or {.val {NA}}" + } else if (accept_var) { + valid_vals <- "a symbol, character scalar, numeric scalar, variable names or {.val {NA}}" + } else { + valid_vals <- "a symbol, character scalar, numeric scalar, or {.val {NA}}" + } + + if (!accept_var && (!inherits(arg, "list") || !is_named(arg))) { + cli_abort( + message = message %||% + c(paste0("Argument {.arg {arg_name}} must be a named list of expressions + where each element is ", valid_vals, ", but is {.obj_type_friendly {arg}}."), + i = "To create a list of expressions use {.fun exprs}." + ), + class = c(class, "assert-admiraldev"), + call = call + ) + } + + if (accept_var && (!contains_vars(arg))) { + cli_abort( + message = message %||% + c(paste0("Argument {.arg {arg_name}} must be a list of expressions where + each element is ", valid_vals, ", but is {.obj_type_friendly {arg}}."), + i = "To create a list of expressions use {.fun exprs}." + ), + class = c(class, "assert-admiraldev"), + call = call + ) + } + + if (!is.null(required_elements)) { + missing_elements <- setdiff(required_elements, names(arg)) + if (length(missing_elements) >= 1L) { + cli_abort( + message = message %||% + "The following required elements are missing from + argument {.arg {arg_name}}: {.val {missing_elements}}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + } + + if (accept_expr) { + invalids <- arg[!map_lgl( + arg, + ~ is.symbol(.x) || + is.character(.x) || + is.numeric(.x) || + is.language(.x) || + is.atomic(.x) && is.na(.x) + )] + } else { + invalids <- arg[!map_lgl( + arg, + ~ is.symbol(.x) || + is.character(.x) || + is.numeric(.x) || + is.atomic(.x) && is.na(.x) + )] + } + if (length(invalids) > 0) { + cli_abort( + message = message %||% + c( + paste0( + "The elements of the list in argument {.arg {arg_name}} must be ", + valid_vals, "." + ), + i = glue_collapse( + glue("{{.val {names(invalids)}}} = {{.code {invalids}}} is of type + {{.cls {map_chr(invalids, typeof)}}}"), + sep = ", ", + last = ", and " + ) + ), + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Is an Argument a List of Expressions? +#' +#' Checks if the argument is a list of expressions. +#' +#' @param arg A function argument to be checked +#' @param required_elements A `character` vector of names that must be present in `arg` +#' @param named If set to `TRUE`, an error is issued if not all elements of the +#' list are named. +#' @param optional Is the checked argument optional? If set to `FALSE` and `arg` +#' is `NULL` then an error is thrown. +#' @inheritParams assert_logical_scalar +#' @return +#' The function throws an error if `arg` is not a list of expressions. +#' Otherwise, the input it returned invisibly. +#' +#' @keywords assertion +#' @family assertion +#' @export +#' +#' @examples +#' library(rlang) +#' +#' example_fun <- function(vars) { +#' assert_expr_list(vars) +#' } +#' example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ)) +#' +#' try(example_fun(exprs("AE", DTSEQ = AESEQ, !!list("a"), !!list("a")))) +assert_expr_list <- function(arg, # nolint + required_elements = NULL, + named = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_expr_list", + call = parent.frame()) { + assert_logical_scalar(named) + assert_logical_scalar(optional) + assert_character_vector(required_elements, optional = TRUE) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (!inherits(arg, "list")) { + cli_abort( + message = message %||% + c("Argument {.arg {arg_name}} must be a list of expressions + but is {.obj_type_friendly {arg}}.", + i = "To create a list of expressions use {.fun exprs}." + ), + class = c(class, "assert-admiraldev"), + call = call + ) + } + + if (named) { + assert_named(arg) + } + + if (!is.null(required_elements)) { + missing_elements <- setdiff(required_elements, names(arg)) + if (length(missing_elements) >= 1L) { + cli_abort( + message = message %||% + "The following required elements are missing from + argument {.arg {arg_name}}: {.val {missing_elements}}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + } + + invalids <- !map_lgl( + arg, + ~ is_call(.x) || is_expression(.x) + ) + invalidargs <- arg[invalids] + index <- if_else(names(invalidargs) == "", as.character(which(invalids)), + paste0('"', names(invalidargs), '"') + ) + + if (any(invalids)) { + cli_abort( + message = message %||% + c("All elements of {.arg {arg_name}} must be an expression.", + i = glue_collapse( + glue("{{.arg {arg_name}[[{index}]]}} = + {{.code {invalidargs}}} is of type + {{.cls {map_chr(invalidargs, typeof)}}}"), + sep = ", ", + last = ", and " + ) + ), + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Is an Element of a List of Lists/Classes Fulfilling a Condition? +#' +#' Checks if the elements of a list of named lists/classes fulfill a certain +#' condition. If not, an error is issued and all elements of the list not +#' fulfilling the condition are listed. +#' +#' @param list A list to be checked +#' A list of named lists or classes is expected. +#' @param element The name of an element of the lists/classes +#' A character scalar is expected. +#' @param condition Condition to be fulfilled +#' The condition is evaluated for each element of the list. The element of the +#' lists/classes can be referred to by its name, e.g., `censor == 0` to check +#' the `censor` field of a class. +#' @param message_text Text to be displayed in the error message above +#' the listing of values that do not meet the condition. +#' The text should describe the condition to be fulfilled, +#' e.g., `"Error in {arg_name}: the censor values must be zero."`. +#' If `message` argument is specified, that text will be displayed and `message_text` +#' is ignored. +#' @param ... Objects required to evaluate the condition +#' If the condition contains objects apart from the element, they have to be +#' passed to the function. See the second example below. +#' @inheritParams assert_logical_scalar +#' +#' @return +#' An error if the condition is not met. The input otherwise. +#' +#' @keywords assertion +#' @family assertion +#' @export +#' +assert_list_element <- function(list, + element, + condition, + message_text, + arg_name = rlang::caller_arg(list), + message = NULL, + class = "assert_list_element", + call = parent.frame(), ...) { + assert_s3_class(list, "list") + assert_character_scalar(element) + condition <- assert_filter_cond(enexpr(condition)) + + # store elements of the lists/classes in a vector named as the element # + rlang::env_poke(current_env(), eval(element), lapply(list, `[[`, element)) + invalids <- !eval( + condition, + envir = list(...), + enclos = current_env() + ) + if (any(invalids)) { + invalids_idx <- which(invalids) + + # construct supplementary message listing elements that are not correct type + if (is.null(message)) { + info_msg <- glue_collapse( + glue( + "{{.code {arg_name}[[{invalids_idx}]]${element} = + {lapply(list[invalids_idx], `[[`, element)}}}" + ), + sep = ", ", last = ", and " + ) + message <- c( + message_text, + i = paste(" But,", info_msg) + ) + } + + cli_abort( + message = message, + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(list) +} + + +#' Is There a One to One Mapping between Variables? +#' +#' Checks if there is a one to one mapping between two lists of variables. +#' +#' @param dataset Dataset to be checked +#' +#' The variables specified for `vars1` and `vars2` are expected. +#' +#' @param vars1 First list of variables +#' +#' @param vars2 Second list of variables +#' +#' @param message string passed to `cli::cli_abort(message)`. When `NULL`, default messaging +#' is used (see examples for default messages). `"dataset_name"` can be used in messaging. +#' +#' @param dataset_name string indicating the label/symbol of the object being checked. +#' Default is `rlang::caller_arg(dataset)`. +#' @inheritParams assert_logical_scalar +#' +#' @return +#' An error if the condition is not meet. The input otherwise. +#' +#' @keywords assertion +#' @family assertion +#' @export +#' +#' @examples +#' library(dplyr) +#' library(rlang) +#' +#' df <- tribble( +#' ~SPECIES, ~SPECIESN, +#' "DOG", 1L, +#' "CAT", 2L, +#' "DOG", 1L +#' ) +#' +#' assert_one_to_one(df, vars1 = exprs(SPECIES), vars2 = exprs(SPECIESN)) +#' +#' df_many <- tribble( +#' ~SPECIES, ~SPECIESN, +#' "DOG", 1L, +#' "CAT", 2L, +#' "DOG", 3L +#' ) +#' +#' try( +#' assert_one_to_one(df_many, vars1 = exprs(SPECIES), vars2 = exprs(SPECIESN)) +#' ) +#' +#' try( +#' assert_one_to_one(df_many, vars1 = exprs(SPECIESN), vars2 = exprs(SPECIES)) +#' ) +assert_one_to_one <- function(dataset, + vars1, + vars2, + dataset_name = rlang::caller_arg(dataset), + message = NULL, + class = "assert_one_to_one", + call = parent.frame()) { + assert_vars(vars1) + assert_vars(vars2) + assert_data_frame(dataset, required_vars = expr_c(vars1, vars2)) + + uniques <- unique(select(dataset, !!!vars1, !!!vars2)) + one_to_many <- uniques %>% + group_by(!!!vars1) %>% + filter(n() > 1) %>% + arrange(!!!vars1) + + if (nrow(one_to_many) > 0) { + admiraldev_environment$one_to_many <- one_to_many + + message <- message %||% + c("For some values of {.val {vars2chr(vars1)}} there is more than one + value of {.val {vars2chr(vars2)}}", + "i" = "Call {.run admiral::get_one_to_many_dataset()} to get all one-to-many values." + ) + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + many_to_one <- uniques %>% + group_by(!!!vars2) %>% + filter(n() > 1) %>% + arrange(!!!vars2) + + if (nrow(many_to_one) > 0) { + admiraldev_environment$many_to_one <- many_to_one + + message <- message %||% + c("There is more than one value of {.val {vars2chr(vars1)}} for some + values of {.val {vars2chr(vars2)}}", + "i" = "Call {.run admiral::get_many_to_one_dataset()} to get all many-to-one values." + ) + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(dataset) +} + +#' Is a Variable in a Dataset a Date or Datetime Variable? +#' +#' Checks if a variable in a dataset is a date or datetime variable +#' +#' @param dataset The dataset where the variable is expected +#' +#' @param var The variable to check +#' +#' @param dataset_name The name of the dataset. If the argument is specified, the +#' specified name is displayed in the error message. +#' +#' @param var_name The name of the variable. If the argument is specified, the +#' specified name is displayed in the error message. +#' @param message (`string`)\cr +#' string passed to `cli::cli_abort(message)`. When `NULL`, default messaging +#' is used (see examples for default messages). `"var_name"` and `"dataset_name"`, +#' can be used in messaging. +#' @inheritParams assert_logical_scalar +#' +#' @return +#' The function throws an error if `var` is not a date or datetime variable in +#' `dataset` and returns the input invisibly otherwise. +#' +#' @export +#' +#' +#' @keywords assertion +#' +#' @examples +#' library(lubridate) +#' library(dplyr) +#' library(rlang) +#' +#' example_fun <- function(dataset, var) { +#' var <- assert_symbol(enexpr(var)) +#' assert_date_var(dataset = dataset, var = !!var) +#' } +#' +#' my_data <- tribble( +#' ~USUBJID, ~ADT, +#' "1", ymd("2020-12-06"), +#' "2", ymd("") +#' ) +#' +#' example_fun( +#' dataset = my_data, +#' var = ADT +#' ) +#' +#' try(example_fun( +#' dataset = my_data, +#' var = USUBJID +#' )) +#' +#' example_fun2 <- function(dataset, var) { +#' var <- assert_symbol(enexpr(var)) +#' assert_date_var( +#' dataset = dataset, +#' var = !!var, +#' dataset_name = "your_data", +#' var_name = "your_var" +#' ) +#' } +#' +#' try(example_fun2( +#' dataset = my_data, +#' var = USUBJID +#' )) +assert_date_var <- function(dataset, + var, + dataset_name = rlang::caller_arg(dataset), + var_name = rlang::caller_arg(var), + message = NULL, + class = "assert_date_var", + call = parent.frame()) { + var <- assert_symbol(enexpr(var)) + assert_data_frame(dataset, required_vars = exprs(!!var)) + assert_character_scalar(dataset_name) + assert_character_scalar(var_name) + column <- pull(dataset, !!var) + + if (!is.instant(column)) { + message <- message %||% + "Column {.val {var_name}} in dataset {.code {dataset_name}} must be + a date or datetime, but is {.obj_type_friendly {column}}." + + cli_abort( + message = message, + call = call, + class = c(class, "assert-admiraldev") + ) + } + + invisible(dataset) +} + +#' Is an object a date or datetime vector? +#' +#' Check if an object/vector is a date or datetime variable without needing a dataset as input +#' +#' @param arg The function argument to be checked +#' +#' @param optional Is the checked argument optional? If set to `FALSE` +#' and `arg` is `NULL` then the function `assert_date_vector` exits early and throw and error. +#' @inheritParams assert_logical_scalar +#' +#' @return +#' The function returns an error if `arg` is missing, or not a date or datetime variable +#' but otherwise returns an invisible output. +#' +#' @export +#' +#' +#' @keywords assertion +#' +#' @family assertion +#' +#' @examples +#' example_fun <- function(arg) { +#' assert_date_vector(arg) +#' } +#' +#' example_fun( +#' as.Date("2022-01-30", tz = "UTC") +#' ) +#' try(example_fun("1993-07-14")) +assert_date_vector <- function(arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_date_vector", + call = parent.frame()) { + assert_logical_scalar(optional) + + if (optional && is.null(arg)) { + return(invisible(arg)) + } + + if (!is.instant(arg)) { + cli_abort( + message = message %||% + "Argument {.arg {arg_name}} must be a date or datetime, but is {.obj_type_friendly {arg}}.", + class = c(class, "assert-admiraldev"), + call = call + ) + } + + invisible(arg) +} + +#' Are All Argument of the Same Type? +#' +#' +#' Checks if all arguments are of the same type. +#' +#' @param ... Arguments to be checked +#' @param .message character vector passed to `cli_abort(message)` when assertion fails. +#' @param .class character vector passed to `cli_abort(class)` when assertion fails. +#' @param .call environment passed to `cli_abort(call)` when assertion fails. +#' +#' +#' @return The function throws an error if not all arguments are of the same type. +#' +#' @export +#' +#' @keywords assertion +#' @family assertion +#' +#' @examples +#' example_fun <- function(true_value, false_value, missing_value) { +#' assert_same_type(true_value, false_value, missing_value) +#' } +#' +#' example_fun( +#' true_value = "Y", +#' false_value = "N", +#' missing_value = NA_character_ +#' ) +#' +#' try(example_fun( +#' true_value = 1, +#' false_value = 0, +#' missing_value = "missing" +#' )) +assert_same_type <- function(..., + .message = c( + "Arguments {.arg {arg_names}} must be the same type.", + i = paste( + "Argument types are", + paste0("{.arg ", arg_names, "} {.cls ", types, "}", + collapse = ", " + ) + ) + ), + .class = "assert_same_type", + .call = parent.frame()) { + args <- rlang::dots_list(..., .named = TRUE) + arg_names <- names(args) + types <- lapply(args, typeof) + + # if more than one type resent, return error + if (length(unique(types)) > 1) { + cli_abort( + message = .message, + class = c(.class, "assert-admiraldev"), + call = .call + ) + } + + invisible() +} diff --git a/R/call_derivation.R b/R/call_derivation.R index 52d1f76b8a..8c5af55088 100644 --- a/R/call_derivation.R +++ b/R/call_derivation.R @@ -72,7 +72,7 @@ #' derive_vars_merged( #' dataset_add = adsl, #' new_vars = exprs(TRTSDT, TRTEDT), -#' by_vars = exprs(USUBJID) +#' by_vars = get_admiral_option("subject_keys") #' ) #' #' ## While `derive_vars_dt()` can only add one variable at a time, using `call_derivation()` @@ -201,7 +201,7 @@ call_derivation <- function(dataset = NULL, derivation, variable_params, ...) { #' derive_vars_merged( #' dataset_add = adsl, #' new_vars = exprs(TRTSDT, TRTEDT), -#' by_vars = exprs(USUBJID) +#' by_vars = get_admiral_option("subject_keys") #' ) #' #' ## In order to derive both `ASTDT` and `AENDT` in `ADAE`, one can use `derive_vars_dt()` diff --git a/R/compat_friendly_type.R b/R/compat_friendly_type.R new file mode 100644 index 0000000000..7b19a3c58e --- /dev/null +++ b/R/compat_friendly_type.R @@ -0,0 +1,187 @@ +#' Return English-friendly messaging for object-types +#' +#' @param x Any R object. +#' @param value Whether to describe the value of `x`. +#' @param length Whether to mention the length of vectors and lists. +#' +#' @details This helper function aids us in forming user-friendly messages that gets +#' called through `what_is_it()`, which is often used in the assertion functions +#' to identify what object-type the user passed through an argument instead of +#' an expected-type. +#' +#' @export +#' +#' @return A string describing the type. Starts with an indefinite +#' article, e.g. "an integer vector". +#' +#' @keywords dev_utility +#' @family dev_utility +friendly_type_of <- function(x, value = TRUE, length = FALSE) { # nolint + lifecycle::deprecate_soft( + when = "1.1.0", + what = "admiraldev::friendly_type_of()", + details = "This function was primarily used in error messaging, and can be replaced + with 'cli' functionality: `cli::cli_abort('{.obj_type_friendly {letters}}')`." + ) + + if (rlang::is_missing(x)) { + return("absent") + } + + if (is.object(x)) { + if (inherits(x, "quosure")) { + type <- "quosure" + } else { + type <- paste(class(x), collapse = "/") + } + return(sprintf("a <%s> object", type)) + } + + if (!rlang::is_vector(x)) { + return(.rlang_as_friendly_type(typeof(x))) + } + + n_dim <- length(dim(x)) + + if (value && !n_dim) { + if (rlang::is_na(x)) { + return(switch(typeof(x), + logical = "`NA`", + integer = "an integer `NA`", + double = "a numeric `NA`", + complex = "a complex `NA`", + character = "a character `NA`", + .rlang_stop_unexpected_typeof(x) + )) + } + if (length(x) == 1 && !rlang::is_list(x)) { + return(switch(typeof(x), + logical = if (x) "`TRUE`" else "`FALSE`", + integer = "an integer", + double = "a number", + complex = "a complex number", + character = if (nzchar(x)) "a string" else "`\"\"`", + raw = "a raw value", + .rlang_stop_unexpected_typeof(x) + )) + } + if (length(x) == 0) { + return(switch(typeof(x), + logical = "an empty logical vector", + integer = "an empty integer vector", + double = "an empty numeric vector", + complex = "an empty complex vector", + character = "an empty character vector", + raw = "an empty raw vector", + list = "an empty list", + .rlang_stop_unexpected_typeof(x) + )) + } + } + + type <- .rlang_as_friendly_vector_type(typeof(x), n_dim) + + if (length && !n_dim) { + type <- paste0(type, sprintf(" of length %s", length(x))) + } + + type +} + +# Used in building `friendly_type_of()` above +.rlang_as_friendly_vector_type <- function(type, n_dim) { + if (type == "list") { + if (n_dim < 2) { + return("a list") + } else if (n_dim == 2) { + return("a list matrix") + } else { + return("a list array") + } + } + + type <- switch(type, + logical = "a logical %s", + integer = "an integer %s", + numeric = , # nolint + double = "a double %s", + complex = "a complex %s", + character = "a character %s", + raw = "a raw %s", + type = paste0("a ", type, " %s") + ) + + if (n_dim < 2) { + kind <- "vector" + } else if (n_dim == 2) { + kind <- "matrix" + } else { + kind <- "array" + } + sprintf(type, kind) +} + +# Used in building `friendly_type_of()` above +.rlang_as_friendly_type <- function(type) { + switch(type, + list = "a list", + NULL = "NULL", + environment = "an environment", + externalptr = "a pointer", + weakref = "a weak reference", + S4 = "an S4 object", + name = , # nolint + symbol = "a symbol", + language = "a call", + pairlist = "a pairlist node", + expression = "an expression vector", + char = "an internal string", + promise = "an internal promise", + ... = "an internal dots object", + any = "an internal `any` object", + bytecode = "an internal bytecode object", + primitive = , # nolint + builtin = , # nolint + special = "a primitive function", + closure = "a function", + type + ) +} + +# Used in building `friendly_type_of()` above +.rlang_stop_unexpected_typeof <- function(x, call = rlang::caller_env()) { + rlang::abort( + sprintf("Unexpected type <%s>.", typeof(x)), + call = call + ) +} + +#' @param x The object type which does not conform to `what`. Its +#' `friendly_type_of()` is taken and mentioned in the error message. +#' @param what The friendly expected type. +#' @param ... Arguments passed to [abort()]. +#' @inheritParams args_error_context +#' @noRd +stop_input_type <- function(x, + what, + ..., + arg = rlang::caller_arg(x), + call = rlang::caller_env()) { + # From compat-cli.R + format_arg <- rlang::env_get( + nm = "format_arg", + last = topenv(), + default = NULL + ) + if (!is.function(format_arg)) { + format_arg <- function(x) sprintf("`%s`", x) + } + + message <- sprintf( + "%s must be %s, not %s.", + format_arg(arg), + what, + friendly_type_of(x) + ) + rlang::abort(message, ..., call = call) +} diff --git a/R/create_single_dose_dataset.R b/R/create_single_dose_dataset.R index 7d255ad9d1..49fb0b0340 100644 --- a/R/create_single_dose_dataset.R +++ b/R/create_single_dose_dataset.R @@ -397,7 +397,7 @@ dose_freq_lookup <- tribble( #' # Select valid dose records, non-missing `EXSTDTC` and `EXDOSE`. #' ex_mod <- ex %>% #' filter(!is.na(EXSTDTC) & !is.na(EXDOSE)) %>% -#' derive_vars_merged(adsl_death, by_vars = exprs(STUDYID, USUBJID)) %>% +#' derive_vars_merged(adsl_death, by_vars = get_admiral_option("subject_keys")) %>% #' # Example, set up missing `EXDOSFRQ` as QD daily dosing regime. #' # Replace with study dosing regime per trial treatment. #' mutate(EXDOSFRQ = if_else(is.na(EXDOSFRQ), "QD", EXDOSFRQ)) %>% @@ -425,7 +425,7 @@ dose_freq_lookup <- tribble( #' # Select only unique values. #' # Removes duplicated records before final step. #' distinct( -#' STUDYID, USUBJID, EXTRT, EXDOSE, EXDOSFRQ, DCUTDT, DTHDT, EXSTDT, +#' !!!get_admiral_option("subject_keys"), EXTRT, EXDOSE, EXDOSFRQ, DCUTDT, DTHDT, EXSTDT, #' EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC #' ) #' @@ -435,10 +435,10 @@ dose_freq_lookup <- tribble( #' start_datetime = EXSTDTM, #' end_date = EXENDT, #' end_datetime = EXENDTM, -#' keep_source_vars = exprs( -#' STUDYID, USUBJID, EXTRT, EXDOSE, EXDOSFRQ, +#' keep_source_vars = c( +#' get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, #' DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC -#' ) +#' )) #' ) create_single_dose_dataset <- function(dataset, dose_freq = EXDOSFRQ, @@ -450,7 +450,8 @@ create_single_dose_dataset <- function(dataset, lookup_column = CDISC_VALUE, nominal_time = NULL, keep_source_vars = expr_c( - exprs(USUBJID), dose_freq, start_date, start_datetime, + get_admiral_option("subject_keys"), + dose_freq, start_date, start_datetime, end_date, end_datetime )) { dose_freq <- assert_symbol(enexpr(dose_freq)) diff --git a/R/dataset_vignette.R b/R/dataset_vignette.R new file mode 100644 index 0000000000..156f28402a --- /dev/null +++ b/R/dataset_vignette.R @@ -0,0 +1,85 @@ +#' Output a Dataset in a Vignette in the admiral Format +#' +#' Output a dataset in a vignette with the pre-specified admiral format. +#' +#' @param dataset Dataset to output in the vignette +#' +#' @param display_vars Variables selected to demonstrate the outcome of the derivation +#' +#' Permitted Values: list of variables +#' +#' Default is NULL +#' +#' If `display_vars` is not NULL, only the selected variables are visible in the vignette while the +#' other variables are hidden. They can be made visible by clicking the`Choose the columns to +#' display` button. +#' +#' @param filter Filter condition +#' +#' The specified condition is applied to the dataset before it is displayed. +#' +#' Permitted Values: a condition +#' +#' @return A HTML table +#' +#' @keywords dev_utility +#' +#' @export +#' +dataset_vignette <- function(dataset, display_vars = NULL, filter = NULL) { + display_vars <- assert_vars(display_vars, optional = TRUE) + assert_data_frame(dataset, required_vars = display_vars) + filter <- assert_filter_cond(enexpr(filter), optional = TRUE) + + out <- dataset %>% + filter_if(filter) %>% + mutate(across(where(is.character), as.factor)) + + # Create a short markdown table when this function is called outside {pkgdown} + if (!identical(Sys.getenv("IN_PKGDOWN"), "true")) { + if (is.null(display_vars)) { + return(knitr::kable(utils::head(out, 10))) + } else { + return(knitr::kable(utils::head(select(out, !!!display_vars), 10))) + } + } + + if (!is.null(display_vars)) { + hide_columns <- which(!(colnames(out) %in% vars2chr(display_vars))) + cols_to_hide <- list(list(targets = hide_columns - 1, visible = FALSE)) + } else { + cols_to_hide <- list() + } + htmltools::tagList( + htmltools::htmlDependency( + name = "dt-scroll", + version = "1.0.0", + src = "www", + stylesheet = "style.css", + package = "admiraldev" + ), + DT::datatable( + out, + rownames = FALSE, + filter = "top", + height = "auto", + width = "auto", + extensions = c("Buttons", "ColReorder", "Scroller"), + options = list( + columnDefs = cols_to_hide, + searchHighlight = TRUE, + searching = TRUE, + pageLength = 5, + lengthMenu = c(5, 10, 15, 20, 50, 100), + dom = "ipl>", + buttons = list(list( + extend = "colvis", + text = "Choose the columns to display", + scroller = TRUE, + collectionLayout = "fixed two-column" + )), + colReorder = TRUE + ) + ) + ) +} diff --git a/R/derive_advs_params.R b/R/derive_advs_params.R index 7c95af4b86..a58bb2adca 100644 --- a/R/derive_advs_params.R +++ b/R/derive_advs_params.R @@ -322,7 +322,7 @@ compute_map <- function(diabp, sysbp, hr = NULL) { #' PARAM = "Body Surface Area (m^2)" #' ), #' get_unit_expr = extract_unit(PARAM), -#' constant_by_vars = exprs(USUBJID) +#' constant_by_vars = get_admiral_option("subject_keys") #' ) #' #' derive_param_bsa( @@ -334,7 +334,7 @@ compute_map <- function(diabp, sysbp, hr = NULL) { #' PARAM = "Body Surface Area (m^2)" #' ), #' get_unit_expr = extract_unit(PARAM), -#' constant_by_vars = exprs(USUBJID) +#' constant_by_vars = get_admiral_option("subject_keys") #' ) #' #' # Example 2: Derive BSA where height is measured only once and keep only one record @@ -630,7 +630,7 @@ compute_bsa <- function(height = height, #' PARAM = "Body Mass Index (kg/m^2)" #' ), #' get_unit_expr = extract_unit(PARAM), -#' constant_by_vars = exprs(USUBJID) +#' constant_by_vars = get_admiral_option("subject_keys") #' ) #' #' # Example 2: Derive BMI where height is measured only once and keep only one record diff --git a/R/derive_extreme_event.R b/R/derive_extreme_event.R index 774fe212fb..e0ba57b37d 100644 --- a/R/derive_extreme_event.R +++ b/R/derive_extreme_event.R @@ -141,7 +141,7 @@ #' # Add a new record for each USUBJID storing the the worst sleeping problem. #' derive_extreme_event( #' adqs, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' events = list( #' event( #' condition = PARAMCD == "NO SLEEP" & AVALC == "Y", @@ -192,7 +192,7 @@ #' #' derive_extreme_event( #' adhy, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' events = list( #' event( #' condition = is.na(CRIT1FL), @@ -263,13 +263,13 @@ #' ) %>% #' derive_vars_merged( #' dataset_add = adsl, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_vars = exprs(TRTSDT) #' ) #' #' derive_extreme_event( #' adrs, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' tmp_event_nr_var = event_nr, #' order = exprs(event_nr, ADT), #' mode = "first", diff --git a/R/derive_extreme_records.R b/R/derive_extreme_records.R index 1f6b4f1e43..cca455c978 100644 --- a/R/derive_extreme_records.R +++ b/R/derive_extreme_records.R @@ -140,7 +140,7 @@ #' derive_extreme_records( #' adlb, #' dataset_add = adlb, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVAL, AVISITN), #' mode = "first", #' filter_add = !is.na(AVAL), @@ -157,7 +157,7 @@ #' derive_extreme_records( #' adlb, #' dataset_add = adlb, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(desc(AVAL), AVISITN), #' mode = "first", #' filter_add = !is.na(AVAL), @@ -172,7 +172,7 @@ #' derive_extreme_records( #' adlb, #' dataset_add = adlb, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' mode = "last", #' set_values_to = exprs( @@ -213,7 +213,7 @@ #' adrs, #' dataset_ref = adsl, #' dataset_add = adrs, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = PARAMCD == "OVR" & AVALC == "PD", #' order = exprs(ADT), #' exist_flag = AVALC, @@ -233,7 +233,7 @@ #' derive_extreme_records( #' dataset_ref = adsl, #' dataset_add = adsl, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = !is.na(DTHDT), #' exist_flag = AVALC, #' true_value = "Y", diff --git a/R/derive_joined.R b/R/derive_joined.R index 5af5edf546..a6ef0c174b 100644 --- a/R/derive_joined.R +++ b/R/derive_joined.R @@ -256,7 +256,7 @@ #' derive_vars_joined( #' adbds, #' dataset_add = adbds, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVAL), #' new_vars = exprs(NADIR = AVAL), #' join_vars = exprs(ADY), @@ -291,7 +291,7 @@ #' derive_vars_joined( #' adae, #' dataset_add = adlb, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVAL, desc(ADY)), #' new_vars = exprs(HGB_MAX = AVAL, HGB_DY = ADY), #' join_type = "all", @@ -333,7 +333,7 @@ #' derive_vars_joined( #' adae, #' dataset_add = period_ref, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(APERSDT, APEREDT), #' join_type = "all", #' filter_join = APERSDT <= ASTDT & ASTDT <= APEREDT @@ -360,7 +360,7 @@ #' derive_vars_joined( #' adae, #' dataset_add = ex, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(EXSDT = convert_dtc_to_dt(EXSDTC)), #' join_type = "all", #' new_vars = exprs(LDRELD = compute_duration( diff --git a/R/derive_locf_records.R b/R/derive_locf_records.R index 8a3679e746..44c1116287 100644 --- a/R/derive_locf_records.R +++ b/R/derive_locf_records.R @@ -106,7 +106,7 @@ #' derive_locf_records( #' dataset = advs, #' dataset_ref = advs_expected_obsv, -#' by_vars = exprs(STUDYID, USUBJID, PARAMCD), +#' by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), #' order = exprs(AVISITN, AVISIT), #' keep_vars = exprs(PARAMN) #' ) diff --git a/R/derive_merged.R b/R/derive_merged.R index 5f1c97dab2..6bd1532d4c 100644 --- a/R/derive_merged.R +++ b/R/derive_merged.R @@ -206,9 +206,9 @@ #' derive_vars_merged( #' vs, #' dataset_add = select(dm, -DOMAIN), -#' by_vars = exprs(STUDYID, USUBJID) +#' by_vars = get_admiral_option("subject_keys") #' ) %>% -#' select(STUDYID, USUBJID, VSTESTCD, VISIT, VSSTRESN, AGE, AGEU) +#' select(!!!get_admiral_option("subject_keys"), VSTESTCD, VISIT, VSSTRESN, AGE, AGEU) #' #' #' # Merge last weight to adsl @@ -222,14 +222,14 @@ #' derive_vars_merged( #' adsl, #' dataset_add = vs, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(convert_dtc_to_dtm(VSDTC)), #' mode = "last", #' new_vars = exprs(LASTWGT = VSSTRESN, LASTWGTU = VSSTRESU), #' filter_add = VSTESTCD == "WEIGHT", #' exist_flag = vsdatafl #' ) %>% -#' select(STUDYID, USUBJID, AGE, AGEU, LASTWGT, LASTWGTU, vsdatafl) +#' select(!!!get_admiral_option("subject_keys"), AGE, AGEU, LASTWGT, LASTWGTU, vsdatafl) #' #' #' # Derive treatment start datetime (TRTSDTM) @@ -251,7 +251,7 @@ #' derive_vars_merged( #' select(dm, STUDYID, USUBJID), #' dataset_add = ex_ext, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_vars = exprs(TRTSDTM = EXSTDTM, TRTSDTF = EXSTDTF, TRTSTMF = EXSTTMF), #' order = exprs(EXSTDTM), #' mode = "first" @@ -270,7 +270,7 @@ #' select(adsl, STUDYID, USUBJID), #' dataset_add = ex_ext, #' filter_add = !is.na(EXENDTM), -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), #' order = exprs(EXENDTM), #' mode = "last" @@ -296,7 +296,7 @@ #' derive_vars_merged( #' adsl, #' dataset_add = advs, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_vars = exprs( #' LSTVSCAT = if_else(AVISIT == "BASELINE", "BASELINE", "POST-BASELINE") #' ), @@ -532,11 +532,11 @@ derive_vars_merged <- function(dataset, #' derive_var_merged_exist_flag( #' dm, #' dataset_add = ae, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_var = AERELFL, #' condition = AEREL == "PROBABLE" #' ) %>% -#' select(STUDYID, USUBJID, AGE, AGEU, AERELFL) +#' select(!!!get_admiral_option("subject_keys"), AGE, AGEU, AERELFL) #' #' vs <- tribble( #' ~STUDYID, ~DOMAIN, ~USUBJID, ~VISIT, ~VSTESTCD, ~VSSTRESN, ~VSBLFL, @@ -556,14 +556,14 @@ derive_vars_merged <- function(dataset, #' derive_var_merged_exist_flag( #' dm, #' dataset_add = vs, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", #' new_var = WTBLHIFL, #' condition = VSSTRESN > 90, #' false_value = "N", #' missing_value = "M" #' ) %>% -#' select(STUDYID, USUBJID, AGE, AGEU, WTBLHIFL) +#' select(!!!get_admiral_option("subject_keys"), AGE, AGEU, WTBLHIFL) derive_var_merged_exist_flag <- function(dataset, dataset_add, by_vars, @@ -890,7 +890,7 @@ get_not_mapped <- function() { #' derive_var_merged_summary( #' adsl, #' dataset_add = adtr, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = AVISIT == "BASELINE", #' new_vars = exprs(LESIONSBL = paste(LESIONID, collapse = ", ")) #' ) diff --git a/R/derive_param_computed.R b/R/derive_param_computed.R index d71c1b1455..280f1fef1e 100644 --- a/R/derive_param_computed.R +++ b/R/derive_param_computed.R @@ -218,7 +218,7 @@ #' AVALU = "kg/m^2" #' ), #' constant_parameters = c("HEIGHT"), -#' constant_by_vars = exprs(USUBJID) +#' constant_by_vars = get_admiral_option("subject_keys") #' ) #' #' # Example 3: Using data from an additional dataset and other variables than AVAL @@ -274,7 +274,7 @@ #' #' derive_param_computed( #' dataset_add = adlb_tbilialk, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' parameters = c("ALK2", "TBILI2"), #' set_values_to = exprs( #' AVALC = if_else(AVALC.TBILI2 == "Y" & AVALC.ALK2 == "Y", "Y", "N"), diff --git a/R/derive_param_exposure.R b/R/derive_param_exposure.R index bec404c3e8..a794c59973 100644 --- a/R/derive_param_exposure.R +++ b/R/derive_param_exposure.R @@ -122,7 +122,7 @@ #' adex %>% #' derive_param_exposure( #' dataset_add = adex, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' set_values_to = exprs( #' PARAMCD = "TDOSE", #' PARCAT1 = "OVERALL", @@ -136,7 +136,7 @@ #' adex %>% #' derive_param_exposure( #' dataset_add = adex, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = VISIT %in% c("WEEK 2", "WEEK 24"), #' set_values_to = exprs( #' PARAMCD = "AVDW224", @@ -151,7 +151,7 @@ #' adex %>% #' derive_param_exposure( #' dataset_add = adex, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' set_values_to = exprs( #' PARAMCD = "TADJ", #' PARCAT1 = "OVERALL", diff --git a/R/derive_param_extreme_record.R b/R/derive_param_extreme_record.R index 22de29cecd..6b918d5d6e 100644 --- a/R/derive_param_extreme_record.R +++ b/R/derive_param_extreme_record.R @@ -121,7 +121,7 @@ #' ) #' ), #' source_datasets = list(cm = cm, pr = pr), -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(ADT), #' mode = "first", #' set_values_to = exprs( diff --git a/R/derive_var_extreme_flag.R b/R/derive_var_extreme_flag.R index 29f4c9f28a..467b028561 100644 --- a/R/derive_var_extreme_flag.R +++ b/R/derive_var_extreme_flag.R @@ -207,7 +207,7 @@ #' ) %>% #' derive_var_extreme_flag( #' new_var = AOCCIFL, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(TEMP_AESEVN, AESTDY, AESEQ), #' mode = "first" #' ) %>% @@ -222,7 +222,7 @@ #' ) %>% #' derive_var_extreme_flag( #' new_var = AOCCIFL, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(TEMP_AESEVN, AESTDY), #' mode = "first", #' flag_all = TRUE diff --git a/R/derive_var_joined_exist_flag.R b/R/derive_var_joined_exist_flag.R index 77cc28a95b..35fcd287d6 100644 --- a/R/derive_var_joined_exist_flag.R +++ b/R/derive_var_joined_exist_flag.R @@ -259,7 +259,7 @@ #' adae, #' dataset_add = adae, #' new_var = ALCOVFL, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(ACOVFL, ADY), #' join_type = "all", #' order = exprs(ADY), @@ -283,7 +283,7 @@ #' derive_var_joined_exist_flag( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_var = CONFFL, #' join_vars = exprs(AVALC, AVISITN), #' join_type = "after", @@ -314,7 +314,7 @@ #' derive_var_joined_exist_flag( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(AVALC), #' join_type = "after", #' order = exprs(AVISITN), @@ -348,7 +348,7 @@ #' derive_var_joined_exist_flag( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(AVALC, ADY), #' join_type = "after", #' order = exprs(ADY), @@ -382,7 +382,7 @@ #' derive_var_joined_exist_flag( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_var = CONFFL, #' tmp_obs_nr_var = tmp_obs_nr, #' join_vars = exprs(CRIT1FL), diff --git a/R/derive_var_merged_ef_msrc.R b/R/derive_var_merged_ef_msrc.R index 8f1e743ac8..f1aae1fddc 100644 --- a/R/derive_var_merged_ef_msrc.R +++ b/R/derive_var_merged_ef_msrc.R @@ -107,7 +107,7 @@ #' #' derive_var_merged_ef_msrc( #' adsl, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' flag_events = list( #' flag_event( #' dataset_name = "cm", diff --git a/R/derive_var_relative_flag.R b/R/derive_var_relative_flag.R index 20fe6377e9..a95235a7af 100644 --- a/R/derive_var_relative_flag.R +++ b/R/derive_var_relative_flag.R @@ -97,7 +97,7 @@ #' #' derive_var_relative_flag( #' adae, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(ASTDY, AESEQ), #' new_var = PSTCOVFL, #' condition = ACOVFL == "Y", @@ -128,7 +128,7 @@ #' # Flag observations up to first PD for each patient #' response %>% #' derive_var_relative_flag( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' new_var = ANL02FL, #' condition = AVALC == "PD", @@ -142,7 +142,7 @@ #' restrict_derivation( #' derivation = derive_var_relative_flag, #' args = params( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' new_var = ANL02FL, #' condition = AVALC == "PD", diff --git a/R/derive_vars_computed.R b/R/derive_vars_computed.R index 264c5091df..3618415c42 100644 --- a/R/derive_vars_computed.R +++ b/R/derive_vars_computed.R @@ -153,7 +153,7 @@ #' derive_vars_computed( #' dataset = adsl, #' dataset_add = advs, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' parameters = c("WEIGHT", "HEIGHT"), #' new_vars = exprs(BMIBL = compute_bmi(height = AVAL.HEIGHT, weight = AVAL.WEIGHT)), #' filter_add = ABLFL == "Y" diff --git a/R/derive_vars_extreme_event.R b/R/derive_vars_extreme_event.R index 0bb6da293c..307fc4408b 100644 --- a/R/derive_vars_extreme_event.R +++ b/R/derive_vars_extreme_event.R @@ -124,7 +124,7 @@ #' #' derive_vars_extreme_event( #' adsl, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' events = list( #' event( #' dataset_name = "adsl", @@ -176,7 +176,7 @@ #' #' derive_vars_extreme_event( #' adsl, -#' by_vars = exprs(STUDYID, USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' events = list( #' event( #' dataset_name = "ae", diff --git a/R/dev_utilities.R b/R/dev_utilities.R new file mode 100644 index 0000000000..55d33cbc45 --- /dev/null +++ b/R/dev_utilities.R @@ -0,0 +1,208 @@ +#' Negated Value Matching +#' +#' Returns a `logical` vector indicating if there is *no* match of the +#' left operand in the right operand. +#' +#' @param x The values to be matched +#' @param table The values to be matched against +#' +#' @return A `logical` vector +#' +#' +#' @keywords dev_utility +#' @family dev_utility +#' @export +`%notin%` <- function(x, table) { # nolint + !(x %in% table) +} + +#' Helper Function to Convert Date (or Date-time) Objects to Characters of dtc Format +#' (-DTC type of variable) +#' +#' @param dtm date or date-time +#' +#' @return `character` vector +#' +#' +#' @keywords dev_utility +#' @family dev_utility +#' @export +convert_dtm_to_dtc <- function(dtm) { + stopifnot(lubridate::is.instant(dtm)) + format(dtm, "%Y-%m-%dT%H:%M:%S") +} + +#' Extract Argument Name from an Expression +#' +#' @param expr An expression created inside a function using `substitute()` +#' +#' +#' @return `character` vector +#' +#' @keywords dev_utility +#' @family dev_utility +#' +#' @export +arg_name <- function(expr) { # nolint + lifecycle::deprecate_soft( + when = "1.1.0", + what = "admiraldev::arg_name()", + details = "This function was primarily used in error messaging, and can be + replaced with `assert_*(x, arg_name = rlang::caller_arg(x))`" + ) + + if (length(expr) == 1L && is.symbol(expr)) { + deparse(expr) + } else if (length(expr) == 2L && + (expr[[1L]] == quote(enexpr) || expr[[1L]] == quote(rlang::enexpr)) && + is.symbol(expr[[2L]])) { + deparse(expr[[2L]]) + } else if (is.call(expr) && length(expr) >= 2 && is.symbol(expr[[2]])) { + deparse(expr[[2L]]) + } else if (is.call(expr) && length(expr) >= 2 && is.call(expr[[2]])) { + arg_name(expr[[2L]]) + } else { + abort(paste0("Could not extract argument name from `", deparse(expr), "`")) + } +} + +#' Extract All Symbols from a List of Expressions +#' +#' @param x An `R` object +#' @param side One of `"lhs"` (the default) or `"rhs"` for formulas +#' +#' @return A list of expressions +#' +#' +#' @keywords dev_utility +#' @family dev_utility +#' @export +#' +#' @examples +#' library(rlang) +#' extract_vars(exprs(PARAMCD, (BASE - AVAL) / BASE + 100)) +#' extract_vars(AVAL ~ ARMCD + AGEGR1) +#' extract_vars(AVAL ~ ARMCD + AGEGR1, side = "rhs") +extract_vars <- function(x, side = "lhs") { + if (is.null(x)) { + NULL + } else if (is.list(x)) { + do.call(expr_c, map(x, extract_vars, side)) + } else if (is_expression(x) && !is_formula(x)) { + syms(all.vars(x)) + } else if (is_formula(x)) { + funs <- list("lhs" = f_lhs, "rhs" = f_rhs) + assert_character_scalar(side, values = names(funs)) + extract_vars(expr(!!funs[[side]](x))) + } else if (is_call(x)) { + extract_vars(as.list(x[-1])) + } +} + +#' Or +#' +#' @param lhs Any valid R expression +#' @param rhs Any valid R expression +#' +#' @details +#' The function evaluates the expression `lhs` and if this expression results +#' in an error, it catches that error and proceeds with evaluating the expression +#' `rhs` and returns that result. +#' +#' @return Either the result of evaluating `lhs`, `rhs` or an error +#' +#' @export +#' +#' @keywords dev_utility +#' @family dev_utility +`%or%` <- function(lhs, rhs) { + tryCatch(lhs, error = function(e) rhs) +} + +#' Valid Time Units +#' +#' Contains the acceptable character vector of valid time units +#' +#' @return A `character` vector of valid time units +#' +#' @export +#' +#' @keywords dev_utility +#' @family dev_utility +valid_time_units <- function() { + c("years", "months", "days", "hours", "minutes", "seconds") +} + +#' check that argument contains valid variable(s) created with `exprs()` or +#' Source Variables from a List of Expressions +#' +#' @param arg A function argument to be checked +#' +#' @return A `TRUE` if variables were valid variable +#' +#' @export +#' +#' @keywords dev_utility +#' @family dev_utility +contains_vars <- function(arg) { + inherits(arg, "list") && all(map_lgl(arg, is_symbol) | names(arg) != "") +} + +#' Turn a List of Expressions into a Character Vector +#' +#' @param expressions A `list` of expressions created using [`exprs()`] +#' +#' @param quosures *Deprecated*, please use `expressions` instead. +#' +#' @return A character vector +#' +#' +#' @export +#' +#' @keywords dev_utility +#' @family dev_utility +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' +#' vars2chr(exprs(USUBJID, AVAL)) +vars2chr <- function(expressions, quosures) { + if (!missing(quosures)) { + deprecate_stop( + "0.10.0", + "vars2chr(quosures = )", + "vars2chr(expressions = )" + ) + } + rlang::set_names( + map_chr(expressions, as_string), + names(expressions) + ) +} + +#' Optional Filter +#' +#' Filters the input dataset if the provided expression is not `NULL` +#' +#' @param dataset Input dataset +#' @param filter A filter condition. Must be an expression. +#' +#' @return A `data.frame` containing all rows in `dataset` matching `filter` or +#' just `dataset` if `filter` is `NULL` +#' +#' +#' @export +#' +#' @keywords dev_utility +#' @family dev_utility +#' +filter_if <- function(dataset, filter) { + assert_data_frame(dataset, check_is_grouped = FALSE) + assert_filter_cond(filter, optional = TRUE) + if (is.null(filter)) { + dataset + } else { + filter(dataset, !!filter) + } +} diff --git a/R/duplicates.R b/R/duplicates.R index 7af84275c8..1d87984895 100644 --- a/R/duplicates.R +++ b/R/duplicates.R @@ -26,7 +26,7 @@ #' # Duplicate the first record #' adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) #' -#' signal_duplicate_records(adsl, exprs(USUBJID), cnd_type = "warning") +#' signal_duplicate_records(adsl, get_admiral_option("subject_keys"), cnd_type = "warning") #' #' get_duplicates_dataset() get_duplicates_dataset <- function() { @@ -54,7 +54,7 @@ get_duplicates_dataset <- function() { #' # Duplicate the first record #' adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) #' -#' extract_duplicate_records(adsl, exprs(USUBJID)) +#' extract_duplicate_records(adsl, get_admiral_option("subject_keys")) extract_duplicate_records <- function(dataset, by_vars) { assert_expr_list(by_vars) assert_data_frame(dataset, required_vars = extract_vars(by_vars), check_is_grouped = FALSE) @@ -105,7 +105,7 @@ extract_duplicate_records <- function(dataset, by_vars) { #' # Duplicate the first record #' adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) #' -#' signal_duplicate_records(adsl, exprs(USUBJID), cnd_type = "message") +#' signal_duplicate_records(adsl, get_admiral_option("subject_keys"), cnd_type = "message") signal_duplicate_records <- function(dataset, by_vars, msg = "Dataset contains duplicate records with respect to diff --git a/R/event.R b/R/event.R index 96517f08d9..990f1b601f 100644 --- a/R/event.R +++ b/R/event.R @@ -262,13 +262,13 @@ event <- function(dataset_name = NULL, #' ) %>% #' derive_vars_merged( #' dataset_add = adsl, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' new_vars = exprs(TRTSDT) #' ) #' #' derive_extreme_event( #' adrs, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(ADT), #' mode = "first", #' source_datasets = list(adsl = adsl), diff --git a/R/expect_dfs_equal.R b/R/expect_dfs_equal.R new file mode 100644 index 0000000000..e705fb8883 --- /dev/null +++ b/R/expect_dfs_equal.R @@ -0,0 +1,59 @@ +#' Expectation: Are Two Datasets Equal? +#' +#' Uses [diffdf::diffdf()] to compares 2 datasets for any differences. This function can be +#' thought of as an R-equivalent of SAS proc compare and a useful tool for unit testing as well. +#' +#' @param base Input dataset +#' @param compare Comparison dataset +#' @param keys `character` vector of variables that define a unique row in the +#' `base` and `compare` datasets +#' @param ... Additional arguments passed onto [diffdf::diffdf()] +#' +#' @return +#' An error if `base` and `compare` do not match or `NULL` invisibly if they do +#' +#' @keywords test_helper +#' @family test_helper +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' +#' tbl1 <- tribble( +#' ~USUBJID, ~AGE, ~SEX, +#' "1001", 18, "M", +#' "1002", 19, "F", +#' "1003", 20, "M", +#' "1004", 18, "F" +#' ) +#' +#' tbl2 <- tribble( +#' ~USUBJID, ~AGE, ~SEX, +#' "1001", 18, "M", +#' "1002", 18.9, "F", +#' "1003", 20, NA +#' ) +#' +#' try(expect_dfs_equal(tbl1, tbl2, keys = "USUBJID")) +#' +#' tlb3 <- tribble( +#' ~USUBJID, ~AGE, ~SEX, +#' "1004", 18, "F", +#' "1003", 20, "M", +#' "1002", 19, "F", +#' "1001", 18, "M", +#' ) +#' +#' # Note the sorting order of the keys is not required +#' expect_dfs_equal(tbl1, tlb3, keys = "USUBJID") +#' +#' @export +expect_dfs_equal <- function(base, compare, keys, ...) { + diff <- diffdf::diffdf(base, compare, keys, suppress_warnings = TRUE, ...) + if (diffdf::diffdf_has_issues(diff)) { + msg <- capture.output(print(diff)) + testthat::fail(msg) + } else { + testthat::succeed() + invisible() + } +} diff --git a/R/filter_exist.R b/R/filter_exist.R index dfa50d331c..1716351a84 100644 --- a/R/filter_exist.R +++ b/R/filter_exist.R @@ -67,7 +67,7 @@ #' filter_exist( #' dataset = adsl, #' dataset_add = adae, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = AEDECOD == "FATIGUE" & AESEV %in% c("MODERATE", "SEVERE") #' ) #' @@ -152,7 +152,7 @@ filter_exist <- function(dataset, #' filter_not_exist( #' dataset = adsl, #' dataset_add = adcm, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' filter_add = str_detect(CMTRT, "VITAMIN") #' ) #' diff --git a/R/filter_extreme.R b/R/filter_extreme.R index 63bf63838d..313207b788 100644 --- a/R/filter_extreme.R +++ b/R/filter_extreme.R @@ -81,7 +81,7 @@ #' # Select first dose for each patient #' ex %>% #' filter_extreme( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(EXSEQ), #' mode = "first" #' ) %>% @@ -91,7 +91,7 @@ #' ex %>% #' filter(EXTRT != "PLACEBO") %>% #' filter_extreme( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(EXDOSE), #' mode = "last", #' check_type = "none" diff --git a/R/filter_joined.R b/R/filter_joined.R index 6a34e107d0..74c3a6d5f5 100644 --- a/R/filter_joined.R +++ b/R/filter_joined.R @@ -268,7 +268,7 @@ #' filter_joined( #' adae, #' dataset_add = adae, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(ACOVFL, ADY), #' join_type = "all", #' order = exprs(ADY), @@ -292,7 +292,7 @@ #' filter_joined( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(AVALC, AVISITN), #' join_type = "after", #' order = exprs(AVISITN), @@ -322,7 +322,7 @@ #' filter_joined( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(AVALC), #' join_type = "after", #' order = exprs(AVISITN), @@ -355,7 +355,7 @@ #' filter_joined( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' join_vars = exprs(AVALC, ADY), #' join_type = "after", #' order = exprs(ADY), @@ -388,7 +388,7 @@ #' filter_joined( #' data, #' dataset_add = data, -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' tmp_obs_nr_var = tmp_obs_nr, #' join_vars = exprs(CRIT1FL), #' join_type = "all", diff --git a/R/filter_relative.R b/R/filter_relative.R index f614a01f73..d1c4e00431 100644 --- a/R/filter_relative.R +++ b/R/filter_relative.R @@ -98,7 +98,7 @@ #' # Select observations up to first PD for each patient #' response %>% #' filter_relative( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' condition = AVALC == "PD", #' mode = "first", @@ -109,7 +109,7 @@ #' # Select observations after last CR, PR, or SD for each patient #' response %>% #' filter_relative( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' condition = AVALC %in% c("CR", "PR", "SD"), #' mode = "last", @@ -120,7 +120,7 @@ #' # Select observations from first response to first PD #' response %>% #' filter_relative( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' condition = AVALC %in% c("CR", "PR"), #' mode = "first", @@ -129,7 +129,7 @@ #' keep_no_ref_groups = FALSE #' ) %>% #' filter_relative( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' order = exprs(AVISITN), #' condition = AVALC == "PD", #' mode = "first", diff --git a/R/get.R b/R/get.R new file mode 100644 index 0000000000..c209a564ce --- /dev/null +++ b/R/get.R @@ -0,0 +1,140 @@ +#' Get Constant Variables +#' +#' @param dataset A data frame. +#' @param by_vars By variables +#' The groups defined by the by variables are considered separately. I.e., if +#' a variable is constant within each by group, it is returned. +#' +#' @param ignore_vars Variables to ignore +#' The specified variables are not considered, i.e., they are not returned +#' even if they are constant (unless they are included in the by variables). +#' +#' *Permitted Values:* A list of variable names or selector function calls +#' like `starts_with("EX")` +#' +#' @keywords get +#' @family get +#' +#' +#' @return Variable vector. +#' @export +get_constant_vars <- function(dataset, by_vars, ignore_vars = NULL) { + assert_data_frame(dataset, optional = FALSE) + assert_vars(by_vars, optional = FALSE) + assert_vars(ignore_vars, optional = TRUE) + + non_by_vars <- setdiff(names(dataset), vars2chr(by_vars)) + + if (!is.null(ignore_vars)) { + non_by_vars <- setdiff( + non_by_vars, + vars_select(non_by_vars, !!!ignore_vars) + ) + } + + # get unique values within each group by variables + unique_count <- dataset %>% + group_by(!!!by_vars) %>% + summarise(across(!!non_by_vars, n_distinct)) %>% + ungroup() %>% + select(!!!syms(non_by_vars)) + + # determine variables which are constant within each by group + constant_vars <- unique_count %>% + map_lgl(~ all(.x == 1)) %>% + which() %>% + names() %>% + syms() + + exprs(!!!by_vars, !!!constant_vars) +} + + +#' Get Duplicates From a Vector +#' +#' @param x An atomic vector +#' +#' @return A vector of the same type as `x` contain duplicate values +#' @export +#' +#' @keywords get +#' @family get +#' +#' @export +#' +#' @examples +#' get_duplicates(1:10) +#' +#' get_duplicates(c("a", "a", "b", "c", "d", "d")) +get_duplicates <- function(x) { + assert_atomic_vector(x) + + unique(x[duplicated(x)]) +} + +#' Get Source Variables from a List of Expressions +#' +#' @param expressions A list of expressions +#' +#' @param quosures *Deprecated*, please use `expressions` instead. +#' +#' +#' @keywords get +#' @family get +#' +#' @return A list of expressions +#' @export +get_source_vars <- function(expressions, quosures) { + if (!missing(quosures)) { + deprecate_stop( + "0.10.0", + "get_source_vars(quosures = )", + "get_source_vars(expressions = )" + ) + } + assert_varval_list(expressions, optional = TRUE) + + source_vars <- expr_c(expressions)[lapply(expr_c(expressions), is.symbol) == TRUE] + + if (length(source_vars) == 0) { + NULL + } else { + source_vars + } +} +#' Retrieve a Dataset from the `admiraldev_environment` environment +#' +#' @details +#' +#' Sometimes, developers may want to provide information to users which does not fit into a +#' warning or error message. For example, if the input dataset of a function contains unexpected +#' records, these can be stored in a separate dataset, which users can access to investigate +#' the issue. +#' +#' To achieve this, R has a data structure known as an 'environment'. These environment objects +#' are created at build time, but can be populated with values after the package has been loaded +#' and update those values over the course of an R session. +#' +#' As so, the establishment of `admiraldev_environment` allows us to create dynamic data/objects +#' based on user-inputs that need modification. The purpose of `get_dataset` is to +#' retrieve the datasets contained inside `admiraldev_environment`. +#' +#' Currently we only support two datasets inside our `admiraldev_environment` object: +#' - `one_to_many` +#' - `many_to_one` +#' +#' +#' @param name The name of the dataset to retrieve +#' +#' @return A `data.frame` +#' +#' +#' @keywords get +#' @family get +#' +#' @export +get_dataset <- function(name) { + assert_character_scalar(name, values = c("one_to_many", "many_to_one")) + + admiraldev_environment[[name]] +} diff --git a/R/get_flagged_records.R b/R/get_flagged_records.R index 5801440ff3..1b330657ba 100644 --- a/R/get_flagged_records.R +++ b/R/get_flagged_records.R @@ -56,7 +56,7 @@ #' new_var = AERELFL, #' condition = AEREL == "PROBABLE" #' ) %>% -#' select(STUDYID, USUBJID, AERELFL) +#' select(!!!get_admiral_option("subject_keys"), AERELFL) #' #' vs <- tribble( #' ~STUDYID, ~DOMAIN, ~USUBJID, ~VISIT, ~VSTESTCD, ~VSSTRESN, ~VSBLFL, @@ -79,7 +79,7 @@ #' condition = VSSTRESN > 90, #' filter = VSTESTCD == "WEIGHT" & VSBLFL == "Y" #' ) %>% -#' select(STUDYID, USUBJID, WTBLHIFL) +#' select(!!!get_admiral_option("subject_keys"), WTBLHIFL) #' get_flagged_records <- function(dataset, new_var, diff --git a/R/global.R b/R/global.R new file mode 100644 index 0000000000..387062b7e2 --- /dev/null +++ b/R/global.R @@ -0,0 +1,10 @@ +# R CMD check will generate NOTE(s) with message 'no visible binding for +# global variable xyz'. Adding this 'xyz' variable to this file will remove +# this note. See `?globalVariables` for more information. +globalVariables(c( + "_unit", + "auto", + "name", + "PARAMCD", + "where" # this entry should be moved to @importFrom tidyselect once we use tidyselect 1.2.0 +)) diff --git a/R/hello.R b/R/hello.R new file mode 100644 index 0000000000..d8eb18e147 --- /dev/null +++ b/R/hello.R @@ -0,0 +1,9 @@ +#' Print Hello World +#' +#' @export +#' @return +#' +#' @examples +hello <- function() { + print("Hello World!") +} diff --git a/R/is.R b/R/is.R new file mode 100644 index 0000000000..73cf60e998 --- /dev/null +++ b/R/is.R @@ -0,0 +1,60 @@ +#' Checks if the argument equals the auto keyword +#' +#' @param arg argument to check +#' +#' @return `TRUE` if the argument equals the auto keyword, i.e., it is an +#' expression of a symbol named auto. +#' +#' +#' @keywords is +#' @family is +#' @export +is_auto <- function(arg) { + is_symbol(arg) && arg == expr(auto) +} + +#' Is order vars? +#' +#' Check if inputs are created using `exprs()` or calls involving `desc()` +#' @param arg An R object +#' +#' @return `FALSE` if the argument is not a list of order vars +#' +#' @export +#' +#' @keywords is +#' @family is +is_order_vars <- function(arg) { + is_desc_call <- function(expr) { + is_call(expr) && + length(expr) == 2L && + deparse(expr[[1L]]) == "desc" && + is_symbol(expr[[2L]]) + } + + inherits(arg, "list") && + all(map_lgl(arg, ~ is.symbol(.x) || is_desc_call(.x))) +} + +#' Is this string a valid DTC +#' +#' @param arg A `character` vector +#' +#' @return `TRUE` if the argument is a valid `--DTC` string, `FALSE` otherwise +#' @export +#' @keywords is +#' @family is +#' +is_valid_dtc <- function(arg) { + twod <- "(\\d{2}|-)" + pattern <- paste0( + "^(\\d{4}|-)?", + "(-", twod, ")?", + "(-", twod, ")?", + "(T", twod, ")?", + "(:", twod, ")?", + "(:", twod, "(.(\\d{1,5}))?)?$" + ) + + grepl(pattern, arg) | arg == "" | is.na(arg) +} diff --git a/R/joins.R b/R/joins.R new file mode 100644 index 0000000000..43a8632a20 --- /dev/null +++ b/R/joins.R @@ -0,0 +1,42 @@ +#' Join Functions +#' +#' The `*_join()` functions from `{dplyr}` without a warning on different attributes +#' in datasets. +#' +#' @param x `data.frame` +#' @param y `data.frame` +#' @param by `character` vector +#' @param copy `logical` +#' @param suffix `character` vector +#' @param ... Additional arguments +#' +#' @return `data.frame` +#' +#' @keywords joins +#' +#' @rdname joins +#' @export +anti_join <- function(x, y, by = NULL, copy = FALSE, ...) { + suppress_warning( + dplyr::anti_join(x, y, by = by, copy = copy, ...), + "^Column `.+` has different attributes on LHS and RHS of join$" + ) +} + +#' @rdname joins +#' @export +inner_join <- function(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...) { + suppress_warning( + dplyr::inner_join(x, y, by = by, copy = copy, suffix = suffix, ...), + "^Column `.+` has different attributes on LHS and RHS of join$" + ) +} + +#' @rdname joins +#' @export +left_join <- function(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...) { + suppress_warning( + dplyr::left_join(x, y, by = by, copy = copy, suffix = suffix, ...), + "^Column `.+` has different attributes on LHS and RHS of join$" + ) +} diff --git a/R/period_dataset.R b/R/period_dataset.R index 01fa37ce5d..0c9cf1ab3c 100644 --- a/R/period_dataset.R +++ b/R/period_dataset.R @@ -305,7 +305,7 @@ create_period_dataset <- function(dataset, #' dataset_ref = period_ref, #' new_vars = exprs(APxxSDT = APERSDT, APxxEDT = APEREDT) #' ) %>% -#' select(STUDYID, USUBJID, AP01SDT, AP01EDT, AP02SDT, AP02EDT) +#' select(!!!get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) #' #' # Add phase variables to ADSL #' phase_ref <- tribble( @@ -325,7 +325,7 @@ create_period_dataset <- function(dataset, #' dataset_ref = phase_ref, #' new_vars = exprs(PHwSDT = PHSDT, PHwEDT = PHEDT, APHASEw = APHASE) #' ) %>% -#' select(STUDYID, USUBJID, PH1SDT, PH1EDT, PH2SDT, PH2EDT, APHASE1, APHASE2) +#' select(!!!get_admiral_option("subject_keys"), PH1SDT, PH1EDT, PH2SDT, PH2EDT, APHASE1, APHASE2) #' #' # Add subperiod variables to ADSL #' subperiod_ref <- tribble( @@ -348,7 +348,8 @@ create_period_dataset <- function(dataset, #' dataset_ref = subperiod_ref, #' new_vars = exprs(PxxSwSDT = ASPRSDT, PxxSwEDT = ASPREDT) #' ) %>% -#' select(STUDYID, USUBJID, P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, P02S1SDT, P02S1EDT) +#' select(!!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, +#' P02S1SDT, P02S1EDT) derive_vars_period <- function(dataset, dataset_ref, new_vars, diff --git a/R/process_set_values_to.R b/R/process_set_values_to.R new file mode 100644 index 0000000000..9399883d4d --- /dev/null +++ b/R/process_set_values_to.R @@ -0,0 +1,113 @@ +#' Process `set_values_to` Argument +#' +#' The function creates the variables specified by the `set_values_to` argument, +#' catches errors, provides user friendly error messages, and optionally checks +#' the type of the created variables. +#' +#' @param dataset Input dataset +#' +#' @param set_values_to Variables to set +#' +#' A named list returned by `exprs()` defining the variables to be set, e.g. +#' `exprs(PARAMCD = "OS", PARAM = "Overall Survival")` is expected. The values +#' must be symbols, character strings, numeric values, expressions, or `NA`. +#' +#' @param expected_types +#' +#' If the argument is specified, the specified variables are checked whether +#' the specified type matches the type of the variables created by +#' `set_values_to`. +#' +#' *Permitted Values*: A character vector with values `"numeric"` or +#' `"character"` +#' +#' +#' @return The input dataset with the variables specified by `set_values_to` +#' added/updated +#' +#' @family utils_help +#' @keywords utils_help +#' +#' @export +#' +#' @examples +#' library(dplyr) +#' data <- tribble( +#' ~AVAL, +#' 20 +#' ) +#' +#' try( +#' process_set_values_to( +#' data, +#' set_values_to = exprs( +#' PARAMCD = BMI +#' ) +#' ) +#' ) +#' +#' try( +#' process_set_values_to( +#' data, +#' set_values_to = exprs( +#' PARAMCD = 42 +#' ), +#' expected_types = c(PARAMCD = "character") +#' ) +#' ) +process_set_values_to <- function(dataset, + set_values_to = NULL, + expected_types = NULL) { + assert_data_frame(dataset) + assert_varval_list(set_values_to, optional = TRUE) + assert_character_vector( + expected_types, + values = c("numeric", "character"), + named = TRUE, + optional = TRUE + ) + + tryCatch( + result <- mutate(dataset, !!!set_values_to), + error = function(cnd) { + cli_abort( + message = + c("Assigning variables failed!", + "*" = "{.code set_values_to = exprs({paste(names(set_values_to), '=', + set_values_to, collapse = ', ')})}", + "See error message below:", + conditionMessage(cnd) + ), + call = parent.frame(n = 4) + ) + } + ) + if (!is.null(expected_types)) { + types <- map_chr(result, typeof) %>% + map_chr(function(x) if_else(x %in% c("integer", "double"), "numeric", x)) + vars_to_check <- intersect(names(set_values_to), names(expected_types)) + if (length(vars_to_check) > 0) { + actual <- types[vars_to_check] + expected <- expected_types[vars_to_check] + unexpected <- actual != expected + if (any(unexpected)) { + cli_abort( + message = + "The following variables have an unexpected type:" |> + c(stats::setNames( + paste0( + names(actual[unexpected]), + ": expected is {.cls ", + expected[unexpected], + "}, but it is {.cls ", + actual[unexpected], + "}." + ), + nm = rlang::rep_along(actual[unexpected], "*") + )) + ) + } + } + } + result +} diff --git a/R/quo.R b/R/quo.R new file mode 100644 index 0000000000..10fccb9fb0 --- /dev/null +++ b/R/quo.R @@ -0,0 +1,158 @@ +#' Concatenate One or More Expressions +#' +#' @param ... One or more expressions or list of expressions +#' +#' @return A list of expressions +#' +#' @keywords quo +#' @family quo +#' +#' @export +expr_c <- function(...) { + # Transform single expression into list of expression + inputs <- map( + list(...), + function(x) { + if (typeof(x) != "list") { + list(x) + } else { + x + } + } + ) + inputs <- flatten(inputs) + stopifnot(all(map_lgl(inputs, is_expression))) + is_null <- map_lgl(inputs, is.null) + inputs[!is_null] +} + +#' Replace Expression Value with Name +#' +#' @param expressions A list of expressions +#' +#' @param quosures *Deprecated*, please use `expressions` instead. +#' +#' +#' @keywords quo +#' @family quo +#' +#' +#' @return A list of expressions +#' @export +#' +#' @examples +#' library(rlang) +#' replace_values_by_names(exprs(AVAL, ADT = convert_dtc_to_dt(EXSTDTC))) +replace_values_by_names <- function(expressions, quosures) { + if (!missing(quosures)) { + deprecate_stop( + "0.3.0", + "replace_values_by_names(quosures = )", + "replace_values_by_names(expressions = )" + ) + } + if (is.null(names(expressions))) { + return(expressions) + } + map2(expressions, names(expressions), function(e, n) { + if (n == "") { + return(e) + } + as.symbol(n) + }) +} + +#' Replace Symbols in an Expression +#' +#' Replace symbols in an expression +#' +#' @param expression Expression +#' +#' @param target Target symbol +#' +#' @param replace Replacing symbol +#' +#' @author Stefan Bundfuss +#' +#' @return The expression where every occurrence of the symbol `target` is +#' replaced by `replace` +#' +#' @keywords quo +#' @family quo +#' +#' @export +#' +#' @examples +#' +#' library(rlang) +#' +#' replace_symbol_in_expr(expr(AVAL), target = AVAL, replace = AVAL.join) +#' replace_symbol_in_expr(expr(AVALC), target = AVAL, replace = AVAL.join) +#' replace_symbol_in_expr(expr(desc(AVAL)), target = AVAL, replace = AVAL.join) +replace_symbol_in_expr <- function(expression, + target, + replace) { + assert_expr(expression) + target <- assert_symbol(enexpr(target)) + replace <- assert_symbol(enexpr(replace)) + if (is.symbol(expression)) { + if (expression == target) { + expression <- replace + } + } else { + for (i in seq_along(expression)) { + if (expression[[i]] == target) { + expression[[i]] <- replace + } + } + } + expression +} + +#' Add a Suffix to Variables in a List of Expressions +#' +#' Add a suffix to variables in a list of expressions +#' +#' @param order List of expressions +#' +#' *Permitted Values*: list of variables or `desc()` function calls +#' created by `exprs()`, e.g., `exprs(ADT, desc(AVAL))` +#' +#' @param vars Variables to change +#' +#' *Permitted Values*: list of variables created by `exprs()` +#' +#' @param suffix Suffix +#' +#' *Permitted Values*: A character scalar +#' +#' +#' @return The list of expression where for each element the suffix (`suffix`) is +#' added to every symbol specified for `vars` +#' +#' @keywords quo +#' @family quo +#' +#' @export +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' +#' add_suffix_to_vars(exprs(ADT, desc(AVAL), AVALC), vars = exprs(AVAL), suffix = ".join") +add_suffix_to_vars <- function(order, + vars, + suffix) { + assert_expr_list(order) + assert_vars(vars) + assert_character_scalar(suffix) + for (i in seq_along(vars)) { + order <- lapply( + order, + replace_symbol_in_expr, + target = !!vars[[i]], + replace = !!sym(paste0(as_label(vars[[i]]), suffix)) + ) + } + order +} diff --git a/R/quote.R b/R/quote.R new file mode 100644 index 0000000000..0286a169c2 --- /dev/null +++ b/R/quote.R @@ -0,0 +1,95 @@ +#' Enumerate Multiple Elements +#' +#' Enumerate multiple elements of a vector or list. +#' +#' @param x A vector or list +#' @param quote_fun Quoting function, defaults to `backquote`. If set to `NULL`, +#' the elements are not quoted. +#' @param conjunction Character to be used in the message, defaults to `"and"`. +#' +#' +#' @return A `character` vector +#' +#' @keywords quote +#' @family quote +#' +#' @examples +#' enumerate(c("one", "two", "three")) +#' +#' enumerate(c(1, 2, 3), quote_fun = NULL) +#' +#' @export +enumerate <- function(x, quote_fun = backquote, conjunction = "and") { + lifecycle::deprecate_soft( + when = "1.1.0", + what = "admiraldev::enumerate()", + details = "This function was primarily used in error messaging, and can be + replaced with 'cli' functionality: `cli::cli_abort('{.val {letters[1:3]}}')`" + ) + + if (is.null(quote_fun)) { + quote_fun <- function(x) x + } + if (length(x) == 1L) { + quote_fun(x) + } else { + paste( + paste0(quote_fun(x[-length(x)]), collapse = ", "), + conjunction, + quote_fun(x[length(x)]) + ) + } +} + +#' Wrap a String in Backquotes +#' +#' @param x A `character` vector +#' +#' +#' @return A `character` vector +#' +#' @keywords quote +#' @family quote +#' +#' @export +backquote <- function(x) { + paste0("`", x, "`") +} + +#' Wrap a String in Single Quotes +#' +#' @param x A `character` vector +#' +#' +#' @return A `character` vector +#' +#' @keywords quote +#' @family quote +#' +#' @export +squote <- function(x) { + paste0("'", x, "'") +} + +#' Wrap a String in Double Quotes +#' +#' Wrap a string in double quotes, e.g., for displaying character values in +#' messages. +#' +#' @param x A character vector +#' +#' @return If the input is `NULL`, the text `"NULL"` is returned. Otherwise, the +#' input in double quotes is returned. +#' +#' +#' @keywords quote +#' @family quote +#' +#' @export +dquote <- function(x) { + if (is.null(x)) { + "NULL" + } else { + paste0("\"", x, "\"") + } +} diff --git a/R/restrict_derivation.R b/R/restrict_derivation.R index c130e71a5d..7a4de8e42f 100644 --- a/R/restrict_derivation.R +++ b/R/restrict_derivation.R @@ -47,7 +47,7 @@ #' adlb, #' derivation = derive_vars_merged, #' args = params( -#' by_vars = exprs(USUBJID), +#' by_vars = get_admiral_option("subject_keys"), #' dataset_add = adlb, #' filter_add = ABLFL == "Y", #' new_vars = exprs(BASE = AVAL) @@ -60,7 +60,7 @@ #' adlb, #' derivation = derive_var_base, #' args = params( -#' by_vars = exprs(USUBJID) +#' by_vars = get_admiral_option("subject_keys") #' ), #' filter = AVISITN >= 0 #' ) %>% diff --git a/R/tmp_vars.R b/R/tmp_vars.R new file mode 100644 index 0000000000..44c4ebf819 --- /dev/null +++ b/R/tmp_vars.R @@ -0,0 +1,115 @@ +#' Get a New Temporary Variable Name for a Dataset +#' +#' @param dataset The input dataset +#' @param prefix The prefix of the new temporary variable name to create +#' +#' @details +#' The function returns a new unique temporary variable name to be used inside +#' `dataset`. The temporary variable names have the structure `prefix_n` where +#' `n` is an integer, e.g. `tmp_var_1`. If there is already a variable inside +#' `datset` with a given `prefix` then the suffix is increased by 1, e.g. if +#' `tmp_var_1` already exists then `get_new_tmp_var()` will return `tmp_var_2`. +#' +#' @return The name of a new temporary variable as a symbol +#' +#' @keywords tmp_vars +#' @seealso [remove_tmp_vars()] +#' +#' @export +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' dm <- tribble( +#' ~DOMAIN, ~STUDYID, ~USUBJID, +#' "DM", "STUDY X", "01-701-1015", +#' "DM", "STUDY X", "01-701-1016", +#' ) +#' +#' tmp_var <- get_new_tmp_var(dm) +#' mutate(dm, !!tmp_var := NA) +get_new_tmp_var <- function(dataset, prefix = "tmp_var") { + assert_data_frame(dataset, optional = TRUE) + assert_character_scalar(prefix) + if (!str_detect(prefix, "^tmp_")) { + cli_abort("{.arg prefix} must start with {.val tmp_}.") + } + + caller_env <- parent.frame() + + if (is.null(dataset)) { + colnames_with_prefix <- vector("character") + } else { + regexp <- str_c("^", prefix, "_[0-9]{1,}$") + colnames_with_prefix <- str_subset(colnames(dataset), regexp) + } + if (!is.null(caller_env$.tmp_vars)) { + suffices <- str_extract(caller_env$.tmp_vars, "[0-9]{1,}$") + counter <- max(as.integer(suffices)) + 1L + } else if (length(colnames_with_prefix) > 0L) { + suffices <- str_extract(colnames_with_prefix, "[0-9]{1,}$") + counter <- max(as.integer(suffices)) + 1L + } else { + counter <- 1L + } + + new_tmp_var <- str_c(prefix, counter, sep = "_") + caller_env$.tmp_vars <- c(caller_env$.tmp_vars, new_tmp_var) + + sym(new_tmp_var) +} + +#' Remove All Temporary Variables Created Within the Current Function Environment +#' +#' @param dataset The input dataset +#' +#' @export +#' +#' @keywords tmp_vars +#' @seealso [get_new_tmp_var()] +#' +#' @return +#' The input dataset with temporary variables removed +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' dm <- tribble( +#' ~DOMAIN, ~STUDYID, ~USUBJID, +#' "DM", "STUDY X", "01-701-1015", +#' "DM", "STUDY X", "01-701-1016", +#' ) +#' dm <- select(dm, USUBJID) +#' tmp_var <- get_new_tmp_var(dm) +#' dm <- mutate(dm, !!tmp_var := NA) +#' +#' ## This function creates two new temporary variables which are removed when calling +#' ## `remove_tmp_vars()`. Note that any temporary variable created outside this +#' ## function is **not** removed +#' do_something <- function(dataset) { +#' tmp_var_1 <- get_new_tmp_var(dm) +#' tmp_var_2 <- get_new_tmp_var(dm) +#' dm %>% +#' mutate(!!tmp_var_1 := NA, !!tmp_var_2 := NA) %>% +#' print() %>% +#' remove_tmp_vars() +#' } +#' +#' do_something(dm) +remove_tmp_vars <- function(dataset) { + # In order to find the "correct" calling environment we have to make sure to + # exclude all calls relating to the use of `%>%` from the call stack + calls <- lapply(sys.calls(), function(x) paste(deparse(x), collapse = " ")) + contains_pipe <- map_lgl(calls, str_detect, "%>%") + + if (any(contains_pipe)) { + last_pipe <- max(which(contains_pipe)) + tmp_vars <- sys.frame(last_pipe - 1L)$.tmp_vars + } else { + tmp_vars <- parent.frame()$.tmp_vars + } + + if (is.null(tmp_vars)) { + dataset + } else { + dataset[, colnames(dataset) %notin% tmp_vars] + } +} diff --git a/R/utils.R b/R/utils.R new file mode 100644 index 0000000000..866eb6902a --- /dev/null +++ b/R/utils.R @@ -0,0 +1,11 @@ +enumerate <- function(x) { + paste( + paste0(backquote(x[-length(x)]), collapse = ", "), + "and", + backquote(x[length(x)]) + ) +} + +backquote <- function(x) { + paste0("`", x, "`") +} diff --git a/R/warnings.R b/R/warnings.R new file mode 100644 index 0000000000..4590e0c3f8 --- /dev/null +++ b/R/warnings.R @@ -0,0 +1,200 @@ +#' Warn If a Variable Already Exists +#' +#' Warn if a variable already exists inside a dataset +#' +#' @param dataset A `data.frame` +#' @param vars `character` vector of columns to check for in `dataset` +#' +#' @return No return value, called for side effects +#' +#' +#' @keywords warnings +#' @family warnings +#' +#' @export +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' dm <- tribble( +#' ~USUBJID, ~ARM, +#' "01-701-1015", "Placebo", +#' "01-701-1016", "Placebo", +#' ) +#' +#' ## No warning as `AAGE` doesn't exist in `dm` +#' warn_if_vars_exist(dm, "AAGE") +#' +#' ## Issues a warning +#' warn_if_vars_exist(dm, "ARM") +warn_if_vars_exist <- function(dataset, vars) { + existing_vars <- vars[vars %in% colnames(dataset)] + if (length(existing_vars) >= 1L) { + cli::cli_warn("{cli::qty(length(existing_vars))}Variable{?s} {.val {existing_vars}} + already {?exists/exist} in the dataset.") + } + + invisible(NULL) +} + +#' Warn If a Vector Contains Unknown Datetime Format +#' +#' Warn if the vector contains unknown datetime format such as +#' "2003-12-15T-:15:18", "2003-12-15T13:-:19","--12-15","-----T07:15" +#' +#' @param dtc a character vector containing the dates +#' @param is_valid a logical vector indicating whether elements in `dtc` are valid +#' +#' @return No return value, called for side effects +#' +#' +#' @keywords warnings +#' @family warnings +#' +#' @export +#' +#' @examples +#' +#' ## No warning as `dtc` is a valid date format +#' warn_if_invalid_dtc(dtc = "2021-04-06") +#' +#' ## Issues a warning +#' warn_if_invalid_dtc(dtc = "2021-04-06T-:30:30") +warn_if_invalid_dtc <- function(dtc, is_valid = is_valid_dtc(dtc)) { + if (!all(is_valid)) { + incorrect_dtc <- dtc[!is_valid] + incorrect_dtc_row <- rownames(as.data.frame(dtc))[!is_valid] + tbl <- paste("Row", incorrect_dtc_row, ": --DTC =", incorrect_dtc) + main_msg <- paste( + "Dataset contains incorrect datetime format:", + "--DTC may be incorrectly imputed on row(s)" + ) + + info <- paste0( + "ISO representations of the form YYYY-MM-DDThh:mm:ss.ddd are expected, ", + "e.g., 2003-12-15T13:15:17.123. Missing parts at the end can be omitted. ", + "Missing parts in the middle must be represented by a dash, e.g., 2003---15.", + sep = "\n" + ) + cli::cli_warn(c(main_msg, "*" = tbl, "*" = info)) + } +} + +#' Warn if incomplete dtc +#' +#' @param dtc A `character` vector of date-times in ISO 8601 format +#' @param n A non-negative integer +#' +#' @return A warning if `dtc` contains any partial dates +#' @export +#' +#' @keywords warnings +#' @family warnings +#' +warn_if_incomplete_dtc <- function(dtc, n) { + is_complete_dtc <- (nchar(dtc) >= n | is.na(dtc)) + if (n == 10) { + dt_dtm <- "date" + funtext <- "convert_dtc_to_dt" + } else if (n == 19) { + dt_dtm <- "datetime" + funtext <- "convert_dtc_to_dtm" + } + if (!all(is_complete_dtc)) { + incomplete_dtc <- dtc[!is_complete_dtc] + incomplete_dtc_row <- rownames(as.data.frame(dtc))[!is_complete_dtc] + tbl <- paste("Row", incomplete_dtc_row, ": --DTC = ", incomplete_dtc) + msg <- paste0( + "Dataset contains partial ", dt_dtm, " format. ", + "The function ", funtext, " expect a complete ", dt_dtm, ". ", + "Please use the function `impute_dtc()` to build a complete ", dt_dtm, "." + ) + warn(paste(msg, capture.output(print(tbl)), collapse = "\n")) + } +} + + +#' Warn If Two Lists are Inconsistent +#' +#' Checks if two list inputs have the same names and same number of elements and +#' issues a warning otherwise. +#' +#' @param base A named list +#' +#' @param compare A named list +#' +#' @param list_name A string +#' the name of the list +#' +#' @param i the index id to compare the 2 lists +#' +#' +#' @return a `warning` if the 2 lists have different names or length +#' +#' @keywords warnings +#' @family warnings +#' +#' @export +#' +#' @examples +#' library(dplyr, warn.conflicts = FALSE) +#' library(rlang) +#' +#' # no warning +#' warn_if_inconsistent_list( +#' base = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), +#' compare = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), +#' list_name = "Test" +#' ) +#' # warning +#' warn_if_inconsistent_list( +#' base = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ, DTHVAR = "text"), +#' compare = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), +#' list_name = "Test" +#' ) +warn_if_inconsistent_list <- function(base, compare, list_name, i = 2) { + if (paste(sort(names(base)), collapse = " ") != paste(sort(names(compare)), collapse = " ")) { + warn( + paste0( + "The variables used for traceability in `", list_name, + "` are not consistent, please check:\n", + paste( + "source", i - 1, ", Variables are given as:", + paste(sort(names(base)), collapse = " "), "\n" + ), + paste( + "source", i, ", Variables are given as:", + paste(sort(names(compare)), collapse = " ") + ) + ) + ) + } +} + +#' Suppress Specific Warnings +#' +#' Suppress certain warnings issued by an expression. +#' +#' @param expr Expression to be executed +#' +#' @param regexpr Regular expression matching warnings to suppress +#' +#' @return Return value of the expression +#' +#' @keywords warnings +#' @family warnings +#' +#' @details +#' All warnings which are issued by the expression and match the regular expression +#' are suppressed. +#' +#' @export +suppress_warning <- function(expr, regexpr) { + withCallingHandlers( + expr, + warning = function(w) { + if (any(grepl(regexpr, w$message))) { + invokeRestart("muffleWarning") + } + } + ) +} diff --git a/R/what.R b/R/what.R new file mode 100644 index 0000000000..71706fe36e --- /dev/null +++ b/R/what.R @@ -0,0 +1,49 @@ +#' What Kind of Object is This? +#' +#' Returns a string describing what kind of object the input is. +#' +#' @param x Any R object +#' +#' @return A `character` description of the type of `x` +#' +#' +#' @keywords what +#' @family what +#' +#' @export +#' +#' @examples +#' what_is_it("abc") +#' what_is_it(1L) +#' what_is_it(1:10) +#' what_is_it(mtcars) +what_is_it <- function(x) { + lifecycle::deprecate_soft( + when = "1.1.0", + what = "admiraldev::what_is_it()", + details = "This function was primarily used in error messaging, and can be replaced + with 'cli' functionality: `cli::cli_abort('{.obj_type_friendly {letters}}')`." + ) + + if (is.null(x)) { + "`NULL`" + } else if (is.factor(x)) { + "a factor" + } else if (is.symbol(x)) { + "a symbol" + } else if (isS4(x)) { + sprintf("a S4 object of class '%s'", class(x)[1L]) + } else if (is.atomic(x) && length(x) == 1L) { + if (is.character(x)) { + paste0("`\"", x, "\"`") + } else { + paste0("`", x, "`") + } + } else if (is.atomic(x) || class(x)[1L] == "list") { + friendly_type_of(x) + } else if (is.data.frame(x)) { + "a data frame" + } else { + sprintf("an object of class '%s'", class(x)[1L]) + } +} diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000000..2e52a8f35e --- /dev/null +++ b/README.Rmd @@ -0,0 +1,67 @@ +--- +title: "admiraldev" +output: md_document +date: '2022-06-27' +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +link <- function(text, url) { + return( + paste0( + "[", text, "]", + "(", url, ")" + ) + ) +} +dyn.link <- function(text, base_url, relative_url = "") { + branch <- Sys.getenv("BRANCH_NAME", "main") + return( + link( + text, + paste(base_url, branch, relative_url, sep = "/") + ) + ) +} + +# Other variables +admiral_homepage <- "https://pharmaverse.github.io/admiral" +``` + + + +# admiraldev + +Utility Functions and Development Tools for the Admiral Package Family + + + +[![CRAN status](https://www.r-pkg.org/badges/version/admiraldev)](https://CRAN.R-project.org/package=admiraldev) +[![Test Coverage](https://raw.githubusercontent.com/pharmaverse/admiraldev/badges/main/test-coverage.svg)](https://github.com/pharmaverse/admiraldev/actions/workflows/common.yml) + + + + +## Purpose + +Functions, tools and documentation for developing core `{admiral}` and extension package functions. Most functions in `{admiraldev}` are around testing inputs going into functions. There are also additional quality of life functions/Addins to assist developers of `{admiral}` or `{admiral}` extension packages, functions to help with rendering documentation, Developer Guides on developing function and using GitHub, GitHub Actions. + +**NOTE:** This package is not intended for standalone use but rather as a central dependency for `{admiral}` and its extension packages + +## Installation + +The package is available from CRAN and can be installed by running `install.packages("admiraldev")`. + +To install the latest development version of the package directly from GitHub use the following code: + +```{r, eval = FALSE} +if (!requireNamespace("remotes", quietly = TRUE)) { + install.packages("remotes") +} + +remotes::install_github("pharmaverse/admiraldev") +``` + +## Release Schedule + +`{admiraldev}` is to be released to CRAN at the same time as an official release of `{admiral}`. You can find the release schedule for `{admiral}` packages [here](https://pharmaverse.github.io/admiral/#release-schedule). diff --git a/admiraldev.Rproj b/admiraldev.Rproj new file mode 100644 index 0000000000..934df4886b --- /dev/null +++ b/admiraldev.Rproj @@ -0,0 +1,22 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Yes + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes +LineEndingConversion: Posix + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace diff --git a/inst/rstudio/addins.dcf b/inst/rstudio/addins.dcf new file mode 100644 index 0000000000..41efae4d5a --- /dev/null +++ b/inst/rstudio/addins.dcf @@ -0,0 +1,4 @@ +Name: Format test_that test file +Description: Updates current test_that test file by adding a function name, a test number, and a section +Binding: format_test_that_file +Interactive: false diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index 8c1f718fe0..520e301ea6 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by = exprs(STUDYID, USUBJID) ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -88,7 +88,7 @@ adae <- adae %>% ## Derive last dose date/time ---- derive_vars_joined( dataset_add = ex_ext, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(STUDYID, USUBJID), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" @@ -128,7 +128,7 @@ adae <- adae %>% adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(STUDYID, USUBJID) ) diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 26dac22f08..0870bfc55e 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -32,7 +32,7 @@ adlb_annotated <- adlb %>% ., derivation = derive_var_merged_exist_flag, dataset_add = ., - by_vars = c(get_admiral_option("subject_keys"), exprs(LBSEQ, PARAMCD, ADT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), variable_params = list( params( new_var = CRIT1FL, @@ -43,7 +43,7 @@ adlb_annotated <- adlb %>% ) ) ) %>% - select(USUBJID, STUDYID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) + select(STUDYID, USUBJID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) # Subset Datasets altast_records <- adlb_annotated %>% @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", @@ -65,11 +65,11 @@ hylaw_records <- derive_vars_joined( ) hylaw_records_pts_visits <- hylaw_records %>% - select(USUBJID, STUDYID, TRT01A) %>% # add AVISIT, ADT for by visit + select(STUDYID, USUBJID, TRT01A) %>% # add AVISIT, ADT for by visit distinct() hylaw_records_fls <- hylaw_records %>% - select(USUBJID, STUDYID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit + select(STUDYID, USUBJID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit distinct() # Create new parameters based on records that present potential case @@ -79,7 +79,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = c(get_admiral_option("subject_keys"), exprs(TRT01A)), # add AVISIT, ADT for by visit + by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN" diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 3210c72c67..a307f86636 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -123,10 +123,7 @@ ex_dates <- ex %>% # Derive event ID and nominal relative time from first dose (NFRLT) mutate( EVID = 1, - NFRLT = case_when( - VISITDY == 1 ~ 0, - TRUE ~ 24 * VISITDY - ) + NFRLT = 24 * (VISITDY - 1), .after = USUBJID ) %>% # Set missing end dates to start date mutate(AENDTM = case_when( @@ -151,13 +148,11 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = c( - get_admiral_option("subject_keys"), exprs( - EVID, EXDOSFRQ, EXDOSFRM, - NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, - VISIT, VISITNUM, VISITDY, - TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - ) + keep_source_vars = exprs( + !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, + VISIT, VISITNUM, VISITDY, + TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars ) ) %>% # Derive AVISIT based on nominal relative time @@ -187,7 +182,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -204,7 +199,7 @@ adpc_first_dose <- pc_dates %>% adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -223,7 +218,7 @@ adpc_prev <- adpc_first_dose %>% adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -242,7 +237,7 @@ adpc_next <- adpc_prev %>% adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -258,7 +253,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -450,7 +445,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% adpc_base <- adpc_dtype %>% derive_var_base( - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARCAT1, BASETYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" @@ -464,7 +459,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -484,13 +479,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -504,7 +499,7 @@ adpc_baselines <- adpc_aseq %>% adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index c066c099fc..d100d968b9 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -54,7 +54,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -79,7 +79,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -100,10 +100,7 @@ ex_dates <- ex %>% # Derive event ID and nominal relative time from first dose (NFRLT) mutate( EVID = 1, - NFRLT = case_when( - VISITDY == 1 ~ 0, - TRUE ~ 24 * VISITDY - ) + NFRLT = 24 * (VISITDY - 1), .after = USUBJID ) %>% # Set missing end dates to start date mutate(AENDTM = case_when( @@ -128,13 +125,11 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = c( - get_admiral_option("subject_keys"), exprs( - EVID, EXDOSFRQ, EXDOSFRM, - NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, - VISIT, VISITNUM, VISITDY, - TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars - ) + keep_source_vars = exprs( + !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, + VISIT, VISITNUM, VISITDY, + TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars ) ) %>% # Derive AVISIT based on nominal relative time @@ -163,7 +158,7 @@ adppk_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM, EXDOSE_first = EXDOSE), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) + by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -180,7 +175,7 @@ adppk_first_dose <- pc_dates %>% adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -199,7 +194,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -326,7 +321,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -349,11 +344,6 @@ adppk_aseq <- adppk_aval %>% # Include numeric values for STUDYIDN, USUBJIDN, SEXN, RACEN etc. covar <- adsl %>% - derive_vars_merged( - dataset_add = country_code_lookup, - new_vars = exprs(COUNTRYN = country_number, COUNTRYL = country_name), - by_vars = exprs(COUNTRY = country_code), - ) %>% mutate( STUDYIDN = as.numeric(word(USUBJID, 1, sep = fixed("-"))), SITEIDN = as.numeric(word(USUBJID, 2, sep = fixed("-"))), @@ -400,12 +390,19 @@ covar <- adsl %>% FORMN = case_when( FORM == "PATCH" ~ 3, TRUE ~ 4 - ) + ), + COUNTRYN = case_when( + COUNTRY == "USA" ~ 1, + COUNTRY == "CAN" ~ 2, + COUNTRY == "GBR" ~ 3 + ), + REGION1N = COUNTRYN, ) %>% select( - USUBJID, STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJIDN, + STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJID, USUBJIDN, SUBJID, SUBJIDN, AGE, SEX, SEXN, COHORT, COHORTC, ROUTE, ROUTEN, - RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, COUNTRYL + RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, + REGION1, REGION1N ) #---- Derive additional baselines from VS and LB ---- @@ -413,24 +410,24 @@ covar <- adsl %>% labsbl <- lb %>% filter(LBBLFL == "Y" & LBTESTCD %in% c("CREAT", "ALT", "AST", "BILI")) %>% mutate(LBTESTCDB = paste0(LBTESTCD, "BL")) %>% - select(USUBJID, STUDYID, LBTESTCDB, LBSTRESN) + select(STUDYID, USUBJID, LBTESTCDB, LBSTRESN) covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -457,7 +454,7 @@ covar_vslb <- covar %>% adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 592cae1396..06fb2210d0 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -81,7 +81,7 @@ advs <- vs %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -98,10 +98,9 @@ advs <- advs %>% by_vars = exprs(VSTESTCD) ) %>% ## Calculate AVAL and AVALC ---- - # AVALC should only be mapped if it contains non-redundant information. mutate( - # AVALC = VSSTRESC, - AVAL = VSSTRESN + AVAL = VSSTRESN, + AVALC = VSSTRESC ) %>% ## Derive new parameters based on existing records ---- # Note that, for the following three `derive_param_*()` functions, only the @@ -110,27 +109,27 @@ advs <- advs %>% # Derive Mean Arterial Pressure derive_param_map( - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) ) %>% # Derive Body Surface Area derive_param_bsa( - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = get_admiral_option("subject_keys") + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) %>% # Derive Body Mass Index derive_param_bmi( - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = get_admiral_option("subject_keys") + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) @@ -158,7 +157,7 @@ advs <- advs %>% advs <- advs %>% derive_summary_records( dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(PARAMCD, AVISITN, AVISIT, ADT, ADY)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, PARAMCD, AVISITN, AVISIT, ADT, ADY), filter_add = !is.na(AVAL), set_values_to = exprs( AVAL = mean(AVAL), @@ -197,7 +196,7 @@ advs <- advs %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, VISITNUM, VSSEQ), new_var = ABLFL, mode = "last" @@ -210,21 +209,19 @@ advs <- advs %>% advs <- advs %>% # Calculate BASE derive_var_base( - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) %>% # Calculate BASEC - - # only if AVALC is mapped - # derive_var_base( - # by_vars = exprs(get_admiral_option("subject_keys"), PARAMCD, BASETYPE), - # source_var = AVALC, - # new_var = BASEC - # ) %>% + derive_var_base( + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), + source_var = AVALC, + new_var = BASEC + ) %>% # Calculate BNRIND derive_var_base( - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) %>% @@ -240,7 +237,7 @@ advs <- advs %>% derivation = derive_var_extreme_flag, args = params( new_var = ANL01FL, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, ATPT, DTYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPT, DTYPE), order = exprs(ADT, AVAL), mode = "last" ), @@ -255,7 +252,7 @@ advs <- advs %>% # Create End of Treatment Record derive_extreme_records( dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ATPTN)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, ATPTN), order = exprs(ADT, AVISITN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 13 & ANL01FL == "Y" & is.na(DTYPE)), @@ -275,7 +272,7 @@ advs <- advs %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -290,7 +287,7 @@ advs <- advs %>% advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adxx.R b/inst/templates/ad_adxx.R new file mode 100644 index 0000000000..297c40d255 --- /dev/null +++ b/inst/templates/ad_adxx.R @@ -0,0 +1,9 @@ +# Name: ADXX +# +# Label: XXX +# +# Input: xx, xx, xx +library(admiral) +library(pharmaversesdtm) # Contains example datasets from the CDISC pilot project + +# Add your template ADaM script code diff --git a/inst/www/style.css b/inst/www/style.css new file mode 100644 index 0000000000..2dc9841207 --- /dev/null +++ b/inst/www/style.css @@ -0,0 +1,16 @@ +.dt-scroll { + overflow-x: auto; + width: 100%; + max-height: 600px; +} +.dt-scroll .dataTable thead tr th, +.dt-scroll thead tr td { + position: sticky; + background-color: #FFFFFF; +} +.dt-scroll thead tr th { + top: 0; +} +.dt-scroll thead tr td { + top: 2.45em; +} diff --git a/man/add_suffix_to_vars.Rd b/man/add_suffix_to_vars.Rd new file mode 100644 index 0000000000..8f414f79a2 --- /dev/null +++ b/man/add_suffix_to_vars.Rd @@ -0,0 +1,43 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quo.R +\name{add_suffix_to_vars} +\alias{add_suffix_to_vars} +\title{Add a Suffix to Variables in a List of Expressions} +\usage{ +add_suffix_to_vars(order, vars, suffix) +} +\arguments{ +\item{order}{List of expressions + +\emph{Permitted Values}: list of variables or \verb{desc()} function calls +created by \code{exprs()}, e.g., \code{exprs(ADT, desc(AVAL))}} + +\item{vars}{Variables to change + +\emph{Permitted Values}: list of variables created by \code{exprs()}} + +\item{suffix}{Suffix + +\emph{Permitted Values}: A character scalar} +} +\value{ +The list of expression where for each element the suffix (\code{suffix}) is +added to every symbol specified for \code{vars} +} +\description{ +Add a suffix to variables in a list of expressions +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) + +add_suffix_to_vars(exprs(ADT, desc(AVAL), AVALC), vars = exprs(AVAL), suffix = ".join") +} +\seealso{ +Other quo: +\code{\link{expr_c}()}, +\code{\link{replace_symbol_in_expr}()}, +\code{\link{replace_values_by_names}()} +} +\concept{quo} +\keyword{quo} diff --git a/man/admiral-package.Rd b/man/admiral-package.Rd index 26cf0fd4ca..6bbb984a2d 100644 --- a/man/admiral-package.Rd +++ b/man/admiral-package.Rd @@ -1,13 +1,21 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/admiral-package.R +% Please edit documentation in R/ADaM-package.R, R/admiral-package.R, +% R/admiraldev-package.R \docType{package} \name{admiral-package} -\alias{admiral} \alias{admiral-package} \title{admiral: ADaM in R Asset Library} \description{ \if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} +A toolbox for programming Clinical Data Interchange Standards Consortium (CDISC) compliant Analysis Data Model (ADaM) datasets in R. ADaM datasets are a mandatory part of any New Drug or Biologics License Application submitted to the United States Food and Drug Administration (FDA). Analysis derivations are implemented in accordance with the "Analysis Data Model Implementation Guide" (CDISC Analysis Data Model Team, 2021, \url{https://www.cdisc.org/standards/foundational/adam}). + +\if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} + +A toolbox for programming Clinical Data Interchange Standards Consortium (CDISC) compliant Analysis Data Model (ADaM) datasets in R. ADaM datasets are a mandatory part of any New Drug or Biologics License Application submitted to the United States Food and Drug Administration (FDA). Analysis derivations are implemented in accordance with the "Analysis Data Model Implementation Guide" (CDISC Analysis Data Model Team, 2021, \url{https://www.cdisc.org/standards/foundational/adam}). + +\if{html}{\figure{logo.png}{options: style='float: right' alt='logo' width='120'}} + A toolbox for programming Clinical Data Interchange Standards Consortium (CDISC) compliant Analysis Data Model (ADaM) datasets in R. ADaM datasets are a mandatory part of any New Drug or Biologics License Application submitted to the United States Food and Drug Administration (FDA). Analysis derivations are implemented in accordance with the "Analysis Data Model Implementation Guide" (CDISC Analysis Data Model Team, 2021, \url{https://www.cdisc.org/standards/foundational/adam}). } \seealso{ @@ -19,6 +27,22 @@ Useful links: } +Useful links: +\itemize{ + \item \url{https://pharmaverse.github.io/admiral/} + \item \url{https://github.com/pharmaverse/admiral} + \item Report bugs at \url{https://github.com/pharmaverse/admiral/issues} +} + + +Useful links: +\itemize{ + \item \url{https://pharmaverse.github.io/admiral/} + \item \url{https://github.com/pharmaverse/admiral} + \item Report bugs at \url{https://github.com/pharmaverse/admiral/issues} +} + + Other internal: \code{\link{extract_duplicate_records}()}, \code{\link{format.basket_select}()}, diff --git a/man/arg_name.Rd b/man/arg_name.Rd new file mode 100644 index 0000000000..119b43182c --- /dev/null +++ b/man/arg_name.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{arg_name} +\alias{arg_name} +\title{Extract Argument Name from an Expression} +\usage{ +arg_name(expr) +} +\arguments{ +\item{expr}{An expression created inside a function using \code{substitute()}} +} +\value{ +\code{character} vector +} +\description{ +Extract Argument Name from an Expression +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/assert_atomic_vector.Rd b/man/assert_atomic_vector.Rd new file mode 100644 index 0000000000..85e428119a --- /dev/null +++ b/man/assert_atomic_vector.Rd @@ -0,0 +1,86 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_atomic_vector} +\alias{assert_atomic_vector} +\title{Is an Argument an Atomic Vector?} +\usage{ +assert_atomic_vector( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_atomic_vector", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not an atomic vector. +Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is an atomic vector +} +\examples{ +example_fun <- function(x) { + assert_atomic_vector(x) +} + +example_fun(1:10) + +try(example_fun(list(1, 2))) +} +\seealso{ +Other assertion: +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_character_scalar.Rd b/man/assert_character_scalar.Rd new file mode 100644 index 0000000000..e9ee7ca4d8 --- /dev/null +++ b/man/assert_character_scalar.Rd @@ -0,0 +1,113 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_character_scalar} +\alias{assert_character_scalar} +\title{Is an Argument a Character Scalar (String)?} +\usage{ +assert_character_scalar( + arg, + values = NULL, + case_sensitive = TRUE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_character_scalar", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{values}{A \code{character} vector of valid values for \code{arg}. +Values is converted to a lower case vector if case_sensitive = FALSE is used.} + +\item{case_sensitive}{Should the argument be handled case-sensitive? +If set to \code{FALSE}, the argument is converted to lower case for checking the +permitted values and returning the argument.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a character vector or if \code{arg} +is a character vector but of length > 1 or if its value is not one of the \code{values} +specified. Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is a character scalar and (optionally) whether it matches +one of the provided \code{values}. +} +\examples{ +example_fun <- function(msg_type) { + assert_character_scalar(msg_type, values = c("warning", "error")) +} + +example_fun("warning") + +try(example_fun("message")) + +try(example_fun(TRUE)) + +# handling arguments case-insensitive +example_fun2 <- function(msg_type) { + msg_type <- assert_character_scalar( + msg_type, + values = c("warning", "error"), + case_sensitive = FALSE + ) + if (msg_type == "warning") { + print("A warning was requested.") + } +} + +example_fun2("Warning") +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_character_vector.Rd b/man/assert_character_vector.Rd new file mode 100644 index 0000000000..1aa11d7690 --- /dev/null +++ b/man/assert_character_vector.Rd @@ -0,0 +1,100 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_character_vector} +\alias{assert_character_vector} +\title{Is an Argument a Character Vector?} +\usage{ +assert_character_vector( + arg, + values = NULL, + named = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_character_vector", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{values}{A \code{character} vector of valid values for \code{arg}} + +\item{named}{If set to \code{TRUE}, an error is issued if not all elements of the +vector are named.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a character vector or if +any element is not included in the list of valid values. Otherwise, the input +is returned invisibly. +} +\description{ +Checks if an argument is a character vector +} +\examples{ +example_fun <- function(chr) { + assert_character_vector(chr) +} + +example_fun(letters) + +try(example_fun(1:10)) + +example_fun2 <- function(chr) { + assert_character_vector(chr, named = TRUE) +} + +try(example_fun2(c(alpha = "a", "b", gamma = "c"))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_data_frame.Rd b/man/assert_data_frame.Rd new file mode 100644 index 0000000000..ce8692cd77 --- /dev/null +++ b/man/assert_data_frame.Rd @@ -0,0 +1,106 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_data_frame} +\alias{assert_data_frame} +\title{Is an Argument a Data Frame?} +\usage{ +assert_data_frame( + arg, + required_vars = NULL, + check_is_grouped = TRUE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_data_frame", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{required_vars}{A list of variables created using \code{exprs()}} + +\item{check_is_grouped}{Throw an error is \code{dataset} is grouped? Defaults to \code{TRUE}.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a data frame or if \code{arg} is a +data frame but misses any variable specified in \code{required_vars}. Otherwise, +the input is returned invisibly. +} +\description{ +Checks if an argument is a data frame and (optionally) whether is contains +a set of required variables +} +\examples{ +library(dplyr) +library(rlang) +dm <- tribble( + ~STUDYID, ~USUBJID, + "XYZ", "1", + "XYZ", "2" +) + +example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) +} + +example_fun(dm) + +try(example_fun(select(dm, -STUDYID))) + +try(example_fun("Not a dataset")) + +try(example_fun(group_by(dm, USUBJID))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_date_var.Rd b/man/assert_date_var.Rd new file mode 100644 index 0000000000..dceddec747 --- /dev/null +++ b/man/assert_date_var.Rd @@ -0,0 +1,97 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_date_var} +\alias{assert_date_var} +\title{Is a Variable in a Dataset a Date or Datetime Variable?} +\usage{ +assert_date_var( + dataset, + var, + dataset_name = rlang::caller_arg(dataset), + var_name = rlang::caller_arg(var), + message = NULL, + class = "assert_date_var", + call = parent.frame() +) +} +\arguments{ +\item{dataset}{The dataset where the variable is expected} + +\item{var}{The variable to check} + +\item{dataset_name}{The name of the dataset. If the argument is specified, the +specified name is displayed in the error message.} + +\item{var_name}{The name of the variable. If the argument is specified, the +specified name is displayed in the error message.} + +\item{message}{(\code{string})\cr +string passed to \code{cli::cli_abort(message)}. When \code{NULL}, default messaging +is used (see examples for default messages). \code{"var_name"} and \code{"dataset_name"}, +can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{var} is not a date or datetime variable in +\code{dataset} and returns the input invisibly otherwise. +} +\description{ +Checks if a variable in a dataset is a date or datetime variable +} +\examples{ +library(lubridate) +library(dplyr) +library(rlang) + +example_fun <- function(dataset, var) { + var <- assert_symbol(enexpr(var)) + assert_date_var(dataset = dataset, var = !!var) +} + +my_data <- tribble( + ~USUBJID, ~ADT, + "1", ymd("2020-12-06"), + "2", ymd("") +) + +example_fun( + dataset = my_data, + var = ADT +) + +try(example_fun( + dataset = my_data, + var = USUBJID +)) + +example_fun2 <- function(dataset, var) { + var <- assert_symbol(enexpr(var)) + assert_date_var( + dataset = dataset, + var = !!var, + dataset_name = "your_data", + var_name = "your_var" + ) +} + +try(example_fun2( + dataset = my_data, + var = USUBJID +)) +} +\keyword{assertion} diff --git a/man/assert_date_vector.Rd b/man/assert_date_vector.Rd new file mode 100644 index 0000000000..b1fc943e06 --- /dev/null +++ b/man/assert_date_vector.Rd @@ -0,0 +1,87 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_date_vector} +\alias{assert_date_vector} +\title{Is an object a date or datetime vector?} +\usage{ +assert_date_vector( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_date_vector", + call = parent.frame() +) +} +\arguments{ +\item{arg}{The function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} +and \code{arg} is \code{NULL} then the function \code{assert_date_vector} exits early and throw and error.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function returns an error if \code{arg} is missing, or not a date or datetime variable +but otherwise returns an invisible output. +} +\description{ +Check if an object/vector is a date or datetime variable without needing a dataset as input +} +\examples{ +example_fun <- function(arg) { + assert_date_vector(arg) +} + +example_fun( + as.Date("2022-01-30", tz = "UTC") +) +try(example_fun("1993-07-14")) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_expr.Rd b/man/assert_expr.Rd new file mode 100644 index 0000000000..d242837070 --- /dev/null +++ b/man/assert_expr.Rd @@ -0,0 +1,77 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_expr} +\alias{assert_expr} +\title{Assert Argument is an Expression} +\usage{ +assert_expr( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_expr", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not an expression, i.e. either +a symbol or a call, or returns the input invisibly otherwise +} +\description{ +Assert Argument is an Expression +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_expr_list.Rd b/man/assert_expr_list.Rd new file mode 100644 index 0000000000..c4b5fcb1c8 --- /dev/null +++ b/man/assert_expr_list.Rd @@ -0,0 +1,94 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_expr_list} +\alias{assert_expr_list} +\title{Is an Argument a List of Expressions?} +\usage{ +assert_expr_list( + arg, + required_elements = NULL, + named = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_expr_list", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{required_elements}{A \code{character} vector of names that must be present in \code{arg}} + +\item{named}{If set to \code{TRUE}, an error is issued if not all elements of the +list are named.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a list of expressions. +Otherwise, the input it returned invisibly. +} +\description{ +Checks if the argument is a list of expressions. +} +\examples{ +library(rlang) + +example_fun <- function(vars) { + assert_expr_list(vars) +} +example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ)) + +try(example_fun(exprs("AE", DTSEQ = AESEQ, !!list("a"), !!list("a")))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_filter_cond.Rd b/man/assert_filter_cond.Rd new file mode 100644 index 0000000000..3fbc17097a --- /dev/null +++ b/man/assert_filter_cond.Rd @@ -0,0 +1,99 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_filter_cond} +\alias{assert_filter_cond} +\title{Is an Argument a Filter Condition?} +\usage{ +assert_filter_cond( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_filter_cond", + call = parent.frame() +) +} +\arguments{ +\item{arg}{Quosure - filtering condition.} + +\item{optional}{Logical - is the argument optional? Defaults to \code{FALSE}.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +Performs necessary checks and returns \code{arg} if all pass. +Otherwise throws an informative error. +} +\description{ +Is an Argument a Filter Condition? +} +\details{ +Check if \code{arg} is a suitable filtering condition to be used in +functions like \code{subset} or \code{dplyr::filter}. +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) +dm <- dplyr::tribble( + ~DOMAIN, ~STUDYID, ~USUBJID, ~AGE, + "DM", "STUDY X", "01-701-1015", 64, + "DM", "STUDY X", "01-701-1016", 65, +) + +# typical usage in a function as an argument check +example_fun <- function(dat, x) { + x <- assert_filter_cond(enexpr(x), arg_name = "x") + filter(dat, !!x) +} + +example_fun(dm, AGE == 64) + +try(assert_filter_cond(mtcars)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_function.Rd b/man/assert_function.Rd new file mode 100644 index 0000000000..793b5d37d6 --- /dev/null +++ b/man/assert_function.Rd @@ -0,0 +1,103 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_function} +\alias{assert_function} +\title{Is Argument a Function?} +\usage{ +assert_function( + arg, + params = NULL, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_function", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function + +The function to be checked} + +\item{params}{A character vector + +A character vector of expected argument names for the aforementioned function in \code{arg}. +If ellipsis, \code{...}, is included in the function formals of the function in \code{arg}, +this argument, \code{params} will be ignored, accepting all values of the character vector.} + +\item{optional}{Is the checked argument optional? + +If set to \code{FALSE} and \code{arg} is \code{NULL} then an error is thrown.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error +\itemize{ +\item if the argument is not a function or +\item if the function does not provide all arguments as specified for the +\code{params} argument (assuming ellipsis is not in function formals) +} +} +\description{ +Checks if the argument is a function and if all expected arguments are +provided by the function. +} +\examples{ +example_fun <- function(fun) { + assert_function(fun, params = c("x")) +} + +example_fun(mean) + +try(example_fun(1)) + +try(example_fun(sum)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_function_param.Rd b/man/assert_function_param.Rd new file mode 100644 index 0000000000..06835610ec --- /dev/null +++ b/man/assert_function_param.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_function_param} +\alias{assert_function_param} +\title{Assert Argument is a Parameter of a Function} +\usage{ +assert_function_param(arg, params) +} +\arguments{ +\item{arg}{The name of a function passed as a string} + +\item{params}{A character vector of function parameters} +} +\value{ +The function throws an error if any elements of \code{params} is not an argument of +the function given by \code{arg} +} +\description{ +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} + +This function is \emph{deprecated}, please use \code{assert_function()} instead. +} +\seealso{ +Other deprecated: +\code{\link{assert_has_variables}()}, +\code{\link{assert_named_exprs}()} +} +\concept{deprecated} +\keyword{deprecated} diff --git a/man/assert_has_variables.Rd b/man/assert_has_variables.Rd new file mode 100644 index 0000000000..6fa7795fac --- /dev/null +++ b/man/assert_has_variables.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_has_variables} +\alias{assert_has_variables} +\title{Does a Dataset Contain All Required Variables?} +\usage{ +assert_has_variables(dataset, required_vars) +} +\arguments{ +\item{dataset}{A \code{data.frame}} + +\item{required_vars}{A \code{character} vector of variable names} +} +\value{ +The function throws an error if any of the required variables are +missing in the input dataset. Otherwise, the dataset is returned invisibly. +} +\description{ +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} + +This function is \emph{deprecated}, please use \code{assert_data_frame()} instead. +} +\details{ +Checks if a dataset contains all required variables +} +\seealso{ +Other deprecated: +\code{\link{assert_function_param}()}, +\code{\link{assert_named_exprs}()} +} +\concept{deprecated} +\keyword{deprecated} diff --git a/man/assert_integer_scalar.Rd b/man/assert_integer_scalar.Rd new file mode 100644 index 0000000000..98f92226f6 --- /dev/null +++ b/man/assert_integer_scalar.Rd @@ -0,0 +1,95 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_integer_scalar} +\alias{assert_integer_scalar} +\title{Is an Argument an Integer Scalar?} +\usage{ +assert_integer_scalar( + arg, + subset = "none", + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_integer_scalar", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{subset}{A subset of integers that \code{arg} should be part of. Should be one +of \code{"none"} (the default), \code{"positive"}, \code{"non-negative"} or \code{"negative"}.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not an integer belonging to the +specified \code{subset}. Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is an integer scalar +} +\examples{ +example_fun <- function(num1, num2) { + assert_integer_scalar(num1, subset = "positive") + assert_integer_scalar(num2, subset = "negative") +} + +example_fun(1, -9) + +try(example_fun(1.5, -9)) + +try(example_fun(2, 0)) + +try(example_fun("2", 0)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_list_element.Rd b/man/assert_list_element.Rd new file mode 100644 index 0000000000..5bc4fcf6d8 --- /dev/null +++ b/man/assert_list_element.Rd @@ -0,0 +1,98 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_list_element} +\alias{assert_list_element} +\title{Is an Element of a List of Lists/Classes Fulfilling a Condition?} +\usage{ +assert_list_element( + list, + element, + condition, + message_text, + arg_name = rlang::caller_arg(list), + message = NULL, + class = "assert_list_element", + call = parent.frame(), + ... +) +} +\arguments{ +\item{list}{A list to be checked +A list of named lists or classes is expected.} + +\item{element}{The name of an element of the lists/classes +A character scalar is expected.} + +\item{condition}{Condition to be fulfilled +The condition is evaluated for each element of the list. The element of the +lists/classes can be referred to by its name, e.g., \code{censor == 0} to check +the \code{censor} field of a class.} + +\item{message_text}{Text to be displayed in the error message above +the listing of values that do not meet the condition. +The text should describe the condition to be fulfilled, +e.g., \code{"Error in {arg_name}: the censor values must be zero."}. +If \code{message} argument is specified, that text will be displayed and \code{message_text} +is ignored.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} + +\item{...}{Objects required to evaluate the condition +If the condition contains objects apart from the element, they have to be +passed to the function. See the second example below.} +} +\value{ +An error if the condition is not met. The input otherwise. +} +\description{ +Checks if the elements of a list of named lists/classes fulfill a certain +condition. If not, an error is issued and all elements of the list not +fulfilling the condition are listed. +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_list_of.Rd b/man/assert_list_of.Rd new file mode 100644 index 0000000000..4d693c310c --- /dev/null +++ b/man/assert_list_of.Rd @@ -0,0 +1,101 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_list_of} +\alias{assert_list_of} +\title{Is an Argument a List of Objects of a Specific S3 Class or Type?} +\usage{ +assert_list_of( + arg, + cls, + named = FALSE, + optional = TRUE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_list_of", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{cls}{The S3 class or type to check for} + +\item{named}{If set to \code{TRUE}, an error is issued if not all elements of the +list are named.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a list or if \code{arg} is a list but +its elements are not objects inheriting from \code{class} or of type \code{class}. +Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is a \code{list} of objects inheriting from the S3 class or type specified. +} +\examples{ +example_fun <- function(list) { + assert_list_of(list, "data.frame") +} + +example_fun(list(mtcars, iris)) + +try(example_fun(list(letters, 1:10))) + +try(example_fun(c(TRUE, FALSE))) + +example_fun2 <- function(list) { + assert_list_of(list, "numeric", named = TRUE) +} +try(example_fun2(list(1, 2, 3, d = 4))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_logical_scalar.Rd b/man/assert_logical_scalar.Rd new file mode 100644 index 0000000000..824f29fea6 --- /dev/null +++ b/man/assert_logical_scalar.Rd @@ -0,0 +1,91 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_logical_scalar} +\alias{assert_logical_scalar} +\title{Is an Argument a Logical Scalar (Boolean)?} +\usage{ +assert_logical_scalar( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_logical_scalar", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional?\cr +If set to \code{FALSE} and \code{arg} is \code{NULL} then an error is thrown. Otherwise, +\code{NULL} is considered as valid value.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is neither \code{TRUE} or \code{FALSE}. Otherwise, +the input is returned invisibly. +} +\description{ +Checks if an argument is a logical scalar +} +\examples{ +example_fun <- function(flag) { + assert_logical_scalar(flag) +} + +example_fun(FALSE) + +try(example_fun(NA)) + +try(example_fun(c(TRUE, FALSE, FALSE))) + +try(example_fun(1:10)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_named.Rd b/man/assert_named.Rd new file mode 100644 index 0000000000..14885eaecd --- /dev/null +++ b/man/assert_named.Rd @@ -0,0 +1,88 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_named} +\alias{assert_named} +\title{Assert Argument is a Named List or Vector} +\usage{ +assert_named( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_named", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a named list or vector or +returns the input invisibly otherwise +} +\description{ +Assert that all elements of the argument are named. +} +\examples{ +example_fun <- function(varval_list) { + assert_named(varval_list) +} + +example_fun(list(var1 = 1, var2 = "x")) + +try(example_fun(list(1, "x"))) + +try(example_fun(list(var = 1, "x"))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_named_exprs.Rd b/man/assert_named_exprs.Rd new file mode 100644 index 0000000000..a4bd9f8ad8 --- /dev/null +++ b/man/assert_named_exprs.Rd @@ -0,0 +1,30 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_named_exprs} +\alias{assert_named_exprs} +\title{Assert Argument is a Named List of Expressions} +\usage{ +assert_named_exprs(arg, optional = FALSE) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} +} +\value{ +The function throws an error if \code{arg} is not a named \code{list} of expression or +returns the input invisibly otherwise +} +\description{ +\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} + +This function is \emph{deprecated}, please use \code{assert_expr_list()} instead. +} +\seealso{ +Other deprecated: +\code{\link{assert_function_param}()}, +\code{\link{assert_has_variables}()} +} +\concept{deprecated} +\keyword{deprecated} diff --git a/man/assert_numeric_vector.Rd b/man/assert_numeric_vector.Rd new file mode 100644 index 0000000000..3e2431958f --- /dev/null +++ b/man/assert_numeric_vector.Rd @@ -0,0 +1,86 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_numeric_vector} +\alias{assert_numeric_vector} +\title{Is an Argument a Numeric Vector?} +\usage{ +assert_numeric_vector( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_numeric_vector", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a numeric vector. +Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is a numeric vector +} +\examples{ +example_fun <- function(num) { + assert_numeric_vector(num) +} + +example_fun(1:10) + +try(example_fun(letters)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_one_to_one.Rd b/man/assert_one_to_one.Rd new file mode 100644 index 0000000000..9e0974edc8 --- /dev/null +++ b/man/assert_one_to_one.Rd @@ -0,0 +1,108 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_one_to_one} +\alias{assert_one_to_one} +\title{Is There a One to One Mapping between Variables?} +\usage{ +assert_one_to_one( + dataset, + vars1, + vars2, + dataset_name = rlang::caller_arg(dataset), + message = NULL, + class = "assert_one_to_one", + call = parent.frame() +) +} +\arguments{ +\item{dataset}{Dataset to be checked + +The variables specified for \code{vars1} and \code{vars2} are expected.} + +\item{vars1}{First list of variables} + +\item{vars2}{Second list of variables} + +\item{dataset_name}{string indicating the label/symbol of the object being checked. +Default is \code{rlang::caller_arg(dataset)}.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. When \code{NULL}, default messaging +is used (see examples for default messages). \code{"dataset_name"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +An error if the condition is not meet. The input otherwise. +} +\description{ +Checks if there is a one to one mapping between two lists of variables. +} +\examples{ +library(dplyr) +library(rlang) + +df <- tribble( + ~SPECIES, ~SPECIESN, + "DOG", 1L, + "CAT", 2L, + "DOG", 1L +) + +assert_one_to_one(df, vars1 = exprs(SPECIES), vars2 = exprs(SPECIESN)) + +df_many <- tribble( + ~SPECIES, ~SPECIESN, + "DOG", 1L, + "CAT", 2L, + "DOG", 3L +) + +try( + assert_one_to_one(df_many, vars1 = exprs(SPECIES), vars2 = exprs(SPECIESN)) +) + +try( + assert_one_to_one(df_many, vars1 = exprs(SPECIESN), vars2 = exprs(SPECIES)) +) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_param_does_not_exist.Rd b/man/assert_param_does_not_exist.Rd new file mode 100644 index 0000000000..f66df55f67 --- /dev/null +++ b/man/assert_param_does_not_exist.Rd @@ -0,0 +1,87 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_param_does_not_exist} +\alias{assert_param_does_not_exist} +\title{Asserts That a Parameter Does Not Exist in the Dataset} +\usage{ +assert_param_does_not_exist( + dataset, + param, + arg_name = rlang::caller_arg(dataset), + message = NULL, + class = "assert_param_does_not_exist", + call = parent.frame() +) +} +\arguments{ +\item{dataset}{A \code{data.frame}} + +\item{param}{Parameter code to check} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if the parameter exists in the input +dataset. Otherwise, the dataset is returned invisibly. +} +\description{ +Checks if a parameter (\code{PARAMCD}) does not exist in a dataset. +} +\examples{ +library(dplyr) + +advs <- tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 +) +assert_param_does_not_exist(advs, param = "HR") +try(assert_param_does_not_exist(advs, param = "WEIGHT")) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_s3_class.Rd b/man/assert_s3_class.Rd new file mode 100644 index 0000000000..8c0c58968a --- /dev/null +++ b/man/assert_s3_class.Rd @@ -0,0 +1,91 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_s3_class} +\alias{assert_s3_class} +\title{Is an Argument an Object of a Specific S3 Class?} +\usage{ +assert_s3_class( + arg, + cls, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_s3_class", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{cls}{The S3 class to check for} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is an object which does \emph{not} inherit from \code{class}. +Otherwise, the input is returned invisibly. +} +\description{ +Checks if an argument is an object inheriting from the S3 class specified. +} +\examples{ +example_fun <- function(obj) { + assert_s3_class(obj, "factor") +} + +example_fun(as.factor(letters)) + +try(example_fun(letters)) + +try(example_fun(1:10)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_same_type.Rd b/man/assert_same_type.Rd new file mode 100644 index 0000000000..c928ed6f9e --- /dev/null +++ b/man/assert_same_type.Rd @@ -0,0 +1,74 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_same_type} +\alias{assert_same_type} +\title{Are All Argument of the Same Type?} +\usage{ +assert_same_type( + ..., + .message = c("Arguments {.arg {arg_names}} must be the same type.", i = + paste("Argument types are", paste0("{.arg ", arg_names, "} {.cls ", types, "}", + collapse = ", "))), + .class = "assert_same_type", + .call = parent.frame() +) +} +\arguments{ +\item{...}{Arguments to be checked} + +\item{.message}{character vector passed to \code{cli_abort(message)} when assertion fails.} + +\item{.class}{character vector passed to \code{cli_abort(class)} when assertion fails.} + +\item{.call}{environment passed to \code{cli_abort(call)} when assertion fails.} +} +\value{ +The function throws an error if not all arguments are of the same type. +} +\description{ +Checks if all arguments are of the same type. +} +\examples{ +example_fun <- function(true_value, false_value, missing_value) { + assert_same_type(true_value, false_value, missing_value) +} + +example_fun( + true_value = "Y", + false_value = "N", + missing_value = NA_character_ +) + +try(example_fun( + true_value = 1, + false_value = 0, + missing_value = "missing" +)) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_symbol.Rd b/man/assert_symbol.Rd new file mode 100644 index 0000000000..b6ebe3f50f --- /dev/null +++ b/man/assert_symbol.Rd @@ -0,0 +1,98 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_symbol} +\alias{assert_symbol} +\title{Is an Argument a Symbol?} +\usage{ +assert_symbol( + arg, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_symbol", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked. Must be a \code{symbol}. See examples.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a symbol and returns the input +invisibly otherwise. +} +\description{ +Checks if an argument is a symbol +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) +dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", +) +example_fun <- function(dat, var) { + var <- assert_symbol(enexpr(var)) + select(dat, !!var) +} + +example_fun(dm, USUBJID) + +try(example_fun(dm)) + +try(example_fun(dm, "USUBJID")) + +try(example_fun(dm, toupper(PARAMCD))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_unit.Rd b/man/assert_unit.Rd new file mode 100644 index 0000000000..e776795c01 --- /dev/null +++ b/man/assert_unit.Rd @@ -0,0 +1,95 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_unit} +\alias{assert_unit} +\title{Asserts That a Parameter is Provided in the Expected Unit} +\usage{ +assert_unit( + dataset, + param, + required_unit, + get_unit_expr, + arg_name = rlang::caller_arg(required_unit), + message = NULL, + class = "assert_unit", + call = parent.frame() +) +} +\arguments{ +\item{dataset}{A \code{data.frame}} + +\item{param}{Parameter code of the parameter to check} + +\item{required_unit}{Expected unit} + +\item{get_unit_expr}{Expression used to provide the unit of \code{param}} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if the unit variable differs from the +unit for any observation of the parameter in the input dataset. Otherwise, the +dataset is returned invisibly. +} +\description{ +Checks if a parameter (\code{PARAMCD}) in a dataset is provided in the expected +unit. +} +\examples{ +library(dplyr) + +advs <- tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 +) + +assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_vars}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_vars.Rd b/man/assert_vars.Rd new file mode 100644 index 0000000000..7be7ce9bec --- /dev/null +++ b/man/assert_vars.Rd @@ -0,0 +1,105 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_vars} +\alias{assert_vars} +\title{Is an Argument a List of Variables?} +\usage{ +assert_vars( + arg, + expect_names = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_vars", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{expect_names}{If the argument is set to \code{TRUE}, it is checked if all +variables are named, e.g., \code{exprs(APERSDT = APxxSDT, APEREDT = APxxEDT)}.} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a list of symbols (e.g., created +by \code{exprs()} and returns the input invisibly otherwise. +} +\description{ +Checks if an argument is a valid list of symbols (e.g., created by \code{exprs()}) +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) + +example_fun <- function(by_vars) { + assert_vars(by_vars) +} + +example_fun(exprs(USUBJID, PARAMCD)) + +try(example_fun(quos(USUBJID, PARAMCD))) + +try(example_fun(c("USUBJID", "PARAMCD", "VISIT"))) + +try(example_fun(exprs(USUBJID, toupper(PARAMCD), desc(AVAL)))) + +example_fun_name <- function(by_vars) { + assert_vars(by_vars, expect_names = TRUE) +} + +example_fun_name(exprs(APERSDT = APxxSDT, APEREDT = APxxEDT)) + +try(example_fun_name(exprs(APERSDT = APxxSDT, APxxEDT))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_varval_list}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/assert_varval_list.Rd b/man/assert_varval_list.Rd new file mode 100644 index 0000000000..1587a1ed09 --- /dev/null +++ b/man/assert_varval_list.Rd @@ -0,0 +1,100 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/assertions.R +\name{assert_varval_list} +\alias{assert_varval_list} +\title{Is an Argument a Variable-Value List?} +\usage{ +assert_varval_list( + arg, + required_elements = NULL, + accept_expr = TRUE, + accept_var = FALSE, + optional = FALSE, + arg_name = rlang::caller_arg(arg), + message = NULL, + class = "assert_varval_list", + call = parent.frame() +) +} +\arguments{ +\item{arg}{A function argument to be checked} + +\item{required_elements}{A \code{character} vector of names that must be present in \code{arg}} + +\item{accept_expr}{Should expressions on the right hand side be accepted?} + +\item{accept_var}{Should unnamed variable names (e.g. \code{exprs(USUBJID)}) on the +right hand side be accepted?} + +\item{optional}{Is the checked argument optional? If set to \code{FALSE} and \code{arg} +is \code{NULL} then an error is thrown.} + +\item{arg_name}{string indicating the label/symbol of the object being checked.} + +\item{message}{string passed to \code{cli::cli_abort(message)}. +When \code{NULL}, default messaging is used (see examples for default messages). +\code{"{arg_name}"} can be used in messaging.} + +\item{class}{Subclass of the condition.} + +\item{call}{The execution environment of a currently running +function, e.g. \code{call = caller_env()}. The corresponding function +call is retrieved and mentioned in error messages as the source +of the error. + +You only need to supply \code{call} when throwing a condition from a +helper function which wouldn't be relevant to mention in the +message. + +Can also be \code{NULL} or a \link[rlang:topic-defuse]{defused function call} to +respectively not display any call or hard-code a code to display. + +For more information about error calls, see \ifelse{html}{\link[rlang:topic-error-call]{Including function calls in error messages}}{\link[rlang:topic-error-call]{Including function calls in error messages}}.} +} +\value{ +The function throws an error if \code{arg} is not a list of variable-value expressions. +Otherwise, the input it returned invisibly. +} +\description{ +Checks if the argument is a list of expressions where the expressions are +variable-value pairs. The value can be a symbol, a string, a numeric, an +expression, or \code{NA}. +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) + +example_fun <- function(vars) { + assert_varval_list(vars) +} +example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ)) + +try(example_fun(exprs("AE", DTSEQ = AESEQ))) +} +\seealso{ +Other assertion: +\code{\link{assert_atomic_vector}()}, +\code{\link{assert_character_scalar}()}, +\code{\link{assert_character_vector}()}, +\code{\link{assert_data_frame}()}, +\code{\link{assert_date_vector}()}, +\code{\link{assert_expr}()}, +\code{\link{assert_expr_list}()}, +\code{\link{assert_filter_cond}()}, +\code{\link{assert_function}()}, +\code{\link{assert_integer_scalar}()}, +\code{\link{assert_list_element}()}, +\code{\link{assert_list_of}()}, +\code{\link{assert_logical_scalar}()}, +\code{\link{assert_named}()}, +\code{\link{assert_numeric_vector}()}, +\code{\link{assert_one_to_one}()}, +\code{\link{assert_param_does_not_exist}()}, +\code{\link{assert_s3_class}()}, +\code{\link{assert_same_type}()}, +\code{\link{assert_symbol}()}, +\code{\link{assert_unit}()}, +\code{\link{assert_vars}()} +} +\concept{assertion} +\keyword{assertion} diff --git a/man/backquote.Rd b/man/backquote.Rd new file mode 100644 index 0000000000..954cb46f99 --- /dev/null +++ b/man/backquote.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quote.R +\name{backquote} +\alias{backquote} +\title{Wrap a String in Backquotes} +\usage{ +backquote(x) +} +\arguments{ +\item{x}{A \code{character} vector} +} +\value{ +A \code{character} vector +} +\description{ +Wrap a String in Backquotes +} +\seealso{ +Other quote: +\code{\link{dquote}()}, +\code{\link{enumerate}()}, +\code{\link{squote}()} +} +\concept{quote} +\keyword{quote} diff --git a/man/call_derivation.Rd b/man/call_derivation.Rd index 79c795f5e9..8b5423e680 100644 --- a/man/call_derivation.Rd +++ b/man/call_derivation.Rd @@ -74,7 +74,7 @@ adae <- ae \%>\% derive_vars_merged( dataset_add = adsl, new_vars = exprs(TRTSDT, TRTEDT), - by_vars = exprs(USUBJID) + by_vars = get_admiral_option("subject_keys") ) ## While `derive_vars_dt()` can only add one variable at a time, using `call_derivation()` diff --git a/man/call_user_fun.Rd b/man/call_user_fun.Rd index 15ca6a66fc..8d6d0982b8 100644 --- a/man/call_user_fun.Rd +++ b/man/call_user_fun.Rd @@ -32,7 +32,8 @@ Utilities used within Derivation functions: \code{\link{extract_unit}()}, \code{\link{get_flagged_records}()}, \code{\link{get_not_mapped}()}, -\code{\link{get_vars_query}()} +\code{\link{get_vars_query}()}, +\code{\link{process_set_values_to}()} } \concept{utils_help} \keyword{utils_help} diff --git a/man/contains_vars.Rd b/man/contains_vars.Rd new file mode 100644 index 0000000000..d09652ce4d --- /dev/null +++ b/man/contains_vars.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{contains_vars} +\alias{contains_vars} +\title{check that argument contains valid variable(s) created with \code{exprs()} or +Source Variables from a List of Expressions} +\usage{ +contains_vars(arg) +} +\arguments{ +\item{arg}{A function argument to be checked} +} +\value{ +A \code{TRUE} if variables were valid variable +} +\description{ +check that argument contains valid variable(s) created with \code{exprs()} or +Source Variables from a List of Expressions +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/convert_dtm_to_dtc.Rd b/man/convert_dtm_to_dtc.Rd new file mode 100644 index 0000000000..65d9825bb0 --- /dev/null +++ b/man/convert_dtm_to_dtc.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{convert_dtm_to_dtc} +\alias{convert_dtm_to_dtc} +\title{Helper Function to Convert Date (or Date-time) Objects to Characters of dtc Format +(-DTC type of variable)} +\usage{ +convert_dtm_to_dtc(dtm) +} +\arguments{ +\item{dtm}{date or date-time} +} +\value{ +\code{character} vector +} +\description{ +Helper Function to Convert Date (or Date-time) Objects to Characters of dtc Format +(-DTC type of variable) +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/create_single_dose_dataset.Rd b/man/create_single_dose_dataset.Rd index a89b34fd83..c67fad5a02 100644 --- a/man/create_single_dose_dataset.Rd +++ b/man/create_single_dose_dataset.Rd @@ -14,8 +14,8 @@ create_single_dose_dataset( lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, nominal_time = NULL, - keep_source_vars = expr_c(exprs(USUBJID), dose_freq, start_date, start_datetime, - end_date, end_datetime) + keep_source_vars = expr_c(get_admiral_option("subject_keys"), dose_freq, start_date, + start_datetime, end_date, end_datetime) ) } \arguments{ @@ -233,7 +233,7 @@ adsl_death <- adsl \%>\% # Select valid dose records, non-missing `EXSTDTC` and `EXDOSE`. ex_mod <- ex \%>\% filter(!is.na(EXSTDTC) & !is.na(EXDOSE)) \%>\% - derive_vars_merged(adsl_death, by_vars = exprs(STUDYID, USUBJID)) \%>\% + derive_vars_merged(adsl_death, by_vars = get_admiral_option("subject_keys")) \%>\% # Example, set up missing `EXDOSFRQ` as QD daily dosing regime. # Replace with study dosing regime per trial treatment. mutate(EXDOSFRQ = if_else(is.na(EXDOSFRQ), "QD", EXDOSFRQ)) \%>\% @@ -261,7 +261,7 @@ ex_mod <- ex \%>\% # Select only unique values. # Removes duplicated records before final step. distinct( - STUDYID, USUBJID, EXTRT, EXDOSE, EXDOSFRQ, DCUTDT, DTHDT, EXSTDT, + !!!get_admiral_option("subject_keys"), EXTRT, EXDOSE, EXDOSFRQ, DCUTDT, DTHDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC ) @@ -271,10 +271,10 @@ create_single_dose_dataset( start_datetime = EXSTDTM, end_date = EXENDT, end_datetime = EXENDTM, - keep_source_vars = exprs( - STUDYID, USUBJID, EXTRT, EXDOSE, EXDOSFRQ, + keep_source_vars = c( + get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC - ) + )) ) } \seealso{ diff --git a/man/dataset_vignette.Rd b/man/dataset_vignette.Rd new file mode 100644 index 0000000000..cbaeb35b82 --- /dev/null +++ b/man/dataset_vignette.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataset_vignette.R +\name{dataset_vignette} +\alias{dataset_vignette} +\title{Output a Dataset in a Vignette in the admiral Format} +\usage{ +dataset_vignette(dataset, display_vars = NULL, filter = NULL) +} +\arguments{ +\item{dataset}{Dataset to output in the vignette} + +\item{display_vars}{Variables selected to demonstrate the outcome of the derivation + +Permitted Values: list of variables + +Default is NULL + +If \code{display_vars} is not NULL, only the selected variables are visible in the vignette while the +other variables are hidden. They can be made visible by clicking the\verb{Choose the columns to display} button.} + +\item{filter}{Filter condition + +The specified condition is applied to the dataset before it is displayed. + +Permitted Values: a condition} +} +\value{ +A HTML table +} +\description{ +Output a dataset in a vignette with the pre-specified admiral format. +} +\keyword{dev_utility} diff --git a/man/derive_extreme_event.Rd b/man/derive_extreme_event.Rd index 6ff37cc0ee..7d6fa91134 100644 --- a/man/derive_extreme_event.Rd +++ b/man/derive_extreme_event.Rd @@ -194,7 +194,7 @@ adqs <- tribble( # Add a new record for each USUBJID storing the the worst sleeping problem. derive_extreme_event( adqs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( condition = PARAMCD == "NO SLEEP" & AVALC == "Y", @@ -245,7 +245,7 @@ adhy <- tribble( derive_extreme_event( adhy, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( condition = is.na(CRIT1FL), @@ -316,13 +316,13 @@ adrs <- tribble( ) \%>\% derive_vars_merged( dataset_add = adsl, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDT) ) derive_extreme_event( adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADT), mode = "first", diff --git a/man/derive_extreme_records.Rd b/man/derive_extreme_records.Rd index 244f62bae8..de130ec62e 100644 --- a/man/derive_extreme_records.Rd +++ b/man/derive_extreme_records.Rd @@ -176,7 +176,7 @@ adlb <- tribble( derive_extreme_records( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVAL, AVISITN), mode = "first", filter_add = !is.na(AVAL), @@ -193,7 +193,7 @@ derive_extreme_records( derive_extreme_records( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(desc(AVAL), AVISITN), mode = "first", filter_add = !is.na(AVAL), @@ -208,7 +208,7 @@ derive_extreme_records( derive_extreme_records( adlb, dataset_add = adlb, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), mode = "last", set_values_to = exprs( @@ -249,7 +249,7 @@ derive_extreme_records( adrs, dataset_ref = adsl, dataset_add = adrs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = PARAMCD == "OVR" & AVALC == "PD", order = exprs(ADT), exist_flag = AVALC, @@ -269,7 +269,7 @@ derive_extreme_records( derive_extreme_records( dataset_ref = adsl, dataset_add = adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = !is.na(DTHDT), exist_flag = AVALC, true_value = "Y", diff --git a/man/derive_locf_records.Rd b/man/derive_locf_records.Rd index 7cd24fcad8..c0cf58d47d 100644 --- a/man/derive_locf_records.Rd +++ b/man/derive_locf_records.Rd @@ -119,7 +119,7 @@ advs_expected_obsv <- tribble( derive_locf_records( dataset = advs, dataset_ref = advs_expected_obsv, - by_vars = exprs(STUDYID, USUBJID, PARAMCD), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), order = exprs(AVISITN, AVISIT), keep_vars = exprs(PARAMN) ) diff --git a/man/derive_param_bmi.Rd b/man/derive_param_bmi.Rd index 2b691210b1..5351c359d0 100644 --- a/man/derive_param_bmi.Rd +++ b/man/derive_param_bmi.Rd @@ -124,7 +124,7 @@ derive_param_bmi( PARAM = "Body Mass Index (kg/m^2)" ), get_unit_expr = extract_unit(PARAM), - constant_by_vars = exprs(USUBJID) + constant_by_vars = get_admiral_option("subject_keys") ) # Example 2: Derive BMI where height is measured only once and keep only one record diff --git a/man/derive_param_bsa.Rd b/man/derive_param_bsa.Rd index be6953200e..242a5b20e3 100644 --- a/man/derive_param_bsa.Rd +++ b/man/derive_param_bsa.Rd @@ -139,7 +139,7 @@ derive_param_bsa( PARAM = "Body Surface Area (m^2)" ), get_unit_expr = extract_unit(PARAM), - constant_by_vars = exprs(USUBJID) + constant_by_vars = get_admiral_option("subject_keys") ) derive_param_bsa( @@ -151,7 +151,7 @@ derive_param_bsa( PARAM = "Body Surface Area (m^2)" ), get_unit_expr = extract_unit(PARAM), - constant_by_vars = exprs(USUBJID) + constant_by_vars = get_admiral_option("subject_keys") ) # Example 2: Derive BSA where height is measured only once and keep only one record diff --git a/man/derive_param_computed.Rd b/man/derive_param_computed.Rd index ded4df2773..f5537cc7a5 100644 --- a/man/derive_param_computed.Rd +++ b/man/derive_param_computed.Rd @@ -233,7 +233,7 @@ derive_param_computed( AVALU = "kg/m^2" ), constant_parameters = c("HEIGHT"), - constant_by_vars = exprs(USUBJID) + constant_by_vars = get_admiral_option("subject_keys") ) # Example 3: Using data from an additional dataset and other variables than AVAL @@ -289,7 +289,7 @@ adlb_tbilialk <- tribble( derive_param_computed( dataset_add = adlb_tbilialk, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), parameters = c("ALK2", "TBILI2"), set_values_to = exprs( AVALC = if_else(AVALC.TBILI2 == "Y" & AVALC.ALK2 == "Y", "Y", "N"), diff --git a/man/derive_param_exposure.Rd b/man/derive_param_exposure.Rd index a92e2c93c2..eced4ff971 100644 --- a/man/derive_param_exposure.Rd +++ b/man/derive_param_exposure.Rd @@ -144,7 +144,7 @@ adex <- tribble( adex \%>\% derive_param_exposure( dataset_add = adex, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), set_values_to = exprs( PARAMCD = "TDOSE", PARCAT1 = "OVERALL", @@ -158,7 +158,7 @@ adex \%>\% adex \%>\% derive_param_exposure( dataset_add = adex, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = VISIT \%in\% c("WEEK 2", "WEEK 24"), set_values_to = exprs( PARAMCD = "AVDW224", @@ -173,7 +173,7 @@ adex \%>\% adex \%>\% derive_param_exposure( dataset_add = adex, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), set_values_to = exprs( PARAMCD = "TADJ", PARCAT1 = "OVERALL", diff --git a/man/derive_param_extreme_record.Rd b/man/derive_param_extreme_record.Rd index d64cc94d98..e48f891192 100644 --- a/man/derive_param_extreme_record.Rd +++ b/man/derive_param_extreme_record.Rd @@ -135,7 +135,7 @@ derive_param_extreme_record( ) ), source_datasets = list(cm = cm, pr = pr), - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADT), mode = "first", set_values_to = exprs( diff --git a/man/derive_var_extreme_flag.Rd b/man/derive_var_extreme_flag.Rd index 7deac86681..a5f3085b08 100644 --- a/man/derive_var_extreme_flag.Rd +++ b/man/derive_var_extreme_flag.Rd @@ -222,7 +222,7 @@ example_ae \%>\% ) \%>\% derive_var_extreme_flag( new_var = AOCCIFL, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(TEMP_AESEVN, AESTDY, AESEQ), mode = "first" ) \%>\% @@ -237,7 +237,7 @@ example_ae \%>\% ) \%>\% derive_var_extreme_flag( new_var = AOCCIFL, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(TEMP_AESEVN, AESTDY), mode = "first", flag_all = TRUE diff --git a/man/derive_var_joined_exist_flag.Rd b/man/derive_var_joined_exist_flag.Rd index 68afcaf1d4..50a2e0488b 100644 --- a/man/derive_var_joined_exist_flag.Rd +++ b/man/derive_var_joined_exist_flag.Rd @@ -303,7 +303,7 @@ derive_var_joined_exist_flag( adae, dataset_add = adae, new_var = ALCOVFL, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(ACOVFL, ADY), join_type = "all", order = exprs(ADY), @@ -327,7 +327,7 @@ data <- tribble( derive_var_joined_exist_flag( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), new_var = CONFFL, join_vars = exprs(AVALC, AVISITN), join_type = "after", @@ -358,7 +358,7 @@ data <- tribble( derive_var_joined_exist_flag( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(AVALC), join_type = "after", order = exprs(AVISITN), @@ -392,7 +392,7 @@ data <- tribble( derive_var_joined_exist_flag( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(AVALC, ADY), join_type = "after", order = exprs(ADY), @@ -426,7 +426,7 @@ data <- tribble( derive_var_joined_exist_flag( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), new_var = CONFFL, tmp_obs_nr_var = tmp_obs_nr, join_vars = exprs(CRIT1FL), diff --git a/man/derive_var_merged_ef_msrc.Rd b/man/derive_var_merged_ef_msrc.Rd index 538921116d..a6f99224f9 100644 --- a/man/derive_var_merged_ef_msrc.Rd +++ b/man/derive_var_merged_ef_msrc.Rd @@ -125,7 +125,7 @@ pr <- tibble::tribble( derive_var_merged_ef_msrc( adsl, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), flag_events = list( flag_event( dataset_name = "cm", diff --git a/man/derive_var_merged_exist_flag.Rd b/man/derive_var_merged_exist_flag.Rd index 70a3071677..2d62ca2983 100644 --- a/man/derive_var_merged_exist_flag.Rd +++ b/man/derive_var_merged_exist_flag.Rd @@ -111,11 +111,11 @@ ae <- tribble( derive_var_merged_exist_flag( dm, dataset_add = ae, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_var = AERELFL, condition = AEREL == "PROBABLE" ) \%>\% - select(STUDYID, USUBJID, AGE, AGEU, AERELFL) + select(!!!get_admiral_option("subject_keys"), AGE, AGEU, AERELFL) vs <- tribble( ~STUDYID, ~DOMAIN, ~USUBJID, ~VISIT, ~VSTESTCD, ~VSSTRESN, ~VSBLFL, @@ -135,14 +135,14 @@ vs <- tribble( derive_var_merged_exist_flag( dm, dataset_add = vs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", new_var = WTBLHIFL, condition = VSSTRESN > 90, false_value = "N", missing_value = "M" ) \%>\% - select(STUDYID, USUBJID, AGE, AGEU, WTBLHIFL) + select(!!!get_admiral_option("subject_keys"), AGE, AGEU, WTBLHIFL) } \seealso{ General Derivation Functions for all ADaMs that returns variable appended to dataset: diff --git a/man/derive_var_merged_summary.Rd b/man/derive_var_merged_summary.Rd index fd50515c21..c15ada7006 100644 --- a/man/derive_var_merged_summary.Rd +++ b/man/derive_var_merged_summary.Rd @@ -169,7 +169,7 @@ adtr <- tribble( derive_var_merged_summary( adsl, dataset_add = adtr, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = AVISIT == "BASELINE", new_vars = exprs(LESIONSBL = paste(LESIONID, collapse = ", ")) ) diff --git a/man/derive_var_relative_flag.Rd b/man/derive_var_relative_flag.Rd index 4fc22c0565..372687e134 100644 --- a/man/derive_var_relative_flag.Rd +++ b/man/derive_var_relative_flag.Rd @@ -114,7 +114,7 @@ adae <- tribble( derive_var_relative_flag( adae, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(ASTDY, AESEQ), new_var = PSTCOVFL, condition = ACOVFL == "Y", @@ -145,7 +145,7 @@ response <- tribble( # Flag observations up to first PD for each patient response \%>\% derive_var_relative_flag( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), new_var = ANL02FL, condition = AVALC == "PD", @@ -159,7 +159,7 @@ response \%>\% restrict_derivation( derivation = derive_var_relative_flag, args = params( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), new_var = ANL02FL, condition = AVALC == "PD", diff --git a/man/derive_vars_computed.Rd b/man/derive_vars_computed.Rd index 205f804d78..6a01547307 100644 --- a/man/derive_vars_computed.Rd +++ b/man/derive_vars_computed.Rd @@ -158,7 +158,7 @@ advs <- tribble( derive_vars_computed( dataset = adsl, dataset_add = advs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), parameters = c("WEIGHT", "HEIGHT"), new_vars = exprs(BMIBL = compute_bmi(height = AVAL.HEIGHT, weight = AVAL.WEIGHT)), filter_add = ABLFL == "Y" diff --git a/man/derive_vars_extreme_event.Rd b/man/derive_vars_extreme_event.Rd index 4b512f8605..e6fb293367 100644 --- a/man/derive_vars_extreme_event.Rd +++ b/man/derive_vars_extreme_event.Rd @@ -154,7 +154,7 @@ lb <- tribble( derive_vars_extreme_event( adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "adsl", @@ -206,7 +206,7 @@ ds <- tribble( derive_vars_extreme_event( adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "ae", diff --git a/man/derive_vars_joined.Rd b/man/derive_vars_joined.Rd index 2730270870..b73ff3ed41 100644 --- a/man/derive_vars_joined.Rd +++ b/man/derive_vars_joined.Rd @@ -333,7 +333,7 @@ adbds <- tribble( derive_vars_joined( adbds, dataset_add = adbds, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVAL), new_vars = exprs(NADIR = AVAL), join_vars = exprs(ADY), @@ -368,7 +368,7 @@ adlb <- tribble( derive_vars_joined( adae, dataset_add = adlb, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVAL, desc(ADY)), new_vars = exprs(HGB_MAX = AVAL, HGB_DY = ADY), join_type = "all", @@ -410,7 +410,7 @@ adae <- tribble( derive_vars_joined( adae, dataset_add = period_ref, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(APERSDT, APEREDT), join_type = "all", filter_join = APERSDT <= ASTDT & ASTDT <= APEREDT @@ -437,7 +437,7 @@ ex <- tribble( derive_vars_joined( adae, dataset_add = ex, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(EXSDT = convert_dtc_to_dt(EXSDTC)), join_type = "all", new_vars = exprs(LDRELD = compute_duration( diff --git a/man/derive_vars_merged.Rd b/man/derive_vars_merged.Rd index 12cc49376b..626bcdc04e 100644 --- a/man/derive_vars_merged.Rd +++ b/man/derive_vars_merged.Rd @@ -226,9 +226,9 @@ dm <- tribble( derive_vars_merged( vs, dataset_add = select(dm, -DOMAIN), - by_vars = exprs(STUDYID, USUBJID) + by_vars = get_admiral_option("subject_keys") ) \%>\% - select(STUDYID, USUBJID, VSTESTCD, VISIT, VSSTRESN, AGE, AGEU) + select(!!!get_admiral_option("subject_keys"), VSTESTCD, VISIT, VSSTRESN, AGE, AGEU) # Merge last weight to adsl @@ -242,14 +242,14 @@ adsl <- tribble( derive_vars_merged( adsl, dataset_add = vs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(convert_dtc_to_dtm(VSDTC)), mode = "last", new_vars = exprs(LASTWGT = VSSTRESN, LASTWGTU = VSSTRESU), filter_add = VSTESTCD == "WEIGHT", exist_flag = vsdatafl ) \%>\% - select(STUDYID, USUBJID, AGE, AGEU, LASTWGT, LASTWGTU, vsdatafl) + select(!!!get_admiral_option("subject_keys"), AGE, AGEU, LASTWGT, LASTWGTU, vsdatafl) # Derive treatment start datetime (TRTSDTM) @@ -271,7 +271,7 @@ ex_ext <- derive_vars_dtm( derive_vars_merged( select(dm, STUDYID, USUBJID), dataset_add = ex_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDTM = EXSTDTM, TRTSDTF = EXSTDTF, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM), mode = "first" @@ -290,7 +290,7 @@ derive_vars_merged( select(adsl, STUDYID, USUBJID), dataset_add = ex_ext, filter_add = !is.na(EXENDTM), - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTEDTM = EXENDTM, TRTETMF = EXENTMF), order = exprs(EXENDTM), mode = "last" @@ -316,7 +316,7 @@ advs <- tribble( derive_vars_merged( adsl, dataset_add = advs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs( LSTVSCAT = if_else(AVISIT == "BASELINE", "BASELINE", "POST-BASELINE") ), diff --git a/man/derive_vars_period.Rd b/man/derive_vars_period.Rd index d5297e7774..3b4d06ca5c 100644 --- a/man/derive_vars_period.Rd +++ b/man/derive_vars_period.Rd @@ -88,7 +88,7 @@ derive_vars_period( dataset_ref = period_ref, new_vars = exprs(APxxSDT = APERSDT, APxxEDT = APEREDT) ) \%>\% - select(STUDYID, USUBJID, AP01SDT, AP01EDT, AP02SDT, AP02EDT) + select(!!!get_admiral_option("subject_keys"), AP01SDT, AP01EDT, AP02SDT, AP02EDT) # Add phase variables to ADSL phase_ref <- tribble( @@ -108,7 +108,7 @@ derive_vars_period( dataset_ref = phase_ref, new_vars = exprs(PHwSDT = PHSDT, PHwEDT = PHEDT, APHASEw = APHASE) ) \%>\% - select(STUDYID, USUBJID, PH1SDT, PH1EDT, PH2SDT, PH2EDT, APHASE1, APHASE2) + select(!!!get_admiral_option("subject_keys"), PH1SDT, PH1EDT, PH2SDT, PH2EDT, APHASE1, APHASE2) # Add subperiod variables to ADSL subperiod_ref <- tribble( @@ -131,7 +131,8 @@ derive_vars_period( dataset_ref = subperiod_ref, new_vars = exprs(PxxSwSDT = ASPRSDT, PxxSwEDT = ASPREDT) ) \%>\% - select(STUDYID, USUBJID, P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, P02S1SDT, P02S1EDT) + select(!!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, + P02S1SDT, P02S1EDT) } \seealso{ \code{\link[=create_period_dataset]{create_period_dataset()}} diff --git a/man/dquote.Rd b/man/dquote.Rd new file mode 100644 index 0000000000..6b4ec999f6 --- /dev/null +++ b/man/dquote.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quote.R +\name{dquote} +\alias{dquote} +\title{Wrap a String in Double Quotes} +\usage{ +dquote(x) +} +\arguments{ +\item{x}{A character vector} +} +\value{ +If the input is \code{NULL}, the text \code{"NULL"} is returned. Otherwise, the +input in double quotes is returned. +} +\description{ +Wrap a string in double quotes, e.g., for displaying character values in +messages. +} +\seealso{ +Other quote: +\code{\link{backquote}()}, +\code{\link{enumerate}()}, +\code{\link{squote}()} +} +\concept{quote} +\keyword{quote} diff --git a/man/enumerate.Rd b/man/enumerate.Rd new file mode 100644 index 0000000000..f746084225 --- /dev/null +++ b/man/enumerate.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quote.R +\name{enumerate} +\alias{enumerate} +\title{Enumerate Multiple Elements} +\usage{ +enumerate(x) +} +\arguments{ +\item{x}{A vector or list} + +\item{quote_fun}{Quoting function, defaults to \code{backquote}. If set to \code{NULL}, +the elements are not quoted.} + +\item{conjunction}{Character to be used in the message, defaults to \code{"and"}.} +} +\value{ +A \code{character} vector +} +\description{ +Enumerate multiple elements of a vector or list. +} +\examples{ +enumerate(c("one", "two", "three")) + +enumerate(c(1, 2, 3), quote_fun = NULL) + +} +\seealso{ +Other quote: +\code{\link{backquote}()}, +\code{\link{dquote}()}, +\code{\link{squote}()} +} +\concept{quote} +\keyword{quote} diff --git a/man/event_joined.Rd b/man/event_joined.Rd index c01958b8fd..46fe91b3d9 100644 --- a/man/event_joined.Rd +++ b/man/event_joined.Rd @@ -196,13 +196,13 @@ adrs <- tribble( ) \%>\% derive_vars_merged( dataset_add = adsl, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDT) ) derive_extreme_event( adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADT), mode = "first", source_datasets = list(adsl = adsl), diff --git a/man/expect_dfs_equal.Rd b/man/expect_dfs_equal.Rd new file mode 100644 index 0000000000..ae24211d73 --- /dev/null +++ b/man/expect_dfs_equal.Rd @@ -0,0 +1,59 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/expect_dfs_equal.R +\name{expect_dfs_equal} +\alias{expect_dfs_equal} +\title{Expectation: Are Two Datasets Equal?} +\usage{ +expect_dfs_equal(base, compare, keys, ...) +} +\arguments{ +\item{base}{Input dataset} + +\item{compare}{Comparison dataset} + +\item{keys}{\code{character} vector of variables that define a unique row in the +\code{base} and \code{compare} datasets} + +\item{...}{Additional arguments passed onto \code{\link[diffdf:diffdf]{diffdf::diffdf()}}} +} +\value{ +An error if \code{base} and \code{compare} do not match or \code{NULL} invisibly if they do +} +\description{ +Uses \code{\link[diffdf:diffdf]{diffdf::diffdf()}} to compares 2 datasets for any differences. This function can be +thought of as an R-equivalent of SAS proc compare and a useful tool for unit testing as well. +} +\examples{ +library(dplyr, warn.conflicts = FALSE) + +tbl1 <- tribble( + ~USUBJID, ~AGE, ~SEX, + "1001", 18, "M", + "1002", 19, "F", + "1003", 20, "M", + "1004", 18, "F" +) + +tbl2 <- tribble( + ~USUBJID, ~AGE, ~SEX, + "1001", 18, "M", + "1002", 18.9, "F", + "1003", 20, NA +) + +try(expect_dfs_equal(tbl1, tbl2, keys = "USUBJID")) + +tlb3 <- tribble( + ~USUBJID, ~AGE, ~SEX, + "1004", 18, "F", + "1003", 20, "M", + "1002", 19, "F", + "1001", 18, "M", +) + +# Note the sorting order of the keys is not required +expect_dfs_equal(tbl1, tlb3, keys = "USUBJID") + +} +\concept{test_helper} +\keyword{test_helper} diff --git a/man/expr_c.Rd b/man/expr_c.Rd new file mode 100644 index 0000000000..f8ce3cc5f5 --- /dev/null +++ b/man/expr_c.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quo.R +\name{expr_c} +\alias{expr_c} +\title{Concatenate One or More Expressions} +\usage{ +expr_c(...) +} +\arguments{ +\item{...}{One or more expressions or list of expressions} +} +\value{ +A list of expressions +} +\description{ +Concatenate One or More Expressions +} +\seealso{ +Other quo: +\code{\link{add_suffix_to_vars}()}, +\code{\link{replace_symbol_in_expr}()}, +\code{\link{replace_values_by_names}()} +} +\concept{quo} +\keyword{quo} diff --git a/man/extract_duplicate_records.Rd b/man/extract_duplicate_records.Rd index 816990253c..5458dfdaa2 100644 --- a/man/extract_duplicate_records.Rd +++ b/man/extract_duplicate_records.Rd @@ -30,7 +30,7 @@ data(admiral_adsl) # Duplicate the first record adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) -extract_duplicate_records(adsl, exprs(USUBJID)) +extract_duplicate_records(adsl, get_admiral_option("subject_keys")) } \seealso{ Other internal: diff --git a/man/extract_unit.Rd b/man/extract_unit.Rd index de01106eee..9d3a8c411e 100644 --- a/man/extract_unit.Rd +++ b/man/extract_unit.Rd @@ -25,7 +25,8 @@ Utilities used within Derivation functions: \code{\link{call_user_fun}()}, \code{\link{get_flagged_records}()}, \code{\link{get_not_mapped}()}, -\code{\link{get_vars_query}()} +\code{\link{get_vars_query}()}, +\code{\link{process_set_values_to}()} } \concept{utils_help} \keyword{utils_help} diff --git a/man/extract_vars.Rd b/man/extract_vars.Rd new file mode 100644 index 0000000000..08b6160640 --- /dev/null +++ b/man/extract_vars.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{extract_vars} +\alias{extract_vars} +\title{Extract All Symbols from a List of Expressions} +\usage{ +extract_vars(x, side = "lhs") +} +\arguments{ +\item{x}{An \code{R} object} + +\item{side}{One of \code{"lhs"} (the default) or \code{"rhs"} for formulas} +} +\value{ +A list of expressions +} +\description{ +Extract All Symbols from a List of Expressions +} +\examples{ +library(rlang) +extract_vars(exprs(PARAMCD, (BASE - AVAL) / BASE + 100)) +extract_vars(AVAL ~ ARMCD + AGEGR1) +extract_vars(AVAL ~ ARMCD + AGEGR1, side = "rhs") +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/figures/admiral_contribution_model.png b/man/figures/admiral_contribution_model.png new file mode 100644 index 0000000000000000000000000000000000000000..b6034b166456d3e8108213cac0ede70377155b7a GIT binary patch literal 167331 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

GvaJ`|7bKD%4kQm&-$ZP>{O4VlPZ>Nd&#_nYjHt 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�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

@Q3jTQC)AI;N3*mm`RH2s~9L^$;PSPo5l7h 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 literal 0 HcmV?d00001 diff --git a/man/filter_exist.Rd b/man/filter_exist.Rd index 25928160b1..b9e6e65d54 100644 --- a/man/filter_exist.Rd +++ b/man/filter_exist.Rd @@ -74,7 +74,7 @@ adae <- tribble( filter_exist( dataset = adsl, dataset_add = adae, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = AEDECOD == "FATIGUE" & AESEV \%in\% c("MODERATE", "SEVERE") ) diff --git a/man/filter_extreme.Rd b/man/filter_extreme.Rd index 6f1fa61300..d452827bb8 100644 --- a/man/filter_extreme.Rd +++ b/man/filter_extreme.Rd @@ -86,7 +86,7 @@ ex <- tribble( # Select first dose for each patient ex \%>\% filter_extreme( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(EXSEQ), mode = "first" ) \%>\% @@ -96,7 +96,7 @@ ex \%>\% ex \%>\% filter(EXTRT != "PLACEBO") \%>\% filter_extreme( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(EXDOSE), mode = "last", check_type = "none" diff --git a/man/filter_if.Rd b/man/filter_if.Rd new file mode 100644 index 0000000000..4567b24480 --- /dev/null +++ b/man/filter_if.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{filter_if} +\alias{filter_if} +\title{Optional Filter} +\usage{ +filter_if(dataset, filter) +} +\arguments{ +\item{dataset}{Input dataset} + +\item{filter}{A filter condition. Must be an expression.} +} +\value{ +A \code{data.frame} containing all rows in \code{dataset} matching \code{filter} or +just \code{dataset} if \code{filter} is \code{NULL} +} +\description{ +Filters the input dataset if the provided expression is not \code{NULL} +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/filter_joined.Rd b/man/filter_joined.Rd index 13cdce5168..fbaddf1b99 100644 --- a/man/filter_joined.Rd +++ b/man/filter_joined.Rd @@ -290,7 +290,7 @@ adae <- tribble( filter_joined( adae, dataset_add = adae, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(ACOVFL, ADY), join_type = "all", order = exprs(ADY), @@ -314,7 +314,7 @@ data <- tribble( filter_joined( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(AVALC, AVISITN), join_type = "after", order = exprs(AVISITN), @@ -344,7 +344,7 @@ data <- tribble( filter_joined( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(AVALC), join_type = "after", order = exprs(AVISITN), @@ -377,7 +377,7 @@ data <- tribble( filter_joined( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), join_vars = exprs(AVALC, ADY), join_type = "after", order = exprs(ADY), @@ -410,7 +410,7 @@ data <- tribble( filter_joined( data, dataset_add = data, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), tmp_obs_nr_var = tmp_obs_nr, join_vars = exprs(CRIT1FL), join_type = "all", diff --git a/man/filter_not_exist.Rd b/man/filter_not_exist.Rd index 4d6ded6c51..1a8b479f70 100644 --- a/man/filter_not_exist.Rd +++ b/man/filter_not_exist.Rd @@ -75,7 +75,7 @@ adcm <- tribble( filter_not_exist( dataset = adsl, dataset_add = adcm, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = str_detect(CMTRT, "VITAMIN") ) diff --git a/man/filter_relative.Rd b/man/filter_relative.Rd index 0f27d52cf2..5fc1ea2986 100644 --- a/man/filter_relative.Rd +++ b/man/filter_relative.Rd @@ -114,7 +114,7 @@ response <- tribble( # Select observations up to first PD for each patient response \%>\% filter_relative( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), condition = AVALC == "PD", mode = "first", @@ -125,7 +125,7 @@ response \%>\% # Select observations after last CR, PR, or SD for each patient response \%>\% filter_relative( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), condition = AVALC \%in\% c("CR", "PR", "SD"), mode = "last", @@ -136,7 +136,7 @@ response \%>\% # Select observations from first response to first PD response \%>\% filter_relative( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), condition = AVALC \%in\% c("CR", "PR"), mode = "first", @@ -145,7 +145,7 @@ response \%>\% keep_no_ref_groups = FALSE ) \%>\% filter_relative( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), condition = AVALC == "PD", mode = "first", diff --git a/man/friendly_type_of.Rd b/man/friendly_type_of.Rd new file mode 100644 index 0000000000..f88d630757 --- /dev/null +++ b/man/friendly_type_of.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/compat_friendly_type.R +\name{friendly_type_of} +\alias{friendly_type_of} +\title{Return English-friendly messaging for object-types} +\usage{ +friendly_type_of(x, value = TRUE, length = FALSE) +} +\arguments{ +\item{x}{Any R object.} + +\item{value}{Whether to describe the value of \code{x}.} + +\item{length}{Whether to mention the length of vectors and lists.} +} +\value{ +A string describing the type. Starts with an indefinite +article, e.g. "an integer vector". +} +\description{ +Return English-friendly messaging for object-types +} +\details{ +This helper function aids us in forming user-friendly messages that gets +called through \code{what_is_it()}, which is often used in the assertion functions +to identify what object-type the user passed through an argument instead of +an expected-type. +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/get_constant_vars.Rd b/man/get_constant_vars.Rd new file mode 100644 index 0000000000..1a4c58c73c --- /dev/null +++ b/man/get_constant_vars.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get.R +\name{get_constant_vars} +\alias{get_constant_vars} +\title{Get Constant Variables} +\usage{ +get_constant_vars(dataset, by_vars, ignore_vars = NULL) +} +\arguments{ +\item{dataset}{A data frame.} + +\item{by_vars}{By variables +The groups defined by the by variables are considered separately. I.e., if +a variable is constant within each by group, it is returned.} + +\item{ignore_vars}{Variables to ignore +The specified variables are not considered, i.e., they are not returned +even if they are constant (unless they are included in the by variables). + +\emph{Permitted Values:} A list of variable names or selector function calls +like \code{starts_with("EX")}} +} +\value{ +Variable vector. +} +\description{ +Get Constant Variables +} +\seealso{ +Other get: +\code{\link{get_dataset}()}, +\code{\link{get_duplicates}()}, +\code{\link{get_source_vars}()} +} +\concept{get} +\keyword{get} diff --git a/man/get_dataset.Rd b/man/get_dataset.Rd new file mode 100644 index 0000000000..81a146ae14 --- /dev/null +++ b/man/get_dataset.Rd @@ -0,0 +1,45 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get.R +\name{get_dataset} +\alias{get_dataset} +\title{Retrieve a Dataset from the \code{admiraldev_environment} environment} +\usage{ +get_dataset(name) +} +\arguments{ +\item{name}{The name of the dataset to retrieve} +} +\value{ +A \code{data.frame} +} +\description{ +Retrieve a Dataset from the \code{admiraldev_environment} environment +} +\details{ +Sometimes, developers may want to provide information to users which does not fit into a +warning or error message. For example, if the input dataset of a function contains unexpected +records, these can be stored in a separate dataset, which users can access to investigate +the issue. + +To achieve this, R has a data structure known as an 'environment'. These environment objects +are created at build time, but can be populated with values after the package has been loaded +and update those values over the course of an R session. + +As so, the establishment of \code{admiraldev_environment} allows us to create dynamic data/objects +based on user-inputs that need modification. The purpose of \code{get_dataset} is to +retrieve the datasets contained inside \code{admiraldev_environment}. + +Currently we only support two datasets inside our \code{admiraldev_environment} object: +\itemize{ +\item \code{one_to_many} +\item \code{many_to_one} +} +} +\seealso{ +Other get: +\code{\link{get_constant_vars}()}, +\code{\link{get_duplicates}()}, +\code{\link{get_source_vars}()} +} +\concept{get} +\keyword{get} diff --git a/man/get_duplicates.Rd b/man/get_duplicates.Rd new file mode 100644 index 0000000000..e9b5db0de6 --- /dev/null +++ b/man/get_duplicates.Rd @@ -0,0 +1,30 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get.R +\name{get_duplicates} +\alias{get_duplicates} +\title{Get Duplicates From a Vector} +\usage{ +get_duplicates(x) +} +\arguments{ +\item{x}{An atomic vector} +} +\value{ +A vector of the same type as \code{x} contain duplicate values +} +\description{ +Get Duplicates From a Vector +} +\examples{ +get_duplicates(1:10) + +get_duplicates(c("a", "a", "b", "c", "d", "d")) +} +\seealso{ +Other get: +\code{\link{get_constant_vars}()}, +\code{\link{get_dataset}()}, +\code{\link{get_source_vars}()} +} +\concept{get} +\keyword{get} diff --git a/man/get_duplicates_dataset.Rd b/man/get_duplicates_dataset.Rd index cad6a7b71e..be17e983ca 100644 --- a/man/get_duplicates_dataset.Rd +++ b/man/get_duplicates_dataset.Rd @@ -29,7 +29,7 @@ data(admiral_adsl) # Duplicate the first record adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) -signal_duplicate_records(adsl, exprs(USUBJID), cnd_type = "warning") +signal_duplicate_records(adsl, get_admiral_option("subject_keys"), cnd_type = "warning") get_duplicates_dataset() } diff --git a/man/get_flagged_records.Rd b/man/get_flagged_records.Rd index 984576aa85..484a732d08 100644 --- a/man/get_flagged_records.Rd +++ b/man/get_flagged_records.Rd @@ -58,7 +58,7 @@ get_flagged_records( new_var = AERELFL, condition = AEREL == "PROBABLE" ) \%>\% - select(STUDYID, USUBJID, AERELFL) + select(!!!get_admiral_option("subject_keys"), AERELFL) vs <- tribble( ~STUDYID, ~DOMAIN, ~USUBJID, ~VISIT, ~VSTESTCD, ~VSSTRESN, ~VSBLFL, @@ -81,7 +81,7 @@ get_flagged_records( condition = VSSTRESN > 90, filter = VSTESTCD == "WEIGHT" & VSBLFL == "Y" ) \%>\% - select(STUDYID, USUBJID, WTBLHIFL) + select(!!!get_admiral_option("subject_keys"), WTBLHIFL) } \seealso{ @@ -89,7 +89,8 @@ Utilities used within Derivation functions: \code{\link{call_user_fun}()}, \code{\link{extract_unit}()}, \code{\link{get_not_mapped}()}, -\code{\link{get_vars_query}()} +\code{\link{get_vars_query}()}, +\code{\link{process_set_values_to}()} } \concept{utils_help} \keyword{utils_help} diff --git a/man/get_new_tmp_var.Rd b/man/get_new_tmp_var.Rd new file mode 100644 index 0000000000..2de034536a --- /dev/null +++ b/man/get_new_tmp_var.Rd @@ -0,0 +1,41 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/tmp_vars.R +\name{get_new_tmp_var} +\alias{get_new_tmp_var} +\title{Get a New Temporary Variable Name for a Dataset} +\usage{ +get_new_tmp_var(dataset, prefix = "tmp_var") +} +\arguments{ +\item{dataset}{The input dataset} + +\item{prefix}{The prefix of the new temporary variable name to create} +} +\value{ +The name of a new temporary variable as a symbol +} +\description{ +Get a New Temporary Variable Name for a Dataset +} +\details{ +The function returns a new unique temporary variable name to be used inside +\code{dataset}. The temporary variable names have the structure \code{prefix_n} where +\code{n} is an integer, e.g. \code{tmp_var_1}. If there is already a variable inside +\code{datset} with a given \code{prefix} then the suffix is increased by 1, e.g. if +\code{tmp_var_1} already exists then \code{get_new_tmp_var()} will return \code{tmp_var_2}. +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +dm <- tribble( + ~DOMAIN, ~STUDYID, ~USUBJID, + "DM", "STUDY X", "01-701-1015", + "DM", "STUDY X", "01-701-1016", +) + +tmp_var <- get_new_tmp_var(dm) +mutate(dm, !!tmp_var := NA) +} +\seealso{ +\code{\link[=remove_tmp_vars]{remove_tmp_vars()}} +} +\keyword{tmp_vars} diff --git a/man/get_not_mapped.Rd b/man/get_not_mapped.Rd index 0150a48b9a..4a8f602b67 100644 --- a/man/get_not_mapped.Rd +++ b/man/get_not_mapped.Rd @@ -17,7 +17,8 @@ Utilities used within Derivation functions: \code{\link{call_user_fun}()}, \code{\link{extract_unit}()}, \code{\link{get_flagged_records}()}, -\code{\link{get_vars_query}()} +\code{\link{get_vars_query}()}, +\code{\link{process_set_values_to}()} } \concept{utils_help} \keyword{utils_help} diff --git a/man/get_source_vars.Rd b/man/get_source_vars.Rd new file mode 100644 index 0000000000..4761825aa2 --- /dev/null +++ b/man/get_source_vars.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get.R +\name{get_source_vars} +\alias{get_source_vars} +\title{Get Source Variables from a List of Expressions} +\usage{ +get_source_vars(expressions, quosures) +} +\arguments{ +\item{expressions}{A list of expressions} + +\item{quosures}{\emph{Deprecated}, please use \code{expressions} instead.} +} +\value{ +A list of expressions +} +\description{ +Get Source Variables from a List of Expressions +} +\seealso{ +Other get: +\code{\link{get_constant_vars}()}, +\code{\link{get_dataset}()}, +\code{\link{get_duplicates}()} +} +\concept{get} +\keyword{get} diff --git a/man/get_vars_query.Rd b/man/get_vars_query.Rd index c5181f8b3d..a894d4d1e8 100644 --- a/man/get_vars_query.Rd +++ b/man/get_vars_query.Rd @@ -77,7 +77,8 @@ Utilities used within Derivation functions: \code{\link{call_user_fun}()}, \code{\link{extract_unit}()}, \code{\link{get_flagged_records}()}, -\code{\link{get_not_mapped}()} +\code{\link{get_not_mapped}()}, +\code{\link{process_set_values_to}()} } \concept{utils_help} \keyword{utils_help} diff --git a/man/grapes-notin-grapes.Rd b/man/grapes-notin-grapes.Rd new file mode 100644 index 0000000000..43c7340827 --- /dev/null +++ b/man/grapes-notin-grapes.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{\%notin\%} +\alias{\%notin\%} +\title{Negated Value Matching} +\usage{ +x \%notin\% table +} +\arguments{ +\item{x}{The values to be matched} + +\item{table}{The values to be matched against} +} +\value{ +A \code{logical} vector +} +\description{ +Returns a \code{logical} vector indicating if there is \emph{no} match of the +left operand in the right operand. +} +\seealso{ +Other dev_utility: +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/grapes-or-grapes.Rd b/man/grapes-or-grapes.Rd new file mode 100644 index 0000000000..1417f1574d --- /dev/null +++ b/man/grapes-or-grapes.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{\%or\%} +\alias{\%or\%} +\title{Or} +\usage{ +lhs \%or\% rhs +} +\arguments{ +\item{lhs}{Any valid R expression} + +\item{rhs}{Any valid R expression} +} +\value{ +Either the result of evaluating \code{lhs}, \code{rhs} or an error +} +\description{ +Or +} +\details{ +The function evaluates the expression \code{lhs} and if this expression results +in an error, it catches that error and proceeds with evaluating the expression +\code{rhs} and returns that result. +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/hello.Rd b/man/hello.Rd new file mode 100644 index 0000000000..069fe274c3 --- /dev/null +++ b/man/hello.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/hello.R +\name{hello} +\alias{hello} +\title{Print Hello World} +\usage{ +hello() +} +\description{ +Print Hello World +} diff --git a/man/is_auto.Rd b/man/is_auto.Rd new file mode 100644 index 0000000000..246df1e6de --- /dev/null +++ b/man/is_auto.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/is.R +\name{is_auto} +\alias{is_auto} +\title{Checks if the argument equals the auto keyword} +\usage{ +is_auto(arg) +} +\arguments{ +\item{arg}{argument to check} +} +\value{ +\code{TRUE} if the argument equals the auto keyword, i.e., it is an +expression of a symbol named auto. +} +\description{ +Checks if the argument equals the auto keyword +} +\seealso{ +Other is: +\code{\link{is_order_vars}()}, +\code{\link{is_valid_dtc}()} +} +\concept{is} +\keyword{is} diff --git a/man/is_order_vars.Rd b/man/is_order_vars.Rd new file mode 100644 index 0000000000..c95f23cd2b --- /dev/null +++ b/man/is_order_vars.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/is.R +\name{is_order_vars} +\alias{is_order_vars} +\title{Is order vars?} +\usage{ +is_order_vars(arg) +} +\arguments{ +\item{arg}{An R object} +} +\value{ +\code{FALSE} if the argument is not a list of order vars +} +\description{ +Check if inputs are created using \code{exprs()} or calls involving \code{desc()} +} +\seealso{ +Other is: +\code{\link{is_auto}()}, +\code{\link{is_valid_dtc}()} +} +\concept{is} +\keyword{is} diff --git a/man/is_valid_dtc.Rd b/man/is_valid_dtc.Rd new file mode 100644 index 0000000000..a8360b3e64 --- /dev/null +++ b/man/is_valid_dtc.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/is.R +\name{is_valid_dtc} +\alias{is_valid_dtc} +\title{Is this string a valid DTC} +\usage{ +is_valid_dtc(arg) +} +\arguments{ +\item{arg}{A \code{character} vector} +} +\value{ +\code{TRUE} if the argument is a valid \code{--DTC} string, \code{FALSE} otherwise +} +\description{ +Is this string a valid DTC +} +\seealso{ +Other is: +\code{\link{is_auto}()}, +\code{\link{is_order_vars}()} +} +\concept{is} +\keyword{is} diff --git a/man/joins.Rd b/man/joins.Rd new file mode 100644 index 0000000000..35082cb9a2 --- /dev/null +++ b/man/joins.Rd @@ -0,0 +1,35 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/joins.R +\name{anti_join} +\alias{anti_join} +\alias{inner_join} +\alias{left_join} +\title{Join Functions} +\usage{ +anti_join(x, y, by = NULL, copy = FALSE, ...) + +inner_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...) + +left_join(x, y, by = NULL, copy = FALSE, suffix = c(".x", ".y"), ...) +} +\arguments{ +\item{x}{\code{data.frame}} + +\item{y}{\code{data.frame}} + +\item{by}{\code{character} vector} + +\item{copy}{\code{logical}} + +\item{...}{Additional arguments} + +\item{suffix}{\code{character} vector} +} +\value{ +\code{data.frame} +} +\description{ +The \verb{*_join()} functions from \code{{dplyr}} without a warning on different attributes +in datasets. +} +\keyword{joins} diff --git a/man/params.Rd b/man/params.Rd index ba41405a43..6bf867f309 100644 --- a/man/params.Rd +++ b/man/params.Rd @@ -55,7 +55,7 @@ adae <- ae \%>\% derive_vars_merged( dataset_add = adsl, new_vars = exprs(TRTSDT, TRTEDT), - by_vars = exprs(USUBJID) + by_vars = get_admiral_option("subject_keys") ) ## In order to derive both `ASTDT` and `AENDT` in `ADAE`, one can use `derive_vars_dt()` diff --git a/man/process_set_values_to.Rd b/man/process_set_values_to.Rd new file mode 100644 index 0000000000..e6caba9f80 --- /dev/null +++ b/man/process_set_values_to.Rd @@ -0,0 +1,69 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/process_set_values_to.R +\name{process_set_values_to} +\alias{process_set_values_to} +\title{Process \code{set_values_to} Argument} +\usage{ +process_set_values_to(dataset, set_values_to = NULL, expected_types = NULL) +} +\arguments{ +\item{dataset}{Input dataset} + +\item{set_values_to}{Variables to set + +A named list returned by \code{exprs()} defining the variables to be set, e.g. +\code{exprs(PARAMCD = "OS", PARAM = "Overall Survival")} is expected. The values +must be symbols, character strings, numeric values, expressions, or \code{NA}.} + +\item{expected_types}{If the argument is specified, the specified variables are checked whether +the specified type matches the type of the variables created by +\code{set_values_to}. + +\emph{Permitted Values}: A character vector with values \code{"numeric"} or +\code{"character"}} +} +\value{ +The input dataset with the variables specified by \code{set_values_to} +added/updated +} +\description{ +The function creates the variables specified by the \code{set_values_to} argument, +catches errors, provides user friendly error messages, and optionally checks +the type of the created variables. +} +\examples{ +library(dplyr) +data <- tribble( + ~AVAL, + 20 +) + +try( + process_set_values_to( + data, + set_values_to = exprs( + PARAMCD = BMI + ) + ) +) + +try( + process_set_values_to( + data, + set_values_to = exprs( + PARAMCD = 42 + ), + expected_types = c(PARAMCD = "character") + ) +) +} +\seealso{ +Utilities used within Derivation functions: +\code{\link{call_user_fun}()}, +\code{\link{extract_unit}()}, +\code{\link{get_flagged_records}()}, +\code{\link{get_not_mapped}()}, +\code{\link{get_vars_query}()} +} +\concept{utils_help} +\keyword{utils_help} diff --git a/man/remove_tmp_vars.Rd b/man/remove_tmp_vars.Rd new file mode 100644 index 0000000000..a19e772beb --- /dev/null +++ b/man/remove_tmp_vars.Rd @@ -0,0 +1,46 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/tmp_vars.R +\name{remove_tmp_vars} +\alias{remove_tmp_vars} +\title{Remove All Temporary Variables Created Within the Current Function Environment} +\usage{ +remove_tmp_vars(dataset) +} +\arguments{ +\item{dataset}{The input dataset} +} +\value{ +The input dataset with temporary variables removed +} +\description{ +Remove All Temporary Variables Created Within the Current Function Environment +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +dm <- tribble( + ~DOMAIN, ~STUDYID, ~USUBJID, + "DM", "STUDY X", "01-701-1015", + "DM", "STUDY X", "01-701-1016", +) +dm <- select(dm, USUBJID) +tmp_var <- get_new_tmp_var(dm) +dm <- mutate(dm, !!tmp_var := NA) + +## This function creates two new temporary variables which are removed when calling +## `remove_tmp_vars()`. Note that any temporary variable created outside this +## function is **not** removed +do_something <- function(dataset) { + tmp_var_1 <- get_new_tmp_var(dm) + tmp_var_2 <- get_new_tmp_var(dm) + dm \%>\% + mutate(!!tmp_var_1 := NA, !!tmp_var_2 := NA) \%>\% + print() \%>\% + remove_tmp_vars() +} + +do_something(dm) +} +\seealso{ +\code{\link[=get_new_tmp_var]{get_new_tmp_var()}} +} +\keyword{tmp_vars} diff --git a/man/replace_symbol_in_expr.Rd b/man/replace_symbol_in_expr.Rd new file mode 100644 index 0000000000..751d14aaa1 --- /dev/null +++ b/man/replace_symbol_in_expr.Rd @@ -0,0 +1,41 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quo.R +\name{replace_symbol_in_expr} +\alias{replace_symbol_in_expr} +\title{Replace Symbols in an Expression} +\usage{ +replace_symbol_in_expr(expression, target, replace) +} +\arguments{ +\item{expression}{Expression} + +\item{target}{Target symbol} + +\item{replace}{Replacing symbol} +} +\value{ +The expression where every occurrence of the symbol \code{target} is +replaced by \code{replace} +} +\description{ +Replace symbols in an expression +} +\examples{ + +library(rlang) + +replace_symbol_in_expr(expr(AVAL), target = AVAL, replace = AVAL.join) +replace_symbol_in_expr(expr(AVALC), target = AVAL, replace = AVAL.join) +replace_symbol_in_expr(expr(desc(AVAL)), target = AVAL, replace = AVAL.join) +} +\seealso{ +Other quo: +\code{\link{add_suffix_to_vars}()}, +\code{\link{expr_c}()}, +\code{\link{replace_values_by_names}()} +} +\author{ +Stefan Bundfuss +} +\concept{quo} +\keyword{quo} diff --git a/man/replace_values_by_names.Rd b/man/replace_values_by_names.Rd new file mode 100644 index 0000000000..2530026396 --- /dev/null +++ b/man/replace_values_by_names.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quo.R +\name{replace_values_by_names} +\alias{replace_values_by_names} +\title{Replace Expression Value with Name} +\usage{ +replace_values_by_names(expressions, quosures) +} +\arguments{ +\item{expressions}{A list of expressions} + +\item{quosures}{\emph{Deprecated}, please use \code{expressions} instead.} +} +\value{ +A list of expressions +} +\description{ +Replace Expression Value with Name +} +\examples{ +library(rlang) +replace_values_by_names(exprs(AVAL, ADT = convert_dtc_to_dt(EXSTDTC))) +} +\seealso{ +Other quo: +\code{\link{add_suffix_to_vars}()}, +\code{\link{expr_c}()}, +\code{\link{replace_symbol_in_expr}()} +} +\concept{quo} +\keyword{quo} diff --git a/man/restrict_derivation.Rd b/man/restrict_derivation.Rd index 9afa13a8fd..7726167744 100644 --- a/man/restrict_derivation.Rd +++ b/man/restrict_derivation.Rd @@ -47,7 +47,7 @@ restrict_derivation( adlb, derivation = derive_vars_merged, args = params( - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), dataset_add = adlb, filter_add = ABLFL == "Y", new_vars = exprs(BASE = AVAL) @@ -60,7 +60,7 @@ restrict_derivation( adlb, derivation = derive_var_base, args = params( - by_vars = exprs(USUBJID) + by_vars = get_admiral_option("subject_keys") ), filter = AVISITN >= 0 ) \%>\% diff --git a/man/signal_duplicate_records.Rd b/man/signal_duplicate_records.Rd index 0ae321a7f2..07a76b7137 100644 --- a/man/signal_duplicate_records.Rd +++ b/man/signal_duplicate_records.Rd @@ -41,7 +41,7 @@ data(admiral_adsl) # Duplicate the first record adsl <- rbind(admiral_adsl[1L, ], admiral_adsl) -signal_duplicate_records(adsl, exprs(USUBJID), cnd_type = "message") +signal_duplicate_records(adsl, get_admiral_option("subject_keys"), cnd_type = "message") } \seealso{ Other internal: diff --git a/man/squote.Rd b/man/squote.Rd new file mode 100644 index 0000000000..81253e846c --- /dev/null +++ b/man/squote.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/quote.R +\name{squote} +\alias{squote} +\title{Wrap a String in Single Quotes} +\usage{ +squote(x) +} +\arguments{ +\item{x}{A \code{character} vector} +} +\value{ +A \code{character} vector +} +\description{ +Wrap a String in Single Quotes +} +\seealso{ +Other quote: +\code{\link{backquote}()}, +\code{\link{dquote}()}, +\code{\link{enumerate}()} +} +\concept{quote} +\keyword{quote} diff --git a/man/suppress_warning.Rd b/man/suppress_warning.Rd new file mode 100644 index 0000000000..e96716cb41 --- /dev/null +++ b/man/suppress_warning.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/warnings.R +\name{suppress_warning} +\alias{suppress_warning} +\title{Suppress Specific Warnings} +\usage{ +suppress_warning(expr, regexpr) +} +\arguments{ +\item{expr}{Expression to be executed} + +\item{regexpr}{Regular expression matching warnings to suppress} +} +\value{ +Return value of the expression +} +\description{ +Suppress certain warnings issued by an expression. +} +\details{ +All warnings which are issued by the expression and match the regular expression +are suppressed. +} +\seealso{ +Other warnings: +\code{\link{warn_if_incomplete_dtc}()}, +\code{\link{warn_if_inconsistent_list}()}, +\code{\link{warn_if_invalid_dtc}()}, +\code{\link{warn_if_vars_exist}()} +} +\concept{warnings} +\keyword{warnings} diff --git a/man/use_ad_template.Rd b/man/use_ad_template.Rd index 55847a584f..38091587ab 100644 --- a/man/use_ad_template.Rd +++ b/man/use_ad_template.Rd @@ -14,7 +14,7 @@ use_ad_template( } \arguments{ \item{adam_name}{An ADaM dataset name. You can use any of the available dataset name -ADAE, ADCM, ADEG, ADEX, ADLB, ADLBHY, ADMH, ADPC, ADPP, ADPPK, ADSL, ADVS, and the dataset name is case-insensitive. The default dataset +ADAE, ADCM, ADEG, ADEX, ADLB, ADLBHY, ADMH, ADPC, ADPP, ADPPK, ADSL, ADVS, ADXX, and the dataset name is case-insensitive. The default dataset name is ADSL.} \item{save_path}{Path to save the script.} diff --git a/man/valid_time_units.Rd b/man/valid_time_units.Rd new file mode 100644 index 0000000000..c51c6c595a --- /dev/null +++ b/man/valid_time_units.Rd @@ -0,0 +1,28 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{valid_time_units} +\alias{valid_time_units} +\title{Valid Time Units} +\usage{ +valid_time_units() +} +\value{ +A \code{character} vector of valid time units +} +\description{ +Contains the acceptable character vector of valid time units +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{vars2chr}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/vars2chr.Rd b/man/vars2chr.Rd new file mode 100644 index 0000000000..e24465dbf1 --- /dev/null +++ b/man/vars2chr.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dev_utilities.R +\name{vars2chr} +\alias{vars2chr} +\title{Turn a List of Expressions into a Character Vector} +\usage{ +vars2chr(expressions, quosures) +} +\arguments{ +\item{expressions}{A \code{list} of expressions created using \code{\link[=exprs]{exprs()}}} + +\item{quosures}{\emph{Deprecated}, please use \code{expressions} instead.} +} +\value{ +A character vector +} +\description{ +Turn a List of Expressions into a Character Vector +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) + +vars2chr(exprs(USUBJID, AVAL)) +} +\seealso{ +Other dev_utility: +\code{\link{\%notin\%}()}, +\code{\link{\%or\%}()}, +\code{\link{arg_name}()}, +\code{\link{contains_vars}()}, +\code{\link{convert_dtm_to_dtc}()}, +\code{\link{extract_vars}()}, +\code{\link{filter_if}()}, +\code{\link{friendly_type_of}()}, +\code{\link{valid_time_units}()} +} +\concept{dev_utility} +\keyword{dev_utility} diff --git a/man/warn_if_incomplete_dtc.Rd b/man/warn_if_incomplete_dtc.Rd new file mode 100644 index 0000000000..a0a53619c7 --- /dev/null +++ b/man/warn_if_incomplete_dtc.Rd @@ -0,0 +1,28 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/warnings.R +\name{warn_if_incomplete_dtc} +\alias{warn_if_incomplete_dtc} +\title{Warn if incomplete dtc} +\usage{ +warn_if_incomplete_dtc(dtc, n) +} +\arguments{ +\item{dtc}{A \code{character} vector of date-times in ISO 8601 format} + +\item{n}{A non-negative integer} +} +\value{ +A warning if \code{dtc} contains any partial dates +} +\description{ +Warn if incomplete dtc +} +\seealso{ +Other warnings: +\code{\link{suppress_warning}()}, +\code{\link{warn_if_inconsistent_list}()}, +\code{\link{warn_if_invalid_dtc}()}, +\code{\link{warn_if_vars_exist}()} +} +\concept{warnings} +\keyword{warnings} diff --git a/man/warn_if_inconsistent_list.Rd b/man/warn_if_inconsistent_list.Rd new file mode 100644 index 0000000000..b192f08f9b --- /dev/null +++ b/man/warn_if_inconsistent_list.Rd @@ -0,0 +1,51 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/warnings.R +\name{warn_if_inconsistent_list} +\alias{warn_if_inconsistent_list} +\title{Warn If Two Lists are Inconsistent} +\usage{ +warn_if_inconsistent_list(base, compare, list_name, i = 2) +} +\arguments{ +\item{base}{A named list} + +\item{compare}{A named list} + +\item{list_name}{A string +the name of the list} + +\item{i}{the index id to compare the 2 lists} +} +\value{ +a \code{warning} if the 2 lists have different names or length +} +\description{ +Checks if two list inputs have the same names and same number of elements and +issues a warning otherwise. +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +library(rlang) + +# no warning +warn_if_inconsistent_list( + base = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), + compare = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), + list_name = "Test" +) +# warning +warn_if_inconsistent_list( + base = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ, DTHVAR = "text"), + compare = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), + list_name = "Test" +) +} +\seealso{ +Other warnings: +\code{\link{suppress_warning}()}, +\code{\link{warn_if_incomplete_dtc}()}, +\code{\link{warn_if_invalid_dtc}()}, +\code{\link{warn_if_vars_exist}()} +} +\concept{warnings} +\keyword{warnings} diff --git a/man/warn_if_invalid_dtc.Rd b/man/warn_if_invalid_dtc.Rd new file mode 100644 index 0000000000..211cfa7c35 --- /dev/null +++ b/man/warn_if_invalid_dtc.Rd @@ -0,0 +1,37 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/warnings.R +\name{warn_if_invalid_dtc} +\alias{warn_if_invalid_dtc} +\title{Warn If a Vector Contains Unknown Datetime Format} +\usage{ +warn_if_invalid_dtc(dtc, is_valid = is_valid_dtc(dtc)) +} +\arguments{ +\item{dtc}{a character vector containing the dates} + +\item{is_valid}{a logical vector indicating whether elements in \code{dtc} are valid} +} +\value{ +No return value, called for side effects +} +\description{ +Warn if the vector contains unknown datetime format such as +"2003-12-15T-:15:18", "2003-12-15T13:-:19","--12-15","-----T07:15" +} +\examples{ + +## No warning as `dtc` is a valid date format +warn_if_invalid_dtc(dtc = "2021-04-06") + +## Issues a warning +warn_if_invalid_dtc(dtc = "2021-04-06T-:30:30") +} +\seealso{ +Other warnings: +\code{\link{suppress_warning}()}, +\code{\link{warn_if_incomplete_dtc}()}, +\code{\link{warn_if_inconsistent_list}()}, +\code{\link{warn_if_vars_exist}()} +} +\concept{warnings} +\keyword{warnings} diff --git a/man/warn_if_vars_exist.Rd b/man/warn_if_vars_exist.Rd new file mode 100644 index 0000000000..4ad6dd5dd8 --- /dev/null +++ b/man/warn_if_vars_exist.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/warnings.R +\name{warn_if_vars_exist} +\alias{warn_if_vars_exist} +\title{Warn If a Variable Already Exists} +\usage{ +warn_if_vars_exist(dataset, vars) +} +\arguments{ +\item{dataset}{A \code{data.frame}} + +\item{vars}{\code{character} vector of columns to check for in \code{dataset}} +} +\value{ +No return value, called for side effects +} +\description{ +Warn if a variable already exists inside a dataset +} +\examples{ +library(dplyr, warn.conflicts = FALSE) +dm <- tribble( + ~USUBJID, ~ARM, + "01-701-1015", "Placebo", + "01-701-1016", "Placebo", +) + +## No warning as `AAGE` doesn't exist in `dm` +warn_if_vars_exist(dm, "AAGE") + +## Issues a warning +warn_if_vars_exist(dm, "ARM") +} +\seealso{ +Other warnings: +\code{\link{suppress_warning}()}, +\code{\link{warn_if_incomplete_dtc}()}, +\code{\link{warn_if_inconsistent_list}()}, +\code{\link{warn_if_invalid_dtc}()} +} +\concept{warnings} +\keyword{warnings} diff --git a/man/what_is_it.Rd b/man/what_is_it.Rd new file mode 100644 index 0000000000..7e460ab72e --- /dev/null +++ b/man/what_is_it.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/what.R +\name{what_is_it} +\alias{what_is_it} +\title{What Kind of Object is This?} +\usage{ +what_is_it(x) +} +\arguments{ +\item{x}{Any R object} +} +\value{ +A \code{character} description of the type of \code{x} +} +\description{ +Returns a string describing what kind of object the input is. +} +\examples{ +what_is_it("abc") +what_is_it(1L) +what_is_it(1:10) +what_is_it(mtcars) +} +\concept{what} +\keyword{what} diff --git a/tests/testthat/_snaps/assertions.md b/tests/testthat/_snaps/assertions.md new file mode 100644 index 0000000000..3ceed2f5ec --- /dev/null +++ b/tests/testthat/_snaps/assertions.md @@ -0,0 +1,447 @@ +# assert_filter_cond Test 3: `assert_filter_cond` works as expected + + Code + assert_filter_cond(arg = fc) + Condition + Error: + ! Argument `fc` must be a filter condition, but is a string + +# assert_data_frame Test 4: error if not a dataframe + + Code + example_fun(c(1, 2, 3)) + Condition + Error in `example_fun()`: + ! Argument `dataset` must be class , but is a double vector. + +# assert_data_frame Test 7: error if dataframe is grouped + + Code + example_fun(data) + Condition + Error in `example_fun()`: + ! Argument `dataset` must not be a grouped dataset, please `ungroup()` it. + +# assert_data_frame Test 8: error if an expected variable is missing + + Code + example_fun(data) + Condition + Error in `example_fun()`: + ! Required variable `USUBJID` is missing in `dataset` + +# assert_data_frame Test 9: error if expected variables are missing + + Code + example_fun(data) + Condition + Error in `example_fun()`: + ! Required variables `STUDYID` and `USUBJID` are missing in `dataset` + +# assert_character_scalar Test 15: error if `arg` not in values + + Code + check_unit("month") + Condition + Error in `check_unit()`: + ! Argument `duration_unit` must be equal to one of "years", "months", "weeks", "days", "hours", "minutes", or "seconds". + +--- + + Code + check_unit2("month") + Condition + Error in `check_unit2()`: + ! Argument `duration_unit` must be equal to one of "YEARS", "MONTHS", "WEEKS", "DAYS", "HOURS", "MINUTES", or "SECONDS". + +# assert_character_scalar Test 16: error if not character + + Code + example_fun2(2) + Condition + Error in `example_fun2()`: + ! Argument `msg_type` must be a scalar of class , but is a number. + +# assert_character_scalar Test 17: error if input is a vector + + Code + example_fun2(c("admiral", "admiralonco")) + Condition + Error in `example_fun2()`: + ! Argument `msg_type` must be a scalar of class , but is length 2 + +# assert_character_vector Test 18: error if `arg` not a character vector + + Code + assert_character_vector(arg) + Condition + Error: + ! Argument `arg` must be , but is a double vector. + +# assert_character_vector Test 19: error if `arg` is not in values + + Code + example_fun(character = c("oak", "mint")) + Condition + Error in `example_fun()`: + ! Argument `character` must be with values "test" and "oak". + +# assert_character_vector Test 20: arg_name correctly displayed in name check + + Code + example_fun(character = c(tree = "oak", "test")) + Condition + Error in `example_fun()`: + ! All elements of `character` argument must be named. + i The indices of the unnamed elements are 2 + +# assert_logical_scalar Test 22: error if `arg` is not TRUE or FALSE + + Code + example_fun("test") + Condition + Error in `example_fun()`: + ! Argument `arg` must be either TRUE or FALSE, but is a string. + +# assert_symbol Test 24: `assert_symbol` throws an error if `arg` is missing + + Code + example_fun(f()) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a , but is missing. + +# assert_symbol Test 25: `assert_symbol` throws an error if `arg` is not a symbol + + Code + example_fun(f(NULL)) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a , but is NULL. + +# assert_expr Test 29: `assert_expr` throws an error if `arg` is missing + + Code + assert_expr() + Condition + Error: + ! Argument `arg` cannot be missing. + +--- + + Code + example_fun() + Condition + Error in `example_fun()`: + ! Argument `data` cannot be missing. + +# assert_expr Test 30: `assert_expr` throws an error if `arg` is not an expression + + Code + var <- c(1, 2) + assert_expr(var) + Condition + Error: + ! Argument `var` must be an expression, but is a double vector + +# assert_vars Test 32: error if unexpected input + + Code + assert_vars(AVAL + 1) + Condition + Error: + ! Argument `AVAL + 1` must be a list of , e.g., `exprs(USUBJID, VISIT)`. + +--- + + Code + assert_vars(rlang::quos(USUBJID, PARAMCD)) + Condition + Error: + ! Each element of the list in argument `rlang::quos(USUBJID, PARAMCD)` must be class/type . + i But, element 1 is a object, and element 2 is a object + +--- + + Code + assert_vars(c("USUBJID", "PARAMCD", "VISIT")) + Condition + Error: + ! Argument `c("USUBJID", "PARAMCD", "VISIT")` must be class , but is a character vector. + +--- + + Code + assert_vars(exprs(USUBJID, AVAL + 2)) + Condition + Error: + ! Each element of the list in argument `exprs(USUBJID, AVAL + 2)` must be class/type . + i But, element 2 is a call + +--- + + Code + assert_vars(exprs(APERSDT = APxxSDT, APxxEDT), expect_names = TRUE) + Condition + Error: + ! All elements of `exprs(APERSDT = APxxSDT, APxxEDT)` argument must be named. + i The indices of the unnamed elements are 2 + +# assert_vars Test 33: error if some elements of `arg` are not unquoted variable names + + Code + example_fun(exprs(USUBJID, PARAMCD, NULL)) + Condition + Error in `example_fun()`: + ! Each element of the list in argument `arg` must be class/type . + i But, element 3 is NULL + +# assert_integer_scalar Test 35: error if chosen subset not in subsets + + Code + example_fun(1) + Condition + Error in `assert_integer_scalar()`: + ! Argument `subset` must be equal to one of "positive", "non-negative", "negative", or "none". + +# assert_integer_scalar Test 37: error if `arg` is not an integer scalar + + Code + example_fun(1.5) + Condition + Error in `example_fun()`: + ! Argument `arg` must be an integer scalar. + +# assert_numeric_vector Test 39: error if `arg` is not a numeric vector + + Code + example_fun(TRUE) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a numeric vector, but it is `TRUE`. + +--- + + Code + example_fun(arg) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a numeric vector, but it is NULL. + +--- + + Code + example_fun("1.5") + Condition + Error in `example_fun()`: + ! Argument `arg` must be a numeric vector, but it is a string. + +# assert_s3_class Test 40: error if `arg` is not an object of a specific class S3 + + Code + example_fun("test") + Condition + Error in `example_fun()`: + ! Argument `arg` must be class , but is a string. + +# assert_s3_class Test 42: error if `arg` is NULL and optional is FALSE + + Code + example_fun(NULL) + Condition + Error in `example_fun()`: + ! Argument `arg` must be class , but is NULL. + +# assert_list_of Test 44: error if `arg` is not a list of specific class S3 objects + + Code + example_fun(list("test")) + Condition + Error in `example_fun()`: + ! Each element of the list in argument `arg` must be class/type . + i But, element 1 is a string + +# assert_list_of Test 46: error if `arg` is NULL and optional is FALSE + + Code + example_fun(NULL) + Condition + Error in `example_fun()`: + ! Argument `arg` must be class , but is NULL. + +# assert_list_of Test 48: error if `arg` is not a named list (no elements named) + + Code + mylist <- list(1, 2, 3) + assert_list_of(mylist, cls = "numeric", named = TRUE) + Condition + Error: + ! All elements of `mylist` argument must be named. + i The indices of the unnamed elements are 1, 2, and 3 + +# assert_list_of Test 49: error if `arg` is not a named list (some elements named) + + Code + mylist <- list(1, 2, 3, d = 4) + assert_list_of(mylist, cls = "numeric", named = TRUE) + Condition + Error: + ! All elements of `mylist` argument must be named. + i The indices of the unnamed elements are 1, 2, and 3 + +# assert_named Test 52: error if no elements are named + + Code + arg <- c(1, 2) + assert_named(arg) + Condition + Error: + ! All elements of `arg` argument must be named. + i The indices of the unnamed elements are 1 and 2 + +# assert_function Test 56: error if `arg` is not a function + + Code + example_fun(5) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a function, but is a number. + +# assert_function Test 59: error if `params` is missing with no default + + Code + example_fun(sum) + Condition + Error in `example_fun()`: + ! "x" is not an argument of the function specified for `arg`. + +--- + + Code + example_fun(sum) + Condition + Error in `example_fun()`: + ! "x" and "y" are not arguments of the function specified for `arg`. + +# assert_unit Test 64: error if there are multiple units in the input dataset + + Code + assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU) + Condition + Error: + ! Multiple units "kg" and "lb" found for "WEIGHT". Please review and update the units. + +# assert_unit Test 65: error if unexpected unit in the input dataset + + Code + assert_unit(advs, param = "WEIGHT", required_unit = "lb", get_unit_expr = VSSTRESU) + Condition + Error: + ! It is expected that "WEIGHT" has unit of "lb". In the input dataset the unit is "kg". + +# assert_param_does_not_exist Test 66: error if parameter exists in the input dataset + + Code + assert_param_does_not_exist(advs, param = "WEIGHT") + Condition + Error: + ! The parameter code "WEIGHT" already exists in dataset `advs`. + +# assert_varval_list Test 68: error if `arg` is not a list of var-value expressions + + Code + example_fun(c("USUBJID", "PARAMCD", "VISIT")) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a named list of expressions where each element is a symbol, character scalar, numeric scalar, an expression, or NA, but is a character vector. + i To create a list of expressions use `exprs()`. + +# assert_varval_list Test 69: error if `arg` is not a list of var-value expressions + + Code + example_fun(exprs(USUBJID, PARAMCD, NULL)) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a list of expressions where each element is a symbol, character scalar, numeric scalar, an expression, or NA, but is a list. + i To create a list of expressions use `exprs()`. + +# assert_varval_list Test 70: error if `required_elements` are missing from `arg` + + Code + example_fun(exprs(DTHSEQ = AESEQ)) + Condition + Error in `example_fun()`: + ! The following required elements are missing from argument `arg`: "DTHDOM". + +# assert_varval_list Test 72: error if `accept_expr` is TRUE and value is invalid + + Code + example_fun(exprs(DTHSEQ = TRUE)) + Condition + Error in `example_fun()`: + ! The elements of the list in argument `arg` must be a symbol, character scalar, numeric scalar, an expression, or NA. + i "DTHSEQ" = `TRUE` is of type + +# assert_varval_list Test 73: error if `accept_expr` is FALSE and value is invalid + + Code + example_fun(exprs(DTHSEQ = exprs())) + Condition + Error in `example_fun()`: + ! The elements of the list in argument `arg` must be a symbol, character scalar, numeric scalar, or NA. + i "DTHSEQ" = `exprs()` is of type + +# assert_list_element Test 82: error if the elements do not fulfill the condition + + Code + assert_list_element(list(list(var = expr(DTHDT), val = 1), list(var = expr( + EOSDT), val = -1), list(var = expr(EOSDT), val = -2)), element = "val", + condition = val >= 0, message_text = "List element {.val val} must be `>=0` in argument {.arg {arg_name}}:", + arg_name = "input") + Condition + Error: + ! List element "val" must be `>=0` in argument `input`: + i But, `input[[2]]$val = -1`, and `input[[3]]$val = -2` + +# assert_one_to_one Test 83: error if there is a one to many mapping + + Code + assert_one_to_one(dm, exprs(DOMAIN), exprs(USUBJID)) + Condition + Error: + ! For some values of "DOMAIN" there is more than one value of "USUBJID" + i Call `admiral::get_one_to_many_dataset()` to get all one-to-many values. + +# assert_date_var Test 86: error if variable is not a date or datetime variable + + Code + example_fun(dataset = my_data, var = USUBJID) + Condition + Error in `example_fun()`: + ! Column "USUBJID" in dataset `dataset` must be a date or datetime, but is a character vector. + +# assert_date_vector Test 90: error if `arg` is NULL and optional is FALSE + + Code + example_fun(NULL) + Condition + Error in `example_fun()`: + ! Argument `arg` must be a date or datetime, but is NULL. + +# assert_atomic_vector Test 91: error if input is not atomic vector + + Code + assert_atomic_vector(x) + Condition + Error: + ! Argument `x` must be an atomic vector, but is a list. + +# assert_same_type Test 93: error if different type + + Code + assert_same_type(true_value, false_value, missing_value) + Condition + Error: + ! Arguments `true_value`, `false_value`, and `missing_value` must be the same type. + i Argument types are `true_value` , `false_value` , `missing_value` + diff --git a/tests/testthat/_snaps/derive_extreme_event.md b/tests/testthat/_snaps/derive_extreme_event.md index a75bf9cb78..428cf2e467 100644 --- a/tests/testthat/_snaps/derive_extreme_event.md +++ b/tests/testthat/_snaps/derive_extreme_event.md @@ -1,9 +1,9 @@ # derive_extreme_event Test 8: error if source dataset not available Code - derive_extreme_event(adhy, by_vars = exprs(USUBJID), events = list(event( - dataset_name = "adyh", condition = is.na(CRIT1FL), set_values_to = exprs( - AVALC = "N")), event(condition = CRIT1FL == "Y", mode = "last", + derive_extreme_event(adhy, by_vars = get_admiral_option("subject_keys"), + events = list(event(dataset_name = "adyh", condition = is.na(CRIT1FL), + set_values_to = exprs(AVALC = "N")), event(condition = CRIT1FL == "Y", mode = "last", set_values_to = exprs(AVALC = "Y"))), source_datasets = list(adhy = adhy), tmp_event_nr_var = event_nr, order = exprs(event_nr, AVISITN), mode = "first", keep_source_vars = exprs(AVISITN), set_values_to = exprs(PARAMCD = "ALK2", diff --git a/tests/testthat/_snaps/process_set_values_to.md b/tests/testthat/_snaps/process_set_values_to.md new file mode 100644 index 0000000000..7b9531884f --- /dev/null +++ b/tests/testthat/_snaps/process_set_values_to.md @@ -0,0 +1,24 @@ +# process_set_values_to Test 2: catch error + + Code + process_set_values_to(bds, set_values_to = exprs(PARAMCD = BMI, PARAM = "Body-Mass-Index", + PARAMN = 1)) + Condition + Error in `process_set_values_to()`: + ! Assigning variables failed! + * `set_values_to = exprs(PARAMCD = BMI, PARAM = Body-Mass-Index, PARAMN = 1)` + See error message below: + i In argument: `PARAMCD = BMI`. Caused by error: ! object 'BMI' not found + +# process_set_values_to Test 3: check types + + Code + process_set_values_to(bds, set_values_to = exprs(PARAMCD = 1, PARAM = "Body-Mass-Index", + PARAMN = "BMI"), expected_types = c(PARAMCD = "character", PARAM = "character", + PARAMN = "numeric")) + Condition + Error in `process_set_values_to()`: + ! The following variables have an unexpected type: + * PARAMCD: expected is , but it is . + * PARAMN: expected is , but it is . + diff --git a/tests/testthat/_snaps/tmp_vars.md b/tests/testthat/_snaps/tmp_vars.md new file mode 100644 index 0000000000..ace29d1eb8 --- /dev/null +++ b/tests/testthat/_snaps/tmp_vars.md @@ -0,0 +1,8 @@ +# get_new_tmp_var Test 2: errors if name does not start with tmp + + Code + get_new_tmp_var(dm, prefix = "my_var") + Condition + Error in `get_new_tmp_var()`: + ! `prefix` must start with "tmp_". + diff --git a/tests/testthat/_snaps/warnings.md b/tests/testthat/_snaps/warnings.md new file mode 100644 index 0000000000..db57d56db8 --- /dev/null +++ b/tests/testthat/_snaps/warnings.md @@ -0,0 +1,34 @@ +# warn_if_vars_exist Test 1: warning if a variable already exists in the input dataset + + Code + warn_if_vars_exist(dm, "AGE") + Condition + Warning: + Variable "AGE" already exists in the dataset. + +--- + + Code + warn_if_vars_exist(dm, c("AGE", "AGEU", "ARM")) + Condition + Warning: + Variables "AGE", "AGEU", and "ARM" already exist in the dataset. + +--- + + Code + warn_if_vars_exist(dm, c("AAGE", "AGEU", "ARM")) + Condition + Warning: + Variables "AGEU" and "ARM" already exist in the dataset. + +# warn_if_invalid_dtc Test 2: Warning if vector contains unknown datetime format + + Code + warn_if_invalid_dtc(dtc = "20210406T12:30:30") + Condition + Warning: + Dataset contains incorrect datetime format: --DTC may be incorrectly imputed on row(s) + * Row 1 : --DTC = 20210406T12:30:30 + * ISO representations of the form YYYY-MM-DDThh:mm:ss.ddd are expected, e.g., 2003-12-15T13:15:17.123. Missing parts at the end can be omitted. Missing parts in the middle must be represented by a dash, e.g., 2003---15. + diff --git a/tests/testthat/test-addin_format_testthat.R b/tests/testthat/test-addin_format_testthat.R new file mode 100644 index 0000000000..f9e1049844 --- /dev/null +++ b/tests/testthat/test-addin_format_testthat.R @@ -0,0 +1,49 @@ +## Test 1: works as expected ---- +test_that("addin_format_testthat Test 1: works as expected", { + # test: file exists + expect_error( + prepare_test_that_file("file_does_not_exist"), + "Invalid file path, the file does not exist." + ) + + # test: correct file is used + tf <- tempfile() + writeLines("Hello", tf) + expect_error( + prepare_test_that_file(tf), + "This Addin works only on unit test files that follow a testthat structure" + ) + + # test: test_that not found + dir.create(file.path(tempdir(), "tests", "testthat"), recursive = TRUE) + tf <- tempfile(pattern = "tests/testthat/test-") + writeLines("Hello", tf) + expect_null(prepare_test_that_file(tf)) + + # test: headers and descriptions works as expected on dummy file + tf <- tempfile(pattern = "tests/testthat/test-") + writeLines( + c( + "# some stuff in comment", + 'test_that("my description", {', + " expect_true(TRUE)", + "}" + ), + tf + ) + expected <- list( + file_content = c( + "# some stuff in comment", + paste0( + "## Test 1: my description ----" + ), + paste0( + 'test_that("', sub("test-", "", basename(tf)), " ", + 'Test 1: my description", {' + ), + " expect_true(TRUE)", + "}" + ) + ) + expect_identical(prepare_test_that_file(tf), expected) +}) diff --git a/tests/testthat/test-assertions.R b/tests/testthat/test-assertions.R new file mode 100644 index 0000000000..224f005361 --- /dev/null +++ b/tests/testthat/test-assertions.R @@ -0,0 +1,1562 @@ +# assert_has_variables ---- +## Test 1: error if a required variable is missing (deprecation error) ---- +test_that("assert_has_variables Test 1: error if a required variable is missing (deprecation error)", { # nolint + data <- dplyr::tribble( + ~USUBJID, + "1" + ) + + dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + "DM", "01-701-1023", + "DM", "01-701-1024", + ) + + expect_error( + assert_has_variables(data, "TRT01P"), + class = "lifecycle_error_deprecated" + ) + + expect_error( + assert_has_variables(dm, c("TRT01P", "AVAL")), + class = "lifecycle_error_deprecated" + ) +}) + +## Test 2: no error if a required variable exists (deprecation error) ---- +test_that("assert_has_variables Test 2: no error if a required variable exists (deprecation error)", { # nolint + data <- dplyr::tribble( + ~USUBJID, + "1" + ) + + expect_error( + assert_has_variables(data, "USUBJID"), + class = "lifecycle_error_deprecated" + ) +}) + +# assert_filter_cond ---- +## Test 3: `assert_filter_cond` works as expected ---- +test_that("assert_filter_cond Test 3: `assert_filter_cond` works as expected", { + fc <- expr(AGE == 64) + expect_identical( + assert_filter_cond(fc), + fc + ) + + expect_identical( + assert_filter_cond(arg = fc, optional = TRUE), + fc + ) + + fc <- expr("string") + expect_error( + assert_filter_cond(arg = fc), + class = "assert_filter_cond" + ) + expect_snapshot( + assert_filter_cond(arg = fc), + error = TRUE + ) + + vals <- c("A", "B") + fc <- expr(VAR %in% !!vals) + expect_identical( + assert_filter_cond(arg = fc), + fc + ) +}) + +# assert_data_frame ---- +## Test 4: error if not a dataframe ---- +test_that("assert_data_frame Test 4: error if not a dataframe", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + expect_error( + example_fun(c(1, 2, 3)), + class = "assert_data_frame" + ) + expect_snapshot( + example_fun(c(1, 2, 3)), + error = TRUE + ) +}) + +## Test 5: assert_data_frame extract_vars() works as intended ---- +test_that("assert_data_frame Test 5: assert_data_frame extract_vars() works as intended", { + input <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~SEQ, + "A", "1", 1, + "A", "2", 2, + "A", "3", 3, + ) + + example_fun <- function(dataset, order) { + assert_data_frame(dataset, required_vars = expr_c( + exprs(STUDYID, USUBJID), + extract_vars(order) + )) + } + + expect_invisible(example_fun(input, order = exprs(SEQ))) +}) + +## Test 6: assert_data_frame works if extract_vars() has NULL input ---- +test_that("assert_data_frame Test 6: assert_data_frame works if extract_vars() has NULL input", { + input <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~SEQ, + "A", "1", 1, + "A", "2", 2, + "A", "3", 3, + ) + + example_fun <- function(dataset, order = NULL) { + assert_data_frame(dataset, required_vars = expr_c( + exprs(STUDYID, USUBJID), + extract_vars(order) + )) + } + + expect_invisible(example_fun(input)) +}) + +## Test 7: error if dataframe is grouped ---- +test_that("assert_data_frame Test 7: error if dataframe is grouped", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + + data <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~ARMCD, + "xyz", "1", "PLACEBO", + "xyz", "2", "ACTIVE" + ) %>% group_by(ARMCD) + + expect_error( + example_fun(data), + class = "assert_data_frame" + ) + + expect_snapshot( + example_fun(data), + error = TRUE + ) +}) + +## Test 8: error if an expected variable is missing ---- +test_that("assert_data_frame Test 8: error if an expected variable is missing", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + + data <- dplyr::tribble( + ~STUDYID, ~ARMCD, + "xyz", "PLACEBO", + "xyz", "ACTIVE" + ) + expect_error( + example_fun(data), + class = "assert_data_frame" + ) + + expect_snapshot( + example_fun(data), + error = TRUE + ) +}) + +## Test 9: error if expected variables are missing ---- +test_that("assert_data_frame Test 9: error if expected variables are missing", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + + data <- dplyr::tribble( + ~ARMCD, + "PLACEBO", + "ACTIVE" + ) + expect_error( + example_fun(data), + class = "assert_data_frame" + ) + + expect_snapshot( + example_fun(data), + error = TRUE + ) +}) + +## Test 10: no error if optional is TRUE and `arg` is NULL ---- +test_that("assert_data_frame Test 10: no error if optional is TRUE and `arg` is NULL", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID), optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 11: error if required variables are missing ---- +test_that("assert_data_frame Test 11: error if required variables are missing", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + + admiral_dm <- dplyr::tribble( + ~USUBJID2, + "01-701-1015", + "01-701-1016", + ) + + expect_error( + example_fun(admiral_dm) + ) +}) + +## Test 12: error if required variable is missing ---- +test_that("assert_data_frame Test 12: error if required variable is missing", { + example_fun <- function(dataset) { + assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + } + + admiral_dm <- dplyr::tribble( + ~USUBJID, + "01-701-1015", + "01-701-1016", + ) + + expect_error( + example_fun(admiral_dm) + ) +}) + +# assert_character_scalar ---- +## Test 13: no error if optional is TRUE and `arg` is NULL ---- +test_that("assert_character_scalar Test 13: no error if optional is TRUE and `arg` is NULL", { + example_fun <- function(character) { + assert_character_scalar(character, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 14: no error, case_sensitive = FALSE ---- +test_that("assert_character_scalar Test 14: no error, case_sensitive = FALSE", { + example_fun <- function(character) { + assert_character_scalar(character, values = c("test"), case_sensitive = FALSE) + } + + out <- expect_invisible(example_fun(character = "TEST")) + expect_equal(out, "test") + + check_unit <- function(duration_unit) { + assert_character_scalar( + duration_unit, + values = c("years", "months", "weeks", "days", "hours", "minutes", "seconds"), + case_sensitive = FALSE + ) + } + + out <- expect_invisible(check_unit("months")) + expect_equal(out, "months") + + out <- expect_invisible(check_unit("MONTHS")) + expect_equal(out, "months") + + check_unit2 <- function(duration_unit) { + assert_character_scalar( + duration_unit, + values = c("YEARS", "MONTHS", "WEEKS", "DAYS", "HOURS", "MINUTES", "SECONDS"), + case_sensitive = FALSE + ) + } + + out <- expect_invisible(check_unit2("months")) + expect_equal(out, "months") + + out <- expect_invisible(check_unit2("MONTHS")) + expect_equal(out, "months") +}) + +## Test 15: error if `arg` not in values ---- +test_that("assert_character_scalar Test 15: error if `arg` not in values", { + check_unit <- function(duration_unit) { + assert_character_scalar( + duration_unit, + values = c("years", "months", "weeks", "days", "hours", "minutes", "seconds"), + case_sensitive = FALSE + ) + } + + expect_error( + check_unit("month"), + class = "assert_character_scalar" + ) + expect_snapshot(check_unit("month"), error = TRUE) + + + check_unit2 <- function(duration_unit) { + assert_character_scalar( + duration_unit, + values = c("YEARS", "MONTHS", "WEEKS", "DAYS", "HOURS", "MINUTES", "SECONDS"), + case_sensitive = FALSE + ) + } + + expect_error( + check_unit2("month"), + class = "assert_character_scalar" + ) + expect_snapshot(check_unit2("month"), error = TRUE) +}) + +## Test 16: error if not character ---- +test_that("assert_character_scalar Test 16: error if not character", { + example_fun2 <- function(msg_type) { + msg_type <- assert_character_scalar(msg_type, + values = c("warning", "error"), case_sensitive = FALSE + ) + + if (msg_type == "warning") { + print("A warning was requested.") + } + } + expect_error( + example_fun2(2), + class = "assert_character_scalar" + ) + + expect_snapshot( + example_fun2(2), + error = TRUE + ) +}) + +## Test 17: error if input is a vector ---- +test_that("assert_character_scalar Test 17: error if input is a vector", { + example_fun2 <- function(msg_type) { + msg_type <- assert_character_scalar(msg_type, + values = c("warning", "error"), case_sensitive = FALSE + ) + + if (msg_type == "warning") { + print("A warning was requested.") + } + } + expect_error( + example_fun2(c("admiral", "admiralonco")), + class = "assert_character_scalar" + ) + + expect_snapshot( + example_fun2(c("admiral", "admiralonco")), + error = TRUE + ) +}) + +# assert_character_vector ---- +## Test 18: error if `arg` not a character vector ---- +test_that("assert_character_vector Test 18: error if `arg` not a character vector", { + arg <- c(1, 2, 3) + + expect_error( + assert_character_vector(arg), + class = "assert_character_vector" + ) + + expect_snapshot( + error = TRUE, + assert_character_vector(arg) + ) +}) + +## Test 19: error if `arg` is not in values ---- +test_that("assert_character_vector Test 19: error if `arg` is not in values", { + example_fun <- function(character) { + assert_character_vector(character, values = c("test", "oak")) + } + + expect_error( + example_fun(character = c("oak", "mint")), + class = "assert_character_vector" + ) + expect_snapshot( + example_fun(character = c("oak", "mint")), + error = TRUE + ) +}) + +## Test 20: arg_name correctly displayed in name check ---- +test_that("assert_character_vector Test 20: arg_name correctly displayed in name check", { + example_fun <- function(character) { + assert_character_vector(character, values = c("test", "oak"), named = TRUE) + } + + expect_error( + example_fun(character = c(tree = "oak", "test")), + class = "assert_character_vector" + ) + expect_snapshot( + example_fun(character = c(tree = "oak", "test")), + error = TRUE + ) +}) + +# assert_logical_scalar ---- +## Test 21: no error if optional is TRUE and `arg` is NULL ---- +test_that("assert_logical_scalar Test 21: no error if optional is TRUE and `arg` is NULL", { + example_fun <- function(arg) { + assert_logical_scalar(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 22: error if `arg` is not TRUE or FALSE ---- +test_that("assert_logical_scalar Test 22: error if `arg` is not TRUE or FALSE", { + example_fun <- function(arg) { + assert_logical_scalar(arg) + } + arg <- c() + expect_error(example_fun(NA), class = "assert_logical_scalar") + expect_error(example_fun(arg), class = "assert_logical_scalar") + expect_error(example_fun("test"), class = "assert_logical_scalar") + expect_snapshot( + error = TRUE, + example_fun("test") + ) +}) + +# assert_symbol ---- +## Test 23: no error if optional = TRUE and `arg` = NULL ---- +test_that("assert_symbol Test 23: no error if optional = TRUE and `arg` = NULL", { + f <- function(var) { + v <- enexpr(var) + } + + example_fun <- function(arg) { + assert_symbol(arg, optional = TRUE) + } + + expect_invisible( + example_fun( + f(NULL) + ) + ) +}) + +## Test 24: `assert_symbol` throws an error if `arg` is missing ---- +test_that("assert_symbol Test 24: `assert_symbol` throws an error if `arg` is missing", { + f <- function(var) { + v <- enexpr(var) + } + + example_fun <- function(arg) { + assert_symbol(arg) + } + + expect_error( + example_fun(f()), + class = "assert_symbol" + ) + expect_snapshot(example_fun(f()), error = TRUE) +}) + +## Test 25: `assert_symbol` throws an error if `arg` is not a symbol ---- +test_that("assert_symbol Test 25: `assert_symbol` throws an error if `arg` is not a symbol", { + f <- function(var) { + v <- enexpr(var) + } + + example_fun <- function(arg) { + assert_symbol(arg) + } + + expect_error( + example_fun(f(NULL)), + class = "assert_symbol" + ) + expect_snapshot(example_fun(f(NULL)), error = TRUE) +}) + +## Test 26: `assert_symbol` does not throw an error if `arg` is a symbol ---- +test_that("assert_symbol Test 26: `assert_symbol` does not throw an error if `arg` is a symbol", { + f <- function(var) { + v <- enexpr(var) + } + + admiral_dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + ) + + example_fun <- function(arg) { + assert_symbol(arg) + } + + expect_invisible( + example_fun( + f(admiral_dm) + ) + ) +}) + +# assert_expr ---- +## Test 27: `assert_expr` does not throw an error if `arg` is an expression ---- +test_that("assert_expr Test 27: `assert_expr` does not throw an error if `arg` is an expression", { + dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + ) + + expect_invisible( + assert_expr(var <- expr(dm)) + ) +}) + +## Test 28: no error if optional is TRUE and `arg` is NULL ---- +test_that("assert_expr Test 28: no error if optional is TRUE and `arg` is NULL", { + expect_invisible( + assert_expr(var <- NULL, optional = TRUE) + ) +}) + +## Test 29: `assert_expr` throws an error if `arg` is missing ---- +test_that("assert_expr Test 29: `assert_expr` throws an error if `arg` is missing", { + expect_error( + assert_expr(), + class = "assert_expr" + ) + + expect_snapshot( + assert_expr(), + error = TRUE + ) + + example_fun <- function(data) { + assert_expr(data) + } + expect_snapshot( + example_fun(), + error = TRUE + ) +}) + +## Test 30: `assert_expr` throws an error if `arg` is not an expression ---- +test_that("assert_expr Test 30: `assert_expr` throws an error if `arg` is not an expression", { + expect_error( + { + var <- c(1, 2) + assert_expr(var) + }, + class = "assert_expr" + ) + + expect_snapshot( + { + var <- c(1, 2) + assert_expr(var) + }, + error = TRUE + ) +}) + +# assert_vars ---- +## Test 31: no error if expected input ---- +test_that("assert_vars Test 31: no error if expected input", { + expect_invisible(assert_vars(exprs(USUBJID, PARAMCD))) + expect_invisible(assert_vars( + exprs(APERSDT = APxxSDT, APEREDT = APxxEDT), + expect_names = TRUE + )) +}) + +## Test 32: error if unexpected input ---- +test_that("assert_vars Test 32: error if unexpected input", { + expect_error( + assert_vars(AVAL + 1), + class = "assert_vars" + ) + + expect_snapshot( + assert_vars(AVAL + 1), + error = TRUE + ) + + expect_error( + assert_vars(rlang::quos(USUBJID, PARAMCD)), + class = "assert_vars" + ) + + expect_snapshot( + assert_vars(rlang::quos(USUBJID, PARAMCD)), + error = TRUE + ) + + expect_error( + assert_vars(c("USUBJID", "PARAMCD", "VISIT")), + class = "assert_vars" + ) + + expect_snapshot( + assert_vars(c("USUBJID", "PARAMCD", "VISIT")), + error = TRUE + ) + + expect_error( + assert_vars(exprs(USUBJID, AVAL + 2)), + class = "assert_vars" + ) + + expect_snapshot( + assert_vars(exprs(USUBJID, AVAL + 2)), + error = TRUE + ) + + expect_error( + assert_vars(exprs(APERSDT = APxxSDT, APxxEDT), expect_names = TRUE), + class = "assert_vars" + ) + + expect_snapshot( + assert_vars(exprs(APERSDT = APxxSDT, APxxEDT), expect_names = TRUE), + error = TRUE + ) +}) + +## Test 33: error if some elements of `arg` are not unquoted variable names ---- +test_that("assert_vars Test 33: error if some elements of `arg` are not unquoted variable names", { + example_fun <- function(arg) { + assert_vars(arg) + } + + expect_error( + example_fun(exprs(USUBJID, PARAMCD, NULL)), + class = "assert_vars" + ) + + expect_snapshot( + example_fun(exprs(USUBJID, PARAMCD, NULL)), + error = TRUE + ) +}) + +# assert_integer_scalar ---- +## Test 34: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_integer_scalar Test 34: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_integer_scalar(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 35: error if chosen subset not in subsets ---- +test_that("assert_integer_scalar Test 35: error if chosen subset not in subsets", { + example_fun <- function(arg) { + assert_integer_scalar(arg, subset = "infinity") + } + + expect_error( + example_fun(1), + class = "assert_character_scalar" + ) + + expect_snapshot( + example_fun(1), + error = TRUE + ) +}) + +## Test 36: no error if `arg` is in selected subset ---- +test_that("assert_integer_scalar Test 36: no error if `arg` is in selected subset", { + example_fun <- function(arg) { + assert_integer_scalar(arg, subset = "positive") + } + + expect_invisible( + example_fun(1) + ) +}) + +## Test 37: error if `arg` is not an integer scalar ---- +test_that("assert_integer_scalar Test 37: error if `arg` is not an integer scalar", { + example_fun <- function(arg) { + assert_integer_scalar(arg) + } + + arg <- c() + + expect_error( + example_fun(TRUE), + class = "assert_integer_scalar" + ) + expect_error( + example_fun(arg), + class = "assert_integer_scalar" + ) + expect_error( + example_fun(Inf), + class = "assert_integer_scalar" + ) + expect_error( + example_fun(1.5), + class = "assert_integer_scalar" + ) + + expect_snapshot( + example_fun(1.5), + error = TRUE + ) +}) + +# assert_numeric_vector ---- +## Test 38: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_numeric_vector Test 38: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_numeric_vector(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 39: error if `arg` is not a numeric vector ---- +test_that("assert_numeric_vector Test 39: error if `arg` is not a numeric vector", { + example_fun <- function(arg) { + assert_numeric_vector(arg) + } + + arg <- c() + + expect_error( + example_fun(TRUE), + class = "assert_numeric_vector" + ) + expect_snapshot( + example_fun(TRUE), + error = TRUE + ) + + expect_error( + example_fun(arg), + class = "assert_numeric_vector" + ) + expect_snapshot( + example_fun(arg), + error = TRUE + ) + + expect_error( + example_fun("1.5"), + class = "assert_numeric_vector" + ) + expect_snapshot( + example_fun("1.5"), + error = TRUE + ) +}) + +# assert_s3_class ---- +## Test 40: error if `arg` is not an object of a specific class S3 ---- +test_that("assert_s3_class Test 40: error if `arg` is not an object of a specific class S3", { + example_fun <- function(arg) { + assert_s3_class(arg, "factor") + } + + expect_error( + example_fun("test"), + class = "assert_s3_class" + ) + expect_snapshot( + example_fun("test"), + error = TRUE + ) +}) + +## Test 41: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_s3_class Test 41: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_s3_class(arg, cls = "factor", optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 42: error if `arg` is NULL and optional is FALSE ---- +test_that("assert_s3_class Test 42: error if `arg` is NULL and optional is FALSE", { + example_fun <- function(arg) { + assert_s3_class(arg, cls = "factor", optional = FALSE) + } + + expect_error( + example_fun(NULL), + class = "assert_s3_class" + ) + expect_snapshot(example_fun(NULL), error = TRUE) +}) + +## Test 43: no error if `arg` is an object of a specific class S3 ---- +test_that("assert_s3_class Test 43: no error if `arg` is an object of a specific class S3", { + example_fun <- function(arg) { + assert_s3_class(arg, "factor") + } + + expect_invisible(example_fun(as.factor("test"))) +}) + +# assert_list_of ---- +## Test 44: error if `arg` is not a list of specific class S3 objects ---- +test_that("assert_list_of Test 44: error if `arg` is not a list of specific class S3 objects", { + example_fun <- function(arg) { + assert_list_of(arg, "factor") + } + + expect_error( + example_fun(list("test")), + class = "assert_list_of" + ) + expect_snapshot( + example_fun(list("test")), + error = TRUE + ) +}) + +## Test 45: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_list_of Test 45: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_list_of(arg, cls = "factor", optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 46: error if `arg` is NULL and optional is FALSE ---- +test_that("assert_list_of Test 46: error if `arg` is NULL and optional is FALSE", { + example_fun <- function(arg) { + assert_list_of(arg, cls = "factor", optional = FALSE) + } + + expect_error( + example_fun(NULL), + class = "assert_list_of" + ) + expect_snapshot(example_fun(NULL), error = TRUE) +}) + +## Test 47: no error if `arg` is a list of specific class S3 objects ---- +test_that("assert_list_of Test 47: no error if `arg` is a list of specific class S3 objects", { + example_fun <- function(arg) { + assert_list_of(arg, "factor") + } + + expect_invisible( + example_fun( + list(as.factor("test"), as.factor(1)) + ) + ) +}) + +## Test 48: error if `arg` is not a named list (no elements named) ---- +test_that("assert_list_of Test 48: error if `arg` is not a named list (no elements named)", { + expect_error( + { + mylist <- list(1, 2, 3) + assert_list_of(mylist, cls = "numeric", named = TRUE) + }, + class = "assert_list_of" + ) + expect_snapshot( + { + mylist <- list(1, 2, 3) + assert_list_of(mylist, cls = "numeric", named = TRUE) + }, + error = TRUE + ) +}) + +## Test 49: error if `arg` is not a named list (some elements named) ---- +test_that("assert_list_of Test 49: error if `arg` is not a named list (some elements named)", { + expect_error( + { + mylist <- list(1, 2, 3, d = 4) + assert_list_of(mylist, cls = "numeric", named = TRUE) + }, + class = "assert_list_of" + ) + expect_snapshot( + { + mylist <- list(1, 2, 3, d = 4) + assert_list_of(mylist, cls = "numeric", named = TRUE) + }, + error = TRUE + ) +}) + +## Test 50: no error if `arg` is a named list ---- +test_that("assert_list_of Test 50: no error if `arg` is a named list", { + expect_invisible( + assert_list_of(mylist <- list(a = 1, b = 2, c = 3), cls = "numeric", named = TRUE) + ) +}) + +# assert_named ---- +## Test 51: no error if arg is NULL and optional = TRUE ---- +test_that("assert_named Test 51: no error if arg is NULL and optional = TRUE", { + expect_invisible(assert_named(arg <- NULL, optional = TRUE)) +}) + +## Test 52: error if no elements are named ---- +test_that("assert_named Test 52: error if no elements are named", { + expect_error( + { + arg <- c(1, 2) + assert_named(arg) + }, + class = "assert_named" + ) + + expect_snapshot( + { + arg <- c(1, 2) + assert_named(arg) + }, + error = TRUE + ) +}) + +# assert_named_exprs ---- +## Test 53: error if `arg` is not a named list of expressions (deprecation error) ---- +test_that("assert_named_exprs Test 53: error if `arg` is not a named list of expressions (deprecation error)", { # nolint + example_fun <- function(arg) { + assert_named_exprs(arg) + } + + arg <- list("test") + names(arg) <- c("") + + expect_error( + example_fun(5), + class = "lifecycle_error_deprecated" + ) + dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + ) + expect_error( + example_fun(dm), + class = "lifecycle_error_deprecated" + ) + expect_error( + example_fun(list(1, 2, TRUE)), + class = "lifecycle_error_deprecated" + ) + expect_error( + example_fun(arg), + class = "lifecycle_error_deprecated" + ) +}) + +## Test 54: no error if `arg` is NULL and optional is TRUE (deprecation error) ---- +test_that("assert_named_exprs Test 54: no error if `arg` is NULL and optional is TRUE (deprecation error)", { # nolint + example_fun <- function(arg) { + assert_named_exprs(arg, optional = TRUE) + } + + expect_error( + example_fun(NULL), + class = "lifecycle_error_deprecated" + ) +}) + +## Test 55: no error if `arg` is a named list of expressions (deprecation error) ---- +test_that("assert_named_exprs Test 55: no error if `arg` is a named list of expressions (deprecation error)", { # nolint + example_fun <- function(arg) { + assert_named_exprs(arg) + } + + expect_error( + example_fun(rlang::exprs()), + class = "lifecycle_error_deprecated" + ) +}) + +# assert_function ---- +## Test 56: error if `arg` is not a function ---- +test_that("assert_function Test 56: error if `arg` is not a function", { + example_fun <- function(arg) { + assert_function(arg) + } + + expect_error(example_fun(5), class = "assert_function") + expect_snapshot( + example_fun(5), + error = TRUE + ) + expect_error(example_fun(), class = "assert_function") +}) + +## Test 57: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_function Test 57: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_function(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 58: no error if `arg` is a function with all parameters defined ---- +test_that("assert_function Test 58: no error if `arg` is a function with all parameters defined", { + example_fun <- function(arg) { + assert_function(arg, params = c("x")) + } + + expect_invisible(example_fun(mean)) +}) + +## Test 59: error if `params` is missing with no default ---- +test_that("assert_function Test 59: error if `params` is missing with no default", { + example_fun <- function(arg) { + assert_function(arg, params = c("x")) + } + + expect_error( + example_fun(sum), + class = "assert_function" + ) + expect_snapshot( + example_fun(sum), + error = TRUE + ) + + example_fun <- function(arg) { + assert_function(arg, params = c("x", "y")) + } + + expect_error( + example_fun(sum), + class = "assert_function" + ) + expect_snapshot( + example_fun(sum), + error = TRUE + ) +}) + +## Test 60: If dot-dot-dot is a argument ---- +test_that("assert_function Test 60: If dot-dot-dot is a argument", { + example_fun <- function(derivation, args = NULL) { + assert_function(derivation, names(args)) + } + expect_invisible(example_fun(mutate, args = exprs(AVAL = x + 1))) +}) + + + +# assert_function_param ---- +## Test 61: no error if `arg` is a parameter of a function (deprecation error) ---- +test_that("assert_function_param Test 61: no error if `arg` is a parameter of a function (deprecation error)", { # nolint + hello <- function(name) { + print(sprintf("Hello %s", name)) + } + + expect_error( + assert_function_param("hello", params = "name"), + class = "lifecycle_error_deprecated" + ) +}) + +## Test 62: error if expected function parameters are missing (deprecation error) ---- +test_that("assert_function_param Test 62: error if expected function parameters are missing (deprecation error)", { # nolint + hello <- function(name) { + print(sprintf("Hello %s", name)) + } + + expect_error( + assert_function_param("hello", "surname"), + class = "lifecycle_error_deprecated" + ) + + expect_error( + assert_function_param("hello", params = c("surname", "firstname")), + class = "lifecycle_error_deprecated" + ) +}) + +# assert_unit ---- +## Test 63: no error if the parameter is provided in the expected unit ---- +test_that("assert_unit Test 63: no error if the parameter is provided in the expected unit", { + advs <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 + ) + + expect_invisible( + assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU) + ) +}) + +## Test 64: error if there are multiple units in the input dataset ---- +test_that("assert_unit Test 64: error if there are multiple units in the input dataset", { + advs <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "lb", "WEIGHT", 85.7 + ) + + expect_error( + assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU), + class = "assert_unit" + ) + expect_snapshot( + assert_unit(advs, param = "WEIGHT", required_unit = "kg", get_unit_expr = VSSTRESU), + error = TRUE + ) +}) + +## Test 65: error if unexpected unit in the input dataset ---- +test_that("assert_unit Test 65: error if unexpected unit in the input dataset", { + advs <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 + ) + + expect_error( + assert_unit(advs, param = "WEIGHT", required_unit = "lb", get_unit_expr = VSSTRESU), + class = "assert_unit" + ) + expect_snapshot( + assert_unit(advs, param = "WEIGHT", required_unit = "lb", get_unit_expr = VSSTRESU), + error = TRUE + ) +}) + +# assert_param_does_not_exist ---- +## Test 66: error if parameter exists in the input dataset ---- +test_that("assert_param_does_not_exist Test 66: error if parameter exists in the input dataset", { + advs <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 + ) + + expect_error( + assert_param_does_not_exist(advs, param = "WEIGHT"), + class = "assert_param_does_not_exist" + ) + + expect_snapshot( + assert_param_does_not_exist(advs, param = "WEIGHT"), + error = TRUE + ) +}) + +## Test 67: no error if the parameter exists in the dataset ---- +test_that("assert_param_does_not_exist Test 67: no error if the parameter exists in the dataset", { + advs <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSTRESN, ~VSSTRESU, ~PARAMCD, ~AVAL, + "P01", "WEIGHT", 80.1, "kg", "WEIGHT", 80.1, + "P02", "WEIGHT", 85.7, "kg", "WEIGHT", 85.7 + ) + + expect_invisible( + assert_param_does_not_exist(advs, param = "HR") + ) +}) + +# assert_varval_list ---- +## Test 68: error if `arg` is not a list of var-value expressions ---- +test_that("assert_varval_list Test 68: error if `arg` is not a list of var-value expressions", { + example_fun <- function(arg) { + assert_varval_list(arg, accept_var = FALSE) + } + + expect_error( + example_fun(c("USUBJID", "PARAMCD", "VISIT")), + class = "assert_varval_list" + ) + expect_snapshot( + example_fun(c("USUBJID", "PARAMCD", "VISIT")), + error = TRUE + ) +}) + +## Test 69: error if `arg` is not a list of var-value expressions ---- +test_that("assert_varval_list Test 69: error if `arg` is not a list of var-value expressions", { + example_fun <- function(arg) { + assert_varval_list(arg, accept_var = TRUE) + } + + expect_error( + example_fun(exprs(USUBJID, PARAMCD, NULL)), + class = "assert_varval_list" + ) + expect_snapshot( + example_fun(exprs(USUBJID, PARAMCD, NULL)), + error = TRUE + ) +}) + +## Test 70: error if `required_elements` are missing from `arg` ---- +test_that("assert_varval_list Test 70: error if `required_elements` are missing from `arg`", { + example_fun <- function(arg) { + assert_varval_list(arg, required_elements = "DTHDOM") + } + + expect_error( + example_fun(exprs(DTHSEQ = AESEQ)), + class = "assert_varval_list" + ) + expect_snapshot( + example_fun(exprs(DTHSEQ = AESEQ)), + error = TRUE + ) +}) + +## Test 71: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_varval_list Test 71: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_varval_list(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 72: error if `accept_expr` is TRUE and value is invalid ---- +test_that("assert_varval_list Test 72: error if `accept_expr` is TRUE and value is invalid", { + example_fun <- function(arg) { + assert_varval_list(arg, accept_expr = TRUE) + } + + expect_error( + example_fun(exprs(DTHSEQ = TRUE)), + class = "assert_varval_list" + ) + expect_snapshot( + example_fun(exprs(DTHSEQ = TRUE)), + error = TRUE + ) +}) + +## Test 73: error if `accept_expr` is FALSE and value is invalid ---- +test_that("assert_varval_list Test 73: error if `accept_expr` is FALSE and value is invalid", { + example_fun <- function(arg) { + assert_varval_list(arg, accept_expr = FALSE) + } + + expect_error( + example_fun(exprs(DTHSEQ = exprs())), + class = "assert_varval_list" + ) + expect_snapshot( + example_fun(exprs(DTHSEQ = exprs())), + error = TRUE + ) +}) + +## Test 74: no error if an argument is a variable-value list ---- +test_that("assert_varval_list Test 74: no error if an argument is a variable-value list", { + example_fun <- function(arg) { + assert_varval_list(arg) + } + + expect_invisible( + example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ)) + ) +}) + +# assert_expr_list ---- +## Test 75: error if `arg` is not a list of expressions ---- +test_that("assert_expr_list Test 75: error if `arg` is not a list of expressions", { + expect_error( + assert_expr_list(arg <- c("USUBJID", "PARAMCD", "VISIT")), + class = "assert_expr_list" + ) +}) + +## Test 76: error if `arg` is not a named list of expressions ---- +test_that("assert_expr_list Test 76: error if `arg` is not a named list of expressions", { + expect_error( + assert_expr_list(arg <- exprs(USUBJID, PARAMCD, NULL), named = TRUE), + regexp = "argument must be named" + ) +}) + +## Test 77: error if `required_elements` are missing from `arg` ---- +test_that("assert_expr_list Test 77: error if `required_elements` are missing from `arg`", { + expect_error( + assert_expr_list( + arg <- exprs(DTHSEQ = AESEQ), + required_elements = "DTHDOM" + ), + class = "assert_expr_list" + ) +}) + +## Test 78: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_expr_list Test 78: no error if `arg` is NULL and optional is TRUE", { + expect_invisible( + assert_expr_list(NULL, optional = TRUE) + ) +}) + +## Test 79: error if element is invalid ---- +test_that("assert_expr_list Test 79: error if element is invalid", { + expect_error( + assert_expr_list(arg <- exprs(DTHSEQ = !!mean)), + class = "assert_expr_list" + ) +}) + +## Test 80: no error if argument is valid ---- +test_that("assert_expr_list Test 80: no error if argument is valid", { + expect_invisible( + assert_expr_list(arg <- exprs( + DTHDOM = "AE", + DTHSEQ = AESEQ, + DTHVAR = if_else(!is.na(AEDECOD), "AEDECOD", NA) + )) + ) +}) + +# assert_list_element ---- +## Test 81: no error if the elements fulfill a certain condition ---- +test_that("assert_list_element Test 81: no error if the elements fulfill a certain condition", { + expect_invisible( + assert_list_element( + list( + list(var = expr(DTHDT), val = 1), + list(var = expr(EOSDT), val = 0) + ), + element = "val", + condition = val >= 0, + message_text = "" + ) + ) +}) + +## Test 82: error if the elements do not fulfill the condition ---- +test_that("assert_list_element Test 82: error if the elements do not fulfill the condition", { + expect_error( + assert_list_element( + list( + list(var = expr(DTHDT), val = 1), + list(var = expr(EOSDT), val = -1) + ), + element = "val", + condition = val >= 0, + message_text = "List element {.val val} must be `>=0` in argument {.arg {arg_name}}:", + arg_name = "input" + ) + ) + + expect_snapshot( + error = TRUE, + assert_list_element( + list( + list(var = expr(DTHDT), val = 1), + list(var = expr(EOSDT), val = -1), + list(var = expr(EOSDT), val = -2) + ), + element = "val", + condition = val >= 0, + message_text = "List element {.val val} must be `>=0` in argument {.arg {arg_name}}:", + arg_name = "input" + ) + ) +}) + +# assert_one_to_one ---- +## Test 83: error if there is a one to many mapping ---- +test_that("assert_one_to_one Test 83: error if there is a one to many mapping", { + dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + "DM", "01-701-1023", + "DM", "01-701-1024", + ) + + expect_error( + assert_one_to_one(dm, exprs(DOMAIN), exprs(USUBJID)), + class = "assert_one_to_one" + ) + admiraldev_environment$one_to_many <- NULL + + expect_snapshot( + error = TRUE, + assert_one_to_one(dm, exprs(DOMAIN), exprs(USUBJID)) + ) + admiraldev_environment$one_to_many <- NULL +}) + +## Test 84: error if there is a many to one mapping ---- +test_that("assert_one_to_one Test 84: error if there is a many to one mapping", { + dm <- dplyr::tribble( + ~DOMAIN, ~USUBJID, + "DM", "01-701-1015", + "DM", "01-701-1016", + "DM", "01-701-1023", + "DM", "01-701-1024", + ) + + expect_error( + assert_one_to_one(dm, exprs(USUBJID), exprs(DOMAIN)), + class = "assert_one_to_one" + ) + admiraldev_environment$many_to_one <- NULL +}) + +## Test 85: dataset is returned invisible if one-to-one ---- +test_that("assert_one_to_one Test 85: dataset is returned invisible if one-to-one", { + df <- dplyr::tribble( + ~SPECIES, ~SPECIESN, + "DOG", 1L, + "CAT", 2L, + "DOG", 1L + ) + + df_out <- expect_invisible( + assert_one_to_one(df, vars1 = exprs(SPECIES), vars2 = exprs(SPECIESN)) + ) + + expect_equal(df_out, expected = df) +}) + +# assert_date_var ---- +## Test 86: error if variable is not a date or datetime variable ---- +test_that("assert_date_var Test 86: error if variable is not a date or datetime variable", { + example_fun <- function(dataset, var) { + var <- assert_symbol(enexpr(var)) + assert_date_var(dataset = dataset, var = !!var) + } + + my_data <- dplyr::tribble( + ~USUBJID, ~ADT, + "1", ymd("2020-12-06"), + "2", ymd("") + ) + + expect_error( + example_fun( + dataset = my_data, + var = USUBJID + ) + ) + expect_snapshot( + error = TRUE, + example_fun( + dataset = my_data, + var = USUBJID + ) + ) +}) + +# assert_date_vector ---- +## Test 87: returns error if input vector is not a date formatted ---- +test_that("assert_date_vector Test 87: returns error if input vector is not a date formatted", { + expect_error(assert_date_vector("2018-08-23")) +}) + +## Test 88: returns invisible if input is date formatted ---- +test_that("assert_date_vector Test 88: returns invisible if input is date formatted", { + expect_invisible(assert_date_vector(as.Date("2022-10-25"))) +}) + +## Test 89: no error if `arg` is NULL and optional is TRUE ---- +test_that("assert_date_vector Test 89: no error if `arg` is NULL and optional is TRUE", { + example_fun <- function(arg) { + assert_date_vector(arg, optional = TRUE) + } + + expect_invisible( + example_fun(NULL) + ) +}) + +## Test 90: error if `arg` is NULL and optional is FALSE ---- +test_that("assert_date_vector Test 90: error if `arg` is NULL and optional is FALSE", { + example_fun <- function(arg) { + assert_date_vector(arg, optional = FALSE) + } + + expect_error( + example_fun(NULL), + class = "assert_date_vector" + ) + expect_snapshot( + example_fun(NULL), + error = TRUE + ) +}) + + +# assert_atomic_vector ---- +## Test 91: error if input is not atomic vector ---- +test_that("assert_atomic_vector Test 91: error if input is not atomic vector", { + x <- list("a", "a", "b", "c", "d", "d", 1, 1, 4) + expect_error(assert_atomic_vector(x), class = "assert_atomic_vector") + expect_snapshot( + error = TRUE, + assert_atomic_vector(x) + ) +}) + +# assert_same_type ---- +## Test 92: no error if same type ---- +test_that("assert_same_type Test 92: no error if same type", { + true_value <- "Y" + false_value <- "N" + expect_invisible(assert_same_type(true_value, false_value)) +}) + +## Test 93: error if different type ---- +test_that("assert_same_type Test 93: error if different type", { + true_value <- "Y" + false_value <- "N" + missing_value <- 0 + + # perform a class match of the error message + expect_error( + assert_same_type(true_value, false_value, missing_value), + class = "assert_same_type" + ) + expect_snapshot( + error = TRUE, + assert_same_type(true_value, false_value, missing_value) + ) +}) + +## Test 94: works as intended ---- +test_that("assert_same_type Test 94: works as intended", { + expect_equal( + valid_time_units(), + c("years", "months", "days", "hours", "minutes", "seconds") + ) +}) diff --git a/tests/testthat/test-compat_friendly_type.R b/tests/testthat/test-compat_friendly_type.R new file mode 100644 index 0000000000..1dddec4541 --- /dev/null +++ b/tests/testthat/test-compat_friendly_type.R @@ -0,0 +1,102 @@ +# friendly_type_of ---- +## Test 1: friendly_type_of() supports objects ---- +test_that("friendly_type_of Test 1: friendly_type_of() supports objects", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(friendly_type_of(mtcars), "a object") + expect_equal(friendly_type_of(quo(1)), "a object") +}) + +## Test 2: friendly_type_of() supports matrices and arrays ---- +test_that("friendly_type_of Test 2: friendly_type_of() supports matrices and arrays", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(friendly_type_of(list()), "an empty list") + expect_equal(friendly_type_of(matrix(list(1, 2))), "a list matrix") + expect_equal(friendly_type_of(array(list(1, 2, 3), dim = 1:3)), "a list array") + + expect_equal(friendly_type_of(matrix(1:3)), "an integer matrix") + expect_equal(friendly_type_of(array(1:3, dim = 1:3)), "an integer array") + + expect_equal(friendly_type_of(matrix(letters)), "a character matrix") + expect_equal(friendly_type_of(array(letters[1:3], dim = 1:3)), "a character array") +}) + +## Test 3: friendly_type_of() handles scalars ---- +test_that("friendly_type_of Test 3: friendly_type_of() handles scalars", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(friendly_type_of(NA), "`NA`") + + expect_equal(friendly_type_of(TRUE), "`TRUE`") + expect_equal(friendly_type_of(FALSE), "`FALSE`") + + expect_equal(friendly_type_of(1L), "an integer") + expect_equal(friendly_type_of(1.0), "a number") + expect_equal(friendly_type_of(1i), "a complex number") + expect_equal(friendly_type_of(as.raw(1)), "a raw value") + + expect_equal(friendly_type_of("foo"), "a string") + expect_equal(friendly_type_of(""), "`\"\"`") + + expect_equal(friendly_type_of(list(1)), "a list") + + expect_equal(friendly_type_of(matrix(NA)), "a logical matrix") + expect_equal(friendly_type_of(matrix(1)), "a double matrix") +}) + +## Test 4: friendly_type_of() edge cases ---- +test_that("friendly_type_of Test 4: friendly_type_of() edge cases", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(friendly_type_of(), "absent") + expect_equal(friendly_type_of(1:2, length = TRUE), "an integer vector of length 2") + + expect_equal(friendly_type_of(list(test = 1:3)), "a list") + expect_equal(friendly_type_of(NULL), "NULL") + expect_equal(friendly_type_of(new.env(parent = emptyenv())), "an environment") + + # If we go through with adding xml2 into namespace this should work, xml2 is in renv.lock + # expect_equal(friendly_type_of(xml2::read_xml("")$node), "a pointer") nolint + + test_weakref <- rlang::new_weakref(new.env(parent = emptyenv()), + finalizer = function(e) suppressMessages(message("finalized")) + ) + expect_equal(friendly_type_of(test_weakref), "a weak reference") + + # Skip name + expect_equal(friendly_type_of(sym("test symbol")), "a symbol") + expect_equal(friendly_type_of(expr(1 + 1)), "a call") + expect_equal(friendly_type_of(pairlist(x = 1, y = 2)), "a pairlist node") + expect_equal(friendly_type_of(expression(x <- 4, x)), "an expression vector") + + # Unsure what char is in compat_friendly_type.R line 118 + # Promise seems impossible because it stops being a promise at evaluation? + # Unsure how to check for `...` + # Unsure how to check for `any` + + expect_equal(friendly_type_of(compiler::compile(quote(1 + 3))), "an internal bytecode object") + + # Skip primitive + # Skip builtin + expect_equal(friendly_type_of(switch), "a primitive function") + expect_equal(friendly_type_of(mean), "a function") +}) +# .rlang_as_friendly_type ---- +## Test 5: .rlang_as_friendly_type() works ---- +test_that(".rlang_as_friendly_type Test 5: .rlang_as_friendly_type() works", { + withr::local_options(lifecycle_verbosity = "quiet") + setClass("person", slots = c(name = "character", age = "numeric")) + john <- new("person", name = "John", age = 18) + expect_equal(.rlang_as_friendly_type(typeof(john)), "an S4 object") +}) + +# .rlang_stop_unexpected_typeof ---- +## Test 6: .rlang_stop_unexpected_typeof() works ---- +test_that(".rlang_stop_unexpected_typeof Test 6: .rlang_stop_unexpected_typeof() works", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_error(.rlang_stop_unexpected_typeof("test"), "Unexpected type .") +}) + +# stop_input_type ---- +## Test 7: stop_input_type() works ---- +test_that("stop_input_type Test 7: stop_input_type() works", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_error(stop_input_type(1, what = "character")) +}) diff --git a/tests/testthat/test-dataset_vignette.R b/tests/testthat/test-dataset_vignette.R new file mode 100644 index 0000000000..c3aa9fc1da --- /dev/null +++ b/tests/testthat/test-dataset_vignette.R @@ -0,0 +1,48 @@ +# dataset_vignette ---- +## Test 1: A 'knitr_kable' object is outputted when run outside pkgdown ---- +test_that("dataset_vignette Test 1: A 'knitr_kable' object is outputted when run outside pkgdown", { + Sys.setenv(IN_PKGDOWN = "false") # nolint: undesirable_function_linter + on.exit(Sys.setenv(IN_PKGDOWN = "")) # nolint: undesirable_function_linter + + dm <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~COUNTRY, + "STUDY1", "1", "USA", + "STUDY1", "2", "USA", + "STUDY1", "3", "USA", + "STUDY1", "4", "USA" + ) + + expect_s3_class(dataset_vignette(dm), "knitr_kable") + expect_s3_class(dataset_vignette(dm, display_vars = exprs(STUDYID, USUBJID)), "knitr_kable") +}) + +## Test 2: A 'datatables' object is outputted when run inside pkgdown ---- +test_that("dataset_vignette Test 2: A 'shiny.tag.list' is outputted when run inside pkgdown", { + Sys.setenv(IN_PKGDOWN = "true") # nolint: undesirable_function_linter + on.exit(Sys.setenv(IN_PKGDOWN = "")) # nolint: undesirable_function_linter + + dm <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~COUNTRY, + "STUDY1", "1", "USA", + "STUDY1", "2", "USA", + "STUDY1", "3", "USA", + "STUDY1", "4", "USA" + ) + + + expect_s3_class(dataset_vignette(dm), "shiny.tag.list") + expect_s3_class(dataset_vignette(dm, display_vars = exprs(STUDYID, USUBJID)), "shiny.tag.list") +}) + +## Test 3: An error is outputted when calling variable not in dataset ---- +test_that("dataset_vignette Test 3: An error is outputted when calling variable not in dataset", { + dm <- dplyr::tribble( + ~STUDYID, ~USUBJID, ~COUNTRY, + "STUDY1", "1", "USA", + "STUDY1", "2", "USA", + "STUDY1", "3", "USA", + "STUDY1", "4", "USA" + ) + + expect_error(dataset_vignette(dm, display_vars = exprs(AGE))) +}) diff --git a/tests/testthat/test-derive_extreme_event.R b/tests/testthat/test-derive_extreme_event.R index b5fcf06ddc..f334959f45 100644 --- a/tests/testthat/test-derive_extreme_event.R +++ b/tests/testthat/test-derive_extreme_event.R @@ -2,30 +2,30 @@ ## Test 1: `mode` = first ---- test_that("derive_extreme_event Test 1: `mode` = first", { input <- tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, - "1", "NO SLEEP", "N", 1, - "1", "WAKE UP", "N", 2, - "1", "FALL ASLEEP", "N", 3, - "2", "NO SLEEP", "N", 1, - "2", "WAKE UP", "Y", 2, - "2", "WAKE UP", "Y", 3, - "2", "FALL ASLEEP", "N", 4, - "3", "NO SLEEP", NA_character_, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, + "xyz", "1", "NO SLEEP", "N", 1, + "xyz", "1", "WAKE UP", "N", 2, + "xyz", "1", "FALL ASLEEP", "N", 3, + "xyz", "2", "NO SLEEP", "N", 1, + "xyz", "2", "WAKE UP", "Y", 2, + "xyz", "2", "WAKE UP", "Y", 3, + "xyz", "2", "FALL ASLEEP", "N", 4, + "xyz", "3", "NO SLEEP", NA_character_, 1 ) expected_output <- bind_rows( input, tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, - "1", "WSP", "No sleeping problems", 4, 1, - "2", "WSP", "Waking up more than three times", 2, 2, - "3", "WSP", "Missing", 99, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, + "xyz", "1", "WSP", "No sleeping problems", 4, 1, + "xyz", "2", "WSP", "Waking up more than three times", 2, 2, + "xyz", "3", "WSP", "Missing", 99, 1 ) ) actual_output <- derive_extreme_event( input, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( condition = PARAMCD == "NO SLEEP" & AVALC == "Y", @@ -69,30 +69,30 @@ test_that("derive_extreme_event Test 1: `mode` = first", { ## Test 2: `mode` = last ---- test_that("derive_extreme_event Test 2: `mode` = last", { input <- tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, - "1", "NO SLEEP", "N", 1, - "1", "WAKE UP", "N", 2, - "1", "FALL ASLEEP", "N", 3, - "2", "NO SLEEP", "N", 1, - "2", "WAKE UP", "Y", 2, - "2", "WAKE UP", "Y", 3, - "2", "FALL ASLEEP", "N", 4, - "3", "NO SLEEP", NA_character_, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, + "xyz", "1", "NO SLEEP", "N", 1, + "xyz", "1", "WAKE UP", "N", 2, + "xyz", "1", "FALL ASLEEP", "N", 3, + "xyz", "2", "NO SLEEP", "N", 1, + "xyz", "2", "WAKE UP", "Y", 2, + "xyz", "2", "WAKE UP", "Y", 3, + "xyz", "2", "FALL ASLEEP", "N", 4, + "xyz", "3", "NO SLEEP", NA_character_, 1 ) expected_output <- bind_rows( input, tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, - "1", "WSP", "No sleeping problems", 4, 3, - "2", "WSP", "Waking up more than three times", 2, 3, - "3", "WSP", "Missing", 99, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, + "xyz", "1", "WSP", "No sleeping problems", 4, 3, + "xyz", "2", "WSP", "Waking up more than three times", 2, 3, + "xyz", "3", "WSP", "Missing", 99, 1 ) ) actual_output <- derive_extreme_event( input, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( condition = PARAMCD == "NO SLEEP" & AVALC == "Y", @@ -189,7 +189,7 @@ test_that("derive_extreme_event Test 3: `source_datasets` works", { select(-ADTC) %>% derive_vars_merged( dataset_add = adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDT) ) expected <- bind_rows( @@ -217,7 +217,7 @@ test_that("derive_extreme_event Test 3: `source_datasets` works", { actual <- derive_extreme_event( dataset = adrs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADT), mode = "first", @@ -284,13 +284,13 @@ test_that("derive_extreme_event Test 3: `source_datasets` works", { ## Test 4: event-specific mode ---- test_that("derive_extreme_event Test 4: event-specific mode", { adhy <- tibble::tribble( - ~USUBJID, ~AVISITN, ~CRIT1FL, - "1", 1, "Y", - "1", 2, "Y", - "2", 1, "Y", - "2", 2, NA_character_, - "2", 3, "Y", - "2", 4, NA_character_ + ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, + "xyz", "1", 1, "Y", + "xyz", "1", 2, "Y", + "xyz", "2", 1, "Y", + "xyz", "2", 2, NA_character_, + "xyz", "2", 3, "Y", + "xyz", "2", 4, NA_character_ ) %>% mutate( PARAMCD = "ALKPH", @@ -299,7 +299,7 @@ test_that("derive_extreme_event Test 4: event-specific mode", { actual <- derive_extreme_event( adhy, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( condition = is.na(CRIT1FL), @@ -324,9 +324,9 @@ test_that("derive_extreme_event Test 4: event-specific mode", { expected <- bind_rows( adhy, tribble( - ~USUBJID, ~AVISITN, ~AVALC, - "1", 2, "Y", - "2", 2, "N" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 2, "Y", + "xyz", "2", 2, "N" ) %>% mutate( PARAMCD = "ALK2", @@ -345,16 +345,16 @@ test_that("derive_extreme_event Test 4: event-specific mode", { ## Test 5: event_joined() is handled correctly ---- test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { adsl <- tibble::tribble( - ~USUBJID, ~TRTSDTC, - "1", "2020-01-01", - "2", "2019-12-12", - "3", "2019-11-11", - "4", "2019-12-30", - "5", "2020-01-01", - "6", "2020-02-02", - "7", "2020-02-02", - "8", "2020-04-01", - "9", "2020-02-01" + ~STUDYID, ~USUBJID, ~TRTSDTC, + "xyz", "1", "2020-01-01", + "xyz", "2", "2019-12-12", + "xyz", "3", "2019-11-11", + "xyz", "4", "2019-12-30", + "xyz", "5", "2020-01-01", + "xyz", "6", "2020-02-02", + "xyz", "7", "2020-02-02", + "xyz", "8", "2020-04-01", + "xyz", "9", "2020-02-01" ) %>% mutate( TRTSDT = lubridate::ymd(TRTSDTC), @@ -362,35 +362,35 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ) adrs <- tibble::tribble( - ~USUBJID, ~ADTC, ~AVALC, - "1", "2020-01-01", "PR", - "1", "2020-02-01", "CR", - "1", "2020-02-16", "NE", - "1", "2020-03-01", "CR", - "1", "2020-04-01", "SD", - "2", "2020-01-01", "SD", - "2", "2020-02-01", "PR", - "2", "2020-03-01", "SD", - "2", "2020-03-13", "CR", - "3", "2019-11-12", "CR", - "3", "2019-12-02", "CR", - "3", "2020-01-01", "SD", - "4", "2020-01-01", "PR", - "4", "2020-03-01", "SD", - "4", "2020-04-01", "SD", - "4", "2020-05-01", "PR", - "4", "2020-05-15", "NON-CR/NON-PD", - "5", "2020-01-01", "PR", - "5", "2020-01-10", "SD", - "5", "2020-01-20", "PR", - "5", "2020-05-15", "NON-CR/NON-PD", - "6", "2020-02-06", "PR", - "6", "2020-02-16", "CR", - "6", "2020-03-30", "PR", - "7", "2020-02-06", "PR", - "7", "2020-02-16", "CR", - "7", "2020-04-01", "NE", - "9", "2020-02-16", "PD" + ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, + "xyz", "1", "2020-01-01", "PR", + "xyz", "1", "2020-02-01", "CR", + "xyz", "1", "2020-02-16", "NE", + "xyz", "1", "2020-03-01", "CR", + "xyz", "1", "2020-04-01", "SD", + "xyz", "2", "2020-01-01", "SD", + "xyz", "2", "2020-02-01", "PR", + "xyz", "2", "2020-03-01", "SD", + "xyz", "2", "2020-03-13", "CR", + "xyz", "3", "2019-11-12", "CR", + "xyz", "3", "2019-12-02", "CR", + "xyz", "3", "2020-01-01", "SD", + "xyz", "4", "2020-01-01", "PR", + "xyz", "4", "2020-03-01", "SD", + "xyz", "4", "2020-04-01", "SD", + "xyz", "4", "2020-05-01", "PR", + "xyz", "4", "2020-05-15", "NON-CR/NON-PD", + "xyz", "5", "2020-01-01", "PR", + "xyz", "5", "2020-01-10", "SD", + "xyz", "5", "2020-01-20", "PR", + "xyz", "5", "2020-05-15", "NON-CR/NON-PD", + "xyz", "6", "2020-02-06", "PR", + "xyz", "6", "2020-02-16", "CR", + "xyz", "6", "2020-03-30", "PR", + "xyz", "7", "2020-02-06", "PR", + "xyz", "7", "2020-02-16", "CR", + "xyz", "7", "2020-04-01", "NE", + "xyz", "9", "2020-02-16", "PD" ) %>% mutate( PARAMCD = "OVR", @@ -399,14 +399,14 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ) %>% derive_vars_merged( dataset_add = adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDT) ) actual <- derive_extreme_event( adrs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), tmp_event_nr_var = event_nr, order = exprs(event_nr, ADT), mode = "first", @@ -486,16 +486,16 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { expected <- bind_rows( adrs, tibble::tribble( - ~USUBJID, ~ADTC, ~AVALC, - "1", "2020-02-01", "CR", - "2", "2020-02-01", "SD", - "3", "2020-01-01", "SD", - "4", "2020-03-01", "SD", - "5", "2020-05-15", "NON-CR/NON-PD", - "6", "2020-03-30", "SD", - "7", "2020-02-06", "NE", - "8", NA_character_, "MISSING", - "9", "2020-02-16", "PD" + ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, + "xyz", "1", "2020-02-01", "CR", + "xyz", "2", "2020-02-01", "SD", + "xyz", "3", "2020-01-01", "SD", + "xyz", "4", "2020-03-01", "SD", + "xyz", "5", "2020-05-15", "NON-CR/NON-PD", + "xyz", "6", "2020-03-30", "SD", + "xyz", "7", "2020-02-06", "NE", + "xyz", "8", NA_character_, "MISSING", + "xyz", "9", "2020-02-16", "PD" ) %>% mutate( ADT = lubridate::ymd(ADTC), @@ -505,7 +505,7 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ) %>% derive_vars_merged( dataset_add = adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(TRTSDT) ) ) @@ -520,16 +520,16 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ## Test 6: no tmp_event_nr_var ---- test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { adrs <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVALC, - "1", 1, "PR", - "1", 2, "CR", - "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") actual <- derive_extreme_event( adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), mode = "first", events = list( @@ -556,8 +556,8 @@ test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { expected <- bind_rows( adrs, tibble::tribble( - ~USUBJID, ~AVISITN, ~AVALC, ~PARAMCD, - "1", 1, "Y", "CRSP" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, ~PARAMCD, + "xyz", "1", 1, "Y", "CRSP" ) ) @@ -571,22 +571,22 @@ test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { ## Test 7: mode and condition used in event() ---- test_that("derive_extreme_event Test 7: mode and condition used in event()", { mydata <- tibble::tribble( - ~USUBJID, ~CRIT1FL, ~ADY, - "1", "Y", 1, - "1", "Y", 2, - "2", "N", 1 + ~STUDYID, ~USUBJID, ~CRIT1FL, ~ADY, + "xyz", "1", "Y", 1, + "xyz", "1", "Y", 2, + "xyz", "2", "N", 1 ) expected <- tibble::tribble( - ~USUBJID, ~CRIT1FL, ~ADY, - "1", "Y", 1 + ~STUDYID, ~USUBJID, ~CRIT1FL, ~ADY, + "xyz", "1", "Y", 1 ) expect_dfs_equal( base = expected, compare = derive_extreme_event( source_datasets = list(mydata = mydata), - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADY), mode = "first", events = list( @@ -604,13 +604,13 @@ test_that("derive_extreme_event Test 7: mode and condition used in event()", { ## Test 8: error if source dataset not available ---- test_that("derive_extreme_event Test 8: error if source dataset not available", { adhy <- tibble::tribble( - ~USUBJID, ~AVISITN, ~CRIT1FL, - "1", 1, "Y", - "1", 2, "Y", - "2", 1, "Y", - "2", 2, NA_character_, - "2", 3, "Y", - "2", 4, NA_character_ + ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, + "xyz", "1", 1, "Y", + "xyz", "1", 2, "Y", + "xyz", "2", 1, "Y", + "xyz", "2", 2, NA_character_, + "xyz", "2", 3, "Y", + "xyz", "2", 4, NA_character_ ) %>% mutate( PARAMCD = "ALKPH", @@ -620,7 +620,7 @@ test_that("derive_extreme_event Test 8: error if source dataset not available", expect_snapshot( derive_extreme_event( adhy, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "adyh", @@ -650,17 +650,17 @@ test_that("derive_extreme_event Test 8: error if source dataset not available", ## Test 9: deprecation of ignore_event_order ---- test_that("derive_extreme_event Test 9: deprecation of ignore_event_order", { adrs <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVALC, - "1", 1, "PR", - "1", 2, "CR", - "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") expect_error( derive_extreme_event( adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), mode = "first", events = list( @@ -691,17 +691,17 @@ test_that("derive_extreme_event Test 9: deprecation of ignore_event_order", { ## Test 10: deprecation of ignore_event_order ---- test_that("derive_extreme_event Test 10: deprecation of ignore_event_order", { adrs <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVALC, - "1", 1, "PR", - "1", 2, "CR", - "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") expect_error( derive_extreme_event( adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN), mode = "first", events = list( diff --git a/tests/testthat/test-derive_extreme_records.R b/tests/testthat/test-derive_extreme_records.R index a083da8404..544d203aca 100644 --- a/tests/testthat/test-derive_extreme_records.R +++ b/tests/testthat/test-derive_extreme_records.R @@ -2,21 +2,21 @@ ## Test 1: add last observation for each group ---- test_that("derive_extreme_records Test 1: add last observation for each group", { input <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - "1", 1, 12, 1, - "1", 3, 9, 2, - "2", 2, 42, 1, - "3", 3, 14, 1, - "3", 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", "1", 1, 12, 1, + "xyz", "1", 3, 9, 2, + "xyz", "2", 2, 42, 1, + "xyz", "3", 3, 14, 1, + "xyz", "3", 3, 10, 2 ) expected_output <- bind_rows( input, tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - "1", 3, 9, 2, - "2", 2, 42, 1, - "3", 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", "1", 3, 9, 2, + "xyz", "2", 2, 42, 1, + "xyz", "3", 3, 10, 2 ) %>% mutate(DTYPE = "LOV") ) @@ -25,7 +25,7 @@ test_that("derive_extreme_records Test 1: add last observation for each group", input, dataset_add = input, order = exprs(AVISITN, LBSEQ), - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), mode = "last", set_values_to = exprs(DTYPE = "LOV") ) @@ -74,7 +74,7 @@ test_that("derive_extreme_records Test 2: derive first PD date", { adrs, dataset_ref = adsl, dataset_add = adrs, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = PARAMCD == "OVR" & AVALC == "PD", exist_flag = AVALC, order = exprs(ADT), @@ -121,7 +121,7 @@ test_that("derive_extreme_records Test 3: derive death date parameter", { actual <- derive_extreme_records( dataset_ref = adsl, dataset_add = adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = !is.na(DTHDT), exist_flag = AVAL, true_value = 1, @@ -192,7 +192,7 @@ test_that("derive_extreme_records Test 4: latest evaluable tumor assessment date dataset = adrs, dataset_ref = adsl, dataset_add = adrs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = PARAMCD == "OVR" & AVALC != "NE", order = exprs(ADT), exist_flag = AVALC, @@ -267,7 +267,7 @@ test_that("derive_extreme_records Test 5: latest evaluable tumor assessment date dataset = adrs, dataset_ref = adsl, dataset_add = adrs, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), filter_add = PARAMCD == "OVR" & AVALC != "NE", order = exprs(ADT), mode = "last", @@ -314,23 +314,23 @@ test_that("derive_extreme_records Test 6: error if no dataset_add", { ## Test 7: keep vars in `keep_source_vars` in the new records ---- test_that("derive_extreme_records Test 7: keep vars in `keep_source_vars` in the new records", { input <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - 1, 1, 12, 1, - 1, 3, 9, 2, - 2, 2, 42, 1, - 3, 3, 14, 1, - 3, 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", 1, 1, 12, 1, + "xyz", 1, 3, 9, 2, + "xyz", 2, 2, 42, 1, + "xyz", 3, 3, 14, 1, + "xyz", 3, 3, 10, 2 ) expected_output <- bind_rows( input, tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - 1, 3, 9, 2, - 2, 2, 42, 1, - 3, 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", 1, 3, 9, 2, + "xyz", 2, 2, 42, 1, + "xyz", 3, 3, 10, 2 ) %>% - select(USUBJID, AVISITN, AVAL) %>% + select(!!!get_admiral_option("subject_keys"), AVISITN, AVAL) %>% mutate(DTYPE = "LOV") ) @@ -338,7 +338,7 @@ test_that("derive_extreme_records Test 7: keep vars in `keep_source_vars` in the input, dataset_add = input, order = exprs(AVISITN, LBSEQ), - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), mode = "last", keep_source_vars = exprs(AVISITN, AVAL), set_values_to = exprs(DTYPE = "LOV") @@ -354,21 +354,21 @@ test_that("derive_extreme_records Test 7: keep vars in `keep_source_vars` in the ## Test 8: keep all vars in the new records when `keep_source_vars` is 'exprs(everything())' ---- test_that("derive_extreme_records Test 8: keep all vars in the new records when `keep_source_vars` is 'exprs(everything())'", { # nolint input <- tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - 1, 1, 12, 1, - 1, 3, 9, 2, - 2, 2, 42, 1, - 3, 3, 14, 1, - 3, 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", 1, 1, 12, 1, + "xyz", 1, 3, 9, 2, + "xyz", 2, 2, 42, 1, + "xyz", 3, 3, 14, 1, + "xyz", 3, 3, 10, 2 ) expected_output <- bind_rows( input, tibble::tribble( - ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, - 1, 3, 9, 2, - 2, 2, 42, 1, - 3, 3, 10, 2 + ~STUDYID, ~USUBJID, ~AVISITN, ~AVAL, ~LBSEQ, + "xyz", 1, 3, 9, 2, + "xyz", 2, 2, 42, 1, + "xyz", 3, 3, 10, 2 ) %>% mutate(DTYPE = "LOV") ) @@ -377,7 +377,7 @@ test_that("derive_extreme_records Test 8: keep all vars in the new records when input, dataset_add = input, order = exprs(AVISITN, LBSEQ), - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), mode = "last", keep_source_vars = exprs(everything()), set_values_to = exprs(DTYPE = "LOV") @@ -393,22 +393,22 @@ test_that("derive_extreme_records Test 8: keep all vars in the new records when ## Test 9: order vars from dataset_add ---- test_that("derive_extreme_records Test 9: order vars from dataset_add", { bds <- tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, - "1", "PARAM", "1" + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, + "xyz", "1", "PARAM", "1" ) xx <- tibble::tribble( - ~USUBJID, ~XXTESTCD, ~XXSEQ, - "1", "A", 1, - "1", "A", 2, - "1", "B", 3 + ~STUDYID, ~USUBJID, ~XXTESTCD, ~XXSEQ, + "xyz", "1", "A", 1, + "xyz", "1", "A", 2, + "xyz", "1", "B", 3 ) actual <- derive_extreme_records( bds, dataset_add = xx, dataset_ref = bds, - by_vars = exprs(USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(XXSEQ), mode = "first", filter_add = XXTESTCD == "A", @@ -419,9 +419,9 @@ test_that("derive_extreme_records Test 9: order vars from dataset_add", { ) expected <- tibble::tribble( - ~USUBJID, ~PARAMCD, ~AVALC, ~XXTESTCD, ~XXSEQ, - "1", "PARAM", "1", NA_character_, NA_real_, - "1", "XXFL", "Y", "A", 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~XXTESTCD, ~XXSEQ, + "xyz", "1", "PARAM", "1", NA_character_, NA_real_, + "xyz", "1", "XXFL", "Y", "A", 1 ) expect_dfs_equal( diff --git a/tests/testthat/test-derive_joined.R b/tests/testthat/test-derive_joined.R index dcfe349d89..803e0aadac 100644 --- a/tests/testthat/test-derive_joined.R +++ b/tests/testthat/test-derive_joined.R @@ -297,7 +297,7 @@ test_that("derive_vars_joined Test 9: fixing a bug from issue 1966", { # nolint adlb_joined <- derive_vars_joined( adlb_ast, dataset_add = adlb_tbili_pbl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM, ASEQ), join_type = "all", new_vars = exprs(TBILI_ADT = ADT), diff --git a/tests/testthat/test-derive_param_tte.R b/tests/testthat/test-derive_param_tte.R index 0feeb4b236..548da8d2f4 100644 --- a/tests/testthat/test-derive_param_tte.R +++ b/tests/testthat/test-derive_param_tte.R @@ -833,7 +833,7 @@ test_that("derive_param_tte Test 12: test dataset and dynamic byvars populated", ) actual_output <- derive_param_tte( - dataset = adsl %>% select(STUDYID, USUBJID) %>% mutate(PARAMCD = "XYZ"), + dataset = adsl %>% select(!!!get_admiral_option("subject_keys")) %>% mutate(PARAMCD = "XYZ"), dataset_adsl = adsl, by_vars = exprs(AEDECOD), start_date = TRTSDT, @@ -849,7 +849,7 @@ test_that("derive_param_tte Test 12: test dataset and dynamic byvars populated", ) expected_output <- bind_rows( - adsl %>% select(STUDYID, USUBJID) %>% mutate(PARAMCD = "XYZ"), + adsl %>% select(!!!get_admiral_option("subject_keys")) %>% mutate(PARAMCD = "XYZ"), tibble::tribble( ~USUBJID, ~EVNTDESC, ~SRCDOM, ~SRCVAR, ~SRCSEQ, ~CNSR, ~ADT, "01", "AE", "AE", "AESTDTC", 2, 0L, ymd("2021-03-04"), diff --git a/tests/testthat/test-derive_vars_extreme_event.R b/tests/testthat/test-derive_vars_extreme_event.R index 369ea283ce..f1d598b73f 100644 --- a/tests/testthat/test-derive_vars_extreme_event.R +++ b/tests/testthat/test-derive_vars_extreme_event.R @@ -11,7 +11,7 @@ test_that("derive_vars_extreme_event Test 1: derive_vars_extreme_event", { actual <- derive_vars_extreme_event( adsl, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), events = list( event( dataset_name = "adsl", diff --git a/tests/testthat/test-dev_utilities.R b/tests/testthat/test-dev_utilities.R new file mode 100644 index 0000000000..379c9b8e84 --- /dev/null +++ b/tests/testthat/test-dev_utilities.R @@ -0,0 +1,105 @@ +# arg_name ---- +## Test 1: arg_name works ---- +test_that("arg_name Test 1: arg_name works", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(arg_name(sym("a")), "a") + expect_equal(arg_name(call("enquo", sym("a"))), "a") + expect_error(arg_name("a"), "Could not extract argument name from") +}) + +# convert_dtm_to_dtc ---- +## Test 2: works if dtm is in correct format ---- +test_that("convert_dtm_to_dtc Test 2: works if dtm is in correct format", { + expect_equal( + convert_dtm_to_dtc(as.POSIXct("2022-04-05 15:34:07 UTC")), + "2022-04-05T15:34:07" + ) +}) + +## Test 3: Error is thrown if dtm is not in correct format ---- +test_that("convert_dtm_to_dtc Test 3: Error is thrown if dtm is not in correct format", { + expect_error( + convert_dtm_to_dtc("2022-04-05T15:26:14"), + "lubridate::is.instant(dtm) is not TRUE", + fixed = TRUE + ) +}) + +# filter_if ---- +## Test 4: Input is returned as is if filter is NULL ---- +test_that("filter_if Test 4: Input is returned as is if filter is NULL", { + input <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSSTRESN, + "P01", "WEIGHT", 80.9, + "P01", "HEIGHT", 189.2 + ) + + expected_output <- input + + expect_dfs_equal( + expected_output, + filter_if(input, expr(NULL)), + keys = c("USUBJID", "VSTESTCD") + ) +}) + +## Test 5: Input is filtered if filter is not NULL ---- +test_that("filter_if Test 5: Input is filtered if filter is not NULL", { + input <- dplyr::tribble( + ~USUBJID, ~VSTESTCD, ~VSSTRESN, + "P01", "WEIGHT", 80.9, + "P01", "HEIGHT", 189.2 + ) + + expected_output <- input[1L, ] + + expect_dfs_equal( + expected_output, + filter_if(input, expr(VSTESTCD == "WEIGHT")), + keys = c("USUBJID", "VSTESTCD") + ) +}) + +# contains_vars ---- +## Test 6: returns TRUE for valid arguments ---- +test_that("contains_vars Test 6: returns TRUE for valid arguments", { + expect_true(contains_vars(exprs(USUBJID, PARAMCD))) +}) + +## Test 7: returns TRUE for valid arguments ---- +test_that("contains_vars Test 7: returns TRUE for valid arguments", { + expect_error(contains_vars(USUBJID)) +}) +# vars2chr ---- +## Test 8: returns character vector ---- +test_that("vars2chr Test 8: returns character vector", { + expected <- c("STUDYID", "USUBJID") + names(expected) <- c("", "") + expect_equal(vars2chr(exprs(STUDYID, USUBJID)), expected) +}) + +# extract_vars ---- +## Test 9: works with formulas (lhs) ---- +test_that("extract_vars Test 9: works with formulas (lhs)", { + expect_equal( + object = extract_vars(AVAL ~ ARMCD + AGEGR1), + expected = unname(exprs(AVAL)) + ) +}) + +## Test 10: works with formulas (rhs) ---- +test_that("extract_vars Test 10: works with formulas (rhs)", { + expect_equal( + object = extract_vars(AVAL ~ ARMCD + AGEGR1, side = "rhs"), + expected = unname(exprs(ARMCD, AGEGR1)) + ) +}) + +## Test 11: works with calls ---- +test_that("extract_vars Test 11: works with calls", { + fun <- mean + expect_equal( + object = extract_vars(expr({{ fun }}((BASE - AVAL) / BASE * 100, LLQ / 2))), + expected = unname(exprs(BASE, AVAL, LLQ)) + ) +}) diff --git a/tests/testthat/test-get.R b/tests/testthat/test-get.R new file mode 100644 index 0000000000..d92a86e045 --- /dev/null +++ b/tests/testthat/test-get.R @@ -0,0 +1,87 @@ +# get_constant_vars ---- +## Test 1: without ignore_vars ---- +test_that("get_constant_vars Test 1: without ignore_vars", { + data <- dplyr::tribble( + ~USUBJID, ~AGE, ~AVISIT, + "1", 26, "BASELINE", + "1", 26, "WEEK 1", + "2", 42, "BASELINE", + "2", 42, "WEEK 1" + ) + + expect_equal( + get_constant_vars(data, by_vars = exprs(USUBJID)), + exprs(USUBJID, AGE) + ) +}) + +## Test 2: with ignore_vars ---- +test_that("get_constant_vars Test 2: with ignore_vars", { + data <- dplyr::tribble( + ~USUBJID, ~AGE, ~WGTBL, ~HGTBL, ~AVISIT, + "1", 26, 61, 172, "BASELINE", + "1", 26, 61, 172, "WEEK 1", + "2", 42, 72, 183, "BASELINE", + "2", 42, 72, 183, "WEEK 1" + ) + + expect_equal( + get_constant_vars(data, by_vars = exprs(USUBJID), ignore_vars = exprs(WGTBL, HGTBL)), + exprs(USUBJID, AGE) + ) +}) + +# get_duplicates ---- +## Test 3: x atomic vector ---- +test_that("get_duplicates Test 3: x atomic vector", { + x <- c("a", "a", "b", "c", "d", "d", 1, 1, 4) + + expect_equal( + get_duplicates(x), + c("a", "d", 1) + ) +}) + +# get_source_vars ---- +## Test 4: x is a list of expressions ---- +test_that("get_source_vars Test 4: x is a list of expressions", { + x <- exprs(DTHDOM = "AE", DTHSEQ = AESEQ) + + expect_equal( + get_source_vars(x), + x[2] + ) +}) + +## Test 5: NULL returns NULL ---- +test_that("get_source_vars Test 5: NULL returns NULL", { + expect_equal( + get_source_vars(NULL), + NULL + ) +}) + +## Test 6: no source vars returns NULL ---- +test_that("get_source_vars Test 6: no source vars returns NULL", { + expect_equal( + get_source_vars(x <- exprs(DTHDOM = "AE", DTHVAR = "AEDECOD")), + NULL + ) +}) + +# get_dataset ---- +## Test 7: get_dataset works ---- +test_that("get_dataset Test 7: get_dataset works", { + admiraldev_environment$many_to_one <- NULL + admiraldev_environment$one_to_many <- NULL + + expect_equal(NULL, get_dataset("one_to_many")) +}) + +## Test 8: get_dataset works ---- +test_that("get_dataset Test 8: get_dataset works", { + expect_error( + get_dataset("test"), + class = "assert_character_scalar" + ) +}) diff --git a/tests/testthat/test-is.R b/tests/testthat/test-is.R new file mode 100644 index 0000000000..cee5944c7d --- /dev/null +++ b/tests/testthat/test-is.R @@ -0,0 +1,26 @@ +# is_order_vars ---- +## Test 1: returns error if input were created incorrectly ---- +test_that("is_order_vars Test 1: returns error if input were created incorrectly", { + expect_error(is_order_vars(STUDYID)) +}) + +## Test 2: returns TRUE if input were created correctly ---- +test_that("is_order_vars Test 2: returns TRUE if input were created correctly", { + expect_true(is_order_vars(exprs(AVAL, desc(ADT)))) +}) + +# is_valid_dtc ---- +## Test 3: returns TRUE if input are valid dtc ---- +test_that("is_valid_dtc Test 3: returns TRUE if input are valid dtc", { + expect_true(is_valid_dtc("2020")) + expect_true(is_valid_dtc("2022-09")) + expect_true(is_valid_dtc("2021-04-06")) + expect_true(is_valid_dtc("2003-12-15T13:15")) + expect_true(is_valid_dtc("2021-03-09T01:20:30")) +}) + +# is_valid_dtc ---- +## Test 4: returns error if input if input are NOT valid dtc ---- +test_that("is_valid_dtc Test 4: returns error if input if input are NOT valid dtc ", { + expect_false(is_valid_dtc("2021-03-T01:20:30")) +}) diff --git a/tests/testthat/test-process_set_values_to.R b/tests/testthat/test-process_set_values_to.R new file mode 100644 index 0000000000..40e02710b6 --- /dev/null +++ b/tests/testthat/test-process_set_values_to.R @@ -0,0 +1,78 @@ +## Test 1: add variables ---- +test_that("process_set_values_to Test 1: add variables", { + bds <- dplyr::tribble( + ~USUBJID, ~AVAL, + "1", 20, + "2", 35 + ) + expected <- bds %>% + mutate( + PARAMCD = "BMI", + PARAM = "Body-Mass-Index", + PARAMN = 1 + ) + expect_dfs_equal( + base = expected, + compare = process_set_values_to( + bds, + set_values_to = exprs( + PARAMCD = "BMI", + PARAM = "Body-Mass-Index", + PARAMN = 1 + ), + expected_types = c( + PARAMCD = "character", + PARAM = "character", + PARAMN = "numeric" + ) + ), + keys = c("USUBJID") + ) +}) + +## Test 2: catch error ---- +test_that("process_set_values_to Test 2: catch error", { + bds <- dplyr::tribble( + ~USUBJID, ~AVAL, + "1", 20, + "2", 35 + ) + + expect_snapshot( + error = TRUE, + process_set_values_to( + bds, + set_values_to = exprs( + PARAMCD = BMI, + PARAM = "Body-Mass-Index", + PARAMN = 1 + ) + ) + ) +}) + +## Test 3: check types ---- +test_that("process_set_values_to Test 3: check types", { + bds <- dplyr::tribble( + ~USUBJID, ~AVAL, + "1", 20, + "2", 35 + ) + + expect_snapshot( + error = TRUE, + process_set_values_to( + bds, + set_values_to = exprs( + PARAMCD = 1, + PARAM = "Body-Mass-Index", + PARAMN = "BMI" + ), + expected_types = c( + PARAMCD = "character", + PARAM = "character", + PARAMN = "numeric" + ) + ) + ) +}) diff --git a/tests/testthat/test-quo.R b/tests/testthat/test-quo.R new file mode 100644 index 0000000000..79e010fef9 --- /dev/null +++ b/tests/testthat/test-quo.R @@ -0,0 +1,140 @@ +# expr_c ---- +## Test 1: concatenating and indexing expressions ---- +test_that("expr_c Test 1: concatenating and indexing expressions", { + x <- expr(USUBJID) + y <- expr(STUDYID) + + expect_equal( + expected = expr(USUBJID), + object = expr_c(x, NULL, y)[[1]] + ) + expect_equal( + expected = expr(STUDYID), + object = expr_c(x, NULL, y)[[2]] + ) +}) + +## Test 2: concatenating named list of expressions ---- +test_that("expr_c Test 2: concatenating named list of expressions", { + expect_equal( + expected = exprs(PARAMCD = "DOSE", PARAMN = 1), + object = expr_c(exprs(PARAMCD = "DOSE", PARAMN = 1, NULL)) + ) +}) + +## Test 3: concatenating list and single expression ---- +test_that("expr_c Test 3: concatenating list and single expression", { + expect_equal( + expected = exprs(PARAMCD, PARAM, AVAL), + object = expr_c(exprs(PARAMCD, PARAM), expr(AVAL)) + ) +}) + +## Test 4: returns error if non-expressions are input ---- +test_that("expr_c Test 4: returns error if non-expressions are input", { + expect_error( + object = expr_c(expr(USUBJID), mean) + ) +}) + +# replace_values_by_names ---- +## Test 5: names of expressions replace value ---- +test_that("replace_values_by_names Test 5: names of expressions replace value", { + z <- exprs(USUBJID, STUDYID) + + z_noname <- replace_values_by_names(z) + + names(z) <- c("Unique Subject Identifier", "Study Identifier") + z_named <- replace_values_by_names(z) + + expect_equal( + expected = expr(USUBJID), + object = z_noname[[1]] + ) + expect_equal( + expected = expr(STUDYID), + object = z_noname[[2]] + ) + + expect_equal( + expected = expr(`Unique Subject Identifier`), + object = z_named[[1]] + ) + expect_equal( + expected = expr(`Study Identifier`), + object = z_named[[2]] + ) +}) + +## Test 6: names of argument is NULL ---- +test_that("replace_values_by_names Test 6: names of argument is NULL", { + z <- exprs(USUBJID, STUDYID) + names(z) <- NULL + + expect_equal( + expected = z, + object = replace_values_by_names(z) + ) +}) + +# replace_symbol_in_expr ---- +## Test 7: symbol is replaced ---- +test_that("replace_symbol_in_expr Test 7: symbol is replaced", { + expect_equal( + expected = expr(AVAL.join), + object = replace_symbol_in_expr( + expr(AVAL), + target = AVAL, + replace = AVAL.join + ) + ) +}) + +## Test 8: partial match is not replaced ---- +test_that("replace_symbol_in_expr Test 8: partial match is not replaced", { + expect_equal( + expected = expr(AVALC), + object = replace_symbol_in_expr( + expr(AVALC), + target = AVAL, + replace = AVAL.join + ) + ) +}) + +## Test 9: symbol in expression is replaced ---- +test_that("replace_symbol_in_expr Test 9: symbol in expression is replaced", { + expect_equal( + expected = expr(desc(AVAL.join)), + object = replace_symbol_in_expr( + expr(desc(AVAL)), + target = AVAL, + replace = AVAL.join + ) + ) +}) + +# add_suffix_to_vars ---- +## Test 10: with single variable ---- +test_that("add_suffix_to_vars Test 10: with single variable", { + expect_equal( + expected = exprs(ADT, desc(AVAL.join), AVALC), + object = add_suffix_to_vars( + exprs(ADT, desc(AVAL), AVALC), + vars = exprs(AVAL), + suffix = ".join" + ) + ) +}) + +## Test 11: with more than one variable ---- +test_that("add_suffix_to_vars Test 11: with more than one variable", { + expect_equal( + expected = exprs(ADT, desc(AVAL.join), AVALC.join), + object = add_suffix_to_vars( + exprs(ADT, desc(AVAL), AVALC), + vars = exprs(AVAL, AVALC), + suffix = ".join" + ) + ) +}) diff --git a/tests/testthat/test-quote.R b/tests/testthat/test-quote.R new file mode 100644 index 0000000000..e89ec0363f --- /dev/null +++ b/tests/testthat/test-quote.R @@ -0,0 +1,24 @@ +# enumerate ---- +## Test 1: enumerate works ---- +test_that("enumerate Test 1: enumerate works", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_equal(enumerate(letters[1]), "`a`") + expect_equal(enumerate(letters[1:3]), "`a`, `b` and `c`") + expect_equal(enumerate(1:3, quote_fun = NULL), "1, 2 and 3") +}) + +# squote ---- +## Test 2: squote works ---- +test_that("squote Test 2: squote works", { + expect_equal(squote(letters[1]), "'a'") + expect_equal(squote(letters[1:3]), c("'a'", "'b'", "'c'")) +}) + +# dquote ---- +## Test 3: dquote works ---- +test_that("dquote Test 3: dquote works", { + expect_equal(dquote(letters[1]), "\"a\"") + expect_equal(dquote(letters[1:3]), c("\"a\"", "\"b\"", "\"c\"")) + x <- NULL + expect_equal(dquote(x), "NULL") +}) diff --git a/tests/testthat/test-test_helpers.R b/tests/testthat/test-test_helpers.R new file mode 100644 index 0000000000..07ff21f144 --- /dev/null +++ b/tests/testthat/test-test_helpers.R @@ -0,0 +1,11 @@ +# expect_dfs_equal ---- +## Test 1: expect_dfs_equal works ---- +test_that("expect_dfs_equal Test 1: expect_dfs_equal works", { + a <- data.frame(x = 1:3, y = 4:6) + b <- data.frame(x = 1:3, y = 5:7) + + expect_error( + expect_dfs_equal(a, b, keys = "x"), + regexp = "Differences found\\.*" + ) +}) diff --git a/tests/testthat/test-tmp_vars.R b/tests/testthat/test-tmp_vars.R new file mode 100644 index 0000000000..4356d95590 --- /dev/null +++ b/tests/testthat/test-tmp_vars.R @@ -0,0 +1,66 @@ +dm <- dplyr::tribble( + ~USUBJID, + "01-701-1015", + "01-701-1016", +) + +# get_new_tmp_var ---- +## Test 1: creating temporary variables works ---- +test_that("get_new_tmp_var Test 1: creating temporary variables works", { + expect_identical(get_new_tmp_var(dm), sym("tmp_var_1")) +}) + +## Test 2: errors if name does not start with tmp ---- +test_that("get_new_tmp_var Test 2: errors if name does not start with tmp", { + expect_snapshot( + error = TRUE, + get_new_tmp_var(dm, prefix = "my_var") + ) +}) + +## Test 3: the temporary variable counter is increased correctly ---- +test_that("get_new_tmp_var Test 3: the temporary variable counter is increased correctly", { + dm$tmp_var_1 <- NA + dm$tmp_var_2 <- NA + expect_identical(get_new_tmp_var(dm), sym("tmp_var_3")) +}) + +# remove_tmp_vars ---- +## Test 4: no variables are removed when no tmp vars are present ---- +test_that("remove_tmp_vars Test 4: no variables are removed when no tmp vars are present", { + expect_identical(dm, remove_tmp_vars(dm)) +}) + +## Test 5: removing temporary variables works ---- +test_that("remove_tmp_vars Test 5: removing temporary variables works", { + tmp_var <- get_new_tmp_var(dm) + dm <- mutate(dm, !!tmp_var := NA) + do_something <- function(dataset) { + tmp_var_1 <- get_new_tmp_var(dm) + tmp_var_2 <- get_new_tmp_var(dm) + dm <- mutate(dm, !!tmp_var_1 := NA, !!tmp_var_2 := NA) + remove_tmp_vars(dm) + } + expect_identical(colnames(dm), colnames(do_something(dm))) +}) + +## Test 6: removing temp variables works with the pipe operator ---- +test_that("remove_tmp_vars Test 6: removing temp variables works with the pipe operator", { + tmp_var <- get_new_tmp_var(dm) + dm <- mutate(dm, !!tmp_var := NA) + do_something_with_pipe <- function(dataset) { + tmp_var_1 <- get_new_tmp_var(dm) + tmp_var_2 <- get_new_tmp_var(dm) + dm %>% + mutate(!!tmp_var_1 := NA, !!tmp_var_2 := NA) %>% + remove_tmp_vars() + } + expect_identical(colnames(dm), colnames(do_something_with_pipe(dm))) +}) + + +## Test 7: running get_new_tmp_var on NULL dataset creates generic variable ---- +test_that("running get_new_tmp_var on NULL dataset creates generic variable", { + df <- NULL + expect_identical(get_new_tmp_var(df), sym("tmp_var_1")) +}) diff --git a/tests/testthat/test-warnings.R b/tests/testthat/test-warnings.R new file mode 100644 index 0000000000..c46ef3f137 --- /dev/null +++ b/tests/testthat/test-warnings.R @@ -0,0 +1,77 @@ +# warn_if_vars_exist ---- +## Test 1: warning if a variable already exists in the input dataset ---- +test_that("warn_if_vars_exist Test 1: warning if a variable already exists in the input dataset", { + dm <- dplyr::tribble( + ~USUBJID, ~AGE, ~AGEU, ~ARM, + "01-701-1015", 25, "YEARS", "Placebo", + "01-701-1016", 27, "YEARS", "Placebo", + ) + + expect_snapshot( + warn_if_vars_exist(dm, "AGE") + ) + expect_snapshot( + warn_if_vars_exist(dm, c("AGE", "AGEU", "ARM")) + ) + expect_snapshot( + warn_if_vars_exist(dm, c("AAGE", "AGEU", "ARM")) + ) + expect_warning( + warn_if_vars_exist(dm, "AAGE"), + NA + ) +}) + +# warn_if_invalid_dtc ---- +## Test 2: Warning if vector contains unknown datetime format ---- +test_that("warn_if_invalid_dtc Test 2: Warning if vector contains unknown datetime format", { + expect_snapshot( + warn_if_invalid_dtc(dtc = "20210406T12:30:30") + ) +}) + +# warn_if_inclomplete_dtc ---- +## Test 3: Warning if vector contains an incomplete dtc ---- +test_that("warn_if_inclomplete_dtc Test 3: Warning if vector contains an incomplete date", { + expect_warning( + warn_if_incomplete_dtc("2021-04", n = 10) + ) +}) + +# warn_if_inclomplete_dtc ---- +## Test 4: Warning if vector contains an incomplete dtc ---- +test_that("warn_if_inclomplete_dtc Test 4: Warning if vector contains an incomplete datetime", { + expect_warning( + warn_if_incomplete_dtc("2021-04-06T12:30", n = 19) + ) +}) + +# warn_if_inconsistent_list ---- +## Test 5: Warning if two lists are inconsistent ---- +test_that("warn_if_inconsistent_list Test 5: Warning if two lists are inconsistent", { + expect_warning( + warn_if_inconsistent_list( + base = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ, DTHVAR = "text"), + compare = exprs(DTHDOM = "DM", DTHSEQ = DMSEQ), + list_name = "Test" + ) + ) +}) + +# suppress_warning ---- +## Test 6: Suppress certain warnings issued by an expression ---- +test_that("suppress_warning Test 6: Suppress certain warnings issued by an expression", { + # Verify if warning is issued + expect_warning( + suppress_warning(as.numeric("fun"), "x") + ) + + # Actual result + actual_result <- as.numeric(NA) + + # Call the suppress_warning() to suppress warning messages containing "NAs introduced by coercion" + expected_result <- suppress_warning(as.numeric("fun"), "coercion") + + # Expect that the warning message has been suppressed and that the result is NA + expect_equal(expected_result, actual_result) +}) diff --git a/tests/testthat/test-what.R b/tests/testthat/test-what.R new file mode 100644 index 0000000000..d06a9b4cc7 --- /dev/null +++ b/tests/testthat/test-what.R @@ -0,0 +1,44 @@ +# what_is_it ---- +## Test 1: atomic vectors of length 1 ---- +test_that("what_is_it Test 1: atomic vectors of length 1", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_identical(what_is_it(NULL), "`NULL`") + expect_identical(what_is_it(TRUE), "`TRUE`") + expect_identical(what_is_it(NA), "`NA`") + expect_identical(what_is_it("Text"), '`"Text"`') + expect_identical(what_is_it("3"), '`"3"`') + expect_identical(what_is_it(4L), "`4`") + expect_identical(what_is_it(2.42), "`2.42`") +}) + +## Test 2: vectors ---- +test_that("what_is_it Test 2: vectors", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_identical(what_is_it(letters), "a character vector") + expect_identical(what_is_it(1:10), "an integer vector") + expect_identical(what_is_it(c(1.2, 3)), "a double vector") + expect_identical(what_is_it(c(TRUE, FALSE)), "a logical vector") + expect_identical(what_is_it(list(1, letters, TRUE)), "a list") +}) + +## Test 3: S3 objects ---- +test_that("what_is_it Test 3: S3 objects", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_identical(what_is_it(mtcars), "a data frame") + expect_identical(what_is_it(factor(letters)), "a factor") + expect_identical(what_is_it(lm(hp ~ mpg, data = mtcars)), "an object of class 'lm'") + expect_identical(what_is_it(quo(4 / 1)), "an object of class 'quosure'") +}) + + +## Test 4: S4 objects ---- +test_that("what_is_it Test 4: S4 objects", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_identical(what_is_it(lubridate::days(1)), "a S4 object of class 'Period'") +}) + +## Test 5: symbols ---- +test_that("what_is_it Test 5: symbols", { + withr::local_options(lifecycle_verbosity = "quiet") + expect_identical(what_is_it(quote(USUBJID)), "a symbol") +}) diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index c446aeebc4..44f7a495dd 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -128,14 +128,14 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = c(get_admiral_option("subject_keys"), exprs(TRTSDTM, TRTSTMF)) + display_vars = exprs(!!!get_admiral_option("subject_keys"), TRTSDTM, TRTSTMF) ) ``` @@ -151,7 +151,7 @@ the variable values for the new derived record. ```{r eval=TRUE} advs <- advs %>% derive_param_computed( - by_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, AVISITN)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, AVISITN), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP + 2 * AVAL.DIABP) / 3, @@ -166,7 +166,7 @@ advs <- advs %>% advs %>% arrange(!!!get_admiral_option("subject_keys"), AVISITN, PARAMCD) %>% dataset_vignette( - display_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, PARAMCD, AVAL)) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` @@ -208,7 +208,7 @@ of the Final Lab Visit Date (`FINLABDT`) in the example below: adsl <- dm %>% derive_vars_merged( dataset_add = ds, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(FINLABDT = convert_dtc_to_dt(DSSTDTC)), filter_add = DSDECOD == "FINAL LAB VISIT" ) @@ -217,7 +217,7 @@ adsl <- dm %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = c(get_admiral_option("subject_keys"), exprs(FINLABDT)) + display_vars = exprs(!!!get_admiral_option("subject_keys"), FINLABDT) ) ``` @@ -233,7 +233,7 @@ adsl <- adsl %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adsl, - display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, RFSTDT)) + display_vars = exprs(!!!get_admiral_option("subject_keys"), RFSTDTC, RFSTDT) ) ``` @@ -250,7 +250,7 @@ below we use `filter_extreme()` to extract the most recent MAP records in `advs` advs_lastmap <- advs %>% filter(PARAMCD == "MAP") %>% filter_extreme( - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(AVISITN, PARAMCD), mode = "last" ) @@ -259,7 +259,7 @@ advs_lastmap <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs_lastmap, - display_vars = c(get_admiral_option("subject_keys"), exprs(AVISIT, PARAMCD, AVAL)) + display_vars = exprs(!!!get_admiral_option("subject_keys"), AVISIT, PARAMCD, AVAL) ) ``` diff --git a/vignettes/admiraldev.Rmd b/vignettes/admiraldev.Rmd new file mode 100644 index 0000000000..fbbb88d4a0 --- /dev/null +++ b/vignettes/admiraldev.Rmd @@ -0,0 +1,60 @@ +--- +title: "Get Started" +output: + rmarkdown::html_vignette + +vignette: > + %\VignetteIndexEntry{Get Started} + %\VignetteEngine{knitr::rmarkdown} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + + +# Dear Developers + +`{admiraldev}` is a set of tools intended for you, the developer, to help make developing within the admiral family easier, consistently robust across all packages and maybe even fun! + +Tools are loosely defined as follows: + +* Utility Functions used in `{admiral}` and `{admiral}` extension functions for doing custom checks and providing custom messages, warnings and errors. These custom messages, warnings and errors are succinct, but helpful messaging around what a function expects as inputs. The inputs to admiral functions are many, but generally fit into three categories: datasets, variables and arguments. Most of the functions start with `assert_`, `is_` or `get_`. + +* Addins and utility functions that help with documentation, testing and checking on health of the code base in all admiral packages. + +* Vignettes on working on `{admiral}` functions, developing unit testing, releases process, vignette writing and other documentation needs. These vignettes are intended for use across all admiral packages. + +# Why have a separate development package? + +As the `{admiral}` package function base has grown it was decided to create extension packages for use within companies and specific TAs to help with specific problems. We intended these extension packages to follow the same processes as `{admiral}` core, e.g. Unit Testing, Roxygen Documentation, Function Design. A standalone development package allows us to keep an up to date development process for all developers across the family. We also feel that a lot of the developer functions are not user-specific and gives us more freedom to create and release utility tools specific to our family of packages and reduces non-user facing functions within the admiral family of packages. + +# How to add new tools to `{admiraldev}`? + +* Just like in `{admiral}`, we follow the same procedures of adding issues to discuss feature requests, bugs and documentation updates. We then develop those issues in branches and do a Pull Request with a Code Review. + +* Experimental tools are highly encouraged to help reduce repetitive patterns and automating the boring stuff. + +# When to add a function to `{admiraldev}`? + +## **Scenario One: {admiral} core** + +A developer working on `{admiral}` core implements a new type of derivation function for a BDS-Findings ADaM dataset. The new derivation function has two new `assert` custom checking functions for inputs as well as a helper function. + +Loose guidelines: + +1. The derivation function should always live in `{admiral}` core. +1. The helper function should be looked at to see it should be made available within `{admiraldev}` for other extension packages needs and so reduce repetitive coding across the family of `{admiral}`. If it cannot be generalized, then it should remain in `{admiral}`. +1. The `assert` custom checking functions should always live within `{admiraldev}` to stay with the family of `assertion` functions. + +## **Scenario Two: {admiral} extension** + +A developer working on `{admiralonco}` implements a new type of derivation function for adding certain parameters to an oncology specific ADaM dataset. The new derivation function has one new `assert` custom checking function. + +Loose guidelines: + +1. The derivation function should be closely looked at to see if it can be generalized to other ADaM datasets. If that is the case, then it should be moved to `{admiral}` core. If the function is very specific to oncology needs, then it should remain in `{admiralonco}`. +1. The `assert` custom checking functions follow a similar principle - if they can be generalized to other therapeutic areas then move to `{admiraldev}`, whereas if very specific to oncology needs, then they should remain in `{admiralonco}`. diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index d4cf1d1aab..4debbc39d2 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -82,19 +82,17 @@ adex <- derive_vars_merged( ex, dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(STUDYID, USUBJID) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c( - get_admiral_option("subject_keys"), exprs( - EXTRT, EXDOSE, EXDOSFRQ, - VISIT, EXSTDTC, EXENDTC, - TRTSDTM, TRTEDTM - ) + display_vars = exprs( + USUBJID, EXTRT, EXDOSE, EXDOSFRQ, + VISIT, EXSTDTC, EXENDTC, + TRTSDTM, TRTEDTM ) ) ``` @@ -138,7 +136,7 @@ adex <- derive_vars_dt(adex, new_vars_prefix = "AEN", dtc = EXENDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT)) + display_vars = exprs(USUBJID, VISIT, EXSTDTC, EXENDTC, ASTDT, AENDT) ) ``` @@ -165,7 +163,7 @@ adex <- derive_vars_dtm( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM)) + display_vars = exprs(USUBJID, VISIT, EXSTDTC, EXENDTC, ASTDTM, AENDTM) ) ``` @@ -189,9 +187,9 @@ adex <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c( - get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT) + display_vars = exprs( + USUBJID, + VISIT, ASTDT, ASTDY, AENDT, AENDY, TRTSDT ) ) ``` @@ -214,9 +212,9 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c( - get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD) + display_vars = exprs( + USUBJID, + VISIT, ASTDT, ASTDY, AENDT, AENDY, EXDURD ) ) ``` @@ -237,9 +235,9 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c( - get_admiral_option("subject_keys"), - exprs(VISIT, ASTDT, AENDT, EXDURD, EXDURDY) + display_vars = exprs( + USUBJID, + VISIT, ASTDT, AENDT, EXDURD, EXDURDY ) ) ``` @@ -262,7 +260,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO)) + display_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDURD, DOSEO, PDOSEO) ) ``` @@ -279,13 +277,13 @@ frequency to a corresponding set of records each representing one dose (i.e. ```{r eval=TRUE, echo=TRUE} single_dose <- adex %>% filter(USUBJID == "01-701-1015" & EXSTDY == 1) %>% - create_single_dose_dataset(keep_source_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT))) + create_single_dose_dataset(keep_source_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( single_dose, - display_vars = c(get_admiral_option("subject_keys"), exprs(EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT)) + display_vars = exprs(USUBJID, EXDOSE, EXPLDOS, EXDOSFRQ, ASTDT, AENDT) ) ``` @@ -348,7 +346,7 @@ count(adex, PARAMCD) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, VISIT, desc(PARAMCD), EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC))) + dataset_vignette(display_vars = exprs(USUBJID, VISIT, ASTDT, AENDT, PARAMCD, AVAL, AVALC)) ``` ## Create Summary Records {#summaryrec} @@ -364,7 +362,7 @@ For example, to calculate the total dose by subject and treatment, adex <- derive_param_exposure( adex, dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars), + by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars), input_code = "DOSE", set_values_to = exprs( PARAMCD = "TDOSE", @@ -377,13 +375,10 @@ adex <- derive_param_exposure( ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette( - display_vars = - c(get_admiral_option("subject_keys"), exprs( - VISIT, - PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - )) - ) + dataset_vignette(display_vars = exprs( + USUBJID, VISIT, + PARCAT1, PARAMCD, AVAL, ASTDT, AENDT + )) ``` @@ -447,7 +442,7 @@ adex <- adex %>% ) ), dataset_add = adex, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars) + by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars) ) count(adex, PARAMCD, PARCAT1) @@ -457,11 +452,9 @@ count(adex, PARAMCD, PARCAT1) ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, PARAMCD, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = c( - get_admiral_option("subject_keys"), exprs( - VISIT, - PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT - ) + dataset_vignette(display_vars = exprs( + USUBJID, VISIT, + PARCAT1, PARAMCD, AVAL, AVALC, ASTDT, AENDT )) ``` @@ -473,7 +466,7 @@ specified in the `by_vars` argument will be populated in this new record. ```{r eval=TRUE, echo=TRUE} adex <- adex %>% derive_param_doseint( - by_vars = c(get_admiral_option("subject_keys"), adsl_vars), + by_vars = exprs(STUDYID, USUBJID, !!!adsl_vars), set_values_to = exprs(PARAMCD = "TNDOSINT"), tadm_code = "TDOSE", tpadm_code = "TPDOSE" @@ -484,11 +477,9 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c( - get_admiral_option("subject_keys"), exprs( - VISIT, EXSTDTC, EXENDTC, - PARCAT1, PARAMCD, AVAL, ASTDT, AENDT - ) + display_vars = exprs( + USUBJID, VISIT, EXSTDTC, EXENDTC, + PARCAT1, PARAMCD, AVAL, ASTDT, AENDT ) ) ``` @@ -576,7 +567,7 @@ adex <- adex %>% ```{r, eval=TRUE, echo=FALSE} adex %>% arrange(USUBJID, AVALCAT1, PARCAT1, VISIT, EXSTDTC, EXENDTC) %>% - dataset_vignette(display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1))) + dataset_vignette(display_vars = exprs(USUBJID, VISIT, PARCAT1, PARAMCD, AVAL, AVALCAT1)) ``` ## Assign `ASEQ` {#aseq} @@ -588,7 +579,7 @@ example call is: adex <- derive_var_obs_number( adex, new_var = ASEQ, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(STUDYID, USUBJID), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -597,7 +588,7 @@ adex <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adex, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ)) + display_vars = exprs(USUBJID, VISIT, PARCAT1, PARAMCD, AVAL, ASTDT, ASEQ) ) ``` @@ -609,7 +600,7 @@ If needed, the other `ADSL` variables can now be added: adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(STUDYID, USUBJID) ) ``` ## Add Labels and Attributes {#attributes} diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index 7f7e4fc092..f7588bf774 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -86,14 +86,14 @@ advs <- derive_vars_merged( vs, dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, VSDTC, VISIT, TRTSDT, TRTEDT, TRT01A, TRT01P), filter = VSTESTCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -113,7 +113,7 @@ advs <- derive_vars_dt(advs, new_vars_prefix = "A", dtc = VSDTC) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, VSDTC, ADT)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT), filter = VSTESTCD == "DIABP" ) ``` @@ -147,7 +147,7 @@ advs <- derive_vars_dt( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, VSDTC, ADT, ADTF)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, VSDTC, ADT, ADTF), filter = USUBJID == "01-716-1024" ) ``` @@ -188,7 +188,7 @@ advs <- ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ADT, ADY, TRTSDT)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ADT, ADY, TRTSDT), filter = USUBJID == "01-716-1024" ) ``` @@ -243,9 +243,9 @@ advs <- derive_vars_merged_lookup( ``` ```{r, eval=TRUE, echo=FALSE} -advs_param <- distinct(advs, STUDYID, USUBJID, PARAMCD, VSTESTCD) +advs_param <- distinct(advs, USUBJID, PARAMCD, VSTESTCD) -dataset_vignette(advs_param, display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, PARAMCD))) +dataset_vignette(advs_param, display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], VSTESTCD, PARAMCD)) ``` Please note, it may be necessary to include other variables in the join. For @@ -293,7 +293,7 @@ Example 3 in section below [Derive New Rows](#additional) for alternative way of ```{r eval=TRUE} advs <- derive_param_map( advs, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "MAP"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT) @@ -314,28 +314,28 @@ Likewise, function call below, to create parameter `Body Surface Area` (BSA) and ```{r eval=TRUE} advs <- derive_param_bsa( advs, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), method = "Mosteller", set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = get_admiral_option("subject_keys") + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) advs <- derive_param_bmi( advs, - by_vars = c(get_admiral_option("subject_keys"), adsl_vars, exprs(VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), !!!adsl_vars, VISIT, VISITNUM, ADT, ADY, VSTPT, VSTPTNUM), set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = get_admiral_option("subject_keys") + constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs, USUBJID, VISITNUM, VSTPTNUM, ADT, PARAMCD), - display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VSTESTCD, PARAMCD, VISIT, VSTPT, AVAL), filter = PARAMCD %in% c("BSA", "BMI") ) ``` @@ -354,7 +354,7 @@ adeg <- tibble::tribble( adeg <- derive_param_qtc( adeg, - by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), method = "Fridericia", set_values_to = exprs(PARAMCD = "QTCFR"), get_unit_expr = EGSTRESU @@ -375,7 +375,7 @@ adlb <- tibble::tribble( derive_param_wbc_abs( dataset = adlb, - by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT), set_values_to = exprs( PARAMCD = "LYMPH", PARAM = "Lymphocytes Abs (10^9/L)", @@ -460,7 +460,7 @@ advs <- derive_var_ontrtfl( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, TRTSDT, TRTEDT, ONTRTFL), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -515,10 +515,10 @@ and `ref_end_date = AP01EDT`. advs_pre <- select(advs, -ONTRTFL) advs <- tibble::tribble( - ~STUDYID, ~USUBJID, ~ASTDT, ~AP01SDT, ~AP01EDT, ~AENDT, - "odr_1", "P01", ymd("2020-03-15"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-12-01"), - "odr_1", "P02", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-03-15"), - "odr_1", "P03", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), NA, + ~USUBJID, ~ASTDT, ~AP01SDT, ~AP01EDT, ~AENDT, + "P01", ymd("2020-03-15"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-12-01"), + "P02", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), ymd("2020-03-15"), + "P03", ymd("2019-04-30"), ymd("2020-01-01"), ymd("2020-03-01"), NA, ) ``` @@ -533,11 +533,10 @@ advs <- derive_var_ontrtfl( span_period = TRUE ) ``` - ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL)) + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], ASTDT, AENDT, AP01SDT, AP01EDT, ONTR01FL) ) ``` @@ -575,7 +574,7 @@ advs <- derive_var_anrind(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, ANRLO, ANRHI, A1LO, A1HI, ANRIND), filter = PARAMCD == "DIABP" & VISIT == "WEEK 2" ) ``` @@ -616,7 +615,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD), order = exprs(ADT, ATPTN, VISITNUM), new_var = ABLFL, mode = "last" @@ -628,7 +627,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ADT, TRTSDT, ATPTN, TRTSDT, ABLFL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -642,14 +641,14 @@ Lastly, the `BASE`, and `BNRIND` columns can be derived using the `{admiral}` f ```{r eval=TRUE} advs <- derive_var_base( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = AVAL, new_var = BASE ) advs <- derive_var_base( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, BASETYPE)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, BASETYPE), source_var = ANRIND, new_var = BNRIND ) @@ -658,7 +657,7 @@ advs <- derive_var_base( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, ABLFL, BASE, ANRIND, BNRIND), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "BASELINE") ) ``` @@ -679,7 +678,7 @@ advs <- derive_var_pchg(advs) ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, BASE, AVAL, CHG, PCHG)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, CHG, PCHG), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -729,7 +728,7 @@ advs <- derive_var_analysis_ratio(advs, ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, BASE, AVAL, ANRLO, R2BASE, R01ANRLO), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -755,7 +754,7 @@ advs <- restrict_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, AVISIT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN, AVAL), new_var = ANL01FL, mode = "last" @@ -767,7 +766,7 @@ advs <- restrict_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, ATPTN, ADT, AVAL, ANL01FL), filter = PARAMCD == "DIABP" & VISIT %in% c("WEEK 2", "WEEK 8") ) ``` @@ -782,7 +781,7 @@ advs <- slice_derivation( advs, derivation = derive_var_extreme_flag, args = params( - by_vars = c(get_admiral_option("subject_keys"), exprs(BASETYPE, PARAMCD, AVISIT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), BASETYPE, PARAMCD, AVISIT), order = exprs(ADT, ATPTN), new_var = WORSTFL, mode = "first" @@ -802,7 +801,7 @@ advs <- slice_derivation( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, AVISIT, AVAL, ADT, ATPTN, WORSTFL), filter = USUBJID == "01-701-1015" & WORSTFL == "Y" ) ``` @@ -833,7 +832,7 @@ example call is: advs <- derive_var_obs_number( advs, new_var = ASEQ, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN), check_type = "error" ) @@ -842,7 +841,7 @@ advs <- derive_var_obs_number( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, ATPTN, VISIT, ADT, ASEQ), filter = USUBJID == "01-701-1015" ) ``` @@ -878,7 +877,7 @@ advs <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, AVAL, AVALCA1N, AVALCAT1)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, AVAL, AVALCA1N, AVALCAT1), filter = PARAMCD == "HEIGHT" ) ``` @@ -891,14 +890,14 @@ List of ADSL variables already merged held in vector `adsl_vars` advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( advs, - display_vars = c(get_admiral_option("subject_keys"), exprs(RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], RFSTDTC, RFENDTC, DTHDTC, DTHFL, AGE, AGEU), filter = USUBJID == "01-701-1015" ) ``` @@ -925,7 +924,7 @@ assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(ADT, AVISITN, ATPTN, AVAL), mode = "last", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y"), @@ -940,7 +939,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` @@ -955,7 +954,7 @@ and assign a unique `AVISITN` value. advs_ex1 <- advs %>% derive_extreme_records( dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD), order = exprs(AVAL, ADT, AVISITN, ATPTN), mode = "first", filter_add = (4 < AVISITN & AVISITN <= 12 & ANL01FL == "Y" & !is.na(AVAL)), @@ -970,7 +969,7 @@ advs_ex1 <- advs %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex1, USUBJID, PARAMCD, desc(AVISITN), ATPTN), - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL)), + display_vars = exprs(!!get_admiral_option("subject_keys")[[2]], PARAMCD, ADT, AVISITN, AVISIT, ATPTN, AVAL, DTYPE, ANL01FL), filter = USUBJID == "01-701-1015" & ANL01FL == "Y" ) ``` @@ -989,7 +988,7 @@ Set `DTYPE` to `AVERAGE`. advs_ex2 <- derive_summary_records( advs, dataset_add = advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISITNUM, ADT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT), set_values_to = exprs( AVAL = mean(AVAL, na.rm = TRUE), DTYPE = "AVERAGE" @@ -1000,7 +999,7 @@ advs_ex2 <- derive_summary_records( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex2, USUBJID, PARAMCD, VISITNUM, ADT, DTYPE), - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISITNUM, ADT, AVAL, DTYPE)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISITNUM, ADT, AVAL, DTYPE), filter = USUBJID == "01-701-1015" ) ``` @@ -1017,7 +1016,7 @@ Below is an example of creating `Mean Arterial Pressure` ```{r eval=TRUE} advs_ex3 <- derive_param_computed( advs, - by_vars = c(get_admiral_option("subject_keys"), exprs(VISIT, ATPT)), + by_vars = exprs(!!!get_admiral_option("subject_keys"), VISIT, ATPT), parameters = c("SYSBP", "DIABP"), set_values_to = exprs( AVAL = (AVAL.SYSBP - AVAL.DIABP) / 3 + AVAL.DIABP, @@ -1030,7 +1029,7 @@ advs_ex3 <- derive_param_computed( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( arrange(advs_ex3, !!!get_admiral_option("subject_keys"), VISIT, ATPT, PARAMCD), - display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, VISIT, ATPT, AVAL)), + display_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, VISIT, ATPT, AVAL), filter = USUBJID == "01-701-1015" & PARAMCD %in% c("MAP2", "SYSBP", "DIABP") ) ``` diff --git a/vignettes/concepts_conventions.Rmd b/vignettes/concepts_conventions.Rmd index 0b4da57e73..a29b3ab531 100644 --- a/vignettes/concepts_conventions.Rmd +++ b/vignettes/concepts_conventions.Rmd @@ -133,7 +133,7 @@ derive_vars_merged( adsl, dataset_add = ex, filter_add = !is.na(EXENDTM), - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs( TRTEDTM = EXENDTM, TRTETMF = EXENTMF, @@ -189,7 +189,7 @@ adcm <- data.frame(STUDYID = "XXX", USUBJID = "XXX-1", CMTRT = "ASPIRIN") adcm # This doesn't work as we are not unquoting the subject keys -adcm %>% select(get_admiral_option("subject_keys")) +adcm %>% select(!!!get_admiral_option("subject_keys")) # This works because we are unquoting the subject keys adcm %>% select(!!!get_admiral_option("subject_keys")) @@ -214,18 +214,18 @@ library(dplyr, warn.conflicts = FALSE) library(admiral) vs <- tribble( - ~USUBJID, ~VSTESTCD, ~VISIT, ~VSSTRESN, ~VSSTRESU, ~VSDTC, - "01-1301", "WEIGHT", "SCREENING", 82.1, "kg", "2013-08-29", - "01-1301", "WEIGHT", "WEEK 2", 81.19, "kg", "2013-09-15", - "01-1301", "WEIGHT", "WEEK 4", 82.56, "kg", "2013-09-24", - "01-1302", "BMI", "SCREENING", 20.1, "kg/m2", "2013-08-29", - "01-1302", "BMI", "WEEK 2", 20.2, "kg/m2", "2013-09-15", - "01-1302", "BMI", "WEEK 4", 19.9, "kg/m2", "2013-09-24" +~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSSTRESN, ~VSSTRESU, ~VSDTC, + "dmog_1", "01-1301", "WEIGHT", "SCREENING", 82.1, "kg", "2013-08-29", + "dmog_1", "01-1301", "WEIGHT", "WEEK 2", 81.19, "kg", "2013-09-15", + "dmog_1", "01-1301", "WEIGHT", "WEEK 4", 82.56, "kg", "2013-09-24", + "dmog_1", "01-1302", "BMI", "SCREENING", 20.1, "kg/m2", "2013-08-29", + "dmog_1", "01-1302", "BMI", "WEEK 2", 20.2, "kg/m2", "2013-09-15", + "dmog_1", "01-1302", "BMI", "WEEK 4", 19.9, "kg/m2", "2013-09-24" ) dm <- tribble( - ~USUBJID, ~AGE, - "01-1301", 18 +~STUDYID, ~USUBJID, ~AGE, +"dmog_1", "01-1301", 18 ) ``` @@ -240,9 +240,9 @@ my_expression <- expr(VSTESTCD == "WEIGHT" & VISIT == "SCREENING") derive_vars_merged( dm, - dataset_add = select(vs, USUBJID, VSTESTCD, VISIT), - by_vars = exprs(USUBJID), - filter_add = my_expression + dataset_add = select(vs, !!!get_admiral_option("subject_keys"), VSTESTCD, VISIT), + by_vars = get_admiral_option("subject_keys"), + filter_add = !!my_expression ) ``` @@ -252,8 +252,8 @@ to `derive_vars_merged()`: ```{r, eval = TRUE, error = FALSE} derive_vars_merged( dm, - dataset_add = select(vs, USUBJID, VSTESTCD, VISIT), - by_vars = exprs(USUBJID), + dataset_add = select(vs, !!!get_admiral_option("subject_keys"), VSTESTCD, VISIT), + by_vars = get_admiral_option("subject_keys"), filter_add = !!my_expression ) ``` @@ -268,8 +268,8 @@ expressions delay evaluation of code and so can delay the identification of issu filter_vs_and_merge <- function(my_expression) { derive_vars_merged( dm, - dataset_add = select(vs, USUBJID, VSTESTCD, VISIT), - by_vars = exprs(USUBJID), + dataset_add = select(vs, !!!get_admiral_option("subject_keys"), VSTESTCD, VISIT), + by_vars = get_admiral_option("subject_keys"), filter_add = !!my_expression ) } diff --git a/vignettes/dummy_issue.png b/vignettes/dummy_issue.png new file mode 100644 index 0000000000000000000000000000000000000000..645ea66361f17fd14cb11b3202c415a05c964d6e GIT binary patch literal 162776 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 MsNc-Fe&^Bu0ewg1@Bjb+ literal 0 HcmV?d00001 diff --git a/vignettes/git_usage.Rmd b/vignettes/git_usage.Rmd new file mode 100644 index 0000000000..e8b50ef513 --- /dev/null +++ b/vignettes/git_usage.Rmd @@ -0,0 +1,196 @@ +--- +title: "Guidance for git and GitHub Usage" +output: + rmarkdown::html_vignette: + toc: true + toc_depth: 6 +vignette: > + %\VignetteIndexEntry{Guidance for git and GitHub Usage} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + + +# Introduction + +This article will give you an overview of how the `{admiral}` project is utilizing the version-control software `git` and the website GitHub while working with RStudio. We will go over the primary branches that house the source code for the `{admiral}` project as well as how we use **Feature** branches to address **Issues**. Issues can range from bugs to enhancements that have been identified or requested by developers, users or testers. We also provide the bare minimum of `git` commands needed to get up and running. Please refer to the [Resource](#github_resources) section for more in-depth guidance on using `git` and GitHub. + +# Branches + +- The `main` branch contains the latest development version of the package. You can find the released versions [here](https://GitHub.com/pharmaverse/admiral/releases) +- The `gh-pages` branches contains the code used to render R package websites - you are looking at right now! +- The `patch` branch is reserved for special hot fixes to address bugs and should rarely be used. More info in [Hot Fix Release](release_strategy.html#hot-fix-release) +- The `main`, `gh-pages`, `patch` branches are under protection. If you try and push changes to these branches you will get an error unless you are an administrator. + +- **Feature** branches are where actual development related to a specific issue happens. Feature branches are merged into `main` once a pull request is merged. Check out the [Pull Request Review Guidance](pr_review_guidance.html) for more guidance on merging into `main`. + +# Working with Feature Branches + +Feature Branches are where most developers will work when addressing Issues. + +## Implementing an Issue + +Each feature branch must be related to an issue. We encourage new developers to only work on one issue at a time. + +### Naming Branches + +The name of the branch must be prefixed with the issue number, followed by a short but meaningful description. As an example, given an issue #94 "Program function to derive `LSTALVDT`", the branch name would be `94_derive_var_lstalvdt`. + +### Create a New Feature Branch from the Terminal (from `main`) + +- Checkout the main branch: `git checkout main` +- Pull the latest changes from GitHub: `git pull` +- Create a new branch off the main branch and switch to it: `git checkout -b ` + +### Create a New Feature Branch from GitHub (from `main`) + +You can also create a feature branch in GitHub. + +- Switch to the `main` branch +- Type in your new feature branch name +- Click Create branch: `@main` from `main` +- Be Sure to Pull down newly created branch into RStudio + +```{r, echo = FALSE} +knitr::include_graphics("github_feature_branch.png", dpi = 144) +``` + + +### Commits from the Terminal in RStudio + +To start the commit process, you will need to tell `git` to move your changes to the staging area. Use `git add ` to move all changes of `` in the staging area to wait for the next commit. You can use `git add .` to move all files you have worked on to the staging area. Next you can commit, which takes a snapshot of your staged changes. When committing, prefix the message with the issue number and add a meaningful message `git commit –m '#94 last alive date implementation'`. + +Lastly, you should push your changes up to GitHub using `git push origin ` + +### Commits from the Git Tab in RStudio + +You can also make use of the Git Tab within RStudio to commit your changes. A benefit of using this Tab is being able to see your changes to the file with red and green highlighting. Just like in the terminal, start the message with the issue number and add a meaningful and succinct sentence. Hit the Commit button and then Push up to GitHub. + +```{r, echo = FALSE} +knitr::include_graphics("github_committ.png", dpi = 144) +``` + +### Commit Message Etiquette + +We require developers to **insert the issue number** into each commit message. Placing the issue number in your commit message allows reviewers to quickly find discussion surrounding your issue. When pushed to GitHub the issue number will be hyperlinked to the issue tracker, a powerful tool for discussion and traceability, which we think is valuable in a highly regulated industry like Pharma. + +Below are styles of commit messaging permitted: + +### Style 1: + +* `feat: #94 skeleton of function developed` +* `chore: #94 styler and lintr update` +* `docs: #94 parameters and details sections compelted` + +### Style 2: + +* `#94 skeleton of function developed` +* `#94 styler and lintr update` +* `#94 parameters and details sections compelted` + +### Style 3: + +* `skeleton of function developed (#94)` +* `styler and lintr update (#94)` +* `parameters and details sections compelted (#94)` + + +## Pull request + +We recommend a thorough read through of the articles, [Pull Request Review Guidance](pr_review_guidance.html) and the [Programming Strategy](programming_strategy.html) for in-depth discussions on a doing a proper Pull Request.Pull Request authors will benefit from shorter review times by closely following the guidance provided in those two articles. Below we discuss some simple `git` commands in the terminal and on GitHub for doing a Pull Request. We recommend doing the Pull Request in GitHub only and not through the terminal. + +Once all changes are committed, push the updated branch to GitHub: +`git push -u origin ` + +In GitHub, under **Pull requests**, the user will either have a "Compare and pull request" button and/or a "Create Pull Request". The first button will be created for you if GitHub detects recent changes you have made. The branch to merge with must be the `main` branch (base = `main`) and the compare branch is the new branch to merge - as shown in the below picture. Please **pay close attention** to the branch you are merging into! + + +```{r, echo = FALSE} +knitr::include_graphics("github_create_pr.png", dpi = 144) +``` + +The issue must be linked to the pull request in the "Development" field of the +Pull Request. In most cases, this will linkage will automatically close the issue and move to the Done column on our project board. + +```{r, echo = FALSE} +knitr::include_graphics("github_linked_issues_dark.png", dpi = 144) +``` + +Once you have completed the Pull Request you will see all committed changes are then available for the reviewer. A reviewer must be specified in the Pull Request. It is recommended to write a brief summary to your reviewers so they can quickly come up to speed on your Pull Request. Images of your updates are nice too, which are easy to do in GitHub! Use any Screen Capture software and Copy and Paste into your summary. + +### Reviewing/Closing an Issue + +- At least one reviewer must approve the Pull Request. Please review the [Pull +Request Review Guidance](pr_review_guidance.html), which provides in depth +guidance on doing a proper Pull Request. +- The reviewer must ensure that the function follows the programming strategy +recommendations. +- Any comment/question/discussion must be addressed and documented in GitHub +before the Pull Request is merged + +Once the review is completed, the reviewer will merge the Pull Request and the +feature branch will automatically be deleted. + +After merging the Pull Request please check that corresponding has been moved to the done column on the Project Board. Also, please make sure that the issue has closed. + + +```{r, echo = FALSE} +knitr::include_graphics("github_done.png", dpi = 144) +``` + +### Solving Merge Conflicts in the Terminal on RStudio + +Merge conflict is a situation where `git` cannot decide which changes to apply since there were multiple updates in the same part of a file. This typically happens when multiple people update the same part of code. Those conflicts always need to be handled manually (as some further code updates may be required): + +``` +git checkout main +git pull +git checkout +git merge main +``` + +This provides a list of all files with conflicts In the file with conflicts the conflicting sections are marked with `<<<<<<<`, `=======`, and `>>>>>>>`. The code between these markers must be updated and the markers be removed. Source files need to be updated manually. Generated files like NAMESPACE or the generated documentation files should not be updated manually but recreated after the source files were updated. + +To make the changes available call: + +``` +git add +git commit -m "" +git push +``` + +### Solving Merge Conflicts in GitHub + +For simple merge conflicts, developers can make use of the GitHub interface to solve them. GitHub will show the number of conflicts between the two branches. In the below image, GitHub has found 3 conflicts, but we only display the first one. Just like in the terminal, GitHub will make use of the `<<<<<<<`, `=======`, and `>>>>>>>` to highlight the conflicting sections. You will need to make the decision on whether to keep the code from the base or the feature branch. Once you have decided, go into the code and remove the section you no longer wish to keep. Be sure to remove the `<<<<<<<`, `=======`, and `>>>>>>>` as well! Once you work through the conflicts you will mark as **Resolved and Commit your changes**. It is recommended to pull your branch back down to RStudio to make sure no untoward effects have happen to your branch. + +```{r, echo = FALSE} +knitr::include_graphics("github_conflicts.png", dpi = 144) +``` + + +## Useful `git` Commands + +- merging: `git merge ` - merge my_branch into current branch +- The stashing commands are useful when one wants to go back to clean directory +- `git stash` - stash (store) current changes and restore a clean directory +- `git stash pop` - put back (restore) stashed changes +- `git revert` is also helpful but why? + +**Using code from unmerged branches** + +- Checkout the unmerged branch you want to use: `git checkout ` +- Pull the latest committed changes from the unmerged branch: `git pull` +- Check out your feature branch: `git checkout ` +- Merge the unmerged branch to : `git merge ` + +# Resources on using `git`, GitHub and RStudio {#github_resources} + +* [GitHub and RStudio](https://resources.github.com/whitepapers/github-and-rstudio/) +* [Happy Git and GitHub for the useR](https://happygitwithr.com/) diff --git a/vignettes/github_committ.png b/vignettes/github_committ.png new file mode 100644 index 0000000000000000000000000000000000000000..abd555dacec62f84b0a0a6a4816fc03b0d8cefb0 GIT binary patch literal 124769 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

NZu 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 QE-(Orr>mdKI;Vst0ICIuLI3~& literal 0 HcmV?d00001 diff --git a/vignettes/github_conflicts.png b/vignettes/github_conflicts.png new file mode 100644 index 0000000000000000000000000000000000000000..139126d96bbdeca2b091dd1634a65776be9bfb3e GIT binary patch literal 62675 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

V`sUx}*Z(wwVDfh|(p~>H zOaE#9!xF)7{~s1#4U^_wo$S+&_S9D2Sen3%LjD?dm~xWKQ^~l5UQfb&mu%*J@jPHv zb()FvN)e_g^tdMLX61(M5#jTERMeizf1~bmt^Uf9bdC?I^}q{rJV((U%qVH*>7$Pk zg8D08@~W*tATRV}8T9u1)-aiTH8R8FOfbatR+R1{fMgDudbM#Z0)){%#Rz!JiL+{#mR@OPUmf)$Y3YUA7PSc;Y zNS!IPR(&dRyvSLWN>^RuJ4<^nTQpBa;(e4e1DOBCP8aB?t_hPZ}>TS@B#Zy{Zi?+iaW@et1#e%}w zo)vX9!vk1#VFBhL5A8kIDSqL0qFM)t|}8jUF+!zvu3iYLEX0 z^DaCbS`st%3VU*TE_tFj=I+SE7}yYr!CNJcqRwIHLzu0gt9p;gWge(d`gCjhV2&xA zG$!9ijcDpo->oR0#_c%du`8e!HLIRf?OXD|y8AAR16rtkg&fsqwL5@_=lbY1ONj=C zU8Xy`KbYrhg#|fmTifl-XJ#dF@9Ia2P3$9}r@+WCMJi3W)e&dO%LwPPZVtYi6qd!F zlup;KMg}att0P-1M=c^M02O{7Y4yq%Wm4+>vx@sdEE7)#k(=Bv1ZH$vzHo1sJ^>`t z%0&S3-oGi1-j!Q3mOW+d!~8hhN5rJQ{{8(wbL>qWz7NjWn1$uVb zhzwN)VO)W1Mq5 zqPxkn!>A^}ebzm5n0B#yE49|xMk-fbX{LIQ6}SwhM;TV|ju57wdLjevHP|=u5cswY zyjBz#ySal`PeiLQTgH_Mxri;beI(0%Q1kQSn zNr}^WmDUy*2C$d8!uGNVw}jP*PsMo+@!35kNl2l&Rr3*ILwUT|&bhueo!^5!<=Gbu zO)>>dzjl3@H9YKAVEM%E^5qi#WUKqzA%>sX2yZBP(Tf&uyh$#I~WP z$6KwH?7Pv#%lV%>Coe>ZK`T^8YrlLByXzf>FEF&aSK4I`J4+&>)}SUw>+7Sf-SyJL zT}!SK6W_;oHXZR9WzSc)Z6iD9MA5}FlT|Gy`JbB30=i6#-q?}Ax_%jcFiW_7RorGu#rpQc2mu#tlZ*veO-0mwJ-HlgeQk$9 z4tUMdLFC!uMm4CcxSG4tXm@4pp?%%vhiB(Ay2UVe@?7M>?3F@QvlLn>=}ED1MRh zD(9+%f9`ybXS!_iQ%?R&%P7XNsssVxAShs_jZ+i?>t`Ye9d=vyV%F=_=hm3Wt^Lq# z2=M?n5L9{=NS?bF*Nnb439%R4>^<_=>_SOGWqAm$XKmW{$T4jTWg)1N%NmVmt3UKh!{L3g*KZP{zRh{}lpD%WdW z327I~*Sfa^mZf^_J3wR5QT)4S7NJG%H^jP3fxyPlUdPcDxplRj>7FrM*e9F^kHbQq zjG3p+^YS}W&-&^>6s-%_@^W?*M5Xhx-wdaa@B$FWiW#ULS!*0y5Wa@S&9o&80I*lwf zS#>HZZ(t6tP>B02#3>c`-Wps*@Ms;hB;0+OdP`X3l8$?p@fKWz4ydyky$Ca;XdS4& z4-IojNz1+bI4D9h0JY;N#i!~?C;#|_!p6@ETTxQ-VsgcAan*AbyJfx*g&_b~PbA)` zrdd4^j{wIG{zZV(l|?svPY7qj}bE*+tPJXeF#;>_alsBZ@Fih8kQ<4xkD z)M*8{alrau8&Sa`lWSw17C==!1>j@{v4zS3qGg6UR}U2%aLRSVrwt)=Fb)5GEq-!{ z?Gms#uHm++8dW^kn%lmLZKTil!g0}luBzFvJ{Nc4VUN!mcBS{kL9OV7u4h%X)Bc2F zO!uHD5%Zp-2Y+fN9zun@b%T3?+L=Jidex0nv0!j;nHW`ja9KC_k>anSGOrF_013=^ z=sy5Vik_*B%Kd$kQOwGxNKzM@n-OQ8( zGdD~(z>>iMZ%vd0sgMKlnYU#(=q!}E-f(%hT&AE?l2w_jpAc!+90gNDLDR^+1^Odl= zZ5E#=P23MADJl&8#BZMPrCL}KfOrF)uB1i?A?9%f9KraHWJWepLTcypRVXd`eWEQp zjNweRdV)1A;qtw-SjXX+WoMlN-z;Z4ETqFwa>+4v=L_Ipf}tITa0;>2pwm`{=Ln3~OYt4y`GR;vC*mGFE-J5WWxvel+SPdw znA$wyg%#edewxhHdL4qMMW?BFOHj$-k)k$i7eu-?G^)c{{3sy;vKc3ga`}#M zZ(;1^m+K~Nj@^FTf!6H{d?r8~*{WivC8SDAEWYZ|I@O~%Qyj(z{Bh+uL?SFRGEBqS z9ZDa9w?;cwXdS#qq{a1hxK!;EC#l*j+N0g;-EOu@tmdZhe*+$sRn&3yPzEyp(4>|JJ5E_LH&wvxo)=9gJ^ z>nAMyWf*`uXd2VOprKGn-0ssA4&m|x7XjjbhegK{Oip#f+nFPuqVM!;O9O|{mxuR5 zj5QmEq&Z_`{Nk6E7~b_}Lc?1^K*a-GQsjEZ-_nc_H=MhL*T8A=^EE@UFgSr=6?Rrr z(q6QuZYAuAY)1CwMtr#2W%zr00UQvJj>gd3-Xqxn7EN{_RS z^LNS|Qf~OHZI24Fe~?D)5_O_#K)RvZnW3pWx}>Id6s;`fkty>$nhmVobs{=ETEt-6hGS;Cx(P5a9)n|8n zUH#Y&|P=37IciIsA26P@(nApp98m`s+YAx=JUk`z+l2o$+3br+=~5 zd+7O0-_{hZ@^bA63G3P0Wr3Qf?GrCFs$O_PLae`wLw^NQH(S&T4VMV5ZuaA|h#UGC z5AHoR3cKnPyAFjdjamqwN@cr{>Z#0KP9g_Z#+#d1C0H)5L3AO?SRs|IvmmH7?`3yw zvjshCI7{4BJ)OZZRcW!cu`hvdHpleeXdO6qZb?&yK_JkZd?kzx(%eOm`5(|ze65X zmw0l!4pdlM$4eM%Fshq7d?sf*i$t{HQL5WDb5~?GLqmSly%f%CPobV%-FtT5pf6>G z>eS#x=p$^Nvi{Qp{-O9zd5vxoJU{Lb1^r-DG+3K6`LX7gsTo+9n7Ks+KlOn@h6FQKhA-hKN`(mPvnVyayWke2~R*>ZA>z`(Tm zfYbRQW`l8M4ez0<1<#M?@eGRG1Cl5^0NDCx58RS{H1u6VbhdV<3N{Y~mqCu{r?anf z*Rw?`QwhOMO4AgZ|9;19u+&R(zR>bTnJ#*?k3nZAbwhz`ZKEcJw-Oe&KKEZhrYdO5 z%cTa=hoix_2`#DR5~l2($1R=PKDeE4!j3EU9_v=VBpxF56wO~e0FRrNEGK=QKR5Jl zej&%!+7u~Dw4qr7bqBclP>gOrybKIk_1tVy=XkJ-Tw=QdK*>L=n?mi9mQER=(!k#m z`a+95lmM-oPr5419uH*c_qwJV#SgYW$kjUGrf1~Y!59Mnyr%O8h!OaX9}hu$L7w~V z-^03!CQVyhAo+Wt3BJ4%I1u5Jw7u-|(7uCr(&}Uyj ztJ=M{y{z>_}-82=oJEyn&$|M=7Jf2JG@=?yY` z^)(3R{!gf8iR~}oL0UeucJ>q`CF&+5q{hW*s5A7%I z`I9;WAGnto?ap7|8rQ{QUYujZd1LRWl;rKO7f4ts~XqdEn!zQ|#W;4$-CJ2KZjQSG!YMn_pVU$a1fW_HT`ykHheU zj(>WF|M}lqeP@Fv00m=0T>qYHGe&?!TFId#^=J(t!ynOfGFns9DWU1l*(c~gvt)5+I5t9vh&iDQYIz*+yJVAGgPu|L~Mp)f^}XDH0)SPO zJf~OMH8PYi8oEXrb!M6Rk!Lz!OD55jhdR`g=w+U!%aKpqtp?g_u_snt3WIgAEpTYk zsPo~^q>QQkyCw@WUMSLFWj(`Gxt}hO@R3AD%6#NfRbWMsXtmW-dUgSoi2e(@ zrZ|^gS(mUW#&M!x{RFltbSXhWjQfaKV`Z4!u}@hT?ET{Wz{8=tXWH?}2 zBH~dPS=bNpLD~TW(K-g69Gsx9zYQxl&AJc(6eu!v+$Y&jdTX)oK_CkZxxG3(kv^)pZMi5Sjw@-Wu|8&Ilt)yhpI_ZGWUe0x+O%&v> znh9q4A$<2S*sG+vX)eJa&})lSw#Wq#UFHg&3;UTJSv*`Jm*SHP4+3$%{+a#9>TTG2 z`Mrjl>XfE4$zkL<0)pDMg7ew=&_ zgB$jMkvX6GpXBt)cEs~7&y?krTNVbXs9YoE*8E9>eGTZLlM_n#%S&EE5iqUPniuoBc)o1s&J9ec5F*D0SjQg$4cfwtKl_ry zH`o7^Y9mGYf4wpNkCJZxln$ai8=QP!i1zH!?blu*h!+)kJ+cuc+x=|IBG^&ARHyxF zId?6=-;4VTJbt#~KbsW++#f28`eSv1gDw2ktI-vkeDMAK{Z%uJtijhg${Ktf9k%TO zSc+r*JJstpO_hd-OKF83%;p0yvT~PuSYq~VbKJscYqLY`-Y?r@X66c)ZcF0gTPW-O zT$!%zeSw88^?$ZNSQ8U5=xkWL@A?F_SfgcXS4M%Z|4@3(r7qdXDY1Mx9plz&N<;NU`u0QmW3GRI9;EVZd^CZS@N7#n}D=|b?& zRQ-KZ)d}$N`#g-&1<&SzgYWOS7y4d%2dWO5dM_;Ny;qwo?qYsEQy^aTo$-hs`Yol8 zaH@xk>3P|zZSJNeWL4mL&!fJ^T(o$yCb7mo^sbf`$^{txya=x2$iCCM>UDJKfkJY( zswX{kAe57CClysaE;UsBZnG9z?=zP8hCJqPIsWs`+2HAwfYn$I>U4IeMAAKTPBQ^K zdsFqKNkf*d=3vVbY0Go-28v|U^v@Ub4{jr`$Do2MdMif!AacFMLKG%hP#=O#M8yk9 z#a+CR3EiS|E+$Uw2OU>(knGPb;))l@h@TtehF3l6UFq8D7JF$qdU(VZ8$<&Q{CFO) z%50Po55Bb@avWT)0IHiligxM4#hQL({tVOv)a?2vZxwV~gi|AKcwZJ-Yknmk7ahj- zN@(BPM#0ywHlK$NdkpFJ42bW|g*VisOyq}jo%oR8)(p9o!$%&tlu;yHiyQ{8^@g8! z`_~=J&$5heKL&yr#~vsikLk9e(EWkUUYed2pQ{rE2<=N8%fZ-Hiw}EG_nR|4Uh-pH z>SxgqH*5?FGgLo+yFT|AhvuIG07sEaX4mr9rG+om#;@5GwhS?1ouj${*oRt)i(KR2 zwc5gb%fdDX@TnBZYPC^DAz$aK`dr?Or5uw6hL{}PUz=E|2bAwH7K`LI=yJyYYVm1V zJW_+ihI1hLHrtXo6o*;+ILG{iT!8BAvXrd+D&Mg{#w&1Xdx^EOED`Qd5@Bh<7QmpF zLy2bsdNU$#V&=p#$|jA=1xYF@->}XrjKR20(Nup|S%F_MW7Gkw^O`cpWzCJ_xe={| zcRb!&Fjx_zkgc6rv~%^Up>WbFra}lR&jOOg`<>^iHzCb84Hf%@mHjc6uZV@wylH8sT}HUhtU{ zJ+lW9aBYwXOYhKb^sVb1*yg3DE!4}aSY`X|`79;WK0XUY1n01}eiAU=kZTe$6}Ux} zG@MGE<=_^1@^CVFa{6mV{O(*4*kzeYvN0J*1ns(}Y=e}XRb4U3FwWx#lf#RTg(Wf< zmgi~*s-IowUzc9ep-S~s@sL7|%xW%7?hL-9J9;IOv7yD)wBGt?6`gX}R58Gxot1_| zcQxY|)ox)c>wq>dRvAD}!X92+Y8ZrL>F5j3+gz(|{XwlLFY)(LjR%YTS2^$dnW?;Jo0`fpt;1*! zX7lshu1SaF<)u`uU#>SEL}&b*R$9AuwOm7Q0Wtob5)PX4u#u@U-EOx3Hi3y6H5JG% z9hPoV5Fd3|mQND4dz6VD#E9=Y?h2zop&0R6tH?30_tT~=)%s^k2U=RiFxj4|>$k-v zY$XL~|N27zoF5e2RM~|JWoI4O+P>dAxE*}keWRAu7G2hOg>_a8%nY%1bG~ERSP+c-B^nO=Oh^rUn}k%H)?BAh`(hTDdIPsggjkP# z6->G>uw%{zK8K^LPW}^r5jXocl;?n>RS1xt8+RPVTU5G7u-M3pEAxO!f(q&iEPE&j zd>V4~h&kTuVbs~+L%ZHfHLV0YY_h~YB<6cJNcB4yhq(a?C@ivgA?qWh;1a)AeFPnC=Jh>qI6@ z#uxse`O9bRKftRr@{-VQPV)u?JJf2+g7FI(j!?ZA|$t1`bT zs|Z&w9Rhi6XUKCNtyAMUyEW15|0p4tHdUMaQCEPUy(E<2|4)zJtd8buJ6}1zI{0Su zxFm(w{BdCSpO^*s-k)z!aMgZHFqn`XbG@9S9Bc2WR8DFkkLh!~`W)=!;PJQX-**d* zJ#Y3qxEtXpri0RCjkpFc1Hdo**B1W1bF=8dVGAR%Cg3AvN-1sMl={C4%;p=Mh3eP6 zL|n{Z)%;?e!c#~iFwYkB=67V%Ki8CbY*0^PM zsQjh!mwf-N$WUfM!dh*9P}ac2dbO=%b!}0ySCrx(DEhTGP@Q#d+44@-4dfNRS5#(r zyb^{tCVLTw=S4;7$n!@>mEsfMBOw6u_dtoeA0Y}WG>5982$7C$7rvsvTj@Bqd;y0X@kBbRuhS7%RNr3**%dx zM>+3pm4Khmrp{F0j-lP-kv83Znc&5)vF!HldJMZA_Tm0CuDg`q&KJ2sp`H`OPNnR4 zHtlH9c~NWtYGm)6!R>M837dh_4$d8PO^icPXkZAEt@vp715AiISS4FCM2Q!g+APye zxoa#C-bG6R#c0a)$r0oEfk=Y&GQAtLY z+})gecetLZpXttUYqs7cAS;*yw31C_If#&9*HD6_LgqZN@hw~hKExo%~)5D zT4;h<9H;`bE3(j8VDzwX*c=%k>aeHclQm~IQSIf?bMhMW$DiiJxB|L0;McT;R5mv1 zH!3>P34=D7`NyeyIeR#vU8bh1S*6<*-jC+o#V*|n9u!d#5p7?sVM^<+zL@V5IUK16 z3Y{0>g6ktlPJOqSGO|;dfz+%dY*9yFiqm8=7x$_w)4zCjLKPN^DEG+8Rx=d_9TLG9 z^|=lO$fv0=?;we}xP$%|yG`lpqXL#dIFjOaIZ`wNtr8+iCk`r)1zeBwC6S8o88Dy- z^08T5-0m0&D_CCt@`0H7|-WrqS=CEFr6F}#L@$69y+H21zn zqTs5>$Pnqd6ZE(>IutC0!*HWqweBK62#f@ggJ+%h$(67@)sS^0od9CdCSS^Tnwwod zH7_)eMD3rbS?WK`wRKn~XCBZuZe69z^rzXjj&M%!I882zD%j>SQGv|M{b_IOC|l7*B^9j+%=#;!jNd(IGz^+%okXE86e!_;N~8wC8GIl^WF;gt%_~H zYs8lKesgD1FHWbZQ$MtO{@ONDT$yvYn9!tP7FBp0A|_$#8PK1HD|(FOP0vxH)&qLn zts`U1Z)Ub@p_>9NBB?!rtxdtd5h;@+9h}Yb(|77}09TvXuW6@O(w;=?)$^65_yq_A z<6;ASNlbCTi{~W#2={2}=8)H-M)6$Rth_@UXD$>H(Se>?dqr@Pir!vIKNLm zKYVgfKLi9We=T2M*2?XFBxQVLQWJLRvGm(@snfjZ;2ZgXfVqL6Gd#@HML`~>ZI6%I zRmGa1IRY}KypqvYj)o8qEw>KgX3ji4F4X3KER$zF^?(A269*&&%Gcl_$u_;9j@ewD zeXxf-BoFm|QeE5s2$g4V5t%GO^XS)}Q|S}rHQP^)`~n+MbN#vNA__474%|AphvU7Q zv4>R&rhkQs6R@YA`Q{}9cDJd}Id-~{d$}v|M$yaWR3bXv3uSL2xQn^|@jE9LnL>g1 zXOGP5YQ?KU5F)BGi|wKiw--TV&NENKy~#QP{aA#3a|i8n_o`7KI)X<<35PCPgCdcM9p2$WM&(h8c2){e0c4}x+Ou1U?7CUdGL!!T; z>@K;Al7ZgKmdncRStZTvin17kqi_~U!<_E}vy5(O9-%&k<|c!?rtB_>Itrp+xLW=1 z?r$B!A!~^&zhJU}tB(<^c3DVL^L#fvRVcvq%-q6xx~Yy$HnQP|NqKG#f|D zpRzK(!Tth&yras=-sAwIqfS6;GU${|n?a%1>_*uclJR9wf8)5P4*Lz<+D-SSC?h9M zeD1rks`&^>_;^qpIR7xE^=Mw(A_uui<1FPZrAy9vrn!|7BsfpB?xhA*Ideio(sGg% zopd`Jy_6WIr+J!C>I{#SzsNXO-!VPofpU*ns-mnJz3-&1?N8Ket69D^y$k5RB=Mmw zoBatph;(E;6c@rz|LRlhaOU=`6q@*Bz`l&b#6Qg-%Ufz5*dbzXl^qx*p)}*g0=7wS z*9t-ke>N;VaO?FYB0?PR3?u-wIZnIEVa8OY0Z2TLd?5834?s6J)~PH_QR|hOi78mb zo^!^ftP~!_H`3i@D%^|v*0@+05D85*UdW|<)<%%Z^Ig+qreKsVVfrb>njDmSzv!1` z=r7KRxhc;gXy8TDVH(V1F`~(d+%G4$X!BA+wsAYjzK$DmTgFj3xpli$98Mb7=&}c4 zryZN-mRWuj=~*wb4tN#ueX>ER-?Dkbt^QQVD!?f3c8!C6S7|>!W93}nb?t1G+=)Fb zdH=L-$62@W3anj5rvR-E^R6h#*g82)6sX7I6K1Vk67tIjLJYd_E_3Z2TAuY7X~jS> z;LZ#yN~dKwN4^J6uR@JvD^7Fqnai?0RRe)_J0^iroZl{jpOl*4q&5tT7d56@-+k%R z&?6MZ>+t~dVmx42O9}Fxo&4vkXFHqpjs@>$1K~RUnTd|kIeP6lOz}k;l4eJ9hPy1|0NW?!o8-*6z!a0#h`$(H~z)uy{`CKC?gFe2O!zyF`XwE3|(B zbtAQ0z8Sbcv<5H@KVU+Bd5zPbzKkEaf0EZ3)IonCHB=_1G?9Ml7l?c9On_AvvC&zU z;ij+9@w4@}u*bar0R)rAZVE|qvoOe-M6Bsv!CNps?BrG86a9XieQ++;8)OoBh-R`k zfdSoZPW37c=)Zt!6x{zCPc|Bf5C9bLQasZUJ&zq2dzH=@$s%DX@u?>f=4>uWSYt(J$i{mmhO6{qt*?6Wd z`@BgwC%%V)c@ixr*$`(ykYli*?DSorb%<=wFC0O@`iI-Kiq(ig~;P4{rG{98QMkS-t8Oz2)z(`6MlS zl_M*Du}ZKDc|N*-iJ&ObC1X184jkX@;c;FdP#vA3FWOXknY`x(wIOC_r;L#*I$!@R zG}@KQ$^Nt2SiSe$zmDe%(1DF_vo5k9x~|ct!z-0UJWyN-otmXjAn?!0J)6=HP199Q zje}Ra3>j6Jom5ZUt6`$@)-f6JZa!QhStc?eyEy2#aHp5P;M~M!YadT@poCUdnD8b- zH*R-|!v}N)H;F_L%V;lh4p>Wh^Xzj?L>KT3`h8eOqXf$iyNC*x?RBx4+)ENtfxU-a zPtKfG(_No$Is`)iqIt6%_D#K5ZRTeuH7%tAn|~G$=y~39#zNhQ?8w0Ad`n$j9)I)i zwF3%n@Mgaag8C>H<84b0LV9VnVEz*~H=pAEuAtoa1puu9Jf8*LrSEmxxk!vXBN6fY z^T?u<)dQ{opq0Dlmp#G_H;B-};kSZMzS=>OIT8Fa?j{M0%0CzUDJ8%N{JTuZ@1KEh ziPlqh%V?8Ae|B)Z6h@Za$98mZJSWA?t5zu^uWsUqC*Nrf3_Dzb7XWheGuJjLB$|G{ zv6{-!>M?}0V9JL=*z=w7G|V^QIMd`8#^rh#MzpnD#faGJKPq*Aw<|X`w~`*07;txrv;N^-2omQEt7f6Z8@rd&48GfmZfm zUpY?_NbSGacTr?}#1ynk@DF<-24^oiOGH&qM>6>wiWAGc(jxymd9k2?^HLcJpMco^ z)AUHJfRw2EbeN)~usKntz(Hu|nA=KmVfZcy!TUJF2A&}q7xiXJHKEOZ^VAZhLL(C2 zPrZ^}1G6{e#oRwLVtQwFh}N(v7zfOhUpY8E!-OUZ(MN38#1)oIz6zSfr#JbLwj9XG zS-4kk%O`VoNhNNNJVG@3tHou&^4Y{pW870Z+eJ0;(@fY#|tSGIvZZ{KWFv2g}peo?cEniveC?lsWT05B6_aC4C;G3x0g5uU}|*`mIN3Yoz0J>8w3 zFwrJgE;I1KgDjg~Fq{(PH^sm%*M&qQZO{U`g?pqtMG?O6-2O2d8p+UCnoK%Gxh=6w zL@<%OG!v=^Mw7CbCnFWh#V=_+QjItPHMBw%>5JV3SMf%do+xZ*O)N80GHp4*R{_H@ zV=Z{G2#VzGAm!-lhP}7kGaRO~9KwolJTv6^?G3OOXr>LDH71*OT8772fV=hGBIcvm z^njnwI^OZ`k6ydc73-y%n>=zhG3JhoP=O*4$(Cy|>qvVCqde@5{Srr}tZ5P3)y@Xm zY7_Go2FWQ{CK;_MQ;7VvtYMs9Cs`(5_15NXNJcxx(puK3Xt$Q zVFvmD(Qfmz?tlWXd40^8P*jy#JuVG|if_4=2=pb$DOQ{0*irV=;|+%@FFv6)(&kE# zXCp=clvImaP?;&chL{<+kc8HcgYQnopoFQ1VU(%dt@tGpxG2(lX`j_f?1d#PO-PgU z3G#W+%-L!dKhYZnkz7g{nTr=7pPeg^d7y1q2hPObn1*7`)(F(IczgjDT=u4 z754l5eD07MH|bmT$43cd*-c9rvGb895LsH~qJcaZxRZizjC${sOhAD&+NF&?@-cuz zK)c&~;iCC3S460HOo^Sz;OAPtA|oyDgzdcj7+?bzUll z*zD-86uwre2cOAYPKjksyeH|m%qt%J*5zGPZdejH$@`N=EETD;+digVwS48&L-{>{ zW~tgGfBCK66oPA+5jf1oeKk~523%ak<=mQUUgfjGV?DAYqSmP#YNmA|A2ZbRzB#QpV?fX+b1J^CIe20pDVxq zs334b6)vmZM9@K5o%Yz2ZAVF~0J=D&T18kIYmZov&NGcPOec9I&SMMvylU@Q?0O<$< z(vjXm4<(@}2o{tm0m(qs&oh;KCr;gVuOhD5BoIOt{;NB({)^F44K^uyoT7GeCHs zh+bqdpUm2Z6lJ7NrtHI6r<%$ITOR4(_WS1}i!FQOuraLd3Ps-22^Wlo z@7gYKOCY#d+u4~Gm~M6Ud2X_BLP=sbgdwuLIvJ!Ne;2e6g%sQz)Z=KVm9Y$~vv{!)Pd6de+a zsqNnid;TGh>xCwEZZYiSWY^#SxM%M_X-E^!yi9tBT8|qWbieI>Nv==$5lCV zm>R{0S}-4_kZunzQnl-twm4pVOSz{G@U$_W5D-MI+<)>@zG{~_bNf4}xWvA9r!4`m+ag{=Y&+2(lDAf8*4my7uKpx5bF z&@>yBJ7rR6VRi3_*(bLrQ+{iz7X1&~kW!8Rk|>y^DFY5yF3m=H;URJ;%j4c;{zY%% zKdpiI)&5QC)j#RKLUH?tN#MRrT6#CV^r1)B?D{xs2p#9e0l7ZfoHu{+7X@&(KhV43 zzgngAAC}6u2UA*49CYq&JUjN@vHK3q#7mdhY_TNk)>o{1x;2wFWX*@K$c#^|PTyJ& zthK<2mmZ#PArY>(R1GVh+lb7+$$U}s{DP;KnAK4`E?&~{AI@`xd$E(*a8c*=I927P&4-c8(0Sdi>Wao&$3VnS zrP(KI{zD>~g0Z+auh>pR?|E|zg~xV9H;L0?cKrB7=*5?PtG<^#qM363IvZ#l-cts> z?cw}TRy(-6{58SHe1URDNoWFn^LPyV&3D&tf*hk+Y@UO#1=Zh<%r5tn?OW(S`)l5E zcD?qo*T!+q=}e{L91wx7RJ58W^Y_zchTA(c{{7brg?wu56Ytd(x9Nwt!I@;2!zw1i zn|Tqvi!Tpr?Nhe#2E|AT!0fMbdQuaRu)VNPmA_9M&u>$nkear|yMqV2N5abz|4=*f zuAdw~uE|Z$Q2t!lf+puc^PZipIb55{Ke*o>ka&&xM@j^yx1dQ&`jP#pJ8YQU_oZZu zhL+*kg7y$|qA~2`Q<=vNsg~TAO--<#1;zlTrgAiDs~aUa&*`%_g$wF#f|rTiWQ|=8 z77cZ)-sFpwJ8*I37W!~;Q=^4pQG~0saSWN!LACY0sg6nWRRfDv;TJ4GIiIv$&$23+ z&;%oDnWh`d!9Pq=)fgHfq$T(^>9h zY=E;Il;GbE{Tg$Jt)bU=k|J+=js(s|-V&|lA2fW~rx+FNu||_g(3>#q0#h272g6I4 zFI)y5nSTr$Iy2noJXc%=cuZYnX2ksZRF!elZpFsi9?U*s}}i1kz4{4+;< z{#p%peLddN8se6YCeBDq)!wbm3y9;lniJOfaY!y5Fg&xJJ$2))m>kKR`!fGHM&m&v zHCLihXx9x~z&YZ)?8(yi`N_%3_qjFd(9IAsY`|)3vGYl?V@(pHF}a~0|5fCi2g7d5 z18HA`oC?R=blx{^yW3uYpTg6h=)M2!=nX~Z`R?g;h6jac^V@78=gOB*&tldvr23id7TsCLR zZU^|G|DLuMWv%&^`0Hd|BvhzY)21&m+{u@x&nerX+EEE_UySj6ru9U!O%#@1gVyIVdHE~Mz$g-X!U|({T}_XBl-*tE%UaMzAqg5gH)EP)>R$E z7y`_jn1%dcqLM;-kESjCipm2l0D_DLVL*m-c%$2Ev=h3jkj3+VV%4*EQ)1Q6XPx~l zd~~EyU{H6~R@X&W*R0o-j!&Q1gI!zP8XipQzR+?O=37^BG=1m!{H>@eHJ2}YVfEuP zs45MkVaevcJHWEG%J)-L^VUXj@vVl6RRuAzaOU@HqxRiQ{G*F3-iix#!@~zihP~pT zbKOs~{<5u3bGN~2%m|CSn>tF?(8i1FaT_UjB~R#eG4fmGk58OUd6{kR&$92{<8x6g zqS7GSZ4!?NXgc1w(qu+2*{m-4tAfXAWUX)CBs3YjvBvvnF3_E*FXQuYfOoFT_-`h) z_vXr%6UXJrpE?dB3O~8#179<5B;a6VNyxI6d63W+q4ERMv%|M=#=MU_2HMF`Lr`t9-P~AU$(Y4+eR9us#5@{ zlKo?mgq85PB(oJoZ&`lFX;(?7qkc#8siw}y64We1E9rEisy{~mqXw-5s10`Wy8nr zmsSPb;cb!?X_@8a+Xv#scdh0VYK=-f%D<>Ynxn-G^luAF99`W-;js?^(YSIVbfT{7 zSC1KgH@_aLGHbHfr%X3g^}($_ex}Ri>!04fd1L=_XT?->T10HEv1IK#CY?VGk$yb0 zhQb~Fr@e6&T@RVE(qGcY0)~;OS}ND&?@mVUj$K6^UWOTg_v4I89#U4bJXH#%+_%oa zFf6w41rtzb;`ZkV zS5kHK35J3BV%1vGhlZ$iubZn8df8)lbe)S!j3T44A0}PM@ww2l!Ns~N{q|0VvNHCs zuVgsaOoHcklU57O{p;Xv#_h?e0!0QWCcIdFEp3 z2wMb^lrYJj4%i<{cGSaQosuoGkBv~4NymQAW9M9H6t=eBU+yx>?;Ln}X~1^y@~t-M z0!qLhC)uJnX%eW?9kvl;m1k-!R$th@IX(KB&CciJFDEji$i%gkMJSu0~?i|fqbRXJ9RIXDiwlC*i zZLtFfcH>i&;yzFhJdM=BSM(%Csq53uZD5KmkiQ<#&^tvv*5|oUKK)eRO2ChvoOBxq zgw^$lt93>S6+nqg9-xoT_Y^X^DAz6*!P$dfvA=s2!6qIR#V&omaG~U7QI=4K!RJ%i zEvk7J=j+}m-^}iTJvGZZl5D8)D_nv+xaQyDwlca(>o1#B3h^@@^0VM%vJRO}Nxvdd z>k8_eg{GBwsm*P6bU#~zleilC7eP_7n&JIj&y0#4Pr{+;wHFefup>LZ=|V?8`g4Ff zVuGGbaVbH%#YBTL8}Bb<2RSVc$$txP*|#!?nwu-k#C*cUU%uU`ff9bQFHvCWZZ#h4 z)8Ufj3vb)E+FT!f507=b>%SGR5P$m5=2cle6*po?H_jf9%4G*KlFUVk{ly%DS(LBfoNHX)B86S>$nK+Y3MbED=DZ zK}LD1g`+R(CmZV|rwH^)HcY;^ti)e7oRqymO|6h%tkM)S5K;2`+K4W8&9e4*)L4g2 zK;NnO!ds@ymql-~++9t*t+k}i$8|4o>v#euCW-dQz5;F|4m=6=NWOLo?2obT*ho+&5- z$H*_7sO_RY@PYHGD?Hkh$DCFNWLCu;z3;1~zjQto9tBbB27Y~eOkSU0aJ{w!Um{0| zW37I+y}I`Pljr$i&36kBPsNX!6>Llr`L8{i+_t~|`l9;i!fMAXZ_c%$ z1bU-aj<3p;F6`=0h795MM)OJ|nW$f@=oYkhLA998_C)`JQ>x4rOVwx{4CEq_I$q&d83Sf z!Idon3SQT`x5#wL!^@)cN<<|0(5@>Fqx202OE;pbY)Fdu9q6KK)u2t|Vdkr8-?a>JnHQqiytFU@+|0FxxWzw5T~y+FLuLt;QWOe7RGDR26?d#bu=>TY{TSnf&< z`e7e(d?n>sO6j3G;=^$v4VC%gm5a1g=94fT($Wz_%N;1}v0=GYWq?G*8%Dgar?~kd zsRcu0p3U+0d``ZO#rVGGMwFcMFw#+#4L(E$;zpcJ zN?|q{E9ipJAFZsWO^ZnOGKnV6E+2BMjX+Krui)9z^WkjxVtX^mU=d{Y4%Ce%5^tIr zQ6dv}Jr8$up}a(ms>V#+c~gK*zL&$+tjzUh$d1wIt#8?y-0*S^O%<@COW``XN(jcI0V8&7CO>I;ea7fjM}HuGF`l zH;h%TLJ-;2w?1R5XPET$<}#e^eLi+5FEoa~_U8qGk(h)QMVyfG;vcbaV&{o0i+(7KKzwYx9G&2$IfNrN|9HvdDcQhx@SK(vW%jI%sC%_&+mg;4CX9zKHX>PCbf`@xA*HYo!yP4Oti2zxtRj_uy{FO^8#uFiwLNNW;3DZcLq*R2)8(kuuknoJ{XHa-pK$eiYefW_%lRvp#$ylE7$#s~5U>IdFEMHNpMFV9Hz`nK*O zO=9HgyK>(ye?u#Mr4&+SO29->j6D}uzlfT=d9=pwB$*!uOu@~OF&Vl>-l&xtEKHzIl`K%jVhp?s+#J0#|`!0iR7Y|NU7?i3me_Oi5(56&OTp(b&S<=Pb z7_3TCCjV-`IrDqt!g^FzKH@z`T$ZVn=UpA9&xAUH#aINf;n*hd*P~W8>^=8y;z+Tc z{_~G!w!1)E#y`bwJb+0HP26vcFwhZ@Q`)TS6>4vnTC3O1X()Wge8_mZt)fKP`kJ!i z^2_#&->31$NXsraDelFv@(?FP#Bjo$n7C(23|TxcDiu@ws=H?V-M|G}qp=U5ayJu> zuGt~nX2;?Y0#hXIXAMgc6V7b|l?$_96Y4||eG}DCo=vu}7@YyIcoB$(sDK*?x(#8h z6}WvE1io9@&`it`KUG2`wyLEu`={8XmiTYD)o`EQ#m~mMl#c_0BTLhKit3(rD-a5+ zU+qkDcIrM=!`-WwFFkw|Y~Fu8-nm?8Iy6bUiJgk7Tj65#X)3C;D+GpnJ9uIuJtkZ5 z3I`RC%q#Bz6OL+H&~hS$*#&*c`*CCN*nosh`-fI~OQ`+WLHv=0ngQjPI?aMSR8-eK zywc8c-Z;sQiYmv`ua<`LC6Hdo1kL<;qI&&NNs#TIXRWPsp}@R8N%uK^y8iPh-+EH+ z$$vRMl!p9C*Q3lO{&`HBohZNeob=fwMU3voq(vN19GiMX6((~#-0V;*H~kTc{}`Z{ zQcu)B!Jv;V5nn{N*Qy9RSg*{Ba`w)s&SP1GUgGET4G3CFhA}4@E97;U@BIxnBo_+U z&kk{};3i9xI_3XVR?uj3X@TD( zk5J{4-ch5abnvy@Z^1Jt277$0G$G7>?YeWnaB|8?#|s)=1~!efXJ6Sax*TJWg%=c6oqT0F?UVEvjxVO7F+xCZQ_XjpFsq-zjyX62wq4 z`;-1Jj4Wk)`(I`LBF(T61JOFHtQaHARycV?N>A5wjA}Vn^}0de(D^2>iV@xJt3!0a z`>rM@`(y(G_O3Dzix@@gkF7A+d!eJNN2^En!C{YmWk;-H~JCpm^tpA zLc>uUZJes`!z;%dlRJ?U11UcoPpxD`a&8P*1I@|O_d<phZ%!V^z?^;HnhJ+vla@ zB@wJeRC!6+&x!08RlA38JcP$vo7WB33PX?P>%QDylpym3OifXX++}?n z;v$npm7(QO*xB-L$Qs3x{qQVh9(c){*%8Ok$So_RBhcM`MKk%GJql6|RoscNa7 zufd5~q0e3+GQzfZAf31U(n`WB#P6Bmm6zHdyppoyM-v{7WO%SRtZ641UE_*(j`GHr zyjUXDok7#ZK0g&5*?5Uy0rfsyAHJfF?M6`sS`hJ%Y%^aZiUcem3@gSBe3q_*AhSFs zTViowuAmuyMz-+>Ah&9zE~m?fRt9lG%|!+1<(UA{gf!x0c7+rA#>$Q)-{=}`GvWp3 zg=-p@8V-({YLmEFJ6_!T!F;YfG#;ObwGA#>tj4Q)J6JwZv5kzd*PXPa9=Bu_jS;A3 zy;_|$F?-fJE`|5z&d%x1?1yhqS`Bx;;UbC(~3xs0M#n(Vh=fPX6cXzDM5P%)=^?opAzrjyt@8ovB zO@J64DI+9!BbF1IO@H)-!`9AR?Ahypl{QPo{NDKpfo&#!9k#i97Rt@Q@Eo11OV4BC zX&GvY+v)y0Wkc4b>HIDE9(lb%BMSv3STDNk$XoVy7d)!WG=6TGW zDLYi+?%Lk)U;f;6waO1r550re;dK;EvsxzWL-%2EV{FB`c1{t=bhN^-%6HpmV!!iV zZ$uFjvFoGdZ+V8jZEWkse2dd-MhUhzfZq0KYL_jU9>$F<*n8l6IIC2F9XV1{;6rG$ z3O=79pm1joW4L34lm)jBk%}A9nq;&Kwu@|0CQA;f=*9A{{7PNTo!31K-S+b^00PO! zGG#OzG`f_k8iZ|Bo24SLP>9`UJ+B8yvfoU_H<;U!C*1kd*o`Jk(xeX@g3n{J2B9KSYJ$zty4~Q zM=sUPR7yjN@yDr4Ds!k){y&aVSG+lQdSOvD8|tbVsSO3_T2d)t3oiXwSn z32~h5eJ0(dqgdkntbWgWo_(%zqVXuu^JhxgIMl6ci<7UvMSl7wFl^?r7N^yzs6M{< z&1lyf!<;1VF_s|je5`!7{qHEHI%!0%pn{-mrCR4mWQuOBxn3^|PyK@`+Y z&jB9+TKb8KCDHBEY1@XWXjT(kuJaO!%uO|&rhKg>bd&20pkD~7bq@8wUujc5qxu@D z2`E%2>Hk<;%aI2p6q~jScC5fI08^71QBl-e)O)=UQ-N!G1cpBrDtD63Q4$*(t9W0l z0h&$jOZJ#5(m;*$T+i3qA0skXKGMW3saM64sq2^w_|;c2M^1t`0M`MC8C2A z@362}g(++Y#YLNmOWhO8zerr}m;{YYMVGQJmg#}l3$$@U*)nPgYan26)>IH8q6tT{ z&0tFTm!tBqE6;a@o~r>YXPUpaR$fq-rNq8(E13z8bOof2fK`B^BL z@{X0K=xB8{roUS8-8%FwI_18IyzHFfPWP+qBaX&X^xl(G!hjYrPwp7qPR#{ItZYC% z>?(?LbiuyNe1^~KJRlnbLp}(T`+a*A3}0DTUaZfWVfe&9ty~XKYSfS!brc^0^oT}& z`2HQzgprpHbHLzu-dECs!dFGEUsDrFrqcU8Q=+1rmykooR}myt4w z?%PpevCjq76(jMBmPP0lCg;t%MQBg$$Q|$wF}wE3qoEP#hZvXV3rvNKydF-jfkj@I zC6Bc=1vgpv8;v1xVYz+kQrYQkMauSG_+s+}AGFqTZOv1p#r^_z(K0vmi*7GyM%TgE z^cOh&qA%w0{N#s%_OH)p+yy?xJxi=}zo!*&rkc1s=<%l1YfLQ-6oQ*stAFvM;rn`3 z$4<+`rS8KA?oW#ic03-qlckQt7Ew#D2iMp0ynDUdI8uot-J)SRanGPn*2jh*I*q+K zydE2_h&}-`(~D&S8#PJN0ty{TOh%X9_#x0a+r5P&hpkui6(e0u!KUBVn=T9+Gp2NY!tgGyh>BKlb-LFPncopLHkD)K}dl z3596P6PVJ?W|)F%JV9Q*NM0;8WM`$PiBNGR1WsAS$)H0`hr@!a9ITrKAloH4N2`4n z|Dz)g_H~Ya(ZiI|aj)zRaJ_lYQq>`;6Z|MItiC|XNwV5#?YYCQhdUbDEZZm3ICln|&$MN@Z8Asvfpy2fcfNfRc`pzZa0 zzgY9esug$xoQo%F4a|&of_BNjm0=U+`)zK$hbWln7fBrcO?f=D#*CPRz=e`4en0*~>Y-{)86+17RzDA| zpB5kPcf=HzZ6qTXCb_-yXGq!gQjkev|7xFIe~-(XO0ClB%IS)U1sqADjIWwQUooMs zwphIU$Aa@pc7P#Wg(KrR@#Y095bw$gWcep9S;y&_LRPx*e~+e zDG~R;tpfipUW3sKAg?ePJ-8itI> z%jZ(v=9+uo?Hcj{%CInh;UuzBd~)+gnO>&##(ZdngR`2Q+hK3F#9WpwW;U}myatoK z^kwj)&Ee#*4Jx}=0h(dcE+7tCzl!>a2UKI6|4L+qv6X-%V^dc$dgtj5eiqPgJ2Pf} zwZ3rk&2>b6eEJy7aJVE2%4am3W$2_J%Je3^ySW-ro3=n=ZxW1cPQG4Z!B=R(Ot`_+ zA(6F00%h_ds@L9fRiAz=K7XyJ!Be~MYhsGLDL;|H?pt0jE5oQg(~=IoL+O*9N)gfJ zK~;s_`+WB@g#%m+bs7P<+9sB+BIL_;2f8!!yx%3xY+G~+`!uTYdNfuyYM&=dH5mhd zX4M@eZ+*uB2fJ#115(mvtljBSdB}_@eP(c9%wVb|*X88j*(=xAs)X*~3p`U!^__J| zewgyxjhG|glbZMn@^LMbJ&CFP>Gq0RLyw@Usmn@2w`!^ehwA-TV^6X@xe}xNh^lM8 zMyR37eq2lfMZgeYr>7LDs8mjH3g3;+8oBK@I`LxecNKflF4%Pg){ElxB5;P^T%V=` z>~=#-1%JX>rDu}%&)2Yfj0awq+c9JJ1B7 zHwQbWGxAGnf@XF@#bVKC66JMO-f)R|%#J-~R&k-Tj!&<Ia}-UH$zf)e-_98!B1@t@SQx6+GM^B~&ZfdYBH{bMt+E9r%~< z4qKQbnu(R0!iwM!lYRco<&Ih-KH5;+%|Df-`h+eR6E0um8;0Fglr+ zq|u8!^x+aG8wNLbPizz9Tr!mQo61Jtk|BLs(>misfdJcJ!8oFNkO zsc|cOsdnhBATt#o#vS#KZ02z%9b;uBX%TJ*iuAd``H%!kXDC z=RODIrS6aWgY7$&57fKHyzJA&S)Z=L4C@_+62a^$G||j`fGx}R)$@AR@4mkm?*ybiPcyx} z|9eri;mCNuvr&s#fk?Z1rfXTd@41OV{aqaaw~stVI8c_Y!wg;_1QQ1G79mTbJ%B#H zo`ahfg}aMJ-!Cd9s&1|Kl_xx_Vd_xb86P;5u-(5toq|l27e+>wp(E-w*=w+f?xh#9 zA*;3XOD`qr8GmOCuB%Qgk?gYk=F89H492ID^SkRTBfeqpE^UPeV_Hy#B*WNcH_{)aNBj>rBPjH z$CQfd)<=r@tB}`izSo_YYc4S@bP7HlceSIPK2q#b%;lCOm;2w5%SJ?1_#5-6vHT(gWfQ}vKVhV~vO_$67D$XWVW@=#Zw&GtY+;X~We#8aZDsWx z#k*xiS-l*m-oPDHMeOF@0Dyc-|LiV&tSVnebQjbX(oVD^&-r@+y$v8^QzsB8hf(Rg z&S1-rqWFbKxuM-DX5>DdJzriPeo~OmL>Bh!5U@QyYpm`~0szVve!|+oF-6y(I_UxV zYm{oGwH5p6Gw6bf8M#viFVEO0n=JK<>iGD`9~0ZjFSt|I zAXWZ(_tW#|nm4xBEV+7Ra{L*p9NnJ8vGXhB;bZ`tuX{4xgz`F-_zCvEScX0n{Z<~Z zr6YaHn()NIl;dS81h92xKvF4cj<f>UF%h7aQwtSeQXVjLS`SErjA-vN*42ZuQFwCt5u$-yw=3#h5QDbrUvxr2QPiX zOioj!xr>NSI>&Vi2dqEI3_Yuh*h71%E*vO(GcM=J)y)ix&ps}AT2zyGUljsICB zDMkLvXJQ_?R~C4vK$^uiTBB_`;`Em%aDf9b66Wp1iLLL!Ng1of5V1n?uy@6TZ($?G zxibgFR0%s2^Bx)l$5$QOJgXudPpwYX9~4cTWc~FGWs-j_I`|8GJRB$DwyGR4qHe(T z?3mW@XpREMl_V{`j%@E;tzjgO6)DL0JkuntpC|DmSaypEoX5Kb9I*Z(#iM*iftB3$ z;jxMz3AJ35jHeI&%mhGJgC9?xI8(5H)k6v#={MS?inS1K zM)vc17L66{L_&vteM(O?aaYU;P0ciM4F@Y?}*`TAGwHvkq-C zFsmH*=cN?*;=xIS6-gO26*>Am<8F20%9?&|fHTS;F|ZUlN7A)jawr@^GM$wzktjEZxy^Bze7wj6Ephm8+`U7?*_aU#=u$-{!C30SAzs27lwx1|E@mlwSdCiSE;snGc>_U1 zCBITEeEmb`4$*z}C!+J3l<9_Ck6Eyz5EU;GnN&n3b zQ^d(GL{&r!{V%y>ah9nsU9sLkhu7>cMqz;6|9*RR+=EKhg?$ulqaO4Kj0jD5o)1BA zpwKK+17V~)UPf+)mFz>}wZqGAB1H{rHtFl7JW(5uB-Lt;O-*LDcRCwQaSfY^itCk< zxkWlrYm-?5((Ax)Vdbs>cwnHR1MJcMQ{(fMU9_>9^(K8ZRYg+HsA=A?9f3=0LrnNd zK+%Mnhpm3R7o13ssK6c*Z5591e>Q3`BZHTYS#(uD^mWwaj4VZYPZbT)3U40?5r1lc zV&)R2LBx+Rjqb?0TP-rFjR(w21`=tGUeUSP6^;9Krm3E=QL^Un(!Mm)0p|IsK)O@r zH@;Dvzxbg2%K=)4$>?D{#BW zLIvgh3xwXX8gs7RQf&WauiU8Xr$uNRqT_G89w4X@-m@!Ty^j&qKjy!F2LRQgQ_nMT zcvlj_^VestZaW;G-B^7QVbTh*Io^Qi-$xV;|IB& zhMu_mejnlXAoo1tJe6Smi43lcQ(3<&V#5yKMeuadth0#D2S|u>_GVP}cwnDE)FG%H z8qZ{RL*1`KTkVHyXP2n4syrz1D?fNO@+)Q8E>d~(PRJ4j7{}B4CmCza(Mwr|e99S+ zyEmD0U(7Yvu8s5R+h~S!gk-df7|t?<#y{F%GDU8-G8f$;hxHi~hO?s==^|ywI)JK@ zbNYDrRMWWU|9nM5WGBkcrc?|-qEoU0;Lr6J_p}gE^P(}69SzGQ z?b155i1iNz=x^EY-Mt+kw)^k;8;-!@#$FBP`=L=0!v;Hh-&Tj_g@9Yfdm8t*B@UBa zG0*4Z?-lPS>?8_gWpixy!sEuCjT#)|+thK|^mp@zV)v77*wcOXN}b@utCcMEV7w*> zP5v*p@dDdwk?M{=jPGE%Kth4RmZ>~v#^RH*P?kaj931vr_3n7^fcqILHCD>@am^l} zv3Ssq+5B}lvwMDtdimi}bJ=+d&HZ4T_xnw?rr+NkqO5`@VX4Cp8OJ64HB`k8f4VMF zyDdI(-)Z)a-HecZ<$q zlw?D;Ev|V)B@&$md6HyVb7bJ$d}7N|^~Ad0ftv=xH8R@^%@dO;9W=GS)?3aNwuR9Z zC0LRU1)=qu&^Hf1GU@~jc+Hq18Il!KsRtmedtEd~L65`_odg?yZFY*^I}YG6SQ7=; zceo%XYdNVz_IoSae`6m-6BiJ1-yk54yp*+#MI^a|VCa ziFNXZrij1*u?Ad_mm_fM3E?VFw6XPz!6_?`6u&+z@xqTZ^CSVTZwo92RSTaEU4DQO zlBqmf;O_U1U9$L;$9-$bw-+t|Jfagek4*2o9`^M)DPa_YllVtznJ0y@x}${BA%_ob zB4c9(2QL~APx&fa7=KTvdL$*tWtYmIb=C08{(9N|CY+rYv*V=tg0{U&W2KJ#YLuNp zWOHWNucMF65t^oJZ(tKXu;#}2JA3JfcJ{-3uG(b)VvD&Uz-OW6ro-*f-vE9~2XIz(Nc8Vj!pFy zlO*gri512j(u#b3nP=@)pJvXS_?L*&ryp501N5$o7sc8p1v10xvmh&X8`mSNEpNkc zg}NT!ksKIro7KDHvU6k37pwSuAdBpd(A|SRE11BU&H#tgU?+h5x#F~M;v>c*TIoxy zRSxd7TT)19tBbE>u?yr=r%$(afBAthD@b(m&-NI9u|)IUmkZIHeujLumT>im)%aOT z<4?D~m=Uo>gG!O-u0?N`B}i1SSx=}-uCgvlP?H|RUFzDE^~JMk-S2d2IP1C+3rdPK zK5V`E%?Y^65p%0IvaOBcR@HIR-UVy_a+d314w0O;u=UR$iJ1xsr>(K| zr69ZtIy-u!MngHN-n`uy{-DC9`9`sR5nt-^-$|1aYp|WSl|GN)=ASxK3&6$ux^H>j z)kqt>S|Ppygj<-k%SCY`&OKv6orT$FblNh#lC|qdo7+cYNpxYdL&rMkhXa}=+c#d| zoJhaXF&=#5ezs{{$q)D(zZi_DJrE7+{bjoyVP{G8n)wg5*n9NW+nMGUeQ|sGzPWST z#!gT>5BECEA}~wlI#(KYH%NrHut#P7g4YnlLHCIY(*#57e{{b~2@hDD&^*Z%7o8^- z>F$kitkg6<{Q+_cyJRt9T1?MADxaovDQWC$wvuJxaG`Vm-D0Y_(Uhv1;M=AQq{@o@ zJ6z7ibt9&jQ88U7fmz;_vxS{8NpW!>N`oyz@L!@<;PIrvbX~_W(odJ>@mr{p3@-QB zcTDf47!O*Xd>H4*iE!}31nr;h+R?bgYb+pHUH>T9n)5}A|FT&hI4Lvcd9vO9=;Y#? z11AH=&;r3mnXP?LB>dqR+fB=w*UCggtu>N%?TBMr>B1-5t3Q8%(c>2>w#V(p9-x-a9x(Q{h&oa|(;qUM3o!-M3; zb3DcZ3gsr=kF}Ouc4ClX`w31dOzGu`Q02YA;0PyHx5jJu8+2i?td>flsQs(e{ZkS4 zN%PXpGCDnRXOMf298~ePHvxp^_3fSsp=Nb+;e(m}ogv}+Gal<*LdruAEKi@Flz`iu zF0sGKfQ}g`0+>dIWAl+EiRFxY3GxU@@ABlM?XrC5KB(N|&)P1fD!khf#Vj+Cv`Laf z##IBX(L->%erb*4n_r2 zxiW!GAEO<}hTW@_Ua5=T)=r%E6(F#ozM=+%YCOf z<+|Z#XwUdmx+MTzCQC`m4nKEwveh4#6n26oY}Z>v^3K#~JvIFms1(!}(liyeTzh9M zAgnMB*od===y>{_o9%nZY)Q|&9CJ$U9M=8*jQbI9tCGVO{tPB)ABoVUn`9N*&cX=H z8G{+Av`zq-YxWzOX&;Wd-*wsj;LmBfbvCQW-1QWd^WOqKEaJ=%=Ogx9nKMBX3r8T{ zn=Q0dF&|I-|03UxPlW_@nw7meOlFt%Xk&KoS9BhvT{9PpberRtDmXaYuyWs;?}a#=%R1~ z$Mw6YXl>FeKxpvyc%%;b%GIX0#&S}6&HoS258(w$n4B@u?&E;3l_lKv5 zEg6^iGvgwa|I%Y&o})!4HsR%`eH8eoe(myo>9KZ*%?;XL5nZ+n_GDlgQrm>#IN-|4 zanM~mxi`Si{teo}{G}3@xfI5Hnj%|4mV^nWswOI z__STncu_08$(Xl!_SjWz|D{Ku()8hm6Vm4E6Rh@i!7#x=HQdp2q^M5{I0doE!LFGl z`dKEA1nbF2aw0A)(`Nj`wa}KXsk~DqGV?!_K;%ZQrFs4wdG-l?jZD6 zg8c|XwI+uRHNU|)h6kw!B<<%;27bG%1Ut=2esq#;56DnruXHlGS4sW3uRTD$F?u0B zf$q(f$3QSEV*aD$%?bCSuxU2U&g->g(l25^1Z+z|{VCJ9n~rPQ?H`+#=a=87D2yB; zzNyozB3^;<<;V^7oqx!)RJi|I2UBg)BHzqUQ*oiF>KaI+WF zh5Wa++*DNPD<=p!e8tT>?TLP5D~(Aq15%o$9kO!J)|{nqGP$zSVQ?Ld{Jbwx$3CeO zg5PXSRdO3X*!l1?afm<4r&yme%UJJ?lCvR+YLwGA+ERgDQnjzgs8(kce0Bqs^5 zaX9PS+=81Mb~p44?!Qq4moLGeaiFfSvPJxVGjK)f&ydQcO3^!549=g~l-T+6x3_KF zYL9cKXBz`lsaLY5yIyROovAmQ*Zt^j6<=u7?{l#(rdeo6WzT^%b6pVzGu3FtRX-{E zgcy`0w$OvksGI)`9C=blBxPkTJ;bK(NYp*tj1A*IRJLa1Yi@EoGnOils9{#^f40{# zMq6AOi{+i>W5hL3k z2_CdKrFTY(5iA#+Jo=ClS}pZvP}6X&QQ8e$^)?-Q^py_B$x2rBFzczg6meI9eO&61 z_=9(L(!9Gh_ATYu>Vw_R<>XKngnLY&UyTw`vo`Lw{eAN2d8($P*7y@MawCe_H2*8R zw=(sNn~G88`ir^g^Q6s272XYmJ{`GzjiY^MtiKEDwy9U>w3n$NyXznE!0dZe>eTn| z6AF>($vTCGQnAaNwSiC8&Bz(YU6Y)v6S2}errTd`h)rY#`Yhxf7e^jKTnK5A(rB5( zU(yFo`bu5}6ZzCoLdX)~n}0o~T7A9IzH190Gve~R_{aYBV^Sa`Tv&$8b|Itb&yjgJa7 zsY~aeVgCP5Z|5D=)Y`3k6h)DZY-KAVRoSA5fPi!Oa#zCM-#5;<=iGb7xObfVz1Ev#WhL)?=JR`I zwo_4K^t69am@X~G=oGTDLqb1nvdYueRP2(GZs)5V$YY-jxPm`M&9cfj)_Ri&YU7`_ zEW&5v)0-h+Dfnpmq6b=>jh}$}hX!Jmyn;To@bG0!WYxe_nu-D!34Xy?jk^Oyror}p z%Szdwo-t>P>4c?lJ8@#}T$4m`o3?7%=6Kw8eqsVEneeF}Qspthy^+myna(^(V`3>O zV?t`gqO1|6)sAgJGZxD^BZxsc&$@DUlu7iHxuaA48x7(!cCyreWmXhC($m4r8r;^^ z&?wqkKR)WaGr6J}SY5JxY*F2Rp(G2hCceqf$~@ZHPLhS{Y+l+QkJ+b33rb9h{NihL z+c_7xY`0BHP^KIzLvD_e8?Fj!V=Km=zxh01g(Vx*HxjjfDn~!a1eqzXW=d)W# zj+nz^;zEMvf3 zz3OgVs{nv4@AYAht+5kY_=GHMQI#+JYnva1;8&L)zzf_u3-gLj1(0Sf$*^wffau)% zy^`tHr^jm+yOPRh-%%-3%LM+^#I}1%T9>% z7X*v&1(%6AJ~Xwx$Mjl9p-a(%Ny2!~rvLy5xGdOfq-}H6aAa*cHh7GX+dnjo##c(c zO^$v&g!)caD7({9E{d&K4m+^ z=~CNLJF(veLv%~k9<>m(gj4u85R&ha3!Z76huR0&eEEg-i3B8l_3k4QkZd2Rv-FNg zTQJ+MHU!@ZGQ3hcJWTkxJvpisv?1NM(z;5@Ia}FMLZ&L-dnX+8HTlubdG++BOSS#} zmS`&njo~Qa7|Ha^`Cogc`Qms=mD*ey_Wd}I-rQKVSE9wMIQ9_>Tbfn|13fJ2Kf7xt z_dgxAis$g^o&ODdt--SLrvDD;L1(s{f?A$h&`D$RD{k0N)&lQVKk2kql)SyQbS z9a{&=RU;En3LhRjUTBfoLR@al1bnA1Lr!?7<~oWOqa@LgP^{+lM6HF#vrJ0?BRvFe zwWL38bMqX25ZZm*4X#yp#iXKl_`|g_NlO4laowx@AGLGPcx@WLSYlhGTpt^t&xRB} ze~^uT$9obMs}bUuYJXmOugc{Q0q-4<%V9EOjEmlm-k}dDKCln3#J}b{1jvpySlB81 z%8oSq`)?}*p-45=Dc!rO_6XX#gv0$ z&;k>+w9mIOP;>Z-D{+!_hO81R*GNoPrJ4P#A1%Ty%_5>yR27~rri4h<{dIWT)-7#S zyA-72fvG-xCT2U(L>M<26-KKYQgs`K-gbOI?B?7>0)h|sa^1@PqV*_W&CF9hN-zV} zd9mpYLHAMq{phrzTnkOV>cJm&74l|jNzmeSrD3ZAikUIeqj#;^-jdBe8drPw_Qxx+#wKwyFx165` zn}Q?HX~&}yPp5@>C1)Ot@ExC4Iq{R<(m^QH5;0&%HmCdF^vC8+e>3mBy5= zSb19R&P0L+-YG;K>JPrM9oW2{kPkkMu&fJr&)?!XI}sa`oY9E`7ZNinrP~IoD|Op+ zq#DfZAAQD=#q&#Ep{nL#Qh};(UkW^d1;%SBcNbbQbOKg{Qzb8<#4)jNFyB2lL#$7kg`N;HW~(sFV7k&Limu zUkVI%8A}gU!auC(O?{Z$zhnK|B<~t`qCF1$NGMfB5X8fswGt1K@3K!;CP%dc2tt2CZM!RT1FF>6zWyoX=I4wb3ledv-muUOD-v@J^-jV;L%R|Ps~`-=J4~I{QSdJ)E}#d7yp7Y zW?ZsHCmA2v!KnQ;7$}=?F%11ywm&yfQ>Sh3I(xAw>T|X*(W7S&?%(;=T-c?Pf)nrE zb~Z9i{mEpLE1$JTc%O2Zl?NR39wgGE{G3}qcQx0N{KbwsH@`se1kzGgC9YOMVw@FE zu-}iKwPPg7w*`DaYm5Tq-H4pPQL)?@-7^w!Y9hm{$0Ux8XPLd>#ZJlh~y|k;E+)c|!my`m`<7YKPY%|@^VuBV_ba?`=W9jj* zyUf8nKlouve}&;$<%}p(0jgZ@tUlar2%0u!@+;z>uM7w(Ne=V<7WhY zvkFGme-gi6rWkg6B6NyR}(ybt_6eGVUc+YGeKOX*3`E+;g4Tqp_% ztq;bu!$SG0OaiM1+Vi%75wkb>qxlgy0psHbbsqRhk&-NI!dzf*mAvQwvA&5NC8wD z+`-UBGj6J9$T^GzAdPkeGMK5%^|s*&9wAarC@IpGwKJJp-&pv`TKURT-9dMMvjS8@ zZJveI69wwG$iNQoUYO$`(ja}1KmO9;nOchl@Rq;JGGy2WO`@*gj@dK!-jL;qp969o ze&svR3DvDmw~@g)O?s#oC_HT?y4QasqppU2e2XZNp!ylqhq}%rF?qLykoe#XxSeZT zuF9+flk~DnmNVwHO8Ecx=(@{OL>R%vk1LVJ|pd#-5;Z)tC$QhU^-bAD} z^qJ1u8=Hcr)!IGfqx^F#)Tw8|mCHyf{gdCyQRhl>Jr=Cxu{!;UErcsF#YXV<{!^nh zL*d>J$HE;vHoB`r3&d!}k!SiCAk+pde4>ebZhYNouHIsCD=!lLj|5IydI3_Kot^8w zsf_if1%*#wn@oPk67`uikvbL;Pxuz`t&!siGUyw!3!!>mom+6ef|}Khpk7W^#K?P1 zXQiY2i*+a3c1`y&?&(?(ZOZkTG~BQ1*&3u(*>y&2V%i^2w4IgDYL#M2gciGCElK2= z)RoH-A5Uqy1yJGImfD49G0FsDdC4%ns3`}|*gCLU4}>4V3H-(Ifjedbp^W9|8;TR<)`6y8sCkhVvGE-1&fK@d$IMk|d>E}%_aZs*hFB$X2=;j7Z`j1^o%4<9eLHa;qoA+V~aGF4Kn=^eJQ zYvpqJcg_U7Os1QXd0&v8k$eYznTyFNhqx z83=}}rEOsBD}cN+cB{HaB8yDpwas&VL`_LbQ8NA0oRC>dy32a$v4{e!RqVt&S%1@- z=Vgvy-?`z+({FB#G)L%|nh!g%sC_@2jn0_Vt2JTuye)0AH`!r~(|#CF5mBIg*vibE z>aY1xlR`37HOVvKtAt27+MQcZi{{PTa7EV3OwKzy1;6&=sSfsWmzfCvIXdcDlD&d*!DMKo z3lLlP=sv$vL)_FhqnmG!@8gPc=Qu*^T{QO;S`UTZdK1#VZ31H~!K)EJ6NHrmcR-1c4p!UbGn4p3JMD+XQ+M-{~DEgcni!Dq2w+97#E*^7XkokR{cV?2_qd2m`T#(pT&n4<=T>y%>m}}dtS|D(M1Sii zZErQ94Zl-ll@&!w>7Bmeyt;AX*&JuAUt$dM`vBv720XiQ2sP>45jm%AiguJs>gFC~ zoF*kP`HHQ*RGKfO>*PvlPkdVUxHlqi>T&jqiFtUvqZxwh;cceXyzf4BXZjKm? zP;l&0uzkl(z=x$jf&XYj##xHrDT1eafv|~_1USomyd^@*n zf5$m*^dGmrZ;g-cks$T!6-{qW*`C~zWob1v`` z|L5OhW1JQ^1S6;5&mRAO^vBNMDjlS07KV@5(%_2oiU+DoTA&Ck+ZqTb&ux|CI&#Ge zgJ|(vd61A`FYpBc4*>+016#3Ov|~TD6X+peQc0_yzdvD=mE&!i|;| zNPJA%jcc=29djn+^Gy-3ogNC{Lj(RJ&^T&q16FhC8b@_WYcx2q-`TA%yA-2|B>i8q zHD~cDV{ue41i@s3h`t$9{|MKP;Pv@a1)^p%j~yD9fbf-neXsWO)vk}DNj(LL+7lil z=~~%#a1hFAW4n3mrxttt|6bJ|!l~L>^Z75>(#LsLgBE!iC*rn8Esn-pfBZENzxZvx z_b5d5@KdaJbn9J}AWK7Re2Am^Wx#6!S$iD$B7$afI@{f ztWR(Pn6FO3zz z%Ooq0mhq#@ab@0pUQZN8KD!SLmz~^N*4?S9i3rpyZvd98EDsi`DcVx=(jWsVWCwOE z`0_h_-H;Ab7Fs}s`UGG_3oGjLAV{e4?9Myw23>m%6*)-%FNPy^{ax5wKdYURIq~qK z?Jc9WWS2=5H8G&9>(Q>UKa^EbX3>bBe#^S2RvrQS!)-5-N~&;m!a8z1j@}Y|Dfr4; zwaQ-&@})L4Hh21!+1?Zt6mv27OHR^;0$?r z!LP;GKqQUc-sf%aO{tB=fPMyAo6igtBtpf_0Y**FcPX(n?UWU2`3Fjxzb$d_nx;sX ze2g&k3>!L=Yi`*$*B5$B7a)>>D@u6D4!+z1a*=YGg6MCi0^{taK)v&&P{D}&0Jp_V zghV;4){xRBGGLD{&M(f*?A&LMCe0#@E>ktDiks}xj|MAQoYiILa@Bnn$t~T4F|vY zDCV`$s4H32G&E?_{RUa5jQb#D6!Sd7{M-w}X^gXIx^&j80nYCLSA(*fkgj>VQwuCf__- z*YnS0X_{rvnu3H8+5K5}m6U|1`laPCDK_=tm$hJdDLgPQ%Qw8&M-_DUy3QthZ*TQ% zem8q6oUW%VU)}`KY!j8Bex&v6T>XZF{8In?%IZw|l>(=9>MogsGCv#Pd0(b7}s}e7-kl!K7z6HWy zVsV_#5{4N;F_2FPz8!FcLJ;TsksJL*Ua7N+SPmHEkQYi?b1b&d|HB zSJ>tHO&ffX;o*Rpj!(dVP2^_)ma<^S*BJHXIdi3R-9U@!-($i!txL(8gzyJVrQ}bY zebduOT_`YzrBE~r^m$1BEyYG+({^^LhBh4N!})FeOhVc2n%X!jU2nd&Y$|ImScILi zz_t!zHf&eQS8Z{SlT|D*lGAOY3KT-GygjKkIFlJ!sn9c$eub7Q@A)+* zE;cJ{Gt%saWM%@4Kky&WEu51IPyF9{bDYDXsE>9h?g2ODe`k2kv&8MlqmR4A`@TNl QBomDc%&wJPb$a~206AQ7qyPW_ literal 0 HcmV?d00001 diff --git a/vignettes/github_create_pr.png b/vignettes/github_create_pr.png new file mode 100644 index 0000000000000000000000000000000000000000..ac90c99408b5a277d39b451d95e44fc38f8dd347 GIT binary patch literal 42483 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 literal 0 HcmV?d00001 diff --git a/vignettes/github_done.png b/vignettes/github_done.png new file mode 100644 index 0000000000000000000000000000000000000000..af04e38ae4883f7bd7368592d915939add097976 GIT binary patch literal 127143 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

qu6 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

CyRZAjh;KX6c&$5B# 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 literal 0 HcmV?d00001 diff --git a/vignettes/github_feature_branch.png b/vignettes/github_feature_branch.png new file mode 100644 index 0000000000000000000000000000000000000000..c61ff258b3cf37741a7f7b82e650dcb53b1503b0 GIT binary patch literal 56794 zcmce-2~bmAvo4IU10rI0MMY$E0u=!TWe$-S6%_#$5g8*g35a2yLJ|cPP#`J-GDbx} z1VP3yB~d}908!>Kks$;K5JE^o<{SLJd(W-9Rrj3w@2Q_EYA3LE@7}9d_j>wS-HF$1 zEM;~a*dZYyA#?fC`5O`vo2Mis{xaXbP5hVdWB^Wl*%Wfa@*jz^9;JElmn}Z#*5(ot z6-a5m`&RLHslZE)Arca@)*HW@e3CZ(mXMf$Tt07pGtzBQAlbCnK943~GZ4!#@4}+y zH`i|7j6Jq{&)%(@w_V--?7i9v^{WZ5w(K>Gol!dS=3CAwk9}2lz7E&wP4wxpqn1rW zP*|A8#C%>Ptt(U{WIEgX)9md_SY@ytGhV+DrJ2fv2ZaxO`eg4u>$V6r zv0f4qZ%=O*zl!+hjI6oR#`WR0LkXKVKKwklC1~R+aUel$*T(hS=D%AuZG5<=7Hhb1 zm5@0vE4guf`{@4=;#Z|ctcn0B1QBo7!&i6K()r4`Xw4>DJ(J7gJt+V8Gb(-!U!N)$`l9`GIvj+np(H5bY zQeq^IFH~Kgbv64V_d=hadDGBA!Av(B#C%GL?t}Iqs-5K_z(4;z_Ue|@RJ>C7W{y_qTWe z2}2HoTpHy4V7e{a5%!NP@>*46R-=rBANsn2qm@TV&ffgAp`wK?f9|;6e>TCto%Lk; zvkvCv3Fz|N^KL>WkhO^Ktq!bD!uh?=3G3N98}U6J1%2eAKe;WlF|xpv!}njEQlxc! zsp`4hJzWz4veBXnY_aJR>`?>zeH(Hg9{T7nJM=YYXRDvs0#H1<-@+F2+m)z=)>%#e zmmxn7XeEF{=eIzP-SVf6F6I^%tlbDBt@aBgRTgtMR=dQ*+M8%Kp?LD6H&=|ZW+jQf zP786iIJ&m2tBG$z#DR@55~DXk8St zaG)h3`%pGWW|lp#pBbFs6O;UBiJu!Qv64jyYa;G$8V*~?oJT2_6rGj_Pr8;hJXqaH zJCl4)R_DdCL+9c)=F^gfZFJ+qf1D|xT-$tH26tJKxj3C$=$2y0HKYX(#ClPi{yf?+ zC71uUG|RNhr0lHhA0NBfyI|f_L+e|H2ZF^TfdI3~+`^+*HbMLMMYTEJ(j9)?InkhX ztH{%^>f6VeX070KJ+mBm_SNHBG%H7gP6Z(x z{YdXaSWss+XD$XGR?*j5gdYwspeJ$$@4s=u`KINNCJf46eba?A6;~VF_C26hGGrVL z+yhI;kv8CCNGz`}kUs=U8&b_YZhc)~HP)%JnV|jJj&eVBs2fOn6oGn~xH&E=$xXvK z;$kyacwXN&Ji{H0n%E`Z-T+{ReF?AxACd+Scp(nq$pMki#ZC<1^%wELr z3L^Q_V5C!{RH7>UIIZrH(T?&5b;qAvE^;tcn%#z1^ZXGTv8Qr8FH~+SG%E3&(~foW zEY^p#xGaQP1Lk-;@>c ziz=u4Y&}bym%9x-{ZH|k^0D*iCkKs$cWM{aur)V{52pX)jkL}AOGs?OU*@A<&D)?w z#TltKip#EL(c<9N)K`7p_-g#CN58<@JMHI*-j*jAg`;0j{vgN?{^XP^wGsBkv5Ddyuoq5n zRxO;(E_5r)Ju}hhQeb3n5ws$jFUVrmXL z+y!0pl127qHyz0-lm&5ecocETs-7;-z zKJKip@CEb8#6L1cEia;4A&aoh|1G_d9bRO(mDjb<9qNpCAzgQ_uSFeY;%Tq8~bY z#MLRg75Dss0dKc2>~6t{nkT&4(y;C=Ur23mbw8=eKj}tzux@d z z3Ki9vQW{@V<0q>Fdh_|lziqV0Fg*JuDTfR&EG~kZ zUb$&(Th=w>W3y6INo4IDX6~AL6gmOx+xlK2^T2~63uWWX?j2KUg&nSi&-R&p z=-wZR8E1O$xzEg_4mfnax!0J6wv<;mv!oCO+(B$K6P;Jd)w}T^5nFmZ&Hs`tVCJLV zA2@Xn8YVqusdV$0lu)F+vW4k-lA+~G8<(&lqfH9R+7 z7V4Y{VlmROcDAg)sdBCo#_&Im_QHyp@`{Z^qRn)+1MpwFiG{mw{Rq<>@b$o;y^W49%UG;g_xVnaghK`Cm{IB_h*R2z# zyj>&os7L@+j2_hFU5yXw2kg_L_Ef#HBbc_CAfpfd3qLx&Up9C7JhFD~q!PfS#B0*f z2zT(E6fA@aRei#*1+qLl@ru%^C?LSrC2yh2Ay* zm>(M0*qPpjN`69)M@3(s)pj~KWSw^~wUDIlp^g1+642YwSlcq2S{>aiSd|0~Pnc+J z%$CH3UO)43r-tZM1Je@6h?8`i)KCf#5LM)m>eI!t`4@ouyCz!JLEa^_K4y)BE|$$T zNPsknUiMc*5Nl6zg1OrvQGY}|`*hIUW!^Ts9;a6pEJ^37q*$Z<1hC3BA`goHYh%bY zPZ{Z{TVg=lWt#(JPEmDN`OllYUbVW0*O)dikJhg}qk0lx+kbD2eaI@A{5Rn4N&5eQ zum4*>`v3nzEVI`IApYU`N}74E;5WRtNTfE8Xt^^F3cOT%rzyQ})i~FNmaX&C%?qnx z$l4_Fxt+&p_5u7{*gkdd81Q8Tm8hXyoo!BOmfSqrINS7RjFvr>0zd)J!TxU1T#r*- z)V7o{yWFE3k~w|~mU7Y&itNg1Jg<#i-KJo?cz?u4q(YqkjfQ4CAiH6srDls5Os(>E z)?6iyFA_4?nCYKU)pNjKHb~gpTQU34w(-hlmkPVxj+N*Ghwn=}OdO@ShSo<2?`3); zgexPPks^kOYcUTSKF5IPHhSi|z^1P%#C$)+`KG!wuZ5H~H?_bWPB|_4N^t5YKzJNY zJZSxVu*K|1wfhQ`L>c?$w^mu$-_ev3D#Vg&pU^~s5q*YD4>~^w&(?d)AX$qC6mbxA zUgaIKx?JnTKKYW6CVZ5oD%HZkr zejeh-)9%W}9-dt@EL5cd0a%Lo5TS4{FFHoJr(hzDITA8*)}Vu~fjSNv|7=yfc<@`$ znY(L8g9ZI#H^}8uW*N`=)9(X>V6OQ)(qHvn*SxV|%$yeL z=VPRwei9M3|D-}P9S)$`@Ch&Bs*Lw~9#mB}dsnU{h9nmNTQooqQCISj>>j}Hsyaa* zEI6cZsy}dvJP1ouTFwU#&&Py{c&+*2Og{hkKaEyM_Zp)O=Tw;=VUQ|+=@ebB{JrE$u38viG~x)b_783_}# z@@hGF%yi5y6aKvrzQ65L>>#@hF1dCk&4RLF%OYN!n%l`R5&!tPM!b?w$i9N7qDdtC zOvXk3bN#wk;-=u=I7g!VfB%-Voi;3ajVL6T(x%$1Y zf8~voGQPj4-9A+qz?6W^MIv zOdBt^kD-Z%myRe@%_&6Dn^CO?U?yhc>gb%`sE_(fhZFp-_2M1Ye*cspYo=ZR)H=^< zpY6*F9o-JeywWqe?lp(9(S8L2-uIIX0$pU&RjFY!% z1nkd^Tv+KHIBdDo_?wA!VUh=!W42vt>c?O@>WA0$#)7SFiAFuIHYKY)ICCUnh@p4d zj=Cj?R$(W}F+-fF#-F%{56>{_IT0gVGyQ-&9y0&8b29< z6V*4ZwV$ZxodsUZkrO5pI(grMss!&k5`8~ues9*l=oXl0l-KG85Ae$|GdvGEvuL4d zW9U_P9NHCBRMt5A65HG z*HQ=<6s=X^^PsX|zt5)z^5)>B84Wq|@7+;dxBSADmWnGu&ZdPEAt=Cn|R*@ zO&a%6Ps)$jtY4Qc4>u}9Y7aS}F7~2Ee|eZIreW!b^?cwJ1lma!aE3a31-`#J9}wSg zZ)0-uw#TjWkmHLA4vx;sylDPD?F7YN6k83z`K8MRgem_A4L_3lc;7T9I{U^6cdZoh zqd)yGs~t*^Kb0UkY5^^&Ny&8@^*k}4UGi3I%r!dZj9G$@vX%Qe1jT|>x57Bac>XrL zf6%W)jrf32vNvu$n>rIoNT|~eUdU-7Q%y*z-60n{kvGV-9aNO1ml%BO+qx|SrZ$&n zkac2ic)^qN*$WGgUWVB=pEYNHdO*2O)P}Q>H~1Qt8fJ zYATmvB)DensXSnmsaLKvLp7DmzR(T>+3(MwPv(BIt=v_>_NZaI6-3u0UqSuQPtX(; z=ahzchk%}2G+4i1x>M`H;*CRHKJ>_KYMjtx`7AW0@=LX>Gls#%gqgcbwiA+A#y^L3 ztO>l#+oO`p`qoSM8P@$-3i3*~$w#{a4~=U}ruNoa0lM~9vJiZ@!(fp265<-ft~KJx z`+-tuOSkZfirg>G^esZ2C&#aRb2w@Y7T{JyWG5F9411Rf0G(G;s?1IOq0~U-a^4RE z?CvUIG2t}I4+T3Yf}WU$<&J_BD9GFO=YdIg#!a>4@)WV?sNkBs6>VKVk3Da2!W*?_ zHP$MyNnjL(8u-+ivP(M+2>$_13`Vu5e01To$nW2;^zp!8&3G$082?_Ya=_(~$Sx}M z;+SbKoW9WLH5j{>7&IzZCYgMe-}JnRd?s{05*CVs#H6n@kB^uY1E_bPX~f7$$qA&XBnh{$D!Pr@(yhi{janFl zVT45bmBZfaagLTAG9;uHch=-FjTxy;YtVYSt*00`383~^9(8a znexiK64epyF(#Z25#7#nje3M@DoIX(0pZe$EppSTGMW8BdtW2^jq<(&ZbyJ6+s0c1 zxiM`YX!|GjDTC8mx89&keu;_6%ya)`%p*#276!sk!1gtok7tE4a{4#FS@fweTkBTN zvn&hoe%l*#{Q!#JwFWC&fImyaN0?PNcecUktfJ+(_gjN#!htc_-8@64(UkJ+*leOM zHu?iA*9Kis4S}`UG!Y-QM4dp29rjbY8ZmvTtaQ4ob8ky_Sk4pLz;K0KG}1>|u?IS= zq}bt6z&Adr3bJXUr0L&5%}+JzUPf%a(3T5Y?(8=V;$|lQE%2<1{0V!pJ*v&W@{*=b?jgX{O8vQLcDQz0I}}cbU*J z{@&S+0c=pT5x3HWrYC7rVDJf}v;G2}Msv5if;G~_{<>k(m&X20&oTXLIT5P@VL91w z2W-~c^f5*RRSe+ev{{OI>0hguwwnu)GDwiK4!ce>BQeF? z#|cqCV{8wq)x^dBg=K!$x3;O#f1D)UEGfS{DtwqTsYvt7_W&c>9Lx7LxR2gv1pdSB zphV+;wD?wa8RCV@jMF`*NsB0CVhU!sLRAh#oTAhwu^)S}psWfM^-bxTu$V=>q7sqG zOf2^pir0EI z!?d-zAwB*2S3xoF?KN}L8s+?eH_-qd$nqwcVVNS{iWs%MZ8qGx`zcN!gz*(w9p+EB z@Z^XlzvZBPCPkw|zp&4dR!w00RUj41!ct&u7sr00PWCN@T`O;Hnr513a|7>^3sJk2G?kge$)PvdA_AB4e&@fZ(0Gcib` z*OqDskBIcqxP0Jb8u0^5 z@sQvkl(c@bc=I9ScD}~MJ!mxAt|zXo3l#L?^;1jc$J_BSe)T&)aiu`f4+k^{RPPL= zXIyd&*xTYkE9f`tiHf-iU6Rwn-L*J<+O*X2R^}S-dy|baJ29*?dSxJ4Jw&NwSu);1e=BC)G{8rztgS@Kyaa>1t4zYIT?_fsr{!vYlrmS26K^Tz*F+q#>rw zrf&QSrGCLrz%M?Ufc9$Cq#9N^=_T-peFd;Rit-{Q-B)d~umElU2#`hRhKmNS1!-h2 zg|)VaDsM1*){TP^{y+1e5qf>|@~a&|HI=l)b*MJA=>Veq7BMA}U6U3~^FE1Zt00x7 zZ$(~>p_OTlKk^N~pa<9vy_5N5{nkmpuj;#6T}kjm5#5f*&_}ErkNiEOI9)wS$&Ry7 ze2t|?opcI|SO&;D@LN}0!}@5(*sULsfY~) zkg3=af{eV{Go3%`uL{YWJK}|W_xOv7LfDQYB>CB}nxCoc;U2M(bcfL2&lnAGzbH+A z((r85W~4FgX>t&}2bi|EDkFzEH(|R?CFFfnbPb&GIax{YbUawKrNI4id~V2Oq~6lo zX`94u^oc6m2_;^lz_Ivc$+$;_Q@+N~>G_?~8Q14wulD<-P*y8$6`NHADYON0s|s&m zMxP2!ss#4G=&zG97(XfI1)>HXV($F7C{7w%P0DtU71D!ip*7S0MB!UlMKr^T-P60< z9(kqzZ6bVD0}2D}`($Z))I-(tK5fmA1g{(e9nUK4Z944O<}es_qFn5Meo|8boRL&< z?xLSSC3tgMOT1Nmt~Y*F@+oGN>GdqKTcEm*X2#y#WYNNo?5V*7bg2x3l&OI(Dc50cn$#_Bwa> zv1SBvy=89q+8sDuvTUTafC%yby#@^ODD_`g`Yj%%qJ_083ZaV zmReydCNwpnBrSSD%1>(SAwET?fwIW5<$z7`q%f0A(uYB#yeVr;?B~maGWLI&} zBL%g(?w6eB(&qWk@V%8GgR|N}rrGo~GwJ)TdMT4vP-oK?1}+7#9hGYBS96|!QkL&@ zR{xi)Ue8EkII-y0lEeY_onTv#hy#S5JW@y)wmogsc@v23GX3JIc=KSA*E zzwtkDGeJer>wtWDL{OR;8j@Q7`6igEr6~`NitBQ%)V3cqUjCrhg#UPCTz+ikI-%mG zugd~#8Jm(qnhAPA8NT;gb!qUztQMy4KH83;MAq_{uOA6Ft_QaaS@L0TD46S?ud+B} zf~0ms#1VE$C%^07D_W+q@(6w2)?)TDC0so%FH6|>+w-pK&z~36O;rRMqnBY#8cT!k@r;4|>*2KB zX6~Ye%X(e@JUtmn*3}`rn|1;4F_+t!*w;<<242>6$Uppovi@;x@(v~SwWE3#V)1dI zh7LPMc5nii`J}CA5D(nd992*53YyQ=zb;Q19>i&4C^yHfcMp(67S^^+03OTIc;ka_VW1lDI7kN~ai?RZ$g$EI<4MivYUgeU|gA zkIUz_3)P=f8CFZSB+hBr)q*1F9}6xU$m%^z?D&*Rivo`iMQrOLUb&M3yLf)yL*us1 z55`USXF8{E5Ct4PET*dZdqWZgr9tyi-yPh>0ou62H*tcp4LSPrU zCHm`Jwjp&gKs3*WtNEY|dd{fX=RqG;9RVC-T&xGp|8_jn`TuQ)&W&{ zM|@d9*ozJW8(0AK%xh7qvEp!30Icd&PBoLL8K7rgCE{qrXBsY*%CDDqvNu- z>7~ybo=Ocnc!Q1w-ZzH#d>^=rlHG}$XbfebzEZDdOgqE#moShB#)}<5vj-TD%y|wg z&5j%JKK)na=$&7!MddC&Gcr@k=f(8=1tXUKJ9ih_!66SY;WJiuZhZaZ1JYXM00(c7 zrJ>mvit+_G2G=12+IcF(A(rlesjUtK0*bXVlJC%;0}~pCL{&pfoosaMaPWnIS!B(!8Vd#c@5K6aYLf)!_Mq#Q(UmU>V!^MCKwY!V@s4+2&jncZG!lf#Nt%Bj)J)vVGqHOD5OKvLjQQ)~BpirGRUOf)&U?`s0`|E%tSOyg4Ve!PjlxE6 ztc823Yv1lmvVpydC$B5UMrwRuKcIR|V}F*eRWkmjqPcfWr`Tmo84^s_yvi)5Cr$qCo zE;n>7&%BW+f0F7uyuu)lpU${U+oi;nn#z3KHZn&+A7$CydF8vN3o z+0Rwv&r4%uThW>=IYUGfX^PhRKxqgb-{d7iICLyrL%6kBG~`3-B*BGp94c6FMTkdm zbSi;w+$i~s5DG-)_r8-ED1CobmdO|NyzijOEUT7KEmq_+t}MQMr+BXYhDObs2oF6x zIk{~7_q6O8F|xAWkArnM%|lx%h^tEq=1r-;@+{buYuL>xudH+$Zw$A|uIbti8MG4lXBHNV?%z5d5XvMY+tBh(2v>lsDk)N| zZhv7-+L`La zv|6r%J&faxh_rA~vof3k5ktOWRZMrw&=5Q{LX#B3kkdmLBv4mjOuxt1*)hi(v4SV` z^(CP$vp<5RS=oG&W;YV)s{_f5{?x|x1ynvAN?Co9SQcLf08Wc_(i+M#j~O1J;5(C@ zJ->BY7y69v!tqBt)RPFVmAAx4;79bWp%=xLePzyn)a^Wj6Apxs*$f9i@Wjs!?! zx1IxMZxs@p?tQP_MwhcOGO_PrCHe0!=j74-^Ioyv>sL}STB&^U<`A@Rrh!)(R;Bhz z9+4?M!ufu}=-~CTSAi-i5Nx`9ZCA$2&CT>JbemTB7G_cVt8d1d38D#kQeo!_u&k&A z$1Sl@ZsFO$t`G&rw~0fj&V}%whsywlCD97(dF$CDw<{;%_0#FpnKvqVl?u^Fu-w(g zi>)jMQZ)Hsv)AJLJH+Q@sl;E@5Q=0u1-uVamRpulhJtL=jIS1p51df?Dtf{LnT=~b zw;O{m_T4p_PYS{GeZ-eZL0dI!vdPM*<2$BIz_9cCw7_6p|EWL(=iJEzWWBQ+M_r|* zoU~rn#QdRMPs>^lEelj>oH4Iz>Rug&k}|`&Jw6mG+#OT#3O<-%pq*ggWHo3Dea`fq zwpZ=ix0OCtrf{@qm+Dc98~UGp0o!fzN+9VTtd-a7kH7>#n&z!7vf5tGkPi0(v z<2jmgSf{Sv#B6?8&Q>qu1NDsG@JK#}tZOelwYjKc)gdBn^cN(+^#tDIV04=4=jqzd zJA`>h*h@R{X^SyeS~VyND^EC50EF^R>CGDxR=lSL!6XSm941&$!w;usPuivn#&CGZ zX3<)N$PUgxBQ$WFY+M?SgA;u>{kY_S;E-k@ag`#Wt?1C|80i_GhLGcAAkq+=B1Afg z&m`?`89Qe+SRR4P@1h0rT7N{wt^*`pG$OV%XSD)etFjtxvKC3UK838}hIl9S0xFRLo<3 zS6Em>)}P5Z&s3jy$IX#$%MKnTX8)=_Z)12CCW^Edp9(&yoEunqMQ6JWpM0K9(gI-R zuq;XXq^`R#I_l@zeT0V2c%$3CZqzI$!c@6MQWD?mPU}1r-D08&mK}<(nJ1(OXlf5d ztjU1YvCGfNX!iXyl3AlGoVTX9I@Xw%jsVv>3d2~rt5j&-E5z*>B)_~~k&K4GPl`@M zG5qi`$NH@6=p1h~)XV=T6W=IE>kWh@I1hzn;HPPpjA#nn$mE0rm5V--z&7!_gw-hE z#ja=m`l1(y3lUeUdHs5(7K2niT9lG?#DH2r$&Nh*du@}tlh`qY@tj+0?9$CH1Z(&J zRFC?A>u;AC9(8it<_dDPC2e$h+;k|9ukn5BRx!Cru9C1n>K!`Ctle6bSi9E4^IVUT zkHXJP!EQT;I@V(l{E>oLY=9m7PO5306@EQ7@^&H1s?YW{LmsO%IL&0L*NMZsf;b$F z>A(-ImW!<5y!DdR#v!v;qzOSae>q==909-_!O656fHFv1-|Qw8fRzcu@Z`V)a_i$Pf(eP$O-Ij4p*1RrrdESo!pO} zvF;0pyGQXaFVbZvUa94+bl`RUJq`2Jh#l*(>tHHyatxF%TA$N=i4XxU3#9*Hin!CD zRIp$*qmaV?gJo1fB3$=MKkg0}0caI0Y0^5t{2|fkcQs*d6Mfw&GfLJSoX_ z{aKSgVCKd>dyMCloy|kx`rb^$#BGIWZlDpbp=Ncx?bpgBZ&?R0;sl^OPxh+GE%nj~ z6~Vqbu1)wo9S)Cx@4`RD|6~+(RyyQ(VQVfwO`pxwNl>JLj>-|P5F1^nTm$`tw)?kr z9|e=# zz}f=pa_SHN<@CIGmA|tKz0KhKn zHQ~fZn7srGI3kbE1q`JdFqJ>E7y<)v2CQbA_B`ztpJJ#nkV#Kf>s|8BHva`S)sf4` zw_7z>r$KX1# z1p4_(&5c?x&nliT+NF46f)(CsV30sN{i#*WZQdOMcggw}9N0Nkgsl7O5{>N|*TIfd zpAMj*%`UitNrB?y+|aWnds-lHxA1M#;btQ7fOXD5cV$gI$-)&D?uInx|q*OKSjqSZffus3=)YO5gT;H2RCbb!bWAuKl ziXhPV(*8`5)0ri-`K1V~MEl+ruv1+HALP-A5M>ze?Wi0aW zMerd?GG?3)6V_>B`i5GdzR|yDHDl?l<8!1AO(aoyC+VbZM&2{AN!lR4icnO!L0URl z(V^o)xZ|!^!@Hlh(c3|b+(dq_)WEG136gN-^=xHSQD^P3gotc4yjw{0`_JWZr?@pR z*InSsl0ZqxUH?Q7g*YTRS(>A3ha4PY6`mZRfTlyQ1qseMQjPN_Jm$2Q1JOW%5MMl^JE-O{|NKd<)voe3JhV0AeD z*B3~5M;|`p;-slbLWJu4RR+;J*6@?RsyTmuX8pj^pES?0bh7Rwe=^vU7TBb-9$u>E z#^aWxZ=s7ho>Xx%;~+4je=?7O%o`usKInh;80Z*&-?(~F-m4&AZe~WuP1w)ubZ0Yg z56};HPsKjAZbAQMPcHUidcc=Hon3{<)~LDYdG35Pw^dv?{k9=}n+J?rUpuiTq#e}A zeR%*eIwJq3=!1V|iMow#GVRj#soW$T@xfKn(dMx1ZS)5{0%G~+G;9TZ8Q4o!GY(yn zERbyoxXhm?r}Ivs|Bb&lAqA0=W-Z2I!qtq`3U)(TV=R_gt9)_P0qMtO-R`%bhQeIl($Zujq)c`BA7DDGTZ0N;(~AsX^aHoxu7G zZEl(#({xpJ)roEvFH)z%qherk+QLgrp^=B>q$Zz1h079B&>98Y0xsI>HZ_rHLP;kxSH{mbd0?UdirzGchr6pSY1-C;Pri8S8myF z^Cm|sX;rOkBQaD8Z>iw0>`dNL-%<0aWJNKD@Q}X{OwivcPQLTmolnhU&K*}P*~tI4 zK2LA&$yLp^>J(8lz?smt8a6Ki$8+6-n-+zxi-aVRvyiSTx-MLZJJn7buITHsq)>Xm z8AbSRrt?4}^OY1J!@{eJhiq?6vZ`uyi^erwkAC6!$VQ(J4D7T{F3vq&7U3o?TI zBLir_>5be^<)?VjUsH{HnsXA!t6qt~xQls(cblV?PGEMMj~|E`zq~r=JVwqYm>C>2 zA%Mhe7dVP(uW)AlJS`?Hs=);e<3H_q%p4=jKowX+qz*;r4E#sp$Tx>DAakFiptp#u z@f;y2xDPeW(Kh+GPuwOkI)rmGcM+$0Zatq5>XR}we!OE2MEeWorNorXN0e~0B>oS# zV%7gtjVQG=!2CK)p1%y^?s|P%-t`0o$4KF4h*rV6o9lNC(VcAYst2x8vQfSN<_PA2 z1Kfvtu+h4_lWP%m%p0`#TSGo02d$_@%zmyPrd~sw8@EnSgCrSg|GxH_!Nq&6PA~U)uq^ipQ;q$e~~#0kEZ(0l>oc`&41jD z&O&at`Fi0U^H;R5pgM0$;6_v9J7u-aakUPpO>584d&FMBrK`A--@3)y%S?Z=#XVYG zm$U7Z2gkVQC6tM%{>samv|bMNKNuPiYXn!M1f1E^Cp9JgrafMbnCNRbnCFMNZ`$Nz zYVuk&c=&JK)$w1!V~gqx9F~R*fAwgd+c zpVyBy?81!AZhCN_oqC?q2K?8^4;jT&;51jl0G8DttX5b(oRHsQw&o}1$Q)YYqr}c7 zaqi{6n^pcR?Zy9Pn(qJBqx|12gl@Bt;9>KpgSUFqf8HVe-~9CdhhFXfZcW;e?70&~ z$fj$B-A-y&LlYX}-id_ptL%5nRue@H5EyTRG+@&6C)h7HLz!tCZus_~2L5y#>e*jE zVefe7*~!a?N!XGL7`C2xO`F90Obq6|stInc9?^~IzYx4eZ=Mm)^m&s)-Zgf?vfTu_ z0SV)&h=poZiBF`we!rFbOXCV^Q``p!)Zq_Mn(&y!gnWbTwrxuu6P69-F}zdA!C``! zD!ICO^jUH?S)5%$H!F{VHsnZc>^RJV$;JOgylU-fd$&17pZCegy{U$^p-`_?dJX!u zERjBMHVEtXTG+VbUB+>Lz`U4b4Y!D^UaoS|wu5vFuFBFrtO?yQp(FC+Kk0MWLD;g% z2Ge~_5#tc~^}6_}`<_u(#FcVb#*!UsaC}3jE2^^v?7w;cC>pCw3^fp7Z5ypce))h! z<2u?);=?CX3lr>PRkRphf6>`L)6=Wr&$v_DW5KRj4k1;D2R|I0v#WxtMAsSIc~=+B zG#XztA(=6K|E-QsS zT8jP!Sz64W{%5ASECeU+#jz6)DLNase%<0}=XY^&$f$KTIre$^O1jbgufKHtmv@gu zk`4!t45WG@F>H3a1#f`)FfX{d-K_4~HoHP9W@q3#{*IrWy2I5{A!JYtNn0is$-%7Bj4( z{F&);;rVbF@A)gbgR81$)eu&)pwk5u2RC$SeX1s-i!}#*&X$qm^$BT8R%dy9A6&hY_uXk`e zVS$+*m7nOrdb}%8x5f-SF7b!tXm3tYx-W!#Qmratn|+r_Yl7bdF_{Zyj37pjoeKH~;( zlmOZ}O=!B?dD0bgeEYO3hFr;fd0iTn5zv6jpLQQ=8}pi$X`UiK0A#$pu{1mvk$Wb< z>97YcO3dB=R!g7^(OyfFyX>}!clNEZhNG{a>Vj|k7t@D`p0lv|$BN_`J;G@OAq%H_ zYj%TMnH)U~AMfz#6jw)Pa5VK>I`{mjZo{3HSx2J4lggyL>RYln?o(fHMeEFwBSkVG z0w2Sv@bU2KF=qdx$7fy8oN2Km=$i98DB$O5bcHZNhIfN94U*A@#vUSIRkwc9aeJ9* z>6baFD=MIUci(5;)NRV`(ys!rh8wdZntD$O*PcV(1RrQcRP)S;!EX9@5d24`C2h^l zlk^Jen5`G{!hA5R?zrRG(`L9M;@GOD5nBhwF)}*iXfet#Guo?Uy+OP*X^v##x%B2s z*Sgl^I=lAj6>HM=EkV`AgFB`&T*Bfq*?Wg<)Beua(MOPUA&#Y8M)Hr%`3=X>9hsDr z)8;Wf?*}S$FPs))k==9JJtt)o27f{97K+_KJ09|W$hfr8tVcDcC%UQ^s) zZO0iQA?073TYdUJ6?qDuz;fK1J%#?0rnOo|>XASS^RJAv09&mzYP4nK$;WL8TG^Y$eS$CS zsN3joWg1qFM@=@+uEnm8lAUZi~~MZE8C3`&^mH$sSiA= zz*An+ZRfwDL7OC=4Eb#e_qSJ;5iQq^_m)RI-^v#Znw-bZq)0;5ZUHyg*K2exr!`N~qV9bd z>zX7tGs;Ll>2#u8Q@R`lsC+OOp8Ar$ljpzQqAq8-=sURQvy3P1Eh|)7QC@mdR&^$` zU>_{ufif@|Vprncy-FMAb}7c_x&>y1=$vLM<27;~o;*fZ{~PjPRE(TZI&9Nf(Yvx- zJ+?t6?wMGitlvk-v{n0gn{G#iq7Gza+R7`IyYeR+=e|5jI(=0MrWeTEg*jD2Dn8;O z2-`94=vqX2#J#B6-6?m97jvRMCP?<<@Smr%^^UA4RN)&#q=C zNzjJAi)v^w;aF2^4e>~IwS63i!MQt^kTtt7dz++AdA6JU={pX7SD(T$;$#ZuHTUA_ zbd4WEY*Uz6Y06R-CgyWw4E)_d{#A+`kZa9TIBZfo2qEe5l)`H+d+BVEK1Mjdi!5Hc z0fzFaC9W?bTxcKOQ7o zCAR&((4K&6e~lmW94vc0x#A?*WTv!f$edga%~x#xW)+T_dHb4Y96ozdHJzjjQU1O) z!kWr@wz1w{PLg-K^czyCyLTTT{)7+U=wne(TYRj|owxaehJW#HKdAC=t zq$%62mvE!aRH7(4!eqJ3<;;K(e)|2Do zoqJv^q%(Z0+^s~kOMQGP?hjy|KPem@Y9ogc#wyXTblAm}wrmnp=>#cQ?Q(X_vgJu@ zga#yr1C@QutX7{s${SQ3zx_9^27I5jTAy$IG0JUPO-IK6id7miXyaL8iH*_MR-Db^ z%37(f)AeFL8j=s4dlu?{16uRN@d>!tnvqm(GdZhU(>-Gw><2FCk9ZwszWvcTT7WtQ zQa9{#<_lN(=11Z$+CXdi!qTFRrmq*2Wv%$ko=fh$DH*lJ3SU$9?A@i^SC z0p0K=D$afX!t|L?k6@|?$R0m0+EEl2ss9UudMQt_SXwNZaHDReB6q3v-5=o&8fRKQ z7}bvzQ+zy-8h6j(-u4HkDF~9i68)&sS>;Lk zC2cno8NoD)41};hb zqJWoY;SBEAjl@hOXAK`2T(+oySp?>`Wc`rl9apY12+ip8h1SGB6PD=@ysbsr^^3;X z3?@CW)l}P~NGXIes2GkGK{^L?=SzA*&Zq5`S^2}Z8fU_mqb)4XXQF^A+Xx(w=)A{j zsIz!pkC{xNE~u=D%A z;a8*6?pXW{@!$(`ajqZG$&4b%!gf7ZU<{ZCbCCUbRRlIk|rQ|9~fjiBZ(7sMxl1<2F zbG>`V4Y4K{nP?}69q#{6emPxk^H0^{E&FY;fY)jp%@6>0G05j&RO+_LtcBOzbW%Eq8a zaIZai3LT(ps271NzJ_gLdw5oFRJh| zwR%6?iobcIfQ@H@)JL^hZ|a5+#J5FzhE4SbfkZL7yX_0XrXUd(-c+wcC&X!pEG3J& zRGKu{4>PgRqc))ie`LLgcib-ZPKm?&tT?PSV~&CBHBHWEL{iSK zaodHA_<`wu>f@^EsiF_MtA^CDqdPT&000blGS~x8=74dG1SiW_&AV_}KXeCexAfiy zH)!ro H1(DyhsRmh&Hq@__Mf=;d5LrLDb6RC8x07;P?{ZCzMf(hpb)jk+k-S_% z6*7=(^z#xNP&I?-9oMSL=H%+Le095H zaom&#knM1w7F%-Qw3oGgt&>gEv3u{8agD*u4u|i{4t7mp=WMrDyp>WEA2uHOUaf{% z@ws3^<;hX5|4_=8H%Uk9M2+VChp^Mi`nb16`rk==9zeHNO4$y zxo1%Ui4ax%WsjU7L_bK(FG^1mNWVT&*>LUG)-Oxt{#aFATTND_|Aq~c5)O5T`%D=3 z7JuTb817nny|LcAh$yH0ir@>azc;lyaBY}aLueyR5)& zaZtvtQ=FK{tkRw<^84z&aNngaIQ#KiFgc?vbhecG7?3HlzS+p%9%)INIx4TZn^^L! z>WpIeSmi~gvn!acZZ=H>hjp8e`b$I9s*K~^kdLWdix2ZSh>1hjv3zD%q7xUZg8`$g zpoA6Gm<@R)Q|tO_jz?5^>(OJ2{j@L7%J9zS1^!a@KlkrzV2}iP|1hcwM19)g6p+eExnX-W5cUhH~|EjJ!>L`71Wk!rbyGnpgkc^d2&aa(e#?jEa{XB zY^kNY?dcE}VXustJPLg?A_u=?c)YdoS)zM?^-5am5~0mg|9a6N)7cly$6fQ(mA9|* ziKy^?JE_#Z?&Xx6Pggv2C&YjrMq`P<9?-u!@{ALo&B%}MyngU2Ss^g=K5%4qFm02j zz*j#lJk`*fPDW#Iu6m1kb?IUCd9qHXQPNi9rHUg<^X*BUodHnZ@ekX4hc7(I}eFXwx!5ua^5`r+?o2! z+>I)>w33cL1p3h#`0JVS*Zs}|xJ||TTc_>l=6W8?X~_;ax;{hLPS4#*)65QY@-K`T zNhq|>y)9CHvgb=XlbsI~ImR>9BG@RsuPg-WDE|lif4o0hafjB0$=+_q!!RaZng9zT zwZwxpp}zihkjtGHG5lJCjXm-IdT69~re6KpyE4{KEE5tH5<*w>ceQHMNcn9X=_B~dj8{DwVWIIue zI))VR(9%n^?ct z<(3iV9#}7`rMnqa8SQ4G$r3UjSH+>po1o`+y53}~XYaD}z76IRyrj;jP7$o?@T-D& zr_T~QF+C|@*RsX~4ANdNxUIY7OQZ&2a=d43ra4kcsacrRPa5wM&s@0Hk%^0j*2F z*vEmMdtAOIS=<2-v1c_pF^@@8v&Qp;^kd_~k3PJgzW&Rfhwyb;;jGiT73k89(aL-o zM@@3o%t{ZEx@`;qtgnE)-`E8KJN?YI{@mC3h0v$tP8EkiJ2S2KH_6{a03?1$GsrJ| z{QA$7#-w6#BSYblzfmByMBbhE8YqA60j$- zn_bcYu@wHa8t3WKESQc4Wu!7whlQG%ANDD8%c*GHE9p5SUYL2WZ`;N|+T>M`7r#T*(<{r(GBeH)Y0ViGfB|T;4Rm*1k`zr$J=UOl`3rY1A zE0{0)f&V*r&{>IlPE((#EhPoeku)=}BlO7nG%X~l;U951071Tu(WS3usj z?aEyUUY?8XWob;0Jt|{EmL(q~%L~$CfE$KSpVLWzcZ$ zs-lY3I_SAx1487!d;5E$m$R)HpT#iKcfl-8jcjy$V#zL?^#vfYUl)MZjJOLt(x138 zINQQsM~JNXwZB^}`e*pMrU^T@3Lxq^eGAaYovSn=e@Dsmd3pMZA=>Afnd+88py$58 zCFy#LCpT9=&e>T35<&-VKlGbb!5g=D=g_g?k;Mn*Q+G$^;$~7 zjBU5Jh^k$`RK&K16_6r3f1+XdXwIQi3c2Gv(k^}%1>mmQg*Q1h{X33%YLV+}c(g%U z6LZSOPE@3X*Z&c_$C;Z2RryxsF;PHe(+_-TNee5+K!EF?eC4ClXb-~JX#>F;cl<5Y55~w z2uytiP)-j_4xpdf@uBfikKaATPjz92hG0HH$EiEXisK)`%(O(0e`KBC5(oq~PR_xb zfZ3f>OFPv#LOwh?qy79~jevR&E@{V0w|R1`gRcZ~8cl(VG}AL-vs2%lK@ZJPQGH%M zJCfuNwO--Cx*p`#egHzN1-WleDkQy&%!?0k-+f@ZTPXyu=L0kD(!fRcB9#yRl z?Psus>(@%c*yw(z2vE*o&#`JYLMu5x`HRSwg%~}b1rR4E-|XomhgS%z{IZ|(+7O#4 zIUjXQND32u_9}*hS5XtwNB=3_wf}SCrjD>ATR~KP485QhYoevX~td6w@c@IP&fr=r8% zUjt~P)&#J&IqPDsHxWzJWp&d+of;ZY-n7yxfm|Gko&q3snFFS_|IQlOn$f~TU5P6o zIKB2?o`X$(qUHEC83C@!76nk7b@**gW%FYc4F7@nHjs{%~dmN@o|o-(%SCVuRQ2VRN7 z?!m-EusFzFJOFu;6V%}vn_DvyYOa8YvvI|^9{-<4g|%c;;=8tJbtzHIUg7-;%Os?_ z6ZH?IT@%i8m~t_%^zISHPyu!0`NGC{4v_LvYC&2-aAzz6VIqM`r`(J|Hrg;v9hvHB zi9uF|cFja@NB5l;1*NuFOqKA0Fg!9XKd@$om}bG){eu2csU{41UUwdQ=HAIV0#uC* zpfQlUN>DYw5dr89W5yzmPjlO_(F|3F@Yi*&p}(a-6UEZfHSTU^DN%8NTJ&Z0Z6O&W zSdxrt?aqWD-@cYkhPZ!kHiylMG}C&Nt=n>EQvOc!0mJ>kvC5$CKAvF8Lj9vL!Lmh! zaeXj(L`vkya;pWyj}w28@Vm|qt$ElYUK4=J%0buf|Kg|y^nm)o2*3e)H1QPyKpQ)G zt!cHbHGS#*$ZMR>hiI5)1O7Hy!NW!rWbrZT7M{2JVXpXKm-{DigPcl_t%a_v<@vcY zqi+Bt{ps;>uJ~ekIPYvJ9K~c)o=D-+_3<1OE5dcs)VwXKc2wz@zj&9>A1_C0Pers4=W3@K$kRomBL^b7k#76$xciBN){Vj)G+E<-8TIK>FV#`i z_#$a(qY>FfL;1xW8zyw2H=INAGK;EF-Zb5n zEp&S9`r|YdXz}g3rxPdMlCrqg#|jNwzUV}cspnAG_c!GoCt5JXLR1OkQz9O{K^7hd zhO973%;J(UVeHDj&D2YlxqqVE>LX<;`A*1LVfxCD?RF6V_?TXvi6mNZOFawdY< z6JlK$&VExEfTrA%=e{fjmy18C{}A?f>U1Pa^V*o9_NVyIgcTL?+f2x{`masqwU;^| zd@=%okUJJrad%rG~eOo0V}m?fgEr&1r{&r>N-l8$2de7QPuM~R#SKR#Y1 zLMCkKU2SzzUi==gkmzC?pyD=SxHZ)nUQLW+@Jl4hsf==@`%%q&i?*%TvP&%P1+Sim z)mqQ{ZecrZ)9o<;(PtM>_p}L{TRcQ2mYUmAi9ab{ihVj3i z=Y5XF^)Xh+5>Ce`kwZXczZEwM%x#zctA;Sq!=4bjp4z_Mr-xEyjVWgsy(Z#cC?tE*B zlUtHy`RnypPPx4<&f2xAR11TQ_o(?oFWm_r^@Y)C(wk?Z6>z=T^}abN^Caq5dm9J1 zy=;G)C(mm6o@Ba5RL$mhyR3gEC5MF_mep|SyUAaND-P6(5)iVe?D_*R(XPRMcZ&Ul zMTdUR2B7{Q`p6WJc?pvYt{4_{4f6AL^Xn0$0tnb#*3Ye92HCED?K!t)3 zTz2Um6VLu=5!2^h@Zv%JmoN|M{ISAEV7#~ix+UgNA0oQKErG=Dp&A&MB4I3Rn4obA6o-s%-A^uVUUJ{&odow*%OD?3h#iZ9)1@!E+TjkVBM$F;9XPaGl2c?X-4hhddS%`~Yile(a$I?w2xz z8QX9@jPPV$y5Aw@kO92<1)1Gx(MJ>s^{XwP;u;}Z$_QQ>A=NBqjShJgzvwxWRK_tX zY?vfr2kwW6tbRHqY};fi@VC@ak5r4935(N9o{)Xt+LN7YO5Fhr^SO6OQhT=yGgh7) zwOMjRmh$kma0A!vOI;LLV!%F$(-EU z+?O*g0UW~fsS*(W1{P8|fbtEGxvX&jPIaj%-967Qx426#&v_C&T#nbc4!uwB@1uGUU?%9eHL6>x zk=(bTZ=bp$#$}zWB~+qc++1ESy2}SSRKKKA(8hz_3iLeKusoexS_-K+_QvSiEq>+^ zFX@<5pUNz%mL6~!CT!AZHBd9rfoxha?LGX?EL+z*J|_~u42ap?aiS-Q*kT?Itv(ar z=|k;Tgjr(5lGbn1&WLPX_cK=#&e?|2x%wfuS4k&S-E3;Fc9Is>9F~VBifJFaW#9;W zCCe;5$u+oQq^P{f44djNbEzIV>6NR?@hHgI-61*!{%(}mB_}{VPt!g zKLG*2s|w~8fZO*z%zg1xu{*MgH8%&4&O_V|E)^HxQaNi3tvSjHA5L?}EA50=mzjX! z2-ayY<8pTWtQUG{*djUbGLNUg_yXHd>|SC0^^76QW>EeM18pL^8V|KTEZwe-5azLX zs(()57ws`=Bps5kfGwuF*Iv$C>-R}iaJ!qA(|_jE2+BdLw`4wS#t~`;r@=m{Gbm0H zt@ECvgN&?mM$%ZC)9%X)7|$w#k~z9^jl{__x0RvBL+~B8SC)1|7hu%qwoKS6`d~D9 zulB>t$4({|wCv$K__ytk@rim~)B%$2aH}gD#-%vq=cn*$vkY|=mxfSF&e0O%s0S4O zB1`|qMcvj7(`o6~yI+l^>%@x0DS=4TkL?C8^%7~3x&xW}11Cl{>0HAD5Q~HHh!YXK z!Dj-&W@0+>xvtyO+_2k?_*izYMSVOhnH6_PCFqz^t1Rp1u?clv z2P#_pT!TxopY9TWGzY``?2HBwCz*%>&#nWfL9jZ9)J`-oM?^)!Jc9gYK7RM3>AGc$ zboH5`d|s@#y8#ZRmoZ^4t1k$EEnC?A&pb(Vf3-!xjIi-lc|Po6G; z9*m$7GY&)#pyScNN&+XLN6=yy>e9Sjp9vB%kKaQd@#uL;?Jfq)$VCQfuF~Se{(*G& zWa5K767^6|kx)YnF2@N>o;^{FO1}XRNS>G90Yf7CILBX7e@8x25?Gqutt;3ZIzM^; zTe%R_?4Y@ey#in{IS>1(2UU0(SFxZjox6aWd{D`2w#&Ag^7BMPy#*s4n8e@qwF8Jl zLLZufmA+R4N@1bPPr##*2lRpv!G^%6-E6}^wh@``S0tu)05$-PEx5#`u-hU%(|qG| z9A%q9erFp4>3qNfb%-FtrdcNh7$%5m7)nT+ zO6eN8y*ucBt!Qs~X47&{GfnQf+DqU63AuSX*pb?s@m z8ysicE(_A4omD)~Nlq4OAHkRPtO zbYT!@Lki-04Bg4*&{Tx(gqBU%ke`BU&H4z!M;L`%_c?2SEs+5ppKo&`!!>&2599|d zloHE4I#B3Y7gPK8Jgl=;A$GX-JXAJ{!%I4yvopv4&w8u(D%>oFtjPT{QWJ@=UvH)u zzl6gOh^HH&b=54m`IVUdF&!ZLtEZB0Fk6Em9qB*;{QzXb*OnyI(IT_L(WeEj!CY${ zvGUGe@4NZ}n;HR90Iq_uW*}PiD+8?Q?*$ShiUrhnDI@|}L0GNh2x+CqN^0t=U_-Sd zIQ=3(oByn~zoH6oG*~T{l(6s`V~f!>eq_a6I3!l5cE<|oT*Nb`h*f%8BxWIAW873RlwZ^j=E2vcLeJY2o_SxK(;Np9%9G3{mKh4h2yvo5?B5bpPju$9H{aJ!b@i`VXup+PE zjiZ87iHP(!&GPB*@EVjW-4rp686=PocrDj$7B9liz%Nx^vA+PwfJ|wrP45*4$>!mV zaga07JS5Jfv8+M8L^bG6Y17n5!_Fhz%bX{iKan@fAzG3Nq(OCDNs}M$lxvgZOm+Py zX6OuRMVem=l)prlanty z>S(E?pmBcEurN^mW8cN#%XYOO&hk!!Om(08f#Ujmb$=4|4vyC?FkgLzU;~MR8=v-t?bVOd!84@IjZ*EpdUP7;!{==QjG7-;<)%p>xyJ3E>B( z(%9tZqRB>yVPjocGeg>o)o!YJBI@I|{s14ps$t}D&OKV}k27iiENfeSv! z>7sM`U{T4}>H81UjFB%F2G<@LGv;NG+nxprm!Eu%t{s6{aL7A-j5vo2oC#Rpv4?o>-F*_2~t5Cq-!1deSFxeRw z^Xo+z>T;+CmWEb)!hVVxbJFpgYtTkvDWg!ydMGbCIescn6OhE>c! zT`ueYRph6PJXzt~y({J_O`v^U?6kr^I)KDp)6&M-}A4H&q;o`0P_ z%J^0(HTB*F@^gn7ET*w*iQFvInUdI69k-&#;WW0i4BSAT45O3YO{ zUUGGY6ePPu&vUT^v&>(m$^&;)jxRb}{v)a})8Wc`$gq3r%!+UCI}%Xsp_P*f(_tN@ zf7A_M97`n{CaSlTH>sdfxyL^Vz3Wx0{P>9OebPer(DiHkT_x7C(H6rt7wg?dPz{+7 z_P^n$tv!lPVxx5dH;7O#HwU>meWKy@?a_#CkXtM_QF6zT-N=9F~+0V86K>kOgQ^6Ygf`bh^XOI=)7xI ztmSvdRn8{6?;9yv(dNtAG zilT-TR;Rvo<&TNB)t6O$=dt0WPwwY1kASS8G|*Q_KU(=e>vNsIAtx(%W6>aZ{Ip_dGl@x6rdOadWd?PAs|bss9h;xMbj!^f(J8O{|j`=27~arS(_Ia^Fj?Kq;-7y~!fAl4>-lOSV!~ zOV%_pAZ+3Jxxh3|X4-S%BTW832osiW{#yZF`zi+0T;#P$Q;FwW-RYN{7Qsa;?8c8} zzTj0)XsNfZx?Xy4lyR%#!BOjdIiUP5e{J0EZejH92XVtD>t_($-O!C^m}BFi2Q6tn z+8ky4km@JBQl-BwL%78Au+%RAY}=65T8R@4tV-iP2XNq$-nq}PKe5pSSUK<$^N=z; zP?rMG9m6!?r!^GR{hto2vL3k48<53{KFGSxUC%a~5?e|)(vZMvCW;^Lw0ycAVWgO$ zgDa};!hNiU-H-NT3#bs@6!yqqcBNnH&dH<&53Z&yqs*h09DTvC)ubF$T?}Eq*~Skw z62s)IFM8a_pFsPgVZ^55(~(u{U5V(wR=1>>p*O4US1DmQp*3d(_!|PF4}9fUY58q- z&ksC5szJcX9YDXc%8-7dUou;#_B>HX4ol(ZS60Up>NbtOE^G>;0zbc{A=CosuXvZ}s1P7U=6Oze*M0 zyu1=^C}Z4MV(h<>KfMrpEqV`f&bwD)&VzDePSG8p@du|#uKDN9v~@2HoH)YV&%F!? zz#Ib2-nhrgC7*o&hJ^ji;Xz1wgsxKvadPv+1#?`S=L6;5Iv9|eRi|CHof_R{{vaAq zIY`BvR0U31NT3bMn{y1*p@!P)Va^(ph;lOqqnnB^4{{Mrw}5cs;F)-Rz_O5}cGoyS zlkaEr(c}ucfAT>)%M2@EMsI!&uFw!R7j4aEscg~sKtHv~nKMQEz|3}NBFXr>|NF+_ zoc;OW@SXoYNN+9GE#?3^_r4GKB4R*@VE4O|(yMpq9m>E`@HYp4;NO&ZXYfP`*_b15NUb_ zc?70k>9G`SI<&l8x1>r4LL+k-Zj08B7bm0}*?DIlHSJ%AiinN#ep zjqx!eR?U_!s`;cWS*aF!;=|o4wM>5(y8ZrM(T128a!wUtN=lO#n~XkmS6Q~VYu6_T zHpEOh`+WfbGpBF5>jT4MTY-kV6!*O1eChl@Qu|VI_tmCw+2^RQBA8+(n~3y5-LR=tmj;D&ciVX^cC z`!_X`XSn1bs)9D@dLCa8N8vT5J-X|uKH{^IXDBIUEVF5X8*@E_<{qfBlh$bhgyeqb zHJ=~s>L%Xtd)l#tCj;vbt1T~|6LaDjS2351xU33SYTaz96o)lkWGm?!GilUIzM9ir zrA|i1Pw~Q5T-bJ1&wX-Hrz|?rVhgN9R3fX>R0>DznoE8C`?hAUyAmj#&2y_|)r8f+ zku=|$qG~!<#H4q*Gu4X2{-9b1^bj}-vl~#g=EcSP>;6>}%&@!y*<7I9H5DK475tv0 zm(Kmc(9^FpO2tj-(zJ1WD&lk@UOJzW;fAA!J**~HIb%`_yhMl&6ra0G{K7ah(NsfP z97V*na?;5ZQC++mh%ny5)BQR&!T&qn8Ln~H0Wa+|n4IOBcUPxEu#(y~?-m!^1hbvByn~ZfDeRNh57#;!zD5Wxlmf3A+5N?zIB`W< zif@GdpyX#zq&JAj+YNy%$bIR{dgs`E0Y}RZhj7wpj@^Sc!;5oK-99khFZIX9?E%*6 zKZfGH6^94UUoqJuhNwj@y}M=X9&y~Lty*H=vw8NXqbmw0hvXEwC1^MWGh99{Vtd}i z#TYs8ZJr7#^iET86D}?uSt|q3WwX1U0+^ds)n?`}mhQ<>IqzNXgj79R=Gr}8FSu0o zsE>Kf@Xw<3>eNO5nBk{6J~Ymg2iV7N>*T#7Rs_Av_E;{$#z7BkWI~l`3VUL1A=fkK zWGZ7U2`?$QP6>nVjtaXPm>7x>L5`J7-~Rr-i}~$w7jiuCc`HZFOdHw%uHL6Otm4N; zeDFRGT)E71tV_xl%KvItGNww;J zVB_f=?7RVB9N-T+|C-wTPO9GG+E?}WMe9QogNC%&h4+ZL8>81j^TB{o1_6cC2ab5h zxdTGL!NEBU{J#p@e>d{~k4=9+0Fbq{_phE&-=lX;RCv5Zv4I@l&vbUO_8+)g>`K!A z?`w$hB|bphPG--H-Ms9wz8gqOdQ}b8SO;rE_9BQ64y;wjwFBU40J<})8=rJ%B0*;# z=dJAb@WT@5x!USZ-b^R(1e^AJBGcs$;2WPu0m%W*AH2W4f%f6m{bmQmf-KKpbvHmg zcmBCEzw0T}i{MGjPyg?Ar?T23HTj`wU%UP3YT{gHCrN6}LI<-927QB(V^G8%W_Fmn zdi4Be4t!0!L^Wg9?w{e(Wck!-RaS82CHSqs!hZ9za{4*+E@K=?my?pX1~5UGQi z6XpkI73fT3gi^MdOJjuZHUD-jR@L%mbk*Ia2|^>kc?G|3U%;OMJ#YN?Ex!Yc1Id`* z@BIJ#3E_Euy7|)srgegw85egl1L&rEZAi7KRNS+9{Mpch7e8V?*5dDXhSJ=(4YbuJ z9^RN%FENx+ZjmoC^hq`62g zw`{BQ#~N?PV0)E9<55cWlb9THdz3i2;ylu$A2YfBOxQ2l002A> z?tihua@CVl#c!1Rc_guTqazGM!0F)ZmNE&q!pk3J9H%3AsuVXIe~M^WIefaG66SR` zcKC|qfP32DusI>(*vMzd;aK@pWZU*t0PQ>QWk3$nT;m)+J^F7z{lCS@VFqtj{#y2$ z9EwY}9{W^1xg}46?!@M?eixih(R$fR|K8e!3a5w#teY8E>I=SvvN?6e|Dyl=u$t8( zF*}E8h=;5u-m$A}T{MbR;~G`Hw;qjN!N(!rb`^_z!%BwH_QQ=~SvX^lgzCt>W#}4>P7XeC`){=|-Ka1|+tW%eDP2rmS++?q4Ju`34wI zO?W4MmdhixbzeE^8Tc&f`gWH${2Tdf(J;R5+TkES=|tMu%Q20EP$Ev!*gs5 zfJ7@j>xa-bb3OVJZ^G5b0ZOExqK>87r|4tjPLu1mol@AnJHBz>L>7F`iX3{Hso@37|1o?z&r14}j_g%5{HUi;lW~*o*3Yxf=qI(E5#_JGPM~ktlzJ~Z zD_=Z5mZjSropQ-bu^|3+bc6tp1lH|txHvpmNu2tP>=>IZxaE-M@Yu4KS62~~uM}1f zic2v1bV6jM@bQ({3-fPzWenzHpW?m!UM67Pa7(0lo_NgnB~^ZYaVjq#;(v+0ZZuYY zKP+owb#EfWY-XjTV!`L78!N)|rOPb;=!|jG>p;H>*dI*t=hn$}Pi&wV<1+XI= zWtFVI?KtTtiosu#g&P*#$?D@nx}sd;W2l)yV(KZt;LV-@!s_1B4g9bN>Ao+8#`pY< z0jyMcgrKtn6sglij8(EIf)>Zew^Q9vKaz`tg!&}sPr$<21JBEIpXVLMMhbMzH5waQ zDLPuK{!LoB{;S*a$2kk}R%DJmlNFLR;3+RK)a>)1J^#^!DKdVnIItpeVa2P^PL{d@ zci6m^=F>WWqb}NC==**@ol?H%V(gN7#Wh`R_;Xj)k$T;fwH6bYo4J(_)~|mw3}%j70+XI5F(+4{sd=Vj1l21xlCC`wwhZbPtBPSH7S*bf5%E^4Pyh zos#&Y`(o4Z8sim5#*<+A<04aAO>AEVWlqiW!}0ebkqEOaPjSSyb$Iv%vcLR#7D9Ea zvFyT=tS3+DYQxtmi$4iBy(myYhNGjpd$x3Zut&RkyyK$YyN|Rq*_k<{Vtif>$cjj% zBZw`kZmNXp;)yW@ul=OWi+Fwc=tS$0((>SQBI$}mIzNfo*F04WkC5pep|3x3lU&FK zz`(`p28YWX9l$UK{CM$p#yAS$`A?_{>Jm8Bz+_>!1pu1J(CDuSg}>zm3-zr=6a$!w z73z_5t#>e|D%qagyQ8go+|YGE+U>O?!T!ZSDgUr!BahuVACG}GZf&D1(AY|=k`+8@ zv*~7N+|%%y?Hdm<>9)m)A7Gmw>v6UB{WS)CS};Nv`!wm^gG~?D6|v1;_mkzyHI!!r ze-f5LdB&0Jm=E_Gw==Fbtuy;>JA5l+g@jx7k9HTb-g1c7+;cOU$;YJ|i5+ zsO0wlgx6XoG!DkB2t&0fhS)5Y#u8yX)gJ8s#T_0e_}SI|t4&M2E{`32Lh-onX9o<= zKYlr&7#wKAQ#`-Wn zD!6D~sG)6YIZtHEogkI2s;czgt2L5y9O&nuG4m={$?Wz)!c^o){T zkC=K&qjyh7uV)tWA{)B$egV|&W7* z%^uH3P;rJ$sQgt8NTBlmFL+1}l_>=%f$_y7K6XoqQe&1( z0~%G{hx`}Lvv#3&qw#U;4|3Ja{VVqtjWBQn&8RQ)lfp~GxV$w8 zokJTJcjEMysP}+x{$gNjTCJ#yX6Qg1TQzQi?d)c*@y?urq$dPA?53_cH(!e}qer-y zVn&TL!tQm)O{eN>NWc=gC9pa`(>&`Vt3ZZsV?}N{b6ClPs`IZw0w^epeKz}Ap<={n zc6X_B4fScup3xONV`*YbJ;g+m4)D<%0Yiqixwl<~uU5>T5w8)I0+^%+!ONSzydb|% zI)CH>8Y_z>i?s8UDB*FTpJ(JNfvo&*hnkiPWH*_s7VqXOThIIqm&NjaJ2K!a(zy9Z z;op5HT&|<$=v>A5(EeP|jpyqCL!5K*5|%!yy{ZP6>gv&nKz$LtXqM=%3K$myE7gps%KX1-=JRc~zv3DNV88g)YUB zVfC-8{~ic0w8x+v94}-yMwLVgb?}wz@4hU)_^nR!50)3i!PrILB9sz#Cpzc7hiMv@ z;Mr7pMWUCLX~x9=Mo?z-$4h;g(Fh>{9oCCVJGBioefL=U>EXkG&;LJ>(^iM9%xhP4 z6(3Ly&s8zT$sD!%MA7LXk~Gkjj~VgC5TD zpW&E8-ZK9_1l;hJZ~O49*+GE+AC&OC==#wPU@-vfGXa47I*tWz?DX68<7=@<#J0Sg z)dnbVll`pMz7bTN_zvi96%7gM8#qJQ7P-hYa*j1f7Fn&bp_X=a4;{K5pO*js1kqpi z{(ipaKdLc;y4UYYXoW~EpnrWY9fcCwV8TnI>Kzjg=WJKsvOOW!N3aF6R$mZWcvS}G zaa{yF0JehWvA{Y5P0?#N2OJaeeq{yzEAoSRFLq+=Ca=IZ*=Gx&W`grMyqd6f0iU-K zHNXBy#INdU@Ap|s@(MPS`wzL?BKM-&6=#-y3AvJIP_78_8fpoj&bIFL-T%(5^fOz7 z`ddN_OyiMN`P^0HD+Caz;|3Tt9Dl}C96#pKHa`m>=GU)Vix>;6uB zHweEDss{cuVPFOS6n6bwAXX9a+_e&D(2V`jG)K#yDiW@JW3HM8v;qyVZ6Tufd%J9U z9wDu_jY^rc*>~$OYJ7Ee6n5G&2We(|HNc!2(NeQLPw;f0uXv)&Du!C?@4HPiA}A-h zAx9Z=%&E70A3WfJ5`3}KqBnLN6Io_YMa!7M{WjFl&Z*UKSlkat;B=4lS%e<4a;*bU zxf%T?E{9pa2{4Oyrys2$b^DuN*0&6QY!VMA9YmH>f{KFu4=NwnlHm?Ah<*}vt#ptn zQ+4xn5yd(i4zxWvr{QSkfC3HvyHl_N8hXK(dW?fMK*}qh&{I>8pl8)(cTov)`nkNo zw?B627k`)-ClD#kqR_J)J%cgObV#DRY7!p^u9(sS1_5kVh*Nt!B-_Yvr*-FPUH zfYvVA;aQoK99wal$CS3B6*jhq$&+uh@IR485T5Dn_XYW0bd>24hGjh&C+J2r4@>cn zue`q-HAQ=HRufRN>Hx~=qz-gpgnTHM zORd`oo{N*FZQ7aM{$y=Fobv0w*dRdQUb1CnjqfKw_>Z6du0Ers@vjNE#Uq*nJvqMt zFqaBks9U(nHgb^I_F8zU=hyg`L5opMHW8{LV@9NcZTPzx%?&+YMYY0t!+hARwh8NDb1Bh=6oSmq>SaDIg%J5<_>_5CTIh3?K~MjdTp*Ff3(jUW9e(w-L@BixuW~B`^kq9I=Wi5yU{~3D!Ykki7J?;S->Xd<8O2s^S zv5gbsHD}i}dqA(9Qsf{~%@SAT-?O1=dzTgQMn`Sefialm!-pT+{_vz5Jos+xQ{4Lv-KX}{TxFXU{@sa z-uAy^W(q)vEP6$!k|ZuteOAo~U|^1@d|5H8W?f=B`f9_wmrB8QCA!3W#y%*1gZn8Q z_gn7*Hk}>@v(D@z8}#K}-PybzDYW)9P|+!G$_9d^YZ)7TcmGwmRi2@Jvj^a5QztRo ze0R>UcJ~N&^XDI!^q;EK=x-;gS6R_?aCJyN5;LijH9fzF>6odq-&IR8qsvbK6eX}u zi@R18xnl-aNc`yawv6qjB%0*+o_f8aJ2=|$*x#3=Udc~V0vd zGKs9IJtBI!mA$W&(o+MRtqczbH|YH>uOuWg=ikx}<`cc6_E;sT+U`G>lbB7ID9AH% z!thW&KT~tL(4(v_|9hk~yt9UEKQ4Kpc*~kg! z9FB(Bru1e<4V49~wSpcVUnJx98L8!ja*~<-GWp+r+2tA(LFZyV6E28t4 zLG?$ONWY~6@0&p3{hwv_&v#%56j%zc1%I2+-=k|i>7iaJRi)_mS}x~d&Q48_-ie>(G_Ui^$m^;AQaH(5BTyQ?MAO@8wlJc&$_Uyxjca3u%0+bE zRr8~uu8+`0Fqxpsmam1cfbDE-be=N2vxGxEfClWcN4Pm0$;F{ArfLp|a?$YdcB@!C z0J&=Z-`pX{a~LkfFBx)9T4os~$s`O(6n7fj8vY;&(H1xrYuO6Fc-@b=#$703-SP5NUR~A64~s z^{EcbI{#q?30yh#?0xBEg&>zqh$jA$4#c(*YxGpO>D826a8+ccd47`EBg}N1axW_% zn+}+1va?5&IabL7;bl5nc6`EHd78_?FwnRwWWut6h6U1n zcWLMd+E9j-83gRZUjnYMMuRs&_hshkTdpYiyEjZyX;I5hd)U$D-BY2#85H6tPU3>= z<8EAgwTQd|jQ*xee6PNr)}t^w28#YxqlAH0X~NnJRX=FFAa&iFO%ghW*ub|*+cmsc zVpUPMw z*NBK+boqm=5(r>p(dS`_+0G5lT756W5nE_oe+r`zt>i$P+6c6`$qz;Vre$PDPqoL=6z`ellAz zIF5ruD4*|&E>cCJ4eZk?qY2I{YUD)Mym|l)?{1TuAR&f-vTv`TllPU?E1i^eh>u-o zK5#|i)}wE~UEr8V6gKKvJ86dM2Yn)&h~wRS4sj*yrK;N7OY@F1sr2b2*(S^T)(T@oA@&1>^KPItrzKR!r)p}*t5$6Tn@ z^i5Qm5*J8uSpJm@Zqxh!)=t{cPo6h9Xwp9pqw__Dn=d@JpZqQ;#!Bq-(u_yMU)+rg zV7J<3=1GXqWR4(S%l3;e%LmOKhcQjeNluIa9y95VGwpUSp-{+l@VW?*LCL)ebewGA z1GrnG##tK>Fsy$9R)1{}f+)1AUJ0)zj0!w4c3xXK5nU2LL2=f<>lRA#z-+D##H*Y4 zWRI$kgd*UF$B6wR3y64*f`eyGLB5_UQMp*X$Ya+|I{P*Jj?EVj#e&(zN;@P(NFtkw zyyfNk#Emd$sE_W}y@1F5%AP>|pm!iuqdv0f-P`DuXR&XrsIGwSybh!kf6hDDjffW{ zTf{e9@x>(ht0vwffRGUAR2!c)}oSI=azN3t@&FToExkWg>TWWO`g>uL#TKyyyKv z#kWUMTB@J>)t}aHZ`0G-U&(1i5f(7_uv)}IMoA?n}a;la+G(!vu4+S!^zjkN9ay6Jl0@ss72f;RX93p&D z4)Na;Iw`y1x7@;dPZ;vAA5L2k1NH#iX5CwgRhQ|Zt4plq=mf$2$t>sdws_}>wXW5z zPa~$SL4>G;oA3K0>F24Esd1LY2gbFH(`I}g@I!ukgn{paGFO4@^zUQ~gNTuCDo`aC2o&gvEPNi8f*5M|Y1r(>28{v>7x7Zc^&T1{Aud?4Dq^J{qM`2 zw#uHGUUPP(Q~CQZfRpxtuAWrkH8pPE%c>eK+Y>JU&xKi{{y$$mzx){skfWkY$t)AY ztXVh%UV-n-2sgYEMF1v+Qc?!OY-08St9l7Qi2Tx(;Unb^@Sd#Fp{>WC^c_+0^ZQa2 zs1_O1bw~gkK)2ncSs>TdWoq7e`(xj2f6-zg8T0!n8r-XK51=p-Z7{}&V7@-%M@Hw( zbH!iFZM!gj9B%b9D;@$z%%A<@R*y;dBRo#90w4Gt%@-IUV!=&7i}%>mJminYfGi?e zK5!j6$qc0XtL!6Ru8A6dss#V~4o-O=*75+6JS=1!_rPJo6!bhx!qI;$PVg!l(QLNg zV7GgZl$O`mM$+i!Dd|A7c?)r(V>{0t54#({uUY*#vA~Vkj~d8%jDrGXae2=rS}k>| ztaF+ugJ%JZ(P$%`D`i7z?cF5`1NX9Pg7y9+_l%GRaR#r$r>5#2Jv#!TF2+{ReXO*ZymVJFKKHM%?CxX3RVwtv`l|vE?;8BYe0`lhO4N zqV$LCb#2l1}_)dS~YO7p}yaU#*fccr#h zInmt4n4E$3baXA=5{)dovCgpz`%E)$AgsS+x-wtlA_4HHd7tjrye$0Z{Ql1=^xr+` zioSf&6JS@GO_!nH?P@n@UQ@sGWo-8_K7c%87obgI#SxIFl7Q3639s zk@aKg+MEeX6>01J#pmT<4pb-+#_`%||p%L%} zm^+~LrH+m-UypETa#$-ujO_#L=j=BH^%0u!Te+g04Fj%12K`+|m`}4_dy;uxIxQ7z z_;2NW`WNO-^8gOLyzRM0Hsp(q=fvTVkhMW9y8Ihvr(yGX&Wuz+qitJMp3s7bO^aZ{ z0sf;#g*o#E%nk%UKAJMa8ZEN3jW!!QJ71YoZsBqpKNUMz!Os)2plNhBEMGYicbdFC zG6J2ESTECJ+9;zEny0Pn>8~DkTJ0Aea4-G_?WgoBI$bCWYH^PtG6R_PPx~xc4nJpz z?-mbpvX_Xi3C$+B`3&*GZ4z5A8j98eXj)z8nw=FYz;6ET$=Nvm|CJ5YT+thTI(ioa zl$Q1myeyR)Lb?IcVY=6yrYd9UpkT~1Ub_PaAEYFAsnw8N{WHr!8WIU{5E#&H5m9GdM((CV#||vMly!pS=}LOZt*W+p0ooTz)<4 zgETVphbF>CU@X(8{hOXVgC^2{pYTF=p)*9MI{b3AYim&4vwbY}Xe1 z?+0T>>n81uge9)Mu)~`DUUf+GQoqk?HfrK$LRSX&x%FWuu7b`&WlDzuMRTt|z(Pyj zsq|dMsa6m*ccnHEKP5+ZMD}~2O$K_(>cG#tH1n2=6L#L%8Kt?Nz2*+klRl1UIhv#T zyiHQ~V+zMH?}KhoO>}iT4}69bpeYh82pJZ5wAT^r3#FyWsQz~W4uk9D=Lk7EOYODv>~*I1!V@;P*wgrk5y0Z2Yj zLPxelcrv#j6w^5+h(Y?KRIMr{cbbEq_tp|B20URZW`yK9!cWwVp)45| zi8ZTX(m75mi`kp(TPlwbCFB8R_;w1KH`x>UC8l4Np-XD#=Kc=m)Nye?A}urq9M8j^_ql8Yd^@mCn2shRRhi^}#}6fWPP0Q}M8s!nSut`R>t_}R-kzdg z%31vu>bSTsyt+#N+Ip`dL{?a-VB&WsLmLjM9%Q8{jv&i@Dq);~@|CY~4*^&X4ERtq z)L3Y>M}^P|(=7n3Yag8oD%XpmJTKiAq0iNeXr1M3{|I_S3#;%`JG?W z)X?UA-FZNG)t08b*-F|f(V_Y4jN#Odk)00`N$rqs(pGz665u9NU<(&j&F{Q`YCL4e%`av#0HMioa@dRcl7ZrX8HN-WoSi1QIKyQ~*L z*k{sTL%MyEL5Vy=v9R zTdK~r*W=kBae#fLqlb_bag5mG>loa>_wN`0SoJJz@Wfb1i{ZTY;15jG>Xrl;P@F6$ zxZv)uAJprlF!zNF=(hO0tw|LoA|RrAG&`7M%#HkNLPx;XkTxrycIZHpzdQ@FLuL`R zjtnkyXo0(HKXmd(2`hjX$Gy$5>5ann2>>-cIFE|cMU%hEic0}UL+ZQi^(Bj%jMsla_uf$FB-AZ z=xP1`U{;yQ|0Md?l~U^f3H|m8zP7_Gc3Jg^s2=dmQqP~4d{Fi|{M!0> z7oU4tzL*FQ8_7Oyw7#uhdt^@YY$TD`X=OB>Obx4azP^EI`8MTC#gWohF#zIT&nyyIDQo#f~EmmLKzl9o2 zC_<{uN7hE$r@t=#q|w|owv(HXkgN%@b*Xt-;kSeN)w18>x12+CII>fGIB14+KDg&G z=kMNJY!|T5aC#%(|4Z)bHwqm(PxID?g|5Amc4>?@=|>L+Igw(b3*$_CN2q!Dq_E6Dm7C z+9_$}j{(Q0hHY@;-kjpmVAuSD<{FH+d<&K2LZ0}` zaW_$3@%4CX1|YRqXWP8t{1g`pRYUJN1JJw|-woh0NZx#5{LWt-EZ3^p+0)}U`u=T3etl7FQc*+5eAZc3 z2R$m^6%nlV7Ob}m9)d?0kO$AGu(s~y9sN|Xz5Bj zv{#HE`Rwe8wfG{>{liNi-*WQ4-k*E^&pgR#hhU_$Zj&U2V|_d{{j}%Cbu#`pobm5- zjC1^@Eg%Ey4a)jfV6%GW(@ey2^D7`4Bt0TrB3i%!j9lN5`yXl7yS+;+YMWPgHtouf znxY0p{;R}mogty`hIG>IV3NHFD*j(LApmfd3IFw1VxTr4#Qk4;u4|Gs_x}$+Y)ZcA zeH1Utot*2jkkhoRx0Fb#91FMr#ye>#9YiY+3(W#X4JD)4*TuyDs{eZOQY94h>At;D z@8J75&HV^_O&$wyth5A7-~L9M{gttQd&GDT#T@hsrYn0$@${g1jZO4kw! zGo23V8G8QU3BQoSsQ3qMqW-$0EzqFIegD zB@1wo4I4t6G}N?qH+OPhM&rfgtc^(`Sf))J0 z3frLiVU*6XvrT<|hmFF|BWx$Yx7+Si4t?W&g0&K{xHDicI`r*{03ApC%o+d(#n+M@ z;ccI`Bi?Iyv(j6H?prX(ztrty_j|-Qf7eH?XLpXlAQdH>-vsUbOyis{oWT^pjtPCz z^Tcv)KhB0P(6bh(em#Bov<|S%0qUiFM87m`a8TZ~tmcNB-eapG8c0FQ*$iy6ONEAl zPEm#+6Eq2>NIzvpC84Frzvli&VH1y7!)D&vg)+8RCkz?7q807Ghu9er*EO&1Hhpae zWg1%JEr||5O6;2@^P|L{o!N$Y!-?u&J*}Ie7c)9r(6fJKZNfjEIT~V9`hz+_ncq2Q zvDSFY>Xt{+nMI|v!=z*RATbAT@|`8S?DRzzumkblcH6HR9{)@WeF9xHfXuA?T2p=~ zpuAb(S=cXx`_TxbyGcLqXZ4PXbaL6P7y)6jeEvTlH(O9b|H>U~1|5G4s1FRj2IR40 zTvo&XR16cuDTF%nHm9pisFSBv`bfMLUns?Kx3`^|9)%SIN14qa;!VB32c7{~Uw|k^ zF9c|Er7EZOt3PXT`OLwZ%uy{P(ieO@3Bh`7darruTIl0nrJ$NZ-msZ{K1(J9K%)9q z(*!_oCv}{cVWhq5FI)moek`}G+psmF{dHQzIIpM#1yDL;=fh*b32Z{uN**l#3zebH zO7r&fhS6{OPaBO>8zQ;$)Nb-Mv2l+-Uj0c2XYG}t{w_o`LflUZZW_a8 zdy%gE`c?h(LPY2#N9xu4Qte;Cz+ug;MF5ZoBcf_my2)WX_>_9c{?{F9gguB#NK__l zI3(XL*qTT!9b}MK@XUdjpWv-Sy=lywL;CU=Ci2U#S?xGD{0DI_m0WsGUoH08d8T-8 zeA{h#4dKq}Hpq8quuN=BAB%}#=3&>3yV8i|qNiq7P+Q8(H ztNrVYpe}BKzIAhRd$wCRdwX?&x-Y_pWq`lNKm>h2!%Y@aj|j(hdTfxu>3A9~ECmVly95X3)LLFdSsH&z&W1#Ncb52Uk+S+eLH%?d zWTHzTyvJI^dtz#x%8jy0J5!PL{yhphP3A@Vj@l=bZ_Y%fcWjej#?=ZU>=&t2LUs|Q zsqVF>!t8hLyF*}BJTslOP=?f?`imJakeYeWweW^>8u?-MtOYhznY4>7;knAq2dGa2RQt&xW?j+q6X8dHAQm3yQucAAxth0J=v6IyH zO{sr%}UH-32+G&bSfr=YuxWtKMs{4&=s#+ z+`>^c3gUamF?CncG2u#-PCaT^JnEee$vdJK9=ftNl7m2tM`E$OurcCY#AibZ^3aUr+zdX zb@{;V+cdE)RRtwMe_>aFGx&`TyM)Mg{P5~@rxUhL6!PIByMsVC%{#TKcC~WD>D)*^ z`z;FmrLk!ItNkWqQmRqSsTSV1Pdgf3jY5c@mEc&k`&faDNdM>@dq$zlu1RO3J&j11 z-VopM(Wssdx)ABb;`?4N9eh8km!38aTAaS#W+z4LApBong93j1d5@?;-#+!Zh7wXk zkCJ z#S>g|01!8oMt|2CGf=vhI(m9dH?8_Afc9@iasG^7w_4M9_PH=p<(`pr`f?lHlCLql z&Oq^E@yizqTHuBWUEARG0MSvHCl)Pdi`F6H(=Q-e(6b-Shoo zedWsI?w>*+ki8=1F%w3WvPc~zZ(mHmx~gYCb(@AXG1PmWWyplLd0aHMCKtm(Nd`XqgW^3{XRh%x82) zH03$ZT##{DEV9&JzySlN4eqtz?&D5>8Q&vD8Ms(MF96HMEbf|ZMppnh-*8E#o6yn0 z+F^p}HBJKk=C~22oJFL={c{e{0T_HVo;3{j9#VYM)yVT%D4wL`ha`^rG9UD%1I)|_J88&5 zq#Ng9H5xDXrD3P5svj#h>g4Q6k9VE?y8!Fke5$u<`7$ z_eV4fc)=)R-*r)B8GR@BNLkHgoI4IFLUx$!gD_1qVY%gW<-3G6w>>l2@+#+_gU=Gd zFx>6+z~f=p)$_PeHW|{r7@Bfp+N{mXb$O^fjuOnl;=~fA>&0UW*C; zvt4!qZS>w=Dx_{6J20zC&LabH8lWD*D7&tsx_GVX*D3QYS-9{}3Fr%f9^@X9sr+=cHy*0}SozH}uG zBwosFUKyBvAL>dO$ZW^OzQWCr2_+Kx0buK|YG}(&#X+Dn0w5Sb9qB!fsMg5i>y+mj zg!>N^=FfZn4M6<|)q;C{^!H!6(O&`ij~|XUNHhVqnxOYL{yRkkb`00&k^gZ(^-nbZ zrYHW#!R7ylA10-jcp$4V_LEA{CHIGCfVaL@AsAEzhT>nP3E=e(A!L@U*mJdj9>8^3()G<>v-mX9bO6X}k>`%6E7IhVKPo>H5(Dj(wZD3kQj^n4vr_-0O`(8iq&cBb2 z$GF2nqXYs4zGmq$wtI2iLSEUcxFV3gJSx*(Qy{B?F{}Q@b**{&qIM-1YG~LdEhbH? zicrX?%;Q?_d)Qsnu6f%=&wMhKUmiMVcCuEqJh$`Nw`>*1P=J5p+it@&%6+PPrwsiK zEwTQUaLM>DvAdRkMMS0P%Nq#2ecQFumy2YE-%iL&>Ld z!7I=sC><=JZg%9jL>D7+yUMI4Qg}8^`pUh%EGEPNGyDPp+`N4og15V{D`G3S@Xg(C zb``d~b74JYzA-5$(R9B}?*V*n;Qn<0?EZb2&lL!h!$JMp+mi702o$(W;8QE3*Pb3C zM(r6-O|`Rd#AO8uvEzTiLa;a;RB|-~+Qu1vVh|!ckZ{Y%gC?%UJqYIDT~>XhKeLMT zb@gxYYG{vRNA`nt`uP>=k=w&gwWWSL{nTmlB4Ln$RX|ymffP=*|}avLf33;C@sUm zn`X^WY}X!tL1fN&w`s@INN|BOF96Bu(eUJ)Q6jzS`e^$<2F4rqFi1zB=X?5SYg^8- zP{4HUx}5*M2o) z*8`u|2{#*nJ(2-*R6^fbeO-bA;E}Fkb)K`_Lk7=5`wNBr>Dqr++?7X(d#s6 z_0{tBp8`ZiA;TNOg%xhCP+(9g!CjECVAxo+5%}sK?S|JBcy1SJ9Pm~zOi=? zdOp?-#U#0cn`@(XJs&rm55LM0vVPsw4#Pp=MeVV%N_*ol^~NRyW(ru8_2_``5}MP@;^3F^ifUY&I!VYtQYb%xVA z!~?UnXX$L%=EuIO66wcIE(4Ff01{mLM(SU?qU;bALEj0cFbIco43!g5wYH?QC9cDo z4R%~jT|P_=fWw|9Id^|rtIl*LZf&E66Sa8Ov*~$c{NL28OrdF3`qofWX0jfI_EwP= zHAx<~Bulxx5PQ#4&$Ft1*qfh6oQJQEQpX+uG^uHr9Mi!1eK3_YQs)w>iaB!>^|nTYEVLWW%SzT}~w z{`~O+`5V1)yWa5<;KzR;?Nm-74c-$}k`%Xe6lP$wJrIsMV}24xoxCZ1Ik>sW8J7(S zosqULT`vh-J2LgkZEL947nO<8`^v9xcB@{yo|zbDrau9V+kMcqWPL}+CfDjq0ii}4 z4AYjS1}kJQltxF!D??>Eyu4Rt{3&Nx8S1yE$HDs2))|b)pOo*LF3&7BSW+!q?%%ah zC7$pzpe5fuhdYtd$QNOXMugU*9kt^RdEE{nLtup5o(a$oWYb+(;M#8!S5`ARD4(I4aGtmC1x)|JY!UyJ0gpmb-@9|VA1Em=!%cH z77EZa?VdJs{$V_1@%g&)@~7l9>!^Do$m=>yt|Pc(i}pwsSAoBjO?O<(l9=SPHX+zm zFqRb1Que5MVfWG_n}K$Yf46wt#C!#BiBjUH0x~Ybu&YO7uBGN%^6vB9~RkRMD|iFg$vreBCjx-OLx9!!JmIt%`m5V zJnzjE&d-tFD-x- zG_sJyRMJD1KtklC@jiUc&}rm7z5tOeu$z8?0+zb1Pn(PNhCwIs+$j|BnAS~N9WMSY z0ML!&OHsnVwt*>M-QqHJeQ${tpLSiJmv=NQkJ4QLbGeX=xl7 zSNDxK+`GKS5sj_GTL75Wt?0pPjrfMsS{>$Tu)ChwDAU68r6xY#5%XK9NI#9u$)5Rg z05^+5e>4I2x!TuGS|KiRyT0oljv!AVS!g8M79xuFzQYMU^sun1q^2(xm}VlK-A4O z>~4yHa()yY)wx1N1_|IUkih`FYNfL*TNq@Q=&x^hPjrdH?uGROqX*d0EI;VkZ8Oh( z3~8pBYmb9daGa$lqo`KNd|-CU8tFLh>F0w6=BEUNOZLCJYcP8Es@`-Sj6E4|tj(mt z=2t$|&g6D0cVuH6e|8rz_*4Kh2}yI`uw$m-!6$_`yS*+|m-fS>hWjCN_e9Ur$6KrC z8@>8T+yrBS*FRqc_;{SL$+)FsUC7^4czGA=QKhWq0+jCwaY}{yZCkh+b^>uQOJjKA zTaBrg_a_rfUr5luVEy`?+@`1e7v6)L9Jg^CJ`&tE`K}Z$KzG7=L6@3(%r>_txGp*; z>SD2b&?`dc@0OR8p0t}jJ~QCrv#W9T@aQNrGX;|oKxZtH8CDm9|Kfh!4K)(T71-$> zxl>5I<5|N}8)8(4doBD2Kt05XF+bR^f#6gNvn}oBZ1SMN4F+>H%d~D|zV1rQ;V@y3 zLBS_1O9dAr&DMKa4kd_#j0p5+L8g!5kJAT@eHWh7J!*Vrbr|zpD;fE+wlPqHCf(pi zIosl{oM!=}J~vY5SRl*vsZxgrKb8m)#=R= zCA_I!QKNK_f5T~_>J%3a)5fu>)$vV_u7$R|@3Fqzc{QUKP75goY?i~CuG-w>GN3b$ z>U5kLZUv~P8&Nb4iU3p{fx%&@F`7YX7&(KhB3qIjk zDkxLop9|0z-T%I0-6BqON2`5ep(DVg;qu(wT}r>&Sd@ic$dY_f_e${g=F{GFdBUt0 z$RO5_wwvn})bVdgtB_*W9JkDVY&Y+N9ZG!kWuzFH1&^HGM8{^o3%vMYi;7_U*h6;l z&D3n1LCck(Ss|aZD@MLf)dflokuM61hyfp|`}#D@b^G78Cpyk+W;Xy^=|E49rrgTe zGAZ`~*_g7;i)P{$tIyjh+t2Uqi8r!GMeo^%!*pU!c#9rPToHbH%AM`u@`_Zh`9M*u z8p?X5_(R|Yi9?h=2~%n01ep_NJv%I=Wa)ApK2Tu{cr}>D>sB1x_$N|g7Hds!-ACB! zq?%IE=43ew8}=64w`{avF1N{0n1(R0Q-BA@`O|Z8 zc#KGn`vtn^*F!UZn}(}X$ID9BPDp~SxSmUUt@OvvVPOasc1g{jF+fkMD9mIxJpZ5|G0>y z=1cgFVvIxt1w7Z5{NnP{Zp6_?)#`y1JELQ%*{~}`Ddc^q(cm`12{Vu5sn&AIx_ zlZX7x3#3vF2#CUA=Ue>*KfuhM9!CjZ!K=O27)2{av! z|B{VfM~%ec#AWHCSimoLC?1v65H>O~;x?F5!f`GI-ndP=6>+5I(Dcvi=D4B1@|N`ATl=;;v713KoV zvZX*`{MW$HN(m52dk&2EC9##E0fu2PcJ{)c{FMQq@TEYL+{_b%$hcEiU0+?YxU2uG zAAi4V_)ho6rhQc$n{TSjO3}FBuu+Kq2OgF5~2VfAwh#QaR*tHo~QD# z#9nUeeUFCOju=y~@(-4*VQHI9VPJjt56@7pgxXE-$^@C%bez5j$_!q8mROH4 zD*^MZ$9%%)cy0tahuU!PuBVdO9BTPpX2rlqPJagEIowm|&;lH;oPr+BvzU=McxyB< zFXczdYjxPYWepd2F6CQ9;LY)y(G2)A99zb)b912nrGFK%5*A3BEG5AA=`^KIzpS`S z&^@KxdxpM!1_T~bseOLefj9IWNyre+Em?$T1i)PYZw}A_Rk&wK1t&c4D{p;F!A!~0 zs)I@f?*f^VN5{vPMs}2t^5~I_oC;Y_PIlF|Q8(B?-#LGyjAevkT-!;lbim7cM?UT7t5QuTg4}(rwE1bCG5*; z3?5lr91G4MMOg`QP-b7Qj%H>(Q-6!I;Tpa`5%c2q<4yR0OJ(qgmIue@2+soo0|Kpf zz$Ovr=5>qo&REaxD(-8b9{DDLo{~8kcJ64PrtqKkJhFFH>->bDz+u|6Iy1K`X-)D* zwuue&La)Al%rYU~r7|%Vb+J;-%dyy@wP-B>UQ{Ci_uo9x76KIdW`MpOjsJ>+9yJ)p zy0q9eA}dAd@xi{oZIy4f{yPQEcLho&r%blM{IxaQzxz=1B;JXlGn~s%70!$2?m}M1ESZk) zFO7Qcc8otuMd2LtaZn(W%j!2a$dbt_gzTi3)FPXFKw0a%-5q5M2kka?@z!doro^k# zFtm%5@9v;V+jTr}uUqGImUwnoSro=n-e<5<9_Ax<_a6D}h?3>{mrA+6lEQAXg1%RL zHP?TY94~>jXMCpsYJa(G4V0q3I|B1FBSoaX%F?22L-C>{1(69~>MG)7wqrXSw*E2` z{7XW`b+NMQvyU1xHt2!bFdJJOnmfJZa?k&=)1|&8*rsE4Al@OG(Ci`l$32EM&w?vw_i zPl}H<_6DsHHq(%Zk{qnl!dtg3#ejgxm;}-<0Yq_78EAa<##elK%oyl4% zqxG6T@}ge8%qvgFw53jg#|JA3c+B@=k|Yi_m+>fUgl07>`|23QW>0T-!RHOUdKoQ` z@RHTl`1JcmPwyK^-2gq{vC@psrIeY)bm-sR1DC%aQ6MvC&*)h79iP15Fc(bOn+tf7 z_IjNbXm^AEK1$O?q8qzFKt+~LuovQl=U|qoC*UOUTh$GL{epp>T>BYCgdmE6hj}Bt zLIm_(C2UQHbA5RAw6r(gLG6-mF}QCf^L@48JS;c|C^rKRq2Zp$`ihk{^@qj#QmL@t zoi9_s%lJ&=iO?x7L#>~(Z+b+ZeZB#T$Z$zrs7f3A1@S`?#AAEetk8IG2zpmQys1E1^K|IOa*QXQpb|= zWv=+O()Q*-6|<|GN@q<6YhhTZF_?Y%31OsD#YzA!=)IcY<2;?@UcJiqHn#2~JBN%S zB6OL-*UwE9elqB|*p1CXTUC01_nLUrw?aPL^WlZ_$JEynYVv^=UaPpEx8L%(!Ocs3 zcd9iK+vnmPzoz34KjKI;0dD`6B`b`GfIM5jFuYxp$;`LA2S4Jimd?*l_a72GGnMvb zcEchAy-h?VJ?(D_<`L%QH(IWz?p&eJ-^TA&TORS%8ZMBmn2}?c~S)e<-AJvO4Uy(t{cQ*UXqOY$UzRz%`~5)=dV2by5TN^_fh(~S6bcxz2E|~BKW_USA7Bh z3Ld!p1&}?tfy*)pRNyi%@3&|($G)Uag1ry-6q}?}Q@I=W!?`n6Y74xGF6tm1AXdJy{ zA}sE6+tV6ZmHsrfW?hV{YQCUr$W2pdR^NG}ABsM?YN&>W==e9co?QNta!xUy?==;rvxQXW- zqWfh&bSeeu{XZGHwbxks1V!QQ8pifw)%&U?XL6Vzz~I%0@e z!GV4(h=Y%&s5_7I1n-f*7Cf}5qHn%rbZo{wMO=C2h@!@95B~>dt(LB2809g>;~vn< z24;6bHEvm7iilrEB*O%BpT0zno7R_Sg{>0+>521$J&XG&>^hq5miImwwxwnf&0d#0 z{8MBGCJijGV8Y?$o}u=%m&IqftVZxf%UU4*QAK z6f%^7qz2rh^9iNI~w7hdEGtU*6y~m0k7SkBTv|xy<4>aIv9Q==HqbiKz*{^ZL6DK z`Ry>!p$#8S^U$mmhN0gwVSjHDP*Kt%+6~~!llM|@`f239Dve1UM%MQAZB_D%sX=LA z*H7LlDMVy8Y+~liN0F=3Z_&)U=waAxAFJ}^LGdFcEqC9++|23BgXF-6>=yRb1F_AI z(kqOoj8?;wSl@d4slah>Ni{Kc7KT}56v()+F!a%Tvme8@$xw06_I~i+&QC3^++iox-I=aUdp7)ukOLiJ&%ug7iX-{v4LmUQ?jsisl$?E!#4{D0j((5 z*_6*-p&$Qz=~44(Wy^pU8rBdZzWXh0%PJs4B4(&AWqrBMMtr)P78kTEnI4fAzV0Ma zC%+lVPbYJ%)m&m4eiArCxbgnfR~DxBt~~R%*;33>@@L)oj9Vhdsw2)xzMM*8ok@jw z6-OpXKggctdyzmrY4N@vJbZea|Jf4Xf#xnb|jAXU*Uv4b+2LwlC3G5G`2@=R!`qX8}9>oD}_{n6YgguY|hKp0H-5$-Y zVD{ShMI?vYvcSuNLh`GSK#U4(j#~=-U6!N{*{?hd;6~!8Pc1uj)>l!Bc2K$_EtrGm zc|iY_n4+D?#k=|@M{&>#_2FLL6I;U9+-dqbElvkIhfxhBi@|MnDsTf8g0@;my?eWE zCuUgvIMV{J&}}B|T;LbTI(}x=`#gTP^H^Ui;<@(4=jTh!-g@g)e-i%2kE8%Y8rKSQ zeSO}rhR5FuBnjmB5|%OprFatA6IheVmTM-N$`L@Bx`lGvV;_q*9;0 z=TAywT~p@7nhD$d3C0n#qx zQC_dpS4Xy;-vSZ^7&!Nd*~&}6u+S)n|EsYpjcOuUqZ#Mv9D^IOsSE~CK_Vmu1q~>h zMjt~A7~p{r2m^>HYe1uhRS>}-Mp*&~1ETDkY{S0D4ihm(1%v?6#Dpb42oeHh;WcyK z&-wB0zdHR@ebwi5-}>(D>Qk!<&uSjjdBpmyf|IFm_G0zoEoyiH6x_Ev@g5YakSR-1 zrWDe4#)xAP0)sG&1Sj-+*dOagDgL^Fb@)|x_fv(ERBjK`Jq+E;w?Y1G4ehKtTk#Kc%#y4V(c&YzodU->Y zS(jfS^J;f1rgI9bd>Z2z4(lIxUGg1?0TtXbs)^Y$zbj)Ty7eUdpotsQ&c8I zU)36F$Vu_>kEZi>n5@GGkE3g}5691A9X!#`h8_ll=I-OgEcsoy{kqHXWtGdL%ixw_ z2xkS=Y?48|jXDSYKIml%Wd}k|Mn?It;(b}hZZMU$T(q-sC=JEcxff*9xnX1iTjrzY zn`b2o^G2umcEQ^X^a78%G|WdP(LAJgFN~jA4%1rTe`h%ilhgxqx%KDA;YpN(1Sb0q zk*?N?&s-RoAw|?kjO2asRb~t`y&%8#DR$_Ah-~{i5Vs&~&yZnL*&Gqir5J71-iS0+ z0tWnO_%KrXIe*kbG3=PQ>FcfUfwoIu|4J-Y_SN|D z{EBN#XtLcb#6C3c@o58gPb#6KT$!Yc1)Mfg;a zop24Uhv2Iz3s;ckOQK{^$o135{e^x$BYDsCs2?N7WQWY-*RmPL4i!$pcu~Dm`VqMq zim%ib$??*u?byKfv|P)bk6frpP-|$B9j{QjOk3tu2ZfeiyL#ppxl!ihIUHUi0bZ$K zyPkfBJBsw@U9Uw099!`_waRw)@FeRoA(KAWp9Jc*wAOm zR?dz2(b*iEi-$ITR(6TlY5bG1(%DIs+_^Hl0t~sa4T^fh??u4yz_gX7G3I(lakoPKDv`wx_DN_=2BfpsrW=#(hk9O=>#sQG9mt5^AGOp zJAvWv5}3wp)I_KRmlKCsM3PL3=HbD9%ezrWTze*4OaBNZ;sMdHhrE_CSD7$EVERMl5qBZ=2$CkYT{tQWhCk7X4#Y((T^tpfiC8xL=;?Lo5^cgNR3BK ze+z}fPPOI5azx?3Bo@Ctum`6tg6%);$27NV!w{B@JaVH$Fm6eFT?=NK)7BR5|A~9F z5VRB3t=hDV913+**`JII>>BkA!3`Y4K>dUy9>oog-^U3+=VY5_~7K2+1 z`O{C6c$+z|rXR1`aJ()})UOCYVm#@IL4=eY*L(3So76>M@L%2;h zcj{(pyPGzEZrbCl?cOHrS zBKi7jysMf^H=7&i^}DHj_cX!M+Uhi;lbRl@X_588RRgq6cfo#1i|ngT!7dC^?pszQ z{v4c=Jn4PV=^gu(g%g6toHw-WL`V{-97)M+NKAg!nmFk&jfMYa^v z$X)?haYW4t=ERk;oOO13;6A(;me^j1kqZB;NeGH`m$503(j!@8hT|gJNN3m$>bkj1 zydVB;2cB2(OP2%$Dm=9Pgj-+9Gp2{1iq?6h`b2GZPo7CT9$ao*^@HpD_C!p5dgX;P z=(h!wklzeDo%Zy8yi7j@L2wVL5DdoU73%rRSSmPnwfa7;_00>I?nyz^x-&^ureBy%Fnxu6q~eJwXwl|dSthT`$= zxyyuAWcM^9S*$xUM082wrMBFH!BVmiDkxlJPSwjSvGG0l@1?+EQ{t{B6f7V$sdIt) zZuj%n4s8iPSDh!L)MpGTm4^7RqJFUAM&i9yb+xvO5`S-b#g`y`^k8JHKJa7?^R?S~ z$?zBWIvo{0CVb(2%jaoZbDQwpz#ucn)cg8nrC-hhoH-P6JndT%*lH4YrBVfNEhuB? zy;<9VGX+!`ke^_NI03wihPS}V}`r1i>GR^2IfX1O4O}Lm7o_)S*1aV3H z*EY!ep!R<|F@=m<2Yi4qFc9T&`olT#sR-weZ6MGSb>L>=mbQ!$Aoqd)MQk-ZP6Ax3 zOa|OP0B=2j3F|2X2NVH_?zB*Z0N=X)Zh&F|rCMkQ>;T;YV7rE+^R^5g0K0YojAaG* z>RULlYb()~{|De75~*zYvVUI$d62hC0o?!D@gHYsnNcZ+{PBGGB literal 0 HcmV?d00001 diff --git a/vignettes/github_linked_issues.png b/vignettes/github_linked_issues.png new file mode 100644 index 0000000000000000000000000000000000000000..452011afa9a12fbc31a07d4f6739c3cc43b16698 GIT binary patch literal 125293 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 XX}Lwe2Yo}|eB2u;Maj}vMj!tds?Hea literal 0 HcmV?d00001 diff --git a/vignettes/github_linked_issues_dark.png b/vignettes/github_linked_issues_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..d2e45329c053f0669732df7fd3c5dadbc930b7ae GIT binary patch literal 154909 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 z�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

%b{Z1|0JzXD1lQP#g8Z{I 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

YoyU2JyNBs8pkegvzVN^0KW#2}$5 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 + %\VignetteIndexEntry{Vignette Title} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +Vignettes are long form documentation commonly included in packages. Because they are part of the distribution of the package, they need to be as compact as possible. The `html_vignette` output type provides a custom style sheet (and tweaks some options) to ensure that the resulting html is as small as possible. The `html_vignette` format: + +- Never uses retina figures +- Has a smaller default figure size +- Uses a custom CSS stylesheet instead of the default Twitter Bootstrap style + +## Vignette Info + +Note the various macros within the `vignette` section of the metadata block above. These are required in order to instruct R how to build the vignette. Note that you should change the `title` field and the `\VignetteIndexEntry` to match the title of your vignette. + +## Styles + +The `html_vignette` template includes a basic CSS theme. To override this theme you can specify your own CSS in the document metadata as follows: + + output: + rmarkdown::html_vignette: + css: mystyles.css + +## Figures + +The figure sizes have been customised so that you can easily put two images side-by-side. + +```{r, fig.show='hold'} +plot(1:10) +plot(10:1) +``` + +You can enable figure captions by `fig_caption: yes` in YAML: + + output: + rmarkdown::html_vignette: + fig_caption: yes + +Then you can use the chunk option `fig.cap = "Your figure caption."` in **knitr**. + +## More Examples + +You can write math expressions, e.g. $Y = X\beta + \epsilon$, footnotes^[A footnote here.], and tables, e.g. using `knitr::kable()`. + +```{r, echo=FALSE, results='asis'} +knitr::kable(head(mtcars, 10)) +``` + +Also a quote using `>`: + +> "He who gives up [code] safety for [code] speed deserves neither." +([via](https://twitter.com/hadleywickham/status/504368538874703872)) diff --git a/vignettes/hys_law.Rmd b/vignettes/hys_law.Rmd index 333bf59196..2befb8a63a 100644 --- a/vignettes/hys_law.Rmd +++ b/vignettes/hys_law.Rmd @@ -86,7 +86,7 @@ adlb_annotated <- adlb %>% NA_character_ ) ) %>% - select(STUDYID, USUBJID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) + select(!!!get_admiral_option("subject_keys"), TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) ``` ```{r, echo = FALSE} @@ -141,11 +141,11 @@ Additional modifications can be made such as: ```{r} hylaw_records_pts_visits <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A) %>% # add AVISIT, ADT for by visit + select(!!!get_admiral_option("subject_keys"), TRT01A) %>% # add AVISIT, ADT for by visit distinct() hylaw_records_fls <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit + select(!!!get_admiral_option("subject_keys"), TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit distinct() hylaw_params <- derive_param_exist_flag( diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index 0b4e7b4eb3..c07d34b71b 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -79,17 +79,17 @@ adae <- derive_vars_merged( ae, dataset_add = adsl, new_vars = adsl_vars, - by_vars = get_admiral_option("subject_keys") + by = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c(get_admiral_option("subject_keys"), exprs( - AESEQ, AETERM, AESTDTC, TRTSDT, + display_vars = exprs( + !!!get_admiral_option("subject_keys"), AESEQ, AETERM, AESTDTC, TRTSDT, TRTEDT, TRT01A, TRT01P, DTHDT, EOSDT - )) + ) ) ``` @@ -127,12 +127,9 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), - exprs( - AESTDTC, AEENDTC, ASTDTM, ASTDT, - ASTDY, AENDTM, AENDT, AENDY - ) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDTM, ASTDT, + ASTDY, AENDTM, AENDT, AENDY ) ) ``` @@ -157,12 +154,9 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), - exprs( - AESTDTC, AEENDTC, ASTDT, AENDT, - ADURN, ADURU - ) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), AESTDTC, AEENDTC, ASTDT, AENDT, + ADURN, ADURU ) ) ``` @@ -245,7 +239,7 @@ ex_single <- derive_vars_dtm( adae <- derive_vars_joined( adae, ex_single, - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!!get_admiral_option("subject_keys")), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -259,12 +253,9 @@ adae <- derive_vars_joined( ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), - exprs( - AEDECOD, AESEQ, AESTDTC, AEENDTC, - ASTDT, AENDT, LDOSEDTM - ) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), AEDECOD, AESEQ, AESTDTC, AEENDTC, + ASTDT, AENDT, LDOSEDTM ) ) ``` @@ -300,12 +291,9 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), - exprs( - TRTSDT, TRTEDT, AESTDTC, ASTDT, - TRTEMFL - ) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), TRTSDT, TRTEDT, AESTDTC, ASTDT, + TRTEMFL ) ) ``` @@ -417,9 +405,8 @@ adae <- adae %>% ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), - exprs(ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), ASTDTM, ASEV, AESEQ, TRTEMFL, AOCCIFL ) ) ``` @@ -498,18 +485,16 @@ If needed, the other `ADSL` variables can now be added: adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = get_admiral_option("subject_keys") + by_vars = exprs(!!!get_admiral_option("subject_keys")) ) ``` ```{r, eval=TRUE, echo=FALSE} dataset_vignette( adae, - display_vars = c( - get_admiral_option("subject_keys"), exprs( - AEDECOD, ASTDTM, DTHDT, RFSTDTC, - RFENDTC, AGE, AGEU, SEX - ) + display_vars = exprs( + !!!get_admiral_option("subject_keys"), AEDECOD, ASTDTM, DTHDT, RFSTDTC, + RFENDTC, AGE, AGEU, SEX ) ) ``` @@ -522,17 +507,17 @@ For example, there can be multiple records present in `ADCM` for a single subjec ``` {r eval=TRUE, echo=TRUE} adcm <- tibble::tribble( - ~STUDYID, ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, - "xyz112", "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", - "xyz112", "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", - "xyz112", "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" + ~USUBJID, ~ASTDTM, ~CMSEQ, ~CMDECOD, ~ATC1CD, ~ATC2CD, ~ATC3CD, ~ATC4CD, + "BP40257-1001", "2013-07-05 UTC", "14", "PARACETAMOL", "N", "N02", "N02B", "N02BE", + "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D10", "D10A", "D10AA", + "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "D", "D07", "D07A", "D07AA", + "BP40257-1001", "2013-08-15 UTC", "18", "SOLUMEDROL", "H", "H02", "H02A", "H02AB", + "BP40257-1002", "2012-12-15 UTC", "19", "SPIRONOLACTONE", "C", "C03", "C03D", "C03DA" ) adcm_aseq <- adcm %>% derive_var_obs_number( - by_vars = get_admiral_option("subject_keys"), + by_vars = exprs(!!get_admiral_option("subject_keys")[[2]]), order = exprs(ASTDTM, CMSEQ, ATC1CD, ATC2CD, ATC3CD, ATC4CD), new_var = ASEQ, check_type = "error" diff --git a/vignettes/package_extensions.Rmd b/vignettes/package_extensions.Rmd new file mode 100644 index 0000000000..e3eb1ae646 --- /dev/null +++ b/vignettes/package_extensions.Rmd @@ -0,0 +1,115 @@ +--- +title: "Package Extensions" +output: + rmarkdown::html_vignette + +vignette: > + %\VignetteIndexEntry{Package Extensions} + %\VignetteEngine{knitr::rmarkdown} + +--- + +```{css, echo = FALSE} +.github-button { + display: inline-block; + padding: 2px 5px; + background-color: #e5e5e5; + color: #333; + border: 0px solid #ccc; + border-radius: 20px; + font-size: 1em; + margin: 0 0px; +} + +.github-button.firstissue { + background-color: #7057FF; + color: #fff; +} + +.github-button.helpwanted { + background-color: #008672; + color: #fff; +} + +``` + + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +## Introduction + +`{admiral}` is made up of a family of packages and we foresee this only growing over time to cover more specific areas such as TA (Therapeutic Area) package extensions, with a wider range of companies and individuals getting on board to join development efforts. This step-by-step guidance talks through our recommendations on how new development teams would go about creating such package extensions. It is critical that this guidance is followed, as our users need to feel a consistent experience when working across `{admiral}` packages. If an `{admiral}` package extension doesn't follow these conventions then we wouldn't include it under pharmaverse and as part of the `{admiral}` family. + +## Step-by-step Guidance to Create a Package Extension +_Note: The ordering numbers below are suggested but don't all need to strictly be followed in this sequence._ + +1. Raise the need for a new `{admiral}` package extension on the `{admiral}` [Slack channel](https://app.slack.com/client/T028PB489D3/C02M8KN8269), or directly with the `{admiral}` package maintainer. The naming convention needs to be `{admiralxxx}` and we request that the scope is not targeted overly narrow, for example instead of a package extension for HIV we'd prefer one across virology. Otherwise the number of packages may become unmanageable. + +1. Once agreed, reach out to other company contacts working in similar areas to see if a collaborative development can be achieved. _Our recommendation here is always to target at least 2 companies to start so that any implementation remains robust and we protect from going down a company-specific route. However, consider that if more than 4 or 5 companies get involved too early it may slow down decision-making._ + +1. From the companies that agree to co-develop, identify a lead from each. One company should act as the driver for the overall package extension and put forward a product owner and technical lead who ultimately have final say on any contentious decisions. The product owner would cover project decisions (e.g. around scope and priorities), whereas the technical lead would cover technical decisions (e.g. around design and implementation). _The technical lead should either: a) already be significantly involved in the `{admiral}` core development team as a developer/contributor, or b) join the core development team simultaneously._ This is so as to ensure that the design is kept true to the manifesto and of consistent style and quality with respect to `{admiral}` standards. + +1. Agree on a charter and expectations of each company, e.g. we usually ask for at least 3 developers with at least 25% capacity and a mix of R, GitHub and TA experience. Within the charter make sure the scope and timelines are clear. _It is important here not to try to boil the ocean. Focus first on the very common endpoints required as a foundation and then the package can build up from here via contributions from both the co-development companies and also the wider across-industry admiral community. If useful, the `{admiralonco}` charter could be shared as a guide._ + +1. Each company should start to identify the required developer resources. Then each developer is required to complete the `{admiral`} [dummy issue for onboarding](https://github.com/pharmaverse/admiral/issues/1839), as well as reading up on the [admiraldev documentation](https://pharmaverse.github.io/admiraldev/index.html), - especially the developer guides, which all need to be followed for package extensions. + +![Dummy issue for new developers](https://github.com/pharmaverse/admiraldev/raw/main/vignettes/dummy_issue.png){width=100%} + +1. Optionally it can be useful to host a kick-off meeting to decide how the team will work, for which we recommend agile/scrum practices. + +1. Set up a "admiralxxx_dev" channel on Slack to add all team members to for informal team chat, and agree a way to share working documents across the co-development team. We recommend to use a new folder on the pharmaverse MS Teams - Michael Rimler (michael.s.rimler@gsk.com) could help with this as our rep on the PHUSE board. + +1. A useful starter development activity could be to look into `{pharmaversesdtm}` to check that the test data there is sufficient for your TA needs, e.g. for `{admiralonco}` we had to generate new test data for SDTM domains such as RS and TU. Note that no personal data should be used here (even if anonymized) and it is important to keep any data generated in-line with the CDISC pilot data we use here, i.e. use same USUBJIDs as DM etc. + +1. Optionally draft, agree and sign a collaboration agreement if the collaborating companies so wish, as this could be useful for protecting secondary IP such as company standard specifications that may be shared within the team. An example is stored [here](https://github.com/pharmaverse/pharmaverse/blob/main/content/contribute/Pharmaverse%20Collaborative%20Agreement%20(template).docx), but work with your Legal teams as required. + +1. Share company-specific implementations and specifications to be able to harmonize into your design strategy for the package extension. _Here it is important to remain pragmatic and consider a higher perspective than any one company. Engage your company standards representatives and where you find discrepancies across company approaches then question if you really need to be doing things differently here (do health authorities or patients benefit at all if you do?). Also consider that we always expect a level of company-specifics to be covered in the internal company package extensions._ + +1. Set up a new public GitHub repo under the [pharmaverse org](https://github.com/pharmaverse) using [admiraltemplate](https://github.com/pharmaverse/admiraltemplate) - this includes set-up pieces (such as CI/CD checks and issue/PR templates) that will enable your package to stay consistent with others in the admiral family, as well as the same core package dependencies and versions. See the `{admiraltemplate}` [Quick Start Guide](https://pharmaverse.github.io/admiraltemplate/#quick-start-guide-for-template) _Note that this step requires org member access which could be granted by of the pharmaverse council reps, who are admins for this org. Also you are free to add additional package dependencies as needed assuming only reliable packages are used, but they must not depend on newer versions of other packages (always reply "no" if updates are suggested during installation)._ + + +1. Once the repo is available the technical lead could be granted admin access to this repo and then could set up a GitHub team with the same name as the package extension to assign required access for all other co-development team members. Most will only require write access, but you may choose to give the other leads admin access as well so that never a bottle-neck waiting on one person. + +1. Update the template license file in your repo by adding the co-development company names in place of Roche & GSK - for `{admiral}` package extensions we use Apache 2.0, which is our preferred permissive license. Agree with the co-development companies any required extra wording for the copyright/IP section. + +1. Set up a project board, such as [this](https://github.com/orgs/pharmaverse/projects/12), to help manage your backlog. +![admiral core project board](https://github.com/pharmaverse/admiraldev/raw/main/vignettes/project_board.png){width=100%} + +1. Assuming you work under agile/scrum, then create a product backlog, prioritize and make a sprint plan. + +1. The intention is always to re-use as much as possible from `{admiral}` core package. If you find anything additional needed for the package extension, you should first question whether it might be a common need for other TAs and if so consider instead raising an issue to `{admiral}` core. When designing new functions always try to stay aligned with the [Programming Strategy](https://pharmaverse.github.io/admiraldev/articles/programming_strategy.html). + +1. Start development of your foundational first release 0.1.0. Follow a consistent [Development Process](https://pharmaverse.github.io/admiral/dev/CONTRIBUTING.html) to `{admiral}`. + +1. Line up testers from your companies and others and set expectations around when you believe a stable version would be available for user testing. You can use the admiral Slack community to raise interest to get involved. + +1. Add a pharmaverse badge to your README: https://pharmaverse.org/contribute/badges/ - needs support from a pharmaverse council rep.\ +[](https://pharmaverse.org/contribute/badges/) + +1. Raise an `{admiral}` repo issue to ensure your package extension site is linked from the core `{admiral}` site here [here](https://pharmaverse.github.io/admiral/).` + +1. It is important that the `{admiral}` family of packages keep to a similar release schedule and cadence, in order to ease adoption by our users and to give clear expectations. The `{admiral}` core package cadence of releases is one every quarter on a fixed schedule (every first Monday of the last month of a quarter - March, June, September, December). The core package will set the release schedule for the package extensions to follow, i.e. once `{admiral}` releases we'd expect package extension releases targeted within a 2 week window. These releases are communicated via our Slack channel as well as at our quarterly user community meetings. + +1. Once you are happy your package extension has been well tested and is at a sufficient state then make a submission to CRAN. The technical lead should be named as maintainer. After the CRAN release, you should advertise this via Slack & LinkedIn. + + +1. Plan any future further enhancements and make issues. When your team feels ready you can open up to development contributions for these from the wider community - see [this page](https://pharmaverse.github.io/admiral/). Please use the good first issue (ideal for new starters) & help wanted (ideal for more experienced contributors) issue labels. + +**Note**: the core `{admiral}` team will carry out periodic reviews of of the extension package contents to ensure nothing is duplicated and ensure standards and best practices are followed. The frequency of these reviews is to be agreed upon by the technical leads of the core and extension packages. + +## Lessons Learned + +These are some of the lessons learned from previous package extensions: + +* Since ADaM is conceived as TA-agnostic, and TA standards can widely differ across companies, TA package extensions shouldn't contain many new functions. That is, most functionality required to create and ADaM should be present in `{admiral}`, with localized and limited exceptions for truly TA-specific variables/endpoints. As such, _the R folder in package extensions should be relatively lean_! + +* Connected to the above, a package extension is more than just R functions - it is also vignettes examples and template programs. In fact, these are just as important as the R functions itself, because that is what the users will turn to for guidance. + +* Making sure the package is always up-to-date with respect to new `{admiral}` releases (e.g. due to the deprecation of functions) is a crucial task. Maintaining the package long-term is the only way to ensure its success. + +* _Beware of developing just for the sake of developing!_ You may find that you reach a point of stasis in your extension package journey, where there is not much need for new development. In that case, it vital to avoid working on tangential tasks. Instead, the focus should be on ensuring that existing is as fit-for-purpose as possible. diff --git a/vignettes/pk_adnca.Rmd b/vignettes/pk_adnca.Rmd index 6c1416e583..11815b7056 100644 --- a/vignettes/pk_adnca.Rmd +++ b/vignettes/pk_adnca.Rmd @@ -541,13 +541,13 @@ the dosing records up to that date. # Derive Relative Time Variables adpc_arrlt <- bind_rows(adpc_nom_next, ex_exp) %>% - group_by(USUBJID, DRUG) %>% + group_by(!!!get_admiral_option("subject_keys"), DRUG) %>% mutate( FANLDTM = min(FANLDTM, na.rm = TRUE), min_NFRLT = min(NFRLT_prev, na.rm = TRUE), maxdate = max(ADT[EVID == 0], na.rm = TRUE), .after = USUBJID ) %>% - arrange(USUBJID, ADTM) %>% + arrange(!!!get_admiral_option("subject_keys"), ADTM) %>% ungroup() %>% filter(ADT <= maxdate) %>% # Derive Actual Relative Time from First Dose (AFRLT) @@ -1115,13 +1115,13 @@ records. # Derive Relative Time Variables adppk_aprlt <- bind_rows(adppk_nom_prev, ex_exp) %>% - group_by(USUBJID, DRUG) %>% + group_by(!!!get_admiral_option("subject_keys"), DRUG) %>% mutate( FANLDTM = min(FANLDTM, na.rm = TRUE), min_NFRLT = min(NFRLT, na.rm = TRUE), maxdate = max(ADT[EVID == 0], na.rm = TRUE), .after = USUBJID ) %>% - arrange(USUBJID, ADTM) %>% + arrange(!!!get_admiral_option("subject_keys"), ADTM) %>% ungroup() %>% filter(ADT <= maxdate) %>% # Derive Actual Relative Time from First Dose (AFRLT) @@ -1363,7 +1363,7 @@ covar <- adsl %>% ) ) %>% select( - STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJID, USUBJIDN, + !!!get_admiral_option("subject_keys"), STUDYIDN, SITEID, SITEIDN, USUBJIDN, SUBJID, SUBJIDN, AGE, SEX, SEXN, COHORT, COHORTC, ROUTE, ROUTEN, RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, COUNTRYL ) @@ -1393,7 +1393,7 @@ filtration rate (eGFR) `EGFRBL` using `compute_egfr()` function. labsbl <- lb %>% filter(LBBLFL == "Y" & LBTESTCD %in% c("CREAT", "ALT", "AST", "BILI")) %>% mutate(LBTESTCDB = paste0(LBTESTCD, "BL")) %>% - select(STUDYID, USUBJID, LBTESTCDB, LBSTRESN) + select(!!!get_admiral_option("subject_keys"), LBTESTCDB, LBSTRESN) covar_vslb <- covar %>% derive_vars_merged( diff --git a/vignettes/pr_review_actions.png b/vignettes/pr_review_actions.png new file mode 100644 index 0000000000000000000000000000000000000000..55dcf8bdcf2a1b3f8cd31b7428c9ef12eb0d83c1 GIT binary patch literal 75630 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%0D6{gkEp?Wg zJBok$6T&Ed?a-9he$0kfotBtX>e>%QYO5)=CZwz&lNGO1z%;~wQ4XhA?RG1QJM5?k z9UX7bq`o~cgk4LuWGa4_q+OP64r5BZZ}J2WM{$XYOq2hb*M5W9qNn9aFu! zx89}kPBXgQT7J8^!9u=W7`t{_%^IjV<#=G}iUI^vV47=BPW?nOkoh-Rc415D=0^Yd z^L<`jhr?T4H=&%B7bBFhp`ZR!Uz7B|iHT7PD!Haju&JBiJCNf$2sMG%G#v{IRp(z& zUsq4$N&mSfg#ES5Jgu&@J>&kieUBivj!E%S+&%pJ*S9K|A96(BwIAG1z)BWNTN)Z& zTxOeXXBR6fm$dbCT0H9;54Ek255W4zl^WstfCeku3gzja0mZnnzg{r1A)iXW*zy}4 z-jeN<_{8BWrs!hE=>-4b06Fcr(Ye4c(TOCm`Hc-D-vCi{9i1|;Rg2px3=XP2-EKxd zTr^zZ2~AcR*m4}iwm&RAV;FdJ9eGVeq5au?KaP%4)D`-y28xxL2!o~~eLHEiOdG(y z-DN3;`tJK9-|L6%ag`&=wy`jC(?zD;6^XU>t11?^cAY-@vNWbht)a}EkO3TM^R=c>9CvmU8Wk48z>`F*B#-OY>;))`!*azr1? zxToWW&xZOT^6Hb@)I7>Bv6PjdMl)4kOGH$b=RoITy!qqHRn5rRuy5}2^IWxvgIa|n z10yJ!lzZ2&`~bkXiAqNbWg$_ z2RrXnL>{S;WY>2DzWMtGF7@v$^4!h7DWgNYe-%j;$h(_woZKb`On1BwF71AmBy?S{ z34I+GK#h2N0TgNVfi-P@$9!(Z3NBUNsCmWKS7TM3g7Z-}WYpk%$2~~bCPND+rD?Ct zpa*5%sMNYe)Z1K0??7-3u8S1l5FaHHKUktBfAC$Fw5I)TuG=b%g(({tjQal1@%?7cg*1kCL0NBHPg1tJ+z*l zlQ``ohT2hv0<^-oBG&8UaT0@7$UlS~F&s;XVA#G8&+-VJqIs<4@X3m%N1AfTV@ETX zxSb*y{Raz?H%Yv>RAho9l(x^J>QJ*Aks?Blt@1_$!XYte=E*vJ7R`%-V&wHiMSHgfGa0hewo9pALpQ)Bu5%a1WIQS zdb&|uF%@ccAc=mnP$FTSu28!|N-Cp!3bo6M1iQHMTnCCWxZv6OOnsn=wK!YrAR{9~ zLqmfL=@UxMf^uQV&r5LlUuj%iDlVu1GfeHpmqtwe{K ziRZ^ViHC7qp97WO=N$Ga9mhWb>UE;Ft#onKeEH&8@+gIplO0W#Hxd`wECZz4&MD=; zAZN54umO7R)b*gQQ$Jl+bs53Q9apK3*_X!KrPFBPEFbRzyJ1j5vFrK-w!8OLBQN@t zA)p59>xDK=^$UHqRnKHv`MTWQ;(@fsD*`U2e1B^5VPctn;K)#N6$*2?N3F?ukr|~G z@r2+V_?fh7%(>rD26DnwgOcUCEKDGm*=~kMY&?EONxeihMI^24X(J+~K`g? z4S?>;(XUkX%wnm;Rs4Jx2Wi7+eX`49As%-l0?zb#u&T9f-^zl%+4e@0rK{p|h)v!v+H(2J08I*21n zYf7u#_Ri2DP(C*^diMe5}gKpi)*<2E+72}sMqMgt_Ns+CkQ zRjZiF(Qjz>v^)p1sB$&oS|`4LRZ`cGfeF!m;C1Bj7zaWN8Ww-E zheym>SS)B9O^ZNobBJN1l|W;;-$xnX!+a35RHOUMgPl2_4zbCRw;*;d_9*B}Z@3{Pe%799m__;Ug5HQh zLdE+|eHohjTYR+0tyMXqST^_sd^t^XEAzdhb)qa^DuwcLue~_JRe;13zk7H+-ySpm z_LPsWdMr!%`|Mmaf`-g}hFBQ50mZaD^EZB{U_Gc4YRg!J$>$6y_N5Mox5%Vv~zes)f zrF`jvhA`y>66u+}9Vy27CZ<1j8&ymflvKyQYv!4r2|xO{({^3TC=?doP^q5}{@H4p znba&H;jOHEGo{Ixcra6;0|sk&P9v98RJ6f6op8qg_~-~e!qwVlX|wX0wWF(0DO1?R zJK^yz@^TfL^6EJT9i&WcmU{&OiyoWv7Hs&z%5;IO%#zIZEsuykrG~lp^^8|GZ4t@B z!^%cIwB39=N6e=ca<&3qH7KKvdhR1NE;&`yI|xo4@Ph|xs18Q;Aaa7EFwfa8f$!>* z8$dw!&6O$X24-LTW6SoJa?suY29Yqw(~zNb7Z#^NI`jl<$4Q8Gg*_AFDByl`p^YBH zUMnR-MLvK1yl|f*DIsIE$s19mce}_UuT#w7?P2Cf>lbynneVfyZfidC`mA+ys3rNM z@pIc=6C16zDC=IC9^E2$6ybccYCdJblOInqpA*PxG*kj878KqMh_DWSd!uZBm(i0P zIGiH)}=bwKZQp&YM)pK24Z!$HG=Z zxbym`JZ_*n;?%)J*{DeCd9)uiA*(J)`Ppd2B%^$!EQ*lsH{Z=pG%pNVdz(L};lVIG zvvYeznn_yF_)B0)!y&B3xy}+a{PB%@b_TR<&Q+%D6vdvp)M_u ze(oXp99v3p#~a@0HK4wSVJ~BR9xMM9kB~xTsrtz4_tIlVlsurAGV-K7ED_$|J-oP1 za@U$UZHu^X)ip5H?;IKhG%fRc>wB?3LSeQwyl21ErFK!5$B-o?>`5ov-dg`Yv!$6* z3*fX9z0T&4EG)xrAYMw{;X9fC+GRQ3!GU@3)6RZN~iM60&O z`7psmz2BSp=Ho%rU6X^~EUBVrP4gwgODJ6(m8v?6DqpB>M*lI@y{Ei@fF0H`P=Q|4 zoMj>|m($BdVs|>{$B!SO)}P1EmRH&n6KtE&C1;Bk7V-?f!8T>t+8PZ?&ZDwLh4lB% z$sRkRPSHgn}Ll5R)@UAhCGUmRHXMV$UNPW`+tVNk^$ zUC+8x4hC(EVptrJEiPxr2ygR^pp>XG+yxa_p+Wd4sRJw=D56q;>1^w`L|h!Ytb=Vf z@*SSz{Tv-p+*r#d+rG?P^XyC3Vs_To1jFh$d#XN7%eCgnDi!0ls^DKjS+48=J~=_> zj@`1Ij{>`7cV}*=KGY->vq7f^CB!W`UzZ_;O|0JZsjOV|9jozD!HNgT+0l9Hzg7d4 z=j0ubB_}(=uK?h<169f}3uks8auRB@H}qg8pD&pyS@1lP49W|`p<81uo&dYw>Y3hK z57DBl&D0*NS&zX&A5Fa*?iPu`zIpiN%dQTKY4~2+BF`80pRcqusA}%#(hNxtf?dJO z*3BP@x`4Kc_1eqTmiIv2$y0DXo9pSVQ3n!Crx?46GQHVXElE7HK{IrYS=yi3v&E&* z!(>2wMXi}XMY3ATryANc@67&vUG9Zm4)bw}uTML@`#>kn&DUixbFbo)r*&xrtM?Dk z_uo`Iek9D{9zFw|ggbdcT17mKwq+PYU9wt%ww$jMdg_DoxM?-G>~(|*-L{iHiTdSW2dQcErNA$R+DGQbGP|SAh>_g z(^NHR6(E*xgiY$N{!NC+K=`0EN(|zqVaKsWM6VyG>x6Wi&1*1f^3dE_B@lNOd&d?os8M7 zCN|2@1+ilzfA@Z=WaWUk$BRJ0uTiZs0`G?y_KXZCB37=mj9>@KEEX^R#Ca_y<-w zjPS_FJt3>8S07k;#5a7UZIbhP>zEE3;XHL2K8$P{)xFt0_XqFt!BqCdcl4U%LHxM> zKj1~2$Xn^^-%aeZ&bR)m>K|~HaN{+sxpMf4TsB7$P4=;M2J?$LE{-4E9-rz}XE~4xYmXwHBqT z%TtT9mFjpe>3xfd8})oVH_4UlucEx}mi_!_t#*h3q+VSY$iIr?U3H4TP>7A zU+evysxFHmaa$jY`d7hKi9s68b@qczPvGBgGu3>JgM$;8qQ})@P&}fM!XtTa1-dI^6o?e*&^hz1%0MK+VP{D?+c}ii2GWOl=xRs zrZ76U2pCwOi5O#jca-jURiEm;Wn~F@S-x!K>tw^aW~UFf=`;~Wkif^{CF?^nFlJJ| zR`j$~kg7dI#hKNZIOUv;`8sd{MGn61CO!rw4sPkK00W4X*vtF`eGHn~Z;U(D=yqkV z<_H$Puix}tC5#`}R+Z@r^?B3$7_jUzz_GfvLKd#y+6;+9VVW1)x$D_Z?9tR2$}dv! z9otBh7BkI+E@g7x^=OQLd3xt}Il?{3`~ws&5#5elk+j6<@D9*`at@Z!OS{R4v$++6 z1gN$QYOC0aFnpfRY~5(xj+xdfk3^ao*XY>R*`Nz|tF#v*+BP>gpPioO=jV@rkG8{~ zXgaY+x_f#ia4njYbzU^uEti&BX_`BOSH>`yz>~%M;k}bpu?11OgKOk`O&I;=Leco8 z1qkql^Iea0_!p(88j$^?@PKgG-Qr{NXCvT}dg8bKLA0LbuAOfZFOq!Py%xz|%g8I) z-?67IswApD{nT{Yk4re6LJ8xxx|xZFvD?lC3XoT5kE@dPMDNSh^BZj}#fp51t~I&^ zjgXO+Qx!$)GE!6`__la}Tf1+oYc+l9DD=N%lbsdzWM`|%Qk%j0YR-2u7e(|*@hC^d zW^D*q*)p%a?`fIS_$WocP54D}$-~eIu9I<{dg&CrAe)w$MseBA@z++3t+FVs_oGS~ zV)v$To*}*!cNjkAqD*)3=iFpq4nX7YSt+Sd@LlSw4{Q^jJ7i(Z*ewSJMO@&I9Cx4< z#SC6J`1ZxE{(@$)@%Q{8#Jkb{*oLSdc6HqIVuK8_$m4{CjbD*kPEmS^=o&NKM%+Y9 z`z_ij=$f0Ag}?1w-VVt>_R>v0ti^zQXx6)ZtSQGefGs1IwwHGmMhq@pG zCMo%_sh>)CD8Kt)Tr{dolA(ipG>}+SS(?O%RfIZzT@fLp4KlmAE&f_xny_r`vcE8P{72>I zgM#98^K#}YI1c!DjyrdA=gb<_4JXno-GEOKKn@xg@^HBkjdnNCaGp8NYW>KCLtxf& zK!78aN#lK_7ejAX@!>3g6|2k;0}7$l-ArUqorvkr_9S+&*45*oAl>s~6~qQhuVBk| zuLKp_Tji8d(&T-40#;|;(K>e4+~PWgy}2uW&;O{HcUvFXe93IW1Pl@za_>G zQi-~lN4dGni$F)Y&{0V5YzThGBl@=ss2BL;4C)^htH0!SmrIW-6aZc2oc1D2R)iEB z!e)IgKa>E@aY~A+}Docaq z`$}*Ep0zTo?`1n*V~T)?juZCL*|b?!O-)D|VRfbT{9X8^zDM5%L3g&OuhafbJdkmB ztvHssNQ`&9q;$OeJ~YPZet!1TO3Cqz<6|45!cOo@)EG@u-xerXQ}at3a2*In5fjQV z*d^rgP?}tv@{|L!@aWpv>tAHwCm#H&c1rfHGa5K@2OgjwepAwW9PK@ID%%Sm)w^)b z?W|vEiYTQX5?e~oOTx$k8QGB=64Kwyj=hdslJ9){k_K#AKQsoakNzC6XY&xaUGS)V zJ}4ko&=lz>WH}o8-US96@q3D3%HLLGUc5W5ei7-F-3?T`myvmGYq6~^>!s-9H4*W< zY3i;QA1F+8MwxE!)?f~9Ci~-cMBAdWzwLXXe<&QI|_Iv(7XZA z8O4`Fq-k$E$iqb`42-07k|m|V zfQHgD@xrL^1Pwi*WpClyAkuap(XQQ|{CojpuegVJV%TQKY73s0uqvG0vQJmLoc5P6 z@VUoegX%5&4UF&CZGz$fB}b3O23i+4GA^a-h&$!eRyhkU1dUs>KHPjae$8=*qvkwX z+XQdL?q|npt_bmM+>2vU6(#gH6H)wb zGtho-Yi#yvyt&)n?_*6k7Z6~JInt&2I548B_Qr26UCtTMNgH1^QT%Z9Qed_2>yJ-B zS|{Vr(2i%BUHN41h-S4F+}2-ArOd99Y_57kA_&2~hlUW~_bfak0cqODG6_BjI;0RO zd9$IbRIYMPc`ZpotB6YFY^$tR6V(DKw74s3%RsgRT1P1Yyd^o)$+I-Sq)6T!)>;P^ zj^=pp4YhShk)uSB!{JAmV@&21Nv&Ey`&FVYD^u9m6R`F2yB(8HyV^R2xrICDyeOSDoj|I(q0>MmIt`w zYsV8`v<=-ZYMj*dq;=$OZf^ATS2U-_Ciln3$HzqPnJFmNcC-D^QBhHmkpv4&0dmZkjU7aLd~fU zjl3*3?!g%QYUHyz$JE9uumX~AeRK*xCb~s)z;83Gc>Qsg_zfy%;cY*@?{dg?RreBG%2*(P zEbf$iik9!raHD6Ei?*$DWGfk6T{jGGIFVg3fB15lcJ_Iek`&Tmj~LDc(ua=cdSA95 zBlg+t5Ev2s5wB&!XMI^>fxMCo(q{96?6{o2sXiy{*tA|I<6OO*Q)S<(J*A>aHW zla#|~tL;9qbkYo&_u1EteYlKlE--tFvxVA3C-vcN+}R%)8Sn1-%^vl*eP;T{LuNZ? zM+#i9t2Smy`To`r1y&f10w#2G9pRz8u@Q1PCiVm;v;-+AzQ4XwD3FFc{F!xuwtp|rO>(Pv#UKf z1iyCCo106A%=pC_ zO#LbWlu79Sv3|Wz4(e#i{B8EaCrgH=rqFJhUOPa=n<*-leezFsH)qa1)tfxeeuVZ^z0dN;QK#%sb{}mQ;z?|QmQ_{ zZR&r1^MAAmjbr>ha=bF9B;c&Y?F8v>c9Swib-bE|j55gXIhms}KE8QuF_UY*RlQ<; zy^Cq-WT%&#{mP)q>@14%ciPxCiM{Og_4NmvvYMKjz3c*YqHQ$ZiGQsN8R+>02c{3T z{c@`ZpV+CdrL3)OMMH_KdnFU*{5-I!$=$;f@#X8Fz+f|&B+wN?Eu28c{X5xw?51Z!0w1o69Dw_D?1Qg_tS z(Jd}&9w);kX$Mw@``7^|?8~;zmsfB1{E_5yhTi`@v}bduglRE%Ly6^wvw?T?Z&=tkQkCRzkUhTo7=;1^>%aUt5NAZLLjWR zfxu2(*@#(&MeUqseBB(LpaPvs#v6PmBSEtASJA7Hhg6#rc}4VX0=)()`!Rc3DDh_3 z_+}~a78-K~Cd)AUReh2IpZ?dMWmNH4FUz--=4C+~_72zfHJS|}GqnX)-dGcjut?+v zhr`$3D?c7>;Y{#dIQHg|4G^U?S&XE;GS&;4cTH`Bt-(WjBi`;Pj3eZPNMOjNgs?vI z_dPUWMccejcw}vl5#0+M27YkwZ1^|=Gts#K#gTc%e_hMqd0J{benjW7*WNkYSMfER zN=szA?GtNf!^zq+VNSB8OyS)e!#vSxu^3)fS>G0EJKX!B#7yLs%!-rMKzZ?t z0vMk6CB@5IH~?YWs4v9bND6|+GBn`+5>uX!ExP93HY)5fx6`CFAf#FcUdfG1Z;TLs zf>&0B9mhzl7On5@24p={c2ANG{DP$I%!&eUTN^&R(32pcxypL2lr_IV$ylOhDxbo!ou+uhGxBacx1RF%&Acc^!C?q}|dcCl{Ixdo3d(&e1 zGh?g7-j0sO?k4TdnEGKq_-gz@*-pO+>HuE4zQ@LW&>v6UcGVF)id4VsW!kDk&ebrb z^J{VtVv!aVumqPI9!c&u5H1>c+9y{j9zM`NoVc8FHJ?~ztv2x)sGHc|XN3FYnX_c< z#WuM3toPGO$n#~MX9!Uyu(IUIJB!RuOvM+zbW+>K=iO&TN?~OtYJqpI?OB~JpB*-u z0f>iIqbVS3KLJ7SW~*>bKWigS7-hGOowED2>c|HlM5mFhjbp8U)iStUB5>VgLkE>X zN5TxVWwj0(#-^Ykj@d(0(B*?*i!2rBu0kT1vHnY8l!}OhDH&tk7p^5GGSy(kU$$5h zF5gfOo$P;#`G6G4nmsDax>MTT5khuQOd2P=ipp4TPA&@w$uUj6KXnfLR!aZyKvkRQ zVS^3eLhS!&XMX!*JDX!cLf&4mQ4F!xODQ6eM~G?}`XHKp;n}9OUNO5{crUT&${f7# zD?;qWvvGkeW$*ovQ&8|;8QQnBwza+2bjfl8=#q$Z{RNvgKB$Iph3|L03QYI zCena;bK>Co;RR7l)swP}`x(|Hp>G{@@h^aY{m!=dm8DJ}w)<_}vXhxU?1p-c$Gn&dRe%?JW1&Q}c2I$Uu->>dTU zW&n^bCP<(R)Xvj@V3*|ASFX)hV{Fk0ZqWy%SY%60muKp;=R=}dA+tV>1yzPVdT=-8PPY*_j?Q;6WoJgtP$ImH4si%{Jh)TDL2Fl=i(p5bglSx3K zPyuXg0T8uvy-z+{rfkyRw%iwO0McIZai{}9HyXCHk7a~*LY;e!RNyu=1IVeBflCNfblFLeEA683E(;ErW-CBFo%ucJr zX`$+OT@pb>q}|3-quD{l4}M*h z8__7}qBm)fBM8G@P90q%PkpPKK8jxPltB1Fpanx8D~R?MZ%VIV!hFLijZ0^=Iy91O zXxL7Z&j%`osHT)zj7q`^&mBpuN6XzbKH|hM#ZfmkD1H+K8Cbb#WLd2>KE>smfxs9v zm_bpQeZLkYu72%}is5g2JO;%1YHBg4MJJ`QgrT;zgtNs5$FaTA-L$6D!Frl}DFBJO zl|&;SuPqvDJFX*%AF;d(mfO6^r|4=eO`o;$pZC8-BgMCO)6=Yhx$ieXGYwr#%LVD{ zsor%Ydtn2AW>%YM|Hjo=WAOAu&E|~~6N#8Oc!P05D_ZOLsNYQgO)Z3|w0NF@#-`Ko zeu}F*q>Re*W74d-{kO(XkUCH*-bx{qTMREJXNXkZbnQ|C;fsp%`op?Q$lPdcE|rA5 zG6|Q^`)7N_d;ULI3k>QUK@a1xpr07yTY7CeWdxj;6}yNYrK5IQZqSo8$wPc}w}GVw z&;6*@s&j05)R;`cm<9IBJoP7l`EtQAe8@s`+-<8C#(M3h)_%9o3#rh{yc?4^(urfL z3if&BWH9A??q(SXKOEmY~zwNuOBg5N`Y`U4=CZ`9d@H!*Ov^h8Bf8RsK#`OGB(A|9*zX&DFZ@S6d&PnOKKyPSO8^&f> z$?~PNn(~9eszj>q(TjaT9z#KtzPpp*z4n|d0@q8@TzI$kh%ISXMAFp|8x%vk=s-Bf z%qP_tgF^yMJN#uz{ao(!TeyV{sgCa__X-#$rT1XqfW{vHV(^V3)k0Jgyw2D)l#M53 zXt7tpB_2{8Laz6xF^e>R$E^0W^V|pEy821)CLGjww1eBOJWJEj<&N`QFC;KV0ru++ zin_Q)1ei0DfR^Ddl8{K%*Rb)76(@iDtYrjD#*r}fCa<(XyR0ykv9Lr`s&5g?^Y$Zz ztokR5{34TcF20#bvX}e49;D%gs1edr51&gf`${ERles1fv0UMs z^{DAq`IdH&hGYQs-t6JkEfUc)?^^d+S!hKYRgV#>T_)XSQ6yn`_P!wwdNlrv$D{YrYQmG)++y(b36{K#Z-PC*#RYd_xIz+77 zHM`P9Y|XeD*oEJu(%=13X^u)2^>q|)-Aq20h}DS5ZP~Vdnd@k)9uOLZdgjZx35<)mii`u(iB;$MDAC+AYUu|h5zxeqJ&dBHP}DD zSKYQ=BNC(ArVq7G$6=2gamYx&(UFZ}^X3`Tyv6@u?JJ|==(aYA5<-9g0fGm2x8MYV z1q<#F+}%9{3vR*F5ZqlGcY?dqxHQ^$Lt|6C_mf%c&W~B&3_t0rQ*}<+-uscgSrb$r zU0jxyA2`|HzD{TS!z%m~MvzwBAf)~FDo=kY#u;L(vWY5dW7nlcLim?r8H(G#?n~BL>ya7aTSJ=Q~r5eY4 z^^ff)%|cOY-LDL&``WoZ^b-ol*bBgXT)LMylyzFR7bH)B*(D7Y6E;$M5c0;gWr*4t zXK{4d<_VuiB3?VGZwWL`EP(Pf8dg=LVqWBujuh)4hBVp=BH9OIMv7z}OFh7x<^0`X&!`?MzYL%RudJb*&voxa+l@HGO}onpg1~J@nM98Q4RUR&`YG*svH4Bq;%nl+XrPH(5~1Eh(#id2!Nr`tvOkQDUL(0p;VO_Bnc650?rSqQ4_{dL zGV*}=KU9W{jdAgcbd5X{p&o$ z68$1gNWy}*`#}y^0=!=&kf<7F+Xa?2~G=hXA(~L zg+V)@i|iKFf*28(&s{Uhv)&OsF1w1~D*F6&V(ve7c6#q2inD5%D_6ooR#VyKij#ML z*1Xn-uB)--^Novs>Mt>{^j0R1@Gv_Z)fjlF8ebNT;>i)tXzS?~6z$YoQdCPxt@3O~ z(rvCH%H7fj0M?jSpC)Bac=OF@vdqSY52K;{!&Y8MCfkQ^9_)hISAU#3oyicKmNXS_ z!eTN_d0ZK3X=%uOz;Sae)Pj7TV#(XaVXV4tLOr4nt6zQGgmPtInU9!EN11)IL`S2= zl6C2mZ_X7GsvSv%7!nr|gPcXr8#~TJ$wU?Eq!|Xu#i%1JR41Q;-%#n6zAnX_goDH@ zJBKBJ%szO$T&t^+^>!MAqc>zU*Kt=K=SV6|-|rg;+PIp`O<@!oqi6)YvrQ*7s;XK~ zf>5(N7qv3-`r=}BNf0ITb`X4OH;6G-3Mhp0lIAxG#Q>u-3zT8wo9pJ$U?9b|R; zpRkmtT6%gc|G-6kSlxO)*~#=@cT9kTwnN*(iD;RXSUgCLL23G9&Q6oB&-lKrhuOpX z!0mw){ev##^CN70o{t9KDj<+wg2Is1-mw_|{P^gVtYUjHv%ipEkiJQl^hTy|d`?zw z-zlf;kiILP?c3&^s|3f!?SA%*1|c6W@gAx-NBdenhfud2U1x17nhaVrLjID6_J)c$ zioOIzeeY_U#c^kaH~i>-Wq#@4`H<{sJ9Y00v6iLE!hE*g> ztz=F1^VdBn;o;(Q*qe7IvyJuygH?18CyQtG&w>>m{FM8mh~wYxYL?#GcAffdJ3M=% zWyX%>=I-qm$}W7sV<(rO52-nH=0f{*@H8Xit!AvFIAH=SZO+aI-`a|*XI8BOJs4t) zjY^oDE(4Tz+t#;KgbVL4Pi5;^CE}ct3BPK8!{c<_JPus@q)Ib4*XP~;M_O6(O#8*e zspeNT@=yXHZz5eRfSYF(XD=v%^^x16NA(F@lFGK_2lO#!B5IP&zX+tq%nI-adk|dNtoGlVe9$YzkoBp zZ7WzKDx4z=c{nY)cCTSkE2Tsr59l6Y{dPu;{Z14^q zMMz9wvipvGos`&)?_jzUacd4q-VUm-6q1Y1rRUdIw>a-mrC=)j+BvP^{Ud8NpCL{! z&iibIioL^V)>m;|3h2R=XWKyerHCX|%db;zlU z+$4AB^430geR-F$=~KYQOLRhxybP$dmbgX?DvzF;Q)Rc2xpmv$4x?b?9Z&-q+F3Q{ zd-b9lEgGKD75f^stM46Ma;Rp6$uSL$=p^h1Ln+FUk%zJ*RTj~1tjxCMC?JJ~7V0M6 zyoya}F(VO7E{d;ebdb^9@?S%tlglFB{V{mAT>n$knxy3u>*0A08VZDj(0HZL ze^*6g8XxQ6#~;Ci#$v(Lzmk%4N2IDx#lX71x~FUXR3c=zKV{#BojMxOz3*VzaQzX& z^Bxb_VKuX;yjMoM`D69HJzgHDdJ;@bmTP|xS(@zW(WKl9qnpvPQMR$sO)085 zUWTOAJ5Iei(LQ(gI>-E1!Cv59!#+B20!T>C|DUS+{{{eHf&1?Q`)N|L)EihIVHW_; zaQ{NQ3slc-B2}vY_u@IwBV?t;NizALaz6AaxmU=TFsb^V=qcjI-Tt3T|953llvwli zKg&Lp{DVGx3vG!HS4sAc^LT`Q)LwHaumerhU9y*UKcnjC>h{RXyOPIBWMkGn>Y2YY z_s%W`-0yB}^^Dd%wm>=`)pCh1`X%Qa^H=VOMpmf*T}vly8B8%GkU~UE3|WGN$P@6G zY*u`8Gb^pDlr}D}b$XjVV^LD>R6%ixj((l1dJ_$j=DjsC5r5J7Pf?zkw#x0*9S2}7 zkYNLy5AI!c&6n)v4r;zvh5R<_+Y_66OPk-yaklvhBTu&+N9km6!M%O`&Bg{T6gL>& z+?8-5&Z=pFyI7nl8k28+Ys816pzD zUg0ir&dHf|#KHJm(n8;p`Mrz@Q1L$hq2VjEC1hb?@JG&M`ALzs=rqo;LG6Q0rIjfa zJ$-#`J%D?0(fQ-)y#s8y1rUG*zm${q*d0z?aICBz=n$Hl2Y=v4MiF>CvhKhJ+IeiF z(L6M{kr$gGTa*iD`chaQ&+nvkaalPI)TdJo`?!hA8xd9*zE|jakdy91W481CDzo#A zq^i1K=AYFe5I?-Am@qAMiU955?fg7{SkEPTL2`hh!2a#_C?Xr8Lx) z>j*% zupCRR5wRUBIg6+nw=3OD6q*NS&AOXHfHB+qAQ$U>-C`vtn8KdpdVi+Muv1_fQKH5Z z*GwJ~K|~`LU@lUS%8e3eL-Gqm?1ehOW$Bx^b3_?+c@laChbKsx%dQNsWcW2mLw^7M z4Lm3oG9nrYU3MdQCW=!B3UyQu3>G!4Hx=&4*Zn<8DZh2ItBf5dW{4jKxlqzyJ=-a{ z-f6Xgxw#ts;q|lA)Rc~8J*(L#{e)hsQyDB&mp4G&3gAZ?w$kT+KT+DiGDQs%cYx@a z3RNFI0{*I2COauS9c(xse26iheG{ArVR>uXh~8Gfno`tWV=6m#*$)Fun8{Z6cVp91 zn1=x9)^-a|jYPL#mDHjrv&;EOqYFcqwl0m;Oi&QpHORg=jrlo1G{UejvT1?zKC{)o zqiu1JyuG1Q9mOcbpOb+!HJQ#hO+S30kBTlCq^n?IuCI0*L-g|#K(#jxRzK9$myem7 zYru+>H8mXoLxCSZIu{!G3|i`9kze%d67_U0i8*al^b0TKhL9Iv7t+6I3~IIx};>#)6(wHlt6`z!VWr*NQVLrI!T4{pWI<)9n-R~ zt5_0-9d2)p-^V~!^d$yfH|hOR*f>3%@al|s;p^*Ys3Tmun{@~@3i@(UNWS$Hh13p} z_!xu^ALqftQzRYNjdxJ?W*R*S%H%@T-(wg z(fIleSPB0@Wkz2O(xyK#XP&vn=5^Q6o!-e=`0?Q+VmLi~S%wIgamUbhdYafzw}C1C zt;JOF;JpCT5A7nb&lQVZ$?$uCE$_DR7d*|8^ze?&?M@#XM|EdrMBld|%*L!ep?ryd zcbLg|WC4~(=NOmY3QlQ2ci&?1laGkuU%<{95j^dXzs?e`JnEzl)bES<4`?ZVF$V!8 zl(?`gFD~c%s+GvF(`lzB;BeFJXx(98eK6b&_T0ed>~j_|=q>?V>Ul0g1l>4gUhb@2XUiT zLduX0zuVpY=NDdzdGr?>Nr|L~@eS4;gOw#jjWm5cce@)fO}WpvdjZ1o(b+fcxOx;6 zh5-p)G|Y3|c5}GCM$5_jE~Y)RyE>lzV{tZK{ix-ARq%^#e=h#vo3D4hE!Ramg*LgP zt$aUqKlTg$wUKgId<0|OZ+5U4TRHB(b=)8OqMJOJ^no$|D*wvoqX@M;3bPF4@;Xx# zOHk0_H6h7}ryTd)h8Hg8Wk#j3C~dve99y008}&F}kbJjZlt#f5|A)X8syH8Ob*8MF zhl9J){WPv;CGTXc?8uu&*(iuWnJ;M}Pq_Jw8x6W~vKLnOCcmai5ASo9Yoped@&`gF zW4*+We8@Vz)Dx+R2--&I%4fmDLGY+7{xht32BOyM6p`X6;SO2|buiED*PlJgFOXJG z;@ff$G@DO5<+DY|Z;L-U`8eW6saK}(`pd+3LK?QfO;Nt7-GcloS8nB}vIEG~dl9pM zDzP(|p=(yQV7{C00%VqhcE;OXx24A%{J^6%SLZ_l^Er2zCB`;HwkgmLsMbhRKlrLk zgP1I*7tD$51;Z{~Dcg(5xCZIkx;ylj|4fI4sa$dqH$005e1krdpAcL#3J6Kl0ZK%JY_1^ zX!v7tpp&f$mzA7brIKWUV)&sTVckK?+?3U~whHqgF#{Z+44c?QZE;-h>d|-ZuoloKC-ADOXrd2$m3k^K;jM z=lY5%i=UH^m<=8e*Z*2jZmWH>tKfop60m{nI=Y+`=Xhu70q+>U-wR(%^sA%TQi7~L zT)8iQ8_gmWx*G*>GPW+{KDgbI-_>5bc=5fUkVv+`sW4&dFa`;4Gmn+L@%`DD_*%ij zAN3`Tm79FukwS7`#V+KZ2b*kMArEz1H`dad1?C>y+P1Pq?$neYK8n`fOg``?E8z%O z7^-YN!btJsHeQ$K;Cc{qn^yaJoy8ONx^YK&(AO`)3WPg_vcq|3L>pVqXYL^kUgcxo zVvfYz?O9Gz687O$(;7?C=w(-ZJTyvGQ~}f%>KOxXBfTao$QA=}FJLGx$p64md)+Un zn3|NwUR|u@M-r1{uloR{V7-pi|fxl zvg^lls5$NJ%wNyem-4zv=jsJf51&_lZig)SZJr6`_OYk{ka20DtMK>*M;NpYfRz>z zC+Z>4It1|;8#Avq*0#ERf=#hsX;?*)nS>hX5A1{6tMt<`-=db9g0Mf8<7ED$ZwgFc zUM8yzfibU-bdRHDUmfA@rC-)xc0bFpf&ie zP2{4Um%`U@_eNgNTp9HByxv`GcWoaie2R2@1%7j%-Ml^3!XU9y3*T7kMSBam&srA> zU%jhR%ey_SO_Q|b#NNJMEN{wa+*yvbjoSF}n){-q#!TUvuJA3f--&wREuWbFt39=@ z1nyodo#btDrofM%M^GJyTd&WejnCH%TFUbo@jW*FHhNt;Y;H$epIx@=x;4h+QIq3Z z@we0(P?iCLp% z<8S|_i=R#-D8_&#Qtf9kd#m@^262e;Wtr~ri3LtX zGcC2F$bIVVvAUk-pvFkFVvolw6a4Mq*yn{@X3^~vEJxGTD}IAn7g8e>ZLN8mlzkW- z7~v@F4Jc!2uY+I;Civ9DPNKI61_9$DWzl@QPoYAnK{j4z-z%2*M?eNH_MBwWEE z_2m_}0ASqy6zc7^(aar!1UigXp*POXF&(Bo!JKN;}d&m4u?b^p^5`kJ0bdwKI_V;!Bd8h)K0E?bB~&~1D6Hv5c&#Lf)v9h5x#HARcti-q zjcDU%S7krO-L@r4cKxHx+z=6|s515Rw-}ncw)b~T^i0^UTzu@wrCn_fK|u(G1mCHU zhd{iS3A@WD09+>87?n|uJZ^R@Ihy(?$<<$9MNiCyYVfNfAvHD}$NJjN^NN~1Y~L!+ z``vz?65BCM#G#!~Mc{QDp^8epx2D`)x#VT7`!ULYk9GqMp zA4u6HU8d_v~0YP?);vtV`$AS%VeW{0H247Aeq&URyK#x214Pfw) zV-xWvF)1vUEZleaYeJlA6w4=rS0GKcu$P)quEP>o5$L9a6sAY3>R!1R4BgA#7-v?Ckji0l z3o=R*MWdrnx~|V7*BC#~F-8jS1*+iL-0&5N2GX$0l zynxLYhosmh`%_skPf*V~f+wi9+ZKeWnABMe!rkPt}6%uON!`5atH$~)iUFZv0LoY0H8V-Nf)O3zagZn32 z3gwxKifr8Qyo&b-2nYA~?Glqnn>@}Od$&sY9$HLLeGcZE;3JT2d`=sjs}NO~{Lw~o z?b$|jBJ?XzVY3&fp{joK2Id z`m=bzn;v6>#5b4loEuGm(YW|mli;sH!%OL1vzEGnbIVSy84N9Vgc0P^cprdn1<_nY zZBMXD#;26%hX_H}b`q)?$UikM;`ew?5?hmIM;Q}vEhEJ7PE*dodnxF5n|uLa^P!sA zd24Ngi__{}&&vhLtCG|L`UVbcd8z9lt z4RL7Fzz?u0x$`e{c#*17wUV4EdgvgFk;2tm1wWKaNYSN|daxWGcm~c?PK9)Z%#^a` zc3Cd6{#9Mc91%YYeu-oiy4z*jMNMr->xLgkon)+z7TcG@r_b9R&*<7|<1`kDl(ROM$e=9}7sobo9`aJnANw7>$aPJq&06qODyZW3=n<)3LxdLHvS(0zfyGCCJj1q>lALPAIlyB+>5SAydf$cPcd++4`T3Nj+bq z5e)^~gV4O90WQXq>nDvQcZ$+}55|{)Pd>@z7HP$M`NZ{F4GPPuVLf1;sSiheQ1zH) zXVzOM9l$b3*p{Fy)#vc?R;kcZRkFM4&`X4F&YE4;csQ9A*}e+04`mDV_Tf{OdrEUV zyCBZd2ME7zV5H5WQUmbapw9#s3kWx}DAL4_e#46=j!O1xV+!5|HaM(%EQ6-#*(Ucc zmVwEe`A0)<(^o_7eOENi{^Hek-eCS{&F3rzCw8I>E>oB0L!2wnom5nW{lup`4gtJ2JZ< zgl`9qX@>+xpvDtA*Fkcp|#rl3N?%;^sd}l}vNC zTAeqH$w<6PB~#^hLE2#TQjMbQr>Aqv_f!4Sk?-(yFmP z^dDGz6beeyA$Z(sNX!6A;0J+Z})Ku&S6?_U|rv!zbem*s+ z;L9|&5U+t$-ZDoe&2C@`PtffOC09Ip4agcs2lfLy{zMbK+(<1}UhLONYxLk+Sd0&| zY_bAJ>60c+h&=2uonTln3+M6j^O|=B5CnJ=gbfliZ*dNunA7mf1ULk=_}rS12pY2s ztE)>QOS-w?`_bIBw;!dar#t(&_~T2;Mj)6cmPz$Tt>`|H#t z%HXTkNPi1vE6j~m&Jz+gm;ey5z&VKYo#mk)h>k5nLvGors0QwI63aGv&dhtO97X16 z#)#gVaFM}zeJzdM7lBVCdjwj!gmal$WUopn!vmkRh`oIC2JfzFg{ngq2Zv5%YP%_Ie zg$dW&{iCe`v3{rJ4CAn=px?EHHxZVv0tZ}*W# z*)Cqe-S&3MqVCrnIE(UUk|l>T!a}CzzbJ2Ze*ZY|hE$FryEzA{sQxFY7f1-!j#0$F zx(zJ!=3P=#rOqEn2{1AE#Ff-w&;%5T{RdZtgU_X35yK^qV!wK+#3HD8x)Z?~4$Wzc zZNr2g1a2hzdR^d}1;<9Uv&~StaM2JUC)ib-(oO#}YUUla_g}R&VDb$P^@%SxxUX8V z_(A&B`aK=3JTCL?HgI?3jrGe^+y*dbPhjD*=J{cI3vYcD({hWcu+QD&=?&7Uo-a7v zy*Lxq=0ME{I;ykdGUT{+<-85*f!)Ia5{JJevH^3Ht&H5#r?FC-tE*oX^)Ao0YPgs6 z&ge{?n-sL$ZC7cRepYAmRTfD8Yziv4-;P$`pLz+PKdUFpdf0{hxGFOXAn>-c;Als` zfA?jXA9odVT@rPx{#}gFg+t4<5IgRc{s5+%z(9U#YAQ5?eUh}g$i|$uu&}?hq*+Z# zNk_+9b?0-@VN9a~&Ja{_6e(U+m|GxLhticF0$O!C(~ zyLyEI6_$M!LN_lX-2$W)ymgH>Sm3aH9NZ#80!u3^RMhaR5D=(ks4D>C)wjGEnVmK% zYOdHRFh@BEU$dx&Y9baP6^nF24uT!l5#{5q)eFottn$bT3#1(M9Kl2Fmvj?rKLs%SO4t0*M?>>L%j z4W`Mmv@cO?bZ`LU~xGBY{0F9*z5!x9D>MQ zG?qtj?GLJZb0Pn$^CsNT&+D592hdg8A?^lEjD8wqFtc-nB`3QB6^>D$)?MU|1#IFG;a)F(oo2Ty8KLVuo_`i%Lb|hPF zCUGjZpwAurL_(%y}8C(cL!W_S=C5|TR+&@@J1R}cZLBj7eY5@sEn{XfuC{Tt%?KT>7==O|K})NpL- z4C64pwE;rSPT8GM2M2@4E=nl^3&J|8rp?kFp6Tx}f1j7kh7vKd%&4Q-^koE!? z>ByL7EEDkP`);gVW`$V&%no3+>tT}XO0U}UOH_S*_P7xe@g%U3lG~7+b3DF@Cxs*?iVR|I|AQNokUmHJPVV88Foj!_P^iLvvwc#nJnAR>O%B8P@?<5vs8-#AzkZU!Lh+MTkS1^<-^-r*3!SBx zH*Y8kMJG-!6Ojl(jic@BzZs-pR?e#4&jY^(iGv1OZh9M*VQ+liXBKru-N&{OzX#K- zl5tTyPNtpyIl}tfMv~n%H9J>ubxy~x{K1@?Z#_FmQJL=HLyR6k3n$ z6;r%Ovv)!$7QviR`=j#Hy5IE$9oVm>Z-jOec6n}5*|QK&8Wo3op=K)%_cq_pFsxeY zyjw(5vmWckRfhZR&x02I{d>ARL6^=ote*ZfjygE+$cZ3-lbij?yq1U~)T12pTyQ!L zkK5M+@8>&)tBZ(cg5hSP=*KCex?d}`T7I3ZRi}2yB?61`C)~5>+1-1*{JLBEnSe~H z$OLAA#=&(7m`g8fpyU^QGz|^G3pl7+<%@r>De(vE<`By@t%}*;r*tlC% z4rS$kvlxC^{O;Z^=M(;Vk_LDLrq?rOy9d;5?Qsd-^7SWklRgSS+bJ$pkP!jesNFuT zcjI@XFjNkSB|Mf3-s1pPBi-Vyv}-d(2U~0h^kb=Y)BJ09RSXy@P3XXn+3rIh5r#sob*yxN~X zF@wFUb;Tn}DX^XgTdQ4xOWvT7$?J_ehDxC{ z0XIzwI{|Jco?K|2`xLE7Qk6=MW@n6gB%uvX3zhi>CRj<>6 zB6PckcMr#hteL4gk3do%pCG%2>xp9p{?_VtWM>-$#~ z^Cc)FR&HI7Y&*{7n3?9jb_`E^)mHXw{hC}y%~Sp}+!JM7ZG|?|kN2a~-Rh(Is5XMmcS;bkHU7VS0y}X z)r9Q7ydy?#|IiEQ_w3O`)yXaiWSJ|=xa^d}rxM*Jrp=7}NO$t~;&(kzulS$UYP2+V zvFMaEMSeZKn+UP5CkGbbyZkY5laNJ~o?EMzApRVU)%R8kk#0=}ozwYBqiQj=ffZhd zo2w9S?cg$=cqd9Eyf6uOAuIW=kXhLB(6x179N%|$w!|T;+9O@dN>?yRiK;9M(o7ki z;(9;BsyQFk;;q>-e#l7> zX14+qm}zi{bXTqH0eG@W?M~q`=|zXXFMH#c@fNh&&N#KA`s=mFz{FWq!Q~HZcMP#c z*oQbDzogBul({x_9E9boVXwnZg36;g3T0X(%@`fb8+5hUV67+Fy>Cajxlph@(JxUt z-%-W6SbzIb9iSL!Yqv79gi~s&cj=N5pCkUGjpxXnrGYn z*e@G~iCq1T%q2(&;pY0AS~g`+b$O&HzqWMlJuSC%tzD%j>GAR7SBj)GpKr_!3t!xN zX4l9EVea)yp|;Xn+2zK<-foAOkdYdv=f)~9_oWM0Jy+mI#C=f{8FyryyN$_sDOIh@ z*13Xyo8K&imu9X9Xu0Y4gP}N>OW;R<_jS|c*R!VUS{u%yE^ib!4x&=it-HPo&~vX5iha4dAIfICfkWyRbRag->8iUYAO*%z`UrVs)Ocz8UPQaK_;O;_B6*@nd3 z)vs@IQ%K+?S^~%9*+AOos*2^#Z!5UP_0K{c!<6F!!D;{dfU&y7iwOh5urFahf3|Xn z!v`4eeyUy!=+C(;YihKivXSL?{g8*lZZ81VIug?m%W`owB1fR|6X90nm(!FE=p+ak_3D5E zFyL5%WkQn~5Ul({#Aaz#d}sX2jHThhqDd^xw{5~T^saA?9c-1%OmM5-J@i&Rm;#o6 zUD*izpQsyq^yDl?TgEy5P)vxBYqeu^LU2vn5i#UDJuvNm$&cK1C;ZEvX;+mPvo;@4y)vm|b-hJwG zT6#kZ5)zG)^yg11wvJuHTIo9fgnNgrcm4h`wx#!sW%E#NgUeO_u!q|i{md6|&PZij z2)1eC+mm$vSd=3)d_0bHudydi|;gME51T~Bomy{vdelkYj zL7nnzLD%zZgw5`(UF~h3VQRiUAVN*O*^#rQeGvJKPI&zs(OLDdo%Fb`$n4|GM%{AQ zR@7pI&LGg?*XV|kPyQN3kjK6j)5Ew1;f%1|honrBnGH*wsa{%Av#fqZ?$~WF$Y$Nu zQ^VNxfuy8n*{+{W!v+!*OL`8ezEk{gBc5FnOaAc6uMz2{D+;ggp8K`DJZ zAX|eoFDc`ZC0!E&t}TE7Yln9a&RX*qb=o1m6H9k-b8y`};?FLlqo=>$zPvNhJ(+l< zF}7nDRx7!s?}=o5K|jH8IGEGjDs9NMNOmn2`4@rFoNyEB7A0t+<_lO0k?8e5&JU^7 zbK%(?5DPC)a=zvOg(OPL;QotOMgj&RwS1wbm1|*-bJl@>TBw)<(9q^Lli~E!5!vd@ z+;R3GfSdzNrSAz4b}Gj1$wv0*>)G&Vp)<+->yYlUZ=tBmV6V1~N+BlyL<)ex1pEmI zy*htkS$a9lPet6nmbo~AWzPGbk#qnMXG@9~QN74LY{9_L&9J@rgU|m2dqop`4#I0h zseTEeX3;{dWrae5=A*ueYkG$EF}jXyEHNPVNXv8(Yro$c+$)CpCiE$$rx5E+_RHvv!Y9Y0=08}jFBZNsUJ*1vFPKx;I~HhT+YNy8 z3k1JM0EzSRV*Inf6#ko;mNvvHvB44BmmBuo02bwIi+Dk64&2TW!gaDC7irx;b&>nP z3Z{R4b9YVRR!0Yf^_Gep1VS`iY8BO7Lw;!L& zdham7u=_WI#;FJ|h~1sn7*8)0VIIAxM*7$GTC_Z>u9uT8E6cgqzzV1CJKZ(!#C!zr z3Di?-cj~|XN)4l##0mp*8SO9<>oteE?CtAEv3!{eGxN~qfatqx&*Bs)3RYpHyHo2PjB+?>zr*UXSg9hY{gh`JHNEikjZ2bLgxL2y}gaG*IIvn&BCNgq$& zcMDK$7?qCK<@*9p5if2GXaKWV@beGgMrBPyZ0{#}Wv-rOZV`fFg1g?iw%gyockQp} z>eRmM7kZdgBgoJaowGT|ouoqG%x$-n6K1G5r@k^-u5AvvDT90Z3yY&AeDg2klu>VF zY{4w?++CYg$elL}DLwF6pNw1Uq(&I+=!<^bzY3B_$P?y`jGi^;7SUhKgZ)W}mvc$< zS-L9X?l`=hpJ*Tp+cs+gT$P<>6$@~0?NVrR87Go?sE-5x#M^uNlmMsFB~GXTs}$q; zaA50OpCE0sHYE}sT`6VT$-2&2-ujW7ex9qK%5em76CKaMr#KAh5Bil`grkXcc`b%) zeV>JlZH@WrZ6@v~$ee;czr*FdXuPMZznwfw2i25%|AgbzonG2;SL+%+A<9T;-&6BV zT%oj>)Eq7BEnJkC9vqer-+Vn^t|EJ9za?|~= zLDp!$qyqnFcb8uL4u#1yC&x$HO|?gq$MZ8Imen<_)}jq6iw}I2#@PpV8XsMM^oo@y zoyj2lX_immS;&zF)V_EZW}*Izq-Dc-v{!;&WhXkhJ5Pe)`Db_{wg=4o$Qri2qv?9r ztf*t_fU)J!)o%;&m-VTbqAs=z6tGP{o;R>N66ivT9>X&q)G0u_MwI|xAgZH4<~0*n zfox^QqZZy1vC=`#eq^6A1q!1#E}UT>;AOi)_r0*rS;|kd1C|mbJ6%3X&Sp*5ZIp$( zJT3`CBhzbPX*5F%!ll;JOpW!(vGA~M`XVnk@W4R^3-Bfp0Lnc$@QLyyx-4)*#{`~@ zwR6GV0fy+uZmk!cZuGeVMW_xMD#mlHE*z2mjE!Ig=(a4sW1Z~L#whh-jm^*;+2(CJ`)?NZ5@vyTS(q3n=R4e?p(?*Xck)ni z`MV>5wJ`R127+uFZTW%5YP%-e(aG{+0dL0XWUf*oafT+yNYb{vB1H3Zz2M*1ZC=MR zYqth8)%JRtokilaAB>wIjI_p>Irdtf@zpyCj&`^&CY66JN#UW7@l9WsUqimZgia1@ zOIyaVifc3Z+7#WU&S_O%-}SpVWt8Q1jJWFlmB9zOEP*p0t|}nd>t5AAHB*?I1KA+_ ze_NRK$?|9xK|W0uU8C&TdB3*&q@gtGqYc*KkvVN&`fRbPk*USV8R{nE?5`qogp*Vlh8l=3 zs3uM#wv45B*Hyp1siWvz&RAmoX~?QGec$QZLP4pdfk%DHWphnJHC19;tYYzoj^_Cg zPrG@+LdjWj7XN6^SmpTX{tkxTnwHhMlYwu_KAEMM%@PwWPTtVFciL|n(tNz3USu_9 zKnGT(+RD1VQt%}b zQuNcOcg%qgWuU*F!^3UnFr36wX@cO8GLFSx4%U6^-!IKwv~lM-_mg+9e+9KvxuRvt z%^_)`qe_gvmi~O(*AFgvOe0WhP8+F9?qwWzZqZyX`W=&PZ5Y;kHW!TG8py&n z>EjX~g2B&_oN<8qFxI6mKjnyFFmt#|Nlp=A#Sp%jt@8mT#Jsc4e6o%)WsX(ggDd$U zEBDb-t^=X)xM}e3`|qKXE=)vaBzo+W658XjHj$OxC|%SL>QPH>kt||!oS@dRgXPYI=!yp zSNrO)h(sQ%$y1HzyS#iI@xsqN9X+Yvs4vw_QM<9Q7`26@jC7hthJ)DM!##bw z$-2TcFx$^tA=xw2j<-A!8X8z~3yaz1eA-z3b~kD|7F9=jrA+z3HVcQ!A1vv6*aspj_9!&CU3m~Pd3XggOPo?BYf9jA-z*N8?a=CpxR+i$b+j0gCkYo_ zzJF{7SU+21AgUB;n`7PNY`iG>L*d=7)MxbQ*?2g5uNK(KSpB-<7++E%5(vxPmDVm( z$6hCDeapqJQ6-+o{exzx@6oZ&s^k8Z(L^dp5h!DRdn1V84uYVr#B@Q{%U^I!#@diR zJBJEa8a8Ag*srJaX~bst$MZ9u-i_Mf`?dpR%yf6)6HopxdoZZzza&{mNNWF2hGGAI zY{&k66mlML24MN6eEu3Q@1JNr-Ttxcu7W)GzZ;^hhT@F1c;!DwNJ0K7a{tdv&;I@B z{}b!9e;?()=g{W06UBNa0x(Y?OF8l*Bj}gto#fv`{$y5Www9GuRTY($$!k33Hs2`! zc)4vwG8*JPdkf`o1ncZ=t7$7|tIhIobEC*~Xsajar*f3>zyU%eFxX8KGeo@`q+xs#qXaL|VNFrul3(tH2 zx8=e#ZE^7+wPGCHCj#Cz(wd5jM@L8Uqay#n4I=qKQs%?MV__qQ1`Kp=UZSt8Ed%^W z0u1p-S@6)mHNLu9OP6H`NkEIBHaOkC^UdSn|Lg{67&f=MHnPSG9Fl{e8TQ!>F-Eoz4Ufy|%Df--PwA`?6o8JyHMIgTAR24`;L3R>s9yq1-<`>s~XJ_&)BXADW`C-`^ z)F>P_?OB^#Um#+5-S71Vjr*Vjri%QLEqqvw4jQ*+2Bdu3n4GK&re{B-vGJ_2Ow(

}8vY}u(vjAI#e9V>%I}IKy2gGe^V0XjESB`$JGKObqS@N~;UhgZM z#X$EY>gd#*M{**kzfE1Naqy|tfZ9sQf~8)=deNxmiOO6HJ;_X*nSsD_w>t0YJt@hz)4)oQ|z9=3kO$Xo7*iJl0 z`)Ty!TACmZ5O0JgtXWY{5jF4eI21&TsHRI_e^VpY9?@ON7-X6%JrJO2mj9$RH7NRhIAP;7vC8bEtn)aj3jzh~z)CbSh-LNsS4#82p+|$bR6s za@{g`il7tc$p?IGr--+zK0j6S;!q#gf@+h~i;sTq`I70ad}=Cpm*l`RZ_}Mk+o3q}o<@jnhMZM< z6D@~mO4Wu3HF}OX9e>n8Q10HdyLhP4h@S@zh7}g?djn7M;L$G8tureviR6IG%DocW zWdR`0Ir4==oW*yU93@=;N1r-0ZCzDCUS4WireQ@VMB4}xK_E%PLo)I{!KCfeUxQxn|ih<+=_nIe81Fn5i z(Mb1i9~y0cGdHlcW!7wTvaZjk=~-q?I2&!BTLwOVee@c;rr+AOJN7FsAe-AElaZO)MzwkMG;|8}Hiu5c?& zOG^grIH-b~zTLJd%L8Wp&OwdJJNTSa0GB^uDHD-%wviJahUR3OJh^pVIDI` z1h?X0(sOJyMHoR@91V zaWCb{$5zn_k#t89n;LoSSqV_gd7HyxKMm(V3%wo$SNuoB{A_O8{%`k2o*hZo1o4>T|A= zsoCfxT1{8oH@Lj9x-2X#Sa#+w$xH9F=ya=Fi8F{td1R6b?sH~-1zsY(E80tDg5Mq zGhwPG6%&-IOXB!#YwQ0x^FGEVTtC2!q!EDplI`NI-PhJl5~(v4AW%v@lU{FDN{R@7 zFh-G~VaL5~#SHR`Eyls&cr-3X$73oD)*2d6`^n5Z$YZKaNB^!}TkaMe z4;WrvLynXHjxIe>zV+LvC=h;(UpzA2#}>j2=Iq~60Hb1<@~00F$sXOwPG1wk+i&$u zbo`oswso8>&OLXsV7hERnVGD5bWX$TG9$J38l{<|w=3S+cU1m*#TnLcEkL~CfxffT z=HG8?On~g1Q(5Yipv&4sR?2*FyK{FWowvhM)V~B(l{X8xcrsi`g20cN`bNj#2P{il z0a`-CXQf)Mj*PhT0q({HZpBX;pBw6qHy_@FQtA(4Aj!{UoHgzVV}ud5&vSAGD2@&_ zLTa10CawE4Rdekagq*#}0V(RgTTruKP=#GhD)0YR+Ps_48R&Bk!Pui*c$q32&l5p= zIrCw#<()2vK1-?Z5ZjV1rUlE|zDU3I+^_XR>3NdDm(v@7@A!egwCS1pE*2=Mkr6)49jcC>7^9X0rzl<~8_x1_;e@c1BQ zGr7U%u6)9?@G7a%te$9-(Mv2e_Dm7su_I$PCBO^a0z)sC!0S}kM@`mo^u=QT zFx6_tfMsi;~^EeN@h#G){x40m$S?M_X%cg1tMFcsU=PPxry z_2bt<>g-n92qMzwtAOYs8$afuFhlbdOZkM|ZjeKzK!4&i6$s}0Q@3$cS0kQza%dq% z?l}CW*ZvV-+x|c4EFM}n!bFs~5v)*@q$u#I?-Fx^_4{RC@sCj9D>>Q@pLjLMB4ui# z;6!Apao1D=m{=j7w(9)Gm958+4N7k!h+hY@!PFU>)M!P7HEaW2~)7u;7;oICUV&c>wl?NpM zPEMz+T*^STnKf8;28`KtT43mz)Bt|1dz@HeJ$A{9Lr$--_lqYO9{VN{f+2lp1MMGN z1jsNoeY_*>T8N)x$W4L{Y_-(P?%ej?DbQ2 zdlFm+ebyy7~H&)-NL-(Px#SLQ8Nb;=STP@13}`6KCu~mALXu zeRZR*MR=mW_Sa?suvxcdNObGK;cO+V4K;{3ewPRSZlK&guRAI42k^MICxu}bjmq@_lQl}B)jqSHH*j&D|S43MIr*XrzaoNTHRDs7Pj(Rgyab$(8{ zYm2wDtlTHoX}4fi-FxXz%+BwHbb!UGjYFPV1T2p*w@iCSi*udu`p#|jF@x4up4Gl@ z>=6zrmQAVs5dS8`$!J?Jg8Ch{FFU*rXVX$^E1aOc-mTkbr-DwWqW|d975tBgGK0>; zt2C%XyGPynhmY{JLEDwL=yvT7o&>k_2h{BOvu|8vd>36rH-sB75DJyRk2Yk#mK0+T zJ1Vsg;QXAbEjYKHNh3(D+84xEB<4Bk`o`hL3X)nhIYH*la0$KF6<;Jb9nD={RH)P(0= zB|zgf)83FB=X(y13eA}p_uzRwvkqvs7`5LO$NQ3_Y4?Kz&t9*PZ}mF`~-BO@s$rHe<>o}(K&lad(2Xc z3Z(-VpZ{TAu-7}#6oKk}Yo)-6($0lQ1AZ4fd-_+P%9{T)TH<9wfqIabR8$m?VsMNY z^B8!=SNWsW(zLTXPn&_|`ip?+ zN>)zAp8JPU3?}*A2%MFTod_K{`pi3h(xTZUu%X)ldooD-7pm+s1T=I~g?x22y@Hq9 zu3olmdoOrq=4yN$`l`+_7z>N-4NBwjby>6Z;MOCp{;A7f?y#Q+{7a>EIdiLxH6B8Mt-_rGZ?Sm}tV*|bgN#KOo) z4?g%Nq{pW|!~nPwHV&=(o>v_bHdF`IynR> zL~i8<-=DI|5`8gn6)OC1X3N}XtZIJe7aY<12JP@pGrj-lpoyo|afW^B?zfjD6FBk~ z!f4aIVs>5b3tvg#-|0`2uA}e*SFSjbX{kSd=+x!hQiq+hC5J5fLq^D)oZEKyIcCR_ zE5eZJcM_IT1jbA6WjM7~hkbwRjZV(0&I~6ed7=Et(T{mrjvlJJrhR`HS_20K5<77?4F?=d;3_uJF0-pOp$(wt*P6|K{Guwq{A%JZ{b4`Y+Bi8JOrCvGHRb#=0=+hKKyT zj319a4+@C($*0HN3Ld{B zUpz*dK<)W?ABQAqW~aQA9?n}Ft>4`-y;L{GACV}*5z@u#n?m{M6F_QOHi;SYwg&#V zW4+MP4Rc2di`m#1BJ?<0ul(X()ycSOX>5lGFY|TqW7%(Z`K_M4@A=`TEAj~XlpIUg zTifa&*lsU7)kFVQ$l0lbU8g!=vpwWi_C8+P;gQBZKd3L9vYiQZxm=YoAHZnc^ANZc zz(tj^70y#2)SYTlzPOL8Q#YPKKd6%=WR8`uf?Cy29vhpT=x5}HQpGG98bxZ7e_Z~< zTWL&yy-&=miiF5_*V97-8yBw4@N;MPXmtl`1q?@Ms_zy}K;VB-9feeDJSwAs7QlK2 zZpenIkp9F=S^SUd``?RHJuO_-F|t|FQhqb=zTB&2cHuLhf^TtwVrOYt2}?XZ+AR%9S)!XUdW@AsMhtALTalV6kkpfxAwVLbO~dK67y zn`@1}bS3LkxlWC9#|?OprjXDdn#K?MFC)yFnnIunhHWm#n-SsaLFjZsRYi)W@>$7m zY)u>^(+hwJ?$PALiU99qh7?F;Ow2_(Iy!KXm7iZtRu*HzZR$)H%|8YInCpTvKut|e zB$At`sAyE)X@N>+Rwh4*tHk+vn*!7`cPv(bZ%_H~)PzTqtvh&62KRR>28Y89j3G40 z`?@+&&T@KZCUcJ$@$vDEdJC(3UY?#;+0Nd~*MZ9R_N$R$ou99%scHM%Zx8ze8=*1O zaz1Tqn*Rsw+pypQg)h0QfBF-Z4pDyT^eJe#S=AVfKrCxj4Bpv%WC#AsQ&z8gv24^<6nd zOFO@OieGI7H@blyPhOKxehFXtJ2?m+Kjr4;RtziVv8~^jU%QpsFeBMqh8vDo^XGfP zf9eUPSsJXy3znL%ED?zU`^Ck@^>)U53OENUOUKxuQk^-jBsMm-u9tUsASbqUc;wsH zL;>RDkiDHAe}aCcp!|11kNMQs2wfeWNBkRDVK}qwJvVyS%CUQLlO?JzPS>r*WmTE$ zN&|R5#A=We6X)hWt5~*heLfqK0-0alXw2{I?0)54R5Fa2K-cDL1fm=*0XweuCAX6> zPu?2ZeNTeJ`wbq;rzJnrim*x$V~0*2GWK>ffT7n3!%{IhFotAZ%=_ rlM^GR(2yW<;mQgK1d0;kzQOyOMV*uVG>4g9QB literal 0 HcmV?d00001 diff --git a/vignettes/pr_review_checkbox.png b/vignettes/pr_review_checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..8fecef839b05d8224d87950d366258e073bdec54 GIT binary patch literal 130861 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 bCsx-~7yK4SuB(YQ(gZ%?cbxq7g>U~SEpVRm literal 0 HcmV?d00001 diff --git a/vignettes/pr_review_guidance.Rmd b/vignettes/pr_review_guidance.Rmd new file mode 100644 index 0000000000..db4dda1640 --- /dev/null +++ b/vignettes/pr_review_guidance.Rmd @@ -0,0 +1,102 @@ +--- +title: "Pull Request Review Guidance" +output: + rmarkdown::html_vignette: + toc: true + toc_depth: 2 +vignette: > + %\VignetteIndexEntry{Pull Request Review Guidance} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +# Introduction + +This document is intended to be guidance for creators and reviewers of pull requests (PRs) in the `{admiral}` package family. PR authors will benefit from shorter review times by closely following the guidance provided here. + +A pull request into the `main` branch signifies that an issue has been "addressed". This issue might be a bug, a feature request or a documentation update. Once a Pull Request is merged into `main` branch, then the issue(s) can be closed. + +Closely following the below guidance will ensure that our all our "addressed" issues auto-close once we merge `main`. + +# Review Criteria + +For a pull request to be merged into `main` it needs to pass the automated CI checks that will appear at the bottom of the Pull Request. In addition, the PR creator and reviewer should make sure that + +- the [Programming Strategy](programming_strategy.html) and [Development Process](https://pharmaverse.github.io/admiral/dev/CONTRIBUTING.html) are followed + +- the function is ADaM IG compliant + +- the function does what is intended for (as described in the header and corresponding issue) + +- the function header properly explains the intention of the function, the expected inputs (incl. permitted values of parameters) and the output produced; after reading the documentation the reader should be able to predict the output of the function without having to read the source code + +- the function has an accompanying set of unit tests; for derivations these unit test should have a code coverage of at least 90%; the whole package should have a coverage of \>= 80% + +- the implemented derivation is in the scope of `{admiral}`, e.g. does not expect company specific input or hard-code company-specific rules + +- meaningful error or warning messages are issued if the input is invalid + +- documentation is created/updated by running `devtools::document()` + +- functions which are supposed to be exported are listed in the `NAMESPACE` file; this requires an `@export` tag in the function header + +- examples print relevant source variables and newly created variables and/or records in their output + +- the `NEWS.md` file is updated with an entry that explains the new features or changes if the change is user-specific or warrants a mention as a development milestone + +- all files affected by the implemented changes, e.g. vignettes and templates, are updated + +## Codeowners and PR Guidance + +As the creator of a PR, the assignment of a reviewer can be unclear. For most PRs, feel free to select a few members of the core development team. These individuals scan each repository on a regular basis as well and may provide his/her review even if not originally included as a selected reviewer. + +Sometimes, the development of a function or a vignette falls under a specific-topic, e.g. labs or PK/PD. Please ensure you include an appropriate reviewer if you are modifying files that rely on domain-expertise. We try to maintain an active list for domain-specific topics that will automatically tag an appropriate reviewer using our `CODEOWNERS` file, located in the `.github` folder. If you are interested in being a codeowner, reach out to the development team. + +# So much Red Tape! + +The `{admiral}` development team is aware and sympathetic to the great many checks, processes and documents needed to work through in order to do a compliant Pull Request. The `task-list-completed` GitHub workflow was created to help reduce this burden on contributors by providing a standardized checklist that compiles information from the Pull Request Review Guidance, [Programming Strategy](programming_strategy.html) and [Development Process](https://pharmaverse.github.io/admiral/dev/CONTRIBUTING.html) vignettes. + +The next three sections give a high-level overview of what a contributor faces in opening a PR, and how a contributor interacts with the `task-list-completed` workflow in their PR. + +## Open a Pull Request + +When a contributor opens a PR a lengthy standard text will be inserted into the comment section. Please do not alter any of the automated text. You will need to manually add `Closes #` into the title of the Pull Request. You can use the Edit button in the top right if you forget this step at the start of your Pull Request. Besides that you are free to add in additional textual information, screenshots, etc. at the bottom of the automated text if needed to clarify or contribute to the discussion around your PR. + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./pr_review_checklist.png") +``` + +## Create a Pull Request + +After you click the green `Create pull request` button the automated text that was inserted will be turned into a checklist in your Pull Request. Each check box has been drawn from the previously mentioned vignettes and presented in the recommended sequence. These check boxes are meant to be a helpful aid in ensuring that you have created a compliant Pull Request. + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./pr_review_checkbox.png") +``` + +## Complete the Pull Request checklist + +The check boxes are linked to the `task-list-completed` workflow. You need to check off each box in acknowledgment that you have done you due diligence in creating a compliant Pull Request. GitHub will refresh the Pull Request and trigger `task-list-completed` workflow that you have completed the task. The PR can not be merged into `main` until the contributor has checked off each of the check box items. + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./pr_review_actions.png") +``` + +Please don't hesitate to reach out to the `{admiral}` team on [Slack](https://app.slack.com/client/T028PB489D3/C02M8KN8269) or through the [GitHub Issues](https://github.com/pharmaverse/admiral/issues) tracker if you think this checklist needs to be amended or further clarity is needed on a check box item. + +**Note for Reviewers:** We recommend the use of Squash and Merge when merging in a Pull Request. This will create a clean commit history. + +# GitHub Actions/CI Workflows + +The `task-list-completed` workflow is one of the several workflows/actions used within `{admiral}`. These workflows live in the `.github/workflows` folder and it is important to understand their use and how to remedy if the workflow fails. Workflows defined here are responsible for assuring high package quality standards without compromising performance, security, or reproducibility. + +## A synopsis of admiral's workflows + +We recommend checking out the [README](https://github.com/pharmaverse/admiralci#cicd-workflows-for-admiral-r-packages) on the admiralci repository to gain an understanding of the workflows/actions used in `{admiral}`. diff --git a/vignettes/programming_strategy.Rmd b/vignettes/programming_strategy.Rmd new file mode 100644 index 0000000000..1590892d71 --- /dev/null +++ b/vignettes/programming_strategy.Rmd @@ -0,0 +1,762 @@ +--- +title: "Programming Strategy" +output: + rmarkdown::html_vignette: + toc: true +vignette: > + %\VignetteIndexEntry{Programming Strategy} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +# Introduction + +As `{admiral}` is intended to be contributed by the user community, this +article is meant for developers that want to either expand `{admiral}` functionalities or build on top of `{admiral}`. +In order to keep the framework robust across the whole community, +we have defined a programming strategy that should be followed in such cases. +These contributions could include, for example, company specific derivations of ADaM datasets. + + +# Functional Workflow + +* Overall programming will follow a functional approach. +* We mandate the use of tidyverse (e.g. dplyr) over similar functionality existing in base R +* Each ADaM dataset is built with a set of functions and not with free flow code. +* Each ADaM dataset has a specific programming workflow. +* Each function has a specific purpose that supports the ADaM Dataset programming workflow. It could be an `{admiral}` function or a company specific function. +* Admiral functions can be re-used for company specific functions. +* Each function belongs to one category defined in keywords/family. +* Each function that is used to derive one or multiple variable(s) is required to be unit tested. +* Functions have a standard naming convention. +* Double coding is not used as a QC method (only if absolutely necessary). +* ADaMs are created with readable, submission-ready code. + +# Functions in R + +## Function Design + +Firstly, it is important to explain how we decide on the need for new derivation functions. + +If a derivation rule or algorithm is common and highly similar across different variables/parameters +(e.g. study day or duration) then we would provide a generic function that can be used to satisfy all +the times this may be needed across different ADaMs. Similarly, if we feel that a certain derivation +could be useful beyond a single purpose we also would provide a generic function (e.g. instead of a +last known alive date function, we have an extreme date function where a user could find the last date +from a selection, or for example the first). + +Otherwise, if we feel that a derivation rule is a unique need or sufficiently complex to justify then we +opt for a dedicated function for that specific variable/parameter (e.g. treatment-emergent flag for AEs). + +If certain variables are closely connected (e.g. an imputed date and the corresponding imputation flag) +then a single function would provide both variables. + +If something needed for ADaM could be achieved simply via an existing tidyverse function, then we do not +wrap this into an admiral function, as that would add an unnecessary extra layer for users. + +The following principles are key when designing a new function: + +* _**Modularity**_ - All code follows a modular approach, i.e. the steps must be clearly separated and +have a dedicated purpose. This applies to scripts creating a dataset where each module should create a +single variable or parameter. But also to complex derivations with several steps. Commenting on these +steps is key for readability. + +* _**Avoid Copy and Paste**_ - If the same or very similar code is used multiple times, it should be put +into a separate function. This improves readability and maintainability and makes unit testing easier. +This should not be done for every simple programming step where tidyverse can be used. But rather for +computational functions or data checks. However, also consider not to nest too many functions. + +* _**Checks**_ - Whenever a function fails, a meaningful error message must be provided with a clear +reference to the input which caused the failure. A users should not have to dig into detailed +code if they only want to apply a function. A meaningful error message supports usability. + +* _**Flexibility**_ - Functions should be as flexible as possible as long as it does not reduce the usability. +For example: + + * The source variables or newly created variables and conditions for selecting observations should not be hard-coded. + + * It is useful if an argument triggers optional steps, e.g. if the `filter` argument is specified, the input dataset +is restricted, otherwise this step is skipped. + + * However, arguments should not trigger completely different algorithms. For example `BNRIND` could be derived based +on `BASE` or based on `ANRIND`. It should not be implemented within one function as the algorithms are completely different. +If `BASE` is used, the values are categorized while if `ANRIND` is used, the values are merged from the baseline observation. + +## Input, Output, and Side-effects + +* The behavior of the function is only determined by its input, not by any global object, +i.e. all input like datasets, variable names, options, … must be provided to the function by arguments. +* It is expected that the input datasets are not grouped. If any are grouped, the function must issue an error. +* If a function requires grouping, the function must provide the `by_vars` argument. +* The output dataset must be ungrouped. +* The functions should not sort (arrange) the output dataset at the end. +* If the function needs to create temporary variables in an input dataset, names +for these variables must be generated by `get_new_tmp_var()` to avoid that +variables of the input dataset are accidentally overwritten. The temporary +variables must be removed from the output dataset by calling +`remove_tmp_vars()`. +* If developers find the need to use or create *environment* objects to achieve flexibility, use the `admiral_environment` environment object created in `admiral_environment.R`. All objects which are stored in this environment must be documented in `admiral_environment.R`. An equivalent environment object and `.R` file exist for admiraldev as well. For more details how environments work, see relevant sections on environments in [R Packages](https://r-pkgs.org) and [Advanced R](https://adv-r.hadley.nz) textbooks. +* In general, the function must not have any side-effects like creating or modifying global objects, printing, writing files, ... + +## Admiral Options + +* An exception is made for admiral options, see `get_admiral_option()` and +`set_admiral_options()`, where we have certain pre-defined defaults with added +flexibility to allow for user-defined defaults on *commonly used* function +arguments e.g. `subject_keys` currently pre-defined as `exprs(STUDYID, +USUBJID)`, but can be modified using `set_admiral_options(subject_keys = +exprs(...))` at the top of a script. The reasoning behind this was to relieve +the user of repeatedly changing aforementioned *commonly used* function +arguments multiple times in a script, which may be called across many admiral +functions. +* If this additional flexibility needs to be added for another *commonly used* +function argument e.g. `future_input` to be set as `exprs(...)` it can be added +as an admiral option. In the function formals define `future_input = +get_admiral_option("future_input")` then proceed to modify the body and roxygen +documentation of `set_admiral_options()`. + +## Function Names + +* Function names should start with a verb and use snake case, e.g. `derive_var_base()`. + +| Function name prefix | Description | +|----------------------------------------------|-----------------------------------------------------------------------------------------------------| +| `assert_` / `warn_` / `is_` | Functions that check other functions’ inputs | +| `derive_` | Functions that take a dataset as input and return a new dataset with additional rows and/or columns | +| `derive_var_` (e.g. `derive_var_trtdurd`) | Functions which add a single variable | +| `derive_vars_` (e.g. `derive_vars_dt`) | Functions which add multiple variables | +| `derive_param_` (e.g. `derive_param_os`) | Functions which add a single parameter | +| `compute_` / `calculate_` / ... | Functions that take vectors as input and return a vector | +| `create_` / `consolidate_` | Functions that create datasets without keeping the original observations | +| `get_` | Usually utility functions that return very specific objects that get passed through other functions | +| `filter_` | Functions that filter observations based on conditions associated with common clinical trial syntax | + +| Function Name Suffix | Description | +|----------------------------------------------|-----------------------------------------------------------------------------------------------------| +| `_derivation` (suffix) | High order functions that call a user specified derivation | +| `_date` / `_time` / `_dt` / `_dtc` / `_dtm` | Functions associated with dates, times, datetimes, and their character equivalents. | +| `_source` | Functions that create source datasets that usually will be passed through other `derive_` functions.| + +| Other Common Function Name Terms | Description | +|----------------------------------------------|-----------------------------------------------------------------------------------------------------| +| `_merged_` / `_joined_` / `_extreme_` | Functions that follow the [generic function user-guide](https://pharmaverse.github.io/admiral/articles/generic.html). | + + + +Please note that the appropriate *var*/*vars* prefix should be used for all cases in which the function creates any variable(s), regardless of the presence of a `new_var` argument in the function call. + +Oftentimes when creating a new `derive_var` or `derive_param` function there may be some sort of non-trivial calculation involved that you may want to write a customized function for. This is when creating a `compute_` function becomes appropriate, such that the calculation portion is contained in one step as part of the overall `derive_` function, reducing clutter in the main function body and assisting in debugging. In addition, a `compute_` function should be implemented if the calculation could be used for more than one derivation. For example `compute_bmi()` could be used to derive a baseline BMI variable in ADSL (based on baseline weight and baseline height variables) and could also be used to derive a BMI parameter in ADVS (based on weight and height parameters). Please see `compute_age_years()` and `derive_var_age_years()` as another example. + + +## Function Arguments + +The default value of optional arguments should be `NULL`. + +There is a recommended argument order that all contributors are asked to adhere to +(in order to keep consistency across functions): + +1. `dataset` (and any additional datasets denoted by `dataset_*`) +1. `by_vars` +1. `order` +1. `new_var` (and any related `new_var_*` arguments) +1. `filter` (and any additional filters denoted by `filter_*`) +1. all additional arguments: + * Make sure to always mention `start_date` before `end_date` (or related). + +Names of variables inside a dataset should be passed as symbols rather than +strings, i.e. `AVAL` rather than `"AVAL"`. If an argument accepts one or more +variables or expressions as input then the variables and expressions should be +wrapped inside `exprs()`. + +For example: + +* `new_var = TEMPBL` +* `by_vars = exprs(PARAMCD, AVISIT)` +* `filter = PARAMCD == "TEMP"` +* `order = exprs(AVISIT, desc(AESEV))` +* `new_vars = exprs(LDOSE = EXDOSE, LDOSEDT = convert_dtc_to_dt(EXSTDTC))` + +Each function argument needs to be tested with `assert_` type of function. + +Each expression needs to be tested for the following +(there are many utility functions in `{admiral}` available to the contributor): + +* whether it is an expression (or a list of expressions, depending on the function) +* whether it is a valid expression (i.e. whether it evaluates without error) + +## Common Function Arguments Naming Convention + +The first argument of `derive_` functions should be the input dataset and it +should be named `dataset`. If more than one input dataset is required, the other +input dataset should start with `dataset_`, e.g., `dataset_ex.` + +Arguments for specifying items to add should start with `new_`. If a variable is +added, the second part of the argument name should be var, if a parameter is +added, it should be `param.` For example: `new_var`, `new_var_unit`, +`new_param`. + +Arguments which expect a boolean or boolean vector must start with a verb, e.g., +`is_imputed` or `impute_date`. + +Arguments which only expect one value or variable name must be a singular version of the word(s), e.g., `missing_value` or `new_var`. Arguments which expect several values or variable names (as a list, expressions, etc.) must be a plural version of the word(s), e.g., `missing_values` or `new_vars`. + +## List of Common Arguments +| Argument Name | Description | +|------------------|--------------------------------------------------------------------------------------------------------------------| +| `dataset` | The input dataset. Expects a data.frame or a tibble. | +| `dataset_ref` | The reference dataset, e.g. ADSL. Typically includes just one observation per subject. | +| `dataset_add` | An additional dataset. Used in some `derive_xx` and `filter_xx` functions to access variables from an additional dataset. | +| `by_vars` | Variables to group by. | +| `order` | List of expressions for sorting a dataset, e.g., `exprs(PARAMCD, AVISITN, desc(AVAL))`. | +| `new_var` | Name of a single variable to be added to the dataset. | +| `new_vars` | List of variables to be added to the dataset. | +| `new_var_unit` | Name of the unit variable to be added. It should be the unit of the variable specified for the `new_var` argument. | +| `filter` | Expression to filter a dataset, e.g., `PARAMCD == "TEMP"`. | +| `start_date` | The start date of an event/interval. Expects a date object. | +| `end_date` | The end date of an event/interval. Expects a date object. | +| `start_dtc` | (Partial) start date/datetime in ISO 8601 format. | +| `dtc` | (Partial) date/datetime in ISO 8601 format. | +| `date` | Date of an event / interval. Expects a date object. | +| `subject_keys` | Variables to uniquely identify a subject, defaults to `exprs(STUDYID, USUBJID)`. In function formals, use `subject_keys = get_admiral_option("subject_keys")` | +| `set_values_to` | List of variable name-value pairs. Use `process_set_values_to()` for processing the value and providing user friendly error messages. | +| `keep_source_vars` | Specifies which variables from the selected observations should be kept. The default of the argument should be `exprs(everything())`. The primary difference between `set_values_to` and `keep_source_vars` is that `keep_source_vars` only selects and retains the variables from a source dataset, so e.g. `keep_source_vars = exprs(DOMAIN)` would join + keep the `DOMAIN` variable, whereas `set_values_to` can make renaming and inline function changes such as `set_values_to = exprs(LALVDOM = DOMAIN)` | +| `missing_value` | A singular value to be entered if the data is missing. | +| `missing_values` | A named list of expressions where the names are variables in the dataset and the values are a value to be entered if the data is missing, e.g., `exprs(BASEC = "MISSING", BASE = -1)`. | + +## Source Code Formatting + +All source code should be formatted according to the +[tidyverse](https://style.tidyverse.org/) style guide. The +[lintr](https://github.com/jimhester/lintr) and +[styler](https://github.com/r-lib/styler) packages are used to check and enforce +this. + +## Comments + +Comments should be added to help other readers than the author to understand the +code. There are two main cases: + +- If the intention of a chunk of code is not clear, a comment should be added. +The comment should not rephrase the code but provide additional information. + + *Bad* + + ``` + # If AVAL equals zero, set it to 0.0001. Otherwise, do not change it + mutate(dataset, AVAL = if_else(AVAL == 0, 0.0001, AVAL)) + ``` + + *Good* + + ``` + # AVAL is to be displayed on a logarithmic scale. + # Thus replace zeros by a small value to avoid gaps. + mutate(dataset, AVAL = if_else(AVAL == 0, 0.0001, AVAL)) + ``` + +- For long functions (>100 lines) comments can be added to structure the code +and simplify navigation. In this case the comment should end with `----` to add +an entry to the document outline in RStudio. For example: + ``` + # Check arguments ---- + ``` + +The formatting of the comments must follow the +[tidyverse](https://style.tidyverse.org/syntax.html#comments) style guide. I.e., +the comment should start with a single `#` and a space. No decoration (except +for outline entries) must be added. + +*Bad* +``` +# This is a comment # + +########################### +# This is another comment # +########################### + +#+++++++++++++++++++++++++++++++ +# This is a section comment ---- +#+++++++++++++++++++++++++++++++ +``` + +*Good* +``` +# This is a comment + +# This is another comment + +# This is a section comment ---- +``` + +## Input Checking + +In line with the [fail-fast](https://en.wikipedia.org/wiki/Fail-fast) design principle, +function inputs should be checked for validity +and, if there’s an invalid input, the function should stop immediately with an error. +An exception is the case where a variable to be added by a function already exists in the input dataset: +here only a warning should be displayed and the function should continue executing. + +Inputs should be checked using custom assertion functions defined in [`R/assertions.R`](https://github.com/pharmaverse/admiraldev/blob/main/R/assertions.R). +These custom assertion functions should either return an error in case of an invalid input or return nothing. + +For the most common types of input arguments like a single variable, a list of +variables, a dataset, ... functions for checking are available (see +[assertions](../reference/index.html#section-assertions)). + +Arguments which expect keywords should handle them in a case-insensitive manner, +e.g., both `date_imputation = "FIRST"` and `date_imputation = "first"` should be +accepted. The `assert_character_scalar()` function helps with handling arguments +in a case-insensitive manner. + +A argument should not be checked in an outer function if the argument name is the same as in the inner function. +This rule is applicable only if both functions are part of `{admiral}`. + + +## Function Header (Documentation) + +Every function that is exported from the package must have an accompanying header +that should be formatted according to the [roxygen2](https://roxygen2.r-lib.org/) convention. + +In addition to the standard roxygen2 tags, the `@family` and `@keywords` tags are also used. + +The family/keywords are used to categorize the function, which is used both on our website and the internal package help pages. Please see section [Categorization of functions](programming_strategy.html#categorization-of-functions). + +An example is given below: + +```{r, eval=FALSE} +#' Derive Relative Day Variables +#' +#' Adds relative day variables (`--DY`) to the dataset, e.g., `ASTDY` and +#' `AENDY`. +#' +#' @param dataset Input dataset +#' +#' The columns specified by the `reference_date` and the `source_vars` +#' argument are expected. +#' +#' @param reference_date The start date column, e.g., date of first treatment +#' +#' A date or date-time object column is expected. +#' +#' Refer to `derive_var_dt()` to impute and derive a date from a date +#' character vector to a date object. +#' +#' @param source_vars A list of datetime or date variables created using +#' `exprs()` from which dates are to be extracted. This can either be a list of +#' date(time) variables or named `--DY` variables and corresponding --DT(M) +#' variables e.g. `exprs(TRTSDTM, ASTDTM, AENDT)` or `exprs(TRTSDT, ASTDTM, +#' AENDT, DEATHDY = DTHDT)`. If the source variable does not end in --DT(M), a +#' name for the resulting `--DY` variable must be provided. +#' +#' @details The relative day is derived as number of days from the reference +#' date to the end date. If it is nonnegative, one is added. I.e., the +#' relative day of the reference date is 1. Unless a name is explicitly +#' specified, the name of the resulting relative day variable is generated +#' from the source variable name by replacing DT (or DTM as appropriate) with +#' DY. +#' +#' @return The input dataset with `--DY` corresponding to the `--DTM` or `--DT` +#' source variable(s) added +#' +#' @keywords der_date_time +#' @family der_date_time +#' +#' @export +#' +#' @examples +#' library(lubridate) +#' library(dplyr, warn.conflicts = FALSE) +#' +#' datain <- tribble( +#' ~TRTSDTM, ~ASTDTM, ~AENDT, +#' "2014-01-17T23:59:59", "2014-01-18T13:09:O9", "2014-01-20" +#' ) %>% +#' mutate( +#' TRTSDTM = as_datetime(TRTSDTM), +#' ASTDTM = as_datetime(ASTDTM), +#' AENDT = ymd(AENDT) +#' ) +#' +#' derive_vars_dy( +#' datain, +#' reference_date = TRTSDTM, +#' source_vars = exprs(TRTSDTM, ASTDTM, AENDT) +#' ) +``` + + +The following fields are mandatory: + +* `@param`: One entry per function argument. +The following attributes should be described: expected data type (e.g. `data.frame`, `logical`, `numeric` etc.), permitted values (if applicable), optionality (i.e. is this a required argument). If the expected input is a dataset then the required variables should be clearly stated. Describing the default value becomes difficult to maintain and subject to manual error when it is already declared in the function arguments. The description for permitted values should be written as a separate line italicizing the phrase "Permitted Values", example below: + +``` +#' *Permitted Values*: example description of permitted values here +``` + +* `@details`: A natural-language description of the derivation used inside the function. +* `@keyword`: One applicable tag to the function - identical to family. +* `@family`: One applicable tag to the function - identical to keyword. +* `@return`: A description of the return value of the function. +Any newly added variable(-s) should be mentioned here. +* `@examples`: A fully self-contained example of how to use the function. +Self-contained means that, if this code is executed in a new R session, it will run without errors. +That means any packages need to be loaded with `library()` and any datasets needed either to be created directly inside the example code or loaded using `data()`. +If a dataset is created in the example, it should be done so using the function `tribble()` (specify `library(dplyr)` before calling this function). +If other functions are called in the example, please specify `library(pkg_name)` then refer to the respective function `fun()` as opposed to the preferred `pkg_name::fun()` notation as specified in [Unit Test Guidance](unit_test_guidance.html#set-up-the-test-script). +Make sure to align columns as this ensures quick code readability. + +Copying descriptions should be avoided as it makes the documentation hard to +maintain. For example if the same argument with the same description is used by +more than one function, the argument should be described for one function and +the other functions should use `@inheritParams `. + +Please note that if `@inheritParams func_first` is used in the header of the +`func_second()` function, those argument descriptions of `func_first()` are +included in the documentation of `func_second()` for which + +- the argument is offered by `func_second()` and +- no `@param` tag for the argument is included in the header of +`func_second()`. + +The order of the `@param` tags should be the same as in the function definition. +The `@inheritParams` tags should be after the `@param`. This does not affect the +order of the argument description in the rendered documentation but makes it +easier to maintain the headers. + +Variable names, expressions, functions, and any other code must be enclosed +which backticks. This will render it as code. + +For functions which derive a specific CDISC variable, the title must state the +label of the variable without the variable name. The variable should be stated +in the description. + +## Categorization of Functions + +The functions are categorized by keywords and families within the roxygen header. Categorization is important +as the `admiral` user-facing functions base totals above 125 and is growing! However, to ease the burden for developers, we have decided that +the keywords and families should be identical in the roxygen header, which are specified via the `@keywords` and `@family` fields. +To reiterate, each function must use the **same keyword and family**. Also, please note that the keywords and families are case-sensitive. + +### `@keywords` + +The keywords allows for the reference page to be easily organized when using certain +`pgkdown` functions. For example, using the function `has_keyword(der_bds_gen)` in the `_pkgdown.yml` file while building +the website will collect all the BDS General Derivation functions and display them in alphabetical order on the Reference Page in a section called +BDS-Specific. + +### `@family` + +The families allow for similar functions to be displayed in the **See Also** section of a function's documentation. For example, a user looking at +`derive_vars_dy()` function documentation might be interested in other Date/Time functions. Using the `@family` tag `der_date_time` will display +all the Date/Time functions available in admiral to the user in the **See Also** section of `derive_vars_dy()` function documentation. Please take a look at the +function documentation for `derive_vars_dy()` to see the family tag in action. + +Below are the list of available keyword/family tags to be used in `admiral` functions. If you think an additional keyword/family tag should be added, then please +add an issue in GitHub for discussion. + + +| Keyword/Family | Description | +|-----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| `com_date_time` | Date/Time Computation Functions that returns a vector | +| `com_bds_findings` | BDS-Findings Functions that returns a vector | +| `create_aux` | Functions for Creating Auxiliary Datasets | +| `datasets` | Example datasets used within admiral | +| `der_gen` | General Derivation Functions that can be used for any ADaM. | +| `der_date_time` | Date/Time Derivation Function | +| `der_bds_gen` | Basic Data Structure (BDS) Functions that can be used across different BDS ADaM (adex, advs, adlb, etc) | +| `der_bds_findings` | Basic Data Structure (BDS) Functions specific to the BDS-Findings ADaMs | +| `der_prm_bds_findings` | BDS-Findings Functions for adding Parameters | +| `der_adsl` | Functions that can only be used for creating ADSL. | +| `der_tte` | Function used only for creating a Time to Event (TTE) Dataset | +| `der_occds` | OCCDS specific derivation of helper Functions | +| `der_prm_tte` | TTE Functions for adding Parameters to TTE Dataset | +| `deprecated` | Function which will be removed from admiral after next release. See [Deprecation Guidance](#deprecation). | +| `metadata` | Auxiliary datasets providing definitions as input for derivations, e.g. grading criteria or dose frequencies | +| `utils_ds_chk` | Utilities for Dataset Checking | +| `utils_fil` | Utilities for Filtering Observations | +| `utils_fmt` | Utilities for Formatting Observations | +| `utils_print` | Utilities for Printing Objects in the Console | +| `utils_help` | Utilities used within Derivation functions | +| `utils_examples` | Utilities used for examples and template scripts | +| `source_specifications` | Source Objects | +| `other_advanced` | Other Advanced Functions | +| `high_order_function` | Higher Order Functions | | +| `internal` | Internal functions only available to admiral developers | +| | | +| `assertion`* | Asserts a certain type and gives warning, error to user | +| `warning` | Provides custom warnings to user | +| `what` | A function that ... | +| `is` | A function that ... | +| `get` | A function that ... | + +**NOTE:** It is strongly encouraged that each `@keyword` and `@family` are to be identical. This eases the burden of development and maintenance for admiral functions. If you need to use multiple keywords or families, please reach out to the core development team for discussion. + + +# Missing values + +Missing values (`NA`s) need to be explicitly shown. + +Regarding character vectors converted from SAS files: SAS treats missing character values as blank. +Those are imported into R as empty strings (`""`) although in nature they are missing values (`NA`). +All empty strings that originate like this need to be converted to proper R missing values `NA`. + +# File Structuring + +Organizing functions into files is more of an art than a science. +Thus, there are no hard rules but just recommendations. +First and foremost, there are two extremes that should be avoided: +putting each function into its own file and putting all functions into a single file. +Apart from that the following recommendations should be taken into consideration when deciding upon file structuring: + +- If a function is very long (together with its documentation), store it in a separate file +- If some functions are documented together, put them into one file +- If some functions have some sort of commonality or relevance with one another (like `dplyr::bind_rows()` and `dplyr::bind_cols()`), put them into one file +- Store functions together with their helpers and methods +- Have no more than 1000 lines in a single file, unless necessary (exceptions are, for example, classes with methods) + +It is the responsibility of both the author of a new function and reviewer to ensure that these recommendations are put into practice. + + +# R Package Dependencies + +Package dependencies have to be documented in the `DESCRIPTION` file. +If a package is used only in examples and/or unit tests then it should be listed in `Suggests`, otherwise in `Imports`. + +Functions from other packages have to be explicitly imported by using the `@importFrom` tag in the `R/admiral-package.R` file. +To import the `if_else()` and `mutate()` function from `dplyr` the following line would have to be included in that file: +`#' @importFrom dplyr if_else mutate`. +By using the `@importFrom` tag, it is easier to track all of our dependencies in one place and improves code readability. + +Some of these functions become critically important while using admiral and +should be included as an export. This applies to functions which are frequently +called within `{admiral }`function calls like `rlang::exprs()`, `dplyr::desc()` +or the pipe operator `dplyr::%>%`. To export these functions, the following R +code should be included in the `R/reexports.R` file using the format: + +``` +#' @export +pkg_name::fun +``` + +# Metadata + +Functions should only perform the derivation logic and not add any kind of metadata, e.g. labels. + + +# Unit Testing + +A function requires a set of unit tests to verify it produces the expected result. +See [Writing Unit Tests in {admiral}](unit_test_guidance.html#writing-unit-tests-in-admiral) for details. + +# Deprecation + +As `{admiral}` is still evolving, functions or arguments may need to be removed +or replaced with more efficient options from one release to another. In such +cases, the relevant function or argument must be marked as deprecated. This +deprecation is done in three phases over our release cycles. + +- **Phase 1:** In the release where the identified function or argument is to +be deprecated there will be a warning issued when using the function or argument +using `deprecate_warn()`. + +- **Phase 2:** In the next release an error will be thrown using +`deprecate_stop()`. + +- **Phase 3:** Finally in the 3rd release thereafter the function will be +removed from the package altogether. + +Information about deprecation timelines must be added to the warning/error message. + +Note that the deprecation cycle time for a function or argument based on our +current release schedule is 6 months. + +## Documentation + +If a function or argument is removed, the documentation must be updated to +indicate the function or the argument is now deprecated and which new +function/argument should be used instead. + +The documentation will be updated at: + ++ the description level for a function, ++ the `@keywords` and`@family` roxygen tags will be replaced with `deprecated` + + ```{r, eval=FALSE} +#' Title of the function +#' +#' @description +#' `r lifecycle::badge("deprecated")` +#' +#' This function is *deprecated*, please use `new_fun()` instead. +#' . +#' @family deprecated +#' +#' @keywords deprecated +#' . + ``` + ++ the `@examples` section should be removed. + ++ the `@param` level for a argument. + + ``` + @param old_param *Deprecated*, please use `new_param` instead. + ``` + +## Handling of Warning and Error + +When a function or argument is deprecated, the function must be updated to issue +a warning or error using `deprecate_warn()` and `deprecate_stop()`, +respectively, as described above. + +There should be a test case added in the test file of the function that checks +whether this warning/error is issued as appropriate when using the deprecated +function or argument. + +### Function + +In the initial release in which a function is deprecated the original function +body must be replaced with a call to `deprecate_warn()` and subsequently all +arguments should be passed on to the new function. + +```r +fun_xxx <- function(dataset, some_param, other_param) { + deprecate_warn("x.y.z", "fun_xxx()", "new_fun_xxx()") + new_fun_xxx( + dataset = dataset, + some_param = some_param, + other_param = other_param + ) +} +``` + +In the following release the function body should be changed to just include a call +to `deprecate_stop()`. + +```r +fun_xxx <- function(dataset, some_param, other_param) { + deprecate_stop("x.y.z", "fun_xxx()", "new_fun_xxx()") +} +``` + +Finally, in the next release the function should be removed from the package. + +### Argument + +If an argument is removed and is not replaced, an **error** must be generated: + +``` +### BEGIN DEPRECATION + if (!missing(old_param)) { + deprecate_stop("x.y.z", "fun_xxx(old_param = )", "fun_xxx(new_param = )") + } +### END DEPRECATION +``` + +If the argument is renamed or replaced, a **warning** must be issued and the +new argument takes the value of the old argument until the next release. Note: +arguments which are not passed as `exprs()` argument (e.g. `new_var = VAR1` or +`filter = AVAL >10`) will need to be quoted. + +``` +### BEGIN DEPRECATION + if (!missing(old_param)) { + deprecate_warn("x.y.z", "fun_xxx(old_param = )", "fun_xxx(new_param = )") + # old_param is given using exprs() + new_param <- old_param + # old_param is NOT given using exprs() + new_param <- enexpr(old_param) + } +### END DEPRECATION +``` + +## Unit Testing + +Unit tests for deprecated functions and arguments must be added to the test file [^1] of the function to ensure that a warning or error is issued. + +[^1]: For example, if `derive_var_example()` is going to be deprecated and +it is defined in `examples.R`, the unit tests are in +`tests/testthat/test-examples.R`. + +When writing the unit test, check that the error or warning has the right class, +i.e., `"lifecycle_error_deprecated"` or `"lifecycle_warning_deprecated"`, +respectively. The unit-test should follow the corresponding format, per the +[unit test guidance](unit_test_guidance.html#writing-unit-tests-in-admiral). + +### For Deprecated Functions that Issues a Warning (Phase 1) + +A unit test like the following must be added. +``` +## Test #: deprecation warning if function is called ---- +test_that("derive_var_example() Test #: deprecation warning if function is called", { + expect_warning( + derive_var_example(), + class = "lifecycle_warning_deprecated" + ) +}) +``` + +In the existing unit tests the call of the deprecated function need to be enclosed by `suppress_warning()`. For example, +``` + actual <- suppress_warning( + derive_var_example(), + regexpr = "was deprecated" + ) +``` +The `regexpr` argument must be specified to ensure that only the deprecation +warning is suppressed. + +### For Deprecated Functions that Issues an Error (Phase 2) + +A unit test like the following must be added. +``` +## Test #: error if function is called ---- +test_that("derive_var_example() Test #: deprecation error if function is called", { + expect_error( + derive_var_example(), + class = "lifecycle_error_deprecated" + ) +}) +``` +Other unit tests of the deprecated function must be removed. + +# Best Practices and Hints + +Please take the following list as recommendation and try to adhere to its rules if possible. + +* Arguments in function calls should be named except for the first parameter +(e.g. `assert_data_frame(dataset, required_vars = exprs(var1, var2), optional = TRUE)`). +* `dplyr::if_else()` should be used when there are only two conditions. +Try to always set the `missing` argument whenever appropriate. + +## How Quoting is used + +* Some admiral arguments require selecting one particular option like `mode`, e.g. `mode = "last"`. Use quotation marks to capture these. The expected assertion function corresponding to these arguments is `assert_character_scalar()/assert_character_vector()`. +* Many admiral arguments require capturing an expression, typically encased in a `exprs()` statement, which are to be evaluated _later_ inside the function body, see arguments like `new_vars`, e.g. `new_vars = exprs(TRTSDTM = EXSTDTM)`. Oftentimes, the assertion function corresponding to these are `assert_expr()/assert_expr_list()`. These arguments are unquoted by using `!!!`. +* Some admiral arguments like `new_var` or `filter` which expect a _single_ variable or expression are not quoted in the call. In the function body, it has to be quoted by using `enexpr().` Usually this is combined with the assertion, e.g., `new_var <- assert_symbol(enexpr(new_var))`. These arguments are unquoted by using `!!`. +* Keep in mind `!!` is a one-to-one replacement and `!!!` is a one-to-many replacement. Please see [this chapter](https://adv-r.hadley.nz/quasiquotation.html) in the Advanced R textbook for more details. + +## Standardizing Text Used to Label and Describe Arguments + +In the following [PR](https://github.com/pharmaverse/admiral/pull/2065/files), you will find an example of how the function argument `dataset` was able to be standardized such that the Label and Description of said function argument was aligned across the codebase. Please see the changes to the file `derive_adeg_params.R` for further details. + +The benefits of having a programmatic way to write documentation is that if any changes need to be made, _making the modification on the corresponding function, in this case, `roxygen_param_dataset()`, scales across the codebase, can be tested, and is less prone to user-error such as typos or grammar mistakes_. + +These functions are implemented in `roxygen2.R` and the naming convention for each argument will be as follows `roxygen_param_xxx()`, where "xxx" is the be replaced with the argument name. + +# R and Package Versions for Development + +* The choice of R Version is not set in stone. However, a common development environment is important to establish when working across multiple companies and multiple developers. We currently work in the earliest of the three latest R Versions. This need for a common development environment also carries over for our choice of package versions. +* GitHub allows us through the Actions/Workflows to test `{admiral}` under several versions of R as well as several versions of dependent R packages needed for `{admiral}`. Currently we test `{admiral}` against the three latest R Versions and the closest snapshots of packages to those R versions. You can view this workflow and others on our [admiralci GitHub Repository](https://github.com/pharmaverse/admiralci). +* This common development allows us to easily re-create bugs and provide solutions to each other issues that developers will encounter. +* Reviewers of Pull Requests when running code will know that their environment is identical to the initiator of the Pull Request. This ensures faster review times and higher quality Pull Request reviews. +* We achieve this common development environment by using a **lockfile** created from the [`renv`](https://rstudio.github.io/renv/) package. New developers will encounter a suggested `renv::restore()` in the console to revert or move forward your R version and package versions. diff --git a/vignettes/project_board.png b/vignettes/project_board.png new file mode 100644 index 0000000000000000000000000000000000000000..ba578912b1b2d588422160b2948065a046e3bba2 GIT binary patch literal 476697 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 z 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


k@$s+myIt*VG(hsFI*Z}`AL+uD688CM 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≈h^A1w={lso!_6C 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

nri*yOlQ<`%ru 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 z°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ξxY|Ioi80+Kn4M^AoPX!5B!v)~fGlzbi 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 MlM}5F)(`mq09y4|;{X5v literal 0 HcmV?d00001 diff --git a/vignettes/questionnaires.Rmd b/vignettes/questionnaires.Rmd index e37d9a0703..f59a2696c8 100644 --- a/vignettes/questionnaires.Rmd +++ b/vignettes/questionnaires.Rmd @@ -109,7 +109,7 @@ adqs <- qs %>% ```{r echo=FALSE} dataset_vignette( - arrange(adqs, USUBJID, PARCAT1, ADY, PARAMCD), + arrange(adqs, !!!get_admiral_option("subject_keys"), PARCAT1, ADY, PARAMCD), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, PARCAT1, AVALC, AVAL, ADY, AVISIT)) ) ``` @@ -156,7 +156,7 @@ adgad7 <- adqs %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgad7, USUBJID, ADY, PARAMCD), + arrange(adgad7, !!!get_admiral_option("subject_keys"), ADY, PARAMCD), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVAL, ADY, AVISIT)) ) ``` @@ -192,7 +192,7 @@ adgdssf <- adqs %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, ADY, PARAMCD), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), ADY, PARAMCD), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVAL, ADY, AVISIT)) ) ``` @@ -284,7 +284,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), desc(PARAMCD), ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVAL, AVALCAT1, CHGCAT1)) ) ``` @@ -378,7 +378,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), desc(PARAMCD), ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, CDETFL)) ) ``` @@ -421,7 +421,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), desc(PARAMCD), ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, CONDETFL, CDTDTHFL)) ) ``` @@ -444,7 +444,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, desc(PARAMCD), ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), desc(PARAMCD), ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, ADY, CHGCAT1, DEFDETFL)) ) ``` @@ -515,7 +515,7 @@ adsp <- adqs %>% ```{r echo=FALSE} dataset_vignette( - arrange(adsp, USUBJID, ADY, PARAMCD), + arrange(adsp, !!!get_admiral_option("subject_keys"), ADY, PARAMCD), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` @@ -541,7 +541,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, PARAMCD, ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), PARAMCD, ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` @@ -594,7 +594,7 @@ adgdssf <- adgdssf %>% ```{r echo=FALSE} dataset_vignette( - arrange(adgdssf, USUBJID, PARAMCD, ADY), + arrange(adgdssf, !!!get_admiral_option("subject_keys"), PARAMCD, ADY), display_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARAM, AVISIT, AVALC)) ) ``` diff --git a/vignettes/rcmd_issues.Rmd b/vignettes/rcmd_issues.Rmd new file mode 100644 index 0000000000..6f7dc3f049 --- /dev/null +++ b/vignettes/rcmd_issues.Rmd @@ -0,0 +1,104 @@ +--- +title: "R CMD Issues" +output: + rmarkdown::html_vignette: + toc: true + toc_depth: 2 +vignette: > + %\VignetteIndexEntry{R CMD Issues} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +# Common R CMD Check Issues + +`R CMD check` is a command line tool that checks R packages against a standard set of criteria. For a pull request to pass the check must not issue any notes, warnings or errors. Below is a list of common issues and how to resolve them. + +## Check Fails Only on One Version + +If the `R CMD check` workflow fails only on one or two R versions it can be helpful to reproduce the testing environment locally. + +To reproduce a particular R version environment open the `{admiral}` project in the corresponding R version, comment the line `source("renv/activate.R")` in the `.Rprofile` file, restart the R session and then run the following commands in the R console. + +``` r +Sys.setenv(R_REMOTES_NO_ERRORS_FROM_WARNINGS = "true") + +if (!dir.exists(".library")) { + dir.create(".library") +} + +base_recommended_pkgs <- row.names(installed.packages(priority = "high")) +for (pkg in base_recommended_pkgs) { + path <- file.path(.Library, pkg) + cmd <- sprintf("cp -r %s .library", path) + system(cmd) +} +assign(".lib.loc", ".library", envir = environment(.libPaths)) + +r_version <- getRversion() +if (grepl("^4.1", r_version)) { + options(repos = "https://packagemanager.posit.co/cran/2021-05-03/") +} else if (grepl("^4.2", r_version)) { + options(repos = "https://packagemanager.posit.co/cran/2022-01-03/") +} else if (grepl("^4.3", r_version)) { + options(repos = "https://packagemanager.posit.co/cran/2023-04-20/") +} else { + options(repos = "https://cran.rstudio.com") +} + +if (!requireNamespace("remotes", quietly = TRUE)) { + install.packages("remotes") +} +remotes::install_deps(dependencies = TRUE) +remotes::install_github("pharmaverse/pharmaversesdtm", ref = "devel") +remotes::install_github("pharmaverse/admiraldev", ref = "devel") +rcmdcheck::rcmdcheck() +``` + +This will ensure that the exact package versions we use in the workflow are installed into the hidden folder `.library`. That way your existing R packages are *not* overwritten. + +## Package Dependencies + + > checking package dependencies ... ERROR + Namespace dependency not required: ‘pkg’ + +Add `pkg` to the `Imports` or `Suggests` field in the `DESCRIPTION` file. In general, dependencies should be listed in the `Imports` field. However, if a package is only used inside vignettes or unit tests it should be listed in `Suggests` because all `{admiral}` functions would work without these "soft" dependencies being installed. + +## Global Variables + + ❯ checking R code for possible problems ... NOTE + function_xyz: no visible binding for global variable ‘some_var’ + +Add `some_var` to the list of "global" variables in `R/globals.R`. + +## Undocumented Function Parameter + + ❯ checking Rd \usage sections ... WARNING + Undocumented arguments in documentation object 'function_xyz' + ‘some_param’ + +Add an `@param some_param` section in the header of `function_xyz()` and run `devtools::document()` afterwards. + +## Outdated Documentation + + ❯ checking for code/documentation mismatches ... WARNING + Codoc mismatches from documentation object 'function_xyz': + ... + Argument names in code not in docs: + new_param_name + Argument names in docs not in code: + old_param_name + Mismatches in argument names: + Position: 6 Code: new_param_name Docs: old_param_name + +The name of a parameter has been changed in the function code but not yet in the header. Change `@param old_param_name` to `@param new_param_name` and run `devtools::document()`. + +For further reading we recommend the [R-pkg manual r-cmd chapter](https://r-pkgs.org/r-cmd-check.html) + diff --git a/vignettes/release_strategy.Rmd b/vignettes/release_strategy.Rmd new file mode 100644 index 0000000000..38ccc83485 --- /dev/null +++ b/vignettes/release_strategy.Rmd @@ -0,0 +1,169 @@ +--- +title: "Release Strategy" +output: + rmarkdown::html_vignette: + toc: true + toc_depth: 6 +vignette: > + %\VignetteIndexEntry{Release Strategy} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) + +library(dplyr) +library(reactable) +``` + +# Introduction + +This article explains how we do package releases for `{admiral}` and across all our +package extensions. This includes details around planned/scheduled releases, as well +as hotfixes. + +# Release Schedule + +A release schedule is maintained on the [homepage](https://pharmaverse.github.io/admiral/#release-schedule). + +# Planning Releases + +In the past, whenever we started looking towards a future release, we would create +a new release issue label on GitHub of the form `release Q4-2022` and **prioritize** +these issues. However, as our backlog is minimal every issue should be considered +a Priority Issue. If an issue is not a Priority, then it should be sent back to +a Discussion Tab and formed into a Priority issue. + +We should share in advance with our users a high level summary of expected package +updates via the community meetings, especially any anticipated breaking changes. + +# Package Release Process + +In the following the most important steps for a planned release and a hot fix +release are described. Depending on the package it may be helpful to use +`usethis::use_release_issue()` with a package-specific `release_bullets()` +function. + +## Planned Release + +A package release is done in the following steps: + +1) Create the release version: +a) Create a new feature branch from `main`. +a) Call `usethis::use_version()` to update the `Versions:` field in the +`DESCRIPTION` file and update `NEWS.md` (replace "(development version)" +with the version to be released) +a) Create a PR into `main` and merge it. The title of the PR must contain "[skip vbump]". +Otherwise, the vbump workflow sets the version to a development version and +CRAN will reject the submission. +1) Bundle up from `main` (`devtools::build(manual = TRUE)`) and send off to +CRAN. See the [chapter](https://r-pkgs.org/release.html#decide-the-release-type) +in R Packages for more details. +1) If CRAN asks for modifications, repeat steps 1-2 as necessary. +1) Once the package is accepted and available on CRAN, use the release button on +GitHub to "release" the package onto GitHub, select the `main` branch as target, +and use a tag of the form `vX.Y.Z`, e.g., `v1.1.2` (see past [admiral +releases](https://github.com/pharmaverse/admiral/releases) for reference and +[Releasing to Github](release_strategy.html#releasing-to-github) section for +more details). + +This releases onto Github archives the version of code within the `main` branch, +attaches the News/Changelog file, bundles the code into a `tar.gz` file and +makes a validation report via the GitHub action `validation` from +[insightsengineering/validatoR](https://github.com/insightsengineering/thevalidatoR). + +It also builds the website for the released version and stores it in a new +`vx.y.z` folder on the `gh-pages` branch. + +1) Merge `main` into `patch` to be prepared in case of a needed hotfix. +1) Create the next development version: +a) Create a new feature branch from `main`. +a) Call `usethis::use_dev_version()` to update `NEWS.md` (adds a new +section `# admiral (development version)`) and update the version in the +`DESCRIPTION` file to a development version. +a) Create a PR into `main` and merge it. + +## Hot Fix Release + +Rarely, we may need to release a hot fix to immediately address a bug. In the +majority of cases, an off-cycle release can be made directly from the `main` +branch, where bug fixes and new features would be released earlier than planned, +thus avoiding the `patch` branch release. + +A hot fix release is done in the following steps: + +1) Identify all the bugs that need to be fixed for this hot fix release and +label them with the "hotfix" label. +1) Branches addressing the bugs should have Pull Requests merged into a single +`patch` branch **NOT** the `main` branch, where the `patch` branch has been +created from the most recent release of the package. To do this, run the following git commands: + +`git checkout -b patch vX.Y.Z` + +`git push -u origin patch` + +There is no need to use +development versions. I.e., the first pull request should set the version in +`DESCRIPTION` to the version to be released and a corresponding heading should +be added to `NEWS.md`. + +1) When naming the branch follow the [naming conventions](git_usage.html#implementing-an-issue) guide. + +1) If all PRs for the hot fix are merged (to `patch`), bundle up from `patch` +(`devtools::build(manual = TRUE)`) and send off to CRAN. See the +[chapter](https://r-pkgs.org/release.html#decide-the-release-type) in R Packages +for more details. + +1) If CRAN asks for modifications, repeat steps 1-4 as necessary. + +1) Once the package is accepted and available on CRAN, , use the release button + +on GitHub to "release" the package onto GitHub, select the `patch` branch as +target, and use a tag of the form `vX.Y.Z`, e.g., `v1.1.2` (see past [admiral +releases](https://github.com/pharmaverse/admiral/releases) for reference and +[Releasing to Github](release_strategy.html#releasing-to-github) section for +more details). + +This releases onto Github archives the version of code within the `patch` +branch, attaches the News/Changelog file, bundles the code into a `tar.gz` file +and makes a validation report via the GitHub action `validation` from +[insightsengineering/validatoR](https://github.com/insightsengineering/thevalidatoR). + +It also builds the website for the released version and stores it in a new +`vx.y.z` folder on the `gh-pages` branch. + +1) These hot fixes should then be merged into the `main` branch through an +additional Pull Request. Merging the PR will update the version in the +`DESCRIPTION` file to a development version. +1) Create the next development version: +a) Create a new feature branch from `main`. +a) Update `NEWS.md` (add a new section `# admiral (development version)`) +a) Create a PR into `main` and merge it. + +# Releasing to Github +Under the [Releases](https://github.com/pharmaverse/admiral/releases) section in the main repo, select `Draft a New Release`. Proceed by creating the appropriate release tag and header, denoted as `vX.X.X` and `admiral X.X.X` respectively, for the release: + +![](https://user-images.githubusercontent.com/43018762/228875673-5b6daa64-1909-47c9-bd61-69b810c2f742.png) + +Copy the contents of the `NEWS.md` section for the release, paste it into the release notes section: + +![](https://user-images.githubusercontent.com/43018762/228875743-d17729fe-9b38-432a-9bb0-5fdc157ec231.png) + +Then in the upload box where it says, "Attach binaries by dropping them here or selecting them" upload the appropriate `admiral_X.X.X.tar.gz` file available for download at the [CRAN website](https://cran.r-project.org/web/packages/admiral/index.html). Click `Publish Release` and you're all done! + +**NB:** Occasionally, you might need to delete the tag when something is done in error. Deleting a tag can not be done on GitHub and must be done in the terminal. However, it is very easy!! Just use: + +`git push --delete origin tagname` + +# Release Tracking + +When a new package release has been submitted to CRAN and is awaiting go-live, you can track its status by searching for it within [this dashboard](https://r-hub.github.io/cransays/articles/dashboard.html). + +# Communications + +After the release, we raise awareness via our Slack channel and LinkedIn. + diff --git a/vignettes/test_data_guidance.Rmd b/vignettes/test_data_guidance.Rmd new file mode 100644 index 0000000000..7c1aa005c8 --- /dev/null +++ b/vignettes/test_data_guidance.Rmd @@ -0,0 +1,20 @@ +--- +title: "Test Data Guidance" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Test Data Guidance} + %\VignetteEngine{knitr::rmarkdown} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +There are two test data packages that enable any Pharmaverse package development team to re-use test SDTM and ADaM: + +- [`{pharmaversesdtm}`](https://github.com/pharmaverse/pharmaversesdtm): a data package that stores test SDTM data. If the current available data does not meet your need, update or add the new data in this package based on the instructions provided on the [How to Update](https://pharmaverse.github.io/pharmaversesdtm/cran-release/). + +- [`{pharmaverseadam}`](https://github.com/pharmaverse/pharmaverseadam): a data package that stores test ADaM data created from {admiral} templates. There is an integration test that runs {admiral} templates and compares them with the stored version. If differences are found, it then triggers an action: either accepting the difference and storing the new ADaM, or rejecting it and identifying the cause of the differences in the templates. diff --git a/vignettes/unit_test_format_tests.png b/vignettes/unit_test_format_tests.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2c4336495a627c495c1c5fab7b2b503e88656d GIT binary patch literal 54985 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%0AMQ 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 f^|0a5 + %\VignetteIndexEntry{Unit Test Guidance} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + + +# Why Write Unit Tests? + +## Unit Tests Become a Safety Net for Developers + +A comprehensive suite of unit tests can act as a safety net for developers. By +frequently running the tests, they can assure their recent modifications to the +code haven’t broken anything. In other words, unit tests help prevent regressions. + +## Unit Tests Can Contribute to Higher Code Quality + +Since unit tests act as a safety net, developers become more confident when +changing the code. They can refactor the code without fear of breaking things, +driving the general quality of the code base up. + +## Unit Tests Can Contribute to Better Application Architecture + +If you can add unit tests easily to a code base, that’s usually a good sign +regarding the quality of the app’s architecture. So, the drive to write testable +code can be an incentive for better architecture. + +## Detects Code Smells in your Codebase + +If ease of adding unit tests to a code base is a good sign, the opposite is also +true. Having a hard time creating unit tests for a given piece of code might be +a sign of code smells in the code—e.g. functions that are too complex. + +# Writing Good Unit Tests + +## Tests Should Be Fast + +If they’re slow, developers won’t run them as often as they should. That defeats +the whole purpose of having a suite of unit tests in the first place, which is +to boost the developers’ confidence to make changes to the code. The tests can’t +work as the safety net if they’re not run often. + +## Tests Should Be Simple + +There are several techniques we can apply to have a high degree of confidence in +the correctness of our tests. One of those is to keep your tests with low +cyclomatic complexity. Cyclomatic complexity is a code metric that indicates the +number of possible execution paths a given method can follow. A piece of code +with lower complexity is easier to understand and maintain, which means developers +are less likely to introduce bugs when working on it. We can measure the +cyclomatic complexity of your tests (using, for instance, a linter tool) and do +your best to keep it low. + +## Test Shouldn’t Duplicate Implementation Logic + +If the same person wrote both the test and the implementation, it’s possible they +made the same errors in both places. Since the tests mirror the implementation, +they might still pass, and the implementation could be wrong, but the tests might +fool you into thinking otherwise. Resist the urge to make your tests fancy, keep +them simple, and your testing suite will be better for it. + +## Tests Should Be Readable + +This best practice overlaps a little bit with the one about keeping your tests +simple. If tests are hard to read, developers are more likely to misunderstand +them and introduce bugs. Test cases could be used as a form of documentation, so +they obviously need to be readable. + +## Running Unit Tests Part of the Build Process + +Automate the whole process of running the unit tests and taking some action when +they fail. Your build process should execute your unit tests and mark the build +as broken when the tests fail. + +# Writing Unit Tests in {admiral} + +## Plan your Unit Tests + +Start by considering the derivation rule you are testing and the possible +arguments/flexibilities of your function code. Then plan which scenarios you will +test. These can either involve generating different input test cases or feeding +them into different calls of your function. + +## Test coverage + +Unit tests should cover the functionality of the function. +If another function `g()` is called within a function `f()`, the unit tests of `f()` should not test the functionality of `g()`. +This should be tested by the unit tests of `g()`, i.e. unit tests should be added at the lowest level. + +## Tests Should be Robust to Cover Realistic Data Scenarios + +For generating input test cases, it can be helpful to consider regular cases +(expected common data scenarios), boundary cases (where data points are close or +equal), and special cases (uncommon but valid data scenarios, e.g. missing or +special characters). Although you will never cover every single eventuality of +possible input data (no reliability testing method ever gives 100% certainty), +you do need to give confidence that the code is robust enough to work across most +data scenarios. + +## Testing Should Cover Possible Arguments + +For the different calls of your function, consider how the user might apply your +function and test a variety of possible calls, whilst still remembering the tips +above that tests should be fast and simple. +This is only needed in cases where the complexity and level of flexibility of +your function justifies it, e.g. see the test script: https://github.com/pharmaverse/admiral/blob/main/tests/testthat/test-derive_var_extreme_flag.R. + +## Exported Functions + +Don’t forget to add a unit test for each exported function. + +## Snapshot Testing + +Standard unit tests are not always convenient to record the expected behavior with code. +Some challenges include: + + - Output that is large, making it painful to define the reference output, and bloating the size of the test file and making it hard to navigate. + - Text output that includes many characters like quotes and newlines that require special handling in a string. + - Binary formats like plots or images, which are very difficult to describe in code: i.e. the plot looks right, the error message is useful to a human, the print method uses color effectively. + +For these situations, testthat provides an alternative mechanism: snapshot tests. +Snapshot tests record results in a separate human readable file and records the results, including output, messages, warnings, and errors. +Review the [{testthat} snapshot vignette](https://testthat.r-lib.org/articles/snapshotting.html) for details. + +## Set up the Test Script + +Within the `tests/testthat` folder of the project, add a script with the naming +convention `test-.R`., the unit test script can be +created from the console also, as follows: + +``` +usethis::use_test("") +``` +the testing framework used is testthat and has the following format : + +``` +## Test 1: ---- +test_that(" Test 1: ", { + + input <- dplyr::tribble( + ~inputvar1, ~inputvar2, ... + + ... + ) + + expected_output <- mutate(input, outputvar = c()) + + expect_dfs_equal((input), expected_output) + +}) +``` + +For example, if you are testing a function called `my_new_func` that is contained +in script `all_funcs.R` then from console use: + +``` +usethis::use_test("all_funcs") +``` + +Open the newly created file `test-all_funcs.R` and use the following format: + +``` +# my_new_func ---- +## Test 1: ---- +test_that("my_new_func Test 1: ", { + + input <- dplyr::tribble( + ~inputvar1, ~inputvar2, ... + + ... + ) + + expected_output <- mutate(input, outputvar = c()) + + expect_dfs_equal((input), expected_output) +}) +``` +**Note**: When comparing datasets in `{admiral}` we use function `expect_dfs_equal()`. + +The input and expected output for the unit tests must follow the following rules: + +* Input and output should be as simple as possible. +* Values should be hard-coded whenever possible. +* If values need to be derived, only unit tested functions can be used. + +In contrast to the [Programming Strategy](programming_strategy.html#function-header-documentation) documentation for function examples, test files should not include `library(pkg_name)` calls. +If a dataset needs to be created for testing purposes, it should be done so using the function `tribble()` from the `tibble` package with the following command `dplyr::tribble()`. +Furthermore, if other functions need to be called, it should also be done using `pkg_name::fun()`notation. +Make sure to align columns as well. This ensures quick code readability. + +Ensure you give a meaningful explanation of the test in the testthat call, as +these will be compiled in the package validation report. Having the name of the +function and test ID included in title will also help with traceability. + +The comments ending with `----` create entries in the TOC in RStudio. + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./unit_test_toc.png") +``` + + +## Addin `admiraldev::format_test_that_file()` + +To ease the burden on developers for writing and adding tests we have developed an Addin for formatting test_that test files according to admiral programming standards. The Addin will add and update comments as well as number or re-numbers the tests. Just use the Addin button and select the "Format +test_that test file" as seen in the image. Be sure to have the test-file open and selected when calling the Addin. + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./unit_test_format_tests.png") +``` + +The Addin will perform the following: + +- Updates or adds the number of the tests in the comments and in the +`test_that()` call +- Updates the comments based on the description provided in the `test_that()` +call +- Updates the function name in the `test_that()` call. The function name is +extracted from the last `# ----` comment before the +`test_that()` call. If a test file tests more than one function, such comments +should be added before the first test of each function. If a test files tests a +single function only, the comments can be omitted. In this case the addin +determines the function name from the file name by stripping of the "test-" +prefix and the ".R" suffix. + +When writing new unit tests, just provide a description in the `test_that()` +call and if necessary the function name in a `# ----` comment: +``` +# arg_name ---- +test_that("arg_name works", { + expect_equal(arg_name(sym("a")), "a") + expect_equal(arg_name(call("enquo", sym("a"))), "a") + expect_error(arg_name("a"), "Could not extract argument name from") +}) + +# convert_dtm_to_dtc ---- +test_that("works if dtm is in correct format", { + expect_equal( + convert_dtm_to_dtc(as.POSIXct("2022-04-05 15:34:07 UTC")), + "2022-04-05T15:34:07" + ) +}) + +test_that("Error is thrown if dtm is not in correct format", { + expect_error( + convert_dtm_to_dtc("2022-04-05T15:26:14"), + "lubridate::is.instant(dtm) is not TRUE", + fixed = TRUE + ) +}) +``` + +Call the addin and get: +``` +# arg_name ---- +## Test 1: arg_name works ---- +test_that("arg_name Test 1: arg_name works", { + expect_equal(arg_name(sym("a")), "a") + expect_equal(arg_name(call("enquo", sym("a"))), "a") + expect_error(arg_name("a"), "Could not extract argument name from") +}) + +# convert_dtm_to_dtc ---- +## Test 2: works if dtm is in correct format ---- +test_that("convert_dtm_to_dtc Test 2: works if dtm is in correct format", { + expect_equal( + convert_dtm_to_dtc(as.POSIXct("2022-04-05 15:34:07 UTC")), + "2022-04-05T15:34:07" + ) +}) + +## Test 3: Error is thrown if dtm is not in correct format ---- +test_that("convert_dtm_to_dtc Test 3: Error is thrown if dtm is not in correct format", { + expect_error( + convert_dtm_to_dtc("2022-04-05T15:26:14"), + "lubridate::is.instant(dtm) is not TRUE", + fixed = TRUE + ) +}) +``` + +Once you have tested your unit test program, you can run all unit tests from +the console, as follows. + +``` +devtools::test() +``` + +For running just the tests of the current file call + +``` +devtools::test_file() +``` + +## Automation of Unit Tests + +When a user actions a pull request in {admiral} GitHub repo, the unit tests are +automatically run and pull request will be denied if any unit tests fail. + +## Flow Chart + +```{r echo=FALSE, out.width='120%'} +knitr::include_graphics("./unit_test_guidance.png") +``` diff --git a/vignettes/unit_test_guidance.png b/vignettes/unit_test_guidance.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0eb8f4087e35665d50dfe22604b6377935eda6 GIT binary patch literal 41600 zcmce;cT`i|*DZ{SAR_RH2+~zLgih#1kRFP3B3(%6AWb?5D2P&|C3FM?q$8nA5otma zdXZiO0@8cG2laV>?;ZEMUm4?$?~ja(?6c24yR1Fe+Htmvckj5x~n2DtLtUDmgeb2H`H*xci_+W;L%N@)_-_dn1i0rUVZTX>+44W zugK-(*oE7L@2QC(K%P+77~Dh8T6BZKgiD*^y6}3<9P8+h8oEx`>YNSdCbvZ!YXj?? zA-flzT_@h@1`=+IYLlqaDJemTIJvLFu|9mL^76R?`MALlj#qCA?Y<2c8!hjRm_@7H zq{HADL_0*N%+8n-^wNJ?sc>vlb6dZ^E}D2!{S#fNyqoI-Xz-?<)r*f(Vkq1?EO!#YQM=wc@5fK^6<~S7K;ew}*bUO$NZ{*@Jt_R?HTmQ4c0+6LS}}dFP14YlfaO#% zT`3i@#5&MDO@&a;X$JK)@u7RFqIL99c@K4tKD2T!(P4tM+>?F7b*qi0cD7fawL3Dm zH?X0rK=)m|*uwp37ra&~w>|pvmNc3FX$1+JI)!x`T9yNQT(`43T{H9;_O;YubAUcHGp#P{1A?+ApoC4c&^F z33{V&`>B~;-P1#ogbXQLCk1vr|9bBWuM4GvRe3?B{hLWuo*SlaM6wSVFm)o+R`o9& zPx7~p2j|HK60%4tUQFHNJabCm$7t`_2Rnt$=NH@){SeqD%?{4LxS2NDl-x~ksE#Bp z73r$879t*!}hf#!}0MPqNiBc7rR|9xtD zDWAdAaca>;^U$41&*{Eex4w)1W+Ksj^SYRi3~H0~MQhpu$}7!-N0}xC9O@~J&Z&-X z6fPmDPKSJGc{5jGaYEKFkk5mVlVHZ7nn}m}lIQ z^yYhKbcUf*1w~0GPQY@|ueZoA+-rqr%%3jwgmikAFVYI`@Oip#GJT~yh?!rhv?)DJ zx;g#q*{U4*(Vo>&UH-NnQy>FogREd0y{>W5E$6VXRSLbs>H{gf2V9!2q=#w=x=yFgRP;11e>ca*ba7J(6T4G;?IZ%$79>pK48kEjuA zNDUn(cE395ab-w$%zD(&miAEJC!e{^MfKJgM|MJOO~Gu~SG`ez4v`_`h@2l^;kMMOG}jh= z8Cg+=lDAlKU?BpN}q`d5!Sx>zCHtA@$bSXnP^ytOhsr`uf z$SGCAFYZsGiM}JZ`l8YhW`XCzb`OijX$o6eRQDNSZg$0418y06FBpW6BH)v~2! zkbk9WDv)p)9lowqVX;NAcCO1tfA<3GAvmbp_ar-H^mr+A-mlT-z|M$_HG3RsL!qH8 zq>2x;Jg)MM3|_>%x@x8V^?%w)F4$%@eJW%1=h$XR5h89uPEq0&foJLo4u4=KF0cV@ zMqO-B8RYkq!iV=HQ#~dKbZL* zLiEy^Hn;oj}J)= zXTmO#BaiRb(L z$%RXUWf)Eref;%WKomohlM%C-ccT+ooS_8Aq2)sGZRQsxH_j%D6_B3X1qrII=N&a< zaw<#HG$SEDX`blKp-T?;FpUX9b!Kc&#eA)DY-8M4203= zOueI=7RGqZg|6=Y!Y3JE`Cu{3AcPTp84C67<(tQ&fv?H7L|n5;tRy56B(0hC1iuIl zrDh60r+$&uX7H5lju7S^P=VJbk$-#=&fZwo(HPfPw!jCKZ zvM)d%&4AUqs-g0KGn(H+RZFQYw~wj+wbrG8Y8|JjZUXZlk1{RVgCMKziI1gcS6JM> zO8fQk^+o50O#3XUtPw|hrzg^|X1FfsycsT+<&Ck~n(r-F7GPw!7k6l?Qn!6WuEm{0 zPZ+bArvsnjFe^rW;n-raEs!=tv6jCGOuJ$bV3NxF zu;GAHlZ#!MpP?GvvbRcz?#Un^Wke4#vfu)RRWyk8V!P+WZk+ng4WN!5dC2OK++ zpe!ri)>(u;snrsdy{w6Q;^a5MhuUE4J7!H{BWzN8xc5{%Eg%~cjS}eP%l?NZH|$j? zQP$NwW_vOkINhU`A}O0h7d#Tw{s)WpD?*sDkWgyEUOwPrE;in3%E_JBWVHGlXiK`p zHu2#Z0Xer5U&m>f@=1)?g8$oV8-i%3xuryx8bx0H-e_vGE=W|;<9)4si|v$8zO0a} zz4b2}$ws<>0T$+c{3w4S-3lol(7}RN^KB9t{SSj)TnQgm(vt2kX4SPzoW>wZ{k|Zk zG-E|=O(i;!C2OWEnh&;@6+OCBG`Vt3sQgH+7EPGn?sv{^4n#U{+Q^PMOABeZV^&yK-uH87F2q-{oy7 zwZi0U5ReR9rO9=B)Kc*T)-pJG771&pW2b~}oKv#OgoN5= zj)g)ilt?#>WuHwelHZXTHe(X2%k)d@6F+R7%xYjpkdX{)RddR>36gQN;_Irp=1HrTbI7?A64QoIl+dHTJWRrN$!Y}3aQSB z`i-&!$8O`oplgK5zOyF4&yixIytDE-f-NLRX^7&oK-(9sC>n6Tq0+-jIF`n3ja*0- z89v?W)hoqjbkb7hm9JU)U1n4v+dXNnk6i)|x1rUj7xLb=a>M%cvYX_338|X2gd=mK ziq3`kY~p$1CL_xM7ctg;hc^L%NVbo$xFDseVWt&tlGh9n)%HyuStnHzFK(TWC(oZTtzHz%DY|x)CdYz4b zSw{?`eSluDXhg!oB$ORY?j8SFnk~H^W?hxAL-&IQWa$DuP?AG~?51a^>+0>bimi-I zN9KI$>REO*9QxkU;@&f?Ma=e0`Nt{lttszxkiGd~nDADZS9m(8KsLKVb@G=kSk*o8vbx9r!u2i`}>-uyk})3GG48h-BSKQ(MP2dKT<%^-TCAHT4Yrme-PX# zNxA2xYgXc02gPT(Bh+=TuOa3sZ0fGKF~AqNO2KXW z8TTzuQ8RoZs;mA%hO_f42wuNJssP-0`KR{0F2f1-Vv*(**HS-)>|NnH5p6Cfq2fRu z+E;cTOxEKx%hJYQ%g^#y9=ab#x+dFssoJG3;X*qOZg!oAxGV86?g@wU`r@x{+V7uj zSGGmtRvSqG!shX_4IeRv*RkRDG_WIYS=^F_m|~rXfW_P0PjK1ia9@$rOQ8NF4Ux(b#jJYgc?op<7(faw3CR>x$^% zLTw!5b#y{@#)_AvE3(J5xYJZ~rQzehRU!X2 z{I|&OM3R>)>4VnQjvz%MIzk$j=X5slUtRt;1sgO?@; zdr#&D2vZ;_gXtIuD z8H$gh&mcO*RZoR$2Raf&3Vbf$u!$#qbZJQ7>yiCefcfCe3Gn{pRQyfcJECi@1mNaD!43OXoX+0o>ot5r{pg)&{wH@#z_ZyQ|AKO+o1sDD8f&LrXB$~zc z781=7_S(!Xt`UQQA?Gi}p2|9VUZx&w!i~)d$F;?KQT8VywEoF=_w>Zx1r~gP2ZP8m zD0Bbq*z5QKjxFcvLc4fBgQ~rOg|fZSYbZgLTRtko;|;3azUC>Z?IN}P;4Tv`m4&7U zVcw>C-Cf>KrpV$pzUgDtpW5G~$+_0s5M!z>l)8K--?scnNR{w|FH^(EOPY);W}m60 z0WvlzcTM7y>oAGBEY`<~n4{&D-XsNp^B-)v!@JyFggikVaNo(-mx_7*Ta|AlIvUCB8gi`bye zsq1(WtgDmd7(amr_1#xai2uHIFcnAQ(U(P$EUZ3^#U>1NXJ}@IlIYm%z(r3Ml%QB&)ZF8+YN{H(aWu+ODiqcd$s z@Tm^S+CEE5T{hbt57-fq|HYJ)dGm7ttJVxL6a0T`>k;UYtJ}l?7RsbaIhO>uekWeGaP;%^5iNkEE9v9#CaH zHAR|9J4cN^_M?HlV@!G6{m8Qx2|(mqK__t7ugBx;O{d$CE}Jyf>EaYkfc92PrqsaZ zb*D)T0FfY;`yI(8VvM#`IgYb`dCaxudz;K-bug+ulGeIJN;yX{KShkX{Lb$>&0i@6DhSct_{4eh}%B4pJZv5K{+ZHpg#li;Boq z(m6%^a;TS1PiL^H`SreDy3v{inIz%>UfJQAe&aD@2o39i`ez_YCCM}maJhDm4}Hy% zPXi{N7%`A20y9ge0&ph9TU`fXw%QkWExmrd>~Reia|C4|;@VS$%KSH>R1NS9|AG^}(1uTQomhZkH4)QPI znB9$xH2NmDw(o*?UZV#m2=$ltIZDKHi|ZG_YimVSUzJjkrd zXn1Tg9$**mW(hl(pM4-TMoqhW8+GBtr4%Y`Cqxf{nqyEbBo@s+9IPJG9RnO+{a*GptB- zk~PmiM9>k?XW>q)96A@Y9$8d*NO0`eAMqAO}YdT#kGT5;q*ZKO6Iu~VaF~pQ)?9V#qTgle4>pauicg~N(%ca zk>8SlWCQtFsR}gA!>4upY~ntRl#kFQ@jOxf;}X$hO^Qq#k`>8T@&SX*;9 zaV*4!HfQAb^^xCR^4={F~R>8Dyj{}#PUN)xA=xx{$D}hbCUa+FA?1-ox%MiQeKfj+E z^)&oK&tNuGk0_G--cK5(@>hyPx7;I{pno23fjso)FKs#(-`kkZ0Hi|elG{HYWmoi~ ztTj2=*?WZxY$|*Yoa`p+z+mU8`eCw<+k!UnTCPXiurYwx1P(?tB%56cT#FRuB7Z|1 zyhjvYL09nZ-!w-^2m7kDNT5C(zVpowIthXv-$;bH;-hv6_#li|P-;;VHVD7t)N0@P z*!(f2o*I*DJ{~#1p(e?fmj2%wR*1Fn%D&`xR2A7X#9ci-A_orv3uxzwRsVhX?O9YF7l&)E{3pk*tVX znew{>aLOODjVSw&cXod6mfRiuc+RCLRnoHqMe5wS>u9Q$r?DkN_+|S99_6jIgojf;y8lk4edl?)WNh1mkH8$$}R%YQbY|+PK!w zRgnD1Io8HZq=x%?_JTlOb^N@fLz+@P+P`1YTgGDm>?&6-IdDM4*;yaL16o(qrL51F zomY&kP_(Qrf_K6Vk0%RMJpgJ%je~=u!v9Ffvc3x5IVbE)1(=mqwpFKMYiM(*z#$Ae zychJcv;KCG;Ibg9ySUk^bN)1;W+`JK5^im+A~-KzPp9D;B=0GHruaA^Hb=}P!il{@ zV&XxE*p^GV5Ju=dxfu7hkVeRfaF<8^n(kcd_noTad?C>iH2k}5+(Ag(a$2ynttfQ6anonO`90cl$3)6B_t&O}-UGG+s79)&mc77>)gM(X?tnYcMh-L5c9wU8 zFBCi{O-KG=L*EtL$#-6IXL6K2m1z=Lq@FCj0N&+bH3i$kWb^6ha64M5|b=zP6*-rxW z5)~uKkyP$p0}qoWy~}I!KL5LKxZ(NA5J!#a;*3%-ef7J*oWVQ;P2j-yTT4Ww=XicA=X&_rK`Zk zOiD^B8S2sx97KGP1vlJHoPG(tYRO+;tf+q~z&BF)5bHIl$o0uc;e%!$He*xg9>~>;~XV7IMe2|T+Km!C_s!@Q*ds|#& z-*LY3bdK8X=H|`I8)sHxu-j3%qKeh4*O6F`uUwaRhoiDr;*^UY1Lw^YmamYnAX&Lt zBU^7MB+S|l-SAN68VaB2wez*yFH-jwNRLMOED-lIzk(*Y6In3i%r_EqzFbGWf(GLQ z829opY1Ve6(;B&&J0iyiNn}y}$3+l5(Sd_W?6@r)_Dhn-rNsO^q!q)!#4aEJZA&hJ z=-kp_Q?4lGLN_L<&$aT4VbHcmcc9ke&&at0=n@ZP#TZI9mnRuwcdREApY`XtdR@TD z$C0r=kJ!iujJiC2nbI2*IJ1qU^h+96!Ly1+ww%cGGzk%&Uy54hmK9EvD~|Ig0@Ax- z^)gAGvC3o)zA0wkK#l}(B63w@j5c+Op2K?weLG|7NOIbHNK{{0UjfV^RpsG^x0qy| z#ZO6xmv-Jm>dt3w@@d9f zADi^bQ}f&!_&4y89dCuwum;6!J3L}V5n5QZZM<2Ba7=zo7_sN|*p-LmW=rVhda2a= z$lbUBK;$#k3}ob!o!a-Owep@K7P#v++WD0WxpmGk$s6WKfguM5`pWqP)Do8ixm>3) z)#VxF&xxA$_lnfc7kVcTUQIjz7P4Re2PlXkmBh2!9Ki=M3W6%OBjKHAABIb3cFG^; zeNhHhGpG0~h-v;N>a;ve5(?nS4u1D-a;RsV=uwCyy1_b9GE-nv!CUUNCf}ByAEilJ z5aYCvr~??X3iaVx5*+u-Qcer)PqTTK&35V=4^QG!``+E0|dD zFPZ-L#Um!-hX3uc3+R`JRD9Ezn~1F(Nl@cIsc|eR)&PI9ojxqm=`H%eHI2GhMeR_T zhR5vUJ5^U9I^>7w_%x>uSIS}q<+eZ$sVDvj&b%39fvCEQinyh*S!48X>(@~3|21v` z__EXAO1r#Xb=kniYQK`06Zm@%!sr03r~19y{?8Uh$7&oraXF6EotX2Pul)5x!|mpC z3E&`yBzp&GlKw!O|8ahDk-{3-+);Tod%O`RM(G*H;n1t~-)cW^f9`0zG5~6F?*@6W z@D7Fv5a!uM7`vR?R*=TEtBHvCsC;4PL3-o&mX(Bz ztWOLgw8hYECZ~j2`bo`)^TKYTd`&cqN+T}<GFRh82Qh=tL6iS-rCo}i#*{hRbBPAT}ThDId7IS+iYLCS~7g+aDaI*Jm zLgLL44EStb6UEDM9Xdz2ovKfXBx#W{YvSS(zs%hC!ldMpyg!@}92~MzXBB?9?Sm;| zQnT9FOUj32@1RLDGlnT-$9XbYZp17@?&93@W&$#=cc+IC*)h-&Neo8AvD%-2e5$8) zx>3l4oZh^Qu8|H#%}gGXV2?F&z+^6cg+v_7#lz4hlFf}3UdJRSL^~UF%F}GGrR%f^ z=kSS5lK|b42WSc(p{8{dPaEB=Z%Umw;Es)7ocleWApK*E52d$S%uYN8=s2qbNR~e4 zg)(|QVpZ1g5t*bA;z@&+0G;z#1+tBLa(mz2EkBKtSXjlOWl;-TGG`pG_kYE->@4Q= zmYBHSgHvBggjpHG5Pr|(_pB8QYt!sr2)u3zUFo9dtWM4uxsKYsUm^fm9bLITxj;n6 zuo%a8iE?EL^3`Fm(J_@~+b&RtFj0ELqClgN%~5Z!;5;8%^()ApCozZ61+Z+7$RlU` zJnZtl`j24=E)wC7CFHQNyyHou!iLt0_E5xuT-hx+lqeB~y?oTq|7@<`UNuMXvXl?v zN&LrdZ=}E!6+^8P2Bg)E*6*^kgEHJc`oN{s(}Zvu|6s^#NF^uxzRWB~x!}Q<&3;D? z)P&}U^XtE3g#QDDkGo1~#AWhr+xRvq`Out`LF!i5)$`1ctNx)Di13Ffe6OHOA;$XXS6Lv;u6a|??qG5mUYA{nK0nUO0dqfK1^pp_ia1Oyx}wO`?u@c#k2qW}Dz zuqW4TPkL8o7&6lO8*;J9j#3o)Gzpg^Xl>IGMNc%4xn(=%%Eke`oK2C$oRWs|%#gV8 z{_626n>-fnq1y@2{Vr@yQPr}$&%ucM-gm|6LIVxTz4gg)N%3xA5}m|4L8U;jSdr(* z1-Bb-8V7&W6vp9jz)4N&Hg>x=^RZC9S=0+yz+eywvCUj-_+p<610NdS<^^RqLZ(l% zFelXCZKkH}@GB)9n&F@^K(Fpm zarb2xm2uV_Pk|kES~hS0lKGC?K6ilrV_f1h#_Y@%t!c}U`X>NW%i1vGN@3ZEeo7F% zbBEnKvD*9e#MPuB{YIKnwp9vjX2oSGk+d{iQh7P((o&?CuLVLZ#7YfOZ z7Cv7qO2~@QG56J^k{(%e^JXzmI-(~m~xa%k@KeX~)#QDv`0Y|H>BS)K`-nK$(*X5&tfZimNc zVr^<$uH?RnSiSorKAb-I%-r0lnmZO&k4=5yZJ5MFrs>Ra5EnN3OSlKw^4OH9TSP*K zl*~t^u^d{G^yt|^!B_E=?~aSE8g2EB*C&Hv_4LcP8$)+KFL-R9Z;LXDR5m!&`AHV- zwZwx^3w%%NJ#(tgd}U8-%ii5YrGo7dFJMmE@OQamu4(HHOB#-~{g}_!uuSuy?jGfw z@;fJQN{odd%tRZgTbl1WW5Lim!&!KzOlwWOElq+MJ3nOZvE2@QY(L`$mQm)Bk!hMf z29rl>+vh(_1u`^Ww_VHUgPfNw>+935nMl2RQIzO(tNQF0eX>Bs7yi>ZlxA;MX9)Wj zESr0dO^8-I;SAOwT`&}>K`+--J1=Z`I7F4fZwdvDp^9fEjxsp|U-a+60*~geweyuK z(SN-&&65oq2&HLx>{F4wPF*g0y1srPYznOhfr|!SwnuBLjL3*;C^Dw*6+U~!k`@SA zn+njs3{W#8{im{GtD0{4rHKUkWloLr9N3KqnXC+N@{a8@7Q!RG=K!Q6b&Kc3KG*!- zN%1?|C)HK$o0yn}Pk}GEEPv1#(ll+6i8uP^^G^UL`1Z|w6ZCQt+qq4ALAk19G`bB_lmk z$?#Gp_C`z~8}&!7-vw4KR=o>+chq-VqF{Gn#WJ=I@$`l=J@=Nb`2ZZT?fkc`_QOS% zxKF@|8aAl2^UFwZ+)&yX4GHwkdYGmdn|BO4W0ro`)2Swc&D>VaU4RJ&DAFAjD(RhWk0u&&V@iyG-E(0{aXE~3->*2b3a-7vWUxJ)fqH4K&Wbv~ zJEnW$FqYoqj0r+*b;!rH@wyiVxLo-Wo@O4tQVyOG=u^M}kOnkc_7!b~Y!Nej`S_)t z{h){0l_4JIcSM#k3r8)W;~Hh|iBGQ&$qHHxSk2=gSv6`Vq4=mG{@1Txr=MTfJUiY4 zXtl^Ua9doQrgSDl+PJ;Q*XZNjc`}c6I^<00N!s3V*%blYj#m#Y=7fLrBh#o zVk8Z0-EmhQhKQMw)>t11309>9oH$wqPEBOudk|ZYtq&(ky#@r;0F`%4pUCq3x>p^O zvM>;^1LWcT(XXH&u9whYE8w(Uf(IvxB>`OfRp12u|EWSY2mPjqc-#s5-RhHsEgx?* z)glERIlv)^GR)^kU`sOvCm97Gc*>HO#{?e7Bx*j)YB-M>Kn+|LeR#bQJdpXAkUjY2 z1;9ygJ0R+e!exWoqv-7!SZ3JF5s!#50_8w#fe$CD0M3FyfT9T$LNM@Jhxd*3oY<8Q zyqd4}orjSI4-#`^07inFKP6}Hc4cjJCz~LtS5)iA9xG}YY)r=2Pw5NaHC-?@+@jI_ z@jbY59|A_nS< zEkNPfHznq$XA$zvH;(R^CbGOCPh{!Uwnr^={LnbA*xt?ZXVxw)o&rJj=V6xfb;HZE zJFfJmygi=ofn~;0l*kO(?t$VxfXq<+GltIgR@P3HvJ)oP)H`Xah}4^6j--Aut?A%$ zhLokBp_yoo36>?Cb?{CNbOVs}LnEv@;hi3hCK}HM=*UCN5FWLu$j)|2a6)S+b$R{j zwIHEm#pm?iyx-Rj%azJNH=99cL>O`#mo_2>;kK&kpLuOse2_rkMEBI#0-*u~${BzO zPy&(Z--=rWPzFh__dwe2V?pcgkFp^IT8fGUVB7vzrh#W3k2e}mc>K?gmIfRBeOHEy zX@LNx4^Rzkj(3+Up3llXt+c!AI9WF&srps(vR$?m+-ysj?f$RP!5j!x%goA9p;B#a zZH3>FD8^GcaAi1kFJTUc(G&ve}$I?7&IQ9 z79I*8?o$+IRq+4n(?F;LCT+5uGvP*x10vu^hL&w;9zw&>?`tBf2ENi{Yb9&dy!f z?hl1Z!af?8nZX#Bfn4>)DMdm|KieN34|lY)l&^WveaVs6SykoupX?|38VLe@xB^g! zwVfc%R8iTM6VHL<2&&yqCB{Tw8rr`-n6N^`ZJ*eww-fsuq_r=awv+zbY9b5(l1kS3 z>&59ZLBNz-{^1?3{^9Yr)zf(ImWOU8tYfmrxMk7;E zU5nfY!geARFnY3Z7Z+0zh-#FKeY?McroW$;2m_9Ui%;0+LwEaWA}2XVjXrRfs$NGa z+Mu)bmM~R|regqTu`y#oni;Hpa~;RF;y6h|H}ULhOBs!vXToYC>af z)sI|9nyqh}joC+<@^Hq4ZPn@`sI}9w|CZP!z0{+u0cRL=rLvrqxAX|y4AZpLm>b72 z!(s1#o-3Cb=Z`;@MNObWTL*QM)DmVjj^kT{9GM$w!zzhz42Zc2$J{#%k!Yxzk(2O&iN1fpKXbsornX9-T@}r7D=omMNAji>SM)ED(?C=ehabVvDyHOlzi zH%Fi=FBOFLk;BM9-CIEJYVT2q{m(oRQ|Ck+@P-c`hciE{LD0o?8P zKph&B8t8V7z$fMMl5x9oeUDmA*0y;CS7U2LJ&*8@P1p1=61U0tnX2bk;XqO)K`Nct z=Ym1Ip{h356h+}rlH9?m+u(Z9&4Bp*v!<8f06oYYeoRvm5gl0uBz1DC%XpfDCp~;k zjyo=V%d?8A;NhjS_gU>yK}Uu8G#QTF_TZd8k`RtqaCW6y3g?;v0MyS1`2w+0`uFIp zq1f2C2Z1>K0sUyUEd>cNjM>TfsT`@2Dx!YsPLRiD*%)G%cA*dq?cU%tJ6iP~o)pmY zyjAZ?ZNJ7W*0iEOQ@VIMWU5{&r@@a_W?sRM9y+{CUcK8wMOG{r;o9+bx&07`fIlgP z^+e8&C9`O3zD)cS11)bZ%db4nS9|VYcM49xD&>d?M?Fd#SQeoXz}WjhY@Z)Fe-CKj zkA#^BqingA>87X;yUvr0HBOB7{1M)~@9!Nx1k%C2OG8S=7m>1YmLZk{6OHk$Ge{V~ zGs6sC9{ZHE67?Dy+{YEvNp_F-?`XPyfm^FsE)9NH>>2OaJLD2!yk;tL0Hsj@zn2#C z-WHN(9rjRoKY$g`LXt|IEM#9MNJvN%k)Vr zJJfx9LB%aP``TaMK#SGZ($AtcM~kvwrGSHv=^ww8 zV2BcPsxJkcJA4plAOQUOf4YH}Pql#rkc7L8nQn2?AIj&yL|Ab0isW4_1zhr10{O9M zWud0_Cn}49DLIz{(3P^FInt&QJ~a9Z)qj<|;|e2)C?^fyrM+r~?n(MvF?{ajWj+&@ z?waYf%Mr)BpK~XqO*sFV2_o3aV1D{g>}iycf0z84Q0ey`KwkRx1Mp@<5AGv5nV4Gq z*e=5&=3D{o$|MU0ZbD>MSlay2ET;XU9$Fou=JZCBLbu;z@qL)24(={ z-0pzgrIrDRQU-~*dIx{+au49e(n!I*fp3+8f*1kP%V)nyfvy`WX0=7DRFp#I28qbo zqGNu#G6HJ$Pavu*@2+Yq*XRyuK7zx(OI(Lt$VNpw8M-WexM|sSWJaDp(&h2#sHj{+ z#^=7M3@v37e1dfqC#9KX!y7&B2f#5!AD6T>K$`+~zs22|*Ns6KOHgi2Qt zgCQ zt?7Y#dX9IHyAR~~(IE{36>yfZXvKm&&LSKh+Ibz?Cy*rQ(6WgJRMNx@fr?wi0e&y;9xVUzuFOR0goLrgEf^ix51a(KB$ll6iqt&z{ydxVl~ zk*K8%tD}hFE0$lRL>V*KpY4n_u^7S=JjCjxHnw|4IZoxZ&flr(W zX-fqxrB&MIK_2~KB=4&;R(B4+QsE8@J~zX*8n>$a1mDRAG?>?_|JenA4cEyIm(KFs z1-6GRFU%nSbb>=UJ8c@jQSNP7X?eiyz=kFF!jwhw-%6IN3zSh@r0PK$?Z~~G1AX;@ z*BhUme>l4@*G+YKKNl5ZkM!fGfyH}ebE~DZ3;?MN6!M_~X#6em_UoG?VzzRi+evHb z(Y5Cbq{MI{R7Cc(aD zyO)%^1%j;+*@T!)vENJ!JcQr#yF+?TB6iUg<{aF-cZdZ01&L1AhXjUxZz9#EYThw$ z24l)uA@*Wsr`-g04R>Ngek+(a&BXChgY(H&or@h!zqICuX^qN8sXakA@0rZ_83;K=G5O(9yD9=*Gk`BZme-@Af-0Ko6mH zR}*uvmkQ@oAT-r!8ecSMbZI*+aZPo$YWDm`d#`Bc)2uSQ);ZfR?T|m5ckDWvp7Zx` zf!T41gl_G`67O?t6KNu zMQu?_yIApSKQ;V7lBEF6MvnG$aPyv+?r%wQra$w0O*`m8@xNWa^%npgufwUS{~{%z zGYbg(MZw?G`xh?%m!-2n`JL^JNEQAH)$BKNK2?&ya%~IpK~ew@joc9&_;e~4E=Euf zq&C3+$OeFC5(a!c?{8mJ0X*(f`=tFnIcI=~2skW2KL0H>5WsDLhAsf{5b$c3?E%s# z;K#;*?l%2)egA(pdBNV~)y~(sGa#KKpv6prs-H-`IYHW#(S9P4mqypjZObAA?hSs9djntDiZDPu4VSQS75piKzBwOq?m#(Q4jYD}8=yJp)K!4LDM&W6 z{J9-U1n1biiX4u(QD5q@a56sE5p)q{@V6TF^%1l^EMIi3qkY76hFkuar2WL#MTHF2 zS_>>BFV8A4p&Y5=-R@^0z+B6#>~BQ6LjwTTqWgL$xoCPUM&jp6GkEddCb_|W>Bl+Y zrW?1!E?VgU;wBwJ%cgaCM7y_11H5%95SB`U>A&{t$LEkgN-i}u^`Zo|Os+;6jSU+h z=6(QD;zgp$%s|DwfS$|UD`WgBVst5!hfWn=|0jO0$zul>IS0y|g z687+q4Bkx<`(GC>CC=Yw)t?j$^?Cm)5tl2*{PZHVwLOVB>Tc}M9g6V!r9BVe9lSZO z+u;@$5BT%48#Rh(_Bnz7tvI&b>g_vY_K{Qt@-~i_h5yxIzs16;!#+Z{`Dpc-QEC_A zjgtDGq03$N*(GE@(H?XDuc5~pfanZRImUu9@++0h;#2B#yS7l_!;EbwzSDvg1xtiv zw04sw4}Ge3qj*Qpi$OLXH1s~DuE~3Vi?a#u>g5euC4RU;%To$k|cFKb<1r1lfu^3)%`L$ zQ+~-Z%**_3K2M@lzL6dnVHLqre$aoE^kM?alG?P#SSCtT1&_=GNRM7mroT!akShg5 zZx{FsA3MCAU9<+0E@TLXUoLS5;uiOy=s_Rs_&YsiM+1`UDEC}I4*oa{uZ7FmKmnFb zjI7I|aFqEQsHM71Jne2L$eUK|`p$E8%y!{}%rm6JTh2+&*C{L)*Jgn~8VQC~{)72r z3xMJ_a@2nIFjBe^VA>G7aiJA{pHjQcw1!5|HdyT>qQVm<<|>}}mbHMpsb%X8 zjpwI6b2gu#u1$;mS6sbtHstS4zRv39Eic% zZ5D>@df#5__*uv#y*n39zj!=5{;jJqqjhuSBarCBbq&Zy=LxjX6zhf;tQdw3mB$~p z_AS6&6C;y&-#y!U?q#AsMeHiJA|KlixZ`7kND}VSAO|q|Ml}3Q7}OLH$xZ4$K2cG* zIqCWiu=_e6@aupRqq7QmqRZR>N5m6tSRNDsgxx!4A9a%0Z+X`kNn%_FKT(X;>d0_Y zeqLT5%gI38`kQUBlGxW?Q~Q~oQ)0`6PrbS(il>B54tViO$Nucp6?$_cTs+mxf_Rr&0T%Df31dyS6DK^`ikF)CbugUtxpM`yZmTRwGo(2X& zrAe-SMwLGpRCKW8By#dH!$Jt$V-RdaJG<0H=CRpVQr^d+oi~Uc05+;pdM&2bI^o5^V6o zke5&^zmeS;lth3^3cdkhMAMOBX*f05iHN`%2r1A>5th-4u;Fj>6Y6H)s*#53Kn!RU z6BwBXm*D7dHyxe|CXgQcY%cZ&!!>20Fn5A-x+?L*cbe;0< zs3vxedwFszb3jdM418$!M`TfpST~yG@D9-xU1ByAD@$x7)fwoB!OwZCsaVaL+KTvRJkdq|JM0C={3p`@1U zjRurP*xw*lrGvVWLiOrU^1VrlpXG}@#Vy`(Vv;jn{;8=MBWr-X_3PBKhv__|`#-5k z|1*2y7jpV<7E`ItE>2Iu`gr3N=XUcF*fQyNN&z@HI2|+V%)~S9t2P3l07*_wkXa&A z=;EH`=U`v8A`k{9yd4OW01N$p4=VZxyLrpG>palHG)+)gS_$CBuLoXdG~mksWHaLK zl56?jBQOKBy7JJRP&B?%RTv*F;)1_d^!#n=|N5*a%y*OzF0xx7v`qyN-@PV>W`MYi zOx4Fa&Ih<^Iq{A!`=B1LS87Zi#)&cEy&v7aqCUa~F+BTTBmgGvg)OkJD5HL8y0!TB6!3V%R?A4^UX7<<0+GrNW8UAzsMn7n!WVUwni74+fN_N?7<9q6K%ap1=nzwuh{K9b&G znrDy-6PP}mP>{v6p61-T^xWp-Gt*k2inQRLcy&XE8`d~gFD2S7uYg@|I2AC75$T0CTX>XIeaZWXQqVk9=g-Rvi+sMj>q zfQ_;-|GF)8#yt9^kY?giq!gybT!q($!g+4Kg zWHk15ikF)f-NEKi+xneAmjEA9TEd*mfbV-)NEc;K`OC#(Ne4m+@LPFkK1h+C&{&O9 zfq;4UZo|>^U~ylGM@h$LKzU)}g6rnCWt=*|c2kZDb$a3jG$#%l(rttdK-d+gV0yB2 z+17b+qkA(H7kd3P2zljug_E$)I#zH>MAW@;S--90n7uoI zJ0t&cnlWqLsWt*6-7c);ywGTw-Nihx%bYx4w?r34GhkEqFL$TKAvldPqcWpwUV3vESRre#El7%UUR34i+XKk@_ z0CKAYW6aMTYo}f{0$#IMJ@uSv-tx-E(*^yA6;+h{Z2Xk`i|?gjCxdhC*sOQ}^TT=lg29PR1>lb?e_W^r2&h)tOkWh?$$R}mv^r3u zh;PZ^4)I5^Mmkmw$U4thJ|!Ac6V0}FD4o^lEL~2^KE++l`|m6HIE4z;%DT(cGGsu| z`^t_E(zfxWb#ie0#tW$OOxvh!!L)bICqS@Kt~BjvZO&t_pFE|Tsirfh($`A3?z=kn z!R^N>|Bwi0QY4T3$Yc*suuk_=WlCzfG_m5FjRu;^W|(ZZ$*ER0$`Xkw`Qmm8oXL|< z3(ua%j;|Q7Nv}MIU5(EiR-*U5ZYFKir%X^V`Z|wN{&c&iua1Iof?cbNrob9y_~iX^ zYJ#VZ=fkeu_xAo3Z2JYcxVT;P3s&ho@O?_wxN^GO=fy2dEiL@~iYh8CMlr#v-p*AV zExK`tHGJ8;{54FY4@_P1(QPf=(WCD7?AXVVceQ1M5k(0^x~)%5YrKP%ibpKw+U`f| z?2ft$$Ur_QtQTBFYO&fzJnrCwBcDrGSkJJn55pTNWwhcUO+Mb0Y{+98vDF*_Nz}YO*}-hM%>UAP->5Awji9v7c`?_QVa=HpQNq zpvmE}Z0=jNw%iO%l7|OPJ$EO!7=)~>9jzNef`(+}d zkz=kU%CN7BlsAla@W;a|6fZPGZl5-3=w^TK0T=pM*Q6()sdJqu%i8@u%wMi1feU zzgh4#rvRcIB>cEcXIGw0BI@he_p@9m_qw&t7M!NJ>_oUMv|2S5GQ&B@PPlhi0Lf!$ z&+axtjo}NA6~k^OkFpB5565+OUPod+cU*RNCm*SMu8^&Bh)Bt@MyU*=IZBL-k45k6 zV>*;~H&g`SmRrS+D1CldZGLfl2{5MsugS1T$7SQy)|;yLKsx8i$(Z_^wArb+bRIeu@=uqoB2Lyq(A-w#2%p;)Kw?zFC4J;`k-PO!whTGCk5}G zlk#i{6V$PmA{%d2?D97knTMcIdcEPjW_HQ1Nq27LQ!P z@q=wX0r`ToPlY(f&2PmP9_W(LzbBjrk~Sc)mJ{i&Glw(CDlrTAX9Xc^{a)8o#XYOQ zJ{S-sa+!6_P0&DJl$A)fGiHyUs!W-*W7mrtM!hEx`*Qku{8GZtv(R0)8xb!%=50Nb zuMV4aosMag`Cu0Tf|%*24hL4}4?5#hX6_fW6ds2ivXz4#PRGeK=QC&K6I#uw+B$?7 zz@T`ZS28?eabMEr_S4ofpg)+@0yo240fu#%s;!ws#woJ?3l3r(;;4is@;foR72mQ> zFQ+%;ZJQ68@`iFsoV|Sx9qEnlnM~(aB+#^64i^YC;fB{7=(H|a9ouf!gqenIn&7Ka zM4QwX8*%ll!k=`glgB$BFSM4B8#UtzddoW(pKxYKpn^bdE{wa&xoM{E$34q~VC2Ci zTBVd!c&Z2T`GTcrTzRcS19nN{gN)P82^DK2iLi0s>2J5gGb1FBU%-k6`Gq#_OIAXZ z)JK}T+vDygxfcGul&SIrGV6On?1C+Bkn+X8mc8Vurn(mr1W!6|pE&lU8eDXh6WY;c zv#yM;->e4VkeZ%o*ZnP3Nt@(%bN*j(-no7-8ZI5T_kk=d^yo|EWk5fJ8Xz#;KzvUhOCDkR}f&EI(5V{0>PCNMA%N; zsiUA=1wcg!?d5g5X+2&cL!15BS~q)sExa;zv*(e1Phh+2np*V>lWueB`eBM0mf)NS zPfp{voLE~IEv{GRlPtCkCPXio++-P`3W)@9>Rr+DmKU{E8=g`V(B9DAL26PwG7i3{ z!|Nv`6_m4r-og-}hN+L2HpVOAVh=moV!feH0+L@sm68Ok&0iY2TA#UoZq$=ZMH8=N zBWU=K1U&Nj6(6gq-Kcyu7VYuUtiM7H(;Tr&?ljjYvVnafmE%(Mv7%QpO`^erqKV$D zrOs~7&%FYW`2d43QHQncvs1RAFm+h!Bbu=??K5G!f|2{lkG7gd-vSsf3p!1Q$4UD> zETn%`KJ@9A&4PO+7T>L*j*xDVKp2GLK79C~@d{z6?hNvC-tf)}>K>tU!35(OL9iNx zLO@oZ6Ao|%d@=2ad+eqeBTJBOZ_;L-<1PifMIdY(zVdg>I}(@-Uv@x%oCI*Y+CcnT z1@OJ70P{=e(r=4-7VH1x2JBjg967wTzUlLa)dLAM5l<{i+Aasgb>(3&+yb}A_ubl- zsUJxpoy>Jf?iS!ink(R37$iboQL{>VcCuf&gMPRS7Ex~@W2kek(0SmOcFppeufKsu z4bKr;cve^ODqa}-fdl&S{mbXRTm#La1k@rAZVY`gk=?s@NfM-W>hkdL$X&f;0UU13 zfNKdNIXZv%e;|MaQa=8leaL89jx?XoBs|{8C>YvXoDjxSvymrl_;(#37tL zbIWvWj1V<+M@eBuHX7d*pXJ3ZWCed84+S~Mf4WlQL++bE7-i&bb_#M_?FHmt!_)$vSjo~0Z~^d(6_gP5jyozI~k z1JOgQo5Yw?v%OaM92F(+c=SrxFjglY^68U(!?wtXdo4jp%*rPUM7>olJ57}hNf+@D z(Qk(6PY2Fm>-Td>`UmjH(|xPyHx-hno*WYVl7@W&~Wg`riXevfzP3@tX1FWWw+w$$AjS{uw+LzFaS0|nb>ncq^x zJt-h$oQ8bW#IL`B1vdOtTU+kRl`DLvUAJ2v&3GX0x71Sz+9=)Et@xOnOhv!eoh&@a zRSpw%9UzoMe&mWISO$TcPuAGW%*^4?dKt6F#0mN!-Nrwe1l77=B!gN1p<-{( zy)pH9^jOzxdsa%sWB(pZ%ssj%S=c1=>+Y^YITOa_rT>xV3Iy|C-@l`M8T`h;(0fpd z_3MwS*T#Sp3;tPMY9_{rh)PJXnEY|u4|%uo5+TMHa?pO3TS&WDuUf@ZOYG`y;<3c+ zRVaoK4wfQ@7`7kdA~PLm!A`_}Y5Vq7Xk_YJ<27~#1%=R+OH!Mf)>5TdUrg?3KlCB? zgUrt{pD!Q&w4geQkaSBe6Rk*B!}RPMNXS_I?7X+O9u*cTePG?pzCMx%+nM&>-Dzv} zmpOTp29M*+0c_Z@-JzHN>asPpK&xZ`K>1_5`_LN3*6p#ctu zmuJbAiTvxv$R&>}TviGR__(Ue(T#_j!;GFH_BAN@%p*^1m4cck&cx%b1z>FZCfu0=yzO3kJB6DYbWwop@%#sr%vl5EYg&^cg)y0t9h54HeNKw zbYT9wO+WudlFY2YVk8{6 z0qzM>j%w7YwczY$qE$Y&G9AIh|2-!^x5clY{6I5$uX98?em^2!Ix4QH81fQ?Vg9Q# z6SLXZ7eghUP;_S_uP3e6XPTNoXL#t&0y+Jc)&?0``Ivxq;raf!`3f$v0qvbnzU4l3 z28nUXcek#b^W94)V)su@9S-5JPJRGkK2$rYRez+#nV`O(DPSwJ$8>!do2>d3FpEEo zrRTXM8i+JlUh)31Em;8+F*f!e-2*1BMYG?PWzn_YE6tt|YRMGcet{W0WSIrxvgyVj z@Lk2uw|gFZISYNX3A4hhork$NAkAg%zR!BJwA9L*c2cte>}E>+$xOwdQFTKV%esp?OBP1PtcOR_ zj%JUKKLh=c5zgDPCFcvaG7UgB{}D*gQIho>CwAF3v5U83q?)Cgy^*5@GJ1%7$D3_Tj$J)oYmyjKs zxljiSQ~NKu_rf1=uQHPJ2!#T1Q8b}Vj||&yW+SaR81oj+ql+M+hAeir+jMbo_|pTI zB8Gn8I0SMEX-{K0yJPkOkF;ez7t759B5|Qq?DsSApPIG4^}F9oY(1gGSZi5 zo`+zA;iBIfdX8qEr(Z%C2zcrY1qm3uQwC5A>Sfq8S%8(d>;e@xqS9_btolI;5oN3c zJ|zjphgU72d6^G~(x+uOKlZB&r8oZU*MzI(%a<0ed8TO$b1(L_H+1RuG*p1N)bWM! zD$-@ET=`)HglNo!{P=G3*5mPr+{~5|bauXz%PQQ-Vwj7SQW}fi~-!A0tjX zlvc2C2yU(!b6Rq{`O{0=OZ-5QJR{Uopf+gFVeT~2xip%Zz2D>-hTJ{->rg6oA>-9` zZBiC(8p(%uk9Hp1JLLzjk#tVLd)00i-?xtdH&J~x-|W5^(YhZ*d4yCx>S6NwHTBK+kEhe|q>%MR-+5C8>N^Imm48etZHQbG$y?}mew(c)si`ICzpx)+%o8V83 zieCwOV6K@nSdFI1dVRY5X$oO1L(x|uAT5Z)qIJxp9V3L+bt2x?J+dZ|Wy05Ow z?(v!7BTsx`tK|zFoAUge<=(oaZ)wzJDX=puu-BWkSvKLK+uy6riT0!ej*9py4ww=; ze{rF%Qzzq0WB=hUB9l&7hCE^~Z+o&!W5GkI5>)f($!QaQna@K2MQ0g~SGc8f_vFAi zsdOoMjOqi70x&U%W%PaPTP_89mLKC#QgI!}mZ$>?oO>OvoS3q_YbO+wB9(*Rvn*6S zyJhC8_<3gwRdmg0XbJVgL9!5Q$)2UXc<>G_)+oG$p0d3Tt;TGk(>vc} zeH!msMO)-ds!9`M|E5-1u`Ug#QNT0C&xd17blR=qqnjoj%{J?$G_4Uf$Fc&HWZ{Gf zRX_+Sgm%UbW~gI9H>z^0i$W?w+)Gj%t;Mr$XS*b7+o%K-){1jm=1a%7E8~E2uuu_P z?t>kzBF2NS?<`B--U+(aT;?*{A-YMLQjdutcl9?q(ed0av^&aw%$h<p`e=!!@d~93 zAj6Zm_0r*AfG4Y=D_$VLL8NLB`*!ahp#sLXg;kP*S<G&a5;V_@rTB!Bh<)Pzu)$9| zW`G9$&{$dkAnMnmf9?>Y^b)ww$!q^Bx_o`RrtFA~m3sd&Y;Est+B`wEx_oPqQ}*aW ztDD6PDg&-(hRtfovx0#kbmPy!yuMvq%9Ru{F|CyD4trgUj^D2#Lp9JfZbq;$gh>Bt zruzgaGTdNbdkDN4B7+;gdB~sg<=7ZsI{q5cAwLk~$YntEJjngf00qp*zF29>%Ou5# z{1_N2*ndX)BUFEy2c|GS1DNv%PWDSgtW93c$(J$gME)LpJ0BTG5y3feBr6q0+?(H% zDfE_F)TIwtYAS%HNQA{GrJke0FB$el^-t#nQdbn|u&|`A-SW%w{WEb?m;D&A7*($V z35(yI+kqW~=z|!Y_9<9-=tc2`4p=r%c7erX^k)eLfti=;Ao;(!NTit)2pw0({PIW~ z$;wfQe=J$K^Pkrp&jd~ppoypIzppFs?werw!QhKwpw0|bqx(1Luz+jmpDr!@ab+Sw zFqqiA7m*{Kc6xCq_)>3_`3VUzrP(^-TmE^H{L9HeW8ez=y$ENC^hw!;zf^)EK85(` zyaS=qut%dfa+!vTFH9#MME+2H0VE^-`&Q@@`tT8!|Mylm+Dd>JuKQP?*3PCA<77q|;C z^^v$mBJrV(4v0%2vO9N80(Q0S-m#4{!=YG*klFVP1I6@FAdb$x6}gHOt=%Z{VTw>c zuClka+B9L<#cYd_o|}U?B-A&`r$z~R>y9jp*1{G&zfE+sS)D~c==%(N1hDUPwUppk#`hehqNP_f1olBLkwS(yud4e(=bvk;lD)fo z1#UhHfthM5udHCS(}iNv+A5Bs`h!OEJr3MpVv<3h)5RSU#(ZY!ZDKVaBhjXt`dM5_xjKB#Tvze%ZclY z)R}5h_!63Y=o|QO(%&geE(!J96Ue znABTMiE+};56>N@r%`11maJYnaCeD?)9$3j%J(C8;BC+d?ol&)m`hW1PIi&Auu{0y z9n~yH@oAN5!)Y4{Ca>;HT_#%Q;+V4hT91-4sZjhni1if>M zh~4{6V=R#*G;=3ob6NXcK~r_>22*<|I2PgH;vrMkcD_AN8O*liVB$?@G>i zww3ikc9c7CP`uhfw%5N!#2`&wxbEZ|ITt)IZ`i4=)MpXXE<3&^x*oW!P>*kTtGE1x zn=#Twr$;b!g))CnxetWNU;KR*z=iBCi9_#zL*5#SYfJU@_{RH5${NTU{8uhAwe86_tB=j)dBB`P{$VG zGeg772j*I(8WGBi8>>Ljw0m!p$$9UKSffJ za|zEX14W%%TgDdXlf*-krJ4?i`xO`949oq!tp1wYq^z%cAR{=O_8P3plQj6y86re^ zW@GFT#lB+rB@0t7)ScOlRSf7_5Ln^CQd?e)Ofe8_L@t0@W$>pteYK%+!eZM#4o~n2 ztB0>BZmKQqw9G^c-PS%@G-WWYx;|o(2k`=Gx>O;+h4$xs{i|on?^5BIiJEnWU-(Jn zooZDBA70plyr#>~9Te?EaNvJz2m;O^OqL^k2f}P;9V(6qIP zhJ0&LccqIvL2=C!Sw3>#8Zzpy7x}Ov3alU7W?BDh;O#!s{h!Nr^%K^o|2)b68dqY! zXaFt$TD$-+e)}(!@YhrPPwxiDD4{Io`~<~Z>ypjQ|D3Ua7RE&t(j~#{3~9q0SklO= z9O)ji?ca!!90zTD(5{$e_n&moJ^?i^fqua(Sd9SP@(`dAtmHrN^H1Y{pey<%#5gAW z2ZOev@hB3F`~Toq^etmtpbdyW*w-G7gHgc2`3J=Qdid93-~^TAA9H-qHu;3-X_e?VAuN~9XAq@vkNEd5(cnyc0f=aGqrcK)$D`j zz{VvJ-fdx#rjIc?BVolqbssq$L<{5OUb_nYHDJDWHUmK#le;o#7OOh7ND_*cRno`` z4T6IQq&OqZ?Y)F1q=_cs>sNidNQI9 zox^;U$d=9KWHB&m-r|+(KD7sdHuD{mx(W}heo}oB13mN?(96W%S4TJTNYHEZk{!93 zhq%fLQ)7gv$PX;PUu)u1sYx3FI$lE;w+<6DN^`~ZSU4E17^GXV1PQpyIsFaW603*T zLkgE|#Z?csYl}YJ^#&Hy@0W&@J%9*cb8P_8Q?5a&MI}gX&--o>-K2H?c`W7!xm){= zcI)-+2c>U6E?#RU_Dd)8gZP1y>F<+>?w$voHq-4%o2!4nltechh}cQ+J=mq#|3LL? zQvG<%Jk580ohScsrBbXZjFWN%suNSnlpdva((=QLj0o<}>yx59l|t!Wdn^w-zQ> z0T92Iv|O@?)C&NZF>0sWe2R}nj7Anpe=MjG!+aE99KCWsbp&FXPfKERJl%y~B?RLF zM|IUR+f=Wb*HIfyalzLu+vW$EG^>{EvupzhN= zGsF0~LNRZBwKIT)MYeajvp?bI6oTaAoyDb{JQT@H%yC%|)e2aSemKMo2>k zQ8r|OD*P-@HBJY2nrI7gLOO>yDIHqle>m60hMNRQuLuK$#$^KsPh6R|DtKC%Ch$wJ zCb#X1{_7C(Ai2h8F7~N?b+3HWbyB+@g0;LFV4Pq~1QsX*qqYn#Wz@F@bL0X(K|Ijn z))st>{dU_p1Bw_i))`zNwm2KA*aq(Aul}S3<`F+T$~ic_&OT@m;YnVIXu2vLJ2h60 z>IAoZ+>8%k8~6mVj+eSSRd$|Vd=Sq7aO1zn;ZS>5@v$;Pz{uZ zf{4?`JfG4vqE<&#xM3?wG|ViM{mRW72}s*3b%RA^>yWPfD0B0zC5!enaZmPqQ!7}r z0N{dEfxhns193r{7Dq$|5&NIl7Y!rj@t{OH$?-E8FY1-UtY!z8o3Ph=X2YH@WDr#bqo$5QA@f}i_nG6mClUhdiM=XE?FhP- zI5G}`uzIU$=EjSdYSgyM7)fW_FvYe`z0yJBu9vkB%XcF~yD&&s4U4v6eLV4x>6;$w zc{dg0<ZnXMK4bDy7X_2n68b?mHvzV8OBc0UV^W0Nc==Hf(s= zJiUfX-IEK+T8}aIuuwg}rSVF1%2W@5S;4ccz7+9O3!h)RD%drC;h&foe~5i+kw%wz zZ8xGXVcItv@4dt7tNvT8l8&LBoG?b9-eCEeS=$tn)#rVLmNh+H>lixOV;M^GcdYKc z_OMim>$eR+ch8+-0PxSmbA=5ixu$haJupc3tn-ee-*A!cWicVgH*bjuUQpN7J2Q1B zawXR}d5O&4i*0!wlZgj~Kv?)3GR5xq3~IW&yW`&1W$+ZzJgIeL;WJag_1=#vl(aL( zt+eG_LCwFv>9L$}Gha_IV5Ef5pr_uQW&axqONB?J{!Ft!%l=W5R&l{ZV|w~c3SOpw z6tAb~9qOQDhNIIMKd~_)Q47CtLGXu-CUm% z4YwH<G?x6m#8*{K88_K>J}HICb3B`MbW1@JBL(wztVLpT|98Sv-ssz5gc8R z$aaK1fWsgf5_Pz;*m2Y2a132Ae9Z9`Y?%Rl+Wl>H2@7jOU(U#adUNUJ(ni^e1%YY_ z_wKTC@>;(2GiD(*OqHex;wP}CnlAj^Pa?l|J_L1f#8TmCwscDMQn*idl-j}<*x0}e z`v(%wY0U*|X3pMXvCG>H#dlZGiyf_Ki$=Jt-Bnf8LpXx?2;!C4z+s-nh;heL__9%` zUUfuP)pwEm13q`PFW>(&^F_yp5AhtA?t30<FVSRkx2DJ8ZoE~dOiA8#Owl3bzv%E(eQD#p8~M7ff}za$Da)H9 zEvRGs;(@(zuOsT5Wq*IrA;I8tpbZX=W^qeSiF^EaxVR%zz_h!p$^wGPopMNw*R&n7 z;~b4c(0(fFlG*3jo7MOBTJsZ&DT!kE=nJ5>J{kY8=_IT^e6KIfxb|Q3+N$Ga`?xV8 z!zR&S-t+P9xtO!ywUVNt2A&)23wMDP9AbDCdJX%RDFC7RCMdi@`KBN#nQce8zDTuW z?6+Y``PLDAI)eagU155|?lK~u;ONewClomLmej3JQAN8Rg{rl4eI0^)D@ntQs))pIz{4jXX5RDLV?hXyW+$A4el4m+YCtrOcITZj zxgZ_zXzu^>+AieEffyC9aN*wrDmUv@N3D?421h z@mpgU*e-|GY#M3!yeRx2`u~M@LNhc<7gMA+r52}U8pG|6Sb;um=WC%u1NY7Zgd^e7 zz$J#(dJ-|xo}Anhvhk562coWD0XGMIV1K$V{~1JzS{N+!>Q zMHRyfJnD-OIUPJ%pezg|D77lc>IQKBKIZ(hfnI9n37@wU%BVzg;~ODrURkZ~^OGz& zhei2lv^19u+R9g)#TK?)ia=YW`H}4+q%t%C~!yn|2H=OUzpxo z>OO}!b-EP^#kXwuoNRthIB{$fu6H()l0udkWid(NziiXr!KdF=+3e3gUtnO02QQDl zWvwKDb)2hz!Bk1$zl5RkJ9zQC*~gz<+#nIa^^VfWwQJDt_kl$yTb*7_j6wF>(fr%+ zx3f6Y2R5kX;~I7wvD&7=4PFh7y5;)n&B&H2q^gfZ#ndz%# zNo_A%%X4~ePspc>A=U|E`gt`#;FU5|=aYA0thcMb+da_je4=`|$Tnv;(yo;0I@ zkE+?Jg#1ble+kI2j`WB)2bl$o+ufmi%-uU$>*BFVOjq#19`3eK3Z+eAzdYr{1kfzm2Ko z;v@f^+{?RS?8eY8v(v$uZT}4oMc_SL1|)~FwCsy_Ab*uiP!U@VptE1$BFS1V&X|x1 zq#uyLS{n$of8#rU+;0GaoWR7twe&>32ld3ArMU8P|6gD5W!X5o2}?R8k2U%hvHA1P zX0yXYm34*F+S5cn3t~`KDq_6KT6wE+FMNk^2!2|Bfv2&BHpD-!E-`1w{x+e@maV4h zV$tzhK#t7hfQhONW^ZZj+6k@>o^lQ(9s3%j@mr3>Z`oOasVN~hdTOLY9AKYrk85+zfQr1mA^KMvvoGf)8stu@_D0A3coa^IgB1 z;jIMYxk6V)fi@D{AC?X|ULf7qQ(~08>s+(Z1?atL9I{n@>Z=&=Ogv3B6t|dZ^j;RF z@O?o5Ez-+U*DY6F{StU(oZ1grG_q##0R~gfQC+CI-VcJc?lPXEG3_NFgLC7veRgAb z%Ufge&R`PeTQ`>C8?*v~X|B(? zM}_6ERZ%avF+ll8SKtae;u_PSWIvI|I+*r~aRKEqHt`p2i;Vcj%)0>1l}8W%9jTrl zK9vnaiF~5;*$nB$&3RBNQ;7Xd%tE42Itknli7iL1mkzT1$<)4rXQ@9%88NFNa6o ziI3VockhfYmfbp{iz2Z8jm6@9(mmYTT!kFHB;EN04@I zED&i`s6y|r$-ek2mS{XH?iTcDWu{|cdfm)nqNO@4f}WPwC*rt4q+XpPW>j#E*Ilf} zP|5Gmh~8(#9x1;Imy5v51~b@yC?MiXLhSVf3Qtf>RO8k4$_ZW5KwdowQMY`NTz$7Dv5KI0B59*`Epul%RN=fsV7ity_-MclH|LrC=1&Vv(5pw zLAo3`qMF&D-fptlOkke_e}uE7bN(8Vs#A!4cW23@@4$C|j(?yL*ym!tah{m)3HrDW zI&m-5(9X)n?1NrNf7K=Erg(lw9Wc2UsOmvTi)$oP&e|enx z&BufVY;~8o9#hLpE>94~I-2cxWH`76cZ}^L=N_0`zY_KEi6){@zO+JR;Y5QRC#0kM z<(Dqsm~V9~yEt@n6KcZ_?(Y3mF>)agAA)Dd1=4Az&7umMf~T1#uVC3D@V3Z^EE`l| z{`z^J{1MHtlfm2`+Zxm$wk9af)1!7YY32x1Pk!HBp)qiDs!HgGUQa_QJtbC)S?I21 z>C2fstr8kEC-%Ujy>?!7XWLUtSNBz8QqKeMlIag>q=;V&tl*>3yI0 z*5EX$*S6r*DSjTOnOeqS_a!<>y@M+>0V*w0U%C=fK?yMiazS zY2}<4tBO#ur1LlEmFz&QxqWu0X>5#+>qgAhtplnYe%9lLC6VE}llbjV!G{!Z^W_!q zWlNM$U*0*y{t3L%sAu8~2dB!T<<#2(GQ9cZ{i%O`$Mw9?taZm3d$n1}4})Dl$FZ(dqiXg0zfs!XSnI1!m5nZX&=i#_&UIoM_-pBrRt zY{wd(Ti@Arv!`4>@MxnF5WI7a{Z;waD(**87J%{J)8411hq z+!3*BF`1j@BKz@ME+A(rQ(2)Zizeb!GiIjFXNKtRAGS8Uns!rAROZ*i%MITx&&fsZ z3e!Yi(KJ>pb*jr>*V#|Hd(ik$UQO8#C@JH;={@ZD@*qKHUPZ*UE7M-u!=hmt9x{sh zAvbTF5FP!r0M#(Jo;(IcD`_{z^rSy6r4n(vcd$7w^_l(&veM>48?Bo>HjWVsvXoWO ztl}c5IH*5z9k1dB5p|Y#3IizG%-T@{>rp<5Fa8;?h}I|u#lkgQz85m?XqIY7_U)8w zpnvrbzaeI_E@f|003s&2g~wM7rW-!=^uBuheUdH3<31=etQDw8Hdv!ZuUl@MK7we- zce{uP%XGt1+{DnYwt)ej`Fn-t-9c5!G)7*TSFYdW>j1mCb;&smoxzDC*u`6yWETGO zF*?~fQQ)|GC+sZ(o!Z-g8fgj@JlH_hYpXSy4YQxZX=y(KVrAdb*8?Zh8HGf#OiF&A z1zMS@O9p!VIa`fV-7_Vs-HAgPh?37E_qG5f+Qi_MC{&qJfm8Cxx59etW}TCpcu}(W zfO!STRmGwntItiJCKQGCqsfS%w!*_4*CH+`cfA&lNkVFqRzwfAw)Ic}EAsJY4nqOk z6-QNZ8Bsjbw?jqN3o58p*y|h0X=O1uAMa@-p5@+P595NU*}q3%mN@5Dpm?2tR$`rp z71_q*Hb1}H!tfW#+8-)Q!nz}ajnC}+hK7&oj!#>*O`0Kfbx$4+ac5lj=C*&k^L=YR ze-1E!CFQqQhLDAUO-78ct+axG8FR@ao4!v5h}8|?WILuki5)?}K5kWWWcwnUnAgf( zXZS8$<9w<^M6!L&k+exX6`pbi1ffVtm?H*?a1nKmMAf59BM$C)J{x+!FX^%uEiZGz ztBQ;Yw>8pL>pAg5#RbMWUd-~ohMVCF@_ftwP7;RtRNqiJtWrJFI!w zU*MmhjzX4aW1_7UAZ1-<2k;$)HS*g)O*e>>j|?lU<0SQq***vBGQwS0JHNL$4+!Oj^%iY9Zedd! ziTaNVxCN?M8Kob1Fq?1GbGM?TeKa9;s3=~U#R2N-^UkZT`Rvhm&m)%l#zEbW*vpy4 z$)bKW((U6c-{v8^W$x7Zp-X4RYk}%>>tUulrN!YY%&tC?E^l(S?}Q< zYGa=a9zkMlUn1VC&k-#?(R2=DJbGcM%O9$M(H)1^*JAiMoS9Hvm*7c*TbT4$JY zeX{TyRD{`)mUpd=bMtOq8*QDWV~k@TjdinPl6#9$-r)08$em zKOjiJ2kMn+LRMahA^M=yDGFDnowAadXA#iDHGQr_e~P+gW{583%ZjkJhSEHCZz!u2 zUF6^4C!MV9NgH4#NUS^UlL6>D2Ai;p7o3m4^=wZ(}Q*4I7X`IbmyJD+c;@sc&@) zTF5rDZ>UIJjO3q?gxMavG9ha2Mq!v(Qh0@3*Y zS950`4%Pn0@l*VmmO;8{A>2xeLCHE2dTc`>%X2Li$vSeS&_xNkTC7<{HI|C(Tbh^} zLqwJ-%93iPlx2_@8N0#nbKKmg`#krr-(SD^bLKqf%$f83e$SlG=k!v0w(|O2kalvP z%OT)KjhtD*7!o1A`-;pX_g2Y#$7;zDdl`=9>L*481Lphifiv1i)Q$<7x(&3Xtvmn= z%sMcu7i&GFyt;~29o8@N5N+>vkNa`&0Dzw#g!BIrXS2_8DrEd@VU4o3Mb)WDiEg?{ zB=eB@O$}e1t*|zUup!(vK6d+u_AFkNea6+)g6CwhH#Ck)c2lA(8KC;yW2M$-x~sI~ zqr0;xZW*t`ur>3hdLmwo-ws4GWT}GOiJ^A4f>oViPFrP<`t0SiV>2Dw9hPkS@zzj0?LSiB9RM6Sm^J)U&LnZw@34ZVobsm7c6+LxL zC8dF=sa=L@(vSiv3fYg0SCv*%>En~>w=Xn3U04#!Wyb1H>m)SJI@*YHJUhczueFoaSUt1~xwVKy}IY<<9>oCG7u?sXQ-B za?xEwTAdtFT<3qwA~$m4)&36+9eb??K?4hC1^E15RgcsBFFV*BIl=C8ztbzbclHT= zm%(O)@K#L@btZy*!J{hkd(PV$OJ9fyhZOOd8MBq+o^;SBCKid*t*s9 z_K3Y@rXkj|He!w6xC>9xi0DunU03eS^cZS;FdiVVFlWhBD~j<#W~BD;+sIbQhdKUW zHGVEM#okp+!&`#3prG$dJS~ZIhd5!`6-gBY)rQ{+q7kZ%l0_mv&YS<4B#Jk!z}Kst zgrW4T!CzG@vs}!pA}(yU@BA9qq53E$0N;1fn?-%YQ(28T|10{xOfmfh^CJjwP)I2h z$q@u_rWHl(|NWbxxAs)~#WvrF6R>s}WMv5tvfc?;2VDHkz;3p_O}GBsc_9QD1EvxZ zZFb6NFB$I`F#_Y@jrkpT>jZznDnfhR|HS(g(4cD(^O21xoG=7ThOW4}wGb&Id&hE7_C zPjCHuH+LfV84Byr2$}n{s`r|M57`cYM_bb?KyK{Jya3GyJYFLZ=VvD$DVS34AG9QO z9m3ZsC0qh!&TbHIn|KI&BGN`8K=zX14z8J~xLf=!=AZg==Ei;8bQ*w<-y78-6SL{6q8&f zNVUU7WE1Dc>hRu!F~cq_u}hroKAQz;kZUXLKv5F;oXz;$FwBDmuY<*CXnjrx_~g^C6YUCZuRKs3JBRtk zO$s3=S-&nK(hY)v(o(0!j+h!#W)04s^g8i2Lb$&ykY;U{zl*pNvnaPB+>I%OsQ7 zO-`CmPnE8Rs~*2=dAKBwIW^_n=sFVLd-3Uf-7(SAU zdlAciSza@Q6S9|}R(Z%a*fjQ>v>3(qmp1F1`C|3r?QCJshzTtgB7K|NXRNg{?y!fY z+}#CIo|m-S^Ea3EQSD3omy$@r$y|quw5v9)@~s8UvnuL>ZYN2PEAzdhT{FD){$tEO zxu7^7vNbod+OTK-N{#2igI`B<_pOW27rMCIbzhD!rU@)h`H+@--nLdgxmNB9)J7iN!hmh67Beu$N13K zSxr^i$&NpN{_uaEu_8En5%@y1S9FJ%!XJ_ckiChb(G*f7w++W2fU}0t^1WkYzj6bK6D@0$M8{QNI>cKqE_Uw-P2I~NT zOx%Dmir%6J*wuuCA_Z8dy5CtSo&t!_UI_D8x>=UdsOI9p{95 zXq+mC4Wc?=o{`zGPe&(%-I`%eR`<#7ZHOZqZ3a0U>MI~kyb%=@Bjr57>F&lD=jG*f zP;^)AdY2?|NU!4Twq%C#wqNty&%v($ZNSS80Q7N(s~P)Mct zS0044$xl5(6WH=?JUXjI9n58`t zmqlv37X3#)bPf*no^8&F(0pch#mjqQis>WH;PJSvc}K}=h8pZKMvZS@<4u*oahKEN xfN$^ga?H|{E4INMoPw_P=<8pMEkXyE_-f@}>_4|x12#nvf`OTS@nNU%{{mx#Ain?r literal 0 HcmV?d00001 diff --git a/vignettes/unit_test_toc.png b/vignettes/unit_test_toc.png new file mode 100644 index 0000000000000000000000000000000000000000..03e62be1363a09a4db81e9ac6dd0a741ad767127 GIT binary patch literal 263153 zcmZsCV{|1=)NX8Z;)!kBwkGC@CbluLPc*SHu{D`YFyV=9+sTQIoA+Dy$9LDdKYDdn zbr<)pT~9xISG1anEGiNq5(ESUs=S<(1_T5Q7y<&y3<2&lham1}`{xbPO+!`!qIQD# z_%i`xEv_sM0nw0v{AvdKnMQP$({qD>Kok|dBq~RsBZ2)Db!%Mmut8w;gTOR` z-u?0YaLo+EnJvT$ko@o(09Cj4u+e##cirg*ZuyZ}^Q*-u1O^d{N-puM`2T+R0HAD8 zU90@>tpEE_7&1&KZ*)h>|NH&_yxfNB**cHgGqN*?6f^KE`~TI8H36OBbgH^^2ikIw zy9OeEUpSebDi`mp#B8}^n44QrOuQ5g%_%6?lu+5qH}5V|2?;Zy*3HvPQ~tsP#tI}$ zTqL~9l&@>Q+{P2R4DMXe0Q&Dw|??~32Bis)hm^fhjy85 zSYsg~>WS46YK@hAN6%{FUhcQe5L+K+hDtj%qvC>mj-TJOuqvtK9`g&zn~C|u2ZmT# zq*cT*6&R}2$WuP+tditEo(@Uo*t;L$EG{veDeD&1DoWfdP_3Ju+_^^LJd{uTYDQ(+ znWdw}0g+sr`gQxYu&ugiGQ#D9fy$&)Dh8eUby7XLsL_=?ltzzrol2sw0YOH*ES! zL}<2y!i|F}YmKQb5-l5YcKUs_$6M=W#P*)^smO?lMMt% zY{WjPT&xzD%#Lpu-l0ukI47%N!LIU38A$0)4XznyGuySosil540X;0L97Lrpm%(Hi zrypH40ZXPc7UgemW*5Yt^5nJH+iOhe>Cff&5hXKSXE5afV8O%#@4eT~_m5h@z{iCiNzeZMlmP+&4 zVo>&9;}96Qlz&XLIcPO@4xEY+If(x8t-rKix!xULSBYgbx?m9dAg#BC<;ysHKqif2 z!>^g9DrH&D3cq=f03&aMh6GrFKK06$lH(Hxa%WW)o$#YSmNproX^2K&#!|_}dz}cX zO-8FKrD+D`+|SkCV%h&irruVEZL%*#u)Da5>`KW52@bxafH`#{U=Wp{+-T@P(UeKp zICl|0R|R)@ z+Hg|h&yeaIAq%TR3Q9)!?*w{s%9BzG`f$k_vzS2~1entea;4ot;9T+EsUy`5_A4tO z1_4q{u2K0<#zdLxbRFHewGax6LwpKOUb0N8?BivAx$!Y^e+>q6?38e9^VngQJa%#4a{ylS9;gA0& zgpc*XV`jmEO=60U*m;iGPv{w^V=C;=i8`O;;bCAA9}*Ke7HJ(l7)k!R{X52u9K1v; zoS97XoHiV}FJg6V_9uawrVNRUhlL%nk?<*M2pJJ8@cav+59q$UQlDl=43qXijf^rV zA|PASb8Km{2!Oq{e;#Xpy~>Zrrjr-8$-5LuNbgg&z*St|CUxZJmJ>dl9}}%AWucUl z*tgkKD=NJ~Fg!LJEl7WJVfgP3xIZc_E}t54sWbv(9+hvSIB)*E}NB{ zU1J*RWY9xZDYaC%*^+-j=V(lx)v_`> z^7C?Z%W(K_+!)i`;{1JU>r*`EEeag8zJb9&`hHjneY0vZBw{!Ee+`Nq(pp#)l@?)% z3*Ps6?kMq18bs$rEp2RAuJM_gg#;rCO-v0j(ovX5oB*%_MZfU-=tQ(VK5pc3-42rF zz5??x*a7V8v7Fa@-+o59BGP<{D?Q!hM@-DMaWrT5cMpMWNzMu#6;E;=mLv<~o4=IF zs+eA-V}jo&{@x&B`*^8jdi7C*+n~Q^XD1oy279~!0kH-Y3;YA7v35c^sutqY1?S8p zHgSi-9JX|0?cUexnaK~zwk5? zCmOGAdtgCcN%y8@@pMHRJB<;~B<&9O32SgRPOjvA?wfXla>IXRS_qM5a$gRZBEdgf zF1@Yc&OUAk(1b)Gjq{nsj-G{w&|>l4VrXT-C+BX})|&E@csQw13Bd;=X`c)HKV|f7 zG~*B7uU|Vvx0_6{=reDa=124ENJ-MCla;kjKho@Q5jye`l6&2lS&0ehHD{NW)Aoqp zo0P-&Z>;Y)qvmS%Gz-h{=uz06lsD5e3#=;k3rL+4L_rw)>deDbk^bGADXJbZ9h~Nu zIbJOu-OAU%&6WyzO02Q|$tIY(2|;3s8+>vw7a=zXa#j7Y8dsOD&zIS1AYg*?oYv`(l{?R^6* zZ?O4GUxOMS-(*CSM=2lefAQWwm5TpjhiiT14mVqQRP+^hK^z%6KE!oowSlT@fo3)m zHq|McU%N6vDsk8Mi@RH1*+4VOz9JAj4w6Ksrx2idzu;OdZBDSaDr;*eg4571%fIP{ z#&(SBdGXP`-wF^7|8HHxpA7MlB2M=HKJ^bHR;BgH>ljAgO(z=!jdqysdSG!Y6a#t; z)NI10ic8}oRZFe+3z|E6&xEO7xpciUM^UVec7deNPGU#BEE~3#&^n*L=J!J#Y`E}P3ohAZ=*#=>2E;23O{A}kGt#xQ! zZ;%IadS5XQ7wIA^;ZU72Xm{hy%?euX<9($QB7E;L zLqI_Lkbk_HOhk|Z<>UB{82&l96r}}wFNs+y3)^?9n%_csy|z()!K|>vaX#o3ZG{lE zNACZ7vsS+<2phlh&E3mGys#YGgkBHx#-Cg$KR9921=Avn%vVe$rz=+=(Gy`;Sg3sX z>Tsg`J-U%^%ZBHukg}}c*lUleV(1H-OE2Jk^$STZ1%&-KbR&}-nK3kbJ)Z#x>mNaf zX8x|y=Re;5M?slMNXn}<0lxyMM0EEcM?=}8&QhhpQHK7?;ukMe#eogdHs4RBi0E1K zmbwedzev017bR=3)3@*rQ`DjO3dqkwO3JdDd5T1JZZxhO{Xsndq9f8=G?&-W$#et= zFdX^jF5d(?Hcz`HvY$e(2p)kwD_Luhv@152wo*_D?wVTDIQrXirOc69MD@Q;#)u68 z1EQ+JuX15Grzj6Hw%WPp_P_GXkp1l&DIll({@&FG)1p0E(O=S4gN!r8VPLhaOO@XnBW zR^5ymcAc??F%+@-_u7TPbf?;RH^4}@a9L3ADzDg=jo=BAx0>l!8U6_N|#-#mx>H-U5tY>@MyHsmHJLGwQ{!6Z-cfSmWd@SF z;GV;LX09n)9J;9cfiBC_hUG!BiWp>Sn36$xsM&HZ-jzTi$H6i=MiDA^RTXYhmou6!* zXkpjekbUGN9%jA5?I=J?p&Y5$6kG3y#-9@{vd00lI0Kbs;uGXOH$wN4x(REc>3&8t zJcw)Qd8&d9ax>p$|_l@Wc0`m07b2WaYBG>O4#Hz?$ZuC z0WP0X*VA;l|Jjua7SEZ1qKTCCm$JXxab-WS$thGUe*R324Tk|f!^ixg8CQm%DRGDd z-Zwc4@?!l?8lmWpl0D3E(-Xzl-KzjV?&)-h=Vu}slcV%ip9mtT*qqxy@#>1g>tsWwim1VsZ z6Z2=+=OYL{%Bt@! zKLN^;yzIdh`Iq3gVZnDF+dv@zv6H}ro_#6c_3x)e##Bi0Af2m%**^11_YXF!} zJGTy>|Hf0_D)?ilO^Utp)_x;p@+m*rOTdA%HyMfDqpAC=43DO4x!qLn1T6vXwM-kV zwYswl%x3k2w1s|n8$4$Vtwb*-F&;ezCJDTtA8kKP4i2(DN|$VLmNCOL*>|6T^76wv zC+Gxp_;^BBgcQ}U%!2s8Jgl8_DsC!>7?X(7qf^)i5;IZN0%Hq+%%jqB|J2*s+Ik1( zQ6tg#caNgk_81MyRaCko_QOJ#a@Gv{`v+tGp!<+9nxXk)V__#{rSVjcDb(6s-1d=! z1={~QXW(4oR|T*ELkwvI73iJaFBK)VYY6|M5T)7A1=1-Z)1Tou$C>%~dv zTAWP|O36^_vYaU|s40%(v5^ zumYYL&C7BI)sQ-{y0?!XHt^p#CvmjT9-aGr;tl&HAw7m(hDP2kK|f>z|G|Z$U6E+;ErHjH zKLvUxSmHUGm!`OQ*fgi$YqDk5{<0|B7lT$X9$Zt<2cWU0mIIsrdygF5_T1%c{;qwG z<@_j8V!kJFgET6BMs10gqm7uPG|j6&THkz&P92H+;8l4F-FKVd!Lh$?M)c*KvooAw zXn?l?f%u0eAiyX+HJ5pU-|iC^H58Jf`GBs?58X5{yiBUE#V?1kN^s}?QHI@SR|nfW zGRcg)^<4*Gs#Wq=waHr0X53~aX+`y;&Diz5MVXVvPc?^`?o;2?gVh*f1a7BpMJGI_ z3qn}DMVJoS`h+|2rfB*A(+XoBBY4|)HCCrD_ESr1a305)e6NoTq-`ha9gp|EkJ=g^ zJZ={scotwn+;Wy7@i-?Qh6y_Ky<46{H{CQea0ZmtT#|j>uh$&36npC}8++22eFd(> z3!9<>@ozsv#`>KtMwceHd7Pwua#vn6B-!jmqma56hHfJX z_*zjuBvTYgbjMC3foT5{8xxC(OA>C5 zl=cZE|1J=J;wNry-s0qEz}7n8_C^E+Nh(B@AcQoL;7a_2N0~OR| z7*dSPTf{^OkEz~(aB^qXckGowDZ72*Bc%i~yAU~qdLPmtYed>TaOm^>5Gr4FpTqkz z1QZ0uRpx&+F33sBJ9S!j z>HSb0sWBz#*H^M?(c?9#E3rA*h)GXE;HV0ga$d1Kmf*t`cZYd-%nMHQr zWoe)KbJ!hk$K#{oqCt59z)Q+}nKE9K4)o);6Z@ckYy3pg621fCz2r9nJx2_zrp828 zqTxv32P~J(%!1@MZOqZF@$X$MEUc$06yD-pgj*VFv{nuhz2H zRaLgx^|PD}te6$erSgySLIU-yDpWxXTp>IC!Y}>rvr$e9zZD3slT9C%%5*QUNMU&0#k}yYg}r-_QagzG2eiw7E}{>00U8-N1yvsl z;&zf5lE=T}7$(r^T8R$Db+iP0AHz#%Q? zkXK0w9`%3xZb2V89d?EP9;dFfFopcv`jOLA*oT;F`hJc>e&VoS5R{4~(%sx3*hm$N zyN&%@W+n!i>SUV>I|Vm8)HRV#9JiWW%x~g7p84jceFMAG@ms8pWdewd;RhRl+Z5oH zh*2b#NQ%>7M@zPIb=ZauZ@*xr!PGJi%&B@T+m*I;Ng=fU1(z1Bt<}HGwb?JDJR9lx z1Mc18Qe=W(N(x~5xveJH;b%MH&Wbr;9>Kxjx^33NQs8!!Lo#Fg zRwq(Y$Zv;-QE)OEta)AD9sHXVFubnKey^c^@;j8(@o(Qjpx<@xFVTr|fBp9e#rIfd zzQ)1Y!MjO9dt>WM4Ze+U63Z+hNc36UP$sFwj6e4DUN@)rx0TyC3M?hBiU6uKdrtF1 zy;e+e9*XtPMXk$%|sd3dg6kL+^wR;xggCXZ~`(Pxyp zOY$ONQ+p~sv^nPzh6jUX6#YJ~1>z>f(Pn=5-NG|sh?ISJ>{+yU5=P5>qkpP0mc1J=seIH~(HCrojAuO%u7|SYr7DQKze?04)n1+d&V(#q`hv_#EVE_AZ$ z9>OkPD~poPwvnFKQs?;R9ZsYv_yQm#0~U&c;a2l`9#pWncw}X&?Z8~z^yYN@a|dVW zb|vY31Fr)!=TTg2XX^7h@dq|sPDw@FUV>uSH2UiWA2uuS-Rhc!g9eY`#K7P2!!8mk zpZ61GzgT_OX718GXC4xq=oqEbFzt5Ak^_t4H^lG7JeG7BF4G&aDmV4W8Mc z(15w-)GP}}O}P(Q;vQ_Is=7AuXCZyf>m}vd!|$t}z8s6v5c*L0TK1AIjdu}(Nveze zk{yo)gAnS0SeCaZ6bssK9z>#jTQ4zg&+{f99ADgDxeg;nzH7}F9rybi`o1Z*?PQ(0 zj57b;T47|md_2W&VAP7G;q?4*rynQ|Sp+bb+Dh@hF8PYD`?~?S8zA08PRGQ6cZk-t zK^%v6b~z;2$|`Cv$ilHiTP=*Vc?8v1^OW(M^9$_`ve{`am573W^DP^L9d~Dqi1Y6J z+*(J+@p5GSY3PYd0W&wLsHI(&Jguy0pYrI|Q6A8IqQA(ktuxN@(y%CgDzfh1og#2c zPKI0G-SmTVOh%U-UcIURql}Zo!CyNBiIu0)#|*n&nkZZi{*@x zo_oH?UuDq1%hgTtI39;(JMbQP8IZ}VgJxDgjtiRi{W8Zdw`Ld3%c37T^$j|gw;WA* z>-3bd@bU!{uMRAs>mxiTM5RW2=*uHgd_~&nxe9Yn{d}i*^;+r61<(3pAbWK?Nl!Uo zTFh59axZifaA*B7NHa4|u^M?I?7C0J?s>`{hWmX0imx}Q(Ca7&J+OQBq(NTs&JZ}W zRpT9QzrYUr1O@%fH!S7H?fS}N9uf}wF7ct#;r(RSt^`2~Q-yB~rApL5?uv~~0^$7aB z86k4)Vdgaq9R>TqO|lAv<#gHO`=U7l0?B5Z5ITE20#2Ubn`7xV=N#uETd0UCzgD-o zBMM`g(A^z8;PM0=p54xGis0>Ls~+J>JQ+XdGzh(=3;N1VzPn~s z*;g$REj0S;xk);VdUxsRx0ep(9^JjDPe zlg?}VM)A@^0y>?wT9`oNl(8gZjL9|H1R8>4=4=P_dE}rt%omke%7eYtB~iGCVa<0u zQ8(}v&4_F^1<@Mt@!jdcFlTbHX4%+0ZS+Bs8AlLTVx(PWMh z5z|^(qH{xm-7h&&(?1#Bi*IMheSdLiugk+FgEOO)nDN70zdmWgziJFb&OG3IfBp53 zFR1xXJSW&Y3#N8ebKh+>C4pA)UmmZV?6X!u*sa56WK~z7T|dOfH{#P&&04>OXbCIV zh7S^kQEF5@q?qtX;^kg}_}b&e2qtJD!_K<%BT~W{qli2$V(%-1>c?k@-t6`vQMT5m z=?``z)w@+jXo-(#Kxd{G>Rg^r@RA1=oXZo(%y5ph_1HH?`kH^@*63$VqG6pcxm#{b z5CnREob4$fY(#C#p_9u2R2P?aJ*Y{aoLt+nk5Ps2}S)1V;ycz7P+}g-VUlr?YVHj?tfUAy5d{4R5K=$t%`JBj}ukh|Gd% z6}Do2Z$Du>(}=4g^!$xS(c{P{(&54^ajV~?hgMDXcuK-(g=W8tjRm7Co{xZ3`nBz{ z8kZw9b^McFA$|Tm#G`~k@<}8I``G}!18cgp{q-{I2g_Jv>3OOYh&g}zJUHssGy(}zbmFJYl?+jIWLF&12n6vmE-hh>mt#%yS z+$exy9gH+2SER#?qi1$hO+Nby4Q%3q!x9VxV`SA(FzVxb>l1zQ(0G93ZWoi4)>+4| zpPn8K2eH~s3f+lz^n8Idah59C&NfjJ&4r@&%9z`1bycm0MQmkM9F%WG5=TZeK`jd9 zax_SNH4Sf(tCu|+5?bFD?$bQr5}8Jao-o_1vhIqZVth|1OI8Wx^BLqpBPS~S7S*%+ zNDFq=AK%GB9~$1Pj^=~8sh}BJAv+&T6IFH}z9Z?yjHc&`DfwWRk0v%Kh96e9Jf1Wd zMV%JCn+kN3Ekz%Uk$sjQRq~DZAU@?Lz2MC$h&;_lz57%wrv)->vVVM4d^yC*8@hGB z_J%JToVnHqt~mZ&DPC>G>zoPhU08}JCY~rr-}h=I$QV>|tZ2C8oFgvJ5{eAAmO$OD zAn0zip{S6`Tmw0ef8MnuHW-=t8L&h~Jl}hSbfgq2uS(swp>cCi|J(_jbHsI>YlyGf zyQ#1zSg!1GSR`xChfe(|xog&PO`>(S@nm)*^xRvU)K&OktH`T$TUQ^_w%-}cvqRo#aYTLKPFH18 zQ~rL_on&27TQ#64>q1e*SUOdyqgcT>1}WdC?R9(rl( zKOSk|$gXhu(rv<-wK|gIGlr{Jw;GaBi`IziaP;+@kn826-Z_-pABkR$4cogO{Et9v z4djihfVS6`!0rO-@7=lyLi!}W=PXhbW}3DI91vHsQPuEu3dzfG8l!ONu$t8Kjlx!{ zCFb^VifNefmm@<>Kh6zpD#o9kgmPlaXxR=Axp`cD|mp$gr-%Lb8Ecm^VSnk+CXYa0BVSb z`nT-JFUM#Zlxi6kqJsOB%mFaqe4?x3HL`AoY&d%NIAc)dW%RJtu|93f=)Z_L{W4^S1E;4soG!wRfbr_~_)DyT*YK40|@_?2T1 zy&mg;y{;(V+FNdCQC{Nxi>FQ0NA@}6j^Iw5ysy-kOPF$zvL&=5?O9}=^C4K_1oZX- zu~}>^4qjVDXQ-@j&_%x`#SbXafpmC*i7Aa*9btjq5_x zV0ZQQ4Ul0F3aojKM7Zxa4<j8^YM>1^E@-5NHHFA#*fQO>E-+F zXLp$8f$@!l4puY22iv&@n&awK=sQs?C^JGTc?BMn#X7 zk}7%97YivN(N&&eX6_LLPncZ$8Kb{%QO3GK(L67)0G@Sh6R`)7mr+nknpi@tuh znE*Su6@-XEHP{4jSFg&0vxUtQGzjZJ-zFR|fRto*V7KP(Qm{_NtlF3`yv#C^;o6-6UEF z_o+cTN(sv61O$#ci0W=GWX}I?O!hwW1)GnpkOdz}++#;f{jOFVLc4SqEb4%>1x$EX zT`bCNjG3mLHmgtw9UoAfx2Kpy z03isr=|4z*KOgPj#PaT7Xg=I7b{5zJLIYVY?*xO-&is>nyeRk#&)kHLBKkH0Enb@B z7d5+!PvNokyQwld1dop6JK>E6{JlU>p_8PvAuc}yUEz$)u3!~52sptrFybILylS^N z8JR-j1;?u)mTytjWxo&FqjqyhIOg!=Qd1Ita{TDnt;0~7(=&EMt^Hm919mshCBr5k zh5LI<`wm^3%JI6Yx34w=)(F>aW3HNYTaWFIXgsL49Wh9k04-bqO7Nl`*DGV>dDOt$ z$$%L4_BmKVrdZbN9y0C;Ec!gsbwH*HIGN^{qg^$>rDm*m0`a|`=P@2Fbv~MIyHM@R zY;DE89D@~I2IlhtPAb?q7E{@%!b3|BLI--v1J&HIY!B=#VAZzk71jn(Rpz+&@8SSW zP6CsYElff7lO0?>1vu&HYI52p=sUC1`T;BEw6LRTL(*W$6u-^zt5-r|rOF?rP4HR$ zZ@Paiu^jW8U{;O0aPUo9;Xo%`iBEwEpbyWMtJe?zh^vi(BN{-^$%f4Jh0~}}17|A~ zi7yHLcMV{YY`xnnKA&0%FCo?J)7!u6-kw7GHp{T^$XMW{g5TwnHB`E2@|fVeFKAir zRoZg1L95^ToB8B+iUf_G2*2dd!#+iUzI0(P4FPS7#FwGJDg}y~5$z6-nS%70_ySlAN# zzGK#|SG@1$5BOKl(1SN0cN^LD?ona;s0O~ng2q@B=o6D7Q7=-NACYB)D-^BJHkH8s zE_Bwu5jo+LBg=9>h;j9$mSH?a9#Dv6VowP9j9(}0hVEI&kxh`UQ+7F_d5)9~3;7*>o6#Yj9z-hwpW!ghXW6;+gs1UJpT4>U z%HKggEhx0Ze=ONtK%(&ZUOZpEACOFXfq*dBGZjzVoqbA31L?iL4+Q`?$MX%b!UGsr z3*;Q&whrc1FT`S}nPYvdF{+p2$0JhBmvu3L@6b@g71}5Ig-99U_+%X$-e-jmS7`?1 z$A~1y7VijHA*hQ+;Y9r&AA{CufqXlEur%K-8BSH(!rb>TUBB4LJLT4HdXvE_X8N&R zT#IhGb{&W+HrSuzRBv|UR`q60Ysd>&Jn+SdsL>3y(X^n|%x~xlfZ($4X$opb>(rdeQ*U~R5P;+MXj^-Y`%Ab?GV*N3*SR=)&eu)%IB;Tmm=X1bcq@GKn?OUu5 z+&~R{{>mP6Pv~xumsg4xLahDj0 zg&g3OmDTON9hTc0u_wETQfc7M(t3tjrDSi=H)2`)3OG0o6M`Ffpo(V zpWt_0|8oXDKMtS8n1xz~5@Ow`tDWa6m*ZcI7~cN$wfYy(`PIHNyqNWG{?uJTv$zB$ zE|oLF^^ZH#_2{i2>)#tc?4H_xg-}U*n-S!Q;k1Ki_{=*{W z-1w=Q-It3VZ(k2OtkJox=o!@{FBV4E?Fv+O!loe9SJQUUK97K8093?#p{#Agi&$XcqQ2-&0B>6Q%fuQu z_c<&eEGGMFlGWZlVxd>x{|lKfW;=%!3B-PXzNGLTUHL>)e=6!)<|)080p2@SB96h? z`NZ)9^$cYYTlL(Uee)i=v=xeb!nPap8BX5ud{HT&6+`(!pg z!I~asBJAmzY6-wapuhjV?OEe1N`iO2@b6S^O$44r!VS**OS&3@;j`Pm(UM`~jM@n)E{8D|#>#JE3^&9)zm|)ot zt(a7yxJ)ktU~$Aw(((drf$hvLh(w$MJ0{_(naBEi@(n7qzr(B4tm)M(7_nM1-#9wE zmTe(Ae4y&l#t{K&*vX+*PO@bGrt<}HlSIl?dZh!6U@1wlC=Qv=w-+M(8tM!eN;UvGt}; zTuM*8`9Xq?@1tl^$*LAq*cGY_p$+@FAQxKEJ`&cgY5IjruU9Al@rZgIMeasw+*`sM zbP)dJQ;@gs8Cuw!7s{8$iM`xIFB8+3LNTg^-x5{xeQK#8bd&p!eKB$_z(43NOsr>u zcL~^il)VEvUX;<;k@-H0aj7qT19EUcZ1l%pk zhs%Q<7hR>lbKM^{`ufA^F@5fuFC2OLNUKX&#a;2ni;GUIf1hRIJn68>V7Yu}es43f zU1S=>Exx|N3T^)kDaFbojGo|5y&FQ;CCd<%+tm25Qxn&8hS(L|fbI^%Dqj(p(kA`E zoD%pi7k!yLQ&gquWSY1YN{9Jg(pwp2Z8IZy+=R8~WPfvqo#iFQzVcLWz{48_XHh%YT|iGZAdx9p|jJ~n$wcRpEs0c>nz@-8oQtIZS=r@n5%WpZ&*$^cz8wSR0MwA9ng#< zp^4f4P>c(8y*Hx?Uw;?jJcUaS(Sl^=<#4rfV?#Gz$*frP5J4%ZJF)J7CbV|X*^H@|ZFRtq->GmBZW;X%XydTqSz>M5Z?r~qr9 zKpjE%2Cw$<1Ouz`q@OKcC_VjZWz%Vp5^T^{rwhD3^QJm`f=oARlE!fJC_`n}ES8^* zBILL=FnOc=2JLwSC2c) zGeu28qB0RgkUjqP^A#H1UR@S+-W`ta701nn3H=Q|Zr-G68(Od2kYL`;1SbW)N$ph+ z?I?OmQ(|yIn7NXnS6m1J^tWZ%sIOi?Www|~!Z@&%mD}B|3@&}1W~SF*VTOPQY-4E6 zW$AzrUnyQeSW(3{SG2~Qu73+YyY-YZ=;2KG%e3~FJuRykGgA@I^<-C@+6%gYLdXp7 zS%XLlik3X1>R3*pUaXn1!sG;WU;E0wALCe%p)+zj5W5ozKo~tT33d1jF60aqwNF!s zE)brIbf7J+H^Mgv-{z=MdM_~Rw$EbIx|Y{gNp1@TQFi%kBX9^<$gN&6ytlF7QKQ1K zyKAS{qn&y=fGX9{?p0|~V14jqVge=|?c+F;yyk)$&#yLgX)Rpu4Hc2GJcWQ@ynqC4 z(CO5i(x8!cSV z)-|VRDO=e)rh_P!-F;RDyF1l9S~Z<%03JT}I3aI#BY%2hJybz&9AbxslXj5~zi+4= zfRf$;=q=59ezZFLvVD22^Y1KKpwJ|JC4!u}TZT#Z^1$ADrp1`9T&*xRZ*grfxPQ<= z5H8W{?2?DeCUN^y=~TP%$-v{1deKlVC4K@Lo;&Z8Jfh0>Ca+8furqhu z(aw)&0!;iFA^l@mICwvc3@t8f5{a4-4NBKz9y~3RRceDjBN$O(0T%vYj<}4}8ZSq- z>PA}$@jCH?Y5(k96GzmHyiux*yYMHwF1eYohbn5nk~E%5c37LN$ZoV~llAQAEi9R) z|A0H8$CZbdKU@z}|0Zwl7+<7e%zRC%w9<%MOCZpkRjTuO`lSXz#?TUc(lHNeaJ(}Y zdh9dP`i=7ZV-~&ouLU=EKqfNEf{Rd?=hB2#9X8vi>vuoA3D28!vTor^*GC*|J0B`nG5u48J@Q0`)UFo+xOQk7*M( zl$c~Hc^A>{6zuY_0-=?bM#0L8A8c3KgNm=*Kho!usA*vF>G@osXYJ)E!23n*Gc+y| zr>*k_iD$C9YZFL0MGRceX90QD{r#HjuI(`hIo8tlB^|f|ET(l+S0{rzO(z|Qb5V3| z&bj@OS?E1j9YI4y`~`lL+Q~FP4w_+jx}s(@l_z^;otblwaREo~Pw{7aZW zfxUxtXFd-EN`8m%-l?t&&ZrEG& zjy--g|2gy&`?B@Gw$Rxq1YHqnwNu2)+ruf6d*+PYOecOhMy-1{!@;*dq@I==W&whI zob3;ds#BNr@n)~NSq?g1$ zo=Ul3Y}k2QW&hCSz8=MWld-vle(^*_!pXhuDdlBm3x(=^4AGynTPYO&9(sIwxCNWd zMpvnjnCA^+05VKyA@{I}T8*|Yv+ox=lxwV^-iu5vmJ;uB1u%~^Ni>}2#_|jp1T5BQZ@%rDP+a zdVr43>t0_f=8-I9d`w>+bavoIZM3SI%SCwz&^LVO^KzR>Wt+0q@H{YhZbbjpaQdqk zl5ZL?hHl0QUQX|vJI64ES5u$_lLtEACQ4Q@$pTNU+jc;bQF6o7A79Zgkn{USv=z6E z=1iP&M>?8N$0aK;QdMw>4G>1_NPA|ERBYyP0Q(nxkE0(y(ho>OR0Rg$f(_Vi&P8`m zB8_{h`>5%Ll_lo}e>=|~`fcaahPJ1^W|kObbeiGiwV+`V81oY}@HK9sKNb(zFXdH> z#S>fu&(T)>v3;yh0MsRuvI4TZpPcRN+EK?5R)YU_2^wkUK-YLfxsU}eBU_LTn{mcL zl=8&Y)RB@TmCB}nLOzD(DoWl>ZEHIgq@vTmj9=NN_=fV6G6H&e5vGSNZQox>`|_<=Hi;WB62<%E`&fAw7^_B^KULckw4cRv$=oe8tg` zHMR!ftbND}S5V^P5jAn2IehCGiilX{@4c{*Kjg|X+;|HB!U3iJiTW0SYWzj zzVtoF4A~Q;Q^dy_YTkF;cKwW7uUsxc8G~_o9P52nn|@U!iG?#?(#OD<2zcRP`Fm#W z-?9s1j(n=_Z-LmAA%w{46dl=a5MF7o%GBsh_BYv9y^jo%m=rV{^u(F>wuaZU&#)&& z95P>0<+5AqEj~t+2w6tk)lZmgCVG;hO^t|9pBJW6*G>RH*A`pWLaH0~G95-^g(;nK z!%JpnOh?|V@1CUK0C&A1{S~4}qFw{4Xi=X9-+_LcdDg3!jy>_6ak|hPZSf^VdL>Y) z5D({gMMBN?S2pJOfcmVUcaW~)f3Xr~qw0zW;((%s4vi28h$S5&*E-bnc|QH1CMmL^ zIJ7V3HwGn6Bv_c)n^jIJUI5_H@4`f#w6Bz(5kIS^^*p+e+OMP?Tn^Ay{NWEL2Fb<7 z0R~Cfkf&a(gSYFn7|G+$Y4<6crN92EJIb>nI= zzHf8m2eqFNhBmDGofhT!mP)n1H&XS>Rq!1PnQ7^{OBfaWzk^ZgFAo#yNKD?v5c>Xa z3u24Q5Z!uSfaQbpuSPK!j{HaxUVse`-kp2V4+5{XKq5S17O}!);>iQHvv+UY(k^hc z(gc)kav_Zi{zg+qlo29sVvBoW*#!RS<`WuO*B>Ix2*+m40ySL6=)+ol$b1U^pCn?f zZ*Gr{&tZ=0EiylNw{NzKRf{(Bh-LImF} zm5E!K>U&S(LF&^ADhM8fJ0qHCB{Lo(EOlQ}%iWy^s59aiUu88xoUllJlWDJ#9* zKa6R;^!jEw>2WzjR_!__Sxli}&2J^Rq&|BhhJowjkE1oew_15c`rsYqhgi}i=UHP5 zM0LqIMhl`rPJQ$wBYhz~5*BA`|ek>eus!w*YW;`2Q* zeRI8`y%=_{eF3LpJ@kod@Q-h7u#gm@X=|m9X=vA@wZa+WE?Et)98$)7pe+~vYrn%w z*ItL4Z@&)@KDr1;YC56s$%f;@qw(XeSe(>~BGA!YiX@j!`2KopM0dBNEz1@Ue!2#( z1*bA^DuO&=^VKr=HR_>C-HN9_^+XoQS_jE;+U7afX}uT6>U-y(>sOBqW9HpbtYPwQ zK<3>6y#L`rWRg?D?p3k#bC|nvK6a#wTax2lh@`z^V6h@*2=Z(w=f;kn>~l zX&{ws+Xkieky-Z^$?duWkwU-n-@H=R zTKb!1+s5mpQ1(M@?9^>`g<1G6%8tU*WnhU65C+K{GkwEfl2XADn>&D^_4-gwB|Gx9cOk zf8Z2($C-CaW^c#F{i)D4k;7%b4EKC&iRfCM_eUq38GY7P%$m0qR_>W-Y^8vg-<5P) zqpA)~q04c@pZ|gzZn+JAzJ>JKC$ll-SO$tJYAL`r-zMysapo{*0kM#nh+UO_Rd%@0N%-VV!A20L58v6(=+{sxBZivgSMhEFEa~qR) z2M)R#$-DmVO3%|+uRvW*1uFXbSS{Q>`50RdMj(@HZ=&T2EP8Pcw&s&VXV8<4CfieC zhaaw60K3EaP}K!v&9ZrTb-ojd45Tyl6x3*{QD*xcuAb)!?`);Wyxa5H3Vip5E7C>g zohuevyod$9MJQ_|UDDHq6su=3d(M}zjHb38VlG<#7*^o(HSD&00J|&-7t~d#47S9b zZ!LgFb`6wT1N3BYuKh#L#`uvBY&vC>tp;l{dIir zD1(l4Xrm$<-V-eF%$yTQtkjTx>p|w8cd%gAhgcEL&%{GUYEV#iiXd(ForHN-JF$%d zH?$NW*=Z|2xNZ|7TU$gun{8vB^G;cfx)V!9##B_Lir%XenuN{xX3;WyZqFYsc5=9>3md&d zu;7Fm-4v`bs(JHckoDJ68@1rA=cQWJ!Zo_1YKj20R9`F1!>D#|7$2NypJ@kV64^LvwegY4bWiV0B;DxS+OOOwjyyN+)s>tU(y2cvz&wT;+S0=;rjj8Z> z`Fps%I0KYbkLc~qdOjqF%`G4fo$gvCb=NM!QX=Q}*Sa2u8cbNjcVAi@UL z7}SbQW8`E_TQ^Ns_afa!Q(;$~O}7mMjR z3!hsNQv!I^iiHW>f)De`Xh~~{ z-k5W7?Q`un){am9~v+Q@l{CO-^r;u-FEFIe5 z`PjVO5*s5m1N2s-x&-bM@5BRty$Ltob}MeV1qhWzVD{tt%ug*IQdV8<_0vRY{ARdF2%w4awt)X6W`Ckym6MWFKtCfON*E` zq&mk2-(9i@t_fwRGBa$JCzNO6j{6kbFcV?IfAdhqpL^IW>q42r7$?3m^N<)KYvmjx z=AZt0-7#!;j~CP0u#JmMA3Di{H_p2AJ{CZBW*~W|)^{Rl^Ue5Ti#_Q<1A2P&C=A{L zo5@dMUPSN3yd^BaqwCyYn^}gGE#tA|^D%HV&Jct)gRviRc4PX^d&%Egj{~WCbak|$ zsXPT?R`20v@*n?v=N-7=qn+?8Xh2uy9!yxg8l%V{X%tDwa2kgn)>`59FWiwSCwU8) zf+f!W@W|1_P*(#5#TLfp#i+eo!!VoL%{jUZb;!e!ao=G2Yb)Vc(SnZFR;X($kYhIr zmwvScz8MOV*B*4&1;BdZLW*zQkVCdq#+i2)jmGZY%)5*||Hc30ne-`ub#T+A+8-cnhN)NyeHQ5j@8NAKCaLwvL~Z?5UZI zX^o)u$Xbx8C{;ULCy&{u!Alt2OTv@iZjH#VO3ki9Gevu>2{)aLGHi z3B{xz_@gIh-_5qBSe$<61$fk|Q^ba<}t(1J5&JNU$+as*at#Ya0$K?wF9i$`K%4e4>RXJ$yZI?_8OCFKYWqq1GS1c7(h z+ZV~H>8PmSX}03U{CGTsmXV&3P3_opS~))jzPG4*s)OM|WbV>E2R}a_`%RN~4DJkh zr8Tg2j}w_7@62_<>$48wwI2@Ry?L%;KBl3D^O!c@<3Wf`ND`B)4=!J=tA@wdH(=oo zSA>=IkQh}U$$kmGvbYNW_|Nlr`st?$&*G`OE`!BqR@im26iwk?SpV5r-1+cZcxQ|c zil{U2`!u)I;^@q~v3SE)_!jq&VOFB1C;XR#9AB(QP=DOhqWwvSnjnPU$llb%f5SPfZ%Ek3YV46lM3)RBXn zwfAXK=CfcGr$+}F_ePBtb&4Vc&b7ci?@|=V$pIPsMY@RsX{8(ra-QFsbOcG|EhrEA z0Bg6d!~TdyktwKC$x!Y!9Zx*@6rQ5@f8y?I@a#fY_!V`cJ#`;ete=d3?#@KF7(zyY zdwmg7H?6`OuRe#n?w^AV2eQZ+XoI@{7h4k2_P7oB=Y)CqV#O{Trh5Kn^mx4b#vT-q zvt({)1UuJE&Y311DFe*VDevHYG}uBj9a+0QOGqaP>++p@xUd#$m%%3*d6J5Y=>ED>?QZbobK809f*z zcU^60OI(MW?|u}2d*}%~_uuF7+zZd)Uw^$7k3aDOb{7Hqh9s;+FBdu|HWR$iTL& zL%rl(F+G?P`Fr1l#or&nqyKpZ&p$`+_3}gb+og}=wHJ0Eii+2i#lvRlCwSu7r}5C7 zV@RnbM~jJeQh59x#>~4)_bEi}*YQ+K;oQ20|B!`#J?SJi17%q8dLS20Wf)ffvHt9P*x(NOH%FKg8 zw|>6z2<(ogptg}BzcXy?)U4ZVeL8t(=s{`dYFICP0292F(D8g!O@%o0=_Ppd;Ro@r zC!WJI&peC&K5`Fkf9N?}KPwQmT3)StC)RxPA3Xo~1NdxvIO40?&_(^DB4ID~Ew}^Y zoaOY695iU4ER2G;yA$^8*@N9K{soux>Hq^r*?@WkFEx~lF0K7Si=M8f1(`#R>@`isLIpRaidB_`oo!#f?EaoB^K;AWw zlScYgrO3vSSr3!$dKynX`vmU3_C?IyPx`031i?RAVbznn5Z~3_TThM9b|u34=H)oV z>?u?4W0bprWv6`I9@O587VaD0s|mcHbO z^v+sTNAJQY*4yQ^P-r#K8mJuiaagwE11utW>o6ElCo4hFatn;!pN3r0?^G?w^B9B0 zD?Y@+z$Ua&pv*%{dEt|n{`)MRe2Q%DJ=fu>DO<3gf_dn2kzl_Wqp!6@sMa`a)NC7b z21i{5z3*aN^u8U!N~pi^P`~iC_;k!8xahBs;KgU3!PCz?i6@_Y5Vu*3!j{-7DC#Q^ z;HNxG85~f zn$f8%M{%$X-o0o!d}Z~h^raxU*C5-COU*5v91-Z znn5253EUqtGBZW+7I@+Wc>b*#xg3Q>MS^57W(dUz$96dW=y1q8E|;fg$xBGVj<>#o z<8xo((0?c5(2HN=;ENOC_}{PK@ZT@7=Rf1H<*`u++F~mffEm2y7Z$Fj6kqH=OC8}a=@Z@`TNR&}P*q^-X(IYQpE37{LGgim68{ebmV@8a#tZo@yHd7kwAGkEHW$MD$QSHWWLab#AOpk)6xeE#ms zxbuOpF?&@!6y$Yic#f~yObSdd!UB&>WYy>guKwB|X&7emI=PL#E01Z69Eacg(rL+4y{v#z0gG?8xC#H__17W*T%NJ0K$H_(s* z_bt=#z`q{FGfzB%$DVi?mo5uKwTk+s=a=~VlKs@Ds?kF-uQik+U9}#;WCJyE z>v7KhTReKvcnquHQeLcQ; z+7T(jH?KoO?g5OuXdxV9%E?d6gzI~2u<>JxNxIvi;b&7*-)N48LWOpl21v`snK^LdHX-`&APSN zo7jvtJ+*6XC5jS{!glXI?4ww5k8d*aYSd^qL}J?)R+#s#KN9m};5G9H9LP?<%D1;5 zs=f-xmyU;x>j^~5y3h%d_mi%${P(}{_|p`(J@XL$VlfB%<13*;F1$Ya0V_w_Af&02 zbT-L|q8vGU-@_$KgOFTa4+9TP?MR3Bw5?eBUq>X7Pd%8tOW*kbrdS#m+UVfyK#KeF zL$~9}(e}tx(*2#sVbr#xaL-VooylhIlO^QW+J8y@RvGFWG?3>xW5?WA@Y)mq!21jL z!-rzZPW?drtua)?d+IxwIeQ+~*dKcMifa4*^$t@7`-vt~G7Nni+UPpLSpDrjYIV+;8KbR!rxd#J+!{O%b3zs9u z;Chze1t~my{1F+O2$^i)!Wq8{@{Y4anwy)Enq7=#I}XG4SSogSC1HPqu=$d z=uid0`h(?|I>sGo;+!f}$8mPv5_lD!BJXBf&cfCNQl`8j5C#3px-$5E_YYWxSD=_P z?@k+bK<728&>)Mz!nbF@CqErdV?Tk-=7WgQ0*2}w#QJW-N6VJ=zWY+@WDnx))m}JO z&|xI+)=t8`HuO}c;FjL0vo0QcY}RA`r_(X+M_a6jD1ch8gIe1{ftOwgsTel9#vA)H z`ID>`MebJkaqJg(H$W-K$AQnu?QdMsDkU{lOn{r0Umz4UD>YWmtdQ9O=ikrPK^Q4{ z$JtPwC7pS5a`EUT?|9C&-m-@x?}}XT<${^G z`_p;YvSv9JFI|Qu%T{3JdP|%rpn7LNq%Hx+oUAbOhZ*>Ky%m-xsnFA*8${l9i?2L` zpRS!8x;DhX@=vpH(5pbq_14zjjV@B{d48^#cHLG)ceSBCZZ)p?XcoSly%_6O@pCYi zV(WfqBvI_FH>i-f>`lxGRwC7P6eig@V0RW1ZsxPcn7nHYS%h_Vd$9E+D~}$uwNYOz zamPph3-WF+lXvwf*!LD5nXm*uE?$lm%a@6FTD05-`@EA;LJ!c^-U4m58&pibH-^ z34-Ttz>3GL5ktO#iM-P{p1}MYmSXRb0yLJoVW#CKJhg+YWIG41RDJ_JbKo>wx7ZU$ zvdm@PF?sg^_M|EyqhNvOe5nswfps=kSV=l+Smd400$5D-M{cc3WFRql*VdASW1DO- zZ?p^YI+(oMiBT3yail~JIh{l14teh5uypBY%nwwfO^|m*2wY@=QM;3oUDZVTiSFh4 z0TwO$5Q{@}Xd^w66TB0jkba%Fkm_mCa{T!5V|Z_&4Qx+RKRieBP8mey&iVu|e7yv# zmMp}4Vb_;o>6$|bFW`A^$v#v>!N-0BrcRxL3Cq`FUPL9eMcpvSJL77zp#^H{8wMDZ zNjQFR2PS-f1QpFHR7Tlh!n&21&F@D#ci!hO;G>xfu_|0+mb~LB9CW0E^(_=sw3>#^ zZbLlTi}r2<%8q=3G0$&=y-z6`yYy)6|DmuKOptR12KOb-%4nwGgfoSB)xn_PU~>Mm zgfDQm{^)SYJBDd~uzTub?0)h?Y`XsqY| zJej-!t&LfTJhB&GO!PRNyi3`S4_9u-2Ts{!Pnf*ZqOnea8sG16*&<)WmXc#plL*KC zyD(wSQnF!-uw>3O%=r3!T*BlXXWlV+w_rCmMpmFxZ$NWf1+x9!u$#s`^yvL4Z0Ulgf%>f=?-t=eL=h@UM|U(vRYKEqSl znEFy?7H785JCcm@R1j?2m?URH?`&6n^Lk0v3Q#s*{*cq%j_awZogj| zlJjfCsFa`DjvVtB!_)Pov-_8SI(er?rr&O?dh=0yx?mOgGR8P@{(?nVyxSiUxpHWG z$o?gTz;({|m_6%D%zNJv;iU~w>AH~8kGvBZl@#Zwb#20zVSC%r$_q7V(A?FCxOH=3 zH~)KBhtvDa^+I7&1rC4nFWBYA!gBmdxO<;Od1nI(Pk6%NtJzpSm7ZnMd@NY}HD0rr z2dB6SYFj4nW?<=i+YqSY>6=Kt1$j3Lmn`r_LP;IPraI`6gMisPVEMuj=Xp>cS2vlpDw>(M3pWC!XBLU3a9zcJdOLik%+^397* z?7)t-R9MWthV!m?J;AVxL3r91<)E! zCrk!!Jd&ZL^lZsH(xnuiP5H-o%ow0=S7WJP21@Ek-!^69@F8o={c;8-PT7L*eY4O& ze$Zg@u31gGh5TwA=@6qVQoPTZ^&Gn^j^OjR_u`=S2J8(Az^;f47F z&JRU)Wdp@-X>bs$&DtZZffo_!7&? zddGK|wk}TNZzjcJG6JLoV%Fl?+t(qih8m>34o4>6iKSb1(%+|XQ;?%KyWTgI(y*NgaSvl|ZQwGT<&wV0}< zGZZVQEW(SQaps8%;m&vtWgc0+|s zZic*5p+40XZ(D3Ya8s8cuh0~XC5z@^(#8{g!zlW;?hddR_DN_<3>_%UN^`>0+sN-;S>AQH~rk#lGZbxhR z0sME=4{%F6oha|@>=40KQ}k?nur3^1Cq55Hzhg+Dn|5>zzMl~Wdg%7VjpW$dU}k`E zTury37%@A?;{Fevkfzd!thL}*C zM#zrOz^E^eAggz{aQ}_x9buBOZ%dzr8^7I-burawEDl9Nq#rUG>6sb_E?B{mpeXP|HL-|B+cD=a{8+gGUt7KxhodQy~C+YTTd$w zt0iZZoCcFj=WO^JepoaUwppZ;lJ~&w$D8qqcQeVHaRt);@4?^?B~7v{BszYF8=l{c zljPV4oz$U#-@M20@n_?)CWiE?EE(~8C*a-{DX44d0QEjp`u>11z*gTfw5ZFGkr;;U{yC^?qyQ&mDXv&_%(!3$y+dnd zFm`UAj8RKABe#KM!b}j#jv22EmYbJ9K!5Rm)^)?3r-kdE4fSxzI|kdvu!u;cWoA>~ zG3vFS%2F_GZKOwR_dAI!j8l$rGqmlsNO4<>#s7K)c71b%7h?BoA7g`k1hU$ik-B{@ zet3N}rpJ?p>*47G+EC>;4v$|x9hMYOH|V0U^@nfp_DAcGM5lDKK5EH_--rLeAE!CN zhb#9d$vX-lPAsJ$VKY{SoF#deM*UV@g{s)icZx6M(`DIU`}(Q)c6%n8 z4K=7dNAhk-SQ~Vuk?>i17p}K1>yv-E^Ek{}Zv~rpQl`3W#O>XPcdlges+%0*A?&)E zg6rCHR3DoM3knwFYqit|y3m|zgZ1;4W6`cWp<7RFr#>k1{HJ1TjD+*{iLjVX2C zAr;lVu3J;!T&!I+3yXs_Vm_y$6I<~H*{l$C3p5nG>Kk$qaVQ+Y#|xoA6|x5`SV6&~ zHV00lr{c@?-Z)&-Ou?dte42sv!Tl#QD@TyvroO~7%A`YDdd67?awd#~ykiL6NU&MD z7M=^%!}I$kaQ&}MA<@OErUB~#f#GG#{J8p*pR z)RaYH=i3%o9zsDD+2u}D^|g?URTzp z!)}xXmL4lXIr%|iZc%eSH2Jlv@OgOnwfUqc@{Gf8yR|3@+<@6HT!{~zjdR|qyuZaW ziw?s*(>OY(Dc21)^Ty-ZNj|6?Fl;s-GI6aM98*N3Pm*qoaF!KhG6Tz-^7e$V`j>!tp}ajY7{2M;_!|*6p8-YZ^4Rso*%gpr5*>c z<((P$%BPxa5ZU8lk#{__vK|pXj>oqjPsPd%;}f*%RmgW8g@0Pi!~Vo_$jl6zWgmdE z>-cw*55Rqmv&NZ38IEsm!f?qu27iFc%E^VZn4?R2Wbe=7QZbCSr2n;E`YCo0DI~*;OW8+fg5d4cFa<6%loiHTNLJ z>MxkMVFM24Qdym(Kh4QFfz&c8g66>9@=<)e(HV>E$UkhTLFTUeFx7euKACnDVJA6{ zDit2zFTi*AZboA7J)t~|F@IPL2a#2IHsl@Y+@5Us&$7X~;gEMxyD)0Z0g^-NZ&8cz z_#5-E#v{i#M6+9mvXCv9`}`lpP}6sh_{zJ;z)ic+EZ+?WaUKMwT+&NQ@+V@=Q$fZ z+_@tif{XoTEE{KuH4CFrrpd)ghiR~QWe?JnO=yovp?u+hP z!uz(#Xe7r>R~?KW?;VHvR=eSuS&3?O2inY#X&kUs1&_hYv%bZ&E&Ji^?GG>KMOZoE z5&Yxo?TF?TYI!b{w;#at@77||ejj*xxZ>c^5Cmq|LQ8=m6J>3UVVL{LSiJW7Y8*@` z6PbhNhRh0Zkf@Bp(iIEv>ZE0G@(qC70b6YT=5M(2y#q+@CGTWG6R~LCXZUV;AR3 zvJ2L2_y+&Clb3I&I;siB+K0zr!s`9l<$4$%uFh}@PC$%Ij}8ieWVvDF2)e`7!xP>c z*Wi_f9&jtEMS|V?SUT~)*j_+>m%1Fe``^V|_7pJlYO~aqJyc^Ut5#saGc&P1u$DsY zenX^t!3$HE8x}i2F3u9?Lf&!TF%d5#*|;CAT({{o@=mSmge=((_RIf+cc(eQ-6Nfx z0}bkvfYH)ybY%e*gRUa>D`aad3v4j{}yx`y}2T zGZX7#wCGWnA@_t8?tb-aY&qZvN0(zbF!u>O@ajZNvrmJD{*}ibz>cT>g;C$`go7hJ zkFz^=E_)t}4mcyIvI*RLmpo3-v>$>6CNCuzJhI%CA9g_lqAz{cSCwI6TlXtuKIi5z|iFwM79mJ-` zzQ)wuE@Vd!!ujx4jKB2_EZ!N04D#+9v-ZQv^1pa+$~w3?yTH-O5r;PY3-?%jgLNLc z)UO+mwQDxk|Mvw3+OFem%DBa)JvvT(*{< zVCA-X*q7FVHccfeqPF7=i-qtimP5|NW|;(Z9gT$x-^QE(9{R-OT_FPIS>O$uBxF@K zkwZ`Sa()N%7QK%J!L88B;&EczL-=gUZrC57KH%ny9TV@t*dJG6M}iJLh6%7A*k$Vk zXAeK@p8hPpoH7whLYmR3m!mw+1(W}e>TNICp)}IyGA}H+{|9{k*-;8T70B^9hy{OK zgJ414(YtFq(VDd$qrdqUpRD&qp@Qf4J-yGE^AU#fCw>a&Lf-M*J)XY)qHoG_3XmNd zg`)T*sL3Dxsf_~=XSc(rlXpy#cUK{H#S$!f{!7f*>jk%ic5vGC1@5}?4Kezn$^c~V z`wylq{RV5oOypf9suFkNjkj%)#N^$P3ApdaEm&}(9O$B;EWru;Cf$$GtGwV8l7mVL zWcY*czZmv51zn1 z-yZEH?@nO3#ar0qmW84oB~sUZi50Jn!mLeR)YqNiuzM%g+()`*`eDRZXkbX*g()j% zVcd#s@O1Np^Pbh%GV?B2EDROoUA_Bw{ADf$dJz>=jhuPMt0W)7f`mkkxxvYS^wH}3aHqu&up_^2 zFnPxqsxJ*?+s+0fCGU8`dPlO=Bi+2bec^HVDD;Mw0cG=t!Q4YHV#3s!n7fAJ$y5dE zKLer?8)GCxGh9hv_0UV%q+;6uYE2ln>J+bwWt2_q+*< zxknM#N8V-O*tBg}_4EOpWb%&gJ`1Hy4?0P+`8&Q|u@E+~Oy23ytSUx9qz&G9 zcONqA8lh{5hyADtm^g7ImfO3FK54UN20nZ6L44p;j(U>0!e|e8x;To|`K`sLO_^fUw{@~~9Gh_$#w^?ot0O7MSF}@XL;ZHy zt9bec>bEYeZ+W%VP^49{zRkw*V_w)V^zC+RoU#`4KK4O+8?SC%j1zP2!N)&t##;B2 zNH0?ip>N4QGN=%@aT4Bo;T3$f)dLw?^505Q;JfTi-21Ojaj2vbibfq;kb?cse1#>S z??p%h#i>l*Rpuad*V}kwPd=*D^!)El#}89BV7;R|jvPG*yUmtZJoXfM*H{)$wlWZ5 z@yRHutRdf0fjW7WAfK2EI_4KB$hm#?2N7^0L=bn`xtwtq0S6~H@}ZpJb2I?Cc_Sn4 z7#!R1yn{@_?V)?wIuZEiFkt88Ds=g-0|$SnGOL6BT?_k04 zN+>g3G3CCk2q>Z;fSlhpRWux?ZO6*#{>bTSMROxL|Ta9owCuYBSqPu zLUY_!Jo@0@al?(*;p#uVfC;Ppkx9?juE;}%-xl0I;|TIp6tpDo!E4+7a45Nof+$i< zY8~|Cv}AZ%;-0^LD>}@8d6RwyaC?lDyzA)cL1JpU_@XkBZT~?Rln*BF2!@UxXvs0k zIB*Z{`^&X>os9BHv66TVqW8?j>m+YC-g*me`@ef|`*&W*rocrLyBcF&x)0Y}e>JYT z<{gZk6h$Ep_p?rs&6n@`5FWq#Pk4T@H^M4A(bH`{n~T4K<=B3RF^^t{KVES)UjBLl z?EG@z^vnSyb$3C_Uv0WmVg25J@zC`*kUU(6YaeLW-pVp%7F!;kn1|qj#dZrFy*bof()K!KqRuNZ2(R zH{N_JZoB;!TyyOjxMwv8QZdJCKI|-Kz_WtnyO~#oo{4Ek$-p$Xp|ykRf{N{^^2X+A z)9}tHZ@L0z>-~J;T*Tk+RF--?@Q|DPu9g+m6l1?e)a zx(fM$Tk**ayfDaS_*K`Vj=ygAdl%Dv)r~4>leXgCzx@Tb+;9!G=@x9=J`0;1wqf}R zCEDAx6mTZN>)YG#mpiC!uO5pn9*3}!0yZZP&c<8%T2iBw%c&ybywrf z4UtHyYDGt@0fx#196Mx%rxpjInhA~=YdmZfirC^>a)QZ8Bn975n+D&lOK|VQb8)1C z^zq3ceJ58#e;Oq)wuS?TX4sncVcZ!B6dEx3w{APC?)5j(@=&4r^R^t zsz2d|TmFte|9LB7l6K><9U%zH<6*N2aQV>&OTY2$on+e|Tkf9**K8$f8q{JqQeD(G z>~`EoK?n6=J=w!vJ7@$if$_3pKMUKoO~s~2HCpI?_3~0gTHS}q&Y8%U zH9_A(_wt<%E9;rCiqeonMGjbHD6Hov{|_JA=c2q`D;DtRdj|?$`9mk$Ph~?fj{k5s?z!bke7ideX`Iy6a1w{se~zoJ zx)!(Hatm(#%inPGnou#dMpO7ojC=V$Tz%bDWJ_Md+n)uXjI^`})JeyMFZwtBb^9MN z-qIWKoJFb3gunG9Ty^_DaqrAyD5CQcc07a`2SN~ALII|h0zqXu!o8g^Zz=VW77FCG zsn~Zv*|%G+$5q$9i-{Ay#S+JZ*b%Kn3kAzcMHynY--*B7egodNibGyW80@~Z#>SPA zC?O4B7;+3-pRh%&)|6qVfez&en)nu`j-3nZlWJq8mP!782AmUlM>>+{yydK(;co2z z9;9neC-122X7bw#k7C!4FXBqF-+z7RaeU{MjAK7cfop0NC>}zA*JoH~!z)i}&_X_2 zlS&3zhASpd^+2Ya0>a>>7`??2TVpEG-qI=-v`BSZh?{QvGj5;gj8p~r;T)`+`i$@? zo1s>dys7G-PS}M9@4f?ndS@eCk}AmZ_Mq&>&ebY1Z2lb7w;>~|ujX(VH8GJH%0}cfG zW69zGRO-3@VzBd}DXV9c=VA+v2MpfIvxv|N&{uUe7v#Q1$z^#(XQiF{>g5I`C{widk{mq zK}o(%JN2w%AHIqgue%OcTzwT@7&i@vi^-kgY+6k<0%!ac_uX|1Zo1`0T=S>r@cB|d zWHgo|)nzZHKeHe4JlaKF2A|n8a4G~ zQv)<&{&8Mdp{*$y`zO4L2QPXRA51%eJkuPygF*3WizWm9>(}FlH#Z@aVokNW0S($j z*!}BXY;+_$T1)&)57uDY6bD4A z+Q{CK4AoYlzQ{6SSqL0`2mrjLICS970y^dr2n&=#T2WAO2zDkz)E z;WzhRc>JClal=(4W1|=1$4K(=+AEPC zJoNWFamAbK;h0b^^lf>_HqmddCO_)dTmORF@0bYNR3$VSj`;A^$8hzvq;Ic&3~zq5 z5Ag<*zHLHVrURaT=q_CL;zC%57NM!dJZHgkiZ(^9!N>DAV}Vx=G##zb*A*c9@D|*2 z?`~?h2C-_gzB3z#zgPmBMP7(&Al*&+S|uw)w(C?(b}vRn9ofHXZ%q8)S@Qp{#ou2Y zhjGjI;^@9Th^itTN#!V;lqiaJhrj1RL?&gULarqLpazxIazw?%twuuJF*x(CxU>QrZ1x}}BOB>ic}UC59Tu{33vePV z3O4&3f3M`7RyZ&GMT7$dG53QBWR#3(fuTQ0`7%1Yy2N$d;5??@T=^;r_;iL=wDJVA z-=j$dd3iZX zi%U>cQX+;P^V~|zCf6u?>z|*urHz~;Hp-_IR3qI-YkEftR<$~Vcpttm*B8$nV`%2D z$;R`Ugfmb%EDWt}tztz;E|0%{Hj+``$$42JsQ5g(7c1RULtJ?HgFOzdRvA6~kg7h~lBC1n<##8S~&qNn<*mR|>%q>KBt)+z-De^CeKK&*oGM8sJ9F{ z#*2(_eG7ZUazlYcpPeL|)=akK)X-{@EjquM39d#Zv6a_U13V%WHb zA>`3?J(W*(!a(;H@+#z#@5{%S;2UVSg>Baus7`qfnN#OAY1@PiHD=41IY&IVu?||> zj5b%xS)AfHJrB#1&R7R}bv>%f%EYsuvh8KmkL9Rs;C@KKyy#1$C;6Uii&^HW%)Yi@ zXnWg%>PN>qnT~OP;DuUF4dpTtpsZtcy?z4MxtgAx+sxDljPKXK4;VilYE6BF>rvd- zcn=-P0Xz2n>qt$(A0OBAa|s`e+Kg(AYiJbFNvVY>X#*Az5-5HU{huLm#NjZ&j0p z*P#{_go;BC<|BAa=-df-Fp)ZYx_u>Pf2_&Mf@-8=EI=(A92g#)Q26Occ9=3rGKP$@9za#7^WA7h&AX zGF&q|D7MzDO8a6%_S&UV_(|`p>v#d+p8WDeH5Rs!{KLsSNsH}IFNc+gdupv>H|6_7 ze3eelTXaveR&Hvzi;@0TtOUZ{>t-LXXM5%#rrqO5AWxNHJB7)Qm8@I1Cio=7qm|c* zL;Bv|b~e_fb{U66BE>*uG};4fzKN1lzYs{jYUR49VguUa2sn6iNL) z<*w%zT!FxC)E$asn_GF+{B zoIT8*kgL z8XbOiT02*g{5Hu)G-SLehM*!I(6Z+b1{BiJ_Re$2@mIH3q{yV(*`|Q5f=0G-`<6Ai z7uW^&oDM=wtiiKYth|apgRp_8ACJGp^Zl7JN+k77{__;Q95Z6I7b{le^E*~+-i3cB z=g--;?m^n(8}`eG&hiM2HG7Qf-r5R>M;qp7icC-#+MwqopQ{|FMdu@?RpSMVQvyhKE+N4EindCLs<*i7|;OEmwY(Eb;D>-}lN6 zjc6acd;QaOwrid{-g@=0uxbwe-XZ*yfzDTg44ZuK^^QIkHNkyNb-(42XX7MB;7)$A zVe%c{$w{s4y?(r;j!olIbo7dwQF{{dyj|nKQM692Qy^w?^-7efHMfz#u%-C;VVZj< zC(EIFid|$hF><1SKeO#-_GH3lreLOO&xK&1h@B8_>NU!HbVU1W) zp|5W?U(Of9Qg0Wwn7MCKID6IKqj8{`*kW+z^nfMIWbqu$t7pE9ZY^92!PPkCmjTJ1KX=&u6P2x*Q43pIM-La2wW%;H#Jil{aX`kl>zMFE)vy*wZJ31)AIX`b6-o6N`JqA&mS=?OKqt4aJaLk zWeRykab$uX&FbvnjCa~g^1(&Mg9X&Q{xmB2Hg)44YpE0JH)%lV@h&812+aN>#`QC( zuD1pHnm>7kB?5&Sq4_$G)CSg7tB5er{Vv@oPIc=V7Dcl2koPM?hNJIB|M8zBtO|VY zgu6w?9Dc%OJD1N{IDQ{ohN5O_N`w1-<=GsP)*{gZFfM?y;x_C&k38SjLdi3G<%sih zyenJS-mpuARQ9sct|t*oe3M+~N-9`VfW-lgSD&!>pWIjN98sAbw<&9CnhD>$olrBc zhKSMAM9_RI|C;bSKE;z}Cr@p44)T$~hbNrCC*1RLa=wSU;TwD0Z+JLmu|}5(Z+(PV zSk0+VJK|VPo5Zmbp`s}L?>m190{?ajJWalkE0vEuBxlQ+$=mPf#h*R>(Fa#fLhsW@ zA|W_*{qjZ|Y%RMCx8>+h{N|9DSNW|qIa79^`_wFcd5aDELMF1hU84l)qc=7`aB#!= zVf2p_OZ>Cm!G7U;1l5!Ks~x?ozgY&EPVTV z#bT>jk~MN!h(PL_Bfx=rNQ)CQPF$|)oZ^(mfbjZZ0>PVl*XdA*C$tZzJ7RQE#*%=W z-8^HVol%HhG+*yPq5CgoJ0i%gLSDXB6Ky$uJk#g6`!bL$S>k6(AI&p%kpVd$iHF32 zLxr&{Kgd_XD(zYNl_D?pW)wBGA-=R9i(yh?V&Y`{WbdeFWk`z6lb*V&@u9mSI0J%a z9iOw1eTRMTtR)l5@PN|c?LKS~PbU0mDv?Up^d|`~VCW7TJb)igi$i129cFjOXCNJ)`_?f$9r!`lS?(iLmnLMF@=;_&?R_1vu&B)9ASS$voe zK5&}P9tEH_0Dz~+MAoFuf%b-QPjHYk<+(5R#zq46`6KeNbYrPaiKGlfI*w#>3_AUi z?|J+(q0_qsh ziyw0gq-4T9)i6|7RrPtwW6wtFdz3GG-CRkbU!6C|J0R%*$$*dW@LByc`)qIWgNapbXv2*J!@aafmA; zp5J~|LvtaKypH5c;{5N6f9NjOIMK={UPMBvJod1#@_#L_I>PUNNJ1(zfL&<%$B%^k zB9!gj3=G=DJJnEdb1+yQXt$#$4b|c*&83ifpj48cXga&E@dyf9=kP$0Fin6pwb>aP zY6)7$rW-osXfl8{c0UFIfeU9Z=C3_gNtamQu@NY=5-+Ubp6N5kz2$cZKWEs^98Jy7 zQL;(=tAla4{(|gio_g#zgnB{p2a(F(!|nw|)gc#MGC{}ZA_?68*&OIU z=-X9$C1qH}4{!ci?^t1QRiZ+2T=%Q@sC1Jm5yY%pB-2fU;;e90= zobv^@`6F&$^=8cNEyL^eT zRegJ_yFWSd&n^2WBwxqyV(ERm@aOgz6W@E21C{r=3tXb>A1>Rv4T+FYnIr-xb+vl` z>CBO^{}FX$PjNLb@@q`R=1G@hgQq6_2h13)q_9%Ej^B{bfZTEyd`_mx z>Z*BlZ1q<7#y<<^HH5>qKX%p7^h?q z+vvt1ED{6!3o^+#n(8B*$Mn1)Q!wPLgPqvL!hSaRNPqYYf4UzkVRTPve)i!eR6zK# z*`eV~M`>xk!s$74?ck;8RnO;@ zb)Y7>n#Wr4cE$u*^4zAXDAGV>QNw(;B7S=QV0^HM|etCKA1zE(!l)5NdKNU{`Ivsc*^yiEet$M zb7c@|AJG$RFldZj1H#hnI%eW%X9$XGs>4MYUr3C5U#zxZxjt)7uPUC-hkQ9&Kmjby4f^Sw?8=9VdZv%`)rC%vbks2D5z}m{%lpy#0 ze`0ddQjI6_$|JY@*!e>b35e!-AD}mS2!D$a3J92g%;A2}c4l$>M-Jo8FBvfeybV`c zs*x){_d6q`gs=DtHZVAC>9<*cwmFN}#L|zPx{g}-w3e1UjWoV}x$k?b^5+_wdXZ@2 zAy{>$w{Q!Xod(+KSiI6S4}kHk1!B5r6w?N8A*$VU#e8Ma zA_6>b@UIT|U`}M3JnIKf=iPKsPdBcc8*j3NiLuM>4Z~VCQ}P&b3ZoQBl03EuQjMnk z#uh}(Z+cSIGrjD*#4Eb*9VsZVkoUFppQh$M_<%nn`EpGWuYdUP3L#?_^^wI6xW-&W zOAP$UuUwA{vXDg#%C5U8F$j|rfSn99uUf79*hHStj|%|&{Np>nqo?gAxRt=Z>BI1k zBehB{r%PUC^iEzo+)cSw{Y_rlANtBfl^j-sj{lblgf>#EWr}`O2#1HD2x!w{sW&x! zw^#dwq8gf8*@g%#lquMoBVjaPii@WgH4H`|#4t!nl-^lu`LS)jmoroMD;l2N%mW5u zJ_0`O%z+2UXNJoT_YL3J)Jd5XnC53LKiGWY?^uBO2AL~MS5#I)ZpkBh>^Chb)ri2} zW*hI;#TE6R+^^t(4j_1C4wouIZ0}>~E2?r)p+fdsuj5(l7!QD>Lx^QRo7kQzluIBu zwFmb78$sA&9<12@0-0bZ0_Cse9B*^MiE|e=PRy*|OMVgH?d!<$W5t50pW15?d-EtR zZtnLJjOIk%;FbpTLb?x5CU}X%YUbj7tno85lj&gNfQTF+HUJ`5)gLLwcu>##(_{Z+ z-_lvv{EAYzG}j;IHt;s93M3~c0}372VO^#p5kDu9LP=&!DBkDYtj9Fs^&`Uk=!NawnsM^#KlmtMCdtD zC8<0ndsxC%HX#x#5fZk1crFD-jLMv3modT#b_i zAfN~CY;g{G|2c4+rtGVc<%g@eufE%9N?-R2RF6?J^qdCN6mWF!@!E;thldZ2$PB;F z437b+E*^u`8itZem8#gj+Oh}|8*pPRA9|o?X{Z)UHp&Igq(9YBoujEJ|193$X8s`L z`i*|AxJ({C_9ssB#{tom?moSyX7zOla$yysX>`_5*|CHR5dS2mxO-%?X6e@i;sJ#J zTo19KDNpIcWS7HOjbm@eqO!Lsc0iNHVlN{dvTNm<#kZ?K!$}OByUBoVQ@{-j^>_*} znFZu7U0NyvnJ9|A1hfQG7I^YO10qJy2Wco$fkl78@E_iX6)1yf zsi5Hx78?E-j3)wy`J7eaE&+Q(e6Z+_{5FjVU7ZVDIFbn{Uq$nAEVXH?(MtqH!M2{+ ze?#C29ac^20F^L@LnBUtd%9WH5SX5+8coy!a|Bi-f5>fnvn-0YEULQ?Kc&A{7N}YA zqxErOVL_Gv(7X(LLO*hxPC~5eeGBqe zH=lc4Q2vQK+VGD zo!)Hp{GFZgUREPwA#&DGoI6=#8C=XJ%;M2OumqLgc%r*tS5}R1rT^r#aVp<29D`m1 z7W4R0L<;tqu!U6>NumyrO`7VdWESB9?7nZfSV3~G93lxRG}$3zH&b6QX#p&^G*M}__Qsex@^cqP#(;Ys7d*<;aXy zv@Wry$GydN{oRiNjar#rab__vf=b!qh$(S)^1Uhb%x+d#`H7g67WZ8!*7uAdF#e+m zh537Xh@hmQrDZs$_54O}t?}guef5TkOxZ!EXW&Gtp@!P0zy(hzAjRDu;S!CF#h9$b_USQLJgT9agD)RgTwHI?1bntFK{AtHA-FUHv({Eh8!WI3`j3*j-j|fk zJ7|cSnlJdq`^2JV)Kk-rPp;%})kMHob&lAW<{ycQbNp|t;Z-KM9gAL zT8z3#DQ$0*RbY}?9>VIVp_Knc_QWZf@N>ec!fF=s&P@&SP2F2f2b9DCiAZGBd4rRK z`>o&~$6#dY>zKMTr_u6F?6j~gCtRyzyo1Li#ouL$`jnEwT7^=9rzam$wl}?X$^(8(DD`y4DSQ zLr8cVN>Gw(H+MBApSQ~Q?H%!R7hm3LcwI?`YWazY#d^zxp=Nw`GbDY#S670&JJt?3 zf%0x2{-M~V*7u!`ZuGigJ@YQ62O@lE@~bjFQi*|CmRNjU=@aaNU{0cl@h6YG0x`h&y2-uoTV4W<7ReM1=mW2 zi+}ONI47l~WC&16fG#(A9U1TLU1!y*B(8>xhnFEg+RUeO z5m66ShExr_I7f2cSzY@2Eosd33a$G!2gnj43t@f0TQ3o#Fva{Sqb@mFjYd;mk{hE! zCDj@;aW*?OHy3EOHYp3)ohwmNEXNMg4Ubp!gPn2|WY(w>jj4DvCqKvG*XO5VgwsKJ z+H?>B$dCBtP9*>EkzJR*>KwLD5I;{iQ=c_8VdJ`w zrZ5japLfQ(Lx6BGaG%3tMo;MmR{0oz2;Q;WyiG#1x+EQ6d>)QO*49>@=hQ$BlC$UdrQekavZKF{6Bt4QKMCqDFmu%k-}TL%VT#9NlE%YL-K1u#H=s6L zdifK7nmSSbG{~JSx~{y8UiD- z+Dkq|&#Pb_u~U33Cml^&oWKLL>Faw^6w7rQw!4#B!tC;1Gt6fL`R>`em6FM`QdPFr z*KMddx)LWlAL6icy!_>5PaTr}7@3|Lr>HP+S$}I-JiSS+3A?kNv_j@7jh``cijCTu zEjqvQV-_5&+pbu`r9Bk|Q1C?ZOy1rA4^1Ht>nq@=2-asbWe3)C@%?-IZAj?Z)*ou^ z>DJMA0b)2Z1 z@CeNn9gT9L#uEIE54Qw3uS-jhu3jpk*>ZB3#Zo;ccg5DEhkHgsd_X`Alf~3>g-3D9 z<*Q;-v*Qrqc^YTiVFc^38m%-4IfA z<*;GDz5-R+607Z?QX|3Q=wV>S5avQ%M{AkFaw`K(-`HyA;cPLx3+T=3^$psW_E7e1 z-S+{a^|m!n1WbeA1j`-svBLts80t*GHnx~t1XvgY6t5@eWG9^^Gt5ZIS}x^{N)b7k zxcQQl_#de%#w3TCOAz$3Dsn{^;W&!W&8f1i%*(`S+oH=%@=JJ6&x=>vJg(A@Sb8Ou z!-{ULD4WaxJSKm&zu|$r9g7*4X&_%46@ds5bKg#S`6ZwYmZCh_u<4iw_Y6vyjd5!A zkF=~=KKFkrV!o$n6~S}DChq*o>uRWTz-uOGtKO_aqMwYp8@JgRYUVS@Vt9#`90m@F zeoebH({YrYr0xbXA8R9-&t#f1Xtg5ci%&e5?tM9|%i$D-Y&@HtUte!9YMvoc(J_Av z6>)4Pup$7+}z}=zbTA6JL+0k4F>xZurmjZn}FRX3_&}sG+qVL7OqtBB0gbq4^kw zmtyxo#z8E~O&AT>UTC$aqB6Jps58z-iz`E;5qEp}nL;tsL|@-uIIxPz6p@mGD#15t z3~DawE1QEJ%wIitMv!6eouekfTqW&oCPCWh%oA^d%+;liHyp^jO$v$vv@chaEa&gh zuEXT$DQJryGSPlTPS7gRFf@F%hCJ%QUCYZztW%nrSYlUeTDs!opAKpnZTFDTV<(^R zbbBN64OA@-B`$3*3EsOC%t!SdmvA~28lJvKgT1OyVB7kZZm!P7r9CTey~=4XpHih) zTmNew&(dkY9}z-b9i4ey^@KOv=_ z81gmK?*Jiz`8K zv1s@Gp%eRu-xTtEsv42|U!EAajPfMkPxI}wU;3@rw1iNr6%lh~IQ&Gfi}tMRl57&7 z?@k!c;&^dX#hxzCkMB8#j^R%_Ajj}!!y0{G|IEwJGwHwvS1y{UzIr5ETvL)bj@N(L ze+6oPt;L{34tXz6bRyh*_T9eca%5gy5Ve{!D8g#^6h53bn(Mqknp(}Pts-&fM()&M zDZNNqFW&O6KU`5ncq=@8j3>XE7#r#qqCnV2PG(@O+lq_CJ~Iy#U+cH{)>>`^!Nkx{ z2JYviDkwS$mI5i4#p!ppFrDo90F!!YL$YPMt1JcK)cNO3qu}cst9l?crN%*$pTcu+ z4X|3ktnFlx#>D4SXp-DnFwda+CnlI_Nq?t+pXeKI{lHHq`qA>$D)MKdRfE=ZX6$!j|kL>-p_uZDD=O;5!e) z`O{R6a=zIt*GP|@J&JAPxrje1=En6VxbsBteft`g`)6$>46aglwS~+sPi$j+w3Zvg zN&ez$)&`*w$Eawy&Y<_b`4@=rgBntQ+S~-^%9tjFdcX-Y5^9B}8z*~JoEL0tb*1{I zTuh|W$NZzfCbR?<=D1ZXT*7ir4y!$C{Bm6n5hkFn&hjZ+4>R{0*)|g`qaO4Fu0Q$J zqs+#3c{Q)q9x`LWY$Hsn6iyq|Phqj&goqN^Ju(5ZeLm?Aj-+H^%l<$upFp;z(egbw z)4n3PZ(p%Z#zKyKjIZTO0EdAI0J*R{S&s> z_j}=+Z9tdKK|0F*vrFG46tcQk0d||hQ7rQ>kh*VFu87yIMSWWGp;Hp4UH09WVWh^f2j>h^!8PEunGjo7%3Iw_`|T+2t%>)V$?D?V z7!xnYEQYjsXsMOPf-{`Z*|Q>~O1aL-nr7YSo}Bme7IW3=TWpCW5oCu@U(GFXVeJ0I zn-(S1S_T1A(9B{lC*7}C-`cy&t6zz$+wbtI!B=e6^=U)8Z8RWz%EMeZt&3F^@Y54J zQr5Y@fpV=IO1nb_-kzRXi(8+bk||M40%W^)fq4J=-F3|!baz%Y-2ryQ`0KAXhIUeS zX68zudC4SW)0`hDhPcd zC`dd$Ia}OU7!_qOs}}p}GyJa2_Zneo(fqy3f)=uC8O#-HdPcsCpx+$O%@Nu!)KnS{ z<3q!gf&g)^cUH-zf`?2}Sc1NPman-JC1jErl`96=(4cG)EO_*>4+hha5$(9-n2~I`TL#PBdaEey@aQdRvao z+i#d+V>y#CB;kg>$FT;6>H9og&!rd`8Mf%HsQ*FPmX~Sd#x*@+JW_BcXU(iC+G!BL z{}K?Y@Q>S_WCNchCn~4AF?O{ z;lRnNicho57D|C5GE45v#Sg1LSc$P9PcRbCv6r*N$ly z9NSn7M(!M{xO9J^inF>Mk-ngL11Ks4jNMWx2>nKj68t6E77vtL6FW(+AD}uk%5zCI z&;!iguYp5jBi(ar2_#C2fC9xcZVFN09A%om#KLfHtJ8r^E02VWNS>Q~Yr2G@D8+R= zeNa%4q@q?~?8kCZwo2Wv-4p!@KWaW*MMUtRV|3F3bh&u5e-1Uv((%v{txwTRgh+4? zMI}U%d<+Ruq8e}WJd!G^7O+vbhF~T-aS3YJw6*T(eb?lH*?QTXQWbr!7VF1UD=4Ni zY%@Yq@w4ffIji2RsUW^P9zez25fAUqt>PW_j4S_r<`Db6QIBNBCmy$P3B>#)XEN@o z!q(rAY*-Tl@e-gIEq>jIcuJs$=PYO+x&IgTnn&tI*W5+385=`iO>6Cr{-NqM~q5(M*N$D-!k{S+Ls?58^OmjaQ>bHxW z>Alch_s>|#aH69PjC$dpKA#{h{~5-Anf;O{a;gmn-N`C253Xr>CX`z`RnTPZJ9|tT zW^ZHdC(W6ON4pAkx^`}O$Gv3KxsdLTW5JOUZ9dun0%9i({xEsd@>CYiHC%p5tUi`e z$pN}^x=eg{C{A;qi;uRQ?C#CH;^}3j)(|1juhyD%wq(X`dT6B>{lL z=TxU_#?}1kpVK#k7V{X(sp&HlG6P^rR8I#0BS)QMi6P|C_9ckYn(DhN?KP7NdS`T| zC}P6waxhcGDBbXI*k;#9T*h~;u^7j{x1%CKM)Qc&5MGd@CU z>79QfkeXther;xK)!SCsbQf2~y(KM!0T#G1s-t=r_yf}d-@iFO-prdZ(DZVa97C#$4u6>b&}ZtdP{RD{Mksn zh>;O3Karf)|6;rNU=UDsR586gw;a@@yEH#_*Qpatn^FPSQX>&!;eE(SVPM^~`+KIv z2Zq;q^lP^3q34{2k`|2CQW^zSKYBvCL=jJCh^~FhFFPX%EPYbYvU8$RXvoZ~UhC>p z`5y*O^^hy&|4gl|@vqD+spevG{F~E`L4zE+s3NTJ(ykJaLy9L4Q?0p9sjk+8y z2_@idtxG)lo(W*bai<4szcKPYi@C`ohoNq6RkKsIyftm7C&pLPSvN|0|P42eCvS8Juc(_h_3a9KFhevw~_xr2w+s7nTbtP>| zp|LI4xiF`ZaPnPns#Acp=<|OqJS0{%n%wB69Yk3n(>yl$$Df1P5{qZ%QaGedH?+0Y zCpeWG-MVECtJUz`=Hh*WIjpLOzzMm5+HfqCYJAnJe&UXKGymnCe{f~wWEYrJEi7`N zkz^)G>gnsuef)i@b*YDARP#<`EFl`Mc;17T_@17JYQ0-tUrFjBzCP&6-iF{(dicLa zk+*+_>z%u* zEBef=03;LoSINJR7w3zsE9Jc`Xi3s(@y)fky(}69H!569+Jb^25Xh8feD^RO3OOm0 zFin?X&?%C33zx;el({ft{-5^;i#Q@H{!ax;Er#Q5;4OqJpGIT;13p2kH|)q5b0u8| z*AWlsxizwB^rpb_RA)M3I@wP(xC0;C6pgOwZfXDB5@<~gO8=^fbiA!6!dt%bU{p7u zHVTg|PN~w9ef07v&7Jyl#rFYeOGpyhcg`@S=fLn`wZCQlcE#TY>Cz_xixp|?RPA`K znYgRte&=6nwylM{cAEphE(FFIZ`~Evct8!xKeGuQ>BjTUY5Q7K`X-yd99ih)vE%)a zL&mu{MxSOmDT>PzBIR5gW;hv$|J`4g24B95eLFfOb!Q z@{HH+6VI`>mltoSd68t!%G2h*@92dvOUm0AExiUJ0&n--uV1tMwJyJrsj$G2He@=P&};nD%gt7Dlc4 zeyKk3rn?!Y86~A(RNtvpO__|D8(XT&rcFLx+QgRrb%TrlRn3i}BioI^JvRUMWI!oj zGW)dhf#yG`fL6IOa;U)QCYFH*laIA9t?eUSD*yIHG*bvIMg)Em zzSE+OoiJd8veXD=@=0s?~i__ySho}Qk1%d%N~j`OR$ zOXT{&MNiW0WQFf9kU$&3+GNo6Agg6HXL)S11D8Msn$Oi!$yf|&k25pYU89ZLa`D{z z1k$M0?FfaUKkt(U9Oi)^UiamVCQ#9%8i!rrG{H`6DzVLu>U^qAVf9lVQZp2C-|hl! zTz~a%ZIHE25=|KBFaW-!Nt^*v&Sz99v$_ojJv!L6`i;sfw_ffHEt^u$s3JA}=pv4c z)G*EBc8o_+;B*?poa|izLtAs?xD7tUlJWiBSAjgP4)50S7|lR)X6m*$@+r5nnpSnO zyVepc7Il<-JtN}srWggybzb{6RAJ8SLLE7_RmZ7@jUk+pui;~JgbM%mU7G*nx{FX` z1`tr#dX@O^&};%hiF z$bw65OdbPFn|BWGEG@s6XliLAg>Sy=J2bEc0CJcj=Z!EyQFmxblwTaIkbTTQ7rbHN zXR0)m(l}(w?C2y1fW$Nn4Tma~{50 zjfp@A?o%b|Vk)wEPt0~R)p4Whj%gg$fqe5>VN9JhZtYkqWp-`err4IN0~2GP_4Sm| zRqSM8;4}tTkb2yK*+dj$5yRy~&=p01p8AaOF6@NK@inSxw4>(GBIjO(5Iz0lk;5(7 z!=JR;A8iu_(`y_T?{8Oe`oahek!K3lKx2R}vm}***?1$qB~zw!&NNY z+MSRmNoh)d3P%jnP%&0l2$xM&6IK2zJT%9Z+>o6*&k4QzUsuI6g}_U*GqJKN;agIV zx8{n5T5)>a*`N>$R;*Fa{+2Vyn5p<^gqB&uTOVOLno@gM!A!lz#rFLV8rQSeMq0eA zuca~454w?vS@`ISU6*E|vrXRz-s*zmfI=Ji*jZ#D#>l}*SLA%Ts73T@pM>O@FFMKR zb%TQP1$3XFd{ewnngrz1ojJdx+)`t{FV%h#VHQl{EtR?33%liSwY#253)Q{?)H&0s zG!pg+77aYCL=ceWztryv5~50Vl_Dc?=|_RQK8aJJdJwVXUi0c0m5}TX*(_H#_7?w) zANdZ|5M2)mw?{F7bM_vj(6;9bv9Bj4B4fTUao~?(GTm@O-{T3M=|b()E~6V6lD?SR zbJpI&bW2W{hNsw>8!G%2mG?XD+OntLH7bmhtGFbDk$OZcO2C2$K zTtTV%&XE-bg3Ks;vA*>@xL`RR!c(*`Fyb`?S9LnG_x zOu%kOOP=zFTK3~n=E#9*6&*McwoWzl!$wFzrTO;c)MYn;jY^wd+|_Uddf zPRH(RWceLbRn+2T^YTGbbkBPRyCa~;rX~FQz?B`AU3Xr ztL6HVOW=U6?UF|!9>+7%@Qwvo_``JEz_J()2NiN@GRCGb-M|G%+*X|oQX{RX^52nV>-?*4lbWCXD2VXtnVs@}3uX8A z=jEOrfU;%yu&}fZqwZpfZ_bmyM0B9@Rs6 zW~?07QG-28n9k^e$85NQ@s2`8IH`%Ya$ymDx+IKGn$EX)o@L2Ga6pjrEYCmV5UN>~ z(YtM(>W+`wW`rE$8co6&zFBe1>p6)l658Ku(PV*R8x>MJMy}!Y!5-;0!~KfiIs9{z z(OqV(oay=Iu94f{msXjqi0q z!qpF%rSP(-&cn;GcEhvbry*EX7+#&TK6;msK6h%&M8;+I()hB5JD zSYLpVhp${Bx}P{GL>GqQR`c=f!erRj6urtAEhp%qhRyTc@oBzuA73}!;#>xg-t3kr zNpj#JH?8~fHHCMk>*E8^@{b2i+M-PtQ}ELH7yVhc(;bhqzF9O;#(*Oj2&i9(?S&|2 zBJaI#m#A+}r*X$mKhFR)P%v*@-^%*jSW9 zbz#W)Fhzdrn}$O~r61=uz;#uELL zNG)ehpM8SacWZwwGy&W)cSzdw7a}J zr_s&|*;*j;)iVS(-5oyp#^=C|BVB(Cl0yZXp9d^*-ctU=bI)BC+dFpdPy7 zQY4g+SQky=iFs`+xg?@JHW=_n`k7vwBBQIs-(i_9<7a90q2Oa zwq7$RAP%?=O8KS>DJObS*hZVxELrj;e4DR!vPjpT<38FCU)5(8L$MzM7lmU=saMzH!c|xSLTuZonc+xlkD4am?+}L z6a29mx?!ULRJ1mN)KiespmAYbK(r`_l(8|E-GT})p453J4pu7&@8q|E4BM~YiuxfY zB{m@xljBnW{27#3)j(G*9WU@KvOd0OD^`ewel0?R(#z{mOEj`ijJ3=JA_Mt+bwl_9 zltLmtB0{Fj$tWEA6-4E}CZ51&KPQprYH%nLG!M?`E3xO`zuKd?%gL~$4&C0)*-`q2 zFJX%?55u{Wx!YA?FvS5ZbKF~N-|`?-H$-RR+W0IvrKq@h z;#CTI>FaPs@6keDEpe+j$M~YnDE7Krmg8bKZciUBJFtPB<3uLkR872o)uzd@gHCHr zG2j@Awso2=%?5{g4#-4kE;PlQ$Msy6uqK5}PEmtJlp^t2u9#9@>MdS;CO6!UIEb>d zJt8uii=Qp!y*##vvPIP0CMZKE=ZksA+pa`vg#w#1$>_@IXvV)$v9%psQJFC_Qwj0; zPZe0?;`GGF57ACg0~iBWaE`iz@zTzn<|h*bKZjSsmDH6>y(Zv0WYO0ADJX2V7p~FBbV^4wiCf!+bSXJ$)bOn}-f_rP-bQ z^6)Cj@9On=Af30?`MSE^_f}v3bzmo8h;MwKo+rJ8kwkd!^x+Z2{ZNwi!RfoI);unk zYuq$2VUb8jKKEXi*XN2QJ>z^Y+}vO*ct2ot&&A3oU#6ff?Y;0{4k9D)ajLU8@E_c`Z!zkjgqtjv4O zIp&Zj9?NN7sf(wE_!`1EuCu1N3sG={%aFw|58Wy9dil5X|%kaG7 z+{if~;x`=7@x@~SGbe5(PX6IxX7y!N3n_n2*2oIm))id6Vk+&}FFXVjA>)W9*1*r( z_9{^edk_%Z!A-&WUjUKOH?4atnJ#}MWXGFnbCx%l2CtWeT!8iI4RUqBY zstES~L+xhT%o^vC)nd4)5iW7y@vFU_pXuPc0Vgob=>uZ#xfkdH9&h}F*$okhR887H z^NY2fj`(yMWQOa#e7AWypo>_@;6Fd*pV;RGu#|cXb2cEmP72@nQ&1zRHEhtO6vP7) zs_COw_wH#t&sq;TmKfn-sY3}|zcrx{OXbLSc-%_s>?I<{%e#4e8Vm!$4Q;>tq%wZ+aw{}|~ zwhY^y=!v8xxm0c`=L0MR^ z)l#qXbbfcHP4Mj3=X=KaBC&0Rs@P`ZRJZl=X(w^BOFylK%_E{f#GLzRxVdoUt0LIp z%TA&_f0kRG_|{3QFt>FvXC={%w8z;tMni^2z!Bb@v=)kGZcni!OOSEEyHe%qBwB_n{LzQ_zR1(OS7=cshzqH6l7!!_i^>CmeeGcWM@E zgKpl8FGcvq=C+D^`5=k;qF<1!Qt(UA5+thl^%{o>*WVSM6tT0eeh_8Qh>uf8BSZ%z ziG*||)!=JZ`zHTEIR5XzgS>@Q@U`#bbq@B+T2Mwr4Xp5witDqNo8LzqwWNL7iVxHR zLbbfv{x1o0y_h4*|D-k3z&;s?)$bNkla5F^f^sjA$X<5_=^}W1F8u(EQPM8Lgi!f^ z$Q7FtY;;g)hb)lbD!kB${1Yj_r#&>gtB0l4&KLY-$oG)`9T%M9^`;BHsl(vGh(7j# zdjulKAiDN17uV>Eo*snLWJL050|-IbmY3I z)b7DvC=hb>l_J;)fYyueDToKQ?eDp-JpAw&JdPDjl+wTAi(iSldh4soAdeE9u$T`Jf@gHT@>mkdAl z=#-b0LlydTR zG^6}lDXTlWfAk>N;0M@vjEN0G%PIKdck#zZFdw%oOmqHD3ior1G<{j3nkLd5LxA~W zB)-9BMn;27V=!ZWH;7#)D!}|WtI?baT`LyJ4A( zEW-c!_dUOtL)0ucIba}1%Hkd4)pIaz4e&o0J^n%l=@b}mmr?F=Tk0zY)##n3rlwl* z!MI(F+v7EY42xkWiD`B&zGr-Ds;szp;MY!9wjDd)nZ43|)=sZm&K(4i%%+LuY#pNK z%?x}*SE?byeRRwM`C+?VSnXi>Rj-EVoC5YL-12of={Q?rjW~!_LKWC9yK5#xi}w(W zB?9I|H1Nq@Hs$VeR7_!Ql%@AwWJ_j~U3H(;MfqplHa+Jb%94?6jZ^zv4dqYiCjAM1 zUSkVA>PFRLZT2L{O)~}i8={zcr8@V%Y6`@uA28~F_7H=?X}N{t4_BgJYGdfmEb=w4D%U;#kq`}eQ9y2K#wldX;3 zkj14XJGz%ItzqHe_E60-equldLG01Nn$ijv5NBNW;$f(nwZUkRar?(5x52O`i!d^D z1`p38`%TMuW}O?VD50v&SP*x*W7fALIuGJT3xY~j6uk7gk8(0CJ2bl-e^*gtvf)jRt}V+HG&W2{%(qO7|CTE{rq9jW z^>bBQ>{P}0>a#>ZT-pDMl~ki1~Tlusbc2w15gfUFwJR=(=5FmMCai z2?cHWf(CfUnaj1N`*_Ts$aS~#ey@L*j-C?Zqg)&jQ9A|rvo0P7rKh69(qqe@IFIUF zQSXU>IG|?8GKfGU13HlBfVVdRN|Eo7F;2&u9PKC7bKmFaYTv@u*~=p8$n+x z&(KiA=70Q2(2ioY!vNUoaQo=A!ZyStn84cJDU)4TNF5Lun8oixu|1q%bGbhg`-xZK z!KHm-cvv>4RH#z|NwiJX$QRD)0MJWj#9J(4DW+3!SZ_RX#;(>U3HoDgCnbF|%q6<^ z&){%=!e6f97~0>khUdf=>_*c;R_&s*{NHWr%pkL00fOg~$1sZlTW<7p^3^^rkaX;l z>5n*7>MXjs(T1oCu^w|MfK{L=tpu&r9K0TjNs%;gH~~UNn>wyG#^0qk9<-RU7CE-m z?fk3Mnsin6`u(V*Wjh@~;XgJVZk5So@%{<60fontV-Jt#F23PM|G=`+jSW>l+CKigcNc>% zyEhe+MYqF+BxGT7mmTp&YQ!GT3f12DfjSxx4j#5b(VrVx?Jt4y+%fdP9Gk5*Qjnevb7 zlY-&Tj=Wg|NMm3~{c`B}bsTGp-Xw+w4WWN&bat|({RHS-yT;clDkH3ytlpr1KTT23 z|`NM!=3x9`PO`GYmU z9N%{{;^%jaHP;0Z=Zeb*g^bp?y{S3sa!ORp@@bdI6>wDQ_A)r1oO7We!j9p*TzCEW zK)i-aq9t#<=t4d|RVvGg&+pwOQj#ilYIWQfwpez=Kle**H=SnyT*+F*JVsHp=Ae5@ zsJw*|6U>up{z38E(q48&@E7^bfm1sru0~6jrT`s%De|ud+k&h@d8H3r@hij0 zUg#v|N9DZ1W9~(Q9W~gZ)vpC~P+k$TE_NhI=kp?JvDGr98T1-WKd+_dxO1qTSxTQ; z%q<^aEPCm8Z^)r&X_*xs&m}n~i~P)0%4~3d4{snLh%g7)e;g* zLn1V<*%Cg+OO}#vZiPBo8bWO96}s}$j%jJT9$UH&y{ep?3eMj9_lHw z29LKMc!mAiayglJ@-%M{d;A)=NSS5=H;-KT>Cm<>ujant)F}>&FmIN$uaU}8p?8?NQSj_xmjt=P(&Q%5 z@KZHik#{chjJI!%loi2Y|9^T@6dFZYTuC#|)`8T+ont)d>HN+nNdKrUt zY6$&_raE5)fq{4LDZ$(kal>1+eIxPe>V3&_iV)BaHQ}HzBQ;X&#hYXPSazgDz#t)bn%mwtD&>rgU9N0OlvVz8fV9;cjJ!!IQ9cQ zPiyAvEVWxMYhNIiX^Ruvns*+x5NB*i4jQLp2Fv88{7!1R5eK+l!mtm_5+f2`vK#PR zCn~96O=c#~8CpV%<7p|jrp(tM$f0J_W+lDlH68iP0&naUkN=p&#v_;qj@CD!B3QBv zUF5Le3~uMDJrw#!XR%s3f|zLU%f z5Q&&Q^iaI9T`GTz3fKR5BsaC~2MR5eTCpGOxOKd5~2wh2;Z5^vPjwte0GA9Wxo| z3mymTMCGd*liLqrz0TQGJi+gJ$9=OXP)=dIv892x)G1q$lUO^Mh!57JQ)U`<&$?Gs zH3sp}Z_CbN5^@qG=M03LHruFtF@9BY;xSM2=MdM)&_&VMk4}R^B8Z=92_9QUb;jK3 zo3a%Xlb@^RV=cjHXkz-?2A^xRsvf*$97TT_q-7}?wklgTT-gtO$@^-8r=g8<5LD99 z6Fzb?IAl#P$>(g-C@WBJx20cJmbCKMt(W(s6E#a#=76o*S;J{jl$?C=b%KSKbXIZX z_FIPNsSG|N5u5`65teifE4467RHO%B5H~;hTfCfRzdmz4X}7+EyXkmhYD{381p+n<2@*Q|XO?6Ct#`BB{@cqQZZjO$FH0Z+ggrt0r}LUeRkaPrvYxza{n zX$mmS1GK6e_Rqlx_V(WXc@mTb1PM{Bpw2=D!l8DBahjzY_MpT92mXfnsqd@iM!EcF z=|Hy6mG|fZSG2;c8C<3jZ_e+P3Fz*8ohf@Mha~N2#@K4DKqzl+ovswL?;;6{_|Ig> zqiJfHV?zuW>TJtMZ4fb$n002m%o-||QNtkvAxeZ!CkxUv``_0n2orFxICEba%v-EX z+vJULz2hhwKYa4F@^jtzO@c>MZ3D`|PKr`-G!f35aA&ew$Mn>%i+*C#Bf=Q{qHt-w zUaID~Tofag249PxqtSJr2KHpLt)p1FxZst#vj`%Uqt`dwK{!G5Ynq^YV%^O}s{kyI@qg1q0>ykU-?D46tTcuV5 zuCROqqr~~0cF(X^WQ(nt;&5!72We76(QlvC?J)aI)P0IhXln^nt;Bg3U>P0xmV$20v&`tzMI{o5Y-VWRysxcTyBL%4) zNTZ4aRHr9|+ADW6k-owqCZX zvrMvgleWA4r*dhc^!f^(h*hO_alOi>OQqh{B{f`gsT+k87WWi@~ppp|s zA-KE{$UZ5qoT}$oV=)sZnZCZVf}A;RWuXKlFmJ z+74#-kVt^PTbx9_ENk3Msljw#R!%LRRC~HAm1p9HW_a$hJH&J5j?OgUIuu}w*5REq z@+m=NYyflERR2x#o_jfh(-LOK6fMkmJXChLfqR?I9pUl@h@3 zw+TKX1L%|(>2AC4g;bBlF_@ld>VL}G)-o=CQD>!|?#;Yg9s!|GfV6DJrm}pRnZ{MO zFXx||j07^%(NUrHLBU-HmSgnmp@^$LpAY%ZaCeSoUnd{i%zDG@v25VcKJsIc=MAQV z%hJUD{5?pKix1K%i5bknn;oY7+jd;X{iH%_w|JR*@K63{9Sv;|idnq}w#_PJ$qoL_ zL0Q{fN@lubk=tuViSMo?F{nmtTs}squT%>!>rh=(-1MWcc7o;k55*jxWfT@~z(?2l zthM>ZJBvo%t?fX&3+i(pT`7lctHrXYvz~EB$^Xoj97;|pd+zwjhPKn5_OZpIRwIx0 zu{(cnmr)HZtN=oTzepB|t36}+ZRPl6X8+-}jOEh~k4+s80_kDvX0R}QO!&=$ zrBv?p8&#-f(hUk!gZ9)xwygC2=^M7_Lon-An!mb$zy?)*dzs(5V!+EVA(&05nY+r* z?^O%dQm7wxfeRD_IH>#t&pZBn_X+X%hX4F9u{siNgqF349h|OnRx1YM4)|kDSF>DW zk7Kn-df?u;DCSKqY3!T3z#|TI%I{vpi$lz^b=<7F3ul|yaJP@2td<>2N{#M7LT~i#^#l|CEyAV&Waq`^urnPFXC(9|`yf(PH<0Bte&&Y=2 z9F*hdrE$xM1ht00#I42UV1%;>#2rM|4nE{>w&TcN?Hx{5pgHf&*HqTWCX?s7#zPK= zR+cZ`t*s2j|*+DCP0P?k(MvNCV9@d@&x0z zPU*xV>F5UWiO>mLx);3302bHk-g zY0oz)+JG)017d1(0=g0|$lHIzU zA-leJH2Lrzr!%%LFy-#N1?|8rPpKy0Qh8DSA%SwYD4$y}pDEv3REOi594Rts#cgGt zN$APLe7PaU20x&Gil)aVrTIsi*m)V)$}A>?2l2b25k8#4I#D8-fnkkJbHRz9XeJgd9 zas8qlkhs5Mll;kIVj$;iC;z&XOf`LSUys!v!!Npsev-$%v3 zLhlubKA|Z77kd3pk66LuX$khk=IqcMZSlUa5zk6uST%nme(IraRy9ZJoN_z-KgfUd z`^H0=1Q+AY!G)ZQ%?0u4<2}l|^M|wBE-T?6;}dE3@U{a(2>`MlXH^@0ru3hi#3Uu8 zvFg2{x09=Jsp!;a%#p$lgK#g8MO-##oRTs!qb{K`Jlg>NaboXBMu@YaIL<2?w?De&bL zPFxa`dDO{>W&<{LJ2GR50CA>&*%(%FF*}S-DVk3Tta$=X2 zf6KdB{ol9iVXk{ScUXlVPIu%^YPNV$1Z6ZSA{XgF~Pp%u%g>F-zvrz+aTUX^G&!_rc2h8 z2#KFI8Dz2~n9J1!qg{*YcunBvQu<^rjtRz0S30X+!)vtmZLQW()P`dy6321~pn&-;;OC?7CrIZ5WM;bkl+4A!YGJ3)T!LkN-AwW)S6D zJ{>Y$a(+_gS5wU+RI*APbQXyox6kZ*cGTnhSI~cIOJ~o#^MH(>w9hrhLV)4mla=3J z93|xrsNbL=yv_PMJ-_UU#WkG7(~x=PL8{{mxyrhiOr{@!5lW-p|1Rg;coV}bs4Qy4 zl$XiNdCf81){w&O`U{NGYLo3BFJ2{OAIVArtYtNIZo=0tuM<2LUIJs>eyx7~0C4|wvtGK{xD;bCV1_C7q zM)Rsp{KT6ya#X))LHeo(&5fraYb^d%*8g zRkoQ1b^LDi&wnC=ejHg_$noa|a{0Nuwv)&qzQ4){Kp-x2y?zDyQHM=5(srY(b;g zo?-B>AL7hj{P}H`t6}6z`I>~zBT*YNzG!t-MEz%;z`^mq{Yf+eWMZLf1(IY9js26) z?;@UXk=;7|LXSUbMF-89yPTrpXO1rk(adTE2T8ZZJ8D4^zg6i5@0e)m2NDfw#TwI= z2BO$Ao6IErDIyHFF*0g6YrM=hjLx5&vubwb6< zBm>{cjeQ2eGm=D%jbC?BE1TMjh3Q9>){juNw$n=m*5{`(l zFtJb3vI&K@tqQ?qE17BeuisYAL(ED*>@{Z3zM&5u^w${v*V!CqPxeZWl{$vMu}PXU zlmk3D+yuAK8<%yNC+O(}(|@I6JY{sS%26@ZOXSWhv>F&P*E5Y;mJNMOVL|HF+LDIR z@Up4)su^iTnQ}8VXS7+En@+y4vHhs}l+hqU6Z@~6$;N9CdFH{O zR6CssFWxf+BaXXW(fnzi&F6*nZD@kn&RVOKQnM?9%IF|Hr=h6cLE{$V5x_eI8gU1d%&{wQHJQqVmst$&v#*vb9=(6aLqmWNZd@GvF>y$GDI~3o64>r;vkG+0EI; zAY5|kOJ3U;PqLG2v|ncyAt{Yq8imXSg#Z55(GNWkS?DnPXgbLAUv}gUvHar&lDg7i)PC4L~}%Xdy4AYV*O$bvQ;b% zY*9wzk^VpTQ1HtUeL%%S{O+LT@qL`Xb4Q3cKT3)oaj4f#g74+7$?e_O2C=05_wtC- zf(PHG4kz2}ixp4V$-%nR;*`4fq99;6DE}!kq3bc9sq)K=%0kTv4fC_&YN7{hmoPOF z56PLYN>@;1`U3WS6+KkJhB#fnKQC`ipCvd~g_IZY>_-lc(&ie7;Q$Q?eu%zJxwq8sago)+eT|F<-b3`ZJ0{m8#p0@>Hp0(^d!tapySN$8Y? znlS3&Q(-zEK?INg7HdkCLCBXBO7OCu-h(7(U(U zI;GdOk@FZ&+ij@HuHFoVfsbxsCt#R0ZA3}GR+7RjY*P+#nsH@TJaR7wQ%oOZmVc)AdL!n$5pGexrZx zRXOS?(uLi4#w+sVh29mU-9K)Dy~&Vmxim`E)>yqw-A%zWpDMi4$ZT6rk7Ky5A3XSnu*RDBM0a8~ zu8XR;!$ z<166qo{)`_Dx!}?eadm zm6!7G35Fo2$WFWJ7KzlE(Em%s6U}4SocgSmTF#o8 zQN(eybmCe-W^S&GeP`!i{)5Y*JnA#b+tLTB*B^emWd=8G*8@H`^n4g;%bJHU=yb=I*ozI zC`i1?Vp`qc+L6!f?si_}`Of7y4FS}U9=TBUy(@CLtyp)&Y6IYy6pycbJdpLDy;8hlQ|A@OyORtpNXce}TdICit63ZTh11H1@Brwr%r+q89wf zsZu_S_0P{pWNQSnx+zrgosEr%G$fDKc1Odvd#jojA=Z^B0oTjqg>1zDB9)LKG87kU zbA*4}QwcjqOe(3=GecR-h3)NnG0knpPD+!RfRl@V+=DUM0C?gk>&AdPKWS*C5+RuQ zT|R6|WEotuxdcS3H&MaRN&2>>vX<+!UV|kqJj*|ttwJddnV`HHkYYRh{wXBlPBq}_ z@yHX{`Xf%eaUZbaQP?$Xwo|}Ah>_^^o6f{OVj)O2N6$SfO6s+euzPD2Fe2QP!1x!x zYsz0^(NIEQ(BP3Mk!hpFo1+Dcy^J!kqPbj}x4Wa^?%~QO>!qW3>wm9m4z-+Fepk4g zMe!(#=Z+0+aJglvnBPAriU7`XFx*E9nl@;2x}PW$#22#O$LLtJuZM?;>d#y(Jjd4h z%bN{i#v~S^+#)Zl9^eOM2SVSY8~NAs+*RW`B6lN_ zO(X&-78&o#$Ii3+A?w}6M&gPAlV55WKHxdauTY8=Y*Pz^F*;4s`2qao`hmSH?4rHU zDHY4Vbp?>zKiMsL2_I>2H3!Zt#>yzqPk++f79UN1^~pX6U7p$tuI(JDe7QkouWGT_ zGr76=6WE#6!5tm*`UwNaKhn!02>!5+>h}G}Be}hV=5GjGkqvl^fB#@H&KSQqHgF0=9Q~%tO?`!zrdJHq{RYJrx8Bbe;Iay| z6yT~3R_r?9CpzK)kjXQd!Cfw3r0j?-^eF@+rg70#L~E#PZp{s`K9b31asdH0W*xEE zps>@fEc~3I4EP2e#gZb-uMChtl~^f-?v|JNUWXC+9!y~SdN{=K>Egt$?TFu&pL`4# z(3-Mkpg9YuzrXenJ8>H8;y7SW#RWN0(1_bkuq%pQ!cA#gOn7#;iA;9diGa9Hw(m3+ zq<&pF9WjHp!gs@Y&n%IRskh43RT`_hn#LITfwY{FzV>(Mmb)Y#{(p+SP^@C?L-Tr6 zmS7lun)Yv-|H|VZzi8(83}LwqSZd1p8Iddufk6ZOR-Gn=8Hg_i3;y;lwZdmIlyg0# zo;hQTlT-Aff;ojA8H_QKqG!7>c#7_Un_vh(W?D^sV;!lAiNC>I30Jkp`k*iy3#n-H z%|hC9VT19g1OY!S|8GEsvbHsS772-^E!}fomUK&RQ`|!EJQ&X>b!_az7zSIvU*5a* z@m2ESI_w%=X`3`woh;|D#R`S7!R~PutIr)<*#)&8{mlGe{WI}IW;cr6LU2VVBU_wd zeFsuF@nNlENGBQ$9Gi;nTGP^s=3_*3?P$Q~sGx(n2i)*!uRKQ-c2>1!hXFj zO1_p)tp$?VmAX4QGhml7JgpoUc{uREs6EbWzcU9AEuAG^j zdZG(WH6bW52W@SXyr1IZ6+2JW`&JBa7}{{RV)ypl!eh+6!o@--Kb{Ln+;$$}lwGr& z;QawBtnVYiOs-&k;(A&9ZjV;mD>yy5`R?VguW7GyAq%%)*XfI|)vPb!gSM(=0Os$C zkIFEd?Q)i-oh-TBT#Y@U%&`B#=-5*MK3C<@f_>={wGMmfpo4jXwktx+Y<9RA9`nP% z^D)_K^1`m6Yb$K5x|wzz>IO3onCsyU+lp?dLe6K68jl%t7Gz}Hkz*DvI0SZp59@3&_JfCzEd2v=@GRl~4U%;)z);PvM z`hburXDi;#weTYHcRVWkoa9>h3d}Q*KK&R&x(2Y+`?e(P@(TT08prTqgN}(-C{B{Q zj*g{hOiEotEc-8dwKqBKj`|Wa8|BPqEu#`W*O%OpV@;LQ=buwVEoBo_*s~2Z?^P41 zO8zcmIH`y|v*bZ+IL1{~;@wb+PfBm12R%8TQ;ZdZw&%jM_vc&G88N=&gbmN=Jqmd< z`q%VfaxnC!58|D|;a<)=T2`)}2Y4bPK4L6QDP4v%%)3uB(Q4?|u3Vg|{0lMv?SJ_{ zBKg{=n(5zD^S=7}5}Oqid@~EB-#gHTmZXCJye$loe20nm;J`#nn^_DA2-HW4DCkyy z^;;uG*cprKe#;31RjtA)PjkvHHhozBLZ;|g`1hiz|FR+Jq5{_KHOKm^Y5u6fNBn=J zGHN8Am+A24$hJ+ChLU!hy6>>BKj~)uezurXO8UAngk{@7{%ii1Cb^sJB3~^x_OsXG zFV3a9f8w*vpzQ+&O|pm;XEuHOa_e?xh0*JJ)19Vjfgyr@`u!?-Y1D(R7~6YUgZY8T zp`5N9vF+uVspa^dY#hIguR7QFs=p-47;SAk6g|w?ymps1da~|kjU?Wxq+57o=RC^S zLc>d|s%h5shbs~L&9elH!H_aVS&lKC?#+gG7PU*L^Wfy}1rE1#RCVGa|KvNSx^1uEUjBIROU)^(7b-1g0 zM?m{;s(@<=lwFUB*f8Jh7314fxYNpXsj@@%6Hk^C1ru-KoWjUuz1iWE_)LSBgMO>? z6j`gtQ#9A!L$Fmjj4b~eZ$iI?@UE#q8tEx>K&+VU{j*R2%o2c+@dE{zZ`lC8#hgI{b?`Az{P{&0)3VwinSDz+gtr+wiM9XrGLZh=y z4|}CplrO?#N?BjF2ki?qPq3&m|t{H%;n#Q>@ z`%%wT*tmPR9bxh-L3^?())<0KF)4E~Z|s=pY)yQEOco?^bRIA}Zv!nDgml?VvsERB z57X83aR;8ikp5*+*~*;wh+6G9lu$Wjw&P8>wrQXHb=fT3@hOC`ayh!8wXoz0Ra^G( zu&9ZVu(dPL4a3`Jt`z2J1j;IUo;-HV8^S)K=UO}Y=HE2pFJQsfTyj^D{@7qnkG@8I z#lkjMRTrKTutOB2M}N3cyeXq|$RA~Ausp3qR=YGNujGS)!>gO~7K@xraXoEob-t-| z@Pitqa9&gfsDe3C43^hb7$2N@PMi?yAE!guQ~zl$+$4$YY@8!J|7IC02OJ?Yg^IL|ZNkx3dAqaZ@F~ z3J7pofmdaQ9OB!Oe@4$A+X{J4l>DI+ylJxvf%Ny{f}9Ua4d*u5qf?XFlaKb+W96&N zO+HIi(9CwfhQ-NPBeZPjs5_UzPu%mm)31A&qKkydGL!95bJ6ne*C%%fChVGJ0=(zF ztqM${*eE4JqVu=oNqCEdBj2Bn!KU$d zi_%slliamdZkUGQT5+DI{sW7Xc5}h*CiiWO#~=4eFsU~TTp2yE+(AS>Uu)%mdq*l| zRevjTYD;ri9-{q4`>~Jurm@4U!jD;THVVDj)I&F%&%ERF{HL5>|NQi*bl5sXQt~v1 zn=!IlbD;9=%oqQacJPxSdt;;+oSDBAX;k-B{wLZ)YpvCF?wt})C~1bfw2_J65cxgI{XfnEk`b7=cKXme&~uefq)az6|E`@g+2V3cdSH;n z&POA$H)xkOAb(uFy%I!t25($5W|< zYJ}m?G8-GAKm;y-=W?t#DyH?ww8Z6E4ad;PP(V-#iYX8n_2L?c(#SVV}-qsW+J&_D>B@c4lK*;Bx9jZFd@lm))={j zq$aY5FQP42){Cd|m)SQTu@iiAhjnT#HQEZ=q$E?nr@9RPF|M6mb!3J@hPX!U$<~N? zb{UFZLC&kY{!P==8r*1b;l>+$?rk_GJh=;iO+7Za(bN|nmjLn|$!a%a0EkS}xfsfb zV97>6(Y}pfq6@rv3yMPeE?o@xJ3hAO4nzO;%^KvM!}o^xnd>fPa>yggkG{oBv6FN| z9ck43o3kkWQHcmDPD~rm@2X|e!InLg2~FaKt3Y~Q{+d8^*MP5bWVj(RO+Mr85I2D$ z2Xw78THjck`~3RH`oARk*_W@*YKceM^7=`@fkG+Qd9*6@DR!ia#V8(xKJCaM*7ujF zi4Qmi&HC)KRCjf~CM{qqz*3C6727Ow!uFZ#NaEdxzBH& zs{Ofxc5P9eNTopUO`uTjWY6mLRQbO%1sJ-sxl;@AHdS81_f?O%vi_Yz{G|@{s!YXg z1q7SiK#HM>w&2r`GI|ix&^Z$f!x!=drPJ}}-v~*v3a)Q|-HeA`E2??VJcsLI6`r)& z*maG^eY~rbOvV(=@Y;9>fN@nZA-7MF2Z>r@*7(DpAG*@u?>EWyd-#XD|xe}3);l~V}U?rRUe<3 zqqLhK?l%*BD>X#2VtTY8tt)dXT{%feK(M*J-G98)m?hvwZ801_XWtk49+J%)!)-HZ ziH)R1v^=pgw{x=ZS!TR z8J+HS&CDkMR-PbLexDUzd3(Y(v(&X^)+qnh=@2pzyhxG{WjlX6k0&O9n8j`q{NBmx z`_@6MJBNZs$4x-5wM2v_iMF*rcdql#=2BGY`qL;7**8fU?k2T8@$;j*Nsn1^%n5WHYJcx6I7-fcqB!}9s1YX_t8DQ>E|q3Q6d1poQi zA9-E+!@T5307lLW`isF{r1N#9dqu_1dNDWHZ0g%ZucDWxTFwsy>>mObxt_c!a=6vo{vbW|cTmV+by6@SN#NwLA4C)Ge!GftWqmN6V{2y}7LY+^I@S5bar1td>z(zo&x!4FQSCiP*W4S{>W9;sD}AU#fC zq(=sC#x^<-{nWI3`j{9E2b55OF2?xyO| zL_WYyBUIO9E#PuY9YnVJ69wGI(JXbcjKXl?~D zijeKiSXH%QOQBlWt>>&;H(N@6g|+{dkeAr8PM@6nrRVjG6`bF_M^#_Z^lz1IaPI1) z>;8s>GLO@<&z;REsvU{Lg?7|m#*cPk~p<2NO71q(6P-Kt&n;t zB?QDOa7ZpMQ$&$X5Zw(V4OpxaQ>qjQ|Fy<_cMlcU4djc7Jtk9wA?&O)jlO;R$v38w z?Ijs;NWHexjU62yzpCT1W5in@u_RQBj{W2{vJqWHkRL3|1m^8J=5ez)sef%#0;Au-9~QL(`mL1p62 zT-hM6K-sG8n>22__Et{3`Y3Fq>k=pg#YSPYvgQJU2QlGK9`{zk~W(V1l0;ucsZ@DyDorgeVNY`|3n+sp89Z9PKay(Q% zn^GthR(Rfk;Ge9N_t%cgb4Xgry7_@scp3@c*+B1jJeQZPV(HRZFW)gf+l8+imM+D8 zNKik}`iG}+la!guHO)&7XRKPp%_hZesDb0OAmTUudvDX>3)aX8#acRtpR(80eq(^a3W_>{m%$W*hPb__f&gG z3!hl%g066ZfH+~W(^8%wj{94k2%Occ1x=+CDGBJ!v`;Tjwt;`L7JN9#Y0b7_MD2m* z>kkV`3X|51H?vn5hCMyJqJZJU&#&qyw>%i}w;(u2CT&)a)R2Bs`#5XYF>fwJ24u%o zMyx!a`>x5BU zI$pDNx-l>f`m4$!ny3Elts@UgyVA!=v^Q!l@r zivY6L&!i6+^q%rik0pX0XDSev&L|}9s*xEa733AQ_xPkfe)0v z|3*->=>?E@T5gzA&Ya96`;4cSxPLn!pjpQYkyb9-RX)QHV{FD%g*f=75A}hgUql4p zYNwP>#7Gf$F8v!`aEmXi!%t7Uu?reELm#x(%#M#bzdR)DecZ<{s0CV1wRyIQ%t`SS zzNyjr^94*~prdk+m2t92=kuSHf~=CYjZhA*A$r_DUb2pb_-X$?lFq^}s_yIJDk>n| z4bt7s03+QX-QC??D&3MpBQ4!s5<_=)3@~&I-Ml=%_dmFwd(S!h+`ZTOuIfCtWHDRP ztwLwCNweAQ<=PFvjzxCHQns}v!<$H##4f+D0dZh>AE!UfansG2f2&xN-F4UtH9Sw9 z${}~JI?T(hk5Z6LXNU4|iyU_QqKtMKFXLIxV!&S@g3onUI{bAk@+CiKGhz!ZLI4=p z4lgM*42aUH+5OvKPaJd{--tN@esg2VaOFuUCJXXbnJNf|*=j@a|Xt!Lt?p zGAQlQ>;7uE%I|v&OYg*5Oj7y7d4{XFS$tAifPL@mri+)(v|2@Sk?C7c8&|c~+sy@A zf{_mWOM|@d?y!@RP_Fz^M2qu{41-qg8u^J0JcxyFztbpxOun{ML9Dlvm?-qeKhqH1 zU7~KU@gnK(rl=CPg;pL+WDx1utN|kV8XwGkDh#_FoHwY(NL}l)1#2KyYhnY85WXX> zbk@h!(Y0-Z?GpYXzQVoPNVnMq6Jw_0M!`YK<;ym*vB4Uq+bEIQ*$u_XM(yYg0&)3# zJ%j)6Mv*+>jkQf@THT=9c7Hzmm~ai}O(RGdEy zG_W6zSclOvGBGU~x)$_t|G66cz8;|0+mt_cKIyT-AkFWJ9;KYML_?}abctW_Cdhn& zgX)vshw%43kQ(*=bJX$^$hj(CebdsFQY*AvUAa|QTUuHcb6@W8h#eeK&67rX>w8si zi1acxJ~)~kLfHLk3u_D+w24ps%l7xHEIq}?oC?hBck~|tZN}sd9-747O|5Xe?#qg1 zB|iayL8EPcc{dX#i_B;<+uvhOUFzw9?d&P1b&7^Y>!0lH;);54{alaO&Pp%nqxt`p z!)zCER7JbZ1IXjCMi1;OCXuy6@92J|ZU*a(oDN{Ml0R3JO z%-3n2i384m-Z6|Q)q3qamZJ@qJEK$)_r`lpzq>J88XPa@$66TNDjM=4J&{{cuBt1y z5HJ2Zb&AxfC6JU$`Wa{(Q~dr-aBEIrZcd$~Hmk?n!Y*EII&|cw!xuC*7i;G&P{K0P zVt)SNI7;>kx+bH+ME39NjDpuJEdI}6Ov6#<-fkza^W|?qi}fb6px~CfMsT6E_20$ppKR73P1Zm?wr}CzjjdtcTc!> z-yA@k&TM!2Q7Lb2)Y!4y%RcADBG6XHfx~HPeKcGI|8@DYPUO*Wv6tP8U`nVSq%B{u zv>r)e@Kcg3Yuod|UxR9s{SUgUiIZ^>-ZDf)|j##&fkFW)Au&aIAPo)qq8zSp@S z(dseg~5JdhWXi5+R%9b^4A zNJ=#P{>|7p_wKi*3btn?rR4M7j-2VL%jF=ZwGFF|vZ}VWwhqBEt-H)6%NbJ`^mZ>r zD%552JA#xs`Xg<9-fo#;O-sCi(s|yB6^DgTTaQh;=O?PRDwAlaL+kNSi_vM}8_+^& z_9ouS;dFdn%X_3$!XKKYcbX{f$MYgFLZf6{9%m86R-P_AVww)UGEkwssN~9ue%|f_ z^*NTK%%TyshkubpqFicn66Qo5NOW*&SbCtBaRvA9C^}@b(#BR*rq5BrLCw z8*rWK$)Q%>6Bcs>%$@lqd^{gVU%?>M-_xCU92h&mB(WMtXtcgW6UkZrrN>8?b9vlq z#A6NlJxIa3nYt0sI&HTm`PmUj$v{CGwbXyS^hl&{r|&!q%^6$55elsal>dM9pTMaxhxU$?SRIVT%_Br+)==PwPW=M*Lpi6&GYEzej6?;ht`OU zoehhTnka$S5MAP$Aoq@fn!>H33hmAYx#S3Pn6`2)o0Cm6=MmoHz@(SXg&noE>4 z@99^|hM>~%+QL1M->WkouA0&p0|W7gaR)&cQ0O|5zuU|;cDBV@s>SlHE!VB{t7*_; za?$gU8v4+Sq3~u_Q^4*@=gI!{RFL4kyk`nw(`@m=!81F6Z|b*YITJ1P^*Za+pS2Ub zeaTzBt?3+)UUDp>(CfTa?02K(-l=raRkc^k+7B8dao8IN;F@%n&{lQ5{BZ~@vwo`S zM~DKtADp$nDhucqCsds^>LvWZX@8#1f7nLgJ`rE>Z_Rm#u^%>-M^I110K4t1an8rPvY zO=LB}dV97r=afd1oJ=sbyJnqM)=XZXU9?W%RR9gye}!g+OBAt%<|CTYI6z+!K}Ad9UMHb)NC+Qt zKx(Y%o@s6lYX#Fd&dQWyZi|B7LAc*(YaPzz{8-VYYho%7I5~ZT)_iH|n7DlFXV~f1 zsc(i;8PxSfZ&UgjK~Kiq`u)_SJbv>PLN`B%s6I>1W|i>si#HxxoKF(G)cT11$Y^Ra zM2yDaF0ti-RfV7GX7G#iiG~1XmgC}=3IdLFN zvwTDKX7X?}-524a>v^_r>Y&-f3H@b}qV(v^dkMg#kWaW<%e*|{1>MBpRxxFUQ`;1= zPvv1KEPaB&Pd44tAXQ;@(#|rtnI~6kG~n0P(SlR$-^|HGxil^dy0+_yue;zOV$Q&{ zTiVruH5Y_aE12h?reBB8>n?%nuL3bc*ly3b+brv%a^mo`yk29+$R1XP(}J|O;FM&T z|0sNv{kW8vIhn~}dy}{IUC=6R7%a9q5znI0Xtc%)ZmNKv?`&VZE|=H&Xg{pku@BHL zV9P0NqSRZlhPm4G+!wcfy3Il$vh-@f^?VA=R-U-r3GP0Yu535Dvp(N);Cg&!&t_lt z7Fn@F=BK5dGM`7X3SDI#e)@biPB16{Z`%2$5k{4uZZ*yVD>50ZCa#ywyOyF}Dvoz} zILS$Mz8;aDCfY0Q$Fs*>F7|2e2MTr=qsh)?W+@ck!`+WBA7y%LYGC%v59KkRoYTl} zSbTZb;9S~Q=L#a*=~iYvAMGZdaLqfJ9z z%~3Ndm%|l|vc6Rr_ZiDsG5Y`Cu3Naq+Zn%(dkFWE z`os?iWI%9;Br*p$1XkT?dEIrpQCsp1f)VQgf_-vTX#Zw`$*JM!?J1305tgLpcN%0T zb&A~wFl4;v#*FOyObid}zR<@S+k#NtjC#{p|GXPtfRUJ#j^ND~1wiIEk12+z{Kbtu zMJ_{y9tJK$L9#3hjfpt#s~L~z8ilXp3$fRMt9`vn8IUB}M=IsTmn$At+ib{8b{Rh* zNJLfzH*M%e3k_>v+7C<@rTWnultwIN@;;AX5)HTl8K1 z_i|dU-9*}zY0uakhxl3_x`>Ua`+qcoPQJ7$Ed!W1fxqUegnD}+X@|u_y8M&^_WYJ9 z956f-Pr=zlZc9w*giATRwwjAa-sZC-5#$vjY3)=vq5;1+Xg1#ck26 zNs)X!lJ>PymMi!pt)AkbDd~225G^^3U!b>|E9@%x`zmFfjrg5<0@jIymL3HJ`#M9G z4%?7w0Q}gn7dQ(F&U7<*N|cVCnaFjDWsptK<2%sv7exDz&uQzfI6^B5NAkf6{l*IzuvQXG&t-=H zvMXt_TTeM;Vw-y+^D}f-V}(mck<$wOu)43%(*CBiN-xSGCvK0EnC%ssI;(a8=EvTP zLi4sm*5+PTlqjM#z!>1CIigUjPcu>y+@5J()oQQJ{PrQS2XRJNPfy;w5zUfPLKk6* zjI}RohMj(IEcybOB5&0R5yM`~H+F!J088ACghj$yF}3+N+;7L^9l1lZBn@{DS8}*V zhF>VBaVwZIlTy)zqbCh3cbqQ-K2eXMGDf(tfRFaqZ)rzo1rAo82_jkNFI%uv$SRm! zB28&PJV7~0!OQFee=>xVX+{kipM))A7TN6KE{JdDeN(hj`f}CK0H$0H+0J`X6!9SD zpNtEmjW#kB*T_2S2=DpWgO!gsEa=GiCKkKFVqI2|d=H+pFXD>oE8xuQ1X~KI&1!o6 zy=#xEm7@Nw&48I~jv0?GX5>R^o*a^=AL=4NE=Q!G6^|8bDO<#nmGUL>G7pAv{k7`a z*}Fp`<6Lp9FgE@$w1f_QL+E`o_-;R61I#^w0%q)CsjP<&a+xsGaYy-;K)>onudjaYWgHZNP1-3|C0-L z2j%{0Y-rDS0CpJ~Y4z@6bh%zjE&*`G}#C9d@1w4-#^hmSSHcd)>AuiM+F#`(R~ODlC} zfnrPBW`&vPdzLg5U(#`BqeWiU^M8**X|6iAYRbeNIqW$yri#3FxGMbX2b}9Z`?Sjr z(X><8hAk<_)=EX^X1h88rJW=Z>}b88C6#<-zGxa*L;|Z0c({`I_CdT$f_Tm=P)&kfrFDSGQb49=m5tPSwZ{y8dcz9bJiU%Y30HSC9tW1`b z^{MGUE>HQ*)qQxN*9}ie&79CV5r1xa7?*$S9yG?-Usr znN4GG=&X8gvqxbog^dM{V=qX_%FE}DRFRsOroI+eeV3w2NIui9|7GykC9p?tjN!lW zObEpBKYs2idCKcOA+OM*@W|8k3d`42f4G3n-GQ#1M4>sc^n#_`sQc|(mzCl~Z7emJ z?xhIiM+j=RPvCpn9WgBlb^;##mRBB>wS{J^k`uy@CcImC>B3L%?NR$xoQ%FI*{mD4 zijXPA7;FsyaIb9kM! zLmD9#MWG05xikwZUCN7k;B*n0joiwsZ|d!G+BP%RZm<#1fY8sLoj+0a){Tmr4#=J| zk-cy(6KJYu&I?!onbviEb6p5x!cEK0h!nd18u)U@gyuIF)vyOOu8h(WRCw7*%*ft? z6$U)mL#FxSHnV8C{Q$$!oRC&E@l@ldvQPjS!EmM98l`gd(yLeFkgJ=%SLWcz3s^0; z`QZs3x4ikGl=tE^N3@pckw<=SA^?tn!)y>txELqw%Cx90q;Z?07{FJlag^FH5HvFc z!qV`<`8!BUX~r8At#cloa)48P2CnMay7vF-r=f`Kx zNgr}oyQ!}wEw5A<@B3*ztFc#^IA%K(XOwqk zY`DYVuHU?*<$uUb=iW)WOO`DJ#>Z#0G0wA^@8exA7{-gw*H~4+8=Ra)jfn=D6Ouq4 zU;t~AA9t2JIize(D&4aQw&Ux{PZQG`X);|NIFs%vH1C66LMD^oXGAEr;gi}HnAZCs zQ}xH&oWlbqu}qBR`TDJFfm`rNmdGb2?Jcu;JB`m2gHZ#&Zd;zlT)g@=&6&QoT>Xu12*%I5mo?rVHITbD(C(Z=e(8Yg zo8T6;Ur3S!T?=Yo@qo+bP*!9M8{m1nPYMY~PGl#(MHFOtgYf=E+;7;90k-SDYuNuO zB+HwKn>Zij?O+2Kescf)<90Z}uh2VvAi90xSy9{FWi|w=fA<;J^LM=G8!oZ0BIn|` zBkp2F5Wa_qlR-SUx&J@Y$5j>k8H9L|ql#gboRF?DJ0iqbQ@ z$@%h+H+P)?yOJciFzJrD@aVzNx~&NABv_}?YJ5}dk)OFMcNl`e#~$$}le50nFPN*a zs&OcgCUd$MW5an>s8=H0?aS2ZIZkG_F0xlWv8sc52CTTr3l>QyIInR2B4-o_l&#%d z*|gNQc>Vc8E5rRSkn5Ao>2cZ>rMhD*o9m6S5&;#I<@Ds_XiOy_vPOqqdSg<^}_PT_3*FXUUYfvlu^hh_&4sYHpeZ)`8WUrN>-eHe+!rm}kVS@HZ z&SflVO1A|ogZWkY4CbM|u(9lP$vTk1=7}NRw(?nAS~3-B`pD#fBP2FwbP~(}#o}t= zXI;zNdUVdHhmx>sl%K-bnuG;Dv>n3T6T+Uw2n`N9em(o})^m+x!K-o}Q_8(&E4zFN zd5dNPA3XI6D}iOHlj_lmRbn~$RE0oZohe+Q7{ z-rg-zNb6t~Z*vmOUO{+yknR<89N!7&`oRz>y|SJS;3gEPa-kJ`JRPiZfPMTey|G3iv{f6}MORi4i-H=zqj++y8LK|N8;`uc!h=w<*qc zUKxhaR)(G)Pj|b+NFllKq&wLgO^|fI054JVY4UQ(4Y1Iy;Gh_q&~OmiZ8t^xq27+q zc-sBw{uN}B}BCX^Im^D_PSIo=@O&f03~-wntM0xDZ<)YLWJvP>1hz*1Q-oR&F%;dRwa;8+Rv z$r}|)6hJGJr54Gx>`@Zv-%DN<#@AKrb13rPto#eOE4%*&W`lRg zfcqcJdyVq@OZ;5L-NYps+nLMI*a$5UnA83iRY}D9MoeajD!{T^vJ6`~IOONX)|4cm z7b&jMw+%53GP$V23W=b~Uhifr`}Q2#6-CiQj8^B{21g3gO3mZy2@!+8t=&3q$q8{} ztCd0E?|#sJylblp|DW3+(styU_rG-pd2kZT@N5a$#g-JP^%cSEv|q^ZmQtyT{8{{; zdoZL#+`(o7?sj8f?Up-tD2r0dhb>gDF_O!YhlSgCToKK$Y_H?H-g}&aJ7V)SNW*A- z1^d~+hJrFv?u|usc3X&RRDybrFV`aPMFdi$GVrzJ3sG) zRQ|J?^5xPG`0=mQPLL^kFQf)(F)e##|C63d&^)K>{9}9F)<**M2x2zxG!V3M%Lo$U z;GivuO`5`pZ|oxr;EnnJ7eSQx+UgCmT1k)1Sq+9Z`nKGz>$E;9a*csZh*Bz){43~p zcFN=KpF(t7uE%xETlPp{x1EMJn<0X_QQ#`7;NuoyWGvEMwY0}H9;%|8qH8j7C_(C+&M zQp?*_wV0>=q?w3(*OsVYdzDR?5U4Y*VRyaxlx0{^hO165+^kb>w0Mz!m!h|l`(Y_y zhJg1HFsh#4(rJlAJO+uf)nc)D=QmzexNID!3Z!s8iu4rvmvEu^M3%-nkpiNBrqp^Z?!Ywg%#O6`#tcw<5ybOFz zYyXqadnyAk8^ z+DW8iF3nsl&Rtkv|E$@|mqi4gx6Tgizyyc#tfG1Qg!8#XI9IY`=$*DDzm@fHGRCEh0CE5gU8)ytM>AEA*PUF?>r zdBvoR`2Qf=C%Jpa49|u0_os#trD)(7@P9K%-0x{P|K_bJ33w->JBp914X=>$Z(ig^ z0nh$L9E|9Dg+d2&#bnQqx5X37bp^9`pU8Uy@pOxnj1KeAZDRZ6*MT82G%HK2nuH8- z+tFc2{T|&(k|%|ZIh|KW3n1ZVGzd;r(_HCTR4p>a%?+;gLj;%qUH+}`c)<}G-E=0W zeJKZw_hiHn?qRCQ5a{!~o~8aM7{Q8XuILO6w^s6TI}yJ`6PIeWCi1yTvG%?6ZJM)l z4Y%Da72_Vf?LV#xK*k<8T)RYrl6|2$^{cts!Lk$n(M_Sh(OKL1`F!Em$>M|Mz6V|* zhNlhEcGG==w}ZtC17_wz-GT?LB3?B8=)i>ES4#K@pTm_5gN~R*J3MPInTt*H_M81+ zxl~W^M_m^4#$5ux>BBFGtkjDpAGbrVay`ks+gr+42*gtYs+z;q%)RUEpJXuml%Evv z*qbczTCa76OPOn0=l+xq-J0C !TCDmmMK=J4u64@FMvyW(&B$TM5Fj$T86WNfQnJX6&eYKWzloVuWn^Wt?%3BUh8v2Qh}51H3+&r$}vCy>9j9wkF6! zM&_O4iHJn^D9@0q0{YB!o#k8+u!q1jMD~Pf&EMmWW?KxrSAJ*zY`vi-W8Da3$qzNf zBj=%NHSznJ*&7za&ixRCXzSrJyMec7E=0g#K|_lLPUc^D`8wtg)aB7KIaCgl&`k@j zY7%;L*vineQUd3qo~2MRslK>(N_>f=bavz2x*dDIvt9Z2QkypHm7`O^Is@;^D%BV! z&C3#&Gzo{Fg-ky1hf`C=Apva#kI87c2AScAFfRinK1qu8qURSau8b+hua9%l1G^C# zCCuSdzBR`dCozkU0y;~~F>8D7L=pq19DHEKV565>;?Z|y@x+m=1j`~naCo^JHquHG0-t;d2Pbph<`pf@TIl(c*C~sRNIVHgX z7~(9p$1%c?-G`uiGx~~`=J{*dO$pU*UoL7s2X<6N5)!aGb7N0neIluqU1^$r;Mfg8 zJ-dW52C^|5ENn4HaalM$Hr@H1f3fQkKday5f?huUv3`KBOBvk(p_1$`mhd~S-6M8Y z0AiII0yXiYZgXp{4lh2B?Z5fZfjICwm7XwzL-c3)VpUN}8Hbx^iDK0U=%Mwbx5sILAl zBHM~BQqTs-xy|%trKf9d-SW*j15}N)xE5KCkDfhQLMPvSzB-cIE5f82Yh|}uley(R-DHV2vLs{0XpWQ(F2IM zZGwMy!lG>qQHIVE)BKjSp>%!mnqj__1m)vx!EUNBwNZ~o^Zs%~J6_O+Y%J}x2-@6< zX&RrR^v0sI+v_f^kNn0zZ;+nFV-EINu%4Wor0d>$7M)-SD8mDkE*?DsH|wcnG#rc( zP0SgaJw`ZVKZ+T^>W596o@>#>9LkRj&(Skl5ByaZSlm-Bm&UsIDsB2Mq0=?B*7?&Vo}%UG57heo z+2orjb=VL@DPcg)EpEd2bk;Z;UnnKuL}#XDg>61P+$3>x(hDwOBe=eTaJc?GxAl5H zZGJLtU4S0e@{@9Wjpwel{Pn=i=!c|7G;`@3cG2e}aCL4_YS-}>T>hIf>6)&wZdaYZ zX+9%oJ74F}iWA$?gnb0FJ|nq1_I(dk(C*Vy*EQKuRLN|bsk7q6J@W}Iej>I0*$iBg zkGrV&?vA^hIQIU~Jx9K3saKnAOG@YY9$sjVzRuPGPk<|7QgbFQJeuQrKz@&-SPjKH zKFk9IWM?7-hJ_Jp7}Tx+Q{Gt~ znS?Y~^iA4L4__v>r)#5n3}gKIh1fqjKFS?y5{-wuZWFjVFa^znif5ME1Sc*;wp4d+ zY;9!u8Z}XCFGAt6BO9>4VAFm7^R3%+U;+E=LI^V4)XPd;_3lOV--h7$mzQTchVH!KpS&8% z&=dSU$XJygM+*Q!AJL90S)ol2`co6NRi)3PH^>C-(e_n+deY>JI*INT0e`?TOvTO1 zj;4!G-0~WUIjjWGU*Hl9Y{IG#U(r@|MZzky8?!0M(s3YjTOuKm#AGjHyY#}XcxF-> zTO*KUq2s}8qFO1!GjBKTmV~E*e*^{en<>RDt$>;a{bG}Ybs9-+=b0x({z!I4V!})# z(i*WKpt)zZ7Ly^lthaQflH>iXJsFV(Pd)@yYAa4Wfh2CSbd~jO!(h8ePzB@ZYE=8| z&_ovm?s0CY2J@{EOEr{o({<_Ksg^*J!=EEc>vqW533sisuj61YnqK}gWk{6O$!b)b0>D7wOTsf^frr=G#FV$r6=;D9V1TH<-w)JIg=2Ox`_$Wl> z`HEc^V23Ik47JMShV>XWcVb8;jO$}w0(A`?yj zw~T-OI*X~Y@dn}d5oLg^j#ed=Hh#3-qOfzdPw4v#y-6sirW&C!j-$K}n`v1|UsXqA zu9{u~ z!_KvnYdeT{9Chb^u@>PO&yL}xr`;`{e5uEFlce|%WapUM)&yj{`V|oq@i6jXofq#c zVXURmjFVD_cuRZIHOI`n3cR_ zUcRQnB(y9RSD%z=V7Sh=Gghv5ZN%rAKJv+)gf|E>ZMvS=8?{)ai4-F_v1dP0V!9 zwx4Zxb$aa?TII+Yr+4wj;n4fvBLnl(rcDHheTi2#wB~P~gAyelX?iV#%%P%tvG0t7 z_%!@K(JQ8sNUQoyC){+o&wbis^i?z1j|?v;IW!CK8J$5Q_iRZN>6mj>vg#IP zz-=T+^tDLWO^8&B_Lf&Y4bcnd2`q+Of`FLmNAq7U;gW_7m3$*5QuAJ2uKiQHLXHMj zE;idnk@BKc)~CFZmuIhLT-)Vf1xC7Jpb=k<_Ha`G~e*9LAPC!tZ=8BM9EV z{qx+jTi(hzq71B)J3gNIK`nW4Lz#3kG1piP(|899IJ7h1jN9;BLIQr=^fAx;-lTva zU9}P*smJe;tesHYnC;;7zG=wF;_F zqWX}NZ9a6mlKM~>wfg^M;cY*KR57fF2wHAHM6g-)<89Q3m1QYJDD9|;ABngsPyAWZBoJsE81wIlftIqwQjgT!heU^)%?0K`}3_$yI~nV)vL z^#d>`3%r=!lNU(3$ zgvAnxa;)3Halx065wdR4JH~ud{}v5~b%pzKuLZ_7FA%28>=9)&oyISYkf`tC2vuI} z?5O$#Y?m?~@6~n^Az70x{Q8z@k%XVuw+Q5T>f#CIe$5cjq_9eP%NT#L3|>f4>_t9D zUy}v{+-a~$z*7UlX%KylX^0H0xyOv$5jWdECa766^N~9xCRIA|rMQ|YJb)q6lUGvJ zVwT>aYpfpc>D-8Og_hfLJ?IKmbkN?BIfb`GN^47ByY zQmm%kiyhJ@ih1j;hg@%8RP6|IbMmoZIDMWv_1#bJMWbppg+^1!)G$u)XTX3Oy9Fz6 ztdolIl)1V)_p(niCGXpniPH4jk-UEPM_e9H*FH7JVxw2>)uq*lgx~hmCh6&=V9FNK zm8gY^w4QzpFndT-g1{mAl=MHj^Ljtaz)tyTHOV&1#Ry-I$)|oUcIk{Xm-Kv9AB1Bk zlVxEEG1Fk3PwfDoA#Kw{dWz(EH5sBIz5YGBDJ%W(>A!7t{yNO7%R^)_Tpl|^cWHl7 zuaXnpInBUZZi=?%>ZV%o3=(Q4QogB-Bg zPhP1q*Xllh2@KeFM@~&tZ6{L9MbriZss(0|3aRUMAo>&-rwdCI^uug(w;#d7{z%PW zNOzePP^ZfXqMv?#gAg!y>Q38YgC~D3CHr%7QS`L7?mKyCrqe%4mD8^~!Yf7PdDd}6 z{C#a(#NIp4h_F)*Rau%<#WA#h6Y3w zhWTv@Az!Y?cU9XHWBBsi`jyQSQCll(86&i{cjHTc6s zz7Zm}03LMDy=tOMh*qXll$JjP`+VJT4M%m=h&FG68P>HU`S^S;94TrJGt)1t{Py#I z%l(e@P6J+}?~%~iKbvk{0g|AL2{W|M+=;fhTvod`Cp{wb9y;5lVm6g$Lb`#gQX1Wf z!)z$=5fxq-qP6}7Byepz`;oNxF1ksYj^$wDbWbFQn{6m6_;)!ZYt|-YARjPUE^8QC zhRYO(Bs&~6_oQtoI`C=0>$(tekQPz950LTEIQqmRUM!zFsWNx;CK1Qof-z?Q)`x7uk`zpchflr#x!r ziNL!r)kQ|Fc2XBTlh=~`yYmMgfPgB#dQR<7{3~*z_S(JrbmTZEX&}?OcXpA?wSwL3 zO+tX_@A&L*TN_+tq{PbuHvpD)l!>%DW$`5v^S|ipp#w0N%VWB7_0TEh>0m=(ZTn-e z7arcP+c{-y{XjCn8C$}(Y2h^&y_~@w?+TD{T?pGY<+o0tLP_C9!sSgkX0_GDSxM(F zc2R9L>lDKg!2Mp&I|Ul`s(%p531E#ag`YTxdH;%I6Nb4*Ri<5P#xJ{-O{qH=UgUe{ zBsZK|BoL}jqs^Biv&)AU4cRe!gVam-iUExB8-BUF`h@gDFM@!^F!!bn2+4iOmp}i1 zj{n&-908KA-xE3*$-pb$(aT2ojFnWS3q1|Km6DA%wuGKSI)idP;LB7p<21k4S2Wy( zBIBhiw6igMHchOf2^8fI*|{zCpAuBA|9Z`eG?R<>-!s`0F635 z>`z)VgVYyP>aEy^)&I&K*ef~XzG1dPnTS?Gf&EO|C94RG+~k-?+jAwl&U9_0Lz=kM zTCUd52-XJJtOh~Lz!E1zFN2gh(p94M5FkLwauDJ?dO)?Kn}0wImaXmaUk z1xA7HmwIWIlX^$sm8HFkv}PK)1f3!>@L`@biPR4)iEH^av+gHv&$51f1Me z+-=l=-P~hKPs_D5;1DM{dA@%p4U~ErjIGQP$z+7=D_?Wu(z6t24)+eHo%))k1r&{+ z{Mi##q+Qy2Mla0i3|q0O!O51ctbcat$#VDDGba=&a(OhD^z!h{hm-Iw+*l7aEn%km zi2e&lM)sG{mq_VDGg{%(IAv^a8XjX6N?zYe`C}Q^t$_Hv5c>IAyezj1TMP=CCvLpJ z5~a2GkCSc*I6e?vb;U6z@mz{RI`vXyoYHx-Ds9237N{zAeB)lKMn0~(C;k@s_|M~5 zwn9s>&+<9oZu^XV>b^Fw7|EyVKJ<;GRl#^m6%)FuTTre|$aE5ucBW{^L#@tQcC-cN zQAF=jZW5ES=--V(dX;9j5r<~XRAKj9-=P?H{l6RMc(EsIVg%hWW@BQjA;Kc|UQz*R zToFGx``MMIf0M1)$TnR(X!wP}YlvfzV2MRPMdC3S{)xd|UJa9$xkudK2EPP$x2R{fmqekagjQvszyLBF zepyNL;Q;olL_=%vbow@MZFqI)&7)S$eb2*;Zd$bnggjM80L1v1R6^CoUrzk zDhrN!)<&C|Iw!>wB3{nJ-77+_=Bnhz2qvxMRS_rR0 z{HnyR4}-K?jH&CEt1O^@R>DPSK6OdD`k)ZbR!Kb{76!L7OV+p~|J7^YGzD21XH=X? zcb~n`YY?}L$W6p~_DM%P{aBj!P^(bQArxIL(>xmJ*&R_nEb9rr(KHVu8&t|5p*R@J z_RZc|x2K6GzW;#&d=iiHK?w$FQxbANM6@>8UhH|9t8wzmJTVazkKF*GQ{;-oFAV~@ zkHVh+nZbF(#}oe?nR?;E6M#mF4(R0j;PuPvjY2;i9q1nLX_yQ!XY(*>gJs(AO)BO& zjfVX`XL>V6n=nlRIgp2V7}E^<5LsWa$`4jUEs|}Nr3P07xXWhhO%3OTM@qCh-Z*Qj z$8G1L0jZLx>xQOoT{mhK26BIMMENzU{yCnsR_`g^NjoiOlRwbx$BLQ4Bob`hT=rf2k>Q`M46qqKGh!Y;cwrCGg`7#>uzudp3SUE2hiWW znWJ3GzT1ky9XcF|&2WPF0>6m@Ni_Ys1}%Wu->dL4b-QwcsuJs>K-$t@uKU$Y$?C?n z(G!pGmZ<#XW9#;5w>}x>BM#ViZsp<{e9jbDAc|1Y4_H0N0@^>tE5uE(``)162siao zE`Xl)q^X!k!=KAgU53biRmaWA{O@x8*2)ab?9y%b4YYipNYqrg^22n$1>gB~R&ZIv zdb~6&R~nD(ldy?mj?NRmF=D#Ld#yD!V;eX`bE3a60p^Ioul6@jYH2R+VeHp~V(Sl5 z=%4{D1rGqi5vSZf&6}`ke4;#_kQkv$>!cvlsp|0R5+7>*@AeJGzYdI+eJ+|MXeSe6 zbS*!%&sB?}OF8mBf0)A>pTO;pN~Uqz)UIZu^ol#(QRHG>iO8Q)O;loVPvVinxA1eS4%2o2m;8O3bJ2B(35D z$cbXez(aGmHj_26YjQ}oLrl6{sIqK4{_JwNmlGQrIVnfDNFX6zrYNjl#LzIn2tW^9 zxdttbZrYwmQXA+Wo(!Cea_HQWO$$>#(TvakWwlngB*ZMe%^J>btMYPxrD9w`*nJGb zBxLD%k|H(9rV2IA7s#>@HK@n093`mx{=wuIBDWAYQ?h}c>x5|{dd%6+HD=8Ib+buv zWa(PZf(OQr`Fy3USt)xh3b*95@x}EBp4ibKZdg?4pb17ezqR>l0*Gq;;$AYXbtBZc zYhV2x7nbrD)mE&bvM#Ocf!GmCA=gfTqGUP&CobaYAyUhU zr+KpjnzvuNW%}J@p{c#1L)XNy((=M{u?@!(fesCYC!qTh#YlFpI6AnnLU3)XOvN0^ zdD==Dz*^t(XZC|k2pPXg+E-gge(5g_+f&(O_cbnf^HxZ^rnd>I+ri#`2XD5&m+Ze> zn%So$-|`>kQhkR|Ig#Xuxs%=!V(2?~Hu^>NbnwnUUQ5LM#;%mFAc@A5yV;s9D5+w&7@28FzT$til z=5ewnOU>_Hr4dC%PWp437nD+hJrewa5l*z6*&EFhL7q$7Soctt&pNE$%%_OBmJ!g_ z`=oN747eso7lre^(tdTjpdGm{pE%@;RZS2Y7dCBtywXLzY>F1W#m)V+;}Zz`+K$ro zK&?~a&$WcC#DcpF{u-EwjZ@H+6m+P%dv_I{R%`I?G#^mx7jKbv&rEY(=nEsQuo)E~ zB#8~r;s5A*tFXA1bqjQ@B!uAZ7TjsvB>{rFySsZg9)i2O1$PhLKyZiPZjA+P9GXTh z`|R_b@7{;|HlOFLs##kb^GG zR%iPne~A&qW+CB#eI=PGbk+k}`c?|_o?0BJn;s={@kiaaXcu{WAdiGmkLU1NET7Vl zXycq!Xp&s??Ll*%!1-6#_5))(aR#>44O<>BYWgX|ov<{_KvqYOX~!?N5PrS5j_-~E z+DN4(Nq_Bwf)9=v%<_Lsk63b&!X0I`c7c<0I8W+5MkS&>Vo9t-zpZGYIoK@H|e= zN;47bY-$&-#19)vBt4uYp(n}fM#3@DL6Y><{RyW_2}xlI%{>ll$Rp17vNhknE~(Ta z#_B!*|H6bgy5cF4NO*|!M_w-u&x+A)Wn){@3QWYNw<v6Ijj+*ob>9?zNL7i%0+Ctd|XPs zQ19tlC!mN1N(Bb}wZaUqp^BWC{(ikcEEqLzmHJlas?>o)>fIj5y-&NL>y)aSQBXN| zH2;%+LwgWdv+t?{PyK`{d1LkJSKP6G)+mmjBy)fXoZwo|cF;H>XXhY{=<6 zlESJ3{%KDNDZQS$QW2C^qMYr2ccu?yzm**uCe)iySC7+X`P%SS-Tjv)Mec^nOUa&j zPhMbE*?8D58B0`y<(op*p8C9SFZdx6T*osnbh{v`rA$B3$ zTq;8fkRxkVpP^bxtUU8%Y5#PN-D;bhu;x)OOW5F2pS{%V=zXOQ3U`;vlc61w?_4X zh8}14phBvG1tPK_!=NGztI?NGAZ$TL6nK4qqW@)yqh zqDu|T>(}d_P>d6$BZ6MrXBt(7XjC)IfIgBaa!NZ2g!96Pk3n09e<$cA1AR50_@i44b#+hfUv~98b*LBmV74D}9MrSWmQP zyELt97Zf+>$m%}K#fX<`DU#h6MeStBRvtnCr$htC$~#A6^nXAxOh*6zKN3I-mURBBcqR&Y&TC?4GA?Vj}V_JAHLKpA17*=%FZKZmhE4R~o&f|N%UxeMM zW%(N<(`&U>)DtH^XvBDS2SabFFlZr7z6JeOi@-m34# zy3K#aL@XR+4IsAvaJlz@n?V6WnyDvKZ8PQ%jrG!f4e z&JNE(Y~Y|XFuXw-tb7?DI%IKV-Vs0);{7?F@2+E_me3q(JoOp`y1%XK8NWKO!o2(u zJtoia+^>7YnDr{``axF&ayK;Tu+|)H*lw`a;vjyzNWJM_O|_TJU1aHz3l8BRm`$I2 z=^yCcO}#_7GYA}eU$^dX_(D9|0Ob(iNom=zYVdmIy*po-Joooq=}?Iz>R&AMn;`Dl z1A>>kgGI#2p%aORkY;nZ7dn|xX#0iJ%Q4j~-{+yFf8Tqe-BpPUw|)Vn@vo!ByWWi$ z;ZGiq{_#f?pr>Gd-nS?V!Ex|S=PCoZJ=|{1MFvLMlv)2Z)Yy$EklrkGjllt&+t%Oz z;DCfT7$AA}LSBpxlqjb10~IW9Yg%FOMp)hF%ufK4o4CA#gc-QA-Pr$eoz}37ul=7NJ0wbRDiG&!M)7J0d-CAyui@gi<=za@ zpnJ0lk4)zdQ2Nsy3p~`r8V@QAcpk#AJZ5)&8VPzEX#BXnr*!-|6DQ2Wb68tc{T}`Zx^giAJhnK>+j9Wcp5?~VP;}d; zzpWn8!$fu*sun$P1MJgjd*nQ>~d|`^h7Atl!jJ$r9x!0^Gyl)8%n})p8>ls@AAB4=Fo)}w18{_Y7y|i@}%ab&IlhhKiJnV)kEfH%xdx~bq%%;~K z5T?+zyMZh;nQ+roiXT-p*t%h$63G1ge>Ohm_Yo@98{`s!UmQW6be8jlbLIXb6N!Q0=x|A|dtR-QwHq*GH zMUA%rDfmZ`>ta_aBbe5+!fdJg*{G(ZgnJjWKc#=0h2Fzz?eL)9-jy%cj0 zNHdB+rJr>rXL1K`?|gi4GU{ghUr2!alkip4=!afg)8sCY?Cc1uXlKEDuQwg zM)A}%nr_t@iwG_6V=CwM8eZXJoe+oxS$wqNgAs`=Bc&+Lv<@WCX%^R_uZ9QGZH-F!yVn$*ZfCfyysf}emV{evmfb)JwRv1-{Wd#S-VE>tFl z=3)_*N&b!Dop_(;_lX|Tl+77#(qzXiVh=2st2|lm@gI~}2u;C-&?Z(NmTLda5SKeND&21LYGQa1pK0p*F1A#EAw#E@e*3xrcJJijJ1Y2&(R8hb{CM{#K4vszP2ILmBkiFg1yr&5oKTU|+IeN>V`E&v=xA zG5TR&TT0&9^5;~KJI9Wx){1K~r2*uRl4u!Jb;Nf%Sj&N{-;O_)aXnqC^Q=~_|JD(v zq!N>vOOVXiu;l$@O2AC{pkK|OgmnmF$}450KMF>#bRWFIE0c`m#0799Mo;zSNWJ*B z!9Hr;*U4U!hkH|Q;@*QhMS>p}#v8XASt&Rr@x*d?H2>-sP~K_@Q=L#T+iIBAw6%Ga zb5lg&vC1|3DDv;5bW{Bm0fu{Qw_2&IcI37nlF=j`6iq@pc*@z3Db?eO4s!CzhBiQL zwp3>W*2Jx)FG0-fnMR>ZctH1IdZ`h-f79iw$>_=F=?YvAUvhXocaB5kG-}(@JO6D^ zi)31Mp~6|^ErkE7;*9Q%;1k}|h+|4EbD0tq%=gXpy|gh9J3{J9l6p_*rnY{{6icJc zQ<};qt6N|Y72Pu_I?QwQ@yBfb^|zRN^{Lndl|m3v6zdBise`zdc-H(iQnZdLZwFNm45zcHJ>8}M}<4uOHM~7ePM}_ z+-FfACXI5nTvuX>PcRv9vZb1yI6JLALN#k?znU0#)D_*ajZo==C8dE6nw#Jg7|EYnED-V4eCO zGwY9$IrXWQWLE+ZtSgkC^aKB^yjY1<-tL&JU`^h|hpKxbb|Y<_0= zlRE6bx@WP8R&3~h9=G!k;5bmKBH2$qV*(|SsCIK{USxuQcBWf?InKp*zn?b4B9qmz z_>kBxl07X?x%r%rL-IZQ7;`Lz?OQ|AAOn@|K!87nXaxm=@a}0Z_30n)SaTyTGX#Xs zL}JVmN@rq|TF)${*T$K+$&;wBO)WPl3OnMte?=aR*x{0j@f`j^+Kd2ARNn}8Q2_9}41)_WyD25lD>YHZu$ zDiVH%!f;+Dg?V$ppRBcLIs4uiBA(aiYpnh;UnIV}^{vbsH_3dXtrw}-L)k9@5jc)<49=*9WZ_m_*UkQVb z)8d(dZrz=2JMJIxPSoznq+3tIfHPX>XVSJBf$zPY2QGgotph$>>`icZZPoV)>X@?D z{D&ue#rx0dfadxUZy@b$mHc@9xK#p5C$#y!sd}>9ZkS9zb+-&|8JL~@NJ4_~&ds;< zd-~fIU3e7hJcHC(HdZxY5bP( z_LY3+PG4n3E8B-Y7D)*We>LnwiBS)W1kfPCw+H%ytD| z&|KU??^8U+($A|qLsH*lpmGv(MZts6soC~ZQZ;WZwZOx_%zPSVKeC7cO|{Zkvhttr zYIw8xD0acRI&ARhh~h+Icp8Z>Mx)dm>C*ZV=O-FW^TMbxFCK1(;45Iq8bMOh-qbDY zH%72Aj`_|T=U9e8wis`=*Yw1;m5@xw&Hq}ZU|lP4?9)7EcwNuSnjl)C@*0Qg+|!`fgqWpuOVg z>}W0UPPLmK!Af6kwpTw4r&zvZ$+?I>c%R>oV$Xy3F|Fnyu?M2r?q?gu1U>Yga{c+^ zRd}lg)M~v)K2?#mORpfA1lf&@kEdp1dj#mNmly}WLB~wpQ)xKr{?1EN@(wCuz6(rO zd3KbFtr%tkR?J9&Ho}&(4wxO2Qr^Vmp8$tv)A021e~F>Wv&BPt8lse&wB4PPX=em& zru)*pc1oh^8MKu70aW=f{$UQVw6b&<8uOf?k+Pqk7^$>B4?0E9q-VOYWaHBSvoc>h zrt`#QsJ+ed3zIHzB_U~$q9>eWnd3|yV))M;MqShEA07`sxA^a^J1URP(66m!;<3nq zQzaYXLW1UBJ>DqCCe>-+s$0d}3g-QnwarqE zkEqJQJu_DW%2Ld%;rm+n!!UUzFU~yK&y>GY)Jf1?`sh+J47!a69>qo()^v6R!lNx2 zTdnEC4X-jWh)f4DA^vHhb2QbhGISgZVg2^#ZzLSgLN zwvQEl`P3p!AwOh%CRW?AQ*LW6<*#f&%J*V%nLmRT! z{ktP6=O?r1mue4>>lS$w^K=EV5|-|@5ngq>%`crO2x@hxMOq~?{7Y%*u?X<;;9Lmc z?sgD;zIAcP>ZQe!j8uH??+_#$Lf<`}0Nux|&-#i}bp{hrHA*XSDEAAxVOQil9yuW( zy1?J-dyGOJWU?-uy$`Ot2t7kwUJ%C#;a!WbCDT(l!EZA7m~AOkXVRjf^#S1xZV8uU zj!0#+p}PkVopRQ15T#L37{>nh7RJ0$@to&87wCga7#f*mJbs@=m8G*(4B2#XWD$|* z9%dy_3|Hkhc0}X${2r15Rv)p58BO*%{}m;do?D@dut?<5kIu_odUjU`4V|OfZfUHa z8v)7haDqb>wPq^*-QN-1!ug~UCkLA3)q32vDIF@HAr7+s3Pg$NWH;At&m_D8!Ddg8qRNnG6j6>H2c`^yBP*{8q zloR?DryO#p>nZz*I$^ldTLCO`?I+cy&tTOUVxce&^R$MeZIprj3K=}JgUj#xS!jo;P|m)PRFhku~v;B&whbfn7U8YV=c|!X2DNA6l1yG24m4Jir04v z2ou@)lcUM)PzP%Or6U0S@mdsYQ(HjlAar|*W(2F;$$n;GyQDonrZ=3!y-{OwwzSn*N?az7z^IHMx)-u&b39Qr~^g zHO8y^iEs6pQ~T7>W#kUV6Eu)8Oo}@Oic;al0VtW}+({_>XyiS3!z~;2oPyDoDwP-7 zG_`dA^T#{17jLvxVQ9TM+`Bf**T2tf3T-1ed?j!Ve@%Enh|;5~%3-rCD69l%CGs#< zTvCF0b%1J3wthkIPWG~ATBI|4J^idaC)C1#oW&}0RdUD(cQccK*X_@|7B6}N6}}55 z`j9mT98=+!3fJ@2k-6RNhb1t}$q(bgfJaiqUo4~dJO2MO@7SiGE&~w|9}TAZUbnx1 z5Jnl1d3ND+!(YyYXkROyUPt0z>AQ_DodygJ6m=(Sx#$Ia9@r0gel?(DA3V>r3#^~+M4;M6ABNmk@nh#BI{9@jU+M!2lh)Lu*p10wfxJ@DC ztK}&gys%QRRv)Uwq1B!e(93Q!D!E|vX{i=rU;1HXVN0Q5n z8~&j<@~`<@G%^7czuQLVG6WPT;;WSqA@E<#ylUFff54GhwWUm~~zxgZh z-EvwonS%1mE}BeMyh-12!vx7p!d3^+>fs$NucD*kp%)%uEqy*m*@H=di(oWjtm*oQ zu6Q?wb>H8DiF{yIx0&;ovD!jBM1--zr3R_iS?NYg2HKl5?o~j$ zQmfAl(#VVM8qE9vS#mz?jwk4J(|?t2KjP@R4sl9+l1GLAW^V3h>AE(`VA!ME*f(lC zDt;xV*pFNZE;m*#}t zPBq+)apiR!&fb^c*oPf=qvUXTJZ2BnoHC9*F!O}!w89NK3qocs3(gGG zuAN=G7b+TQm248)8$t$3hQUwMWHCkmgF^!MaG{%UJ$AdA5Zg7{zL0woT^RF!jI&$6 zfef49um~JRb0xBML>-yb%O*`$A50Z8`AJKn0WKG@G{UWi$S(fAmu$$L?o0|$T7{9b zz19zE6kf%u*`cI<+mzWXD8(N{55|tSD#VUIlb@fTk{KoAS2>wsQ{}Tu>A3lyeWLlc zHUs|!I{k&3zgtrwY|jUuw3wUxQiO9#{DfjSWxdLP>5~zJ_p#9>9gCuvuh5lGc&crS zcy9Ca(yh)_Aj1E7WeY=+b94G+j0Sp!?^ez9Ue@EobsN_$ztV@H>ki?Ya}XpU`S_>u z^zanlp0UW6pSE&1yb#k>35>p=yZ1uoKOx61^@&jWqv`*Dy|M(~E_P2ctYRT+sS3nG z5n`GO4>rhf#!IDNN>{U%MPs^7-AI!QZU9!spg+S|;4vl#(7Dyo4LNt_tAYTB3M zaApNo>H?ossp>gkx~^UanaS?hLCTgD;3-k2vEMYHWMhJR>HyWZ=@Cr{RS z@69KR{i$6b&W`6;&9UoW{8>r*9Tz*nxvZByE&B>)My%;KFC35Qj8A#xlhWwdRwT^y z^31d1AI10*nj)92!h_YKXfV%3#)-`p^LnT?@)`ED9-fPc64c6ZrF1vTv?TTJ@tv>! z(@1_|`yvpYHEo@^5_>k@<96?Yc1*(h~lk%>~FkM)ki910KsZ zY7$Yk*p$lT!yA&2MJfge0VS&wg9dl;2@CtJh?#*l@4C1ttObx3VyL6#>R}~4Z>F^E z%jU1un4aayOjDSXajopr0!SHP=rj85~Kz(tED4w4a7=-ZA|WEbZSlSU7Q3 zF5WldRbc#jX{npqej1WZb}-VXb)z+2&2B4|%(!I1=S%TX=JhV1jl5*h(?%5XuP7Lj zASpgc^btgt;ab|yy~x@X+RVKZDfyu5VmU5)*A+!o)XB&$8xrbcdNZ%}(u!KuBsLrP zDizo6*D(A}RmVVZtl=$~!s6)49oyMI*OB1dW%xy1UTVwzbzWe~R^L3o4D;bkR$i8F zLg8;`(@-y*CL8^xc*nJWowe-x8&xevo%;^tEqUHB^uIu}CnN{5ff&eK>Xck>66lSc zgxnHjD=IyO;8Omjwz`&(OPAHL||L#(8t z^FcMST`W8QBs&@?Yh}Z>GO}F?Z-ef9FKI`>$H(Uf3s3!pJnOjk31@%Dgl~S2_LSrF z97C0RcFCmIjem*e-npu5o_F$6%y6;leM2Ylq61+<5C8(%hiV<| zm^cQN5CZJ29poGvz*HBgAZfrJ5k2{lmlwhqkgKKHU|*c+9RW=f*eKS48jATyiyRt3#_s zuPGHa0*l#9Qssz68@YIb<0S2a&%^LbUN2?)p=w{<{bddDEkQGDr?3@!{TyS1{cZ3! zjaqkfp$brI@a#9Qg7d5|Kc2m$00!eAG(bet(8VdY95lURuJ^dByxcFR--iy|&^*vL zhIJBNNovIPT^y$wYad6~A7xnWncEj2(#u|#%;eB=xf`#qq6(BahT!1wj9rr{S(Rq! z>X};?PS=n{GaA@nNR3uBTF=3lAi4B_+Wg($m*K*XC~MY(Jvqwp$>O5K-2>FWkx`WO zSq$@CU-bfM?5E91>C^#6TYrPE8t`&FQePPNBv>N5vlNWDlakpe)l46ryU44%$|ovf z-uouYLSGTD5o7j~}RS?7y;d9BqwE=%gBYd0+{ zt(arHPi#Uo*j{3hc&p8btGNd*CM9f~jDlGv(6{_;&j=LpGK~v=g+{6Yj!m2@4DoDC zHf9QKavR>#nS#{nmKV1-&4;vAY@{FMPRpfW+`fxL42T2uh+Mw3buOE+#kEhKy1HVp zE;BycMuxQa46Tl(e>QcxQ;r#ZnJlIo#=J6OF%IlY9!Na9m(@$*V?$qTgCV~y*~&KY zseuQi+mWc&7uA8oAFR(tsTJEAeRvkK%jE`ZP&diMsj5X#m#bM3@-j($P4?uR3ZAAA--+c5x_CAO^#gtBztFH%S+s5DS^jftj+f9KH zkH|tUAV78LcG>rKGEr&<ak*2jG6!(Z7pQyClo|Gd9dz1*bn8l^^)g}6*< zCDroyW%C$4a|ZiJnOR@B7ni0Qr56$qp<<0kDM_HWMB4bZ!KqUcqJWqlQD1mVXaanj2?|eAr*Fwha(8na50Nwz&TAEO=+T;R0C{j$7JiGQjB%u znS5)_aTv!5s!04*1sfA2uIN5T0g;T-i8^gq%CNS0nh(8B@djX=6PZuS^YBI=sKc*DPo;Nk;pMF!)Iz6Q1SX?TOX7=4 zY7#YVtyMN4lgm9bUj zFGY*9S@y;-%I$SL!zP(|dKePG->s^O)6B@&9G+-zqw8bsjIn|_*lA8WTmM_QZecqR z(bjdKM{N98s%LqvM%=7;K&r9cyV0DxUm~UOQ7^cy1!Ut=ov%G>s|)dedEOyyJm`=7 zdVeKlQv;(6HQH!39ngLBbyFX$oO-1P)=tl1z2O>bynh{vI5H9kQXe6Uvns2GHC@lM z##iEQNwwsIT;3x6@0S*KjRe4hw1Q#_QlWDnKQFd>V`^I7A0X4Gmy-V4<b%ZPfFVAp;>j^=8z811Q(UA4_PSD*QOyZ#C?YWg8L)4(YEY zcT<)S%hjd&l*gS+PqX!>A|lxjR7R=9{c)~-fn?><6Q`kaxFtHb`7qN_?Fc|$LDYyb!#OEJUIw$)*}%o^1!JJo#tib_g{y0#bTL=8;|K;NfQB&sJRf_W zI4d3{f#rfP_czX-Q2_#R_6JLZ>K263Z{rdLXKC*U;3d#{1_V*^62|v^{zN)WVQ$}V zS?v7v4V~Tzul9s-F2tGBKEW!K6mX&BPAoAN^jl>H`bHQkYP}YTe9~afrU+5lzB69OLkx&!?oCeBdoe7TDPME-+VCF z@olmQWXp%-PF%4)E`F$VoZX3AJ7m=dQy5#pS4eDD_7dxX^ba+0$Z}<8jVuV0kto_( zOBMsg!Rs=7WePWYHA6l$gLnSamuzvZZ+E`aJ+yhU9zTE6tbM^pe3Zs1*SVLMETOv`DWm*zrj1RV2{It4>x@4#@3S}#)>afvp?Zr z>w+g~dl1`J^nGDDVWbYsR3V>YlUVsiuL2xBy)aw9X=^SK+^s`Qy0a510SXV!iZ$h2 z0X9o8$+myjbitRe_`eX!1emTD<$4#ihM0{Xx-)A`AQ5do*4X%3ATTWkDuR7IcNnbC z1x>FbXMAJY>DFq6x4Xy7G}?iG^HshnPRAKcHDOWZ(WT_8guyo0cA`gcbHg|4`&kWX z(Rm<$LwTNly{;N#Lvx_^g+8#l$n*cwR?wZQD4?#)O<>TXA5v(PqSTrHF+Iy{&j+FT zMZ<5BtwU>MtJ{9Vs7&CYloC(FB>9Vl=p(&XEs{;}5o-CkySyXeD%;@cvVdLAFC?q*_yq&Uz_GH`)2}I9MWtjE;{!`x87SJQ1$=BOYySBJv@La z79>JW3~K?75}jfgmsG+@?7fN>Q`Y~*&$0KdS{(i=Tv>Jp96PB~!H`SNC!rE6%#uiiI7xekpQ-^;$F!Vr|#s9==;9iM?0E9baN^UG09eft`qt4b!&mfvwx^R zff}NFlf)f-X-~Wcl9BS2PZUr_DLgV^dv7wxU7FY`XN%`p(z0$jtoK)g7Z;)}8(t7a zovCwnxsiKw)MT0E3kIzhwNJxlgC>G9#Mf)mX~29;C`9~XmQZ#lHr@pp)2g;&l!oTh z^k^U(WaOp~^yTUvHf37msawcdP z3^#bb;M_YcKq2LJ8QG1FrM6Q%Q7Z~Z&L+ENABk(9zUr{dY)~V!x0R5kowy;COM>7s zWk>HDf;ol>s`typnwtP(1S7e%S99?MgMkCI9pLZtJxu*VjB4vg?qYL@Fh$t4U$n4o%P9GG`XF7e#HMuzzckRa{ed3q z*b96pAT`N6p|`6-RZM1#%ln9P#8JSZ7{38?yJTAl>P(+<|8gdI zMLP&|$)oU1Q*B04I7_hSEe30OhOwWIr8{>g0$5u9l*w{*07QaIg#XPSi&j3EvzGBG zPNCdfiRc$nR-95`luhjzXCG;lJZLhd8OEZWA09Bkuo`FEH2ek6f>-*nS;3}rf8m-s zC8j7`S;v03dfZ6jdd^m_xTZ?W7$Y%z34W#O7Q1{4{IN){s?Om{Q!?zB>-5zYjLjSj zQIB_Zzoq79O1DM^y)kJ@pLsse_is!@yBxb~lPqlk@Fr_Aifvd5h}7l1lVNx5#9;6f-U6=0ZC0f(C8v+9Q+ z<6R_m8AhviS>Z8h*L^uMn^P4y%W$PK50Htz+diArL}k*?)myOG(PUEpfsPXIDqqSM zk&ogcz>6-Md8|>Tm#OyL;s$#X^kLl`zZpk&lV+6k6)}~6b3)l`6`8@@`e<~LsqJ4) zE>}k#_)^>D(EZ1&SREM*+vzkbwF>;&yIHotVcxk*9M*pvEB?tMvVE`3TwGcR@r;q2Y>-uGbm8MwY2f#rj6S7S z=?Gf9PhPYCY&gjv=IB*kjNuFQmAemwXV9pbkvEhaU_2Rg(ea$j7bxYfYSd^1iAk~T z893?LlSh&fsw4TDIgRm@i+1ndm$8`qWO$O&GjXvXOgbw>E0cN0aYvxDbc7MW zW*EsNE}&hblSiQswBAq7(Xy)*ZUaU6ALg4U*{dti(q0J=gn1Oz6w{=JxK*mPQ^o52 zI!I9=vj|SbeQG}VQ|C#BoL(WbAH{mK>?kUYasD&ff@C^ru!{}Su)G#5`qr<~Ag&vQ zw9k@=TPA)R#{FQ6#OFV2@vgmWSu!>_EyS9qD6Z)+ zauJ~=7ZlP@06e#)LEMzMoi%yU(TF{^KUTAER@t->#V-;81RfMo7MVbqnaX54S# zq=UjNoe$6Fi`a`XPocW;W-=&qmcc4hRnQQmfVRTR6Pgx4hwRW|CSxD`&$sA>D!>&3 zf6YJdpQ;CTcMFG*_xm(3$8}10Q(MV*MoLVd{I33yXYC$HQk6=o`DpKD_tPGl-x`r) z(HnXu&2RdE->Pf_{2D)9=w^WEA8x?%buNVT$t6g3LGII;8S+V;m3O+IrP}WMhMvvr z)v9B4TTMkKR%rhzGgGx_L+GUtTXL-_0pUGjj%Yv-^<&%?%m3b-Bb0bzFco229We`-?qD|A!|fm(Hn&3f1E=ag}!mXbP9 ztCM2h8?t&b)>u}JN{!4_&%n~DuQ;2Ly5x^3&0IdSj*A}^_9*hyaf)1392LfWb_E_L zv|AKq8*!F^N?2D7zY>&VZLWsB@+?s`guS`FF`qv&a(uP?DF67PFuq0Laxf1XOUJyf zf9nACPYWr&&lr$3m3ETBdzbnGp6VW0cZIcMk3Z?%*Pjc8-N=5M#T31Tp! zmkxuU?&GU(5gr1PGn?+2moiqui3cUIR~XIZ)G6{jrssNAFwOIaQD&pG$8^3?N&ZbU zMUG7ClBze^-8lstA^Y&(BSK0c_<;kawXy%l^7gV zV~?oTWr|`diXFt>H7@?i3o(uT_I@Wu)R~^APgY*Och}AR<)K9I?MyCH8yr(u@&4B0 zzbsAk@-g@Pjm4Pgr0UbGCJ3ezOQE=eojtq^2vL%A{L7Zn?f0X1<3D=)-y7DY8ExUo zgcR55Ea$UzJ>S4MGH=~s!AGo4TQd^M%5CR=3(ZfXfWv8=O0a(^84BM9)rhdto$Wyu^w+sCA%XY*D%YNy4bES3lerOBg(xUKUU1 zf=|2t+1?n&v9oRX#;@P@r&yxBMA$66qTm2>mWY zNkQQ~GR_|Qhff^t^ZCJ5x}5Jmv=M(yR{5R{2wmA`-7Dj!hxpaA2mF{~HM~I!>2P_a zybtXFNk2GuwVKjc!n2Zpv<^y8o)53QUic6FEZe5RCbk)O*DvTo_SBm;qVNy*?K5Fj zvU6m?CNc?)E<>Sc{FSWHK;FK*!CbcolRe=u9OEhx`iKj`pZ_VO@96J|)MrSJhUpeD^(0u&HY9-GnZ`C@iI z!%#omYc+=5HD@pqx=(Oy4@PYw!nrI$2siz*t0z=7j;Om=F@W=OcmU#d{UMu;&=f+H z41|S(A%El4b2zo&V{0QD*uglG%`DcMrtRB zIg31XyR=7>gjF8$``rrAecj?d_%C8-z63@CH{+KYe|jQz+^&zn=$BO2I5N}3Jj{l# zU5X_l6Vh2o?%tD0EAM8o2Y`WY=+wtD<#$#1Ew)G>x`c+qKH@Q`S7A`|8uiZ)=I2DG zasEG4y=73FUE8+ZmX<%1`z5|8paUp?14E?R4ddNzV{@(X2*O<3RBX1Jb zjdM5qrz(OE?bTl&swn~UDN|kMytYh+yIt0t@QRT#WVFqiFZL%0rP-f~K8vER`_(*J zA9#oS^+Y6>?qKhg#QNO7(Fpyk{X^?|tEkuVRq5p1gqq1M)-euX4p_%$l`cV7^+uBN z%QyUfS7saRbaWHp4Hc*e#nhKkYd%DQ6|y?QwXEaq>pgnyB$;F_?R>@6g_I6K$cZMa zNw2FpOl_0uHlHje-zL+U=15|JH@J^W2vfRheTLaiM}7Y+Pwc>wb_1~jrEIR?AkIAo zN94Qnq_`Dw_#ePg`Z%h2KhoB z8IKATd{s8{;K9YW9;Gg@wSCc#TF@5)xeP|o@w)qz8{mBR&LD%owdGlbn zwN^5Gef4##eo51=bV=!aJ5jv>L4tKoVB}AmY%CTqqnguARx#zYFghj*Kl}QakVd5~ zxYmz*dV@>mX}k-n1N2n#pXpAa=XqL3;R?0-H49?C0S5mA;oz4wqTnI3IcNf=Zxr#F z!lXEqoQzDtlpb^3e66FskT55)2PWrl2+A}PgCEDJ9`1f!N?msbX@V8XMkj6+MmFJC zOKl$ya{#$msxprTemSgQ23+#b-*0t^?my)Xjt;ekx2zlg zQ9RGUFGC8`VjkxIJCY7MP_8y|{bKp?DkpQ?POS(*(@b2VU$=J|5<9pTPMM+4S8skP zk>UUi48FkW@hcV0u-%*D@*Lpr9#L|GtvAQdv3?Idu|3$eebgz<*@^qb=4j*MDEJNt#tI7_^e|!#5EyetnG+Nxuj+p z7y_x1dT`P6#oi)w0{j-I!)-To9xx`iOJnBTNVUBexPP6ZPL+VZfQ#jPpH0i>(rZk) ze{HLRGLjo5WFL?0;o*#e2-D*e3`V?VHRam68R1m##aIB?$;~rt>sqlsmlRRV5ijYa zDa!NZu^IA_jh=G`%z#E;$k>e@m6@*b=&-y~NN6jSzvg>&H{NMY%Pd*pLS%6V4i(ut zoy^btu!H)Jk1SDRdngYrz8X7tyy+>`!PqAUv5 z0_XU*>a>5&C9)}9w&rwCIu&o+*A?O;0m-A^npHStIH03F1)+k#jTd)UC!70AiXvmR zgAJ0$d;h+F5)CTiUmqFLmk-j(lF(HTlc@4MqcKD1ae0z;oLlu7AG8iJ&{8rx$`-DC zduW6)Ur9_4h@|(o65`qd3}ZdnF(l1j|7f;-Z5YwA6WgiPnIpf9RJ^Am*Fjv?1Ox(8ooI}lO-67P z<^?r=eo*eFuX~+F@~6#RuwtRg%#a;YP5>5gnSYVm9XD<>nKErLgDaD(YRq?sg}3*s zsQQynjreA@>|h1_x$fio<$0vp!Ns0bQnGe~NuT$E)9T;Rvhy@9cf3zT#|TyTO@u80 zU!~#DvcZ{O^r&s~@%p5qIQ3JP%g{M**azp`u40C_nz{bH|MsAAxSS@QtKH=jF|)ff zFUPwXJMiSgIwp71aka>hTi0(=9F2p4#^kw1rdL^ri+|j41BYylvSlKa-|c5;6-96?k!`4ckbgvbj3Qgjj^gksF$o4y_OpE&U&mO zxN!B=MX+rGC%eZYxD@(t*0rBKO3d!VR`mSzl6%Tr(V*C2)NPzCD2k95=Ch8zeUA@0 zC&!*KEWgEdL`TP7LzV+JLhCh2TCO?aUDl_ch~WJe4HSR?%cV*RTXC&C2}KJ}kev8E zP0ANHH4ux;W?9RroYLe=pK7efK%r<^?teD7T}R9k9iL(5;WTm~SsOW@>moj93@`2` zTXUX@qjfiwie}o*77HFO8~-FIzw5Qb%03GcGL`i)Q;=6Khim%L=Mw`Hg(I1#ZQkNHgvfF=l1$-VBlTGg$-*=b3V=>p-kLa(KG@h5|x zkb>$Nb{@gMVTy(w)3P^JvMKi}-R&O7V^f@otp^P5M@aAOr@-NDBC?H``G-B7r&Otz zHmiy9VV*EVa_S6+2~;BKmMcMCrE%{n7~Q%p2z(8?c^l>ho{g+P7F@qBF15g%>UyJw zX(ibCk6*7Tvo{IJFax79PJLlyLt=7Fk}#y*(H*{{gS(dF+Pk=icdXy|JpgQ|iFc4g z;WZC#+>w%~I?0FOCx@aj-QaJ>Z0??1oXkfmF1V2N!n!-{M*beYNsWST(ykS6iQ_x{ z2c_JI@4*S+M$UzBr|%r<>9!6XGu;3u?`yK*F!Y9Wp)*NFmQAj>$+s`i&XD5hq(=?oSU1a?{uN_nu*ll9N>YZIxh3MRF)N zVE5vWNmaG`oN~(;o`!kfz(0%U*@MhPdm*k_!Eg1UtvSc0$P&}R!hYORUYX|^zTh1x zpiE7jiEzl03xu4!Sgja5_$ook(-mdWs02LioDZcQr^l~ZO~CBDovHvB-+mwgUmR#G z+U(0_0o(mzi|1-Y6Atv!Grc0W*3P4!l^jNJvoGL;dmh&hsIHw%Vsp422V&rZt!(~~ zzU7%hQx!xtb^?NQQ92Bv(zgo)JhHAtH4Vr5|4&)n{>mXg=wGYUkF)oQh{|78#J? zX9UG?vMwO#nMRC{28gipY=+K!NORwKb7IUR|NI1;L1E!@ndVbH=YQD-gt+7A=N3(_ zG=u^08l9t6CttF#V-YUvZ>vRlC$Xo{CuW$AajJn1-Oxm-(6}@D7k6Pc3r{>XXIWr# z9JpuZ2$&hO1_Lu)+MJ*B-P!5O9WTFg0@;EE?RwY)1=+VV?yWUh8O{KcZ)Mo< zu8muG7(h_v7)dlH_Me>~T_g02Zb;+lw|k^{^dOY7=#>ZPDdD}wX~1Y|^Bu=Wh)3U9 z0D-T?V+Tn^DeixN=T4!UP6Y57do_wjjO2_cv(bkO*gN^4_O1bXnQBrg-@i*E@fU7~ zrbgMOGV{3VFP%zd{%pjuEC(zUDnxqO0~6TeU>_H-STMMcK)n{5#fv7belHxrPcaeU z28&@BegsDr%nRBQzeb;~GZ@HM4FkYoR7;XdF}03LBy{5e+p6*uq@_Z5Y|r(%_tUR$ zAHD|~4;eE&RPt^ac(L@;%G~BneOPn+PlE9rX#c#TmeQN>>xdI`97@@;iKR1FL`k5h zYE=@vrzgzW`hp;{(0OSZZ2$BmfE z-(*ovPFm1iJWuO|rJ)a8vO~%FQkO;hBUQ*5CH|S}`XH@Hjx!}AwuC+q(9W@EWlE%L z*^)LA2=Ql0%@z}D2G~qv_9$>DsJ`e*%0Vfkdux<<607ai^fE=QcUG10bMeRL zlNZBAkp6Y+51S_~qtJU`y*De{>i}>w$%M+1-pNs6*Ot@}6*I&V6T`U3%7|+O$4Ey< z=ak{IAIBM8zR3E9IV?)?Cy29<0q5B6SJ8mJFKr^%o8`$r|663Ly6gW>WbwbdyQh~> z6_C$hQyVVbv(5UsBEeM}R<-*&WZp))B_2{6cyd}iYilJ?Y?ajeCZJ@{7oyE6 zERsv;Lv8H0+ulFfBw5bP-00`lgEsGaK4h9nmT6URDe@c@u5|aOv74EM(#+laF{;iC zbQ~5iY3THtPoJ^-1uOl~hbgHIn`VR+cRw_3hbLd5i=-8(7eg9?c%YV=LXa5;9Mdtx1LOq+jTQ&a$o z?qXzb-Uym_TD%M{Owl5nzKV!n76pk4hdGLNO!=*ty-IvQxV4XxPLDhDR?a?yOl#K0 zw*c?4&k4K1OzYYISZ*75pSH4N2~jdNi^p3%R^8=kIjLVjt?o$li*RvaD*_!}IHZ?R zc*mKutpns*;={SYmiKQd*vD8DlNIm;OpYT{pWIX)brRo6klt28Hkx$U^9J`zFG}2z z;aN=>8-c)&dPj;e?#N)SwbWXJrw=1vQ&v~R!<&l^x$hjmi(yp)2kOoSm=|2p?r;WQv1=}N~x9Ph0G$|gC@s)53jYquC)oZm-8(OgH zm)lmRmsKIeC`GM&>!Y?w+Jk;r8YOwwYgA<_51E;BY6-Pce+G>HkZqS4DD+;OYmuY? z^21DOn$u!}%hhdq48?@Fd3%GlNBy|A)S49>u5_uzrN*L#JM~UAIyuMM4?cOY)3g2h zuKK}Ji&aq<(T0$1-A@9Wcv5ZlXD8EIvy08v((?jx_iocn@i{&M=RSi=U!|F}+!;}k1aM$%Pn=34 z&bE3B)~W-9erl5k3%PM@BSndFIxa|6ZqH z!mg}vbBOG?=>q$K!|2^e@!pL>;OD)$DbG1otPT_548xS%8H8?sgw5bchGrR?n0_gC zaDN|Te*i}Kqh^U|Q{rz7oVRmikU|CUz|m&~=nhND7mPZUl;Zv!G7$I~5|Gk`TV%S2 zHvp3hbw)-E{Btv01myl~N)2K-z#w0(IKdhqjDFv7YwsjvV6)G-1uQ8;>ZVG5uAHtR zil9bjyTzG4QY#DZse_gTqT;R}n$n47hMWH7=3yS6MJvnSDhm;>B`t0=b|`xnk-hJ- zs>iTCfNBb=LMw`RZw}#px@Ws4yqS3BH#EY->Dk#;JO>7`3DPq=ejC0+sPquwoc^x3 z#rnn#?xQpM`cj@@Kl%;op5y67LuRwTnQu;B^-~;6joSn3d9vEr`~Pr@4LD7=sAEE? zpeh`?mF3__w*9{!x1L=pTg+!8=+jcNLy4>eiCoVyg^$#H3PQ3`F)`E()bu{k_zWqD ztj|~k{;BOayCqANhw8ZDM0;huPIU-$y1fMinq#4xZW$Hl?~cNwjx98k{y{0c%(yYD z50kEO3?i9K(H&`B*7;iruf^+u2^mW2AmZvH04G*`&S)+}zp|3Cl0p9W=J<8R7)BZA z%#Q+N?imcgtJZcT%o|0X%LI3 zsD!Be=&9^KI;z5WTq?%c$PI1p{NU4Vm_Uv_hy-+uX_xC92&%c-GqyzhR{FbWy%UG(LfG0QjR)u3r%@6#Zt(OcY<2pz^R1` z(QGy}>p^9p!^(1GcGJd^vYui0gVHe%`&jmFK7Js?#l?wy#le+Bdj zr)SVW%rl9Cf4pvDa_HlmTA?kQC**{<&Y!gcJhilH$U_H|b@`+-6o0FOV> z{~~`=$zVTaU=Vq8pIp3bG(3KQCS^SrWYZnfn+ zVN0Dzcg^xI!J17-3oBWbHnbu{`d1k}+ZR|WyjJmD^z6CIxZ9ce`wjT_edZOv1Gc+j zpM=brRj=l^m(yL747CDnSq{~_240>>5AM$X-ekeEoj_Db+PIlgUaxAPH7xh2X8N1t zDzmCBb?x76TIUaR8A94J$9H6&%^U%YP$iJYa|edR;}BW|;`n;-8L*cg_|-jv={b=z z&^u2w#l^REP*5VmUEd=rkZ@{{!#rGs4Hr{&-FeH(?paciA)4n!A$t=LNL5S}TYopB zNay^x=uQFVX)3frvz zYVDH5)twAWgx1-MGj?4;ymo{k6=HH~cVd@g+E*r<=Knye*no5DE6@jN%&$n{&QmKk z5dZkK{^VVZyl%HCs;Q+wD6_r~H)2pUr$cOT>fmLF>Xq9db;K70$`IsP{2lj2b_}}j zIxd$ke-5sD&eTuxJ~e)Ka&%Lu$R{+zXY{uFSR1YZ+Ah-N4fD^ijTFN^I{e zudB3EKF(?Jp5vqP{*VM!!}h+VWBVJNE0SMYU;R&a^KJzuL|P-)p6;+|PwBPU*)}GR z6$Oti`)T)vMBH5&KMTUPYv2KIUt;M1?9nsd_)gEwz8O0n1X$Vsmr?=q`T z(r5NyZ;)pMCv|r`b2i^X5wk1mBh6${w%2ChLsL~$#nZOzV}y1Asz*BL!Fj6ys^fA`tIp)vLU3>;ia z1PnVI&2n)^wJF&VNy#-loGHjNukJGf1AlTD_qt#4 z-mLGpuk>_$gU>(CyJ1Vp&|gD`$zy5y>1!%&qB&pUI;m4tvP||wIo{nGHa}%HyQNJt%)9#7mwdnRDlIABbA1Ya?k70 zM*YS4z64T4erlLKF+-ee@0opG)d=B)82`xhpIWjSkp;n?{AX+y`Ug7uj+Tk(R!;U@ z)tC1A!2Dib$&d#f6wisIT5h6aK{hL^L=2>J!qc3E2XS>@e;cjf0e*Vjkem?m3ZA$# zd&?@0K9-ne;+vhe2gy8A!}?;Uue?xNW|mx_f2UA4dZL<>LnzW%L(uKMb<|w%9>76r z?2!T;k?;rKaZkK^1}mcky*vpGo8g<%-$hLLI&8T7UR#OvL@qgV`J)h*+4b}@7j>V?^OrbF`*RC=6WIm$*48v-Eq;r z;I}zkg3N;HNjr22rUkA6#Xlj>MVC8fopWI=Y1x{lBQvl{ox0yesTAm=^~PptkuUkL zkAJ}BTkK!y{@HZ&%wX6kvX0KmD8p+b>YwnOxPP%9p4X~M0xd% z7IdG9Bcttfx_t$~DIAvZGnyCU^}g+LQ8aUp3@fa?!TkMp6O^liTV5DC`QB70Pw!QC z`p>U!ahh#)eo&-AB5826k3ZP!ci_V;6m{}_gII2>&8t5uF|hT%%%&i`!3mBWl#gK= zCpf!gE$8>;QnkSiuY*mUD6{IfC&5^>8Z7(t7OK|+Evbif0~OmxS*MLgT(gglyl=_j_8e1k24gB_){a3P zQyemHyLS%O0*UvUnhYDsYAz=mTytNtd-WezVB7!dIzaiJ9rU_5XnU`)&yrTQSACWi zK61=0N$g^cA=_yVa9tRS66S;h9bD1|^jLJtI^PkjIT(POsT|(JDQXalJD4#ChPgV; zFBy(HpU5+Z7s(|o$bT6TEoDUl88JBHzd1>&K(YUo#zbK6(u7ohQh2f(6xh)R;h{AQ z^&ij^W&4H)xc#zNuF&!kmG9FpYRD)Oigi(m)d^#pRKhH9 zxA?T}$ybs#%0!6fsI{&ae0GVq>UmBL`V&}Q_=21g9m%W=eV0Uq=E2L?@H+pMk&CJm zhJLO92AfcWeJ}Zh^Xi6Bi#QPP=qZUzPr}&S<8?MsO5r(kUQK6P$o%pstM|oES^qO5 zaWU)~e!$}K#|z@k;v;VChFh* zJ3q?EDzIW!+gl=)TP{9(S%KY#B3au#qBNTQm(D)zUz)`1zq9bw*q6QFX}#qG-+W|C z241fmwP4XqJutV+2tL1YuB6?sYK(g6=ePgwwb7+2;H@@R)4aWMLDSj%Z#Pnn{s(gCZ@L$-1m_ zp#;mBi_WUK*CZTc-$jnuO}3p=hf-Puyth9N87<hfDbRC{y>oaV(~+f1Ol#sQ#KViKIKi5JH~? z$OWO-n8GvQnXfKd10?tEt9}o6cO&ny%QwXP0F3L>GDDjl4usqj>l>BpW~`Sr&d7Qp zQX$k;7ffm~hBJ<10HaYrD9lhjjUptKh|B(O&BZY!*Z<)baX3|1Ip4J77iG^tV(%7j z7^rs&R&`rsqhez8$+3WyGBl>U#Z^qW^nRR4Qta5HIrtp~nn`_H9RxWlqJhn*ty1rrS29ik-ZE*9G{>^r=Q)5BB^JH4A-^37}Rn1+@bX zh6ykCX1=;aT#Gs$pD3kHWZRr4zLqcWyx3n$efi)sRkY0)bJ&^~APK|A^&RJ26^XzJ zKr^{KP=$7N&o~X6#@GoD#~2fZo%3#9siP}flAB(Kq`xN?OEaPf$lv}uPd;^(gpo=8 zx>H1gW8{Zcj_&BPqa^WK14q?A56j^*xBZbw9{NpDm2z;}lOjJVTK6^CTqt|AESK%F zMfH;GFhj(&7)WpyZ)8K0T+68MCl2kw!ZjAD2jxUm=QaA|K7FvOg6rmO^@9Nq*1+|) zC%u3?!@@B-=}HKvw>8x*Cb8UIi1@6>*gF-$5*BPkVORI?w-M(gPo_Hm9VP~k6Uhz+ z!vkJhZlb_}+mG%OoF_U?6iVlqy-sUyxf+e_{F#m8aTA~4doi}om~{XVVfno`Oc z+)8?hX6<3+`PR;CpQ>oOcQ570ddYlB{Op%iOCz#F_S$ z@s|4(C@VuDJSrJ0*LJ!)&=GQNeJvF=u!Hkw$}AnNz{GfN)x?v_x$nBYZ*-%-;G`d=V^6gJ&m?9!<%1$!>k zMvSO4+kd7ok5|!HpKZ*zdogX(dV`ftv^Sh-za&VX7C)oHLMNT0QY>T&Ck-bk?fWJ% z80&j9);|Z+>9yFN&( z=av&A>nrJcKa@R=nu3*)cnLp8*#|Za9Xo3Vas>ApkStj+isXUI_fotepV`X`BTW5pS?B=nk$<#D=-uZpVNY0*|7Pr; z@7yS;6uN0e)ABuV*X}8$7!p!gdHfU`Yhr&~jC{Qi7W{3LSw3q6r}69}bl8>V=cMz_ zv6{MwXZ5Mix*QthI`}iCS`C+eO7xkIt65T3j2;~F!Z6eJ$e&#Ie=jB+Bo5Kazg;!u z5w6GN)ux8y8McCCBy#QeK#Bp;j7#}$n&F#=kh3p9i{e2+XL)DtqhU(IY|6iI3~$b} zpYP6VREnqDCwQQKZ}@He>2WWvL|Cpaer!A%y%*t4ixCdxy197i4ua)iJoqej#wV?| zC6VlDH=OpGqmnyHHaM&yw<}Q}C9YF5Ok*bwaH2$)vQxm|^VwzbeP`h7z}V}e>$ZV0 zpza@9lyJ_hFHLI-QDOzXGm#nx0j;9l@csVDp~=nkqP*ge#d96)aHNEQ=@Z1viczTY zaOfQv8`vJzC|6DS*CQPQL13eAh?gN*8f24kRRJ?kbKj_;!Og8^LbH?^ zXIgrj8bB9>_O8RhWDqwCac2?AIFYj1com!b3gq{e!r>I+{oQamk8vT|w$$EArEb|^ zLmIx9|EK>=*`6I-f&`m&$E2R8>R&%&jZYKH125f{>;?OG zUU$eWz#xG+Gu=f%rxN`o9M)B<-}V!fu_e>Ymdy{p2KimNMMt^%l+R)F)e>@7OMW6Z z<8W&+1PZ2}qP1ZI+p_NOhK#ug>cEr+umRtJ@_XNL2MhFsE#A_msTWI!w-n`_A>4Kw zlsR(TEWf`spuA6!W73AndUi%6%YS6RBQECoIZ>YPr7qILXO;G`Z0x8+_b7^XPIumc ziJ~KSNbO#DA{VfCt0ASH!_|c8tmI97~IH=&B4U!LvrObq6eFX~!t-6Od zN>M8Xo{Nmw#_YGpOKS*E+mE=VC+7oS-~OlBVd?J#(kD3yfGf||k1hH}i@&e4v9l@A zEgcXaD?+y8)Ph!VKgC&*Y1f+GXc@^pO;~l6&|$l}kT9xk1s4dNs?%RwLo)Y$=VW5IaY!lO#0mss2^{msrUff=_(>h_cC=4~ac#cr>-5 zkt@*wvwJBz!Bx6BS*g*Isz(z}M@(g97ufEueVH6y>}v3Vz5aNW%~9~NDH@h<1pPb5 z{mqh|2^Ss||1VZgFAZ`ePTIYT3UR`vEmJhUQ$#jiucI^?C+pnuXLr1WW zN~L|nDu(9-gNFBIy3Lm=e-1gsP&$R1TR7bkj~q%QkYs8TneL9u>L`+hV{x3Y{pjCX zxA$Z8pxz#rS!O5hn<*hQCq{d|lk#$VM}H+UN-Yzy)51r0*7J{ew8FonPqB@OG0t)( zap4oUj>QhmQ`*Oi6wZZJvH7$JpNS0|?5KrsnMMI1T6C5j`4(kufQil33ixS4zMpKY z`ci_cgOInys9z!jIsy`z{Z0QiNi9{+NCuD4qVG*$R zcQrb{j2uyobsMN9V$&lTT_)&nX<;fw19tKQ6Lc1R0MsF>q9PHuu0 zccNX0kXBd8Cl?Vgb+$8) zxA2v~Vmw*B3BMGIr^mwbLiRsf$k<&824P&%MwD2sOq)Pl7p&IU zdSJvJyZ0kn9p8GCN%0JhPI~w3{IN7QE&}EeXq5gZX(pa+qhf5y7n6jTCXmL< z)x_$Q_l!65FGGkvO|C=KGe48W5Pe%}3`Y=2y&NNgu&~5^7x*P@YfIR}gsYKEU3ttC zbZ+WNf4k}JPn@9s)(bb$>&wrID_qa&%n3?2WcK$w>Lp`~@KJ&jWXK*3S|M#x-t}8* z=$gy*1%0ndAgnKCrgG)O>Ok(ZB&pxDXwi8k^zX$B(GwTM#=FPWD+M`K5qSn-CeeF* znXUtcAD*Cm03Vk3eYUI)@{bqA;v$<{x zJ=oOp`4e)T+0aq1Rc{WC$Yy9i7n@vMcC!q%nn;H}S`B(_qjo)L$Z~0Jt-b6*yzvvk zcuPFII$6Qea$cNj9o}gZB+xYkQJ(Wy{P*x4y6#O3+4t46V_~YW{qqTlU+weMM?{o^ zJG+dyTKIZ~^EL`IG`!JJIyr;>p;OsZ1lz``DzBO^ChV_+uS*kpeE#F!f^DcZbIf*W z9sO;*Hv8;De<@-!8pY|X=2>HaBIWZCIIl(Kl0*Eh|At!*a6{A8JR73H8_+@A0550QS#(rBueS$w`G{lAA$*PUE!5?`SuoPy$I;H!~(EuYuIHB?~(b!Hf(IIoY;BN^F(L@qrCh}1l3S3lUkBA z7S!e4vN`NLjLiB*+{_KDV>zei^IeuNJoxk~H!2P*1r6r8;A zcmRW_7I+6tUEi51kyc#qX7kpVq^tQEri9OO&Z)^KC$LXrWs(Ngy6O%3>{?2dlBVc^ ze9Y!s7Bi<*R)Fp0_jOmxBilm>QZ-~|)*s&$%yXC}u1HiA-wvJ~EgiJS-v!Ru4TYjw z(yqhG`#T_$DKlJJJvQKuC77);i1@0U+hDQV0mW)rdU4)Sq{EgdXFwOcpU2M;P9450P zKN@-O@_N)?Vfp7U`f`;~QqsVN{VHo$hNhSON$W2bn-18IG$%);#von4Gg#n zq`aGnezKv;!HWsHX9x5rZVsbfkshlghIFXfU&*S$&PdST;Jg#O7D&0RgP2iHE$g}lzyE=MvKxR$FSoq*@^9^5%uQBo@$@_7l28mq$!BCjPuHH%U*&PEW zflNl3_n4;Wp{}??2G0y?`9*V7-QwmNBWNG3`l$2wSl2&P^b0#BN)itmRHUv--4<~2 z--R`utkX^EC?#jrcZOE+`3RJ(m444}poSV%h5AW1lx7q5#)@)B1Fe8-TZV399juMO z5JnD_O6HsnAmBZ1=)md;xz|$0hh+h)Tfg-S5$PmT*mtia6i>zHQ_DNzjWbp1QNZ|} z%0d=-?h_OZQB8{%(9N$?YyHbwRUuP-RU4Uat&fo+@;CnvQ$!Qlf-^r#+1s03USmrO z9ctc04E4`s2=-8&TnMuMk-1#PQi~LI`CP!RsPM4D_iJMF8%4rXyU5PgipoS(>uL{K zCs>O>oR|!hk!GDaUy+*p3f+=ov^>8c-(_sAflJ<56SM6l!Pe|O>gmd@ zqDJ2{UO7U41{@Nb9o+f?9$Iuh&WM)fq^|W+guF#ldrs^Cppb@5>!p4stwfuc=`LX% z{IZApG;Dajcrg$FHsY>yV_)f+)^R6R?94@|=v)T@AtVv;2gWz)))oH{@JL@r}IQOO)nZ&=(U$l09EOL{2<?ld%ZiXtD(5_@p8(RnU! zdXe$N{7*12wdT~~?tJI+GQt1CKV^A;OKo1#FojZ>e?7eDOplW=c4V2~d8`tdwv~-@ zbo~p{_?e;Jn@1ko-b8_Y>%SdeA&z%)@%{gLaEm$dg8F)=QP^BnYf#kVv6q>7JdNTM}|gHT^RWE9V|-7UPGy0$b$%{Id%x z0@$JtnxYCTa*5fZ;N^V144Tl6n(6Pa%zb(69^TAPH~Q7&hXF|Vd5N9yViHY!T))&- zKk5v8W6VdZrzF6z-l89F^hB-?_rU>3gZ67QBLOwu37)(Nm8H3E=CnXzd&Goo9xOuO z?SYeM?6h`Q|9OfHKJRtG@>2&jb|;|Od9Q%6I1IpHN}?y)0My{`=Xi-9FfXbKXEbx)g5r}qmQQr~S0;}>4vUpd0`yPqj4U`aFRPz3P_ zIxpBWA~NkdB-Lh6efSbJgn`4P3eCkTcN^W8TRg@>pK~bMA8bchOwKm_9%wkQV=%WF zX(#m%@E%d!CJ=*1*xXvSaR1O!+7I1?gZzGoHZP}WClXWl+~H_Z=*32R>dB&7V|azu z94_L0t0?_D9^_Rq(6PO}l})4cOe8#2Yl9;FLtEH#H;qjq*kA(6H&pkiHAe9ICA%;H zPK4GB$*<@`Pe;zHY1TL7CHRwm;+B!AM0MLP&BfuqT|L_G@5{RX?Ryf0V1%JJ?~Jd- z6h?l&4V5D6IzlCxF^UmgkhdxmcB=ON0HNbwU%kQHMIiOwqB1dUt)X94-w53@Ke($v zm^dN<{@*9)*3rc|ht@a94x`b?jtYE$-{dLkWGT(t<}K}cFQH379L8*?QyFJ&ZQeAk zaDc3C>+Xk2F1uaU^-DmJoB0zzGT-oXn}gv$3WD3jQ+MN`P|MxYCbnoGto7j)pUUb>e@l<~Dj3yuvd)G2aXHo|RmRU-LNP0-)^4*Jvtu+&N(SwXF!?b4< zt`l{i3y1?FJ{E>o(nI{` z>$3s7Mo%Ov((0YxFlU{o@zpuM+ixR~C_GP+Xo{+SCe^jI&1B0-ZMM>#M6LLGe{_qZq zy)_d0WK|AZ)9ml)(y|2^!xUF06AbiJRb|P>$Hy;hl>b`kA3^Zp>`cER7Unm`CE~Am z*_Sf>`UXoyo0Iv8?m3{HcFie(j4K9)UZ?wgpUReKi`#aLZxsd4qCn;i>%}~~Nf-Sh=nU2$a{~A3r4 z6g|-VSN8?a!pVo#bA|9!oRXx`79A%wJs1cvCW|UL;MZ|J?G2iD&tc{`^i9kqh2xs# z-_Gc0Guy~g5?a*0haae5bQ-+xi;9-2b%OB&XZe#8nEN)46zqOh^NG6?a%`mk90WU* z3SCG(Hk>iuPY=cmXtp+B!w0?hYlKGiS*|yEHhq3=2v(La$Z?9d0HZJFHr? zW(F?bH5xKD;KJKq>2@LySrO>%zVE!O!U^mM{c<^sLt$(57Ly%UFBbOK2TkGIJJ0WH z0*qqK&*uu)=%v`B_YZ=@2Hq-{%EXL~>zl!?4?uoEq$j7s?>%K)c!=JC9Kv!ug|`9w}#Y8b6I2$tQEVi5Xf8n2aM?(ug&ih-|hur;Top*N8Sa{L7Ho=0ALcB@>J z(Btl{67l5-i!Vr+Xt7o%Rbu&U?tMWqIA4QX?kGie{ zZeYhPE{Dh6J0(vY8J&(uh=Hqc4>7F+vQUU)uZ?PLB0J;8@c|i&gb>QU;w|Pu;pHTU z*8Y6cv9*t%*mPi%$2=OvNO(^c3VPWuVy`!dYFm10G^7FTjuv*hV*}jpYIOmik-i() zN=7Zaifg<(!XgvDOAO>}v$^a#f8*FrEY%-;!{*e~K7n%27)i`c_}om_oNT0aKk|0p z!_F&pyHj9KtHX!a6w*b0)+(8P{yp2osG3|4)Ww1Co8Hu4Y6B1u;gelJz&&liO&^t1 zW?S@-*y3pXh^4HywBPd4EKR`f4O5CU>F9)`#a@8_sIV0;O8*ax^g-3ryAFSFtUvR= z8*SCogucyo6|)vichwnaMnF2rm5v}dcSTYkxs2@L*l*8 z|Hs)|g~h!j|HCICK@udmLvVNZB)Ge~yUPq70>LG?4kWn4;4-+|;0}Yk1%d>E{O9Z@ zd-i>v-`>1ea{>MB?y|1>R8==$3}&H&|If4g1G>g@V%71E_A9){i-p(6s#Y_JgL_%E zr2Unu)KEzLI?sL{_rCaJ1pt3-)tjzk)<3C;McdrR4=K>t?_>DnS{??HS8DaiCAi*1Rg){Fn;S}49CnCK5*;Tpb-fBbKv2@Feg!Q91Q;9n> z2)sdiG0m(4J{eeP){ao-Z(IA$g@A3~hWpI=ONQ|4Imaf=UUP-+pG^V=gQh>kTyIL} zbqKRXC=@Un)lwlb9aZhgLY}8so*qnM;M#7b=rzVA&WKANDgTL1g%m&@T9U=l_dDsQ z5obxC)0tLK&azH|{4_AYrY*$c>^$vZNM27;Nk`-wSAIv2e82;Xj26XMhN7|dLHvdc*CvZi>(tVj z;Qf=I9L}MNWXt`f!V6~ie>GPAO12R)L*@4QOvgq~Tmj9_p5XgA=jE@!Nf%Oe=ZA#a z_<+HN2q^h=nFb6*21ZGHp6w!)o}alIRT~9w#FO5eH)9^U*KmTDeoD^yASKKjbQ4zL zLLdNg{MN92MvwK98&8x2Vw?hY8R-ZvL@nj-^DLXI?=QhZ9%t*yh;cOxg~5b@%B`;| zP?&xWe#f}qt@EksE`eXH(<>gzcK+dKotR|_!AV<4=Ex7>ri;CMucxyn|C_ZY-x1bw zIb3txRJ`|NC2IpGYjp}VRr$g$<2-m1yjIdM9JXva zhSj_xB;4HpATHwPN=;Cs(4{DuX#S|MFgl~`>?~A%Wvd^^ZHCi7JCp!FQpfBbk4h+> zvRJ&(mG}iv_Dtep0*U%6Ko)+Qki7gO7 z;VZJLvBAF}l%P|k`-+Kxcx}x#KeOM$mt!# z-w~20e@fu1uJWjshHi)7j=QgzOYCnd5p%(cIewpP{CRGd1Xq0Eb>Q#-#MQ%xIB#Gy)2PfX2;r*)Mfz4qLNhaD+!c4ZMLU z-@Ivn!BlY5*g*LR*mJ`A^{sv{{sHx-U}4RdBi0+5_7>ZV0MLAH>!+2?7tj=LMow_( zd%GXXSn67eTRYdH3eLW~_!5FyW(F>?uKg7C(Q^lgLGhwX@++=!n!jqJkl!{`es*0A zn2WAc&!+8H(e&$%;I+ced7J${(ti=zaEu{DnsiTR!{W#2>9BiN3_AQ7?+}`dQp8X@ z8M%w~YUB|HxoB)#hWwIjgil@Q8Ipk_De98rn%9TKq)u=7jH2!32q;Coyz7&a4D*XQ zW1f%c_@ws}#P*TnJK$TTL4zmmRQ*39Ub1G5|3v#;Bmc&Oe zS?TNNvTUqhW$RM28?b7o)r;qRNIY;rn;Ka_){^02OkWPfpSavM*&ODm5$6vUS`<60 z*i-;#U(x18YgwDDyZimzTz&#E%-G<~O=VZe@i4i6WxtF0bL*NP4996U?;i{ca4bNy zTKW}E<1`Awe6w3Q7>@$B8g;YrUoxr|&Fg|UM-%h4XD0a2*K~gT;^V# zcFE!pv^PV>HqQac#Bn-#N8Thw?Df%)S$0w5S*gx38GT%?9h5vWt&QC0yaX(((i*{DLDaV*km7(TCXMo94C)^I-;Eyk9)75*+sfD#5!+RYS@=3eHSwCMy-nQiKGf@pM ze-`P7WtC^AtI?NUe9P)Es*VCEx#=8I9v zEZv6b#mjl!(EQt{L;7~BJ@pMcQET$y`n0PrJef5ao+k5FS`>=s+|vNj4Gji6beSIW$Twa-x|z)J7{#0IiAvO8dN;EMwe|)_k68qT zWx}C<+1q<4rPv4fCCX6eaH~P!KR=SanP965Hxc0gzQ|Y`gZYXrVli!U&hxdRoRo5U zXl9xzg^^1|kt?1REeS?st{+sMQtb03&KuViLWCS-*11vJ_q&>ehYS=`_r~|<#$}7n zCPAPIG~Vm$H0Ra9Dg4Ij8TN>!$yZn`7^Y0a3wCnpOs8K8Xq24D^7+>Cy~ofBTLpu; zPO}NT`~9M)S)Jbm7Z?b8qQ0(jNwC(tTTFXz@dZ=f$Uiph)HwF^Hc~+62F_+Cg2Q~) zp`<;4@W`-<`zTyPQb6eV4d9+D%{gzqH)5+~NmxTM`5ocCQPLdMZ8A&N`#h?Y>CQ6e zN|f=V+W9~}q?>fCGat96b(8U^GelQ^p}iGmL3%-}!NQz}gthxqz`YaEO{Vd~r+Get zQst;Dy5inyr~<3Rz-ErX4^a{FIJf8Iw?Y^&Pkcb}@CC0^+m*Q1*@)`N8n1@$v!iAB z;lBx6)!Pv{J%v0pt~~8e1985JUR_T|)B3OSyzB+Fu!Ef!0;58yp;B~j@)s8zmo`T{ z&FA%R&O543Ote$1ZkMdz(6`aS4}8szBsu&~t^asKLjS|ATNpQ3myYmZkc zI!G%{-YsPPv#lfV%czWT!>?2u*1w1T`NG!QKA{K+PUCcV$r8Ys)D*Gm$6UwhRyz{e zb{Ep@Da8hv_ciXLWu}6^Jn4ShmG_1&>6F)x4LB){P5)VL_ot6W!} znm$3#i^Z@1`8<4o0e_aL1Ye><9<5l!_D`E!bF=WjI~^Hgw7+*>kK zEr*V|1Ck$3+}zzYyFu;kqQ9`v7|zw9UWrUyVF#6C zT99cthB;Xl4lwseoipq-$wU*S@%NDJfvf7jH6NbU#r`8Z3^30tGtFCh~N>j zon&ZB(K(+spr^OBi;O6bM7MNLT57LTllk)hl#74aj&B@KSn=RndmxV&)c7@Kvp{uwXI`fsA(GQh^V z#^_<5$zQyOQbh{07l6|7e2J{{hO)9!FO(t_GhYAK25$NP>v#g3Sk`JwpE|*f@gHjO z;r&|%B5}@k*DJkEKL3Xa@iL;Szc>H4-G<*~@Xw$8{-X`X=apq)u=Zz&NV7#ybkxh~ zHFxtV`oHb&pOxQwQ2aK-shfs-f1z5Ec3Er@3ttXy319s*7e4RDf{AGkxftVvrv3JO zvi?R6{|w%q{*$AF1Br$rb#&yWYtPKD7rkBY?!BQoH+|E#V)8kurT*2gt1&t)EvkG!@j9ObPVAVd?AQf7rW$?5Qe=%Oe^7i@v`H zCwK?{gJG`v&xAOc9n|bFi{Qwqt+J!eBmm~JcAmVE%JLCyz5k1xKTv-r%BUcy z!3Soq^U25x2e9aeuW?MgNFKVaLeUpNtV?2{E=Bx*|MQ>K4i&xrJ@y`c?L=c{Y$z71 zpo94d(~avB*K2RbRKE1&dhR;^dk?w49gaU76gB+K;N5~9LuKdZVQT>?18cn9jJ3hA zPh2`3{%kiQ)p)58UcDtD(Yc7)|Ia3s@&70q9bC~a6Zh`9$JrKREL|v8gZ(crJykOS z&%$VKT;pV)dyYAJ1V&%}kGVm>`Bi=C!O8)kLm66S#8vb)V0uXHxXiRWNX)_6Wi6BAQPsltx`r3kxd zzZZSmxMygMzZz5Uf;h0VhA(HmnGf$`u5A4LF0%@}LLCx)p|!MJbPMzRA9NOm(>WO0 zZn_l3`sQ%&V_O?`Y;0^3xsalUH#vd`i2SJfRiEttpfzxQa#G29{B5v!9{hR%WWM3S z?{5%9rf=H<;BV>vNB$`P5&ojh)iKZillcEq=>L13zkSO8`+M=5t0ezRS0VwR)yvE4 zsrmULx3;!b55+xa^#7q2Y<;cJX9S}cy)LUGD}W~i;h%B%Ky$DN2Z+i;dF#n%b+)%P zK2$-C)!QU_2_Y{SCwsb&9TL5Csv3haMAxMPlO2uo-AdBx3*TLO5(zDa3V;5^fxqH* z$20#&uoG_oD;r?g=26&Odjw)}m<05&v8L?T8Ugpuwwom%ajpTAFoCg~${s^aNSPw# z?lFajS&OMhc-Gd4&R&kRcM;B6A?Mthk|IQCd7N5}g=jr(_b$eSeeCnebpt_f5_@@b z|H50Uv2%W(R(Eh|W@c3pBW98dY#wWEM(Xg_jJB8nB7-7-bTbH(cBn1G-tMl(pFhVz(Xfq$TDQHsl?i==OmqB8!bBJCFx=Mv>L%8q<(^uZqnHwU zxUt@<#5wDyeetD*no^0#ja@fBx`1mYm;Wmqja*XEyBj6@VvdZd?rDwcuYF(+XTCNl(P0t=I^#1^oqCRCj$^m zw_H$!B902wnapRGnbb1FQ?xjPk7494CF;}pO??z%B zs4mLB(!HAqTQI`eahXJ_>P4;53ne(Hpb*=6PKaxn)v+DttHD_BNf=UqwDks4+Cj5b zu+*MYBG8#5{#$!)G|8e#O=R*ZSsGH##&;Uy<2CvVx1|8Mor;& zuIM5$&T5Q1>RR&+cv5fPxMB@dtLMhtZjzEKT1D*^{^tl}_;Un4^|r$Bx^F}W1-aOu zxK|wg$W-EO+}5||wcBU+L;Tq-e^SaxJR?IdF!~qhp5(rS>#ZEPu&--%)20}J%NCkG*U_>(l`*ar$GPE3NPZ)uxy-% z)e$Ba@3PanfVv1Tc`cr8qv-%9U2Gw~A|_@PbYJClfo{z`W%uJvz!JIV9!b!Gs~s|Z zEl*MoRwP%cFWJRmy9QO87j5Agajf>K@wuxS@g83^3{X->uaGIapib+OM&xC3w5}?A zCfD~Ot?lIBN1d!EV*AGzLH@^X2)6zzK{go4-LanlUr`8)#-^pcc`kgVd$BLpG|&B> z1!h~I4X#%26*M$7^g4r$!DA8)rCa^xl&q}s3$D{AxpSv(;nF<%H{{w(pEMYi8LvZW z4II=~)wuNKOYbB;`CnhujL2S8m1E#O6nrD`T^CL2S?89O7e^R4KGo_c!}CWJ2L6j>*^;9dfTm6 zyEc5DUBA4c6wyRu1t?bfDhPF&(kAvb@qHV!8TOyjQ^t5dSC80;(TyO|8spPUtCEL> z^)VVX2uQxX{kc@JbtV3+S1TVI(=4ui4+X1*2WG7(3d1V{M>^ylyt3~Wz0-r%N&{G0 zT*o#OLsN8On~!Qn$Knje3hX(jqyr~aQwUDhU98sNCW|n2jF!}_rx$Y? z3D`-Qe#Za@LjaA#EvKXDT*r&GVVY%HC0Vht=tWAP+?pD-9qW}Rj}!nEg8wBN4i@f7 zEVzOyNKtkgBIRp~-7MDZhAz49lCtiSYPkc3S-R+S>K%jPdG|0ZO`K5OqFBRM zYpG>3VflqfvqVHmak-yqx?1T}1RO5-2msCTb_i8 zxnna?Pnig~kB;2eJD(+|X=`iq$u_C4c)*KiH%+4}L^sca%YaZ99yWrCUGE-E zVW!7`>vc6ekOD=Kcf+9}*J4C$nx6i;dTF!AOGS&`MfgoseGw(&MOenXWHr5w+0ER=Rw{lwB(wgxOZPHHI)gxQ^gWTe9|^`}dD;RV8=>IrAG<}|tuUuF&frtM^@n(vT@)E`wgHLag z4+g3|*?alDy)e;l>Jty!682(g)s{tA)y5RzSS4XDjY5vL!+p5jKIEB~*KL;9^4Kq= zlpoHMMvoO8X&45i{2~Rb*E9k(V^%E6k)oFn8+B#E6Z2%_$dtdB_oD|E4a4Rob;gM* zuuLnqsI&pOg$~j>_)c9;BQ(OcZIQUkRP;_C5yqEg+!fcoURW05NhZsp*L7g^-lReF*=T&PD3DjOo zA2ucj32ra^(A~ycEn?tTbwKG0g1*sS_0qjRWRB@wlSgV>K#xx~MGOn0T^U5CBKoF; zdG<+j)9{q1PpBT~8MGP4026UOsL(SLWR-}qYN;LYCW05#esPrg#eW?U0XQJxHIC^k zuwyI?0DMi38+Cgm{!p+fMEhVw6>B?{-= zOOuzc&MSrHviiKFzcV;MYF4BrBP<1fWW~`oAl7!gBacs$on?FC?Wi0nlG2R#m z3SJiAWc9H0tr>8_#URu(Pt*~mfN}H=nviHAmMsuzNcH6B1xnjgwN1jy42y`MLgkx0 zaV}GOg}dOK$5?jMn+mIe0>Kt;vrUyCaxL^$U3W%I%V%fh1c!xe(5#}Em550a9)r~V zp@77j+qeoAuT(ywnJ-6BHFpv8e%ouVtdMzv*_TQ1zP!Yx- zI0O4ku$7SUQqsC7O!#4xOZet8)32`kOLe_2C zLK?HK%kG(Lje3-xsHYCYG`)<6ZENxU(12ZYsgyglp;PKdz`m|9E}EqxOw`Hwl+dUH zK^O;ncTr&st0TzDA>`Yg0wuzw_mEz1f!wqx-r`9oHDxO0SP9{SXZj0%mW>E=U2Xg` z3D(f%VF9Xp*1Ac{_$?#R8lGNO(ad3{<@M<3t0Z-TrqsQ$8*ukn8U{!i8#tNFb2`9J zpboG6DLIgH*)SBsh656VoMDCz{DcxVV{d~i7)Zd2U7<34bLGfutLX*qv zb$gpwSYOvzMThIF&80;)Wm)n=6mR*=>!rsR~ku)~+=$=wCc#)mNtZTv))Rp|GHH>>r!5*qNH-@dy}UCt?GZBNE7 zLJqrBGDQ;~mvL++Gb7g56#_}e+m0xWrykLSNmxHa(K=&QwCr`U_|5cVc( z*`LG}T6yG0Ep-Dw)I{2nkv32D+c~67ruea1NEj<=tLVLmNFJ-RV_r<^d44#o7EwAC z9zFlHkuf5indW3NOFo9Kz99lCE3aoQh5Hz8Q*AgKvS+;>U_rB+QiXkXj?>kCB*UWR z)veAop($;&E+^-o(=+??=4V#z`Ufpa)!9`XzDD#Bi&#sa(TA(1Z(hhI4jHSHeAD_RD%dDjxMp)E`-OR)c#^~k-N-`@2@eF+BR!9ml>H83 z(-_k;VSpp^cE9FpVA-8Xadf!vGvU!aF&-t*3{9*4^zlA*G zCQFGdIG1-a?NGwrZkoiF<oF>C`R304f5){X$kT zhoz>OQ>;f@l#moA%-BgSOj+A)Q9UNgnPwWn$7VezpP$5&NqgaO$|*>DbXjPyT9)gN#ip2Bl?QG>MJM)O!~aydfau?ey6x%TjRHGdbg+5=Lqr+fqHa!19IJKfhNN8B-Tu_|w8)E? z)arTTA#7#gzK)!L41ku?jsnf4ry{yD>#5!5s*O5p`lKko^;IN>cv1+FIj*{_|9EkK z*a!S8O_Zz)v~LEt3q)~kMdTJyn=I_l^g6k(Gn&_aFplUJfaxj7_#bcXYJm!3FpytGTU+5AMQ#Y+c5)N*CsU=&18nbdqKr=t`4qcRP zOvk*a2dQCM*ZrQl=oJz-AI;x!|E&k*-^ewm@vTDy0OYUYOIC}(x?iae4P%4!M3LWp z5nHOFfq8OFB#VEEMQ?2&HuqruD-grI+$*5BBh@!?W=1^o`@Hw!(^YF(1b~VsLIO#r zT1f9FAt~jr1+2NOp#q4yKEysRm!7~kDsP*SoH%&VwKMW-%WnG1IHvugw&t{?XdtUq zsQYy;?%CPer^f;ts3q;2gm_6)`#n@TZ~&^5?|x~_z}Bd3g1&Tm86xk5-n-%3hqRw` z?i@@(;gGH4y19YN53~h*;;tmbX2oTndZTreybo)JdxEh06zk$_PM^s0I^Mnsd#&0# z=e45p&8nO>`(vK3_bgY6*BH;|u1%Ab58cf=laXG^O}3Y*ScE&{CHW4ePC&XQJSvaI ze3unB0sG*i{n>aK8)DCUz0}i~PXEi!v3R<{MRoMt@W7Mf0AHPeXL!oL7q= zU04OO+rz`dwBQa*qeHz}ShrN3c4|B=cu0IxoKKdlj6K#V&wMJYC@~}JU9_WeL`mq^ zP3n8)9R=PV1R6#eG)q}BXpmqfzh&ZBD4U&^1= zxy4D1wKg*qIQR`+?x-gy;Sr`pp!pkI5T4wRIE5Z^VR;c#hrn-a=0FxQ_oy;41HJnb*B80m~hoWYMGcgCloA7^vUad z;oIBDWa)A0O1^&6^Zm%qP800VcwFw{m~U+ER})sm^D#g8yy?e!dVn0X6g)Eu-f`)U z(f?922daP6OvL-AZ?Brc>e#zU4uw?ay@I~PzSh%r#1DLHX@UUENZmx`sOxkvmJuWUTquADCQ9b0Sgtmj9aQvM# z`hv6RXXm%pSV}GvZZ!HzSz9g|M3RP%+&s96DeF-cRSZ!qqb>^V;ZKDAM%8uw!pv}( zo@d6eDwlgoQTxD_myoQp%IqVIsaMci&A32;R#`W-eF-0xQR)xdOidB@Qjc32S0O*KjCf&%Gbzkl zs>vAa!M&H55ieyIJf{GWpD~qs5kT3Vh(Zy9uRZC}Torj1$CH?ouB5p3HU{@VqR60= zjv}&nit*~=ApTj)@D{QR%3f0ytFtaq9x*Ufy<~$jF16`PqVx%gR-b1Q9dmP6SAHX;3D<}2=P6`geOkr0rulGr@3 z9@QfzO}WdWrN2rDzrnIjs3{>P1X;xMFBrYo(hF}1q%p(^V2z(+?_Rf5R=3O*xQ^Js z8_03h5X~&+S5>kFhu~W#uJW_1 z(lPqjmNFGq*M%>g`br*B@D6@^#N&M zLDhyKO6E!H9=S~0S#CDZa!R@}fuB+A8s{itvY!5zid@lNDIrl!5-qrN{dr#@uS#*a zP9E_}qjJw<1fnwcc(ZHkx+w0R7bWp;QH56&7dS@#Mdm$$CTz~EtK zCp0R6NA$7pi`H6Y{YejUk2u=4WxhI{5i3z7HnKcA=9VgVgeF?CROdIcrBaC;hO#`y zUkUpdnE8A>Y6eNN5+7c~TWT7Rxg`UIE}Gu5`HfM(rh(|+JRUG&Er>df& z0VqglvE9FQm?4m9J}KGve}`L>9|*slw(<1YfeQ_gq& z+~Z}$VK9!QgjlY5yF7CGRYHw;m%Cz){exo~iakl38#N%(bIyf4PZm$OeNWLyFyVvI z$Uwv%QFP3dVdm$m5xlvUgW9`lOnZatnjW#FC|o-VM~Ax1&>D7h-7|~eqxW+@$YNn$ zH9xj(;l6?1tUu!Ner)YFCN@4a3t%>&s;<>~wu#1t;DNANqE^E`@j)`=8QTfRy1|c+ zbG?n9(%!hw5oB&^d<~(ss)V;`8P%CI*FKXskX&|K8I@w=i_Nc}D3F_blLrSyj@Ld( zTCgigS4_CW#?{I|4wo(iRcaFaQ{v)T2$>Q-+Pco$G>H|Ez3LoKve0rj4lCnM0nSSM zSRn;~I%oFjodb9td*|)cPF*5^`BLXNQKGeYdQJl03rJWyY=vEw=3x2_B-lPnDN5Qg zonIW1tM|zv_3Pe7Ka5Js&!i~~1l8it;o3S87Xr>+M-OM%e6UJK*~k-#=n+kEaD|P1 zs6~UAHb+@HQ5xp5@{xhNXm#`DP-JG5H6g^l5=(2IoECYl^i1)EmeS%wj?GHXoXc|> zrrevzxGbCNpB;&y>ac7+bvh)K}p zb;Wy9UmnH7ICDQ3On_IqhyYZR_>yU-{lGo+NiKYfT|3kyO#GcbCuU6h`muh?C`Hg| z>m-;-m(*aqlX|*UFo9LT)MfuKEsi373%a|s@H2!5Pm*ZXLOFStOkA`3Vrcuvyj8)J z$j5TBDYy*pby@I&-27hTd1o%nV_F&e{+U9*p$x7Wm< zcH{95vhlSJfog84%6vKEP4~zh>r-|2K6`~F3Q)kwq<}t{M{cPPSjR*kYhjso%nbJ! z5-g!eIuzMd1CWy;_B`p)L%^sj8^($;%y!?d)UTFN@g`-1c6>=E*y~)pGdG? zzovJv(~fhb0?nj^m^jr3qdCbL9G*MRAH4fu@6#)jKcValc(L1(36AavNwnE(HMr7c z90rt)Gq7?av#rirfMCNt=&Zm<(U#%w2)tPrn-i|m4I~Bwkv-XVfuF#WTBTHyLRZ{c zF+;?l#*2hx!WN2VN=5TaPr9v>T(-Li)-!^tO_nl$W&n>_+j2mPudjJ3Z%lgA-?`{r zn%`AB<10b9kw?d*xm^B;=aphFTj}^VwuzN}9A7sVVdQpf8H#cWNNXmc+^jgu0S&n- zR4TlLnf^x88b zgTGO9d8*T9w$WIG2-Z$$k0!h{H1+lF;R{A&DJwe4$Tm`h9I?=z<_e6Imm`OWG(NNTC-fw&d!*VLnt z4gpCgEx}}i)3Zn- zW*6!D4u@vipKUtgX6)K5OJx}7Oy(%Nkv}+&oh^H5bgk}2G{FO1RD$-vM6CZ3AlTMw4h|aZSP1_#l$L%mF}p*(-)eJcD;3rlNsdE zwI_(8f{9{1H$EjYKdd?yowTHF>&G+x;!SgW&&QmIl`QLs#8XhTQ1lCPJmV-g=c{T9 z7pbnTWt^g2Gvj^GlEQP4*t%;l3-hJY8y-f2vEDvcjL;zPHskF9Gv(GwKsH!ZVYtb5 zS%yM-bq>7v>p5n|35L%hr@%>d^n7fg!f6LQ0Jn4I+;H#D)aNAoyUv@`(o1Dh5#3G>htrH~c8xWrcUk+^IM z)!Fkt_gp$6{ooxlRDoN+Z&ciZYb4ajQv@8HM&I^lYA`Px2H=S+nNxU0S2l zKV%iJd;0obOj{JJhY=DEbyHRAFfrBlB9dB^wTTSKbEj(HxExOqp&OPKI1T%b9?QM| z8}iNZ{F4(=hy0osB=LKwhSfx)ogJ*FiJ}@7B)uSA&z^1H=53hzX6aqTFPUX;WAm1s z{Yx+sM(N68t#wINRSxwEgVU18nUqxT_SeXy5GtL8W;ZZ6EH+`63LB4- zJb3b30H^=_kA`nA2Zj%6*{1KP3Guu~grG#?;-85639>3FLziua1^V@<%%Oa_JJxA6 zKz!ybbXR)+cNV3IrxL!|Tpkog4AL=Gu^!F}tEh`uC8DM#9@TNe9iGBxn6k2Adaufr zg`-C}qz&9>*N9Hf-tO$b;(dv$z6cvxSIHU9DC0On^{Q-PM$v*Ylc`4lDhtaN_Kjuw zfY^>B)c572@(^f=GVk03wtbhG5L+xhw++i{2ztN7(&48CtK-4G(1@LG^ZJM^p@1)+ zVen}2Q9^%isdXbumy1TU;IAWOPu(88Cj-X2G8tj#@S%;w5WXmN$`s4_eNu$uJ488RFT=z7S6ZLKiKCG zfx!%OT+c(x)Y@+y@G28uULl_Zc6fO~RQRg~^UNQZSai1sw0!_Np;$zBu$-(hzGh!L z0nw=ho7RYVvzRZ*akbo#_QQ7$oy^dVBSE9{@aa2>{H*mYUjYxsNR3H_P&+K-%N1zl zpp|CeDeg`Q0ghG(QT0+EZkR&>3y*5XahG1LxPe`3jZz)qk#pYWy-{|fkhIfy=arav z;S@<^?2u^ec7wtrhjnp8Ml@A94+oXR<#`Z@g@x&V!oM`kLW$d}6coz#hzfB?WVc&n%b5|n$lZr!}a`8Vm7QPtS)3L{v^I86@ zO{C33Ywycu!zW)YGCFIbb0yr$L2+~QJh?jc^6xkt%9w|B5A;rg=am9oXjEl!z~gns zY_6>1>`CKM>45YkO-oENi{WM8)QdBQfNU-U=#~#H2}@;*0}8i&B_+%gFJ#^H=~&^^uEqMZ6IN~yi!H>Ca#}RrEcMjdpk{a0cdda-BRu7TWyXH}VJjzvFR)~|$NP5dI zF(u4V6r`wYTp$PG@)CNlvqbw$KQ#yvvAK@_t;;@IPx2*iuuC%lHQ4p2RXx(`Mf)Y%T2R+X5S@k z^!^Ybq%N&kUlQf8ux1d+eOjbxr{t_m^``2apmxg)~LEdpvk`7@F{_1MH%qhendCCYGh9K0q((>_%RcyU#pCA-RN-?J0by4*8Y^Vf3rC^Us2L5nUAL1>-8a-ObVW@UuwdH~*%k?m zr=m%PzL<--07GL5_VZ73DXNH$dj%RJQka%k=|)_LS(*oQ9BuOTu!P%o44GmUVdcD> z6c!0Ns*KnMV3(R+VaIpr=};wzx|~2}V;@aMgMSYki;)&_d#@0_f#RYma4=Z;oxLsm#NvmeE3f(EPd`99?XE9z- zH-x9m2ZA?OMVbgr(DjGHyfXA^zk`=MGesjbJjM#P0zPc6Htm2C@n!X-3=;R5s5uu> zDxlJ;6;luea$7pD>Jyna6u5HaM=i`SQY{wE9I|>~;{p6#!pzD@Ak@df+*$%bL@qt{ z#=7t7YPw2-PeWQZLCAizJp2vlz;4VK^K3Zy5(r~WyNB5l-Cw!zoI4dq9D1;6Wv01< zHCvTq)$knuA6;+V)n>!>XerUHhgVMf1`t8}dbkr~1IF6tC@4mj6EH6(ZLp{2kSWS)U(#OUXhcSR@ z{l@gG(V<%2s<9VxJThtyyv~dxpjEcGOuItL0*DAPc~VLTrQSOUyVB>~-ELge0sWi$ z*MJ!wtRc?)NB)&GyGWMWE(=ZoXEu}iGPAVuz8^5g7k>Ei(JY^W;ye>P;Rt4Nc2B{O ztV$edZ5UEOPS|H=(MSimV!U`Yo~rd-4f%KNDMbIUFk7%fwu}6r>avdMUD`0DlO;5O zq)#kLWCxN~6(^CcP4H6lv(L+o-ba5DVO)4pfdu)&8BUgE!Fv}+zG)umO*(UWC1q?* zl?*wWV-BExy+AYBJe?j~k9%RumT*#=L~A`dlc8%8T+mt%G32|0Heyg#EWUSN{8-t0 zL%*o4$o!^&BLBBP&x2>=uTrOGiv*oKvKVhm*8y+w<@Y6VU?KGm&C7<76R9;NkbAviY>-$ee*;@s)<~L2*BWo*)H#%Ht>2RQ$e@DL z9N3r`DzP^m)s{BmQJaLM(9GrM?}vKVGxN9Q+H}wMiSZE#sK0vx=EX;4OkN{F^?(Bi4;u#JEeVFhTJ z@B0kPvZ9F%%YSC_CLcDFhSj+Ow)n8Jm3$ zV5Pw;8$feZQ=qQgo+~hK(-}@_2q0J>PgK6CR2x1jEaufyK9tzRwkaSuaM_w8uU@xI z8s|wT>}|4$6~^;bN;qBe#T+mH(a*3$OkpL?!Pk3bjU1y+9|=k-!Ej!Ec zfW?EbB+df5szq=9pDX$KBRx|SABkmM{`=$@yZlyru&sx~axXKJ?(y=)Tc2GIz#0wf$!^=6?}d_l#r=gO;p59}Ma zUQ!}qR760*_WhGFOgw0;=VOdKW2JbSq5@>9g<7HAvPZ(hBQB*JTC$ImL3n3V!;)*& zH2)SJ2_T$FpgfMvMOn|$G)=?=%TfFwR~HRhI{f(jIZs^W19c!g=|7i;}ldRLvNsv$W!*`2NUVnb#{qyspE z@{`To4lofBSZX-Ks-~Is&y>4{LJ^Eh$&i+tfUs7&Kn`{%hp7v8k^&rJN zf>l(OmeKS#8>_me4klYcsqkZQVl1!V+(&OkiZX#f&+$*s=*m?XL`7b5Y0R4>NL_(# zzIf5@|Af7(0DmvNdwm$-wdin7*Tw0Qf5WMOa#F z*~xSgEWeojYb8mIN6(2G4gZ6X$vRl3gMoFVdaQ(ob)%{*X7$rt23pwPQD|^F@kAkN zfQjev8ei%RS+<#aL zDW62dEl)SicxhV@PaQb3W5tzFKDS>?kYY_{a(g4>ge-7KyecM)t~l=2wo-vf-+H+L(Mo=VoW!vPYIzo=6 zfziGHD%eONo);s_@N;%aoCg!xK|nP7Gr=?RJk0!Q$w7O_YGd+%2V+GdC#pZLp5nVl zRM{>iu&C-s08e#M)N%QS1B0Y~qnbA69yP@LzJWQd9KrvE8f@uWlyG?X>`v?6YsX*lac1S<2=NwGgkG$%9ykp6YZE28z*_--7>cN0LUwh@PAyQTnk=*XMZF-7?Y!)OHeg0wV(l?XodMLmW1KC5f;8UJG^=29K-=%pm5f*ZD3~`ebC+6 zPFuHf{-iZ;NXU2n@UPPUKHEOX{@>pahYhog?HLfmzDtcQoV;;LDeEIGA<_J)dPvF{ zo8II2%6>NRR}~Ap*`!v_KJN*C~Rqn1NKHWGC0$dWghVYuk?son=ATWkNJ_O zx^|+h1?C)kvMQJ}Pc}mH7im(psTHk;lS6r6sY10j!EzSPSZwp~gGKu0k(%RxX znEABd&?!5qvXCr5`otc#9;h*pMWLA*hxPmYZ~LRQ%>SvHc-IdR`A@ieo2|FAs_52f zOL{q{!=WJwT_Sqm)B$w)UH|Ko99UquJ=I+h*UHH;Vls?7hSu|H!f%j&@6~*z59(Wv zfRtA+et=`F((^a*n&Ie%DSI)zng}&oFyc_t-xiAO6?geW`9J=~|MSyw{Qnms{HG!3 z|2u1ay7>BdNo;Tbs4%!T57Xr=x(r4YwvIXb-8`k(JuU=0WZrsse(AX7`r`2@S~KAX zsmZ~ILAT9Uebn*nn!`rdMayxH6?y;GCzDECfBCt^d0q6==?JJE_)VH@JD_%ea6aNO zl|UMU(Er%(ZB(&IhA)EY6RCX>_Dt6bH+p&(h@a1%tADzMpD^AFnu;ClS?;UNK-iL_^q21sLXgV_nvPF>ytItNp2=@N2f9 z=A-a{>46lW6$!3tpbq8!pZAE}ysO?I8;h`C{CB>X1{d1f#Hcpknn*>06jyl9>q3$Y z8M4Od#pQ>{^M;3m|9Z0}3=zgQ^fTF8f1PnX=c>#m*^W_D@)DczmulEPDY=`W^SRzh zH(cs8&dm_;8qh_L?Ot36OSI)Lb{`)6Iq&r4%F@Kgpez~h`N$`>%y&8?AY@99cgO55ZH0F12jfXI2PCa!dTJTG6 zYMtG*xE{8D$<8*$aO_1eS6qq%Te(nt>SnB?C@@}Hqh%Y$^x1`Fv0F^9b}HSL1EtE6 z*XT;SqN?`_3;G!aCeOj1y_-^V6GcDUhL59qGV@T~ZDy+AylqPZ8d>8I{M9Rc+CXiv z$Tk$KtnUlxZvXyFOdgW6URwW-1R}e<&=8<-|EZPT^g^$I!30WgMOo{-d{^zfVwDS1l6;> zvO}sb`&PdWng{#yf{7%5tDO_M^6wRaO0xgzN%3s0=DD|(nRX}*&~COB5^E7E=goaf z{c!h(yw-yi-H(&~?+&8ILxzA~7re|5>5YWW@Fd zU)vO3?x^Y41>aMd=pQP5YX;5FN-M$4S8~{eX?$}FpBgTr{@@q*eWw46U5|ngw5II^Fx{ zTENLG!W2YRWp}txOGh6r)A!-53mH4Ixi1Z{U(amhTr@XY9mXj1JZw-fJU#XY1cRDMfc-RPUX2ablkSk)wEOE zw&H^p8>@FCw*}bBrk`Q`^-p$<$~zGmypSvG_qblD*8g4Yk)fqlhHwZ!uT%V}0^}a6 zj=nCwFCHE*OZe=K42Y)1@F?>d<@OzJ&@+q0jx*4!z8-DjvhSZw{1jloP0qShqR>si zOhRg~-njEKk?gaX-P!9pj9kA!cawB>e>$MT&GWJhT8A-UiQxZR>{THm8LKD0+&Y6l zX|xv!->*46K4A-v(9C7h#ZwDBUg8<67uH4@lOEj`9%9 z7t^mjd-en&PV$*bvQmB(bDyY{pO>U#j16LH$RgIL0+d`XS zX8rGSEQ>mSXw}djPHAAfEE^n{9#N`zmcl_<%w3+Z2Av%AF1C|aQ2ml8Fh+6WTvxFc zVDQ_l)5U5hrx7NWiEmB^X$@D4Vpl82CcvCAI?s#CT92&v7?k$D)sxw`AnMLupR^}m zbT>!30{spbJHy5ELzC@!g)pK5yy|KtXwLKV*t0L}Y%H3U|Zd^yFICa#vZB~6t9 z>x5)07rboVhjKnOaS`KjBODQlK#oWn@jZnv%g=xz z{XfEJ7?>en!`QZWfisNhW>k&w;@@r;kDw$i$wMQ1y3>k&rH|yk-A)j^w)z{KIZ+-N zN*Z!6u-R{zH2J9bd8!`nUj2O~orLcmza6VvZA)VEXA*XIYRU=0a2ne;9Ad8ruWVsW zH~N9~Pg14)Cq*DxId6B`^a}48IZtPj#@lM~srnC0-P&=-Fw2W%uE`sV1m(lm>cNkQ zZP4x~cdWUqCz1fio40Igl=<|`Fp2YL)v`JJzpBIGfQ|yfe3DwCdpwAqy%*8=vF~g0 ztw8MZo!N+!Zp3YwvloArFa`u5o2fU<62kv+V1M5rV<6j=l~}7#&d4_XG>zLhyMF33 zR|L}?f>XJmV>r*Len8G{h`)!oFXDm>x=EIU+q&kP7NIt?p^vA`S@H!8(!3>e5{>*y zq2&D}LXfH!w@}H%$bM=iOCS>~g%MM{UD{p@+0D}*he?m0UJ!(9A!rMVt>qWZgM&!$ z2%LAiX@j>eHcED*+h_22tzGO10yA%P@5QEMbdYY7C7uh^%y-#*)~1$(9P@09WxH>f zobkk(?S=)J4QiDy(%qkKvih_~!Dfn$^W0=VHP4hJBLYXx~k#|DXFN@=20= zEz{R}&77r6=$;WhXaoookEV$Dg|yXVS$nkVV?OPxY{w z!mNSvXc~!z9AkOYbsx5e-*~x@1>(|pli!?#{qjF23trffDbGmR#8JEtxh!N`ibmDx zwt7s5ckEJg$1n=%>Vb zS-Bf*jw~FD)4jSsf7?K$?=h!7vqgu`)gJNuesgEhcGfL`E7B+IAB}38&^&ITFgINy~gpGFLs@H(jm?C*qWIdelY`6+*hx;I-iiwAulvmomD z1Y^^+}Ik0(VO|hx!jJ5pjeCCW`tY}V}drUOzVYTK9RMp1k z<~Om$T5`9nUuNkl+`96lJ(js84|H^KWu1M$#31&$VK?6Sor>r?mD}&iCt0T((b#(T zbN+s}4Ay0M(fIVFid0J2nD-NtL~dgvn9cQ@eJW+vy|()=SRjiH2uN`iX)&&qQ=ReN24Wp zd*$?z1FYi~WK@hd^D6u)^rXaFv^KqDLaHf34?fLV*OLENoA@7Jc9epZZYJ)4Qrg+6 z)_?lZ;ZisLH+>aq3>tHWi>?INVxrKsmXm85tR@;JYd#O{5(j2y4D(2-0&7 zjFr5{qD%Zoh^`Rv$n9ey@u3hROb8U-K$f;3I$Go#QQh%RT+IWK8s_E^2K5)GXZ+~y zmR57DL||GBQ!r`x>CC{iztD@y1H7K?+60WG8TPC~?5(ew{5-QeTm!A3vw zU78gs@&)np0>@GP;q$eF7SD;q?_Lr;T!Yy`uFtK>qnIjxhG8Gk=zjZ)K){EovtK7Z zw=F^44We+PFYu(LFKuQQkAiQe^R7o+WCGTpInWg@*m^!R`U);R&!I50A}o!t;>H>8 zWNh7upAv}m_VHpgQ5lqjl#VpmG$BnvGgohU68vIr@sZ|MU&V&0WPz4NnFYz>mGDy{ zI=&ll`o9u?#0^ch1kf8-LS<{%u)urQh4!y$0Y^NN=j>b=l4Ih_(BbMahJXmk!@EbptG6GVqcS#axqNr% zcG{%h9gB7K3kj_b)Lcsb0g@59K_{0xki=2;Jc{Ll9$J|=(E!6LV)8XGn!J= zwX022X{FsHjM5nZ!(~ItNY=%OR#g{7sCxA?cAyjMXNIE-L{cUlDT|>DacAH)M4NE| zmQyM2c=-~&Praf21&mp@`p>POyK-f19gHg@@?7$PAEI{GN!Z!yNTn4zAs3V=a*!&~ z2UEwr+y`tJ|J_nq;H?rO#Y%Vz^*#P(4F#V!)i8DHW{tSJ~6+uP-nd2a?MYazB>A_A2c+k zlo1nquAcFJKs@9Y^s#Y+zWVMtRQ%-S!^@2|9J$~v0(znE<^1NOVF@Pt(JPYz9VxiV z^y^Y*OrVv&Eq74T8r1%<@GKG6YV1xePir2o%JF)$w&^-q4%8!Wc*6qF9`B!hv6!{W zlxf2Ad@%PVaP!3}UU;A$CtNXFtj06j5?N;>*404O{B+L_YaE{pDUiUxoGPF& z4hV9q1`D>3Kzc0<4}7>7mjVJi`CrpoPk)1=TGu6I=2D22 z;_H?AZhv6bWcAceBQQsI0n5O$a?h=<=KXAzV zYZ7mlI_jO`Hg!vCLcI5o1sW4)p1M!ImrpM;4UTtF)*G}Q#J#RSa$O@ayos-n%J1`r|~#0p0oeFeuDA+W)#GiDMwH z=8QZk_@uVzdKsFc3o@x5bri${!lB@@IzEvPr5OM zesK0)Hg};a=7A`3XWA5mg+?inTF`W6cWbmCd`F32vZ@_@xntRwlNfP<`I~p$n`?U3E70QFGPzOCvqxXB$`1XhIO#ZVOUR#KO4gl_+$)@I3S+D2>Nf^yl2mS}~HRF3S|M$Ezk|)g(KEn-4tvi3$T77onuY20pJZd5- zpt9nai@)zK<-pw9x4C3TQde?G$g%y-E~85OG=D(Q_y0MmdEn|WS2y@XjGbp-YiSNj zf<3*lIRfLf%*^s;=V>g~yV@B04DQ6H2ojT$w1WojO(08~G zA68P9KqQh^siC9sYMZ0A=+8nN+SLIk81yxBvrmELzIeaoF)3Z`X_0yWjbn7LFZyv; zGlrbzB?+5$ko}5&6ZVDG9S~}-)SAF~<6d<=oVZ2fu;10uqIOZ-&)xuv6e5|?y%9^Q zUAi+43VLT~RfpB!h^X=D{?@3P+eZ)9Ny#0=opgtBol1^CN6RB8@CO#4_AixRU-!TfR#4FBv#H+gROMaR}z6p9Bln+Hh0G{c5yKllODP@QOUkJe^mj?V-G<~Fy2HCgGe zBv(Jk``dlVz$p>*Ib(aEwk?}5l=^-vd9`mX|9Gjr38pC(p1;?FN% zmG52M=cC=0=e8UpIkeH>OHa-lj&+E?I14%XO!121*NZj%BWI;wQ=alL1p?FFd+Otz zzAb)&msTF+<5b9ALDRE;_L$$SF96x~?r^#qmcN0t-x3nrJ&4U^RPU5tijF=tC95`y znCG`xb@Z2Y@t}d@LI==QKt}eW|Ku_vkJ@Y8-jrjaY+!me&sikYPOoQM%ov|y+v-|8 zmNSEE0r}~h3&s=~60n;e2UTb9vW0?^0?FM=A&81Xd~dK>!a3UiGu^QT0Ut+JtoboKenKqmW7YQ5hk=_2_q#{XNuh1m zYZb?xw8`=#SmEwc)pm^uO7kXPWPX|L63*{``eZa-t5{8sITwE))^S z-gCap&MmB9ktG_+fnw9^aCn3_C(-L+!=KgVowL>3AG~9xn9^QFu!A^0qw(p0eqE!0 zs(l^EY}#LV0DfCHA7j}!4$dCBg@WLYc$vEYNb$%w2gX9h<(@tX0qKv&C!(4G5y)t&7K^)C4J zMye`ytON@ZWF)e}+ zfF}hhDg8A&qYO}lbBl18VW2OTKX^so@~=Tupnkx|aP%EeBdVsj`RCa;xAK=W=dP3I z!M?B+n(;4HE3uK-iR*F}8u)0MT`BKq$Qy@}*18pvQ6FVr|0&*_;=@28Ar@#OyTjI))N+do3O@a(NU$;0XG81hhS!No7v%2l{IN!+ z!18$-%Kuh5OpL0m#^q(Te#hU=F&|UjK1LIcxr^;Z;OYK&>z1I$Co#hxd4BuLw{7ki z1NlhkbFQExax#kOzJ9V3=xu5HZZs)<`E)PJNx49YY?1pe0fm|;mTVA z_%r97Q&xDs){3!C!wfcOIeUxY4#7!SaK3s$-Q!TEY0S2r3?aNdB*fxnruD>fWK{v3 z7F;%la4n0%96w7979^<{T~Z)29lbmvGI|Tw&hCm{qn$DjzDyRV z#Zte&x>WQ2ZfMK<2EZ{9S{ycfn^N!%OyZ7s-?is;k1$r5z-|R?VNJu+ImGjSC<~8I z;0e<*c5Ie8vPHQ;X;0eW$q}mj5a-0OQKYP1_y>fbkRFpeWsMav+ zN-QxwHirAm=bB{1$qUut9x^E6E`X~3hdxW-(90WPA$6ga0B&#DOR?dr9du>S!uPmTE)j4 zY^+Qg-WEK_nQE-4iFXWCNiJSIfe#1?voA%Lw=S#JVw=^%Ely`fD(pWA2W=8e$|vsb zJN?RU$PLSN&a{|A{r+~u-c?F`B<3D@5fsW*)nbF-UghB(>*x^#8w4E~e}CLmEk8V9|Qr^~)Kdg-Ykp`Kk^{1OK!3>p0-*_4cp z-;*pc0O8dI`dew=W9<0}aO_yA4LsBvQ>`@0we&z7`jt~LNVCu^ovV019Z0ItAz-99 zDggH-1lNG*YhbwwI^I})n`Y(#k6vzUs=%=_ua3&cM9)rHU32iqGi|p-X;pgnioh#N zY;RsVt>1C&y)v_}=51;{m(GR;To27@J=`z!c>zlJB4@$A^E*`KJ)EF;7j<3@zKV}0 zO5n(`ps~wulLy)f>cZm8H*3?^RGHumPFs0TZ}sT~cs^e?_iq%Vy-Y+6We>b4?zD6K z)0sF@Yd_dAZmD)uKau!Nk~*TFQ!q=FyrWYc3JPBibx>*8&ne`%6ow&2^aF~gKX~2U-iI&o9Cm~9H@cGHD#q0a~&kF&2cEJfgd<4 zFrU@jzHs~>!<+6VTb9g9$%CB&7D%wwa12?Zd;n3d202I ztag88AH=);mAGEl5k*}fy>!O`^BaW>W~8Llp7O}?l1Jp3Zw?o&utI;4xcwV0OXB6& zTpORTArl*R=k~R~DZi zdiOH4TgPCd_QGSj*6dXOE%gq?%P z4Re&A=UiYc<`Jw2V^hGTH__=xybKhwQayw8VCxzh*fpRUT;BW4q9GOCx+A^rb4`A= z)P9_wCJK0~?9iHzSpAGsJPf(osdqU`=`DL#9nXLp;K-VIS^w}`yfP+du@TH3MD9U-e#y%{>|{DrZ>JnP=jfNaej?lC&B@%IB^(g5*>;3MY$b}+yrTJ!GBQSEm{T2%UT@Vh)BVFk8@y;?i4bB9f_BcNR+^KWQ=M7I!55 z>ic1#vs~BfsIro)jm9L(Hq{Hx^*6bOz1YXG7fn<<1@ige#OFMmM{fIWMFLqvh4B$Q zC($HZO%L3Tq3ng;&F&=N~+M!lK)WGVfV^RgFhuU ze|Mp+8DvL}H%If%+0%Lif{4ZnxN}jhST=iI5LZLsLj`Ci3cVGVz8L8PL|EsD)l>>} zL*0_U4}ojNI*FhtFWSO_QBugsN)%4Ei%Wq*WB8cFSP4W)}77w^Nl4ZcHt=6=-0)ax7Cka%CXAyUeqk z{n(lb&I0^mwMi&ZQ{zZIAvctdu8UPEHVaTL>x>wm3=KH=EGjLH5by z8?Y@akUb8cjg%CZb@u&cASZCoR@{nZ`_AUbA|R_NSBL<7HDt@A=Bq|}T)<;;rhU#y zsv)9X)`so==1rx3z|Hw3Q!Tvl@q*nAaZP&sS7TBoO=n_O!GB`@fiJqi8bqifi`}Zw zXT>Q`K>`szc%xS3IJG|deKjRfKE_eMQFLODdzjO2PBhq$Gvm(2ZbH);N$pbBnEIOf zAR4GI!V|J-yWplLNWJvC2zo}x4K((^a*hMYjF z#MGDk@7@jbYy_ts4^-&@eaZPa;jvjWD!uG|kh++VfWP%wHlO9kU-Gh^~2#RuF-27%%EHKnxw9K+h(E>XBs@Z?gJxFXBM4OREhmz zr_VoKLq=FwZ|bbtDu3Kis83^vt|YKBpZscnYI!?4zym zxitJVbmM+qFK_Cyw6w6gASO}g%t>N%b8|PWxx_AwO9(Czd{qjV`-MI@9`B8JABtv4=N;0a&m zkVb&R<%{ELiAu<9c|mQ+dQNId_M4W6zoaBTl2T|LypJ~A#|ku3Ig+jT9>!=7dWM~k z+abN{IXZO991jDXW4VwHRM9RQEK6a8HCkS!cLf^s#h` ze9*6*Kanvn?A#=G)n3E3^Rj>ibR|7xbv4R@bmjY+9|c(6N#HC8fU@h?va`nq z&(_vsn{JnaklJA5>kOY^e+lcq1&;zqR_3}ZXYW)(RCw=w{jY9?2T3(7TdTha)%_`! z3~pI)Gj6#gl@Z~^vX}u!?T}a-W2*9BZvttfchK7`==-9k3*1oZ;*-}0_iH`2b8L>z zE*qQSwbmEvK{g%fwI#{#(^i|&sJPWHI>uAgqwWYXD!7KUZxFN2K=1R8#`tyXkp&-~ z4fpuk{ntH2YMWbSfhR5rXo zL#kQuHxr5L(m2q;i9^E|d-3(_V>;8s<`3+abMgZQR$;4*Iv}Pd%KUrJFLP!H!BFz~ zrbD&)fp#vu_pY=46dWs+%VV@~(Xc0cEgJ}dxIx`!q>lIdUa`ag3X6MYB2N8}dj8kO z1!5uW&|fuc-d5w26=IQtG0@Y3aY_V?YE0w_E#YyA5l=_qq3}ot96WF1nP3!PV+?mQW@1nIExr?xG zgTlj8iwlBh$LyDKiG~5`vm+84@n?Z{H>?>A8JLpb!6C=Dadl7EdYjf5LcnJH&iDrg zP6cCCPma)4?K82;zK1->2WJ7PGTkM0-F$*$3!HR`-AM`8LJFOy(P*0RkPS|UKjKYOfEhaZ`dJROjO1%U}q!>$i+Y8>TyQE&*Km3T*s;Ag=kLb7MDRcZfkH4-X$bZ3u%onRQMl|gW0?pTJ zCQUAqf0Ryb;`E731a+Gmrb=u$^46a(M=Ik-IXnwLcgec<1O+>e6({%?A9z^h=wNfv zO?w^y2{7)szIbnv5+nEB0x74cfd*%Lw3=Dhu3fHaQDZ;iZ5T++204|l%o|L#le#us zfzWR_6gSE7A|hG_$g7<_3h1z?ISn;zdp6tUbQvzvYE`C@C$xprfC{M9%#gBUhRosj z*!GLuD~skcMvlTmK>jzz0NZKoQ&bW`JI~P`ZhO$IF3Xsu+XXX>M(&s&r0oJR%r#3L zu)E(4mMtrSx*8sKEN4fiVDt(YG~oG?UW~&GQ_TX9oQnGC*GsO$?C!JCb&7+`J9##) zk1mcsG6X;bq7nyMMs>DGyj;3h)rt4kgPx1Fx@Iz<1>8^kJ%elr4I+eNb)V?dRQGF`-p4940HTFK*k9FGQSG*Nh zuIZg{QcI{uS)=NFTA4y;)I!o_fY`bVwfp5Y?e}hQ2K{SA#R%AHZy61eRA&*pWeQq$#3oJcq(D`E@z6h$)nM}Ei`j4{ zWsZ}$@fmb_Y4MvNa>23ttNEUti-QBHRq8yU0n6zVy~0-(YU7r$U9mdefO7wySGnnc zP#1Lgz9cS{ZTV>gDlqGI8HWNW^XkB`21h+`HXEQg(gw%v_O5|R0K-96tUdfi1$tpbS9swouy~7oV}Zc$q&k^ z-mv8vp53(-@!$4jLfspx7@S#PZsZbAmW#*vEaBWX#LXa6ZLAagfEH z=RltQ=Rb`*%XgMcVJZjRXC*KZ_@#bsI*Ny$3vH!j;(K;~U#`f!AQVGaat|7+Bv(t1 zxB9-rFXtDx<-K#y(Szk@sb=v^Af8|ZFI>{HgnT-ks*kRbkm603GsNg}{9_jPOpsXNo2Vuiy z*XlA!o&*U-zAMg?Q|Wow3o1AggG|+;!h%cQX1=I@m&Rkh=WyqQ^Z?Xk`{XtGsZe%^ znB)g9SDr3X`SgXY!y3hsf$cTgE;j~f%U?U9W1Cu2p!YH+wWk@@7ozu<#`&g}Ud%xz zg%pm?@biMqIeTW6weM^D-#R29>tYd?fF*g6I61aF^j@qf(S8Ms;zGnlR7J>Bs|5HGn`yBd=lH!kH!@~XF7kS-gnDYMW`tekoNffKf) z<5Z4IA5e1-)OapnC6&&pB>`-)eR!rW)x)xNCyCObtGClr6L-qtF~m>_iHVrMat1M0 zfkh=B%a2HUJoHGMtIzFd;z6x3>(fP^H$dq{a;$sg5FCKK+pCE=6;ZLbxfGM8Dn8xy zQqGxv2{)FXhz81)^#ATkqz($LRe1 z#VV`jJlN|N{*H9G=coH+#_FUlEIEuU03Dn{A0l77Uzpw~YO1*px$x)+{x7oLGODev z>l(f)lu`<`rMO){3&q_bv_PSFDXziYHF%2zhf>_3xI=IVNsD`mdvJm$I0Son?%vP% zzIVKT&p2l!XYaGunsdoq1jm1pW?dqF3c`7&zodAPY8QjOXLWR!y@X@y?JkRQOQlF^ zWrVoI#Pr$8sx1R`iVi%V4)A??D)|*1&mWA!nf&4H$`K}o$Y(bVZsmPu=DBR`R1Uo5 z2(e;vwUv8~LTuJImy{N>`%ny~Snt-U?HpUAKxm)ClWn*v*y_%V0lg&E3A(S1rW=%a z$l_X7Jb%4xd!#b6S7&OtF8}2@m1aUm-uJi7?=1F$?Q29`qdy0C)fcg5G}p1=DRC5+ z9Y&cL(z=kvzI;U^tun|JRhWX&-Z7w|l9Lq!?i@3SABt{;JA5Z5{LrXFvoN$7)q;)c z7u}h}qZTKX(J*N_xYW_s`sCiFr}c#8N-39PN=~qjv-CLdcsTA$Y^^k*&R&CwqTlNj z2xq)|0RAY4&mZfg!aWP^a0nWQ)#E@rwm+fvwRL`dkTWzc^rg0%qJx?+E`zGezlLca zlpkzI{08+3&5zL(jR?yu$AhtZ4<%g0d|Xq5#k)yLAJfH6Oio{8i-H#FjRl{~vdoV@2n!x`7S8!txKfGPF=rU5 z?$NVplK##}h?~3u;*I@T9>VFM&WUkValuY(3N}W-MpmDWfLX7cb0I*MtGdnyWEMGq z4?(U6Q~O05{nRl!Vch^Ri}VEE;g>0$*&$7}F%7npEHXLnp9gGE#nh5laW4$-$7tb* zmT-fK@23gUYK^Q6@NAak#05iO6;dP4wOts9#^q<$m=#dCkP+&~yZtWxAhB|jk%o!& z%&x<)5Qln)FSkw&Lf^-|yHgNe4TZ1YI!-od>-TW}`KBDfdP3v=dh#_YXJaVhG*bu) z;*7D_-R7h2XV0DW$Snd7oV+(6;#j#?J0Hh!=GzhWq;vlzKh0D)ax--i5|;3%Ii@VC zPyYE>Wj^Gr)j?=Xg|q!@jw@iy(N5pOh;1bM-`4h#G>5UzK$nPL##Wh09_AFFM35$B z?IBM{cX1Q!{p7myS-sF;l7}T(N#L73lew#>|FTp$%kP}{`31T^&Wj)oUnH?#5-Kmx2wq3xSJ-0EPZFlZu1^jVf?{WEf zOl<>i0M!@kNZciVa zBnWX6A>Yb%JUF|TkKy?mT{(s^Xn?*wVJk#K9~d6xO3l%E`A2t*A3J|>tWwJ-o|vDO zLXmRLUpFnk8p-{Uwb6*gJRNM4pXV@5SNk(TKd5<{*Ts2_TAI9w;x6-syPr!orcadgDbG~Y%L7wfpF7C2+Ib?&I3m{kCiJunZMh^WivHadE>1$2 z@0;!NZ;;`MQp(u75TwtscQB5)aK4oz`)oT=+Lbxx*aY5a0=$&d+Tro+0=}ux6jIt~ zGrx8f4{F$V{pEwU^#m#uVkiN6ySwG`r~bk7(YM{xib;sU5j2LNUIIPlY0T>-;5)v4 zPfZg3OHGi1`uPT1w)`FwlQv;JflW{ctt%)^3@n=W-QAS+9nkx9-m+TIpc1t>X;9fU zSp^SxrCnKixV&hHu66ZYQD9sv$I2LmsdZ!x+XY1o|@9tw$E~0 zO`2b7?c1PBkAofgiRMeA=5zFM=TFodpzW7N4X~UGgDZ6ov?}UJW3zOft=d*=IlAw% zk}-*&YaHq1UZK%zJCVGj)53`dD2VN9mJ1<_<^%CYfleCnzx=5F;D zjyh)s%EgHgXwY<8#IoJK3{9aEa^p~bmBp}<_2OsS&JV7N3m}p9zW2FeUL^D0A0~0A z*6P~YxR1_uXz!F+rph+MpgJfyX3(&9jz->m5LYmwyd=MfH3>rus}OB@2DHG~@myqL zO!j9vy522u2R5RU(G|hS63KgJ|c;m`mt7H)vS3)@F z%Er&vZT(aq6YGER_viZh@@IL8wt6D*K(-ljpE?XyAr6b6;o(^~7^Fc?msIhlB$96& zE80lwqu3=kGB;>i6F7u+_$stwSl@mULJRJyPX!}NhabyWxnFC!(92AJR#zDfHLTF# z$vQ^|WZxb)63<<7Mn9v-eGDd+9?|e)h$;{G}x|^22MUICKd9j!j;x*0fo`&Hx zdE~ifwALtgHyBI=nDMzlXDyr^un(OZqURX{WiNX%vw`Vr%I8~=v86>&kmSfQ-KI-I zulFYkT1Ou7n&k)B8Cd7Q;|o0WXM2@PNG6qdypg5q;nzd6%DI!8enxR~EOlJV0sRJ8 z{8;JH$1Cmz|7@dyR#2{{|D2$BcW}?zp)zOQeN67qF1MeFbK(b=<c|*i7PszW7P?Lw#OV#t`$Ckm_xRz-ay;HAMWqCzjS~7!Xh4{@^sYDV;G}S=)Y@EB9Km5RzAR@ z*1(?svj7@dMtPHAxocZes--?xw$MQE3K=12xT5uRv7lqz9#6EZwN9kf+Cxk~aR>$qG!o&&vpnEqlv?Cj&B5y?+aCKD+W z+onErw3Tmf5}lN=|LZYMp1pm@A9ud>0YRI55o-RWDrcc+)y@9Y)#4CqM$PpdH~T-Y z^wcF^{y*>3ss+;i@<8`P^W2rOpf~^0IbDZU=fmdDKyQ&mHkSO&F-IlC3f<-AkOsTy z+J&*y*-n`0QO~EN!76yx{gN6Q>N2V6gAY3!L6PPB*xE&z%JkJ#n&#HlRgv>Yx5oV7 zv~sRLw^vU1;m@2qT`vO~f$#E9SKj_z!e*maNId%1a!wLtQWCSvLT^lWQO4{R`s-}H z{PSCvM=q3|n5x79#cv>*$W@t0z3GuTC?B=at;CI_$EJ=7-bV$I&TOA7nt)`?fo)cu zo{CfPwdNH_fTUTfzkH-1{=+Bj1S!lz#%R*e#)EjRr4ANC;B8>s1JDi_^dSS3tNq!%$K!>1YIyzNF*zy6&I46am$d$SfLq%W0P(|-(UVavZP@_|Atl(Ql_2uza9@R^&vTkinaHrkk)>VPJA-;7ScUO zTAhGnuCXomzsoQDcllF%O+r22sZD==h5Ux8DtO({8dRT9?woca?vzHuRIVs~T$OzB zmBMctPKI#g8jlO6&Jk-lJ>6!PNS|~Mw!Q5BXAgcyB!qZYP*IS&IDR_>hZ**anET%~ zu5t?w-TlLOKNQFr$wO(@{ONxJ3L$Sttf&~6HA}>%fJ+05#|$2lyO}vE2)N&{a7x|! zj_gFdzb%eBuq|{R`o+U6-OfJgCsRy*RA6xYX^Ws^#^l|d?GA7FJbz5eohwmx1lA?d zbt|~{Vm+8b_#^*N$vaC%%j( zr6jCqkmlE2FK4nG$n#mW;~V-T_MhOH-5gd^Ty#@GEnP_c9erk#I@+*$eaM(uYOkq} zWS?h7H%R~5YWMWNcuYUc>#YTeMj^Q7H`XrOAI%26m!sscF|4ZVR1KWBC(kI>5ke9{=F!+{nJZ_2rx5=s#* zT=z+kBc*eMN*(A>{Jf*C$NhhcD!o=zi-zR>I_+99X^)Mj(Pw|pbXC;fWw`=-Sqw;-Q+L_@{uk?qd9-=u#sYuPeo)`3 zN{b|+wb)*7;^F08ZGzwIZ>$K(4m6`umuXb$0-Pqj*X=V(l&(1V&XRL^_h^go(UvY( zX2>n4e;vLr%OdVZOs4Md>VX7thcX_%MhL}ArRTgGkI zoj@g#1C`Or%?hskbc*f&K+6AYH~i^e4|PC+Ow!0L4L5H)oc6owemrzm@L9vaQ`%?I zCM-uBS}xX!?YHzhjHY59aQmbN_*zdV)k-gt@$)FXXdalCx@QK6Zg%*`lWOl`FZty~ z4%^S|dqG4Druai z?8Wu-Kn%2fLA31zk)MqSb@XB1c<&5W?kAqSXcP(PLn{#_Bqhs0#*&LXEjHCl{K1)` z$;675X6|*qb=h8-0vicDPnw2Fdt7a2nXk|0W8P>39aT@pZk5uG7#mwLRmqTg8sQ~x zD!N%}dUnD1i4%i?pIW@vi>1(u%c_x3ult9ebiHP^)BTGe4%PpQe`+yRAxHPd=_^x! z#E2O)H)u$Ow_eh&Ol`NLC@Hfv*N%9Fx(oQ0-XPm@HFX_wI+N3U1C;qg46QPr%*b5bp=kPSQ%X4+A zK3nqqJ~Mqp#dYpLa2wg9*K8ovscCuv4A20l(ZxjQ+{Sl5-ost|umMC!|7uBe`#CMT{g{bMRe$jJn|*@R0awQc z(^W>*!x?=hYR5fWZR)PQ6x#LvUaM92+<*Av?fEGpN1bRlH;9&|hf#}OzT5%PkMvb7 z)C=Iq3Sp>*MMtZG2geMGBQ3=JJrTpBVTUC0v$bcN7q@A@LuB3M1~CB@yD z{gM7*LQ4S|bi?eaH;XjSsjp~~?~@Kw>S>;t9!qRjDof`e>9lEmbaWSJ%=yWpSP(s( zlbmn9VI|p zi#KN{xzRX_jzabI4qocpTVB?lYVb^Cn%xA^akp+OgNL&UGZ2aW<1xN*9k=)7L++W@bXgP?PnuY; z&3F;F$pY_LNT`dwlkjgUt{umiN)F}C^~nCA)I9d-A#ZjA{+vs<;(I|QoWX0v_bGR@ z<0ECqf6q1#nsIs(kl2}5f8FuIKmVl=-t+dAMMh-8hP3?F>5dtiYI=EzrFOcq6s5e6}{9+y07HVdk zqt|d~@cs$?>v*#0{}a{tfjOWA{|`L^*LKgPqmanHw>Kqsl?C4;2Xnqo3)bKcWl$SfQe+fO+7w;x1fNbyJXHPHu2%)Te1*J;tlzpmFW<+XvHu-7*N~gxd-?XK%3hbL)AYsB zWS+p-Hz{q7v7hh5cG_2VN~UGj;LgNW6Po;hbcmV5wsn-)mxI8%6ZmT(S7qcUNeBN* zR6ys>)vVUUsiyl{dRiYWNo>|jJf7huwXuZJ>!tJZYuvG&6SI&Pt0~I=7p0yJ@zLep zkKq}r1-v&^#wm=kxKDWu;Q#jOc?X7#=bTIWu7M1@-EXs0Ui?H|t`8g}ZXw{7!OV$QfUpR-iVsv*o;kl7Ubi zWBG<%QlLtb49IWzk2c*h?22yv8}7kM_8nkwkdFPW5>Tq#B%V*$7!c{@1P^XQUviyG z+;MWD`^J?=Z4J0^aLIVD7R8#^;6%=M{^yt(J_N6c_JgDbg7JPl^ZVwo=F?bT&`EzW zs0cAGj{W5?e%+TpLsy*}$^Q_yy_-t1wT3_MFy*xe$!ogwPQJL-)}S>>rYUOk z!Gg&716p2ha4$zR9{ZGRPz>eV=N!5YTDb28`dZF=W}SsrZ@stw9tM2*RAU z7Deq%8(KmA;k5MDqC)Enc;tzWHY~%9izr>ZN4iLrXVaN56pLu-fzYVSyX@%ou!G*0 zqFoMz0z&8>uF2mAO&tJS`>Or+UVFXxMOqh3sGnR@c#|3%_7*?3JH?CYZ(x^1-0oiF zE?~M37Ns(1I%%%^rd=7EghoRm#2we2-sZqjlm%8Q%On1jkn0#yE5gQQpcYise3AemAd0PjWbnDP?EZft*4J<2^a6NfGv-I|$&x|x52y{CGm#p`j& z23=X}XncLstimdcVM6QQx699AH)G8M&2LH>~^2YWZ&(9WKC4n~S~e_y=pWy9n>|uPcvC+3=P`Qy;`e>5`@> zJO1Qq9Ld3~U_Ym$2`C}bf)MvhpQ-G@sW>}n!`E%o6nw3DR<<-D5u9u|EQI+@6pMY`8hsk25V!phc zS|LB&9?h|=EOMzDTD+{K0-%n+e&QW;G$(pMP|Tja)?3?ID^X5YsHv^o?}7_!BznW& zHe0x_D$`=jDi(@z_7$X2*mPw-abtNi6hN--6d3vT5Ub|njmyOAkt9jAMnIfyr>XD- zBf5}W(Rr-#QphxRT4nef%iYT2gGZO69dTbhZb4${JWk7E;y3-zR9ML-2o80hTv_^c zbbXWLo_2h+JH^r2Z~EA2;f68?t@2YryX5PqLA>X*7@T0zxtBGT0sthk;s_|`?E1DL zMtgHdLxp-Srh3}cl4wUY?#?$0&++!YBkN_dreYRE_Na+twftUDZTLAI<&oG%K~@d^ zG4owqQ}N!4hGhfHkS0k5^vgE0xauwRv<05lI%eN-*38%K!lia8Fx)w}W8GNcpCV-0 z4mQ)^NJ^pJzRQ2f7{uFeqagcAgnFwxx{$OPT-k{Z$0Z!O@gB3GqPHMPc_cpR-RP9l z$tJkwBGyK@v<4W`cbDY4*w>nBgT)ut+Dk0=DGrjodeKUnv&NRzh5;DqGz6=c4OW+p zwAVy=4E7qoYL3-p_Sb3f5=K+N7{n4ibm6Vo&t#^bfbd)?8r+`LNsWX2ECHGbL3 zaO$DC-d$~438D2*bf{PyDev^GF+DCm5o*twhcdcvh)Sua^k73}{ni6Ro^~EM%!cWp zB~m5z(EkEOiquE0h;u6*-MOhKao=&FQ%|f`VZ#?WdUEe)D83{u>Uxz-GS_zA(E#db zy9+pA6=H2qmKd`yo?Jrcb<--?G{q81PZaVujJ>?^O<-fmxNO^Z~Q~J(a9bHg(`?O|h6Dsn`q*NpW17Kz_3J zWHmk1tGmSgzSc)wz1U#S7CuCpg-S$I`}o&nhL63{c-x&wo`~N2bJ`)+$+kB|$@$Fv z&OXd@H3^lcxdfR{`W;uv)Ie=g;xa}O$)vLdsf=U}8aIKxr_aZIe!MiHPti+z&nz zyr|6ewCdlrWmAC99(@rGS-uu)nS@ZX7r-xpr;0wsw=pr(;w~3PEB+6*c?RG zo_<%TIaGSGB$U#L<#A9?pz(MrH2Ahzrg1W#E#{FvV52RKtCj($?C6^OH29@kELr^0 zMcS8)k;~?%gt9zoJh6VM z((?K@o0BY_=J{(@cpe8xKc(ljvKhm2_Bnz$eZjm5v zqFdX`TUn6sW{P5Xl~l<8Ilb%BLHZ&~wf=)s|DfKKS3{0ItM~=W(hSjRTYjaaRXHMH zB(ADzsBydd%@T{S+%7Y@ZBvKOj_ul0NW0?fSzedGtwpXg{-F5Mx&W2>h`|b)yR^3= z&Eov6dcGL#XIuVl`^M&o-w%34oSF~aq-LPD@9t`rr1Jtaf=z>RVw92XdK$P&>88I_Y~hcLGH14)g&`!h+i$5fT#4 z%<9x)KZ#R-mpaQ`!{;r7v#O#crUdn$4wgavzGZ28(W@1gD2ebAqw8cIWi@WbS*YFp(EZ%qdGH2%G6qTg>bhHJVr8>Pw z$$Iod80D{VK7D&4?Fizm?df3sy8P6lShL3_axG%cDWA=42D&$2p%M&QUn@E<>#>Uq)*Va9T`g;!>qdu>!Q`q zAOT(W{P`1C7#~@(Z+8f3?3wzl#Zvc!B%roZs&7x)P6uKtM#V4>l)SW>t}|&7m}(sG z+k@&f&_i?$TQ?>OT&z))6_xhRHR=N`Rb6YJ6~-%FX!19g>wPb#y3%6suxgQ!nbH>k zr>-`(v3KeN)KsTlMj1_y;p^aSf?ZwZ$xsq;yAygNvczEN_MFQ&_`sE9g>lXYua2`O zd2zWt)bXW+`pjt0b`j@rC{Cx5$)9OLYCwI2n$tqJ;=y4e`B3c&aPoBz_=T}WVTG6P zMzd$f$iZX0R%EGeh!g&=Xv10YX`=QA<*pR2l zd)Gmzo}9An9&4k6+iI$7j%zU{i7mT|D`q{0aT z?p(A$*?S)O7RPPT7=u21R?3|YY_`~&RstmFX4X<#v#v%U1wxw0_UYTK+43#*m)&j$ z5TthU{w)8frU-evYeF441WK0s%6gl9_n7_KB#ZI@{-E<>&1qjCT<_8^%5t|6oNb{Q z7PyYY8`qt21d&bFLzUAVj5#bqSku3%BkiHi5fy})(ZpV`L7_A0RPw3Ss86~Ni%2EX ze6AUAy#izR%MNGk5dD=U&97hn+A)(8PBMGJJDsAQeb5;udDg?27yY9rNv}SRg!X*g z>}+tRiR6i`MRkwm>1cB~-M3xA8V#_cANk(9@^vSn>HtPIn^!ZNn=W^vGdmWbwm5vG2 z&!p}Xz#IRYAGAUysp(eA8XC%Ni%8nb#h4iDuNca+YRxcd3ua5Y0XJ~fqLH5+50L)?a`}}TQzEGkad$Jy{4>Jw9q*oDI z^wCr}vjJL?pISoVh@!&IH&4lYF&N1!%u2Mt9>?doEdTJzBBJ99V%6h5cnml8Tv~iI zpA2#49VADW`O9zmn1eI6svui*@?(d%EYDURK>R8iLYuui9Na`cx;97w>SFy^_9Yxc zGor3~p4)qKx7>8s9EO|Y2S)n)U@jQxcua2zIp1}&jy-bmoexJabDEgLnOnw7B=d_? zG5cFW7vqLEAe#=Abi<5>@=OT+1Et;BD44_nYHH~&xb46{y4Xi@kZ(ZH?|8SLJ?c-D zg~dCS&5}WlY|t4Ft#>OK;uMs42j%-pwCMR#e~h)i`Jsi;Mp~vGAPj{)UHiuDdt|U= z1;R9DY+VlRg6ulmT3vr?0S2kK&R1&N?z(c&%?W{$*l38V_^`TaKv!6>m#YYxmC-B* zrw-|tgrf5SXZvTbmNElY61cp^p~OI@Fsk(VLR$oW+l|(^O_DJSM5G$=I-ys)1IurL=T^fX;uGv zQ?k!?y(!X>lsx>Iqv3LwLgc`NG)F-yMH*#qRaDM`sCYVc_aOIsNVr4AVL<5gCix-8 zHSnyUsX=mD-PeWwrkJ32!@x8OGxOe`=i5Ob$_6oMkJ!2(=sE1QteyGE#S|lg3E? z)4MOTPJTR|z6o-&fdiPzF!{-txYZe~DmTQe=NIi zqM9kTS@o#a5dOqr(_fdQ@SAk=QdbJc0G`C@%s)!)y(@n#XGlZOp>Sh<_ZN&rRGB7a z_@8Nnep^RE?sjQ;OY`2a1ubVKq#C>M5pnorRTDM%gFg{c_tk_}b6W$G1C)9fYA{ts zHcnUtWQOqLu$qE$alyPBv+8!1OSRt@ZN4UM1sgf)&o$n<1fVH5b?vnQ!=d-lFvb5y z!;EzDXcQ8oe*D0&g?L$zSifpA6GMp^fmS{mUAYT)?mdi9?*F%Z3p+nM+0hm>e!zaa zLwd_6^fQYK-S7sj*R?f`URm*YqD@{#01a3wf6hG{aX`s}dYWN*@@uP_$ayKU=N1=L zZ$(mWs6A*VykYYiA%riK zznP70LSJWAqj1<#xbco~+%%Uc&F%h?!gZ zT8)|xbBc@W)`#$7=Tnc?h}~uvXAkf_u2N5`xoY*jN zcj@w;>((q^nO3Z%D!o;j_+pR)XqIn30rsd^`670oRjcw2Dc2sb;x}V*-I|7m5dDB$aA9)UXl~~ZaU{>ucRBpA@?F5(&IfLk(+gZ$$dtJ>d z8G%aZ7n&_?35T0=xR{1I0=(G!BT~XeVI)f}Ko=*(SFl;oC-H-;2PuWj1RV+-8#3we zsO|xn9i;86!9GCO`_-;|j`J>EG`G((#jOQ2qrO09E`WVD$rrhum}NRS1S7v$alCCS zn@kTKd!HEw7{qmo+c2hT8L-%AkpIL$vchsCN!0;5iml}KZ2jIea_2JkbZo7j!A68H^OspUn%P|4~}}- zq*rAQ^z=1^+LlB&tp!Ki{l56)Jyz9hl&&ZYAk!|MKKxRJJ5Yys0o~R=$lmYx7Hyb1 z7iV$XBe50BJ847ckUmsdRZQjcuC$Tc2P+WbwQ|-x59s8z=w%&@S-zM;dmA@Cnt$bG zvI_`J3)mgqINRu#Ik=6*MJ;t2*4+&ny4?=vfc*zTe&u(0Fx5HbEn-x%l&^1JiaYw{ zz+hsR#~32=Mvm|A9JIZp=P(Cjw#Y_rFwr!6Q;Diny}bxrLJ;@I?YH5A_^FoBsjIn% z(gTah7+l#bS0Ay^$?L${H{z;fzfiPTaVRB+~AoR|h! zHO5DEdz&Zbn1>$YN9(PGdFA5L(yAVAO*M{?^IZ70BQ#PjAA23-g$i*()u&#@Pc4YM z{L81>n=pRFcOYuR%ZN9(H=N0#z0+RGz~ahv5H(d(y%zYA_`ZBC>u=WG7wk2V%gT~( zVE92Z#+4^8a$_OA<-|LHp?pp8-RGOgY;WzrZ_-o87boyKJll3ds)^ng=76vV=LiRv zcwlco4$;xDIR15gzs$&k>q;;N;ezYlR3TWxU_RyVXSetM*TAj^uH)|4aBCA`ZD?Ub~z-FEN?^b<{2HQbi5y+qLC2}-#Rn0K}`pyx9$m%VNY@^zQ08Rkq z$P8>?rr*qkcgyiJQ2)a%_QL{yU)DZeW%ZWAI1$A358Z{IS(Rf8lKbxyhy#wH0aN)?KvRVX&wu z9SW_ViClRF71aBsxo#8G0tX**#G<)*v5x{TVvg>_e2xkZ@q)>uWR_i)QiMh6q~TY) zEX-pM9YE*4qz4?(>mi}a*2h7aFwISyE}+vb?lIv+t|JM=Kms}_*7~)@$##As>MFBC z59e5ScWEtuJD41LZhJ#uHe)BAP@SDRzn6^MJPIeo`(<)SDQE;_@X>XkO;byT3Z0RH z59HrgAA|`<3OKEK(@vmV7%w}<5^dqUKhxl** z)+{%!END057fI|l$b=Z_$cRe>?I6XXasQERl?SjM}41jO0fy^8&V-fAh2!kZIJ@pmg8Bv zec>u!vrn(t4(K8i*3@pU$HOsMLs7DGp9@Ygn=)jvTUFNgEflA}F3tmgufEn0Fw~w@ zuQpJl0-#Z{Azn!~VLC$ROaWFDMH7?4=v{pDlM5?WyApb6MuRba`~YuOQ-kFw0U?_8 z83JO9ak>~{{2eAh_8Z!PQaT&aw_X4C z`e(xQBELiM=eyZ3!ax4pa>ONt)%b1m9N0G^7P{fLb(x*!=d!fZit;es zBO18nJy5+?p@^2HX)yczSwA}>72Z;n27DUjaahXrLMf5pCidpBxrw9m%ot4*Bvg2 z0KI5?XOZG)@Nv8Ra>$-DxQW*8?yNu3xWYb+&th1%qk7+crW6xfw#M#8Gps}8qyl`K z4=>xPt55^bfklMfDzrqN;h!7x+}debO$bQT@g6TTw_-+W`J6H;wbWc~Y2kEtR?(Zy z5Xq|}b=?FN&R;`6xz<$4uUDj*LkVJ4c?UbQe|f4Z?6;Y$7`7j+q`<$KsKb7poqXgC zgkTOPG&{wth>5g3um-FlFC^*ylVzW*W`vfrGapO6xFyc%6)y;Z{sgLliX%31C&d9R zRJ=8#Zi;mG z!*#BGuTvf{EZJ?cu-)qJ|Zk`%*M`bHn4a!b_k-VWT} z)QbFH(%B18F)w#_0y6}UFSOdxY#9dSLnqBH0{-^gnC{2lA8&Ikfr#( zoI3za=)*x$frxZ@g3v1)@%bLtyB{`ts;nT`uA9;80;k3k6NRyxm{>Ij&Vyf8ieFw&S)V@RxQ8FJ7#+cKYi zPUlz^UJ%~ioN-A!<0@h3U;d1~3nBZLF#eB>$^ctZ6pO>g;jRm<*tg&LUhjZjBp#Y2 zRF7JYSZ!^06QdZFJGBQo-l?!>^x1K7{QC}`$WS;`z1gU1`)Ssye+JNW{9V`goP6?o zy%~MJk?+^yMhb&uBkq+#F@ROUcrDl}sgR8az9D)vLK7VT+`;y`?+&v z{b^ml#B*A-=?augiwHAOPr9iDm_LDE4tnW?-4{B$U*31dsuyz_ZF`IC>)!34B ziv`{@*iIb^H*eFUA8OIw>zd#T;I{0<=8m0$yz7215U#Hp9$?7CnK6Qrm0dVqrvf!S zg|MFab*slkn-%zq8A4)}*ER!}dW0N%^_K|e?YlQzC%i;F%L$1W%IqS()PV3A?~J?N zwJ|D75Dmr&^Nen(+=5bkqc9`i(-UK~PWULhY&V`Q{F|a_=^OvPJRa(W3VTlNlKb)9 z+}XUPzKGKYMDg7)8=qeWQbsqY_EA{iZKxI5#{|P!&+-z*)q>&5>$A6HBd;}^tbOlA z_oFVcFpCGC*+PHTT`EF{{-) z{(%QX#6ltn?d1I}R2#%^YN0^h=D(1-R=pTiZK$^Qg_JWO+bY?<6O(B24mG4vG<-=U zAt99!1lf}qfGB0ep}P%k90nWK-yNs(G!dOwiz>8HXu9y@3I!k--QZ^48A}_x`ZREd zvPeerb8f7XPef>plSpOMFP~A#OTSYeLc6AqNk`w(X%%#KbVmxT!#*?o+#?tEU}wT@ ze36=?oQ#d6T7&GEcMvJ(BAT;@Y_Ofbagt{ihL=eOXVNO^CKY(-t0XQ^6)w?|vzU`V zcCLQU&y`cdhH*Oc8!P>FhqsfsT+k;@7Yxna&!)0{6Q+*hJMo_{)W_9vAch_KBra&^ z(g`;^B?#oyJ#0j+#t|-Bx+!@B&YZgpZGy0Yr_+cu_kVvV4v0G30TFvpGa$4g@z~0=oGZ5nS9{Sh6}zPEM*Zo!gs`j3iqg!* z>yLe>^8P+qWi(?0BwoypRFpY5GE3edq(sUsNL@d%mxaqzBbXsS+aKxQXOo}&fBiLO zZXz2JQ6gsWwcQWsL#!KObZz$5kH?-rzqbV<*%0z`%r#P_@|WKfIoR)pL(=b@Lpm(Z zEU}g>gQzFLaOw;y#^>HZrZrKTfVU`~LeF)R0pNlUDGp#d>e|T<0#cvebSD<^MlvE9 zL2K1S$75_<$46{jqsJq8(KS!$>kl7%>G#F(T)xP6YNT4w%eTCn$)Mm~44RCINKtt^ zsr$gsXMRl_bEf@R#zGLjT+PC;ok+|FyAeX{%%2<$B1U(&afF?q1#n|7=Bq?}zUXKj zXM?mgk`A#QyAq}O!6BsAXg<15{M;4jbDlcF5Vys)@MPi#7!tym3iaYsgme%>B^>LS`=87d-mJrL9K{{6Hp!<;uM>C73N+ho@qc<)A2$$&u#IfrV((hu8T^wOoJ(HOC z?wd!#)$#iA&DLcH8}xcLABsh44*@+Z)QL8=tAt0_arn?t%-hq|ME==<(N17hW9%PQ z^3y{z;U=i2@~oE@VPKRtEj+H+$UB}a`zrJI(q8*D)9iq~if?Q|4n%eFZb%V&rU1kO zuHFLu;5o^_%A>f7&JlsHnpSh4m~4-P>n>=Fd|*UzCkMSzTmd~z(mjynjM0;uN)F~k zhE{8Of95q9-TNF=qQ}Wm`HAm=JTl;lhLlq~_KtEfy;X@ga%o!iP%K~a7{NSU-`rp@ z3>ytJ`}Le{%3xdMpy6XzMNX#``gCoC8Mv90;&XT=#${&Po>BvC1!Ey+yk-+*Cq9kU zV@wWd0Vn>a1U>;mF-b2)?!Ct5HRH?(tt=X;in+*YI%3Wb#27DWgH9W!4~6v$sRvPq zw-}@B0F&26Z3K?#6-taf^^&qek|DFO=aKHck?Hl16jLuOBySJ56rp7mcPT)hEHa>u z{3oN2b@T4Krj08%orC0yi*hW*)Nwah9-HyE>Fwuv4DsPN$RWs#in-XmWw$u!w3tmG zClKhc9&m%UpEwwKfP%I6fq8NBdW06c`K<#=9YIzssQtjh)HQvDG$C($q%-?S*Y`pq zX0{*g&dwK)WPvQl>8H=oEzntRt~RpmZFttBR(Hm@zGWMzgcJ+kwMsTb8z7X(TP*?| za7#9G5%&GIN64i}Lo#qSTYJf7lztXeRh2@vG^hIYtd&e zzm5%_vFwaElswaXJTHF5vWp_X4!7gv(>bCD6Obp6%j8nuhY`~wRqXM^8Ng+d!XY*V z|C>Z?fI$oSIbTXRmy=q~Stv<-^8X?1tmE2Hwng1t!%OiZg|np3 z?gW?O575UMx%Fw?tfiBn zhdQiZ`^v4w`i_x;DaCI#nrRZ8WvNiIIcOQ!8|(M_z-?w#?UeJgXbsZ+b3DCYmG=t7LkE{myHL_SawPPkp}Nz87&PEw#|=r&iDOr(y4Kv^iSp0o zU>=s4UH^GOA+5$-Uhe1t>z`nyHaWg28)U-{ zp{|{;tPgEfI#pdGV>1|S58_Tq9X1;-J>BI4i;0!1hV#?Jtt!a!mFe_y?yyZ3Xt86@ zu38r}X7vf0=s{*ZUoCu3(R}&2_%rJS*?>d=W3m9z{B=T(DWMJ=MyFg6CinmC{;T|Fp(5;-@1Wp2v-$f9 zp)|y*>j-LnaPq})9cP%UnMaA`?(xq|XGRTHb zIgP%j_YKE0s>z&Uxs}RbjK4faV)L+lNVnC`d~=`;8fjHDk`flx+lRC95Uh6 zuAIL;$R09j)(q%~FdFN9w=-0E8tQC9LL?^7HfzwGvp~ow=pKsepV7d6jT#)CVnDtY zuTLwKcuS0Nk$Q9dseFiwoEBUZfVp&vC zCkRfCKV}sc}qdF`clQqV%Bu5NmBuXdoLh=@R`hiv zt#TRyUIxwwt-78dEtlEshL{Ep22F3)n3&Q!g*W|~>6H=dzTvEk+3EF|1Yxye1C}&l-G0qqa9*uiQk0CIbk}4x)V|RG%_h>^APBvvS zX3_STOfv@U?HT=Mir-~)Se&;3HKOC#R9DX5-j6Ef*)G;I=| z;`CVwnNVlxms+}-W?QH0JGm#zl=*0y4KX#@ouFofsjdx=wox)as0mw>5r@6$hG2p={bwmW)};6{Bs3o16)~SCG(LLm8-|*0FSnLchBQv$DS#(+_P?dB?-Z6wd;@j zUY`JnpT0RkIh897s zqYYokZR|wruWZ>2&L$LPQ3X7|d-PkOWy#TeO zr0HLWDc1A&G+Zh|VoIOWw8GZabV+|MRLi?83TYjj_Lcq|EU#0Mvona2)`EK z_vf7~_a&dQK`!**voh%9#Kg2RKv$u-1YzIRMIRTgJ-C2ciR#!-3sx-a;k z%kxp&k@uevxhc_2_cT$+QjRN4awm?Jd}g%5fR<$yW+`v*?GU9n^7__vyKSLQ0+gIn z!BZn!{jkpoThLRgSn8%XSC@`{1u^3gy>+MNBsaYjGsSbRU67}TwKhlixnX;M^rbW0 zSz&Fv$4Pn5*X8otA+^b6W`1El!Jg7=lhh^8L?KqpXG`L~=o` z?>U;*%U*Bg5jZdgv)ON2q;i#Y#LdF&c(XL=cgD9hg^zSYe8RlroC~G(Mu-N4Kb$oN zc`4Q}?&@VD4Fk`0XvA~X)o^ahhUc8VY~*zfJ*I%<#&|G8>js3$Y;<4mcU2J*yYYvy zP=>5Pe^~8*Xs;W&zNX}PJw@cn&-iKPN=8N-%#vI3#y{kNqG{_bZiUyO@Oa(&hbsom z{eE08J64XB`tF_3!YB?s$s5o-<~*+bs0k>nANIFsUE2UBi&W{kwh<|Bs=Dd9+2~hW z_Eg+f^e|>b_v}wA;aT(Gb#DPOn0{el#*={@Xz@f6{Sbf09+)zvAfal`EPP?(E6hwd znYw2ULCFs)8kd$XM@5vp)Bwa_cWfrqz+g01YMYu^vlG{4Gju= zgAxRTXQlD$;X`D_%A`ukIrN~XhZyGmy4wR$wO|uC%ZxoGDH&e|RFkK>wA(@ArTm>@ z@HnhND+P@LIF=Am`ZIj&Bs`A6w2^?GDn(7^o|Y+%m$sernYTAAS z3PSeoVJOJ5w6P=n;Zo-g$36EOFN6lC7rVdD{NL#XPOgPRm;EcAnn0uWA2w#I#)oVi zb$9$7&8aoOQd_sUC9VDZPyEbfJ_$=BRVMO=*{zQg%qU*31n^0v5tgMx_Y@D)7wpya z#|kYZq-N?YSfkTeXle~GRV3IuZY1=M4^5=>I*L}(UqtO=d>1v^6KA%{04=}7Hk-=l ziYTV#m71t>BVz_#Xp%ZhxSg-7S_veIyO`ciDJ3^N!C1X^LmaGot2*^`A5_oU3d6n1 z=~S#$+|C$;>zzz8Cw(pqYALM*h!<7C=>`?I{(@UC#ag||EY9TWy};3eEuqs-5>!=6 z{Hw^$vHsd>!e!ztOMm+WPO)sKj-sPoQ`o97+s5L)yvyg8uXL?p`jdBwkFmR6lMm?X zLY5Y~RQWbr^s+dA>Xgd?+=u^Ud5tZ!8BrgTOW~x+=PSI#(T?D_5=dc#TL=-I0Olr- z>gLEqgtLCq6TVjB+{0~*Rg=@TO{>Oo0Jr46>?-7KutZg4#u`06vr6B&oWwr<-1WFX zilHr~GJp@mX0xF7@T&OFK^C|_$i)ZcFu|}>P;f(xj;NF9gFm5t z*cJ|9Uk}vk{W}Q4P0EhUOf>OeQVjw0KUGP0S%*7$@WzcdkOjR9``R`lxBM4CmN1x0 z+{q0mk+BAr?4OC0!BE6sqT7oIWI3<^%UKi_4`8$GCgHD|8%xDYl;}9qrB-AZOvLr3S>i;QUw}}r!+cH zd(SzkJs%uipuF5OhqpZaU0f=D{_0Qk*>D8Lkeee@=J6LYfd40N_18X05NvZq$&t3k z5Q9dkXb>OMCOz854$7U@M%hU0ov}77FlZ7btvr5!pX0FmH$oRpBZVIo(+f(?D-kV1 zy&vXE8ztk|S1rJCJ8mfQDs~LhSG3Ojn@e9EXzSI~7%Q2lDXLj%4=dG`UB%rwpcTA6 zqoWo$$A{ktFE2<-!q)iXhpraAC-7q^IMdV2uI-A@SI&idCR8&p_b2*vP<1|yo)82e z-SWz6G3|Xw*GO#@&Rx|-s%ByB?V@Fo3dI-C6YXR&tc{OHe8UClZ|PZ*R;CtK9FZ)V zR9WMeTO-d!Q&$)KokJVw_b+;9)PXzO0$FJi25Ef;)UWr>Z8tx+dRDF*leTQ(gWWof z#cjEdA9}dl_C|xmUXagK1BqQ{goZ*s$p@JB;J~_KW1WG4F16`Lh_7N|ewvn$;l zVU|Cd4*R{P^Dj1wo~ycFlVBtw{Hf8-mh5|Bd-Hjv&*dH!oRYa%Tfu z3bMn#eX4ggIZBE^3p4j<);-#AI_|kBW6xR|yolO&$taBAw@j<9;z#9Je+^f4r8b9? zb(CX0i?HN?K`8CvW+z!kY-06U1(yP%)w9-zM1;YexD|s1f@85&YPqiC4g@``>a4~` zsNA$YhwJX7YeB;%CF9{I7}ia0e-IZpVfTzIT_hu`;H}Sypm5gOr}0dUntjqC;d*I` z#dR6i>AzC7xXipjEBm>Hm21jTty0?LI8r)QtZ9SWod`w}54=Y%CZETggJn)Pgv^NE zKCX|juCb71Zr=Ub#{`wrB%fXc)}E&8J21FJkcVDgs%VuhT)A_elK5vImeqx&8|}{X z`lYD{#Z>KJ{1kM?u{tK%umz0=&y*$)5(1S~oPEcU<(KE-Jn<^O%^A3GF5HkT;BNgYUQv0Z1_WYUNoOSB7UTxUSTd+rd!ZZ<@`axL+J$CIHOE?T>;l3$V*H7wWZuYSq z$2PK)>-{^Q!ltNIp$ud1C)>8FX{OAp+;ygWq|?jhGDJlFCY=2SEE0XkB*|fFp5JaQowQegJkjEC4$` z6M&s|Ltu0JntHD5LW^E5&#a7&dg+*3HuPKTh__H!n`=Yz9i{-kyJV-6K0^hbnZ% zPVF|DxFaEYGRh&tVWZee=_A9h+mx3YEKTNcjP$a2@y|{7DS3l8ag7Ks_FuPfhgY_A zuwBiCq?s)Yw3*!{HE+y!AOJtxm)_n*iYR*eM&GJAsHywBM9z!$C-`pU%q@7M2Z(ISOCB415k-z=y42dT3x{C73!d393LMJg zxma|jxjxT$!`vJqYNAICoU%L3ZVq&5dXZlcb1`lzXmf+QicP?cElaXaVHSV4^MdIj z;!&i~j0(!d{2FzT_3S&>)o@V;hY%6o_(kYq2UTh5B_b-)QnokBcCG8lIXgQm z22xH=V=)<%h5zM7y8gJcB&49elyLVtLY+{-ST2Nn6q3!$5|+W{F^g9lp0VjtC2;m! zkAZvxFNq=<#*+-)vcRu(rxbu?t*wyfzXiF^jXOiG#aG!M-7>g=ey zj&&zYBF)#Q{Dg}H)$l{KR%geLfJEcI>U!EFOzM#$1R#e%VVT8Tbw6I1A8+Z>)NrN z;SW$P`#zaZd0E%OjojcbLXDxU{=DT!TTA=Y?rpruN*o*PW|`Q*wiI)^T5T3U8)xg$L9^vsxq(`ZH{_UQ%$2HKHPcU7ya$d;1K>H2B;u8xPV@ zPVe7KdHh1KjE2J9voDE3BztL#hdj0CDJN9~{1O3u+I681eQgfqv;l95$kx%`=im8yAo! zDk+Ax16qBScA1=EbLfXA&y|`tbn`v8RCXWR)p=$AVzX0f%R(gPtJP2nX#rwdBe;Mz zAYUfMMzC$|m_Yv^`}Rfa`LVI?4YdiRMn$@ECu9CdT5)mK)z4Hjryyu7ggWBrHqo~q z)~d2`TD6L5!UsESjw$nqGKR0r;C&py4xg^KgIhDvz$jKTN61$+v;6aRdbo=R-m)9x zifDLtdN|8u3@m*=rlw#wgEPmGiW!t`^G-4Ee7#msYtY}FIs1d4X+vU8enTt?7uWHs zCW(`}j+4zSqXNMM+-j!DgFGGc_Ah%l!swLyiO-4{=pe5|=n|mU^D~a+e_NOxyXg&l zyKNWX;-hQUY%zT}UO#MN|3#zwBHE~i9rOH}eEJ(l9w#+-?L+~>WPWb6|D+02dsWgF z6v#|9If@^f(m>Et3rMbYdWtt4IX+^AFLIH(>bCdLZ32+)^~p)bi^J)Z&SXljd}K?U z6%Ek>uG3xbe4=0+$DXAG@mUKN%jPuwh>#ErtYY3p6^LNI-mV;QV0f1Gb@$YWxY3<= z$!4+7SI+<1dk0d)%iy9Ao+&fe|zhd4pdbFHfcoMU3<3D2>SHB&VU za+)HcI9A;pcE@A|z{~v)xPPkE}vQxt2b+mta`Kt=bDJ$BpZR6@R-eL-g71 z6>J!=P643Ua)$L;-v4Rj&$`*Ew%oB6U$wFuz1l0JzY@N{4cB`yF4qApMGyg#$Fen@ z-ivun?^q&$jvaFgvBb5S8&`773@SjOK!zr!RE{Pb7W?U!>AB=n-@F<800 z_=XEpM17?B=!EuROQJy&S1S4~?;lrj!1J>IA8oc#>X(C{vAL3*HM1{w$QDbZgI?bT z)-qk~yg(cWcDC$jRy*G7Jb*56L+Gd(EGg;=K#T(Mfs%lVtXKDb>h_rX-~zIX&$=|( zxt&qfmMQm@z(;N%?jOfdR&C#p zq_cu+CkXUjSr1XU3*E7+^~mQ8UVZ*Y7V31;}>rVo!WiGgh>dYf8cz*;qgz%48 zFK{Ahy)v|bq!_|l(vi{I+;$&7jh>YbIx~~!vh;dYh%CD(sEfL~a!25oaEQ$S zZ=T*}ri`4Oyg>)EQx9#x8{g?^{3DHRjQ3YI5)hEMX=e&%D*#Aw82*rg-QHlF>|UcS zMW(f{6_b;_XUMM1i%6Aiw$l*|H|UUJcRrzQ&EgG=RU4RXj6f#{MjTOV-+CZUa3fjCGnsQ3g#NcA7 zL;XhlUmQFbyden zEh@~+>o;`|CECxf*qlb~OVuCaj=BqR(@MW#b`(*Nsy?N>|2k0}?E6#lD}JOZGvp>- z?$WVBYP2gD6{}oUkf+HUiE#aqRr%@(oQb9I{lFaH9nn5YSRAvH;}8k zuDG6-;8&DqRbL&5!|S?oN^EjP^t@ivEniovoBWnDxuc0ZfNRNdTyy! z)w47@O5&^SkHVL)kzoyb8LWPA!gL%3Lh;i&S%D&tSu6BWlruA{@O^y7i9L%2ZigqEWAJY$iTsxY4gbsUtK&uPll00E zH@sK|^^3u8*aprbI02CIz2_vGxpW4%5M$4BfEOEi&@8uC+Czo}QkoyL%n! zcU>;nIKI;JW~}i>Qa<%1J=ek_C4jBr6C-&Z+=7xENfE7kArara_Z-Y{?8_7vDFgIW zW&iPCh9kpBrGC3Zc$fXu52D3J*E*$anFZ5BiZl$_!)UE?H#6!G^k5mHc{f+rk04Mv zY0X_!RMeC_hfZtM35=nk!CwNZ=1>#IZIcH4@Xl%Yo%JT8fv)Eh>aj~Co#(eam51Ix zl`WN`0trP{v}iU0Fb1ZI71*`FiwX_j_;p58uQ`7+_p`id?W}`>ak`^$tr5j*PXVCq z=Eg<=20~6=-pT)LY0hqr+;xsUa=ilCT=1R6S2VR`-c=m6cLthRBnVQQQvl2O2W@b- zw}-5bA~?3fi|ALJ_SYOj6zWVhkn1<=GopQBX;V^@`$!!O`x3+Gm4&(>*nTWPj@8gYz;Dj`rA)!f%4;J-AD33E*z_}6jmU$z<3z#cyyZ_>0*BM z^dfq^uC#HI?DRjN`v$^4as`?@-UFKQxk0&LA?QxTCfn#?<8OFdPoy%lYC@CeMZ;ue zQ(Nrnii$$!=XH*bj#9CZztAFb-O)*h3kH}2xT5Pr^Id}y;{Yns$a)=xk>;R-VOO&^ znkK)-|Gl=IwK0DT-{u2_>%rzy`PIvQ6G}+?5m+)&S*Jv9Bx3a@s86u=;JJmHL_#9B zO-0@9FVXes$hJ#2n1uwn%$Y5AS!KD^hsB@+#iujfEg>AJ_LZHNu551LtIqq{mAewV|%N0xc;e>7GdYp`#E_y$s-|tQh>0)sXUt?F~e&HN@j{!!{!0DGzZ3}(FQNtogZh7@?A+nX(KffvqIj3K(CjZg2(ezg%`aWwi>XC@r*EZ3`FfffQ z2lU_-%)nFL@4BqH(-{?g=(Np_fTpl!IUXhh7x_?=bqQi42la zD^yA1!=kQ})VRE{f$RjPsAIjsx*SgqYvByr^(6S$K@_k5!yn!L?bJXwQ)@QhcMdcrbobpu!^h&{j4`$^Aw{EG+r#21*eVqDiV<(U%^-ig3Y;ogwZ}8vEnI;vaqnEtP zyj%NHMlV=%OkAfuX_eGJ#JPsNtjl$E|1OCOkx|l>vMqf1Yk~h08Y z1nhUm00LFZ3Dw$vItJ*m!5CEgiR@p0d$js`pTk`2&32rjo54T&wj;;=K{#(mM|{XB z&!&PsLi%Z*fS+WOX@I(m6nA-(^_>>JW;p-*)-LeF7$6fd#4COoeXoR1BMT*U=Sl`^ zF@KHt=eqhQ1qMkyr?#||>6it!glsL%R8d00j&?k!bXWhwG5}rGwf^FhVq#4ZOt4{m z7Ne`{CI(8G{Ov{fpQDBcx=<&mPiBv*Wmb~^?qF<6Lp+zoHQAJ;^rOF6rbx1jZGa+$ z!}HB>p=@z!gB{}6yYPRBClVybG(ySv-7 zX=Hce(xhQb=Ch^+FxKO$tGRUiKWB6)Ztc`J?5hG92g!@0$(@Sw1P2b!17&@K` zaayVhq3=@S`rR$@&Z@gDm?@ypebXZlKId9vDtrCK3Fb#%fksGyf4DpC&4TBiT(Mj&!-5*$=gjm!$Y!g~&o zbJ8`s_C!6f$VkdG<&))iR`2I?3njT&rE7KQ$(>_N+r8pKB!b%OT@M zbOXYHcg#Lh5(G+0*ADx5Lz79Swrq|l;BNWVvx3`)&TD?hyJ(vJ)1j;@Dpz)Gu1rz! zJHpnMbnk_~o(ZKLV90KDp1&MTB=sR2A7%@rgtt_x2%``J9ZmLH$I}Otc;pCk!tYfT z-R=R!-SfY#y$JHiq8)buBso%VWZ(k(+P}}IerSqt=_)%9&!(7E% zt!txUa?=z(r~pSa`@%^SEv3ME!V$IWOVIUnrLjMsKasp)e?cwdLL2$CkT2Olua(H( zjcTbf^yr3Yg5D9~`KO%gxEU%H!!%5W0_8H=NhqK%$DepO5@)_6OWh|(7tI65_WEy- zxxg4-3})ZRIonY4LXwa4Eke{Yyu&igM(}h$c#E+-*dAA`1lH1JU6OYkT-9)MBzT!o zCWL<)%lht@i#4g4F5=^7WY@Pgx!rSXy-hoSZBn-SzI%U2RM){Rl%aaqLGb2r@EE^$ zUcH*Qp*3pSw17cte_|j?6mCjI)`aHvu{GSd&$ca9ccxsOk=w-HJv%dm1K!VGC}^yC{S zj97KJ11tzO{3JG)=^F{5`f)-W2l{eeFxT(c9?fEu;LkCTurEXIyJIWtoQd&7WRybH zCLz^64CzDW^#~P3yyRI?zpqI6o%e)k$jxFjMWrt|U&flj7Wn(g1Vf%n&cA<4_mD|v;`^IE9bX-Wy=}{J$FsBH&c!L+v6^519Ne@vsX%y zHT9S~cWy$=Bf05u4G+4RI8C$%n##xXfzXui(8!meA`@%?( z$eUC|S_T`&jJ$QdFyVI55Vldr;sfr^qN1B(k43Pl?S#jRin34@VJ|JnNccwYTZgBY z)MM7AELlhhBfpHyBs3QAK0bu}26O8L5!ujv?P2qXr^?`rGYGHU<~c86Mi zR>*Eo$Y{DhnL3o~(rovky1nnCo`(m*1j7;?@vAJlc{~nDjg>!oBO9MHD~fbv-fC;U z%)AQ!;dU+}B3vGRL~Pq0j>i3rtYOcqghchsAW=Ko#P#FONZ~V)l6881{wxR)2d$Fo z`=h8v*aj?kO@GLR-;VlTZ$Y}KAe0&=ZP7)K!S+JWKXvr7VZIoBgVao@>^gWbQw-X3 zk?uwdJMou}YvcLe zrQw27*6+}$GY|yI>XH^KY6aRXrVcU$+iKHNB-;s2F)<`k#+HJybca;+iL5_3Agt6jnP!R;9l2c9(Thr1J^#jx#mal>(vDT%ylPd3fQH7@O{+Jp_N=Vck? zn9Fpbd4x&h6N=&hh;{b| zPb+%v;*c+|8rUbEufK8v!f4g5#@sY24C!skv+i(Rsdk`k4a!s_2rQ;DpH`Jbk2QcF z9Ow?Z>?mxtH*e?Q8*;>bRnkMp&j5vT=g6 z@>ISvDMOEBQ#D!F^xSx1*h;%2GwpF$f5@ui1hY<(+-RT+K|lKx?apgDfxz5%<%7DQ z;XGX$$LoMISHY}QiO>SKUS(~i_onXY)%sk!`g5ynEh>CbY3Q|>CaHH523H55<++#Q zI@t~qKsRBxCvIzrYIN`#gNzJC`EO+-{I>>5`by#o2IN~^mfHjDPS?eCgO{FMwLvW- zoc(+<-~xE?$WEd>U3?*E3R0-1`~KZK?%DjwiION#Xa{Z$DG zr4#Y7GWG_{jq9~Fqr?h)RGCsWS3QBdfnHmuoXTz?_QqQpQgAm(3Co{Wh&lLtigz!=$O84?`oz3pY6plGg{ zN7;zK4ZKpC76-^Q+3QHqZ6+n}nxE}Df6U%wpQo&4Q+f#wlx}izv`^v_OKe#6rcZc} zuq#SvOOA&y)+@_hmNN7!yr~eE2(#Y{Qy5YimUmkt$fw`T#mB`++lQ#<3(=U+UN=;e zuQ+h@(J@VD;AxF!wmHN(?dUXPQO4ncxe2(_n+3AVsr)be?EAwUz?amv%$g}#N1Aan z+w%pUK?Hd?74Yu45&ZmC9aX@L4umY12&#-Ku-5O$Q&3b}&unO7f`z(8K6H5GbenNMGJ4pJkmGub@|OZ9v}X#z~}m zXK-iQgma}104o5w%EBG(qyw~Bc*uswsgntGo009FN3sk~*D-rHNzS2E>yMyYIyp*! zyo5exWu;=e*J3;(`K>kcgjxIje8rq;;a69~g_fJ+Q#9%JH;`jTcwu(BbJlzHRw;Vz zB0c%+BQK8SF+1m7-F99nQqLS*(rrM0kJAxs^6%Mw2j^8op+`$I&UHX9EUx~alde${ zb#(0YrL%mEOu?kvu^6CX zLQ3!SmL^6=MMk3VncArCe{*OmsV4&T@;$c%H-iyHY?#(Kixx<>3LSr6YN-Cv)Hk;m zHj%GZ=gFs7GQV8=--ebjN=)WV>qSu>l@V%OR)Dx(6Cx|7(~^2$g03= zSa6Ez2WSc#KKUK3mL9O0Ui$Jf*TQlu>*B7UvX@_W1zItAdji`P%Ci(on1@~)pHj8D zWOjdCIEpm8NG-EgG>2Ujt1$;r9=K!-)+>x(&b#qHVk}^@k$PSjej-s4Mk~;mz>~rK z+aS&YcWIeN7L!%sI_$wFR-WdL68__P@yWgnAnD1)@Qw?cO(I zS;_SAe(d65=D3^(y`f-$+kftGY*m>P`3B;~yPb9@5$AzE8~dQ1F(`Z|5mB#xhCySJ z;}%BsH?E8Cpq(eX1lo9C9?Q-)KooC%&Udb6A0tEaOghBYJfQQQ2j#??JuoKa~v zY-d`X-vi$!m+3{_30p1Jsw7T2h-~$PJ11Er5^$fq=5-@EF1s~GBC3io0SQ1}!0cur z`@|$BH1`RX0l);7i(wUsSm2G4lK$d`G^*5SZ^ve66tMSDO%|^nY+{wfZr9SboM~v^dNvT0dy^DYv?Ox0{vm zJ15&vGn>8yPAD5`Rb^`L1Cynj2}4XHm%{o>6kJt%T2ett_Rohmo2;Q|0&hYYb}uIN zXY-$PyGF0#nOr{`%bKp;>}AQQ$@(kmBE2nO@A*LZ#*f4<&yBiJvF1Uip0ySK zChb*{>lJVexCsL#Jg_u0+MwkcGl*_8FM6o3n)L@JoBU=UI(oH2^_YdASj}~K^&M7C zvhStuxVXjLGi6+Z*As~*mcx^G%z(W3%yrSrpKBueFD~HH`wOw zQtiD{JLfZk(e@`Av%_Rg@1QQ^wwk)Pc^OoM$`!T8^g$R;Jc*FUZ zKy7>?zZ}0;q<`TM`+fRs{oEL%`h3x2|L|wlwIKGvr%!*&X(7DY+)0sjBAe+R8|R*T z#IYJ7o@q2k=N*rZQyhd7-k-M0*WBrrIpvh9DrIc;fgS-Bf){Xa<^4r_E3AO(=ozc| z&4Jxy>SvjYed((?u=iWG)=!{AjFmEkCN+@Ehix4>i=i;p8Xr;=xJV1ay6MNTe5_u} z%UK=a7JM%k^|Rz%a)s*f8v+uL?m^87aOc@@yl&~Vg__Ms#1A|bq0Mu zBkI4@BHlLYh2auRS<3%r4n&6)g)k0Gc@&H2uPZtX!XcHb5nrnGjh285sZKhN2xfPg znaLki;8wM^kVMM3C8ME?fbhM`RuCN?n#;HzaPHSHN6o(B-=<~`JegEinq1k@e{d5HR`#( zJ?n>_3Q)Nd>T!uB0SN<#vwCe(&HWT{(*<658My&R9jEf7j<{ALMpIK7TS!TMgTgk7 zrGz%!ORT~i`jilcU{~bqWtV|#OdN{kL?@)e-x6Fh1~%(*wo>GBg6mvGM(=jYKKgn+ z$LUhmnv8KDj|Bvue{`M=Db8VTrQXeh=((Gdlz*>yThk$UD2-R`i)1x#8UjSm$hB{#g+ zGX*L|n@F^q&E;N5z~alh-_G&xghH3TUe$YdM&Gf;6HDFD*;wVY>J4RVTY^9ZpFcmK zp`md`%yrGxT4_Q}u>@T9)>gX0*ETm9=1-a_lwg2wvTk!G%oj@I>RO$zjJFX2XFmv^s4pA3kHh73I7{Lek#0Ypm!>{lz1u2;Ey#V%{j)i}elflbi~D z_g=hl>|httAn|$puLAh91<0;*s(EiyXQGi5fvh79vC$J`-JAGK#q*#|eqr9~Fai*o z;YVRV{?`!$t>O$D#HdD>_PDdFTrxDiCxJp^AZm)t7D-9?dz)!7t6L`KOuY^ig;35j zsrong4%)y(-G)JVI%qSgc_?3pRFjqK_yPOjX

h=ql^u^w!UmR|}4g;s)NY8`cZ49jIVs-8`QgT@I6yi`I~l|NhG}!8Q>?Uhvm<` z<&1Zy5KQp&}SDUDZ_|&^?@e30EhHtY3X+x{&YHa77~9 zV5f)qHY0B9MRwyhM1iK=B>Y7P$RyRO#J&z-#aOVBx@(U{t;OaHEGU^EU3erbv1nf1 zR}n!-Hzz%{%gROY$htTl$3oTqELaL-{5bX_+7YP>JAha znc@$Xg?M=fP}4ABvXOI_)o|VLVnnj66u;%C-O7hhCNY>vq(4h}&N$WsM?A-PMr!w# zF@j3T$K?eH9&7QIZ@$hsZ^TbN^_yT=@*6;vQ0=o8tJyWoG*@Az)ON+H?vGD=1U%59 z1-DwP`l8sRjxRur1Zlf6dG?39rko=v9N+M{)}DJs_NhY1)@^ukBg`3F+4h?XSjFxUQWwHWN1iOxA*%vL9o$49qKDFKvFRgx~b09Yp*errt6tt}a>@{bCT@-QC?i z!6mpf+PJ$noJx@eM|^B- zt6?kJK)dwHQ(a4k37lgMF-JgkBHUV-XniByChitHifBI2;0U;wArB5jZz1)+3g0YTYe?B zHJVXZRt!N(k0BYzF9@A#R%?oZX0Zykw__j1``r9jK9%CiTKIz_gFxI6&7ju+puBDX z@!93|CM=zBkvL9~9qO%$P1Xy$tDbZ+PlsZxf(M?^TCAz4#v`|JE!h(-ysmj?F#VEZ z+$O%-*b$^?0*GKgyXHAO^w~6@*JhU`JNj&j^uyGM=$DLltpZ0_3ja*cLM7v71)G2q z`SSM2D{=l`kd9v}Zj(L4V47i`T0@JquWBC;8_O^OuJN{2L#g&&I<4J#;3OhC9Sf7G zfk-f9)?4@*;jR36dOJ)^Lsr9qX-C# z%L-z6TiF-~ljSp$w^hmcfGj4Ak&YhPxY`c|#!w}Hk|Pjw0H|yv|LAc+F(>;dHIaXXB!yjN75=(IrnZ+ zxBF2IvFZDg7NmM6E7iiDX$C6Bx`5_>Cnsm5oaIHL)8X-h?K;P?IT->)!vi4Z8-S~D zO_+G;!Jfguj4#<3o4$G?&q$D(@5DllT*Al?RoNAX<$R{jH}}R;nVGtKGuypmqU{vJ zq7o*xWnQuJ0nB9lgiG*FGPP5M6wF4D04wba?X-fP1gFE`u?#M3bnCo!eH5FDOB~kA zYn6Eu{CinpYmG&>&B0Oj@vbA?0qaL<7?_hcs=wt_=BWc7a9JqCqJis^#|GB}`8W!v zJUr1I*>r)>Ac1L(>8I2)ab?HFuJUy?h=M16BY!B@6>ngp8=NNYh>U`Kk*u-6XdPZg z^C2-W#G}|{c^Mp^wW$$?xvsq%v8k%aVFbXE2Uj`I%=|nBP^GRaMK%7;Tpx@!-pagQ z@atU5t8kyu+Z^%_`jjHQuR?!hYpBe(cBDWA`(~)e65JJfe;|&W_z43>{uJ^B4p+K4 z+*8r`k(t|L#|3y(!|r`(Go>2lncm@2ayHTf+aiq?fWtIcm$pt4k}i%yz^{6Uil7W+ zBNKPTzBmiqgcIfL6jvEBL-|0XXgu^VelI+!gTvUKpPm-@&2Gx7_Q|{R9bzHT_J8Kq zI{Z@h$UObSeHllIbS=;;PF6%y%bjMWc72Okrq4BGg(JS8n*8g~ReqQ!AIm>Zu5B~7 zESuCO4M!|zoEwjF!$bQU59Tt*4CCZPgdtOzCl$)F-Wzo*om7{jBHfWB(WEtQ^Rk0> zKU+ddTeA=`{2yK@lGRVd_~0pm)t@c)*li=&k;?OZP|hkdcPvh*(dV zNKs7%SJp4n>cmG%PmOjZJ-$tkUG5-P3K_9YO5{Yf63HQH#mv~T;+lju%uL^CO-_z{ zN^8eb#+aHFm*`>cwoUw6{Z$YP5W#ZLCSU&xGOS#;ch4YV9B?~ha1xw!_JO!g@31Up zU}cc_>KFkW4`nw~wN@5{qDljtmd4R}pMD_rxq~j{nvR63Ke~^AV zYq{)KUC|lHaHtH5^9Tz8y7=G({+5Ay2$@Hbg4gj9?p}r(Yk3L{i{qTZ=z2_wD@CQ9 z(ceX2?5KNjrEgBPei`4(Z=PShAQDc9NejsHsm1M513rRVc+`0v-^GC~$WYiGCn1z5 zqN9egN)JD=3?lI!Gqm$aP;>x6XF~?w{xQq8(LP5HJ=Q zSVTpd0t1c@YcA8M#}T*N`A`*9lcGa4)KHfVUy@~+wC3OKB*EFvok>6fM-x7MSxv>{n`J1tZ$YYyF}J=~rZqhG6R z*GQRU-df3ubatS;!*jLQtu%Z1Q+fnH3No#?RaI*|s2JNZbT-p!O!TV$0NNt-X;+A| zWU&37Y$64z8r@#H!6B~wlG1AIDK`~&lFuO1IRnq!|1cKihfr-SjmN(8c#6|^K)7dg3tERB8c*=|B_i8e zCJlm%J$66bjMkqrU5`%+r&`35mb^JQDgxxV>-HB_d~ZrynO~%9gUkHIbsX1*N}8!= z<@4@T-6jRL5_tLpRr3?|fT7Ed$G?yNCgBH)UN|219dnRO79&BlR&65dH^X+FZ$rwP zA(;)_3p3O!Vp6g8%KK^i*0&k1YU!!8(473(qav+f6csGnh}Tq{j>=+(7z7^$PlA9& zS89z~_it=o7+Ux#*}d$WsNz*=pknkrF}zB!j#EgR9)|)UblpRh+)kg0OXPYxWLMV@ zpKgkDPeUcpB-|6A`gxKUl5!kd>Ra^Q{k6v15A=>1<39E{WdVL--=q8Wz3aN4w5uTi!oOeujnV`j0UAezm0FYlg z#R3OTFClhjE&j#0tY@3|Hd)P zAVPD3x6Yg)pv6S2zh6T8n4Mzsa)f=1;x`NO?BW!dN-?atz8S`B{rqKip)WZ17vfJx zbix+ysp?mmd{9*^IH5z~bf0kNH<{|$cMvu-x`k|!%hzhJkYl_$VFZ6rRwy`~W!?t& zSs`9cqdD}SrlM3J$yiJ#rDTgL8E(Qr)^@^!bM)ZX?IvY`t1}4$*Q(|wG`m|M9_+6( z69+7(;91!$E2FQUIJCi#;Fyqt-Dg8RQ{Ter(;!T0T_nXHu;!JzY zqMpt9-!=D>M7%V={sz)F8mP69zQujY50YSzW#w3t|FqX<@46}@2iw1cOmg`Sb%un- zlg4A}#Nn#xP+A)0Ur0>RhsN=$1=>w3X?ww`CR&G*p3j6)LJ^*EY8$Hh^SXJH zH7{lHQTQwO4z~pyOq=E;Gy}B*e1(qs)~Y2jMS^r%lfqO_sxVJnhWv!LTgn+n?V8I1 z2Gz=!SNah&&Tm6Ah-2IwDV0i;!^T7w;ZeVJGHK6~NZPB+W4G8=m@R#xCFO0@=-d%6 zl;Z1~AMuyCx|WjF4NE|DP)$rn6t|kNiDElU#Mp+l9u({LPsMt3<(XhrY(G@00qc4R z1v7~Q4%~O8ccPeY+e{9qd09xA0cx-s1RXFkAri#qf_33vD2Xre%mx}F6fvk0qIRJ<+}_?s2<@Yy_jS#`eqIvl@E;;|Gweup{r+_RPjtKIKy`JB4uc2 zA7l=mDN=7a#Mz}A`y~(>v#nJod{RoW5JIIzx8!3QIXi>1m5JeFZ}8{G&sZyE{wa?3 zS-YF4{1S1&8rk_6Bp;^2ijX4KT|EHQ?eE_$d>_g)m4AW?vQah0_4M&^B9{+VxotnZ zjDoH6&b_tkH8b51Op!>M5T8uG76Pp@XWrk0V3ViclON?eW=*OVb5OVv2xqnvw=(n7 zK%N}U_9`7n%DJV@X&Fum3n>RC{tAMT5=(`<=BrMS0ZOJr(`A(l*5grsQEn9SYS#{t zyRTn~T8b;dcJm(yMkT~u=qnthQ$Bx^l=SVtdX*60Qed37ctQM4bm$cSzQI$c z2&l1>)D~8AwQviUhoTY?`Ck0j7-i|o%ajt_6S4k(hgAw_QC1<;raFt6PN@<&6sZZ6 z&n<3_Ul@c-(>)rgd5CN-CjPe0rOfl6V=m_c>gk<-A9jQrqs>uh2CvX_+-9?K*G+0 zD_2z%!5igp%*}4p=GZ}Xjt%Z57&0mOjv! z?h`ohq2;Y!DPh8tfYo_!kvbZPm_Kw}F7fHM!6D(2+vDG@m+gYYR@xx7k=3e`xb~ye zTV+-F*k|S=QuCtbFVv74=sA68FIVUUbK>PC5;|;n<5G&mL)U=P=yPTT-6Qpt63GyC zuG_bQ(<+3a5y^-zO5r6TE!%l)ugtbn?*Rs?Jd}8c=o@u0G(&t${q4VYqXTcvERlcQ z)=vtlRw|WF$M+W^g=*WFgyx&L!r1T=LB+1q=?%YneTCk)bebk1XItFAbe3>Wx+M^e zv&KdADpShRiDhiLT7#OJ{O>g_T-`_Kd^H`Xbh!R@A!Z^XEDm@$qEX2Kp(`_0QJF|dCY)vH!Lhx$ zY0Ju7`sIJfil{YHTwxjvhPL&s?p}0H)sN1@qcLqwZW;Q%2+oVUEqCS>aRrmPFG!fM zm9X}l0f$9d%(;fT9t}LUTY&)~4*8;S*nf^$E>s3MFmKh6$ccsejS7Oj@ILvS39fOG z+^OY)%U?}8BX|r@O{_!r-|-%#zt^0@P2mTc$EQV`h+GGxgSRd9w+!^~hftd8hn{G4 zUgTzhk{MI}djuI&O5D&-V|(@b{8rv!6M*dmA3ddzo^jj>KYj?7k<#fxY+ zI@B~r%Xi)kQRWFV?&xRJ@^@at2!JoQN}OWOF6~|x5?!a9j^NSz3SwviXb>+Z|8zD@ zN}`?az?C8nO+Mi3Wqzb5RxpjTkYBOoxXEB*Fa^8J?@&YPkB9w#sA)FOrF^qN7{rCq zBVhT>iWV(Ds&H;Nqg+h3>o^=mTV`?Q*}p$!ZD90J9qA%<^=!$XFQ`zFZQ+((8Fk?z z-gMB@i4<$;L`QyQ+GtLGM{YpUAIQ;OzuM;2{w)cxBK&^c)c)T0*k_lrIh!qQp!W?+gm;k8)1)RE9w4#;)C#+SKsG~X|p(yr@C zVG7rrTi{!5+Fz5bQXOc21o?JM)j}U=EBzET;7Iq}>x~fgLUpZoM;!Qd$a)fmOlpE7ZyJ}-TQ(y zz`5M&)E9$ZllP3->5uJBGh6sFA1TAC0nNSx8$~?v!$|EZ4kjZb%PUw0ulXZUL$k@(T<&eMn%qtu0uH%;oe|@@}&o z28&KbZ^H{5o&J>jiDX$VV1z}W9B316t_+|#RHdyD_Q#YUlNk?Ubsp7?`Gm)|1=KFY zjx3zDpi;VceC7Jw+<=0NZfiQ_d~ouC_j4(m7&bRt&H7BrjkjP%Op8>lH^~XsrqKO{e3{)=m@%pfIjpNdLWE3$<8f|YPvB4Qe)tl(bhy$9xjLT854tV&=TQMF8g z3&|W}{42K;PnV^`GP)b8xD0A1{XX`JEC@Z*{<7k`y1+&(9mr?odBV~;+zbhvsBpK83Fs_F%xBt6Q^l@ zDi7{=);xcH1imVLwq!GC`wv^pWGO-B>Gdg5M?R_6xT9?y42y4FRtg$&s(6+|vGq?n zc;u(m{G1{L$pWU%zjx0r@}~$-N+@|&ql0jtmX9cc_vw2DM|in}R@H3alxFSG?F(`b zQAMvFG6p>rI0)nb9M|ss!^gxc{ z$>B6mFM2MiNk!{mwDuDbzpDaBK>liFElF9wgkmf@8}qb{p6OQ=ehQg!cRJk%oSQgq z+74Fg{T0z7{1cO6N1B=EvpCx%Vm_T7K>%45qZVC6SKcM!;}hT=AW8!P+=5MM+w9Jf z)g45|NZa(R#?Vv~sOtaI^B}6&Q0LHIcRduQUF^G<0;EsSpL%I~MH$F=8WSf9mG;RN zpb2-HJ7;jNvW{MOMM{te?D`Yt#`?4$Sjk36Ls0+L(sv8vHE z9@`?$1>0k90OgWITHu%$57dm;ILrPOVq0%xM2E>Ye37XdQrM<_XxN7nLR z%OSKJ_Ys`*xwTakZ=FAB8y`iQiC9mb`9l+rW3E{TCW1`>S>)M0wlZrwNlzD4SaHFcwiI4(Z(aapH|?IlSkQOtQ@j39MCq&EO|;`)s-%Jg!#xd1 z^3#%8-rQwf4Xbm#q1N4t)}OF0QrCnpqncRqy!{Fhmw}#r`>uxwOuk;W*!bJIRNup@s|kUv5rXv@&$9=pANTYLTP>e0@;@`no`A?Y)h z$IH|a+B8bc#)T)Or0uvz!bL|sJEzeGRT7M##-TaKnkcZ+zHMHM? zMIjJOh|{ZI9~NNWA)wV(uG4BmVyjhcaqREMTI3e?OKE!_^Q^#Dzw(r1-? z8Epv~ij3<9m6kP_UD)?wmbmgK86VHQ*8kE}#_BIsnMlh6v4Ow1)RN1U1Q_FnWz zKf78m6Q=Z`Q~9OCthC3lfRaAug<5B}|2KX<`Nzs{3?4MAEhfQL*q#8>TYiJV?izWX z4Rp8WnOLHJ1{gZ0l*r+mxveoZpxS3UL*V(!2}iEyHsc(brot}aQj_KK-w^nP)e^_L z=+tc3IzTKBXV%!epPwW9U-|951+S_YYGN_f7#?1By;Xb4*Y0r+#ILlcN_p9YU<3vC z<`(p=Q4d!|E#mdCwTILGr<1>bpH}{SFj7>-|3b>dKKmq;R*W0Y-T0TCJ}`mT_yiz> zX(pJc-sD|SxDK#zOJC%a{b{Gf$p7VR+3SUVw{h@5{E zV~%<@Tf>)Yft_be6+(i+FG_>N7ahOc(A`|sG3HYNrBjWRiY>JqYhlsJRG}g#{pJxj znrMt*Eb2z-!{xP{`h*=l(Ug`{*Mqn^{hP&r=1AT&jaWyP$gPzdCjQdXL#_-cSnv05 zL#$6jc@!|=Fvhh3pCXxMrqN97g&qa1r6R^XMznugY2VIo#+HhFC!;b5U0ZSdVl(j+ zCHZj=fEe!M5*_8k*_r-)a_Uk15T=>0?H=-#FIYFnYX2SPacK;A_g+tb^Zvu*okue5 z%ws(D1+Qv1F|Wi#k;ZJ$+l7`{-F{G6=z))In-pWJ(uQFUmCzRJ{K`W*?VP_&Wk$hK znYAZ*qTi>q*QHC`%zf5qRfwo$sx71|S)`|zP3jdp*kv>Ai`I1M4g=-1oPs*%D-`c5 z=8aJfq)cIuZ4Ph0fVi;_7rjV zSq96eJ(_w?q$zdsCaf6|Hqxd;Gu+q<$Y+!K*?pcJ64j_@@)_6BWK0!JA_fINYD9@n zFVYxpH4GEk_$DKiLO# zlI!*B1Cgd#r2X>|K+Bw;YvG(*;;behRm35%DR7_t&j~ypQgjP^+#1zrjnlk3dZ4Ql z{i_!bxVy07(2i-(V#AA-b`d3Yz?Tl26`~*))7>u`d`i{mxVLpl)9G5HT*Mo6z^*4H z=Jc&&eRJ%V-vZUXNB6S#yv-k_`GljW$2~DNVJcgbH< zk7`~g{@@*9OJK!*t6s|60rz$tIL6-^TvHZR$u%I`xbe)!9gnGcPA4Jq!Ak-OrFK+> zHw%eLxOu3-w|kT`3q=xFS~oI!JOj>n*oV{u`#LSVnVWY$6?8Z{L2rojp2 zSml^?IjHA&N&APSG+YZFdA6XRA#cgAjPBYKCseazxHOPzdnz^qRTtbQAw zrQ>}oTXex(+xz3}MVc5ZbHEr=P)r-Umv_7)lRMy0t3Z zYdT3ovgBf_8HhE9-w2Cjpyzs_e^!l<1x~7{0K`hsV=ZV694k?3`1$DOZ5w}Bu0S>A z$z$GJacGl%QXAOJm8F3X6^(pOH};gd0qIkey_TB^cjKpCG>&-IzYyVVBg3jBZ8gL~ z#Qr?W&5MO{?A#jsC~x17$2=_9Ig5s~8pS$|VR#T#kabU&YI^ThlgF*;qYAtD1CLJ1 zsoUAeNBl%nllRp~Ji%vRD=D8jZFE^+OI1lg#BkC|K2v$=Si7{PVxU!wLwM6j&~pw8 z_ufO9_{&x+oPo}+Ogf>fW3E-2|rIwM0R7NGK|`zW~u zpaxJ(2N9OXtT;SWQ-U0y9_DB~lbBv9o7fxfCygPut-x8Xa3@HH`()E+ zt-FC@z#4e-SO;e|v_c>@)uaHeXI>_!Rte1 z#)Unw4P52n=l|kPfaWoe01NsI!y0`u3lv-rPf5)MLn9+2w@k&QMx`(fELCGY1mL}8O1mdDABAhk*h+N*6%ytRaZXkJ z`<>^p2;M98P3wOocv849TIZ3i%<&g_PX(S@)be*BW^_z+rRC_kf+r7I#?l1y9k+LP z1%ZNJ=5-R#Jo^{ztovd#IvWOH4duuD;`^kd?Qp46yu>AWIMSf*xKLXNngfzDPEm`J zB#%0it<5`4@c-2t&hS=dWaRh@m>H_L6*nN1`b1!TYj8)xYJK>aEN__oRUOfD=bpYA zieQ)HPxp9$;~z}|oH9UGmj0jGyQ2Ib)}ao>7p{N{dvz_brKxkEr22m~8}q+}Yy6gh zU#FXs6y1#R+gfHN_xvK7E7hxmLvg->;4k%e7$!99%tQAPt>Hdn@vR7SXGoc-8EU#s zG!eDRq2x!@ySDP_G$1{f$?VNj{aWmG?+!E*pun!uTS;}HS92W=f~dv{+%bu00Gvi?b$V@^5PLf_hC}& z%o%}`T7>hf+)WamXE=7(eDy{>;<$cABOW9GOg$efRad@cTepj|F<24|7`A<0Dj3Ut z7thQYVR=CDVu@ZfG#3hhTgXnnZ-oQ3#sr-+J^R1Xp z4yyR6H27JAiI~`98&KL-Xk_)(up{%?Jd`hTQXY)S#tGR&B%nNhRpaL-H7qb*kxI*^ zC5i%WXVb0kl5AW5sJ%}>i-PX07elw*gF5-~c>eh=Qn53yX})FhN13g2OX}U>07YI< z9kaYco1?^fI%PYS_o3xZW-Ic3&d&E-j#&mF#vw;V<7(f^#RS_n*Va*$XWB=XNKWegvYV0DHRt*Q zvc2DRaQhq+0^pwQ;4{A!`A%ndol&*@<1mXoq}}L;RrJuz=1)Q|+a;=NZH9+-6STwD zsP!3vBi5aMD!EGTOUM>P-4n-jZv*RYcdneQ=@YT~~vf8U#NYEaF%_7*Osi$in}xI;y$9eNgL>vA3q)Z6{^VWv@#x zh#`VCZej8J?9X)Ew7Tco)mp5HN}p+7;fX_u72aF7+Syzb+`>f4+T-&Y<9fdeH5tklR9XJ6YTIDkZxGumM-qWW zJFlxMOGUEi?r$@|@R|11^cm&q#0FSr$paBrLXab^*ovvGLTiCFqWiu=0Z%A384I`8kxOSa+OAg;rlJ{*_9oVe_!gc`%B>2vV|401tB04P zY3e4~!}e&g*V-exk4WS4p@XuvCevv)WTq=KdX)WRZ;UHwZn`~`nR2%M!PotP_L)tT44=jz;QPygBaq^ASI&vo3jCCkxGg6*zQe+ zT_s`Tc3oa8h6!#wf}E{K0kP$!%NqXCd5ehwUuJ)b{Fr|WLyNqwk*iF(&Ji5i4SjZ- z%6_O%#SQIjTt2Oh$jo{qMjX3GLn8G|4lyHXa+vuhF`EFI?_`UF+PKX6IiKH9_!XSh ztVT6@r#&A<3I&(x-7!_V8{=2u9d>OZ8{gz#&#zU^6)n{|?XRcOJpQiCGlcAI{oOrr zYxJr7@4vTeImz!Db-6c|c{^$6LoDg3+gO#faku~GW0i8ASf7y~RxkR4m;8rVzcf}Z zMlex;f_||%JwXR=V+1w|P@GxT#k6jR=?%R{$oT{2%=iC&7%^N_l@^BS;YBSs?h5lJ z4J~z>Q*k8;#!o{;$)P-r+(yPF9SDI!D#KHQkVsfG@TM*I-hZjW2lit2*hK-BNk$!7vqcM})hmRV}xT z=Qm{lD{<;TJySJU#c_YqSgxe?2rHy&zTL{#?bitej{E4W&6@3M^Jfx;QYp(SZKj8& zDn@=^bFx2JCl;R~iJx8S7z*KhY-udJvAN`r)1Ai_C=2cGVEy@8{aY3Y4W z1_K=AtMcZ!XCo5QRja>I6k7&V6iwB2I+miWnq_)a=dGr^<3U?3oq51#gmRPlD2hn7 zhFSv@(bF;Rji0ZcUJG6-S*i3?lL^cXdvprPrWtw{4;FfnVY)xpMnKvV<{<%sjhUVS zJG{_2QVtYsWFPi6i7(qojw$VNuD;jH*yAqkl2N3ipckT88?+>1$b=ByM*>0Ci0_W6 za6->WCHP4@?_cND%5Pm0qBICQ#)+MLft}3m%YUFThox2TOo_AMGk9$FxfzvU^+eJ(+##gs14UVMOg3ilgY+$?@7ZmISB` zX0^TPaU(t=L`Lh(CmkuQ{)L86i0u#is!^B36CZ8izLzP?A?bdAV@F+mNYhPp*2qx< zuWz^iBA7Rv-`&!A*_Eznnqfy-1*hA`ilbBZ<<)nZy~N7A=IuDQlQCV^lTWzcRT+)VWVGEOoo5lED`i~po;uhY<>a}% zmf62WyMiqa;7TMw_-$C%>vm@X^gnQK%DU=RY`JmjmXx(&;MvZ6T+~(aci~SyiTr1H z!->{W7F-B17w!~x!Xvq>T-7biRo@xn?O1 zKNHS#qQ;Yhb!c2PgW4Sxsdf2XrY))w0WvU*&K6S*GKc>L}ARHr+iJ z)c)*71n6L`9m&Lj-58kVXt?>(ZFo!@Db}<9V^9jGtW=Aa0v!!Hu=$bfQWxS))61)x zt9~|aW_4!Z0H@4I2UEzmi0(z5phr|yMvfKfMe>(1F&z~`fK<7&suRGdsd z$HJldV;#dISFn1gyYdvKlU#?Rh>i;dq`$q-PtP0Y#CtvhSQ%$gLzUzo>*THCOcoN9 zRs2b42EP9;^g-9vmsRy*C9pobw~$g7J+r!**7l9ci6pP63>aZUQ#J;tV^OGq!e8%; z@ECt*|4ML}pyLqw?@ll8na10Rg(@y`gf-VemXbj|A*jIieo)tC@Ro~oTDTA$<}D@1 zGJ!}V+?Vu8I$#Uy)N_dxbF>j#)g!KYQ&U?eneh$hZ5<*hXB`=q3=affx<@gk7B>7i zT3Ufqqim{mg}^und5K)eX(R=A_VjVhwHqkpy6y{b)~H6HUOjV&-5QRYN@Zf!*x{(AmulKZmYw>JLc0N`~|0W!a)Y*>h}n#ZBqwJD2Y~ zD4$T$FI?I!6&nS#@I8-re? zWEl8@#Q>5ZQpy;Ig!$QutPO*SIY1G*HY?$C)5pM>Dg@8u)(pLGzw-Ru|7j$Dmkh*W z{g8gYp9awJnFxPR!jpPlLl~bZu)=&IZ%BL$yOp|jX6X9;+irV)&Gvqn0o$6#vU<2# zW4g(Eb;fe!Q6|OQF~mHh+DctY=ZEr!MWxlcH^iz!9@pM1>LAUqhaW#^rtT&e8DJ7_rnI)JXj)4*lN{FPj#p*dOVwRIg4 zv#%2;EJ(~WUi3Co-f9t zxGXNKO}f0qU)_?*&hpMApPoXU5!dmDD|F8z=G}?U+M|7xF!bf(QdwUU2U|%jD^f}= zyWzR_QgNtUW9`~_#O5?7bv#pokAvTb#WoRoU*#^hbswoMOc2tUImXbMvBf^R#L3~f z+w7bb#kU<%PZtAmd4J8(MtH|2C?;CHg%my?Tra3=<0~#r)Dt&l^_4>`^GHssOX}71 zobwy9a2c{0MV4K>(W*1tX(~mql%>*rP++S^xu<%z3)COOav@Be3eINqnYYRPNNqmv&drB12mt$NY9?+mDSrR{i@g^SC;8g( zFzfoq%ZoHNOs#T>2Zknmd9W>f(@*8QJ8gNths1W?i!^n0jWsK<2as(XwRUtz{?LYW z{{+b1Bx3W8-_H&RTx?toXSLGg!aW{A78qOsbPu|&|9STMRW0^Ht(UdpL2ej5ez$GOlpza9+s{%9xm)Ga+!T2xWV(^SpQCI$w36?8IOnKP z^R^-$xF;ZSAFB@<9Q`jE77&|l)j50xc_W*$5gozy`6RAcU-MqN<+lf^oa9Rq*o_31J1|*B{}4PWw6qhkFET-`fB&I-^~E3y za*vNz9gtMq(>EBnbOX&O7&&bWvT(9~3L~z6p&9tCeIO==M|z=7|)s+rvzSOK<#ubKbxXSWJIAAw$1VDQR1#e{i?s z1DvvhZyepC*u-Kpf+s|(rQN@$nZ!X&jD4&;*@L5G+4_-}kSH6_wtRuqWxMe`+G>_| zQhO^ir#W%%4@$+#8@aMocwNVhrLT-D8LtVuX0@owcsKahu8dU}=hfCN?EI8OZ1amB zKuz-rTXRi&vMfK(!A5jQ{g`Z2Q z)?F_$U$-jNnOrZ*JFEhEE1o{Ue9#O6S8=<*d`+xoWj>KEwt)-!Y7Tb0oj2>7LX;i* z%_5UymOolDmf7i37HC~wwy?RCfaC)KVq&we1nWzW^n_2mb!=slF5k3HzKh~M+&wQi zo-d^pgDj3cACk^tMCsXE)fPj}X~Xz3$W4Ur+6JKq>UGEk$+U%E49w04GpbNM#hpRE z_D5yz9ESabV;Fnaz^qBl^IQ?0*LRzkCec2uHX?13S!N(_x>fO=6p>d-eP}@c9l(Zt zH||4dl*Pr0CEGa!OQuEe5zgBt%%gKKK3@;G(XIx{d-1V}w^G2_4EH!ZH?au5zEd`6 zkbSxeKli6ufjFMs^BNl7`2hJidK>NXDBaLVqMWs}?s)>1ZWX&~4d$L$lrL-c#2zv= zf8(=9d~k0?I=*|>zNT5RO(AuA}h$-Q!-f)HqhZcAuli{w?!~0p$=PZw0^`2KT_RtSk2!C6q(6taRB+T z+oPy_c`~_vo>v-^wiE}Bnq>BX5E<_@M$AL9H%1iShR_;torTK-ygbO(PL27q{E`>7 z0y6hK{L>xn9#O=WOG8~1XLIOh_ChBqSa=2Tja>bhBDBPqMvs)ej9+l=Z1qAA{X8ir z0xP8hFsxZ0i+9C#kJ~G-{rc_a;5N6|GrKE%fC=!^w6-rA*G$sCze<2sz13ud_fLy1 z@FpxJmwmK$Zt8{UE>&!(fJ?V5MFw3`Ro8LzP^--4(QH)M-cF)>9-8_>Y_*+ee`DQX z&p9W{vUzLd8<&vsPU4MllcJ4d7wZb4>BoqtMUiWj^u55Y%`su>$5y=N06>dZbby{0 zrh1W`g1T^V&E|0ENk{3u>sOW!*_TYFu1dQ+s$Qm8GSOZAv}B%2r*B1h_V;Zy)}pQ0 zT$?W=x=3p^0$0?^jt{u&+IL?GA>-jTDliJkP7DukYcE=aWk9X)%U46520D7S@bOFR zy5l1&LeE~L-}Wj78^PhwK410zCp|Tv2F)d4#C|;of0TuBXhIQTtydoxrE=CjL#fD0 zh22}h?ZNc6AhA5whXtvPGx8NxKl^bszfec;tyNVsi_A52rx~eh%r;5uca+bdHoRgZ z@BqwxUv;ogW{}t8$Rhl;+g?tA?DR&5Kl1_Zty$eVo^i!Y-H%ntO4?4SQW3D+eqc!4 zb{KuO*?qZK*?R`OFa-+v5W-#?`~31Mv2V+NO}=gK>#py4mA>db$v~Ufha@<7+R_&W z%MXzBE`9Qs;?zIV87at*h1hodn|Z(yn}4K5W1iW-i4VFjE0%~UnZJPlx8#L?%=GvJ z?{;ohPcn1up0PT`izC(RwbTAfzhv;AWW$`c{|ke=zBx^iXj2$ORT^;9Ml!$SI&Ocg z-wf=?zvUH5f0PYR53pBSpaFx*vTWqhe*tJrS(Z1B!3Q zI$oU|a_@F_vEM$gn=-GMD7G*@pVisb8ALg$6M-}heZvj?8h+kP+T{12F}j?Jem8AG zTF$q|>r`ym0a{G)atX@|T5HY{(@K+7_VRPBJg}qbL~yd3>@}zwI%icXkZr54ANAC@ zMC!O3p|YiW)AM$mRYdfgG{YGhynNN2Mj7oBa*5Q=>-+<#=tvZ|1c*%V#a!H%iBOWj z!ILCzj_G(G89))VP*;TXFl(VN=rP(rIvJk8!!W}!&dly}JP7?R?03(+o=4U|I_bV` z1WyVKD|ZznbcNoo^b$?hR>Fod{MTft{^X`bX^)-7Y*lWN33(Z0p9OqlSh=7n)A@5+ z5NciL^V_^0C#!plF9iOdBAJD=g7h+rL08wS@#~(8!ZY;uE`0aolp^W|23c_ZvL|Sc zRc9CUJO_M&e|rxgoj~XtAf;jXj`T1RqG%T}sg4rzSTez9ewS8#73;~9ng8P>ez@JD z;W?zUdE2PU|GOi9i@=7pU4~s64norX zz4RVPb65%YkrY5y`yS$Ob0NU3asU2iRBKm$sWJxp9Xe8zi@@s3mW9Dzyfrh&`zB6J zA#2lRnN?-^7asb<>N0E$E4sV3&6q~FLRu-u+XdQi2J$ZVv{2nQiAm%gM}jkNu`Sb= z{ETC=RUR|U-FrboCerO+?rrysTUs&IBd{fJZ}_uMQLXg%G^pc1F8Jf;=x_uI8@IXs zEsslEVNk!VlZ9)cP(;irq4BaEb1|Rj=g{BkvEiG z`SnEW&PX_UXlE?Fhkv()y#^C=UVEHN@o2&3^*s`nhi;$iJ>M)(ZrViOMd*@G`wvj4 z2!4@YZn_2PpZyD&*V4jYgGY2Av(AnEq%g_G0PJVHo5{wjP~$9k@0?-9901TKy>%497=O9wcVAQaamm z!$)@dWz{9K2LK@bTb-}Btko=KWcLgJrWE&7D>-hI%_(}|U^rZ$6At!ZNAbE_Gq0$f zJFkt^`!LI@t`Qbslcg^%f!w}KN}!sgF-u7TXN{rIwfmSk5zYJh^=me(3g6U4)@y}u zReT4~&t?)6+2ic+^!-tUzU-WfWweKBW4hR0OokK(|38&k7zGOELXd<^8O!tfS*Q&p zqrj-?Mitt0O{XeV~8+o8|i09;aanM3QnoVrP-CHmXFIVtZhmoZgu7sMv}Y{~Y@ zZ3hCR2%bk7QT!b(f~P(!;aW3v{9djt2F;M0v1bigzdBv}HwCaVg3Kdy;M9nYCW)0VC(h4DTs3lG_~kNrl)gXt;^ zcW_J1#UoM2*iA-aaX8stZ2q&EW@UTRUNUh9-*(dZ^F+A44rZTjW0TPe5^dKk-Dr|F zwB)8GvREN+pD#Z=9~^xD7#bE&kfP93V7atoKSH75GO#ms!e3A3=uT7$z}}M->8gC- zCxoE7QYeG9$#imUwd)^Zn30I4waMbGp5BId0QQIxPsKlm-)mLu|BkRq1hFd#mLUjr zrUX~N#Tj;9V|IJFejsxY=o9D+IH!9lf%FSmTUT)RP4@KsA`$Ya@i^68sL;v3zk9ga zADNiYY&rB4D*^#PC{I-N507Q#CRQRJ<#10H)_b#03l0^68oXIIgzBSBF$;+wx#^Db zU(VEp@37$2a6F~+BZ<-cibUJ~lQG6-vJChUx5AwlS$y%=Za)@&v`hq+rL$RSf!>JO z@&M2Lf4F+fxHg+@|GQ2L1&TWqcPQ>qiWYZwin}Ig+Tvc^-HN*=K=I=49$Z6k4gc)D z&%Muio_Ud1`CKyB%$hZ8*6+LK?Y>XxgiGeqIw9mDyaWeRiBQu}zcyrq_YI%Z@I_6E z17@di9fnGeqnCdr0e(9wr(CIpf4M$y@aTX0VcRohxS*gdW!c1GLpsI;jtJ-uME#jr zoabT9Mi2y_F{FrYxY|^>X3A>>y;>%UO1#xeB1(0ZaH)#FnzbXv4u&E~5=%#>B2JNc zKCxVVflSNXlL>Z1!#pzYtdEfnB!KgTpsDtB59%GDoer8b4l~63daKqYYHQIebTX2 zIOQXdB0Ss!!@^&y$QN$$6w}(Ss4qI;ln0U2Ra!*6$ogJ&{w1qEyP3xTdd`RNw-q5V zlSxaO`lA`Jo9Z`81oDU~5lwtsoGJ{w!4Ar2-DruzWw~aD7L0jJ-lIwAlQSZGP(AtBvR%Hb*v3D-(~y2rBdy^xBvbNV1@b! zjkQRFDSoAi-|3O5>ICsBQ(sOye-E%+1QE1u+Vc@|LLvX zkJRwOJ&D+>&_g^&G39Pgt2C}ie)}7@_Fc|NTxnXxl70c_J8kG=h~{@;H=~8Nh(bhI zeW+fBk9xXcIw<6q__)|Lim+$&FzcKkgB<>5TfH1#A{m9F$5hjQ z40zb^T1xp^KBUm@Ii4zvmCUmH)PIexY@*3{frow9^=|4e<2_%R9M$5~p?| zZYP}KmAAw~*JD=w7NE&sl-!g|*D$+<@Q@Xc$W&T zxFDvz@a4bRyj7-NCS9MA5Y>aI{r2J%mj>ePf-};L3sB$t$AFB(Dq=MdNiAj+PhLkN zM#uo)rm`M*{zFoM=e(v6`i#<%@#8C$%|)ApRj|mz@PE7MV~`lPm539V9Jc7%(-8qW#1 zl($j%#hn1mF0(ObDPbfVkN1GB%-wak?n8Ea{9;I!t#GtRuYwPSnbeP=bK}3fZTm;6 zZ`}g8U$a5MC`zVT%uJuNXqU#0w~P^au{K|+{yZ>>w&@jC6Vw`l{+^-jHq((O$~c&> zZGdWBavspc>{fJIJn%y#aAfBFzme8!$L=!TEhFvPJBthb+KMRzHic&S-+uH}^S_x)4;7|Q!T>Wq3@ z`i;t`)2V2$P%(+Stla*1Gs?(hw0hCowzxhV4il?Fn5l;z&D(3e>4F6m1CIX&V!dp# zbi#-LED@;6Yd(QB4JG=&p|BHqsZbsLEwV?mEKdz8{6v*Lv)D2GE9yw#?2W$Jos*n^ zGur0ySoM_1_kypBaT1I@$HNp8oT8r;AUGDHs>xQfwr;!~2Dcmr<7;b((@DuAbS&82 zQ28ncraB4QpnQnGTwE-Y{zB1=*(?}@sfDURJqh6f}va7i@MCaxv--P#5Y}WJ_AgiHHeYi$^d~;P3 z(B^Z=D)inm{2r5O#n)l>wd3qXnbf220CZ(y14XMIt6meSMf)8F7@4L|;XKSm@iKs{ ze(hk)Xm)aA2GV_teuw0S&i;NhCx#mBhvu9y99eSCnJ( zflNv-ie}Rji_HF<5SNgeAdk05S|U*9ga^#i#!d@%>cS5hM`Xrz&P4nxij{wvy3;LAc5L@m zD<8ofe--o~L;VBm$@W}g(NEvKAH9eqAa*fZ5HZ?Prz7_DEqU52bDX)*rHr#p zG>Akg`)pjC0ChSc`NR{MvdfEpQa3&KaN7%RM?J%Nf9u|D#->$z$rq0g6V1 zgP+i7Nl~2)fKS?ibDHuJ7vkhdE&W*EETvx#Z8a}E$V|&_gQD4Fpdm^nwiPkZj4SHlQ>FsF z!C%oT7t!n{Z57oXcU-bJGgA|?7V=;QCmcphraoL4jq5wO-spX{&1plF^4aoLcAap2 zW-P{X2lXa4%=1+HocW@vWbfE$tE^v%m*DeW-!G zb@N5CEajWT>b26e|BVGi%}Ff`F& z`wDd6Z<1wX@9&&V!^^s)HNyaX(XZZN5RyGsl_sy_BOZT54svpf(je|IhR3GH@K;d~fABXFG}|<;U1$;k(0P4UBdJ z_{n|)$|vS>4ZqN&qbMBG4-RKNNSoxOiU3u6h~1C1s2K824$}TBb#=xYIWwLgjcRJd4`B>x1c|#Cf;bPd1JpM z6p~E}rxz25-b*3utzAx;=QraTD$!h{P<;P^I6OZrIvU>*A|SYl@&FyD{V6|#(p>lr zd=~n7ohiU}u|zf21*XQuTGFG30z}^r(mA|xP|fz56YoWLyYNT2iQ>Zu z@mN<`*}@(^lOZnh6$|M_*?R5e+qsm0}q4Ms-J6NU@O9! z*>bg{2aGt{KhCRKfA8eT*$37m{Hr>}zv23<46*Gfa>-qgy^*N7R6P_ySIeK({8Psa zR~wZm&xnz?MT;ff!(_Epmk>3;_cH{HKHwrOtv8l)jMYPEUdyq6GQ0!1(oWeu)cE2F~0P7LbuEz)m%t^jruv}GCf-tw9(IYII$w$(= z4|6XN+x!&%X|&NslJ9@_yohaL%#t6Uw~>$r#Bl1vB-@1S04$%E*yT95WW}{#)8>Zs zespREY6n+63LObIW(-ji?oqvXmGYFtV}O=rDUd>W2kJBO#k6o)_E2gzq0jHXCBv7q9OemlnTN8&rF)Z4v(H{$gRfqo7JNJ- zCEqzdZ*ghd|l z#c5suHNRkstcCGZ0QRIQl|M63cFi~;3!iFqbXUchhEH?mcNJ16w!6BkT2@w&9FEBC zaA3fFVq?rJ?-)5EfMI}Dxo68KS1t9<%TwAd$!ERtjMEj=t`lNOd@?ZSs{Uxwbbkh^ z9}l>;i9kfYE!gw5wap1MBCs&t?5c3*IF}Hnc znB3UZMTuJ5u$wh$f70!)lTGu|wj4@`k{8JQB{nbS--#S($Gg^pdsmS(tB;6r(<|hn z+!P`)$F|Idj5Fy=Hw#B2Fs@6|#9NaYi|66DZ!nCde&Y`B{t zbvSPCgf#B~^OL6CkV=ily!;csS2ZvcI45owk0Mw`F3#6Tv_G6dc`*hNI+2+9Gb|+2 zi@XNX3XL0lHk(j%Oe)&kzQLzB@b3$*4m+CTWmvV5nPm)e4x{9P=}Bq3q-kqabye8@ zW;Mib2zr!x>U#Kv0IR)@>UU1BrWFaGcaX=}R^ozPq20Hd<*bmV?2AsM0`PWkzb!E- zEzPT`UI{ea{6hL;x9nTwI51+H{XNxirUj)8y|!qgGDw2)Cm$gj&5@!qC)<2GlSNrP z0YvcvkNF$s7^z>{OR|p+2&O6o;MXhReYK8a|0u@Q8Oimcx@S?@WF%g0TYb*ufYEhh zn4?*}rmbIhln>r(6rOP%i=H4#b<_h!4AD-`C|E6zoQHf=*n2yA;erMRRA|<=SeN4uqjvWtd*YarK|M)7%u{{ z%cg3foEULQp39f{1!0qt4(+cg*dHi6+LHJNwMV2&T@_PX_vr1TwaZ?$_$=hyqf+QJ zhl@8dTsLgu!U_O;m49w;*aedDqIw5b=6wv!oMmzy7Z1Axif%ygT z>Q@MJ@9iJ+hs7QYb`QARr`6i=IYZ^N$80a7wRqXYBvs<#p+VM|Q|9BQoPo>< zQG7Zh(N`++nMN$ptjQ+ULo$AFvU+z!931>=l~?VY8l_v6c+H%H5|3Rq%{MWS|I#^ zC@Q`!k;kTeOl;a0OtL(`iHOEPY$61wzh=u0c`^GBhozUs6CXOQI~z^MD1vtRl1#hr zQqnV4pRm!!^l)7DjlzM~mZl9bDI-D4pNGlZs|l8?kIS-{-JM;&BuFRm0~kpXc*JEb zX{0h+@d?QpmM!#A@kd6c_FS`RB z*MgpRDhx0js}@rT;oDW;dataXb-So58JyDLSAY_!4~BN`k&va#-=1)k1y^fg_9Z&> zD~Zf^doWN^%u$t##KhAs_5mQwPw(F4Vr3v~m~Fz?t`=UzE=Y2?k@rYzzgk`_!Mnt zOrX161Ky*ljqlMfO=+X1d3dK{DMEubR2yxNP3C5gj}~iV%&jut4m%Vz*nI1lsoL4G z?B$u{+9y_rTFzN3?+i|eA6F`u@vZMfUN1xl#B?aK`B!zV{EK^jW+7j5<0-rFgR?K}{ib$?CXNx?&=k9yAO4b*ofqKa&RZF8tils6}T1L{;|wF<$r) zy59Z*=M_87G(GVeQaf+?$ZUG}LBslHA38o0+6}RnuXj^ZoRvf|I?~E@>j^r{x`W@q zn#+($L0Fx-`Lx3#j-UTl6VV;#Qkw2^b9=%?^H$zQy#48?I{N%BJzt>BkDzLmq`UO){H4Ren$Xk_}(v9k)ipWrQ=69)A zoq2n4IcW$Tt@U&IH1m!8oUAC0dk&#XxRXUmd zc_emG_TRGfMQfJT&V^bnz4-du^>sl}2$isP^mcgndu|pP)z-c|jyE{@sgM?!W|4u; zDAY}VVUM^pMLg#dQ<*ux{{ic&&@I~(*=+5wH!<26q*pM+t<;xX%)>>`UX&vdQ;GFk z>aBDVQlsx)mI|p?OFrzn(V}py-_1hCn3f*avP#OGb^4&^hq~Bl^72n1fx+CB28(~W z+pfK4%xH&>ldI?bMTUgU7$_VVuT!SufqtxMhlrR>>ZANQL%h)L-i2ZQE4sR|DzlOm zwWRq9vk3uA$3{x~G*`x@H}bw7Y>~cS5@B$5I-8_v5G5Mcnc+x9U9O z^OiC@1YRam%4ilgSJs(csT7A*CN;n&TF;17bFXM-shL4t)V2{^nhdL`lf#Dvja!8L z@!BTN3Qvk;fqJer8u8bd3A3qEf(bH>eafX@#x{;-oz>{mK7vf4e2;uj)Aw9cqe1Zo z`9^tyHf-0Md5`zQ(*)bgTH#Zi_>039+9n_2kH+E$*zX#io<)fe3{a>;4)dFYvVlu{ zw^>&TMJeof9#(96?a4CyuU*`|_3FZ|GrH0j-EM|G8ReCaOiH?i{X0Cu7^a@T^zr(7 zaoM1PTbm$u>>F}D#$wX4^1{-%wueO~Atgy6k91YWyy;~N)#5&e@>wJTO98bfM^qd~ zB$mL=QNcZB{_AZN52W>)Y*m;?xgM0K?7{&BhN}%69y)wv_hxmnY3nbq%dQ!AdF>W6 zvKc=`Kd#J50TR%v=T7`)1Psx>*yZZAB|4AdtJxX0H=4`t2E2a^2?IDJ+*Vi~%elvzKo%bmOsjP86cgF>m&xv(Kh* zsMs*nyo`peu9kE_JTB{-U$pns{2^AD=}zy{9Yq3J?A?t_9v5)JyD_DuA)r8O`53=p zA1dJz<4iljm}?ABu%|&Puyk;@@tHfuh-GS_2*>7FB-UQx#~qq}GW?o(Gt{b++tTMhb9Le>%RzAbr=@V9XV0r_#x(0=nqPxqr2ehPhL$PpW~s-%mWG~vnrY8faDvNbaJezOLf71J ztSF%#UHHbTMI>Lu%yt(RtYgmIefR&=9z>$C@Ha_bV4ZvU<-cJ+^37~g+~InvCF5Nf zRHhd>PAqs6<|)fWuLg4UCvx*h=A1*k!02uA^CNs|^Yzr?ie=KoCuK1Ukf<#wu=w}- zf{h7taKD6(*%hzK$tOktc}8+?bD|onY!%6$sVY$ZgxC0OOL~>qOrF@8#^y!iHz$IT z0ZVJ650@uh#gNu*4*%M1S|cvq=pryVft#cN&L#%*n)#?_%4?F;oi=J9WTE8RFw28< z^RO%QLN&wvrwRxK6?NO9?q6a;3Z$5j0OtF?O(cE3pdnpkaq(zwb)azsJl{4JJr0$& zCF%XlIhI}bM$mqGTGA~agT6xIFD`6)#Tx+SZv_@}f4{Yk>$!e6;Qb8*f6Ij@vS9H!fY5tElc;jq{eN$}VoDW`!eYKbt9Aey+F}%3!BW)N*hU zChpnJH-tZGQMu)Kr{S3q^U)&@85621PIP_hMeW!bzD?MtfOS3C7P-E>ymL46t611c zDYg9W5xd`rxy1Zq`RM8IjHdj+W&Ch9mpoQB(bVPX5G3q=z~m>yZDvwjuExmri&nMg zKB?sxBEd$z(R?ed=a)k_&C8GX*kDh6Xo7~~R3N&o2UDoK-hiAPM`*p#Uxm7T(zot1 z4OUHYS2UxBA71KjSVqq%6d613$Zh0M%}vC~7hKb^^n7>zvwFn#5gLqxK{+=-<`^*B zS2N~?2kxShr6}Cny05a@6fl(y7w-`+)Ae;dA?(jP(}WuG`9;-axHZx=7i8^Vh5u2J zdkbIcrz>k2u6;-#ite8W*-fj?{KkFlBsJtouC8d6M}YIiK#TO9xOX7NJu0(m`nR94 z-K3U!VYT)(QiPU#3`qwPVHElqzM8XH3Hr}=+F~ciB?wp zXe!~Mmf^gD#V+QGo zEY1-H_G(=TgdZY)#D##_D4YCDvK&&+EQtZ!ms7kGLs%WLc z3{zhB<-8?_e0>ZRx;>zl_M6TKY_LykU6^fxPi(i7tZhqX-|b>qK@`hj6?)FByW1QY zq!rQYLku-usKkbyN#6S>C|cIxUVYc7B3N+h@x5@f>yw0MtwbeQ8j@Pe?1Z}lKXGc$ zJ3@8kIUPI6_d@6~%Z+|rePD^4{x)@~zr|a2)+$JxeMrF1;?L)LQZ{Jg$Gy>BhxeF~ zHzL@SFhuorCcd(LofE?mJnwIKiBv%hZzz@NYuFY> zzg5?T6&$$e!q?X2KkTu6w2(TCy=}X3%TrE(EUY3Mv2Ue_BxO@fA}*1~eOQ$PcO(Mg zBDnN2^c9+vge8+cMTsaxQ8or>@2MCnOg@KdQLUCyqg(CHup}P|O^_?Lxj*m!qKdhM zCL3O3D*u^jgsLz+pSO;d8>6JecC4X~{!G|^lSjMtphT_?$HT8ZbjpgQz4}KYhP*D# z(Lf2Cmd-cEsMxGV)VN2hh+3+_usn=Wv(^@((S=eBox~A9QAlMpZl!=jk5Ez;)BctsnY0IIuMAC|&ao$p<63 z5D%7)YPIR^R2G2fuvbtT3zhyszm_R|@C+|{efshCkDFH%X2xAT4%%Tif$3Y@O3t%c zNanz>$RCjw`$n1fDtD6fT)@jop}|^R8{o>yjI_MOdPp|q486cy?>C7AV)}8;8aF+O z(8V*nM`9kJqEUUHvQM)5H=(0n&w7jh$SyBjgGmtM?u4B%A=(6>=)%V27NHE;Jtn8+ zGA?F+blZh{y)cot4-2Tz+f!)M)~Un3kEnRU(61dpd^`uZ@W8eaKp00BgH#`{1jO=6Mifp=f{f{`@j( zjm>IkJM4rJPEpX49PgO>%2LTp@$`wCjC;mV+UnR`xNU=x9BbT|SG>fYzx zyRDrDSJDkujc)4ew~uxoWUg`i2>Z#zA;W=^}w6P z(*l0sA?iabH#%@uA3MM{EpiwXoP{0dbhLhnXH1f-Bs-VyYcVr+Q5JSFl!-;r%>m~(c%Rl+9IthD{9aMhmQ^0#xa~X5`Ylr<7R9wl}6!)*-YwT^6 z#Q#XCzrh``=R~Og#rFSidx-h?|D{v>yR-i12Lb*cN(r7WB)x|g`Nw#1KiY%j#^Ma* zEc;IzetP>4!g4GOaEZ=Z54dC)6UBQ%GD`CDEt=xTE@_?++t{(u zbV3P*c&%%#mqf1|bfb691bjVNA|n?q4?=E*CXi5%69p$9*4KRRKZUa779N5g|BhOQ zSLwR!B{1)9mj05D`QIC_{1^Gd3a@O)P%+2x-K=HMR5&T6U(%0pplA;-a$=3@QZ!d5 zi5e)@5wl}%<#o}J9c>*NX!lHuF-{*roN|^P1{z0Ehj3&a8ezlQmj#?{a~mu-nG;9vx*u;ZPomoMem3~!Y=APxj%Mh-{fID#oL6i3V_P+1sAOy>~gkdX)(qg zUv|vCD{L-}E-D)6zaGMd-3gNX9t@>n5)4LWV&~NzT5IEU2@;3@Rc@71)1zJ~^}%*1 z45P8cS6gH_xoS|;SC{g(p>7+Ym6VY|>&Od>W-M&f%%wq}ToQM4NpPkPB2d)Oc-KHi zJ)CxUm_tdQro*TN4G)j}SXPiUD+>SJ7C!jE-{qV6$>8o8G4pT>G4WSl1MXO?1>A%t zjIhJzy;5pEUTG{Njc+t17E$%3Qe{nLK}BaYsD<`6!}N@lN`ZJ^LQz+YH^Ox8pyq9G22i z)BgBPf+cBzr%p4trQ*$S$zj@0WZV@_ta<%^CesP;f2RqVPOd*slZT4u6khsD)p_3n zZV+&85i10qUgfqPNx`AnR?jn|nv5fzv;78f+602{Ze!4B&Z?|U|4u34i|YWiwv)mu z6Cu@8_K5U1#y&Tylhc;9 z4q3gFnV&c2T8g>sRv~Lwl}wC-D#03)w@}@ z+x_b-98;Uq%~TWtf;Hn5yWgl>8zNDx&51zQhkmj3eq%iN6fi&;@ak8ED=n*w1B>&Q z`&jy$BH6MKil=brbJ26pz+WY<;_B~+l3=;HUa2fq=8%U&3Z||ppx5(=6*tXj8XBIu zz%u%1Q+y+-36lhi|NTBEod0|tSU5njqMon7Wita`-uQ_yKTs)%kUk7R=j7DWLm6Jr z`};kgB-r!IRjLng}u%&-z&jF4K+ z+0r6&OIlIy=v05hI6f!QRU-p*J)k^_KS;nJc7#H%4Y|3E)`L9eR8}3RtdHG%{SwLP z!bZY{Mi{jS%l(6`v~H(znqL||AG+D+Dx0X6Ej03|;$8S5K_N0K;T`54Q*&2WEc&v; z4>Kp%EnslTGCwL=?o1c}@0`opvMvveff|ulKHZ3krq+_kC#KD+67_GR$9=fQ;})&{ zSSy{DL=d*I6rsyAmu4+>iasq(bec<38)lbjm-|K19&*M(;e<$uSuWr{E~4Ch;S(gL z?hx_&xC&+9jsEJbWQJ2f~uB`G8ad=7@xy2rc&8gD= z_KRHxK(zTwNAdD)JmLTCdW?U%J|-LxRexC@OJd!#`r7IIYLpqbp^+i0p}ybrY!-ji z@Uqu??M>t8Lf1gGtsWESKw=L#F`7nucKp;>RsSs+KfzD;7@JgVxJDoc>KxHXr`mrq^W-W<`w-J5OLmAS-=HLJmFX1AyktQC5nAXW>n;4vtT zLpbILe#wsE;hy(wi3~^RI&+}tR@*W@@y9YCei!|bN)O?wZ&_TfXoNJqUDKqf-mh|V ziQ{gM=BynqKKzZ{`Lk&rtFm=s>2(RgLj5DDcKG3&<^QwJFZ=zs zb|o%s(OYQXYR0M`1;*jfPDIHQms9k1P{V zhrZWFhcToKtsB^VZ*48ybOu}Lk<_%ljSE^hT7s0Q$&};T!3&jdtA|v{qHOF3HU0S2IBE%efnfGSXL=le|&T- zFFsZOY{-ueACwC(Jl;E)3gyiD(Z@}H<`b+GFW+GF=W1-#6i{%JUzfphSYiz^moV5g zvDmj~$uG@IDfJ(d5}+OUfxdKn%2**YDfWLxay#LFdl|Wlky^GjznmBIVLDGH+>AF8 zmyj9y{$XxfPriB7?!jk)GV*7{{@zJWLq$Yum%b!X`zXt%KCbp0^Ho2|$u+Qw-2ieJ z+T-7bU-e{7u#2=aXQw?=>aCE|vuL{f@>I`6^;k4+8n5bIJ}zC5{mX2GG)eZ+><>Tq zT`zbSIeUaN1@=Q6rx@UVMXg860d6-dqbgL|) zYxA!l`9mhoHgv4Ua@AwD09vR261|O~lpaZXYWnmcxf>*9o{0WjGz-WG-Ode7pSz@) zWKM9^DW+LH_Wy-~(I0-6i@o9)VZb_r)u-TN!n<25nM%lbHX=}prFipUfywrW$rf)=7T>4tQP}SS=!{4@w|TY zvD`TezNzt;p5__9SYugL?N{71Wbrp=BMDKcQI{xGZ72qtT<)xSS%neMDoQo8-|&IF z4u!Q*HBxmbqK_NNeD7(k1``0UMgo0LMG(z@-!9=6-e{aS^=veO#`@XJM=+VG7yQ}T z?H&?isAS{<+MkbfxCM(&TXZ7IsPoQWe++9!i+xiH?9#N~1pbPi1Lf|1M99om ze1l#kkl<5F)Au$opw4cN&GUHNtWNjCyX`oWX(^9-k^WVr_8D=-}3<@PUzWQ42-n}5!fC#MSe5G(;?U9g{4YQu0wDQQYakM|hR`)wlL z5c^PD9}y}-;+4`x29}5^Op;c`hmfh=6q)GoSM0a+P7gll=}kx9){GpISnl|yu1I@1 zzc$zzy1gT^bjpXfS`t`zGDrw%e2fCMU%hdHP*%w#%K_)exVh z+Rv?6e0{`%wV87Gu#)}U#>a24*gGDbg2bxY&e(??J;t*~{2sYB1P5gs@93WnFkw-k zvpF%cUZxx!ulX+>>oZ6WWT_@7d!vmcEkEJ~k{Ksc-Voi6j&&>yithS5ZdHd{Z8bH_lpdCnp>Z9W!i9Q}X z?K^cpKamUfrl~W5q`^{Sp;j190W= z8Ti1N;;vG-T+RIryrEh7&G(&!%s)U!=^fCAf4=W7M){3Xb33wxq2q+}%O!`Un?B`= zU}W@!B0sru$J-Vam63%h&pNQIy83%~n)f0-V6+!RpEy?|YVmhNzJ?|mv{L=wtzqOa zf9!v#p#R=)dmu|fM8#&TwFJN*?$Pc@z#mHk4T;@ZN$?wDOyNH-sSSvs3lvt?P+Bq@ zA2C&Yq}T^@R`q%*;(youhu#1G1(9?~fam1m>X zM$&8r;FayUL04=uxp-!QYfCFqGDEVChc?!ZIF3I1hpMe59U~)KY`Tzp3bT~(iw-6x zbP%yC+-^G+09p&S+po`a3u5Dp!WTbVa!$bJVrw{Ql$b^n;@jbxQjO|J$t zYuRY4{(F|DJ{kVAs34Qm()Jy{Zj?@#dRFKR3~H9my9~dN8D?wMpIM&a8=pkayxjn% z!YtC;1(IUNPgh0v*gHTiWOIE|L^AFr3A$M<~c>Gf<@(u_s=rC zn2;RjB~4}1MS-G)(5p|7UzP9J2DFL*9DI2fK$#xD!3CS)dfjN_ASnD9>uWXx=lj4I z#o}|g?lzC6!97*@@1(nkJARf*`|Y)03eK4$bxS?=Z}64{h4|%E-<}Tk5NzYJ)tY+s zblbiVUOQdne3wbKM>_4K5|-t2H_CKm7{vt4P^As~!CdITDSrzW(*}f^|p6$Z&_1nJ4S)>I zQaJi9K^-$ql0w6JYg%pCrD30%4~3dfE{!AelD$InFGDult&buV+uy)hrcD+!x*`WI z|BjHw-mZQ5XW;&uHW-Xc@KWhyY3QU)hQAg>tv}0ZdR*z&lhlaWYlwTzHP5bH5(EfCN#xwIf@`Wpj9!nMQ(oZdfugpB;SAEj5dcen3|H|%=epC$%&FA>yfCqR-;K{x<7lP9Q0vMUiw1= zodU`X$B7Q{g7bskkGCF#x^xd_=P@_;ueHxmr>dL$D56GSrrPD+Y^o&vj!TIw)doFu ze5^@?BkSES>lRoh72CeK6J%P%EGQIZ8uj2`N3n3Gk91tIeGzI?-F|Vv*=TOtmeR1J zA7m__>Tt*LBn&}&QseO|5Q?#@^tMi`G+iiUEw6is6bRWl4U-{`d&A2?S@@$oN8O%7 zuSefge*sz@n)rtOoIsvJP2VwFb4F`D@-i2eTeH(-ozg!(D>C7wt+=)J$-HUfi&4`` z*ACi{uG^XN!^CiAb8yy=i_&nNfkx`FGn|)-jm?f`0r5pp&UQ_uwgNex!gXTrjP2+& z`}*4i%qxG2s3?l+Y29XUbM&@&O#vT+P||7|$#QdhgoT#f&EaBIjw!K}`P?{gt`8=? zyO;m4-fX>Tn6OdN(VR8KhxVKFYY*Tg!t zf4y9Qahd?ON~t%Eb=BJ)NM*3BJdRn=6irC~?cJc4wbV98!OZ?)a5!+3l)rP}yGHm@ ze*)@%7PAxm|6_!h-ZoW#{3sg2*_%`LBcqId9u8+NKgV+U;7Cl8Zu1wt=XMKUsaeOY zSvjJOg6#`^vl2e6-Q=z>&6DS7BIRda^9%-0NSlY`5njNu;g2oMxyiocwZAmk-kFza zWuHQ|S5zjT56_8V>Fb)@2KB^N-*KX}(}f~B?#LIl7!@ucivu*B<7@75rma~kYfsd4 z0;T#)gCp6yV3MX9b|s!fn^)54pqqeb{pPf6sV9S1jHr*MDFN6*t5a#64?}Z|PJjP& z+pvnQ<_5)hC$h8;ANUM7zSLW#4+XlzNiU%R=0M_em

$mkflLxbJK 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 Q^BCw*Rn$_bmA4N6FU)6>Gynhq literal 0 HcmV?d00001 diff --git a/vignettes/visits_periods.Rmd b/vignettes/visits_periods.Rmd index 918031548e..2ffea9ae64 100644 --- a/vignettes/visits_periods.Rmd +++ b/vignettes/visits_periods.Rmd @@ -204,8 +204,8 @@ period_ref <- ex %>% APERSDT = convert_dtc_to_dt(EXSTDTC) ) %>% # Create APEREDT based on start date of next period - arrange(USUBJID, APERSDT) %>% - group_by(USUBJID) %>% + arrange(!!!get_admiral_option("subject_keys"), APERSDT) %>% + group_by(!!!get_admiral_option("subject_keys")) %>% mutate( APEREDT = lead(APERSDT) - 1 # one day before start of next period ) %>% diff --git a/vignettes/writing_vignettes.Rmd b/vignettes/writing_vignettes.Rmd new file mode 100644 index 0000000000..6bd3261900 --- /dev/null +++ b/vignettes/writing_vignettes.Rmd @@ -0,0 +1,257 @@ +--- +title: "Writing Vignettes" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Writing Vignettes} + %\VignetteEngine{knitr::rmarkdown} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +# Introduction + +This guidance ensures consistency across the vignettes in the `{admiral}` package in terms of content, structure and code execution. +As a general rule, the vignette workflow defined in [r-pkgs.org](https://r-pkgs.org/vignettes.html) is followed. + + +# Metadata + +Each vignette in `{admiral}` should start with the following metadata. + +``` +--- +title: "" +output: rmarkdown::html_vignette: +vignette: > + %\VignetteIndexEntry{<Title>} + %\VignetteEngine{knitr::rmarkdown} +--- +``` + +The `<Title>` of the vignette should be meaningful. + +# Markdown + +## Default Options + +If any chunks are used within the vignette, the following options should be set after the metadata +to ensure that the chunks are rendered consistently across all vignettes. + + `r ''````{r setup, include=FALSE} + knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" + ) + ``` + + +## Format Sections + +### Table of Contents + +Headings must be title case and start from Heading 1: + +``` +# Heading 1 +This is the description of my first section. + +## Heading 1.1 +This is the description of my first sub-section within my first section. + +## Heading 1.2 +This is the description of my second sub-section within my first section. + +``` + +The first section gives a brief introduction of the vignette. The last sub-section +of the introduction should describe the packages required to run the `{admiral}` functions. +The `{admiral}` package should be described first. + +``` +# Introduction + +This is the introduction of my vignette. + +## Required Packages +``` + + `r ''````{r, warning=FALSE, message=FALSE} + library(admiral) + # <all packages used in the vignette> + ``` + +The `warning=FALSE` and `message=FALSE` options are there to prevent the usual messages: + +<span style="color: red;font-family: textmate, monospace; font-size = 10pt;" >Attaching package: 'xxxx'</br>The following objects are masked from 'package:yyyyy'</br> fun1, fun2</span> + +### Conventions + +#### General Conventions + ++ Any new vignette must be added to the `_pkgdown.yml` file in the relevant section. + ++ Any variable name, dataset name, function, argument name must be quoted with backticks: e.g. + + +``` + The `date` parameter of the `derive_my_var()` function expects a date variable, e.g., `ADT`. +``` + ++ Functions must also end with `()`. + ++ Variables and datasets name are expected to be uppercase. + ++ All the codes must be described, executed and the output result displayed once the code is executed. +Use: + + + `r ''````{r} + #<code> + ``` + ++ Any output created must clearly show what the function has derived. +It should at least show the variables/records used as input to the function and the derived +variables/records. If a dataset must be displayed, it will be formatted using the `dataset_vignette()` +function so that it is displayed consistently across the vignettes.E.g. + + + + Description and execution of the code used to derive the variable/record + + + +```{r, include=FALSE} +library(lubridate) +library(dplyr) +library(DT) + +data(vs) +vs <- tribble( + ~USUBJID, ~VSTESTCD, ~VISIT, ~VSDTC, + "01-701-1015", "WEIGHT", "BASELINE", "2013-12-26", + "01-701-1015", "WEIGHT", "WEEK 2", "2014-01-14", + "01-701-1016", "WEIGHT", "BASELINE", "2014-01-06", + "01-701-1016", "WEIGHT", "WEEK 2", "2014-01-22", +) +``` + +```{r, eval=FALSE, echo=TRUE} +vs1 <- vs %>% + derive_vars_dt( + new_vars_prefix = "A", + dtc = VSDTC, + date_imputation = "first" + ) +``` + + + + Output dataset formatted using `dataset_vignette()`... + +```{r, eval=FALSE, echo=FALSE} +vs1 <- vs %>% + derive_vars_dt( + new_vars_prefix = "A", + dtc = VSDTC, + date_imputation = "first" + ) + +dataset_vignette( + vs1, + display_vars = exprs(USUBJID, VSTESTCD, VISIT, VSDTC, ADT), + filter = VSTESTCD == "WEIGHT" +) +``` + + +Note: The call to get the formatted dataset would be: + + + ```{r, eval=FALSE, echo=TRUE} +dataset_vignette( + vs1, + display_vars = exprs(USUBJID, VSTESTCD, VISIT, VSDTC, ADT), + filter = VSTESTCD == "WEIGHT" +) + ``` + +Displaying many big datasets on a vignette, may require a long time to load +the page and may cause messages from the browser that the page is not +responsive. In this case the number of displayed observations should be +restricted either by restricting the source datasets at the beginning of the +vignette or in the call of `dataset_vignette()` if only some calls are +affected. + +#### Using Footnotes + +Footnotes can be useful to add context without adding clutter to the primary subject matter of the vignette being written. + +To use footnotes, add a caret and an identifier inside brackets e.g. `([^1])`. The identifiers can be numbers or words, but they can’t contain spaces or tabs. + +The following markdown text will render as follows: + +``` +Here is an example [^1] + +[^1]: Cool note about the example. +``` + +Here is an example [^2] + +[^2]: Cool note about the example. + + +#### Conventions for ADaM Workflow + +For vignettes describing an ADaM workflow, + ++ the second section will summarize the programming workflow. The first sub-section within this +workflow will always describe the data read to demonstrate the use of the `{admiral}` functions, + ++ Each sub-section within the programming workflow should be tagged (e.g. [Step1] (#step)), so that +the user can go on the relevant section from the programming workflow (in addition to the Table of +contents). Don't use a tag with a number but use a meaningful name (e.g. do not use `(#link1)`, +but use `(#this_action)`) + ++ the last section should link to a template script. + + +``` +# Programming Workflow + +* [Read in Data](#readdata) +* [Derive/Impute End and Start Analysis Date/time and Relative Day](#datetime) +* ... +* [Assign `ASEQ`](#aseq) + +## Read in Data {#readdata} +## Derive/Impute End and Start Analysis Date/time and Relative Day {#datetime} +## ... +## Assign `ASEQ` {#aseq} + +# Another Section + +# Example Script +ADaM | Sample Code +---- | -------------- +ADxx | [ad_adxx.R](https://github.com/pharmaverse/admiral/blob/main/inst/templates/ad_adxx.R){target="_blank"} + +``` + ++ `ADSL` variables + + All `ADSL` variables which are required for any derivation are merged to the SDTM dataset before the + first derivation. + These `ADSL` variables have to be added to the by-variables for derivations which add observations. + This ensures that the `ADSL` variables are populated `for` the new observations. + A `adsl_vars` variable should be created at the beginning of the script and added to the `by_vars` + parameter for derivations which add observations. + + `ADSL` variables which should be in the final dataset but are not required for any derivation are + merged to the dataset after the last derivation. + + + From e379b8f8a54eaa771e2aff1b9246147056253a34 Mon Sep 17 00:00:00 2001 From: ProfessorP <pwebster26@gmail.com> Date: Thu, 6 Jun 2024 11:20:58 -0400 Subject: [PATCH 18/22] updated wordlist with spellcheck package --- inst/WORDLIST | 66 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 5 deletions(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index 3dd2faf67f..1483f4f0af 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -11,7 +11,9 @@ ADPC ADPP ADPPK ADSL +ADT ADVS +ADXX ADaM ADaMIG ADaMs @@ -32,6 +34,8 @@ ATC ATOXGR AVAL Abercrombie +Addin +Addins Akinyi Alanine Alkalosis @@ -50,6 +54,7 @@ Bazett's Biologics CDISC CKD +CMD COVID CPK CQ @@ -62,18 +67,23 @@ CTCAEv CVD Carlucci Chakma +Changelog Cheatsheet Chemistries Chol Cockcroft +Codebase +Codeowners Creat Creatine Creatinine -cyclomatic +Cyclomatic DAIDS DAIDs DIABP DILI +DM +DS DT DTC DTF @@ -107,6 +117,7 @@ GRPNAME GSK Gault Gehan +Github GlaxoSmithKline Glomerular Golab @@ -128,9 +139,9 @@ Hypokalemia Hypomagnesemia Hyponatremia Hypophosphatemia -Iain IG INR +Iain Jaxon Jordanna Kabi @@ -147,6 +158,7 @@ LLOQ LOCF Leena Leukocytosis +LinkedIn Lipase Liu MDRD @@ -179,10 +191,11 @@ Ondrej PARAM PARAMCD PARAMN +PHUSE PLDOSE +PRs PTT Param -param Pavan Pharma Pharmacokinetic @@ -193,10 +206,14 @@ Pooja Pre QD QID +Quosure README +RStudio Rahal Ratford +Rimler Romain +Roxygen SCE SCN SCOPEN @@ -224,6 +241,7 @@ Syed Sys TADJ TADJAE +TAs TBC TDOSE TDURD @@ -233,7 +251,9 @@ TID TLFs TMF TNDOSINT +TOC TPDOSE +TTE Takahira Teckla Thanikachalam @@ -242,35 +262,47 @@ USUBJID USUBJIDs Upadhyay VAD +VSDTC +VSTESTCD Vignesh WBC Walkowiak -Walkthrough Wenyi XXXXXXXX +YAML Yohann acknowledgements +addin +adex +adlb admiralci admiraldev admiralonco admiralophtha +admiraltemplate admiralvaccine admiralxxx adsl +advs alanine aminotransferase analyte analytes analytics +anonymized anticoagulation aspartate basetypes bds censorings chk +cmd codebase +codeowner constructible creatinine +customised +cyclomatic dL datepart datetime @@ -279,8 +311,11 @@ deps der desc deteriorations +dev +developers’ dplyr ds +dtc dthcaus eGFR eg @@ -289,11 +324,19 @@ evaluable exprs fil findable +flexibilities fmt framingham +functions’ funder glomerular groupwise +hotfix +hotfixes +insightsengineering +knitr +linter +lintr lockfile lubridate mL @@ -306,15 +349,19 @@ modularized msec nd occds +onboarding onwards +optionality parttime pharmaverse pharmaverseadam pharmaversesdtm phosphatase +pkgs pre prev prm +proc quosures recoded renv @@ -325,13 +372,17 @@ roche roxygen scalable signif +styler +stylesheet submittable subperiod subperiods subscale summarization +testthat th thromboplastin +tibble tidyselect tidyverse timeframe @@ -340,8 +391,13 @@ timepoint tte umol ungrouped -unintuitive +unmerged +useR usethis +validatoR +vbump xULN xportr xpt +xxxx +yyyyy From 6932070fabf53c192464f0035f47dc014fef859d Mon Sep 17 00:00:00 2001 From: ProfessorP <pwebster26@gmail.com> Date: Thu, 6 Jun 2024 11:47:33 -0400 Subject: [PATCH 19/22] additional USUBJID and STUDYID fixes --- R/assertions.R | 2 +- inst/templates/ad_adae.R | 8 ++++---- inst/templates/ad_adlbhy.R | 8 ++++---- inst/templates/ad_adpc.R | 20 ++++++++++---------- inst/templates/ad_adppk.R | 22 +++++++++++----------- inst/templates/ad_advs.R | 10 +++++----- vignettes/admiral.Rmd | 6 +++--- vignettes/bds_exposure.Rmd | 6 +++--- vignettes/bds_finding.Rmd | 10 +++++----- vignettes/occds.Rmd | 4 ++-- vignettes/writing_vignettes.Rmd | 16 +++++++++------- 11 files changed, 57 insertions(+), 55 deletions(-) diff --git a/R/assertions.R b/R/assertions.R index 62c014ceec..048b5c6018 100644 --- a/R/assertions.R +++ b/R/assertions.R @@ -31,7 +31,7 @@ #' ) #' #' example_fun <- function(dataset) { -#' assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) +#' assert_data_frame(dataset, required_vars = get_admiral_option("subject_keys")) #' } #' #' example_fun(dm) diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index 520e301ea6..221c600906 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -40,7 +40,7 @@ adae <- ae %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by = exprs(STUDYID, USUBJID) + by_vars = get_admiral_option("subject_keys") ) %>% ## Derive analysis start time ---- derive_vars_dtm( @@ -88,7 +88,7 @@ adae <- adae %>% ## Derive last dose date/time ---- derive_vars_joined( dataset_add = ex_ext, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = !!!get_admiral_option("subject_keys"), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" @@ -128,7 +128,7 @@ adae <- adae %>% adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = get_admiral_option("subject_keys") ) diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 0870bfc55e..5051c0f66d 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -43,7 +43,7 @@ adlb_annotated <- adlb %>% ) ) ) %>% - select(STUDYID, USUBJID, TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) + select(!!!get_admiral_option("subject_keys"), TRT01A, PARAMCD, LBSEQ, ADT, AVISIT, ADY, AVAL, ANRHI, CRIT1, CRIT1FL) # Subset Datasets altast_records <- adlb_annotated %>% @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = !!!get_admiral_option("subject_keys"), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", @@ -65,11 +65,11 @@ hylaw_records <- derive_vars_joined( ) hylaw_records_pts_visits <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A) %>% # add AVISIT, ADT for by visit + select(!!!get_admiral_option("subject_keys"), TRT01A) %>% # add AVISIT, ADT for by visit distinct() hylaw_records_fls <- hylaw_records %>% - select(STUDYID, USUBJID, TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit + select(!!!get_admiral_option("subject_keys"), TRT01A, CRIT1FL, BILI_CRITFL) %>% # add AVISIT, ADT for by visit distinct() # Create new parameters based on records that present potential case diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index a307f86636..005b1d07ba 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = !!!get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = !!!get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -199,7 +199,7 @@ adpc_first_dose <- pc_dates %>% adpc_prev <- adpc_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -218,7 +218,7 @@ adpc_prev <- adpc_first_dose %>% adpc_next <- adpc_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_next = ADTM, EXDOSE_next = EXDOSE, AVISIT_next = AVISIT, @@ -237,7 +237,7 @@ adpc_next <- adpc_prev %>% adpc_nom_prev <- adpc_next %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -253,7 +253,7 @@ adpc_nom_prev <- adpc_next %>% adpc_nom_next <- adpc_nom_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_next = NFRLT), join_vars = exprs(NFRLT), @@ -459,7 +459,7 @@ adpc_aseq <- adpc_chg %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM, BASETYPE, EVID, AVISITN, ATPTN, PARCAT1, DTYPE), check_type = "error" ) %>% @@ -479,13 +479,13 @@ adpc_baselines <- adpc_aseq %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN, HTBLU = VSSTRESU) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN, WTBLU = VSSTRESU) ) %>% mutate( @@ -499,7 +499,7 @@ adpc_baselines <- adpc_aseq %>% adpc <- adpc_baselines %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/inst/templates/ad_adppk.R b/inst/templates/ad_adppk.R index d100d968b9..62a0c60ea5 100644 --- a/inst/templates/ad_adppk.R +++ b/inst/templates/ad_adppk.R @@ -54,7 +54,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -79,7 +79,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -175,7 +175,7 @@ adppk_first_dose <- pc_dates %>% adppk_prev <- adppk_first_dose %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADTM), new_vars = exprs( ADTM_prev = ADTM, EXDOSE_prev = EXDOSE, AVISIT_prev = AVISIT, @@ -194,7 +194,7 @@ adppk_prev <- adppk_first_dose %>% adppk_nom_prev <- adppk_prev %>% derive_vars_joined( dataset_add = ex_exp, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(NFRLT), new_vars = exprs(NFRLT_prev = NFRLT), join_vars = exprs(NFRLT), @@ -321,7 +321,7 @@ adppk_aseq <- adppk_aval %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(AFRLT, EVID, CMT), check_type = "error" ) %>% @@ -399,7 +399,7 @@ covar <- adsl %>% REGION1N = COUNTRYN, ) %>% select( - STUDYID, STUDYIDN, SITEID, SITEIDN, USUBJID, USUBJIDN, + !!!get_admiral_option("subject_keys"), STUDYIDN, SITEID, SITEIDN, USUBJIDN, SUBJID, SUBJIDN, AGE, SEX, SEXN, COHORT, COHORTC, ROUTE, ROUTEN, RACE, RACEN, ETHNIC, ETHNICN, FORM, FORMN, COUNTRY, COUNTRYN, REGION1, REGION1N @@ -410,24 +410,24 @@ covar <- adsl %>% labsbl <- lb %>% filter(LBBLFL == "Y" & LBTESTCD %in% c("CREAT", "ALT", "AST", "BILI")) %>% mutate(LBTESTCDB = paste0(LBTESTCD, "BL")) %>% - select(STUDYID, USUBJID, LBTESTCDB, LBSTRESN) + select(!!!get_admiral_option("subject_keys"), LBTESTCDB, LBSTRESN) covar_vslb <- covar %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "HEIGHT", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(HTBL = VSSTRESN) ) %>% derive_vars_merged( dataset_add = vs, filter_add = VSTESTCD == "WEIGHT" & VSBLFL == "Y", - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(WTBL = VSSTRESN) ) %>% derive_vars_transposed( dataset_merge = labsbl, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), key_var = LBTESTCDB, value_var = LBSTRESN ) %>% @@ -454,7 +454,7 @@ covar_vslb <- covar %>% adppk <- adppk_aseq %>% derive_vars_merged( dataset_add = covar_vslb, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% arrange(STUDYIDN, USUBJIDN, AFRLT, EVID) %>% mutate(RECSEQ = row_number()) diff --git a/inst/templates/ad_advs.R b/inst/templates/ad_advs.R index 06fb2210d0..e16bb36c22 100644 --- a/inst/templates/ad_advs.R +++ b/inst/templates/ad_advs.R @@ -81,7 +81,7 @@ advs <- vs %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) %>% ## Calculate ADT, ADY ---- derive_vars_dt( @@ -121,7 +121,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) %>% # Derive Body Mass Index derive_param_bmi( @@ -129,7 +129,7 @@ advs <- advs %>% set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) @@ -272,7 +272,7 @@ advs <- advs %>% # Calculate ASEQ derive_var_obs_number( new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN, DTYPE), check_type = "error" ) %>% @@ -287,7 +287,7 @@ advs <- advs %>% advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) # Final Steps, Select final variables and Add labels diff --git a/vignettes/admiral.Rmd b/vignettes/admiral.Rmd index 44f7a495dd..f009dd0223 100644 --- a/vignettes/admiral.Rmd +++ b/vignettes/admiral.Rmd @@ -128,7 +128,7 @@ adsl <- adsl %>% new_vars = exprs(TRTSDTM = EXSTDTM, TRTSTMF = EXSTTMF), order = exprs(EXSTDTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -208,7 +208,7 @@ of the Final Lab Visit Date (`FINLABDT`) in the example below: adsl <- dm %>% derive_vars_merged( dataset_add = ds, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(FINLABDT = convert_dtc_to_dt(DSSTDTC)), filter_add = DSDECOD == "FINAL LAB VISIT" ) @@ -250,7 +250,7 @@ below we use `filter_extreme()` to extract the most recent MAP records in `advs` advs_lastmap <- advs %>% filter(PARAMCD == "MAP") %>% filter_extreme( - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(AVISITN, PARAMCD), mode = "last" ) diff --git a/vignettes/bds_exposure.Rmd b/vignettes/bds_exposure.Rmd index 4debbc39d2..d1f537fd41 100644 --- a/vignettes/bds_exposure.Rmd +++ b/vignettes/bds_exposure.Rmd @@ -82,7 +82,7 @@ adex <- derive_vars_merged( ex, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(STUDYID, USUBJID) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -579,7 +579,7 @@ example call is: adex <- derive_var_obs_number( adex, new_var = ASEQ, - by_vars = exprs(STUDYID, USUBJID), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARCAT1, ASTDT, VISIT, VISITNUM, EXSEQ, PARAMN), check_type = "error" ) @@ -600,7 +600,7 @@ If needed, the other `ADSL` variables can now be added: adex <- adex %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(STUDYID, USUBJID) + by_vars = get_admiral_option("subject_keys") ) ``` ## Add Labels and Attributes {#attributes} diff --git a/vignettes/bds_finding.Rmd b/vignettes/bds_finding.Rmd index f7588bf774..88ae64988c 100644 --- a/vignettes/bds_finding.Rmd +++ b/vignettes/bds_finding.Rmd @@ -86,7 +86,7 @@ advs <- derive_vars_merged( vs, dataset_add = adsl, new_vars = adsl_vars, - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` @@ -319,7 +319,7 @@ advs <- derive_param_bsa( set_values_to = exprs(PARAMCD = "BSA"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) advs <- derive_param_bmi( @@ -328,7 +328,7 @@ advs <- derive_param_bmi( set_values_to = exprs(PARAMCD = "BMI"), get_unit_expr = VSSTRESU, filter = VSSTAT != "NOT DONE" | is.na(VSSTAT), - constant_by_vars = exprs(!!!get_admiral_option("subject_keys")) + constant_by_vars = get_admiral_option("subject_keys") ) ``` @@ -832,7 +832,7 @@ example call is: advs <- derive_var_obs_number( advs, new_var = ASEQ, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), order = exprs(PARAMCD, ADT, AVISITN, VISITNUM, ATPTN), check_type = "error" ) @@ -890,7 +890,7 @@ List of ADSL variables already merged held in vector `adsl_vars` advs <- advs %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` diff --git a/vignettes/occds.Rmd b/vignettes/occds.Rmd index c07d34b71b..4150cc91db 100644 --- a/vignettes/occds.Rmd +++ b/vignettes/occds.Rmd @@ -239,7 +239,7 @@ ex_single <- derive_vars_dtm( adae <- derive_vars_joined( adae, ex_single, - by_vars = exprs(!!!get_admiral_option("subject_keys")), + by_vars = get_admiral_option("subject_keys"), new_vars = exprs(LDOSEDTM = EXSTDTM), join_vars = exprs(EXSTDTM), join_type = "all", @@ -485,7 +485,7 @@ If needed, the other `ADSL` variables can now be added: adae <- adae %>% derive_vars_merged( dataset_add = select(adsl, !!!negate_vars(adsl_vars)), - by_vars = exprs(!!!get_admiral_option("subject_keys")) + by_vars = get_admiral_option("subject_keys") ) ``` diff --git a/vignettes/writing_vignettes.Rmd b/vignettes/writing_vignettes.Rmd index 6bd3261900..6818129fdf 100644 --- a/vignettes/writing_vignettes.Rmd +++ b/vignettes/writing_vignettes.Rmd @@ -131,11 +131,11 @@ library(DT) data(vs) vs <- tribble( - ~USUBJID, ~VSTESTCD, ~VISIT, ~VSDTC, - "01-701-1015", "WEIGHT", "BASELINE", "2013-12-26", - "01-701-1015", "WEIGHT", "WEEK 2", "2014-01-14", - "01-701-1016", "WEIGHT", "BASELINE", "2014-01-06", - "01-701-1016", "WEIGHT", "WEEK 2", "2014-01-22", + ~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSDTC, + "omep_1", "01-701-1015", "WEIGHT", "BASELINE", "2013-12-26", + "omep_1", "01-701-1015", "WEIGHT", "WEEK 2", "2014-01-14", + "omep_1", "01-701-1016", "WEIGHT", "BASELINE", "2014-01-06", + "omep_1", "01-701-1016", "WEIGHT", "WEEK 2", "2014-01-22", ) ``` @@ -161,7 +161,8 @@ vs1 <- vs %>% dataset_vignette( vs1, - display_vars = exprs(USUBJID, VSTESTCD, VISIT, VSDTC, ADT), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT) + ), filter = VSTESTCD == "WEIGHT" ) ``` @@ -173,7 +174,8 @@ Note: The call to get the formatted dataset would be: ```{r, eval=FALSE, echo=TRUE} dataset_vignette( vs1, - display_vars = exprs(USUBJID, VSTESTCD, VISIT, VSDTC, ADT), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT) + ), filter = VSTESTCD == "WEIGHT" ) ``` From bd1378fefc31eabc8d9b4b036a436c52ab184fca Mon Sep 17 00:00:00 2001 From: ProfessorP <pwebster26@gmail.com> Date: Thu, 6 Jun 2024 12:10:48 -0400 Subject: [PATCH 20/22] received some errors in devtools::check() that I investigated then reverted the files back to their original script. There is a missing dependency import for "glue" --- NAMESPACE | 2 +- R/hello.R | 8 ++++---- man/assert_data_frame.Rd | 2 +- man/hello.Rd | 11 ----------- 4 files changed, 6 insertions(+), 17 deletions(-) delete mode 100644 man/hello.Rd diff --git a/NAMESPACE b/NAMESPACE index 1bb86e7738..3a3d89c829 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -185,7 +185,6 @@ export(get_one_to_many_dataset) export(get_source_vars) export(get_summary_records) export(get_vars_query) -export(hello) export(impute_dtc_dt) export(impute_dtc_dtm) export(inner_join) @@ -247,6 +246,7 @@ importFrom(dplyr,group_by) importFrom(dplyr,group_by_at) importFrom(dplyr,if_else) importFrom(dplyr,lag) +importFrom(dplyr,left_join) importFrom(dplyr,mutate) importFrom(dplyr,n) importFrom(dplyr,n_distinct) diff --git a/R/hello.R b/R/hello.R index d8eb18e147..3964f5a120 100644 --- a/R/hello.R +++ b/R/hello.R @@ -1,9 +1,9 @@ #' Print Hello World #' #' @export -#' @return +#' @return Hello World! #' #' @examples -hello <- function() { - print("Hello World!") -} +#' hello <- function() { +#' print("Hello World!") +#' } diff --git a/man/assert_data_frame.Rd b/man/assert_data_frame.Rd index ce8692cd77..40e2fd4805 100644 --- a/man/assert_data_frame.Rd +++ b/man/assert_data_frame.Rd @@ -66,7 +66,7 @@ dm <- tribble( ) example_fun <- function(dataset) { - assert_data_frame(dataset, required_vars = exprs(STUDYID, USUBJID)) + assert_data_frame(dataset, required_vars = get_admiral_option("subject_keys")) } example_fun(dm) diff --git a/man/hello.Rd b/man/hello.Rd deleted file mode 100644 index 069fe274c3..0000000000 --- a/man/hello.Rd +++ /dev/null @@ -1,11 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/hello.R -\name{hello} -\alias{hello} -\title{Print Hello World} -\usage{ -hello() -} -\description{ -Print Hello World -} From 5b975ff13865cb27b05721d3ae469b2c2294ce9a Mon Sep 17 00:00:00 2001 From: ProfessorP <pwebster26@gmail.com> Date: Thu, 6 Jun 2024 12:38:00 -0400 Subject: [PATCH 21/22] addressed missed replacements in inst/templates scripts --- R/assertions.R | 2 +- R/create_single_dose_dataset.R | 8 +- R/hello.R | 2 +- R/period_dataset.R | 6 +- inst/templates/ad_adae.R | 2 +- inst/templates/ad_adlbhy.R | 6 +- inst/templates/ad_adpc.R | 13 +- tests/testthat/test-derive_extreme_event.R | 222 ++++++++++----------- vignettes/concepts_conventions.Rmd | 18 +- vignettes/writing_vignettes.Rmd | 16 +- 10 files changed, 149 insertions(+), 146 deletions(-) diff --git a/R/assertions.R b/R/assertions.R index 048b5c6018..c30f4b6380 100644 --- a/R/assertions.R +++ b/R/assertions.R @@ -523,7 +523,7 @@ assert_filter_cond <- function(arg, if (provided && !(is_call(arg) || is_logical(arg))) { cli_abort( message = message %||% - "Argument {.arg {(arg_name)}} must be a filter condition, but is {.obj_type_friendly {arg}}", + "Argument {.arg {(arg_name)}} must be a filter condition, but is {.obj_type_friendly {arg}}", class = c(class, "assert-admiraldev"), call = call ) diff --git a/R/create_single_dose_dataset.R b/R/create_single_dose_dataset.R index 1904d98ea0..8c01055e6e 100644 --- a/R/create_single_dose_dataset.R +++ b/R/create_single_dose_dataset.R @@ -436,9 +436,11 @@ dose_freq_lookup <- tribble( #' end_date = EXENDT, #' end_datetime = EXENDTM, #' keep_source_vars = c( -#' get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, -#' DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC -#' )) +#' get_admiral_option("subject_keys"), exprs( +#' EXTRT, EXDOSE, EXDOSFRQ, +#' DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC +#' ) +#' ) #' ) create_single_dose_dataset <- function(dataset, dose_freq = EXDOSFRQ, diff --git a/R/hello.R b/R/hello.R index 3964f5a120..b7277324e5 100644 --- a/R/hello.R +++ b/R/hello.R @@ -5,5 +5,5 @@ #' #' @examples #' hello <- function() { -#' print("Hello World!") +#' print("Hello World!") #' } diff --git a/R/period_dataset.R b/R/period_dataset.R index 0c9cf1ab3c..8fda1f509e 100644 --- a/R/period_dataset.R +++ b/R/period_dataset.R @@ -348,8 +348,10 @@ create_period_dataset <- function(dataset, #' dataset_ref = subperiod_ref, #' new_vars = exprs(PxxSwSDT = ASPRSDT, PxxSwEDT = ASPREDT) #' ) %>% -#' select(!!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, -#' P02S1SDT, P02S1EDT) +#' select( +#' !!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, +#' P02S1SDT, P02S1EDT +#' ) derive_vars_period <- function(dataset, dataset_ref, new_vars, diff --git a/inst/templates/ad_adae.R b/inst/templates/ad_adae.R index 221c600906..8c1f718fe0 100644 --- a/inst/templates/ad_adae.R +++ b/inst/templates/ad_adae.R @@ -116,7 +116,7 @@ adae <- adae %>% restrict_derivation( derivation = derive_var_extreme_flag, args = params( - by_vars = !!!get_admiral_option("subject_keys"), + by_vars = get_admiral_option("subject_keys"), order = exprs(desc(ASEVN), ASTDTM, AESEQ), new_var = AOCCIFL, mode = "first" diff --git a/inst/templates/ad_adlbhy.R b/inst/templates/ad_adlbhy.R index 5051c0f66d..7a17f27c69 100644 --- a/inst/templates/ad_adlbhy.R +++ b/inst/templates/ad_adlbhy.R @@ -32,7 +32,7 @@ adlb_annotated <- adlb %>% ., derivation = derive_var_merged_exist_flag, dataset_add = ., - by_vars = exprs(!!!get_admiral_option("subject_keys"), LBSEQ, PARAMCD, ADT), + by_vars = c(get_admiral_option("subject_keys"), exprs(LBSEQ, PARAMCD, ADT)), variable_params = list( params( new_var = CRIT1FL, @@ -56,7 +56,7 @@ bili_records <- adlb_annotated %>% hylaw_records <- derive_vars_joined( dataset = altast_records, dataset_add = bili_records, - by_vars = !!!get_admiral_option("subject_keys"), + by_vars = get_admiral_option("subject_keys"), order = exprs(ADY), join_type = "all", filter_join = ADT.join - ADT <= 14 & CRIT1FL == "Y" & CRIT1FL.join == "Y", @@ -79,7 +79,7 @@ hylaw_params <- derive_param_exist_flag( condition = CRIT1FL == "Y" & BILI_CRITFL == "Y", false_value = "N", missing_value = "N", - by_vars = exprs(!!!get_admiral_option("subject_keys"), TRT01A), # add AVISIT, ADT for by visit + by_vars = c(get_admiral_option("subject_keys"), exprs(TRT01A)), # add AVISIT, ADT for by visit set_values_to = exprs( PARAMCD = "HYSLAW", PARAM = "ALT/AST >= 3xULN and BILI >= 2xULN" diff --git a/inst/templates/ad_adpc.R b/inst/templates/ad_adpc.R index 005b1d07ba..e03772c859 100644 --- a/inst/templates/ad_adpc.R +++ b/inst/templates/ad_adpc.R @@ -75,7 +75,7 @@ pc_dates <- pc %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = !!!get_admiral_option("subject_keys") + by_vars = get_admiral_option("subject_keys") ) %>% # Derive analysis date/time # Impute missing time to 00:00:00 @@ -102,7 +102,7 @@ ex_dates <- ex %>% derive_vars_merged( dataset_add = adsl, new_vars = adsl_vars, - by_vars = !!!get_admiral_option("subject_keys") + by_vars = get_admiral_option("subject_keys") ) %>% # Keep records with nonzero dose filter(EXDOSE > 0) %>% @@ -148,11 +148,12 @@ ex_exp <- ex_dates %>% nominal_time = NFRLT, lookup_table = dose_freq_lookup, lookup_column = CDISC_VALUE, - keep_source_vars = exprs( - !!!get_admiral_option("subject_keys"), EVID, EXDOSFRQ, EXDOSFRM, + keep_source_vars = c( + get_admiral_option("subject_keys"), exprs(EVID, EXDOSFRQ, EXDOSFRM, NFRLT, EXDOSE, EXDOSU, EXTRT, ASTDT, ASTDTM, AENDT, AENDTM, VISIT, VISITNUM, VISITDY, TRT01A, TRT01P, DOMAIN, EXSEQ, !!!adsl_vars + ) ) ) %>% # Derive AVISIT based on nominal relative time @@ -182,7 +183,7 @@ adpc_first_dose <- pc_dates %>% new_vars = exprs(FANLDTM = ADTM), order = exprs(ADTM, EXSEQ), mode = "first", - by_vars = exprs(!!!get_admiral_option("subject_keys"), DRUG) + by_vars = c(get_admiral_option("subject_keys"), exprs(DRUG)) ) %>% filter(!is.na(FANLDTM)) %>% # Derive AVISIT based on nominal relative time @@ -445,7 +446,7 @@ adpc_dtype <- bind_rows(adpc_aval, dtype) %>% adpc_base <- adpc_dtype %>% derive_var_base( - by_vars = exprs(!!!get_admiral_option("subject_keys"), PARAMCD, PARCAT1, BASETYPE), + by_vars = c(get_admiral_option("subject_keys"), exprs(PARAMCD, PARCAT1, BASETYPE)), source_var = AVAL, new_var = BASE, filter = ABLFL == "Y" diff --git a/tests/testthat/test-derive_extreme_event.R b/tests/testthat/test-derive_extreme_event.R index ebd3f396cd..e353e86c57 100644 --- a/tests/testthat/test-derive_extreme_event.R +++ b/tests/testthat/test-derive_extreme_event.R @@ -2,24 +2,24 @@ ## Test 1: `mode` = first ---- test_that("derive_extreme_event Test 1: `mode` = first", { input <- tibble::tribble( - ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, - "xyz", "1", "NO SLEEP", "N", 1, - "xyz", "1", "WAKE UP", "N", 2, - "xyz", "1", "FALL ASLEEP", "N", 3, - "xyz", "2", "NO SLEEP", "N", 1, - "xyz", "2", "WAKE UP", "Y", 2, - "xyz", "2", "WAKE UP", "Y", 3, - "xyz", "2", "FALL ASLEEP", "N", 4, - "xyz", "3", "NO SLEEP", NA_character_, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, + "xyz", "1", "NO SLEEP", "N", 1, + "xyz", "1", "WAKE UP", "N", 2, + "xyz", "1", "FALL ASLEEP", "N", 3, + "xyz", "2", "NO SLEEP", "N", 1, + "xyz", "2", "WAKE UP", "Y", 2, + "xyz", "2", "WAKE UP", "Y", 3, + "xyz", "2", "FALL ASLEEP", "N", 4, + "xyz", "3", "NO SLEEP", NA_character_, 1 ) expected_output <- bind_rows( input, tibble::tribble( - ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, - "xyz", "1", "WSP", "No sleeping problems", 4, 1, - "xyz", "2", "WSP", "Waking up more than three times", 2, 2, - "xyz", "3", "WSP", "Missing", 99, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, + "xyz", "1", "WSP", "No sleeping problems", 4, 1, + "xyz", "2", "WSP", "Waking up more than three times", 2, 2, + "xyz", "3", "WSP", "Missing", 99, 1 ) ) @@ -69,24 +69,24 @@ test_that("derive_extreme_event Test 1: `mode` = first", { ## Test 2: `mode` = last ---- test_that("derive_extreme_event Test 2: `mode` = last", { input <- tibble::tribble( - ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, - "xyz", "1", "NO SLEEP", "N", 1, - "xyz", "1", "WAKE UP", "N", 2, - "xyz", "1", "FALL ASLEEP", "N", 3, - "xyz", "2", "NO SLEEP", "N", 1, - "xyz", "2", "WAKE UP", "Y", 2, - "xyz", "2", "WAKE UP", "Y", 3, - "xyz", "2", "FALL ASLEEP", "N", 4, - "xyz", "3", "NO SLEEP", NA_character_, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~ADY, + "xyz", "1", "NO SLEEP", "N", 1, + "xyz", "1", "WAKE UP", "N", 2, + "xyz", "1", "FALL ASLEEP", "N", 3, + "xyz", "2", "NO SLEEP", "N", 1, + "xyz", "2", "WAKE UP", "Y", 2, + "xyz", "2", "WAKE UP", "Y", 3, + "xyz", "2", "FALL ASLEEP", "N", 4, + "xyz", "3", "NO SLEEP", NA_character_, 1 ) expected_output <- bind_rows( input, tibble::tribble( - ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, - "xyz", "1", "WSP", "No sleeping problems", 4, 3, - "xyz", "2", "WSP", "Waking up more than three times", 2, 3, - "xyz", "3", "WSP", "Missing", 99, 1 + ~STUDYID, ~USUBJID, ~PARAMCD, ~AVALC, ~AVAL, ~ADY, + "xyz", "1", "WSP", "No sleeping problems", 4, 3, + "xyz", "2", "WSP", "Waking up more than three times", 2, 3, + "xyz", "3", "WSP", "Missing", 99, 1 ) ) @@ -284,13 +284,13 @@ test_that("derive_extreme_event Test 3: `source_datasets` works", { ## Test 4: event-specific mode ---- test_that("derive_extreme_event Test 4: event-specific mode", { adhy <- tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, - "xyz", "1", 1, "Y", - "xyz", "1", 2, "Y", - "xyz", "2", 1, "Y", - "xyz", "2", 2, NA_character_, - "xyz", "2", 3, "Y", - "xyz", "2", 4, NA_character_ + ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, + "xyz", "1", 1, "Y", + "xyz", "1", 2, "Y", + "xyz", "2", 1, "Y", + "xyz", "2", 2, NA_character_, + "xyz", "2", 3, "Y", + "xyz", "2", 4, NA_character_ ) %>% mutate( PARAMCD = "ALKPH", @@ -324,9 +324,9 @@ test_that("derive_extreme_event Test 4: event-specific mode", { expected <- bind_rows( adhy, tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, - "xyz", "1", 2, "Y", - "xyz", "2", 2, "N" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 2, "Y", + "xyz", "2", 2, "N" ) %>% mutate( PARAMCD = "ALK2", @@ -345,16 +345,16 @@ test_that("derive_extreme_event Test 4: event-specific mode", { ## Test 5: event_joined() is handled correctly ---- test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { adsl <- tibble::tribble( - ~STUDYID, ~USUBJID, ~TRTSDTC, - "xyz", "1", "2020-01-01", - "xyz", "2", "2019-12-12", - "xyz", "3", "2019-11-11", - "xyz", "4", "2019-12-30", - "xyz", "5", "2020-01-01", - "xyz", "6", "2020-02-02", - "xyz", "7", "2020-02-02", - "xyz", "8", "2020-04-01", - "xyz", "9", "2020-02-01" + ~STUDYID, ~USUBJID, ~TRTSDTC, + "xyz", "1", "2020-01-01", + "xyz", "2", "2019-12-12", + "xyz", "3", "2019-11-11", + "xyz", "4", "2019-12-30", + "xyz", "5", "2020-01-01", + "xyz", "6", "2020-02-02", + "xyz", "7", "2020-02-02", + "xyz", "8", "2020-04-01", + "xyz", "9", "2020-02-01" ) %>% mutate( TRTSDT = lubridate::ymd(TRTSDTC), @@ -362,35 +362,35 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ) adrs <- tibble::tribble( - ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, - "xyz", "1", "2020-01-01", "PR", - "xyz", "1", "2020-02-01", "CR", - "xyz", "1", "2020-02-16", "NE", - "xyz", "1", "2020-03-01", "CR", - "xyz", "1", "2020-04-01", "SD", - "xyz", "2", "2020-01-01", "SD", - "xyz", "2", "2020-02-01", "PR", - "xyz", "2", "2020-03-01", "SD", - "xyz", "2", "2020-03-13", "CR", - "xyz", "3", "2019-11-12", "CR", - "xyz", "3", "2019-12-02", "CR", - "xyz", "3", "2020-01-01", "SD", - "xyz", "4", "2020-01-01", "PR", - "xyz", "4", "2020-03-01", "SD", - "xyz", "4", "2020-04-01", "SD", - "xyz", "4", "2020-05-01", "PR", - "xyz", "4", "2020-05-15", "NON-CR/NON-PD", - "xyz", "5", "2020-01-01", "PR", - "xyz", "5", "2020-01-10", "SD", - "xyz", "5", "2020-01-20", "PR", - "xyz", "5", "2020-05-15", "NON-CR/NON-PD", - "xyz", "6", "2020-02-06", "PR", - "xyz", "6", "2020-02-16", "CR", - "xyz", "6", "2020-03-30", "PR", - "xyz", "7", "2020-02-06", "PR", - "xyz", "7", "2020-02-16", "CR", - "xyz", "7", "2020-04-01", "NE", - "xyz", "9", "2020-02-16", "PD" + ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, + "xyz", "1", "2020-01-01", "PR", + "xyz", "1", "2020-02-01", "CR", + "xyz", "1", "2020-02-16", "NE", + "xyz", "1", "2020-03-01", "CR", + "xyz", "1", "2020-04-01", "SD", + "xyz", "2", "2020-01-01", "SD", + "xyz", "2", "2020-02-01", "PR", + "xyz", "2", "2020-03-01", "SD", + "xyz", "2", "2020-03-13", "CR", + "xyz", "3", "2019-11-12", "CR", + "xyz", "3", "2019-12-02", "CR", + "xyz", "3", "2020-01-01", "SD", + "xyz", "4", "2020-01-01", "PR", + "xyz", "4", "2020-03-01", "SD", + "xyz", "4", "2020-04-01", "SD", + "xyz", "4", "2020-05-01", "PR", + "xyz", "4", "2020-05-15", "NON-CR/NON-PD", + "xyz", "5", "2020-01-01", "PR", + "xyz", "5", "2020-01-10", "SD", + "xyz", "5", "2020-01-20", "PR", + "xyz", "5", "2020-05-15", "NON-CR/NON-PD", + "xyz", "6", "2020-02-06", "PR", + "xyz", "6", "2020-02-16", "CR", + "xyz", "6", "2020-03-30", "PR", + "xyz", "7", "2020-02-06", "PR", + "xyz", "7", "2020-02-16", "CR", + "xyz", "7", "2020-04-01", "NE", + "xyz", "9", "2020-02-16", "PD" ) %>% mutate( PARAMCD = "OVR", @@ -486,16 +486,16 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { expected <- bind_rows( adrs, tibble::tribble( - ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, - "xyz", "1", "2020-02-01", "CR", - "xyz", "2", "2020-02-01", "SD", - "xyz", "3", "2020-01-01", "SD", - "xyz", "4", "2020-03-01", "SD", - "xyz", "5", "2020-05-15", "NON-CR/NON-PD", - "xyz", "6", "2020-03-30", "SD", - "xyz", "7", "2020-02-06", "NE", - "xyz", "8", NA_character_, "MISSING", - "xyz", "9", "2020-02-16", "PD" + ~STUDYID, ~USUBJID, ~ADTC, ~AVALC, + "xyz", "1", "2020-02-01", "CR", + "xyz", "2", "2020-02-01", "SD", + "xyz", "3", "2020-01-01", "SD", + "xyz", "4", "2020-03-01", "SD", + "xyz", "5", "2020-05-15", "NON-CR/NON-PD", + "xyz", "6", "2020-03-30", "SD", + "xyz", "7", "2020-02-06", "NE", + "xyz", "8", NA_character_, "MISSING", + "xyz", "9", "2020-02-16", "PD" ) %>% mutate( ADT = lubridate::ymd(ADTC), @@ -520,10 +520,10 @@ test_that("derive_extreme_event Test 5: event_joined() is handled correctly", { ## Test 6: no tmp_event_nr_var ---- test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { adrs <- tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, - "xyz", "1", 1, "PR", - "xyz", "1", 2, "CR", - "xyz", "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") @@ -556,8 +556,8 @@ test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { expected <- bind_rows( adrs, tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, ~PARAMCD, - "xyz", "1", 1, "Y", "CRSP" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, ~PARAMCD, + "xyz", "1", 1, "Y", "CRSP" ) ) @@ -571,15 +571,15 @@ test_that("derive_extreme_event Test 6: no tmp_event_nr_var", { ## Test 7: mode and condition used in event() ---- test_that("derive_extreme_event Test 7: mode and condition used in event()", { mydata <- tibble::tribble( - ~STUDYID, ~USUBJID, ~CRIT1FL, ~ADY, - "xyz", "1", "Y", 1, - "xyz", "1", "Y", 2, - "xyz", "2", "N", 1 + ~STUDYID, ~USUBJID, ~CRIT1FL, ~ADY, + "xyz", "1", "Y", 1, + "xyz", "1", "Y", 2, + "xyz", "2", "N", 1 ) expected <- tibble::tribble( ~STUDYID, ~USUBJID, ~CRIT1FL, ~ADY, - "xyz", "1", "Y", 1 + "xyz", "1", "Y", 1 ) expect_dfs_equal( @@ -604,13 +604,13 @@ test_that("derive_extreme_event Test 7: mode and condition used in event()", { ## Test 8: error if source dataset not available ---- test_that("derive_extreme_event Test 8: error if source dataset not available", { adhy <- tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, - "xyz", "1", 1, "Y", - "xyz", "1", 2, "Y", - "xyz", "2", 1, "Y", - "xyz", "2", 2, NA_character_, - "xyz", "2", 3, "Y", - "xyz", "2", 4, NA_character_ + ~STUDYID, ~USUBJID, ~AVISITN, ~CRIT1FL, + "xyz", "1", 1, "Y", + "xyz", "1", 2, "Y", + "xyz", "2", 1, "Y", + "xyz", "2", 2, NA_character_, + "xyz", "2", 3, "Y", + "xyz", "2", 4, NA_character_ ) %>% mutate( PARAMCD = "ALKPH", @@ -650,10 +650,10 @@ test_that("derive_extreme_event Test 8: error if source dataset not available", ## Test 9: deprecation of ignore_event_order ---- test_that("derive_extreme_event Test 9: deprecation of ignore_event_order", { adrs <- tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, - "xyz", "1", 1, "PR", - "xyz", "1", 2, "CR", - "xyz", "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") @@ -691,10 +691,10 @@ test_that("derive_extreme_event Test 9: deprecation of ignore_event_order", { ## Test 10: deprecation of ignore_event_order ---- test_that("derive_extreme_event Test 10: deprecation of ignore_event_order", { adrs <- tibble::tribble( - ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, - "xyz", "1", 1, "PR", - "xyz", "1", 2, "CR", - "xyz", "1", 3, "CR" + ~STUDYID, ~USUBJID, ~AVISITN, ~AVALC, + "xyz", "1", 1, "PR", + "xyz", "1", 2, "CR", + "xyz", "1", 3, "CR" ) %>% mutate(PARAMCD = "OVR") diff --git a/vignettes/concepts_conventions.Rmd b/vignettes/concepts_conventions.Rmd index a29b3ab531..e38df4653d 100644 --- a/vignettes/concepts_conventions.Rmd +++ b/vignettes/concepts_conventions.Rmd @@ -214,18 +214,18 @@ library(dplyr, warn.conflicts = FALSE) library(admiral) vs <- tribble( -~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSSTRESN, ~VSSTRESU, ~VSDTC, - "dmog_1", "01-1301", "WEIGHT", "SCREENING", 82.1, "kg", "2013-08-29", - "dmog_1", "01-1301", "WEIGHT", "WEEK 2", 81.19, "kg", "2013-09-15", - "dmog_1", "01-1301", "WEIGHT", "WEEK 4", 82.56, "kg", "2013-09-24", - "dmog_1", "01-1302", "BMI", "SCREENING", 20.1, "kg/m2", "2013-08-29", - "dmog_1", "01-1302", "BMI", "WEEK 2", 20.2, "kg/m2", "2013-09-15", - "dmog_1", "01-1302", "BMI", "WEEK 4", 19.9, "kg/m2", "2013-09-24" + ~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSSTRESN, ~VSSTRESU, ~VSDTC, + "dmog_1", "01-1301", "WEIGHT", "SCREENING", 82.1, "kg", "2013-08-29", + "dmog_1", "01-1301", "WEIGHT", "WEEK 2", 81.19, "kg", "2013-09-15", + "dmog_1", "01-1301", "WEIGHT", "WEEK 4", 82.56, "kg", "2013-09-24", + "dmog_1", "01-1302", "BMI", "SCREENING", 20.1, "kg/m2", "2013-08-29", + "dmog_1", "01-1302", "BMI", "WEEK 2", 20.2, "kg/m2", "2013-09-15", + "dmog_1", "01-1302", "BMI", "WEEK 4", 19.9, "kg/m2", "2013-09-24" ) dm <- tribble( -~STUDYID, ~USUBJID, ~AGE, -"dmog_1", "01-1301", 18 + ~STUDYID, ~USUBJID, ~AGE, + "dmog_1", "01-1301", 18 ) ``` diff --git a/vignettes/writing_vignettes.Rmd b/vignettes/writing_vignettes.Rmd index 6818129fdf..17d0eadfcd 100644 --- a/vignettes/writing_vignettes.Rmd +++ b/vignettes/writing_vignettes.Rmd @@ -131,11 +131,11 @@ library(DT) data(vs) vs <- tribble( - ~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSDTC, - "omep_1", "01-701-1015", "WEIGHT", "BASELINE", "2013-12-26", - "omep_1", "01-701-1015", "WEIGHT", "WEEK 2", "2014-01-14", - "omep_1", "01-701-1016", "WEIGHT", "BASELINE", "2014-01-06", - "omep_1", "01-701-1016", "WEIGHT", "WEEK 2", "2014-01-22", + ~STUDYID, ~USUBJID, ~VSTESTCD, ~VISIT, ~VSDTC, + "omep_1", "01-701-1015", "WEIGHT", "BASELINE", "2013-12-26", + "omep_1", "01-701-1015", "WEIGHT", "WEEK 2", "2014-01-14", + "omep_1", "01-701-1016", "WEIGHT", "BASELINE", "2014-01-06", + "omep_1", "01-701-1016", "WEIGHT", "WEEK 2", "2014-01-22", ) ``` @@ -161,8 +161,7 @@ vs1 <- vs %>% dataset_vignette( vs1, - display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT) - ), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT)), filter = VSTESTCD == "WEIGHT" ) ``` @@ -174,8 +173,7 @@ Note: The call to get the formatted dataset would be: ```{r, eval=FALSE, echo=TRUE} dataset_vignette( vs1, - display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT) - ), + display_vars = c(get_admiral_option("subject_keys"), exprs(VSTESTCD, VISIT, VSDTC, ADT)), filter = VSTESTCD == "WEIGHT" ) ``` From 50c2dd7aa8d3ec4b720f071064b55035b4e7d127 Mon Sep 17 00:00:00 2001 From: ProfessorP <pwebster26@gmail.com> Date: Thu, 6 Jun 2024 13:03:20 -0400 Subject: [PATCH 22/22] Ran spellcheck, lintr, and devtools to address pull request errors. --- R/assertions.R | 3 ++- inst/WORDLIST | 1 - man/create_single_dose_dataset.Rd | 8 +++++--- man/derive_vars_period.Rd | 6 ++++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/R/assertions.R b/R/assertions.R index c30f4b6380..0857849b6e 100644 --- a/R/assertions.R +++ b/R/assertions.R @@ -523,7 +523,8 @@ assert_filter_cond <- function(arg, if (provided && !(is_call(arg) || is_logical(arg))) { cli_abort( message = message %||% - "Argument {.arg {(arg_name)}} must be a filter condition, but is {.obj_type_friendly {arg}}", + "Argument {.arg {(arg_name)}} must be a filter condition, + but is {.obj_type_friendly {arg}}", class = c(class, "assert-admiraldev"), call = call ) diff --git a/inst/WORDLIST b/inst/WORDLIST index 78c1469dbb..743432f723 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -106,7 +106,6 @@ Fibrinogen Findability Framingham Franciszek -Francois Fridericia Fridericia's Fujimoto diff --git a/man/create_single_dose_dataset.Rd b/man/create_single_dose_dataset.Rd index c67fad5a02..5a4fdd405a 100644 --- a/man/create_single_dose_dataset.Rd +++ b/man/create_single_dose_dataset.Rd @@ -272,9 +272,11 @@ create_single_dose_dataset( end_date = EXENDT, end_datetime = EXENDTM, keep_source_vars = c( - get_admiral_option("subject_keys"), exprs(EXTRT, EXDOSE, EXDOSFRQ, - DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC - )) + get_admiral_option("subject_keys"), exprs( + EXTRT, EXDOSE, EXDOSFRQ, + DCUTDT, EXSTDT, EXSTDTM, EXENDT, EXENDTM, EXSTDTC, EXENDTC + ) + ) ) } \seealso{ diff --git a/man/derive_vars_period.Rd b/man/derive_vars_period.Rd index 3b4d06ca5c..e518b2c173 100644 --- a/man/derive_vars_period.Rd +++ b/man/derive_vars_period.Rd @@ -131,8 +131,10 @@ derive_vars_period( dataset_ref = subperiod_ref, new_vars = exprs(PxxSwSDT = ASPRSDT, PxxSwEDT = ASPREDT) ) \%>\% - select(!!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, - P02S1SDT, P02S1EDT) + select( + !!!get_admiral_option("subject_keys"), P01S1SDT, P01S1EDT, P01S2SDT, P01S2EDT, + P02S1SDT, P02S1EDT + ) } \seealso{ \code{\link[=create_period_dataset]{create_period_dataset()}}

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 z%0D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