diff --git a/DESCRIPTION b/DESCRIPTION
index 82d7805344227c6ec2c1ffd89c0124198903484b..a36be376787acfb2a4c3eb7c7b805505e5554124 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,8 +1,8 @@
 Package: dotCall64
 Type: Package
 Title: Enhanced Foreign Function Interface Supporting Long Vectors
-Version: 1.0-1
-Date: 2021-02-10
+Version: 1.1-0
+Date: 2023-10-16
 Authors@R: c(person("Kaspar", "Moesinger", role = c("aut"),
     email = "kaspar.moesinger@gmail.com"), 
     person("Florian", "Gerber", role = c("aut"),
@@ -18,12 +18,12 @@ Description: Provides .C64(), which is an enhanced version of .C()
     makes it a convenient and fast interface to C/C++ and Fortran code.
 License: GPL (>= 2)
 URL: https://git.math.uzh.ch/reinhard.furrer/dotCall64
-BugReports: https://git.math.uzh.ch/reinhard.furrer/dotCall64/issues
+BugReports: https://git.math.uzh.ch/reinhard.furrer/dotCall64/-/issues
 Depends:
     R (>= 3.1)
 Suggests:
     microbenchmark,
-    OpenMPController,
+    RhpcBLASctl,
     RColorBrewer,
     roxygen2,
     spam,
diff --git a/NEWS b/NEWS
index d3aa4c1738b7a33612b6e4b194c5f848d6ae8e95..4158a14f3a380d10779928eed573fc66d4525712 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,16 @@
 # dotCall64
+
+# 1.1-0
+Date: 2022-10-16
+* Addressed issue from  `_R_CHECK_FORTRAN_KIND_DETAILS_` 
+* Switched from "OpenMPController" to "RhpcBLASctl"
+* Minor changes in `CITATION`
+
+# 1.0-2
+Date: 2022-10-03
+* change of `dotCall64helpers.c`
+
+# 1.0-1
 commit 8d65b1cb96c4c7568515aa3f9c2a48cd3bdb8661 (HEAD -> master, origin/master, origin/HEAD)
 Author: Florian Gerber <flora.fauna.gerber@gmail.com>
 Date:   Wed Feb 10 15:13:40 2021 -0700
diff --git a/benchmark/benchmark_memory.R b/benchmark/benchmark_memory.R
index 249ed21b2062a603b8707f0979c10ebc76383f77..a2f3f0d8919080e08a64bcb0d84c2c89d2b53e8a 100644
--- a/benchmark/benchmark_memory.R
+++ b/benchmark/benchmark_memory.R
@@ -2,7 +2,7 @@ rm(list = ls(all = TRUE))
 require("dotCall64")
 require("microbenchmark")
 require("xtable"); options(xtable.NA.string = "--")
-require("OpenMPController"); omp_set_num_threads(1)
+require("RhpcBLASctl"); omp_set_num_threads(1)
 mem <- function(...){
     ## measure peak memory usage with gctorture()
     
diff --git a/benchmark/benchmark_n1.R b/benchmark/benchmark_n1.R
index 1459b5762adab63736d5a5bd4ea469357e542ba0..13ae3083cae341b1a3b0a3e0afedf2784ea72d28 100644
--- a/benchmark/benchmark_n1.R
+++ b/benchmark/benchmark_n1.R
@@ -1,7 +1,7 @@
 rm(list = ls(all = TRUE))
 require("dotCall64")
 require("microbenchmark")
-require("OpenMPController"); omp_set_num_threads(1)
+require("RhpcBLASctl"); omp_set_num_threads(1)
 mb <- microbenchmark
 
 ## functions to print latex tables with brackets
diff --git a/benchmark/benchmark_n2_28.R b/benchmark/benchmark_n2_28.R
index 7f18521b356393da517fcff3fc07a339bcb35436..f1316616d59e49162ba2640149071f3a1cd35045 100644
--- a/benchmark/benchmark_n2_28.R
+++ b/benchmark/benchmark_n2_28.R
@@ -1,7 +1,7 @@
 rm(list = ls(all = TRUE))
 require("dotCall64")
 require("microbenchmark")
-require("OpenMPController"); omp_set_num_threads(1)
+require("RhpcBLASctl"); omp_set_num_threads(1)
 mb <- microbenchmark
 
 ## functions to print latex tables with brackets
diff --git a/benchmark/benchmark_n2_28_w.R b/benchmark/benchmark_n2_28_w.R
index cc9fdf57f15a3c802938cb4a6b6517bb3d1a560e..da6d943e5d3f4e3f9574f509c7db7737d97f30aa 100644
--- a/benchmark/benchmark_n2_28_w.R
+++ b/benchmark/benchmark_n2_28_w.R
@@ -1,7 +1,7 @@
 rm(list = ls(all = TRUE))
 require("dotCall64")
 require("microbenchmark"); mb <- microbenchmark
-require("OpenMPController"); omp_set_num_threads(1)
+require("RhpcBLASctl"); omp_set_num_threads(1)
 
 
 ## functions to print latex tables with brackets
diff --git a/benchmark/benchmark_openMP.R b/benchmark/benchmark_openMP.R
index 85b5c0d2692612fa7e599dab59b2dbb53c451207..7cc66ab71bdb61dd0a2a516644592495e175344c 100644
--- a/benchmark/benchmark_openMP.R
+++ b/benchmark/benchmark_openMP.R
@@ -1,7 +1,7 @@
 rm(list = ls(all = TRUE))
 require("dotCall64")
 require("microbenchmark")
-require("OpenMPController"); omp_set_num_threads(1)
+require("RhpcBLASctl"); omp_set_num_threads(1)
 mb <- microbenchmark
 
 times <- 5
diff --git a/inst/CITATION b/inst/CITATION
index 650ae042f67a348aa53245cc08e764295f0620e4..ba57a400ff1deee5ef1d852598506e73d544d88c 100644
--- a/inst/CITATION
+++ b/inst/CITATION
@@ -1,11 +1,11 @@
 citHeader("To cite dotCall64 in publications use:")
 
 
-citEntry(entry = "Article",
+bibentry(bibtype = "Article",
   title        = "{dotCall64}: An {R} package providing an efficient interface to compiled {C}, {C++}, and {Fortran} code supporting long vectors",
-  author       = personList(as.person("Florian Gerber"),
-                            as.person("Kaspar Moesinger"),
-                            as.person("Reinhard Furrer")),
+  author       = c(person("Florian Gerber"),
+                            person("Kaspar Moesinger"),
+                            person("Reinhard Furrer")),
   journal      = "SoftwareX",
   year         = "2018",
   volume       = "7",
@@ -19,11 +19,11 @@ citEntry(entry = "Article",
 )
 
 
-citEntry(entry = "Article",
+bibentry(bibtype = "Article",
   title        = "Extending {R} packages to support 64-bit compiled code: An illustration with spam64 and {GIMMS} {NDVI3g} data",
-  author       = personList(as.person("Florian Gerber"),
-                            as.person("Kaspar Moesinger"),
-                            as.person("Reinhard Furrer")),
+  author       = c(person("Florian Gerber"),
+                            person("Kaspar Moesinger"),
+                            person("Reinhard Furrer")),
   journal      = "Computer & Geoscience",
   year         = "2017",
   volume       = "104",
diff --git a/src/dotCall64helpers.c b/src/dotCall64helpers.c
index 8b329c506ba3d57042ad614ea53e6febc6546295..0ea6c983ae2fef244de94ce3cdc7b88d68652115 100644
--- a/src/dotCall64helpers.c
+++ b/src/dotCall64helpers.c
@@ -17,603 +17,879 @@
 
 /*
 
-The following lines are copied from R source: src/main/dotcode.c:1685-2277
+The following lines are copied from R source:
+  src/main/dotcode.c:585-858
+  src/main/dotcode.c:2063-2654
 
 */
 
+typedef SEXP (*FUNS1)(SEXP);
+typedef SEXP (*FUNS2)(SEXP, SEXP);
+typedef SEXP (*FUNS3)(SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS4)(SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS5)(SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS6)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS7)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS8)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS9)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS10)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS11)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS12)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS13)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS14)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS15)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS16)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS17)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS18)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS19)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS20)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS21)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS22)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS23)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS24)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS25)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS26)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS27)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS28)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS29)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS30)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS31)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS32)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS33)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS34)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS35)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS36)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS37)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS38)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS39)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS40)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS41)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS42)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS43)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS44)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS45)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS46)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS47)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS48)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS49)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS50)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS51)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS52)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS53)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS54)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS55)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS56)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+typedef SEXP (*FUNS57)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS58)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS59)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS60)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS61)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS62)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+typedef SEXP (*FUNS63)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS64)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP);
+typedef SEXP (*FUNS65)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP,
+                       SEXP, SEXP);
+
+
 void dotCall64_callFunction(DL_FUNC fun, int nargs, void **cargs) {
-	switch (nargs) {
-	case 0:
-		/* Silicon graphics C chokes here */
-		/* if there is no argument to fun. */
-		fun(0);
-		break;
-	case 1:
-		fun(cargs[0]);
-		break;
-	case 2:
-		fun(cargs[0], cargs[1]);
-		break;
-	case 3:
-		fun(cargs[0], cargs[1], cargs[2]);
-		break;
-	case 4:
-		fun(cargs[0], cargs[1], cargs[2], cargs[3]);
-		break;
-	case 5:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4]);
-		break;
-	case 6:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5]);
-		break;
-	case 7:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6]);
-		break;
-	case 8:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7]);
-		break;
-	case 9:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8]);
-		break;
-	case 10:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9]);
-		break;
-	case 11:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10]);
-		break;
-	case 12:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11]);
-		break;
-	case 13:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12]);
-		break;
-	case 14:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13]);
-		break;
-	case 15:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14]);
-		break;
-	case 16:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15]);
-		break;
-	case 17:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16]);
-		break;
-	case 18:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17]);
-		break;
-	case 19:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18]);
-		break;
-	case 20:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19]);
-		break;
-	case 21:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20]);
-		break;
-	case 22:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21]);
-		break;
-	case 23:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22]);
-		break;
-	case 24:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23]);
-		break;
-	case 25:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24]);
-		break;
-	case 26:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25]);
-		break;
-	case 27:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26]);
-		break;
-	case 28:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27]);
-		break;
-	case 29:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28]);
-		break;
-	case 30:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29]);
-		break;
-	case 31:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30]);
-		break;
-	case 32:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31]);
-		break;
-	case 33:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32]);
-		break;
-	case 34:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33]);
-		break;
-	case 35:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34]);
-		break;
-	case 36:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35]);
-		break;
-	case 37:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36]);
-		break;
-	case 38:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37]);
-		break;
-	case 39:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38]);
-		break;
-	case 40:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39]);
-		break;
-	case 41:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40]);
-		break;
-	case 42:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41]);
-		break;
-	case 43:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42]);
-		break;
-	case 44:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43]);
-		break;
-	case 45:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44]);
-		break;
-	case 46:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45]);
-		break;
-	case 47:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46]);
-		break;
-	case 48:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47]);
-		break;
-	case 49:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48]);
-		break;
-	case 50:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49]);
-		break;
-	case 51:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50]);
-		break;
-	case 52:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51]);
-		break;
-	case 53:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52]);
-		break;
-	case 54:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53]);
-		break;
-	case 55:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54]);
-		break;
-	case 56:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55]);
-		break;
-	case 57:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56]);
-		break;
-	case 58:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57]);
-		break;
-	case 59:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58]);
-		break;
-	case 60:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59]);
-		break;
-	case 61:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
-				cargs[60]);
-		break;
-	case 62:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
-				cargs[60], cargs[61]);
-		break;
-	case 63:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
-				cargs[60], cargs[61], cargs[62]);
-		break;
-	case 64:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
-				cargs[60], cargs[61], cargs[62], cargs[63]);
-		break;
-	case 65:
-		fun(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
-				cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
-				cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
-				cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
-				cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
-				cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
-				cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
-				cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
-				cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
-				cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
-				cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
-				cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
-				cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]);
-		break;
-	default:
-		error(_("too many arguments, sorry"));
-	}
+    switch (nargs) {
+    case 0:
+	fun();
+	break;
+    case 1:
+	((FUNS1)fun)(cargs[0]);
+	break;
+    case 2:
+	((FUNS2)fun)(cargs[0], cargs[1]);
+	break;
+    case 3:
+	((FUNS3)fun)(cargs[0], cargs[1], cargs[2]);
+	break;
+    case 4:
+	((FUNS4)fun)(cargs[0], cargs[1], cargs[2], cargs[3]);
+	break;
+    case 5:
+	((FUNS5)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4]);
+	break;
+    case 6:
+	((FUNS6)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5]);
+	break;
+    case 7:
+	((FUNS7)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6]);
+	break;
+    case 8:
+	((FUNS8)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7]);
+	break;
+    case 9:
+	((FUNS9)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8]);
+	break;
+    case 10:
+	((FUNS10)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9]);
+	break;
+    case 11:
+	((FUNS11)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10]);
+	break;
+    case 12:
+	((FUNS12)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11]);
+	break;
+    case 13:
+	((FUNS13)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12]);
+	break;
+    case 14:
+	((FUNS14)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13]);
+	break;
+    case 15:
+	((FUNS15)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14]);
+	break;
+    case 16:
+	((FUNS16)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15]);
+	break;
+    case 17:
+	((FUNS17)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16]);
+	break;
+    case 18:
+	((FUNS18)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17]);
+	break;
+    case 19:
+	((FUNS19)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18]);
+	break;
+    case 20:
+	((FUNS20)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19]);
+	break;
+    case 21:
+	((FUNS21)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20]);
+	break;
+    case 22:
+	((FUNS22)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21]);
+	break;
+    case 23:
+	((FUNS23)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22]);
+	break;
+    case 24:
+	((FUNS24)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23]);
+	break;
+    case 25:
+	((FUNS25)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24]);
+	break;
+    case 26:
+	((FUNS26)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25]);
+	break;
+    case 27:
+	((FUNS27)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26]);
+	break;
+    case 28:
+	((FUNS28)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27]);
+	break;
+    case 29:
+	((FUNS29)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28]);
+	break;
+    case 30:
+	((FUNS30)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29]);
+	break;
+    case 31:
+	((FUNS31)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30]);
+	break;
+    case 32:
+	((FUNS32)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31]);
+	break;
+    case 33:
+	((FUNS33)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32]);
+	break;
+    case 34:
+	((FUNS34)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33]);
+	break;
+    case 35:
+	((FUNS35)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34]);
+	break;
+    case 36:
+	((FUNS36)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35]);
+	break;
+    case 37:
+	((FUNS37)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36]);
+	break;
+    case 38:
+	((FUNS38)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37]);
+	break;
+    case 39:
+	((FUNS39)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38]);
+	break;
+    case 40:
+	((FUNS40)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39]);
+	break;
+    case 41:
+	((FUNS41)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40]);
+	break;
+    case 42:
+	((FUNS42)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41]);
+	break;
+    case 43:
+	((FUNS43)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42]);
+	break;
+    case 44:
+	((FUNS44)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43]);
+	break;
+    case 45:
+	((FUNS45)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44]);
+	break;
+    case 46:
+	((FUNS46)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45]);
+	break;
+    case 47:
+	((FUNS47)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46]);
+	break;
+    case 48:
+	((FUNS48)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47]);
+	break;
+    case 49:
+	((FUNS49)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48]);
+	break;
+    case 50:
+	((FUNS50)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49]);
+	break;
+    case 51:
+	((FUNS51)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50]);
+	break;
+    case 52:
+	((FUNS52)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51]);
+	break;
+    case 53:
+	((FUNS53)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52]);
+	break;
+    case 54:
+	((FUNS54)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53]);
+	break;
+    case 55:
+	((FUNS55)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54]);
+	break;
+    case 56:
+	((FUNS56)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55]);
+	break;
+    case 57:
+	((FUNS57)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56]);
+	break;
+    case 58:
+	((FUNS58)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57]);
+	break;
+    case 59:
+	((FUNS59)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58]);
+	break;
+    case 60:
+	((FUNS60)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59]);
+	break;
+    case 61:
+	((FUNS61)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
+	    cargs[60]);
+	break;
+    case 62:
+	((FUNS62)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
+	    cargs[60], cargs[61]);
+	break;
+    case 63:
+	((FUNS63)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
+	    cargs[60], cargs[61], cargs[62]);
+	break;
+    case 64:
+	((FUNS64)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
+	    cargs[60], cargs[61], cargs[62], cargs[63]);
+	break;
+    case 65:
+	((FUNS65)fun)(cargs[0],  cargs[1],  cargs[2],  cargs[3],  cargs[4],
+	    cargs[5],  cargs[6],  cargs[7],  cargs[8],  cargs[9],
+	    cargs[10], cargs[11], cargs[12], cargs[13], cargs[14],
+	    cargs[15], cargs[16], cargs[17], cargs[18], cargs[19],
+	    cargs[20], cargs[21], cargs[22], cargs[23], cargs[24],
+	    cargs[25], cargs[26], cargs[27], cargs[28], cargs[29],
+	    cargs[30], cargs[31], cargs[32], cargs[33], cargs[34],
+	    cargs[35], cargs[36], cargs[37], cargs[38], cargs[39],
+	    cargs[40], cargs[41], cargs[42], cargs[43], cargs[44],
+	    cargs[45], cargs[46], cargs[47], cargs[48], cargs[49],
+	    cargs[50], cargs[51], cargs[52], cargs[53], cargs[54],
+	    cargs[55], cargs[56], cargs[57], cargs[58], cargs[59],
+	    cargs[60], cargs[61], cargs[62], cargs[63], cargs[64]);
+	break;
+    default:
+	error(_("too many arguments, sorry"));
+    }
 }
