downloading reverse dependencies ... downloading autoslider.core_0.3.1.tar.gz ... ok downloading chevron_0.2.12.tar.gz ... ok downloading junco_0.1.1.tar.gz ... ok downloading rtables.officer_0.1.1.tar.gz ... ok downloading teal.modules.clinical_0.11.1.tar.gz ... ok downloading teal.modules.general_0.5.1.tar.gz ... ok downloading teal.reporter_0.6.0.tar.gz ... ok downloading teal.widgets_0.5.0.tar.gz ... ok downloading tern_0.9.9.tar.gz ... ok downloading tern.gee_0.1.5.tar.gz ... ok downloading tern.mmrm_0.3.3.tar.gz ... ok downloading tern.rbmi_0.1.6.tar.gz ... ok downloading dtlg_0.0.2.tar.gz ... ok downloading gridify_0.7.5.tar.gz ... ok installing dependencies ‘dtlg.data’, ‘dunlin’, ‘filters’, ‘geeasy’, ‘maditr’, ‘nestcolor’, ‘pharmaverseadam’, ‘random.cdisc.data’, ‘rbmi’, ‘rlistings’, ‘roxy.shinylive’, ‘rtables’, ‘rtables.officer’, ‘shinyTree’, ‘shinyvalidate’, ‘sparkline’, ‘teal’, ‘teal.code’, ‘teal.data’, ‘teal.logger’, ‘teal.reporter’, ‘teal.transform’, ‘teal.widgets’, ‘tern’, ‘tern.gee’, ‘tern.mmrm’, ‘tidytlg’, ‘vistime’ Warning: package ‘dtlg.data’ is not available for this version of R A version of this package for your version of R might be available elsewhere, see the ideas at https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#Installing-packages also installing the dependencies ‘jinjar’, ‘teal.slice’, ‘lzstring’ begin installing package ‘jinjar’ begin installing package ‘lzstring’ begin installing package ‘rlistings’ begin installing package ‘filters’ begin installing package ‘nestcolor’ begin installing package ‘dunlin’ begin installing package ‘tidytlg’ begin installing package ‘pharmaverseadam’ begin installing package ‘shinyvalidate’ begin installing package ‘teal.code’ begin installing package ‘teal.logger’ begin installing package ‘vistime’ begin installing package ‘shinyTree’ begin installing package ‘sparkline’ begin installing package ‘geeasy’ begin installing package ‘maditr’ begin installing package ‘random.cdisc.data’ begin installing package ‘rtables’ * installing *source* package ‘sparkline’ ... ** this is package ‘sparkline’ version ‘2.0’ ** package ‘sparkline’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (sparkline) * installing *source* package ‘nestcolor’ ... ** this is package ‘nestcolor’ version ‘0.1.3’ ** package ‘nestcolor’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (nestcolor) * installing *source* package ‘filters’ ... ** this is package ‘filters’ version ‘0.3.1’ ** package ‘filters’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (filters) * installing *source* package ‘shinyvalidate’ ... ** this is package ‘shinyvalidate’ version ‘0.1.3’ ** package ‘shinyvalidate’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (shinyvalidate) * installing *source* package ‘maditr’ ... ** this is package ‘maditr’ version ‘0.8.6’ ** package ‘maditr’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (maditr) * installing *source* package ‘teal.logger’ ... ** this is package ‘teal.logger’ version ‘0.4.0’ ** package ‘teal.logger’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.logger) * installing *source* package ‘teal.code’ ... ** this is package ‘teal.code’ version ‘0.7.0’ ** package ‘teal.code’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.code) begin installing package ‘teal.data’ * installing *source* package ‘dunlin’ ... ** this is package ‘dunlin’ version ‘0.1.11’ ** package ‘dunlin’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (dunlin) * installing *source* package ‘shinyTree’ ... ** this is package ‘shinyTree’ version ‘0.3.1’ ** package ‘shinyTree’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (shinyTree) * installing *source* package ‘rlistings’ ... ** this is package ‘rlistings’ version ‘0.2.12’ ** package ‘rlistings’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (rlistings) * installing *source* package ‘lzstring’ ... ** this is package ‘lzstring’ version ‘0.2.0’ ** package ‘lzstring’ successfully unpacked and MD5 sums checked ** using staged installation ** libs using C++ compiler: ‘g++-15 (Debian 15.2.0-7) 15.2.0’ make[1]: Entering directory '/home/hornik/tmp/scratch/Rtmpbdy3yS/R.INSTALL12794e6be3995c/lzstring/src' g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c code.cpp -o code.o In file included from code.cpp:4: lz-string.h: In function ‘lzstring::string lzstring::decompressFromEncodedURIComponent(const string&)’: lz-string.h:549:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 549 | for (int i = 0; i < keyStrUriSafe.length(); ++i) baseReverseDic[keyStrUriSafe.at(i)] = i; | ~~^~~~~~~~~~~~~~~~~~~~~~~~ lz-string.h: In function ‘lzstring::string lzstring::decompressFromBase64(const string&)’: lz-string.h:574:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 574 | for (int i = 0; i < keyStrBase64.length(); ++i) baseReverseDic[keyStrBase64.at(i)] = i; | ~~^~~~~~~~~~~~~~~~~~~~~~~ g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c cpp11.cpp -o cpp11.o g++-15 -std=gnu++17 -shared -L/home/hornik/tmp/R/lib -Wl,-O1 -o lzstring.so code.o cpp11.o -L/home/hornik/tmp/R/lib -lR make[1]: Leaving directory '/home/hornik/tmp/scratch/Rtmpbdy3yS/R.INSTALL12794e6be3995c/lzstring/src' installing to /home/hornik/tmp/CRAN_recheck/Library/00LOCK-lzstring/00new/lzstring/libs ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** testing if installed package can be loaded from temporary location ** checking absolute paths in shared objects and dynamic libraries ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (lzstring) begin installing package ‘roxy.shinylive’ * installing *source* package ‘vistime’ ... ** this is package ‘vistime’ version ‘1.2.4’ ** package ‘vistime’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (vistime) * installing *source* package ‘teal.data’ ... ** this is package ‘teal.data’ version ‘0.8.0’ ** package ‘teal.data’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.data) * installing *source* package ‘roxy.shinylive’ ... ** this is package ‘roxy.shinylive’ version ‘1.0.0’ ** package ‘roxy.shinylive’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (roxy.shinylive) * installing *source* package ‘tidytlg’ ... ** this is package ‘tidytlg’ version ‘0.10.0’ ** package ‘tidytlg’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (tidytlg) * installing *source* package ‘random.cdisc.data’ ... ** this is package ‘random.cdisc.data’ version ‘0.3.16’ ** package ‘random.cdisc.data’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (random.cdisc.data) * installing *source* package ‘geeasy’ ... ** this is package ‘geeasy’ version ‘0.1.3’ ** package ‘geeasy’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (geeasy) * installing *source* package ‘rtables’ ... ** this is package ‘rtables’ version ‘0.6.14’ ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading Creating a new generic function for ‘str’ in package ‘rtables’ Creating a generic function for ‘nrow’ from package ‘base’ in package ‘rtables’ Creating a generic function for ‘rbind’ from package ‘base’ in package ‘rtables’ ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (rtables) begin installing package ‘tern’ begin installing package ‘teal.widgets’ begin installing package ‘rtables.officer’ * installing *source* package ‘teal.widgets’ ... ** this is package ‘teal.widgets’ version ‘0.5.0’ ** package ‘teal.widgets’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.widgets) begin installing package ‘teal.slice’ begin installing package ‘teal.transform’ * installing *source* package ‘rtables.officer’ ... ** this is package ‘rtables.officer’ version ‘0.1.1’ ** package ‘rtables.officer’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (rtables.officer) begin installing package ‘teal.reporter’ * installing *source* package ‘teal.transform’ ... ** this is package ‘teal.transform’ version ‘0.7.0’ ** package ‘teal.transform’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.transform) * installing *source* package ‘teal.reporter’ ... ** this is package ‘teal.reporter’ version ‘0.6.0’ ** package ‘teal.reporter’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.reporter) * installing *source* package ‘teal.slice’ ... ** this is package ‘teal.slice’ version ‘0.7.0’ ** package ‘teal.slice’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal.slice) begin installing package ‘teal’ * installing *source* package ‘tern’ ... ** this is package ‘tern’ version ‘0.9.9’ ** package ‘tern’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (tern) begin installing package ‘tern.gee’ begin installing package ‘tern.mmrm’ * installing *source* package ‘jinjar’ ... ** this is package ‘jinjar’ version ‘0.3.2’ ** package ‘jinjar’ successfully unpacked and MD5 sums checked ** using staged installation ** libs using C++ compiler: ‘g++-15 (Debian 15.2.0-7) 15.2.0’ make[1]: Entering directory '/home/hornik/tmp/scratch/Rtmp6aSpdR/R.INSTALL127970131edf08/jinjar/src' g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I./inja -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c condition.cpp -o condition.o g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I./inja -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c cpp11.cpp -o cpp11.o g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I./inja -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c loader.cpp -o loader.o g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I./inja -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c render.cpp -o render.o g++-15 -std=gnu++17 -I"/home/hornik/tmp/R/include" -DNDEBUG -I./inja -I'/home/hornik/lib/R/Library/4.6/x86_64-linux-gnu/cpp11/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -c template.cpp -o template.o g++-15 -std=gnu++17 -shared -L/home/hornik/tmp/R/lib -Wl,-O1 -o jinjar.so condition.o cpp11.o loader.o render.o template.o -L/home/hornik/tmp/R/lib -lR make[1]: Leaving directory '/home/hornik/tmp/scratch/Rtmp6aSpdR/R.INSTALL127970131edf08/jinjar/src' installing to /home/hornik/tmp/CRAN_recheck/Library/00LOCK-jinjar/00new/jinjar/libs ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** checking absolute paths in shared objects and dynamic libraries ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (jinjar) begin installing package ‘rbmi’ * installing *source* package ‘teal’ ... ** this is package ‘teal’ version ‘1.1.0’ ** package ‘teal’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (teal) * installing *source* package ‘tern.gee’ ... ** this is package ‘tern.gee’ version ‘0.1.5’ ** package ‘tern.gee’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (tern.gee) * installing *source* package ‘tern.mmrm’ ... ** this is package ‘tern.mmrm’ version ‘0.3.3’ ** package ‘tern.mmrm’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (tern.mmrm) * installing *source* package ‘rbmi’ ... ** this is package ‘rbmi’ version ‘1.5.2’ ** package ‘rbmi’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** installing vignettes ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (rbmi) * installing *source* package ‘pharmaverseadam’ ... ** this is package ‘pharmaverseadam’ version ‘1.2.0’ ** package ‘pharmaverseadam’ successfully unpacked and MD5 sums checked ** using staged installation ** R ** data *** moving datasets to lazyload DB ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (pharmaverseadam) checking rtables_0.6.14.tar.gz ... checking autoslider.core_0.3.1.tar.gz ... checking chevron_0.2.12.tar.gz ... checking junco_0.1.1.tar.gz ... checking rtables.officer_0.1.1.tar.gz ... checking teal.modules.clinical_0.11.1.tar.gz ... checking teal.modules.general_0.5.1.tar.gz ... checking teal.reporter_0.6.0.tar.gz ... checking teal.widgets_0.5.0.tar.gz ... checking tern_0.9.9.tar.gz ... checking tern.gee_0.1.5.tar.gz ... checking tern.mmrm_0.3.3.tar.gz ... checking dtlg_0.0.2.tar.gz ... checking tern.rbmi_0.1.6.tar.gz ... checking gridify_0.7.5.tar.gz ... Depends: Package: rtables Depends: formatters (>= 0.5.11), magrittr (>= 1.5), methods, R (>= 4.1) Imports: checkmate (>= 2.1.0), htmltools (>= 0.5.4), lifecycle (>= 0.2.0), stats, stringi (>= 1.6) Timings: user system elapsed rtables 395.093 13.271 413.047 Results: Check status summary: OK Source packages 1 Reverse depends 14 Check results summary: rtables ... OK rdepends_autoslider.core ... OK rdepends_chevron ... OK rdepends_dtlg ... OK rdepends_gridify ... OK rdepends_junco ... OK rdepends_rtables.officer ... OK rdepends_teal.modules.clinical ... OK rdepends_teal.modules.general ... OK rdepends_teal.reporter ... OK rdepends_teal.widgets ... OK rdepends_tern.gee ... OK rdepends_tern.mmrm ... OK rdepends_tern.rbmi ... OK rdepends_tern ... OK