diff --git a/src/testfunctions_f.f b/src/testfunctions_f.f
index 88d9f860475065edc2c1b75cb896eab2ea49ed60..547ea52372f781fd628159c1c24274127561edfd 100644
--- a/src/testfunctions_f.f
+++ b/src/testfunctions_f.f
@@ -1,3 +1,6 @@
+c      https://stackoverflow.com/questions/3170239/fortran-integer4-vs-integer4-vs-integerkind-4
+
+
       subroutine get_f(input, index, output)
       double precision :: input(*), output(*)
       integer :: index
@@ -6,7 +9,7 @@
 
       subroutine get64_f(input, index, output)
       double precision :: input(*), output(*)
-      integer (kind = 8) :: index  ! 64-bit integer on GFortran, differs with other compilers   
+      integer (8) :: index  ! 64-bit integer on GFortran, differs with other compilers   
       output(1) = input(index)
       end
 
diff --git a/tests/run-all.R b/tests/run-all.R
index 486102101b84f999068a86f3869d68d41980e667..d8f2224317a3ddf75695ce6e15c4b2d56b666fd3 100644
--- a/tests/run-all.R
+++ b/tests/run-all.R
@@ -1,2 +1,8 @@
+require("RhpcBLASctl"); omp_set_num_threads(1)
+# to address:
+# * checking tests ... [10s/1s] NOTE
+#   Running ‘run-all.R’ [10s/1s]
+#   Running R code in ‘run-all.R’ had CPU time 10.5 times elapsed time
+
 library(testthat)
 test_check('dotCall64')