github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/browsingdata/bindings/ffi_bindings.ts (about)

     1  import { importModule, Application, heap, Pointer } from "@ffi";
     2  
     3  importModule("plat/js/webext/browsingdata", (A: Application) => {
     4    const WEBEXT = typeof globalThis.browser === "undefined" ? globalThis.chrome : globalThis.browser;
     5  
     6    return {
     7      "store_DataTypeSet": (ptr: Pointer, ref: heap.Ref<any>) => {
     8        const x = A.H.get<any>(ref);
     9  
    10        if (typeof x === "undefined") {
    11          A.store.Bool(ptr + 30, false);
    12          A.store.Bool(ptr + 15, false);
    13          A.store.Bool(ptr + 0, false);
    14          A.store.Bool(ptr + 16, false);
    15          A.store.Bool(ptr + 1, false);
    16          A.store.Bool(ptr + 17, false);
    17          A.store.Bool(ptr + 2, false);
    18          A.store.Bool(ptr + 18, false);
    19          A.store.Bool(ptr + 3, false);
    20          A.store.Bool(ptr + 19, false);
    21          A.store.Bool(ptr + 4, false);
    22          A.store.Bool(ptr + 20, false);
    23          A.store.Bool(ptr + 5, false);
    24          A.store.Bool(ptr + 21, false);
    25          A.store.Bool(ptr + 6, false);
    26          A.store.Bool(ptr + 22, false);
    27          A.store.Bool(ptr + 7, false);
    28          A.store.Bool(ptr + 23, false);
    29          A.store.Bool(ptr + 8, false);
    30          A.store.Bool(ptr + 24, false);
    31          A.store.Bool(ptr + 9, false);
    32          A.store.Bool(ptr + 25, false);
    33          A.store.Bool(ptr + 10, false);
    34          A.store.Bool(ptr + 26, false);
    35          A.store.Bool(ptr + 11, false);
    36          A.store.Bool(ptr + 27, false);
    37          A.store.Bool(ptr + 12, false);
    38          A.store.Bool(ptr + 28, false);
    39          A.store.Bool(ptr + 13, false);
    40          A.store.Bool(ptr + 29, false);
    41          A.store.Bool(ptr + 14, false);
    42        } else {
    43          A.store.Bool(ptr + 30, true);
    44          A.store.Bool(ptr + 15, "appcache" in x ? true : false);
    45          A.store.Bool(ptr + 0, x["appcache"] ? true : false);
    46          A.store.Bool(ptr + 16, "cache" in x ? true : false);
    47          A.store.Bool(ptr + 1, x["cache"] ? true : false);
    48          A.store.Bool(ptr + 17, "cacheStorage" in x ? true : false);
    49          A.store.Bool(ptr + 2, x["cacheStorage"] ? true : false);
    50          A.store.Bool(ptr + 18, "cookies" in x ? true : false);
    51          A.store.Bool(ptr + 3, x["cookies"] ? true : false);
    52          A.store.Bool(ptr + 19, "downloads" in x ? true : false);
    53          A.store.Bool(ptr + 4, x["downloads"] ? true : false);
    54          A.store.Bool(ptr + 20, "fileSystems" in x ? true : false);
    55          A.store.Bool(ptr + 5, x["fileSystems"] ? true : false);
    56          A.store.Bool(ptr + 21, "formData" in x ? true : false);
    57          A.store.Bool(ptr + 6, x["formData"] ? true : false);
    58          A.store.Bool(ptr + 22, "history" in x ? true : false);
    59          A.store.Bool(ptr + 7, x["history"] ? true : false);
    60          A.store.Bool(ptr + 23, "indexedDB" in x ? true : false);
    61          A.store.Bool(ptr + 8, x["indexedDB"] ? true : false);
    62          A.store.Bool(ptr + 24, "localStorage" in x ? true : false);
    63          A.store.Bool(ptr + 9, x["localStorage"] ? true : false);
    64          A.store.Bool(ptr + 25, "passwords" in x ? true : false);
    65          A.store.Bool(ptr + 10, x["passwords"] ? true : false);
    66          A.store.Bool(ptr + 26, "pluginData" in x ? true : false);
    67          A.store.Bool(ptr + 11, x["pluginData"] ? true : false);
    68          A.store.Bool(ptr + 27, "serverBoundCertificates" in x ? true : false);
    69          A.store.Bool(ptr + 12, x["serverBoundCertificates"] ? true : false);
    70          A.store.Bool(ptr + 28, "serviceWorkers" in x ? true : false);
    71          A.store.Bool(ptr + 13, x["serviceWorkers"] ? true : false);
    72          A.store.Bool(ptr + 29, "webSQL" in x ? true : false);
    73          A.store.Bool(ptr + 14, x["webSQL"] ? true : false);
    74        }
    75      },
    76      "load_DataTypeSet": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
    77        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
    78  
    79        if (A.load.Bool(ptr + 15)) {
    80          x["appcache"] = A.load.Bool(ptr + 0);
    81        } else {
    82          delete x["appcache"];
    83        }
    84        if (A.load.Bool(ptr + 16)) {
    85          x["cache"] = A.load.Bool(ptr + 1);
    86        } else {
    87          delete x["cache"];
    88        }
    89        if (A.load.Bool(ptr + 17)) {
    90          x["cacheStorage"] = A.load.Bool(ptr + 2);
    91        } else {
    92          delete x["cacheStorage"];
    93        }
    94        if (A.load.Bool(ptr + 18)) {
    95          x["cookies"] = A.load.Bool(ptr + 3);
    96        } else {
    97          delete x["cookies"];
    98        }
    99        if (A.load.Bool(ptr + 19)) {
   100          x["downloads"] = A.load.Bool(ptr + 4);
   101        } else {
   102          delete x["downloads"];
   103        }
   104        if (A.load.Bool(ptr + 20)) {
   105          x["fileSystems"] = A.load.Bool(ptr + 5);
   106        } else {
   107          delete x["fileSystems"];
   108        }
   109        if (A.load.Bool(ptr + 21)) {
   110          x["formData"] = A.load.Bool(ptr + 6);
   111        } else {
   112          delete x["formData"];
   113        }
   114        if (A.load.Bool(ptr + 22)) {
   115          x["history"] = A.load.Bool(ptr + 7);
   116        } else {
   117          delete x["history"];
   118        }
   119        if (A.load.Bool(ptr + 23)) {
   120          x["indexedDB"] = A.load.Bool(ptr + 8);
   121        } else {
   122          delete x["indexedDB"];
   123        }
   124        if (A.load.Bool(ptr + 24)) {
   125          x["localStorage"] = A.load.Bool(ptr + 9);
   126        } else {
   127          delete x["localStorage"];
   128        }
   129        if (A.load.Bool(ptr + 25)) {
   130          x["passwords"] = A.load.Bool(ptr + 10);
   131        } else {
   132          delete x["passwords"];
   133        }
   134        if (A.load.Bool(ptr + 26)) {
   135          x["pluginData"] = A.load.Bool(ptr + 11);
   136        } else {
   137          delete x["pluginData"];
   138        }
   139        if (A.load.Bool(ptr + 27)) {
   140          x["serverBoundCertificates"] = A.load.Bool(ptr + 12);
   141        } else {
   142          delete x["serverBoundCertificates"];
   143        }
   144        if (A.load.Bool(ptr + 28)) {
   145          x["serviceWorkers"] = A.load.Bool(ptr + 13);
   146        } else {
   147          delete x["serviceWorkers"];
   148        }
   149        if (A.load.Bool(ptr + 29)) {
   150          x["webSQL"] = A.load.Bool(ptr + 14);
   151        } else {
   152          delete x["webSQL"];
   153        }
   154        return create === A.H.TRUE ? A.H.push(x) : ref;
   155      },
   156  
   157      "store_RemovalOptionsFieldOriginTypes": (ptr: Pointer, ref: heap.Ref<any>) => {
   158        const x = A.H.get<any>(ref);
   159  
   160        if (typeof x === "undefined") {
   161          A.store.Bool(ptr + 6, false);
   162          A.store.Bool(ptr + 3, false);
   163          A.store.Bool(ptr + 0, false);
   164          A.store.Bool(ptr + 4, false);
   165          A.store.Bool(ptr + 1, false);
   166          A.store.Bool(ptr + 5, false);
   167          A.store.Bool(ptr + 2, false);
   168        } else {
   169          A.store.Bool(ptr + 6, true);
   170          A.store.Bool(ptr + 3, "extension" in x ? true : false);
   171          A.store.Bool(ptr + 0, x["extension"] ? true : false);
   172          A.store.Bool(ptr + 4, "protectedWeb" in x ? true : false);
   173          A.store.Bool(ptr + 1, x["protectedWeb"] ? true : false);
   174          A.store.Bool(ptr + 5, "unprotectedWeb" in x ? true : false);
   175          A.store.Bool(ptr + 2, x["unprotectedWeb"] ? true : false);
   176        }
   177      },
   178      "load_RemovalOptionsFieldOriginTypes": (
   179        ptr: Pointer,
   180        create: heap.Ref<boolean>,
   181        ref: heap.Ref<any>
   182      ): heap.Ref<any> => {
   183        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   184  
   185        if (A.load.Bool(ptr + 3)) {
   186          x["extension"] = A.load.Bool(ptr + 0);
   187        } else {
   188          delete x["extension"];
   189        }
   190        if (A.load.Bool(ptr + 4)) {
   191          x["protectedWeb"] = A.load.Bool(ptr + 1);
   192        } else {
   193          delete x["protectedWeb"];
   194        }
   195        if (A.load.Bool(ptr + 5)) {
   196          x["unprotectedWeb"] = A.load.Bool(ptr + 2);
   197        } else {
   198          delete x["unprotectedWeb"];
   199        }
   200        return create === A.H.TRUE ? A.H.push(x) : ref;
   201      },
   202  
   203      "store_RemovalOptions": (ptr: Pointer, ref: heap.Ref<any>) => {
   204        const x = A.H.get<any>(ref);
   205  
   206        if (typeof x === "undefined") {
   207          A.store.Bool(ptr + 25, false);
   208          A.store.Ref(ptr + 0, undefined);
   209  
   210          A.store.Bool(ptr + 4 + 6, false);
   211          A.store.Bool(ptr + 4 + 3, false);
   212          A.store.Bool(ptr + 4 + 0, false);
   213          A.store.Bool(ptr + 4 + 4, false);
   214          A.store.Bool(ptr + 4 + 1, false);
   215          A.store.Bool(ptr + 4 + 5, false);
   216          A.store.Bool(ptr + 4 + 2, false);
   217          A.store.Ref(ptr + 12, undefined);
   218          A.store.Bool(ptr + 24, false);
   219          A.store.Float64(ptr + 16, 0);
   220        } else {
   221          A.store.Bool(ptr + 25, true);
   222          A.store.Ref(ptr + 0, x["excludeOrigins"]);
   223  
   224          if (typeof x["originTypes"] === "undefined") {
   225            A.store.Bool(ptr + 4 + 6, false);
   226            A.store.Bool(ptr + 4 + 3, false);
   227            A.store.Bool(ptr + 4 + 0, false);
   228            A.store.Bool(ptr + 4 + 4, false);
   229            A.store.Bool(ptr + 4 + 1, false);
   230            A.store.Bool(ptr + 4 + 5, false);
   231            A.store.Bool(ptr + 4 + 2, false);
   232          } else {
   233            A.store.Bool(ptr + 4 + 6, true);
   234            A.store.Bool(ptr + 4 + 3, "extension" in x["originTypes"] ? true : false);
   235            A.store.Bool(ptr + 4 + 0, x["originTypes"]["extension"] ? true : false);
   236            A.store.Bool(ptr + 4 + 4, "protectedWeb" in x["originTypes"] ? true : false);
   237            A.store.Bool(ptr + 4 + 1, x["originTypes"]["protectedWeb"] ? true : false);
   238            A.store.Bool(ptr + 4 + 5, "unprotectedWeb" in x["originTypes"] ? true : false);
   239            A.store.Bool(ptr + 4 + 2, x["originTypes"]["unprotectedWeb"] ? true : false);
   240          }
   241          A.store.Ref(ptr + 12, x["origins"]);
   242          A.store.Bool(ptr + 24, "since" in x ? true : false);
   243          A.store.Float64(ptr + 16, x["since"] === undefined ? 0 : (x["since"] as number));
   244        }
   245      },
   246      "load_RemovalOptions": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   247        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   248  
   249        x["excludeOrigins"] = A.load.Ref(ptr + 0, undefined);
   250        if (A.load.Bool(ptr + 4 + 6)) {
   251          x["originTypes"] = {};
   252          if (A.load.Bool(ptr + 4 + 3)) {
   253            x["originTypes"]["extension"] = A.load.Bool(ptr + 4 + 0);
   254          } else {
   255            delete x["originTypes"]["extension"];
   256          }
   257          if (A.load.Bool(ptr + 4 + 4)) {
   258            x["originTypes"]["protectedWeb"] = A.load.Bool(ptr + 4 + 1);
   259          } else {
   260            delete x["originTypes"]["protectedWeb"];
   261          }
   262          if (A.load.Bool(ptr + 4 + 5)) {
   263            x["originTypes"]["unprotectedWeb"] = A.load.Bool(ptr + 4 + 2);
   264          } else {
   265            delete x["originTypes"]["unprotectedWeb"];
   266          }
   267        } else {
   268          delete x["originTypes"];
   269        }
   270        x["origins"] = A.load.Ref(ptr + 12, undefined);
   271        if (A.load.Bool(ptr + 24)) {
   272          x["since"] = A.load.Float64(ptr + 16);
   273        } else {
   274          delete x["since"];
   275        }
   276        return create === A.H.TRUE ? A.H.push(x) : ref;
   277      },
   278  
   279      "store_SettingsReturnType": (ptr: Pointer, ref: heap.Ref<any>) => {
   280        const x = A.H.get<any>(ref);
   281  
   282        if (typeof x === "undefined") {
   283          A.store.Bool(ptr + 90, false);
   284  
   285          A.store.Bool(ptr + 0 + 30, false);
   286          A.store.Bool(ptr + 0 + 15, false);
   287          A.store.Bool(ptr + 0 + 0, false);
   288          A.store.Bool(ptr + 0 + 16, false);
   289          A.store.Bool(ptr + 0 + 1, false);
   290          A.store.Bool(ptr + 0 + 17, false);
   291          A.store.Bool(ptr + 0 + 2, false);
   292          A.store.Bool(ptr + 0 + 18, false);
   293          A.store.Bool(ptr + 0 + 3, false);
   294          A.store.Bool(ptr + 0 + 19, false);
   295          A.store.Bool(ptr + 0 + 4, false);
   296          A.store.Bool(ptr + 0 + 20, false);
   297          A.store.Bool(ptr + 0 + 5, false);
   298          A.store.Bool(ptr + 0 + 21, false);
   299          A.store.Bool(ptr + 0 + 6, false);
   300          A.store.Bool(ptr + 0 + 22, false);
   301          A.store.Bool(ptr + 0 + 7, false);
   302          A.store.Bool(ptr + 0 + 23, false);
   303          A.store.Bool(ptr + 0 + 8, false);
   304          A.store.Bool(ptr + 0 + 24, false);
   305          A.store.Bool(ptr + 0 + 9, false);
   306          A.store.Bool(ptr + 0 + 25, false);
   307          A.store.Bool(ptr + 0 + 10, false);
   308          A.store.Bool(ptr + 0 + 26, false);
   309          A.store.Bool(ptr + 0 + 11, false);
   310          A.store.Bool(ptr + 0 + 27, false);
   311          A.store.Bool(ptr + 0 + 12, false);
   312          A.store.Bool(ptr + 0 + 28, false);
   313          A.store.Bool(ptr + 0 + 13, false);
   314          A.store.Bool(ptr + 0 + 29, false);
   315          A.store.Bool(ptr + 0 + 14, false);
   316  
   317          A.store.Bool(ptr + 31 + 30, false);
   318          A.store.Bool(ptr + 31 + 15, false);
   319          A.store.Bool(ptr + 31 + 0, false);
   320          A.store.Bool(ptr + 31 + 16, false);
   321          A.store.Bool(ptr + 31 + 1, false);
   322          A.store.Bool(ptr + 31 + 17, false);
   323          A.store.Bool(ptr + 31 + 2, false);
   324          A.store.Bool(ptr + 31 + 18, false);
   325          A.store.Bool(ptr + 31 + 3, false);
   326          A.store.Bool(ptr + 31 + 19, false);
   327          A.store.Bool(ptr + 31 + 4, false);
   328          A.store.Bool(ptr + 31 + 20, false);
   329          A.store.Bool(ptr + 31 + 5, false);
   330          A.store.Bool(ptr + 31 + 21, false);
   331          A.store.Bool(ptr + 31 + 6, false);
   332          A.store.Bool(ptr + 31 + 22, false);
   333          A.store.Bool(ptr + 31 + 7, false);
   334          A.store.Bool(ptr + 31 + 23, false);
   335          A.store.Bool(ptr + 31 + 8, false);
   336          A.store.Bool(ptr + 31 + 24, false);
   337          A.store.Bool(ptr + 31 + 9, false);
   338          A.store.Bool(ptr + 31 + 25, false);
   339          A.store.Bool(ptr + 31 + 10, false);
   340          A.store.Bool(ptr + 31 + 26, false);
   341          A.store.Bool(ptr + 31 + 11, false);
   342          A.store.Bool(ptr + 31 + 27, false);
   343          A.store.Bool(ptr + 31 + 12, false);
   344          A.store.Bool(ptr + 31 + 28, false);
   345          A.store.Bool(ptr + 31 + 13, false);
   346          A.store.Bool(ptr + 31 + 29, false);
   347          A.store.Bool(ptr + 31 + 14, false);
   348  
   349          A.store.Bool(ptr + 64 + 25, false);
   350          A.store.Ref(ptr + 64 + 0, undefined);
   351  
   352          A.store.Bool(ptr + 64 + 4 + 6, false);
   353          A.store.Bool(ptr + 64 + 4 + 3, false);
   354          A.store.Bool(ptr + 64 + 4 + 0, false);
   355          A.store.Bool(ptr + 64 + 4 + 4, false);
   356          A.store.Bool(ptr + 64 + 4 + 1, false);
   357          A.store.Bool(ptr + 64 + 4 + 5, false);
   358          A.store.Bool(ptr + 64 + 4 + 2, false);
   359          A.store.Ref(ptr + 64 + 12, undefined);
   360          A.store.Bool(ptr + 64 + 24, false);
   361          A.store.Float64(ptr + 64 + 16, 0);
   362        } else {
   363          A.store.Bool(ptr + 90, true);
   364  
   365          if (typeof x["dataRemovalPermitted"] === "undefined") {
   366            A.store.Bool(ptr + 0 + 30, false);
   367            A.store.Bool(ptr + 0 + 15, false);
   368            A.store.Bool(ptr + 0 + 0, false);
   369            A.store.Bool(ptr + 0 + 16, false);
   370            A.store.Bool(ptr + 0 + 1, false);
   371            A.store.Bool(ptr + 0 + 17, false);
   372            A.store.Bool(ptr + 0 + 2, false);
   373            A.store.Bool(ptr + 0 + 18, false);
   374            A.store.Bool(ptr + 0 + 3, false);
   375            A.store.Bool(ptr + 0 + 19, false);
   376            A.store.Bool(ptr + 0 + 4, false);
   377            A.store.Bool(ptr + 0 + 20, false);
   378            A.store.Bool(ptr + 0 + 5, false);
   379            A.store.Bool(ptr + 0 + 21, false);
   380            A.store.Bool(ptr + 0 + 6, false);
   381            A.store.Bool(ptr + 0 + 22, false);
   382            A.store.Bool(ptr + 0 + 7, false);
   383            A.store.Bool(ptr + 0 + 23, false);
   384            A.store.Bool(ptr + 0 + 8, false);
   385            A.store.Bool(ptr + 0 + 24, false);
   386            A.store.Bool(ptr + 0 + 9, false);
   387            A.store.Bool(ptr + 0 + 25, false);
   388            A.store.Bool(ptr + 0 + 10, false);
   389            A.store.Bool(ptr + 0 + 26, false);
   390            A.store.Bool(ptr + 0 + 11, false);
   391            A.store.Bool(ptr + 0 + 27, false);
   392            A.store.Bool(ptr + 0 + 12, false);
   393            A.store.Bool(ptr + 0 + 28, false);
   394            A.store.Bool(ptr + 0 + 13, false);
   395            A.store.Bool(ptr + 0 + 29, false);
   396            A.store.Bool(ptr + 0 + 14, false);
   397          } else {
   398            A.store.Bool(ptr + 0 + 30, true);
   399            A.store.Bool(ptr + 0 + 15, "appcache" in x["dataRemovalPermitted"] ? true : false);
   400            A.store.Bool(ptr + 0 + 0, x["dataRemovalPermitted"]["appcache"] ? true : false);
   401            A.store.Bool(ptr + 0 + 16, "cache" in x["dataRemovalPermitted"] ? true : false);
   402            A.store.Bool(ptr + 0 + 1, x["dataRemovalPermitted"]["cache"] ? true : false);
   403            A.store.Bool(ptr + 0 + 17, "cacheStorage" in x["dataRemovalPermitted"] ? true : false);
   404            A.store.Bool(ptr + 0 + 2, x["dataRemovalPermitted"]["cacheStorage"] ? true : false);
   405            A.store.Bool(ptr + 0 + 18, "cookies" in x["dataRemovalPermitted"] ? true : false);
   406            A.store.Bool(ptr + 0 + 3, x["dataRemovalPermitted"]["cookies"] ? true : false);
   407            A.store.Bool(ptr + 0 + 19, "downloads" in x["dataRemovalPermitted"] ? true : false);
   408            A.store.Bool(ptr + 0 + 4, x["dataRemovalPermitted"]["downloads"] ? true : false);
   409            A.store.Bool(ptr + 0 + 20, "fileSystems" in x["dataRemovalPermitted"] ? true : false);
   410            A.store.Bool(ptr + 0 + 5, x["dataRemovalPermitted"]["fileSystems"] ? true : false);
   411            A.store.Bool(ptr + 0 + 21, "formData" in x["dataRemovalPermitted"] ? true : false);
   412            A.store.Bool(ptr + 0 + 6, x["dataRemovalPermitted"]["formData"] ? true : false);
   413            A.store.Bool(ptr + 0 + 22, "history" in x["dataRemovalPermitted"] ? true : false);
   414            A.store.Bool(ptr + 0 + 7, x["dataRemovalPermitted"]["history"] ? true : false);
   415            A.store.Bool(ptr + 0 + 23, "indexedDB" in x["dataRemovalPermitted"] ? true : false);
   416            A.store.Bool(ptr + 0 + 8, x["dataRemovalPermitted"]["indexedDB"] ? true : false);
   417            A.store.Bool(ptr + 0 + 24, "localStorage" in x["dataRemovalPermitted"] ? true : false);
   418            A.store.Bool(ptr + 0 + 9, x["dataRemovalPermitted"]["localStorage"] ? true : false);
   419            A.store.Bool(ptr + 0 + 25, "passwords" in x["dataRemovalPermitted"] ? true : false);
   420            A.store.Bool(ptr + 0 + 10, x["dataRemovalPermitted"]["passwords"] ? true : false);
   421            A.store.Bool(ptr + 0 + 26, "pluginData" in x["dataRemovalPermitted"] ? true : false);
   422            A.store.Bool(ptr + 0 + 11, x["dataRemovalPermitted"]["pluginData"] ? true : false);
   423            A.store.Bool(ptr + 0 + 27, "serverBoundCertificates" in x["dataRemovalPermitted"] ? true : false);
   424            A.store.Bool(ptr + 0 + 12, x["dataRemovalPermitted"]["serverBoundCertificates"] ? true : false);
   425            A.store.Bool(ptr + 0 + 28, "serviceWorkers" in x["dataRemovalPermitted"] ? true : false);
   426            A.store.Bool(ptr + 0 + 13, x["dataRemovalPermitted"]["serviceWorkers"] ? true : false);
   427            A.store.Bool(ptr + 0 + 29, "webSQL" in x["dataRemovalPermitted"] ? true : false);
   428            A.store.Bool(ptr + 0 + 14, x["dataRemovalPermitted"]["webSQL"] ? true : false);
   429          }
   430  
   431          if (typeof x["dataToRemove"] === "undefined") {
   432            A.store.Bool(ptr + 31 + 30, false);
   433            A.store.Bool(ptr + 31 + 15, false);
   434            A.store.Bool(ptr + 31 + 0, false);
   435            A.store.Bool(ptr + 31 + 16, false);
   436            A.store.Bool(ptr + 31 + 1, false);
   437            A.store.Bool(ptr + 31 + 17, false);
   438            A.store.Bool(ptr + 31 + 2, false);
   439            A.store.Bool(ptr + 31 + 18, false);
   440            A.store.Bool(ptr + 31 + 3, false);
   441            A.store.Bool(ptr + 31 + 19, false);
   442            A.store.Bool(ptr + 31 + 4, false);
   443            A.store.Bool(ptr + 31 + 20, false);
   444            A.store.Bool(ptr + 31 + 5, false);
   445            A.store.Bool(ptr + 31 + 21, false);
   446            A.store.Bool(ptr + 31 + 6, false);
   447            A.store.Bool(ptr + 31 + 22, false);
   448            A.store.Bool(ptr + 31 + 7, false);
   449            A.store.Bool(ptr + 31 + 23, false);
   450            A.store.Bool(ptr + 31 + 8, false);
   451            A.store.Bool(ptr + 31 + 24, false);
   452            A.store.Bool(ptr + 31 + 9, false);
   453            A.store.Bool(ptr + 31 + 25, false);
   454            A.store.Bool(ptr + 31 + 10, false);
   455            A.store.Bool(ptr + 31 + 26, false);
   456            A.store.Bool(ptr + 31 + 11, false);
   457            A.store.Bool(ptr + 31 + 27, false);
   458            A.store.Bool(ptr + 31 + 12, false);
   459            A.store.Bool(ptr + 31 + 28, false);
   460            A.store.Bool(ptr + 31 + 13, false);
   461            A.store.Bool(ptr + 31 + 29, false);
   462            A.store.Bool(ptr + 31 + 14, false);
   463          } else {
   464            A.store.Bool(ptr + 31 + 30, true);
   465            A.store.Bool(ptr + 31 + 15, "appcache" in x["dataToRemove"] ? true : false);
   466            A.store.Bool(ptr + 31 + 0, x["dataToRemove"]["appcache"] ? true : false);
   467            A.store.Bool(ptr + 31 + 16, "cache" in x["dataToRemove"] ? true : false);
   468            A.store.Bool(ptr + 31 + 1, x["dataToRemove"]["cache"] ? true : false);
   469            A.store.Bool(ptr + 31 + 17, "cacheStorage" in x["dataToRemove"] ? true : false);
   470            A.store.Bool(ptr + 31 + 2, x["dataToRemove"]["cacheStorage"] ? true : false);
   471            A.store.Bool(ptr + 31 + 18, "cookies" in x["dataToRemove"] ? true : false);
   472            A.store.Bool(ptr + 31 + 3, x["dataToRemove"]["cookies"] ? true : false);
   473            A.store.Bool(ptr + 31 + 19, "downloads" in x["dataToRemove"] ? true : false);
   474            A.store.Bool(ptr + 31 + 4, x["dataToRemove"]["downloads"] ? true : false);
   475            A.store.Bool(ptr + 31 + 20, "fileSystems" in x["dataToRemove"] ? true : false);
   476            A.store.Bool(ptr + 31 + 5, x["dataToRemove"]["fileSystems"] ? true : false);
   477            A.store.Bool(ptr + 31 + 21, "formData" in x["dataToRemove"] ? true : false);
   478            A.store.Bool(ptr + 31 + 6, x["dataToRemove"]["formData"] ? true : false);
   479            A.store.Bool(ptr + 31 + 22, "history" in x["dataToRemove"] ? true : false);
   480            A.store.Bool(ptr + 31 + 7, x["dataToRemove"]["history"] ? true : false);
   481            A.store.Bool(ptr + 31 + 23, "indexedDB" in x["dataToRemove"] ? true : false);
   482            A.store.Bool(ptr + 31 + 8, x["dataToRemove"]["indexedDB"] ? true : false);
   483            A.store.Bool(ptr + 31 + 24, "localStorage" in x["dataToRemove"] ? true : false);
   484            A.store.Bool(ptr + 31 + 9, x["dataToRemove"]["localStorage"] ? true : false);
   485            A.store.Bool(ptr + 31 + 25, "passwords" in x["dataToRemove"] ? true : false);
   486            A.store.Bool(ptr + 31 + 10, x["dataToRemove"]["passwords"] ? true : false);
   487            A.store.Bool(ptr + 31 + 26, "pluginData" in x["dataToRemove"] ? true : false);
   488            A.store.Bool(ptr + 31 + 11, x["dataToRemove"]["pluginData"] ? true : false);
   489            A.store.Bool(ptr + 31 + 27, "serverBoundCertificates" in x["dataToRemove"] ? true : false);
   490            A.store.Bool(ptr + 31 + 12, x["dataToRemove"]["serverBoundCertificates"] ? true : false);
   491            A.store.Bool(ptr + 31 + 28, "serviceWorkers" in x["dataToRemove"] ? true : false);
   492            A.store.Bool(ptr + 31 + 13, x["dataToRemove"]["serviceWorkers"] ? true : false);
   493            A.store.Bool(ptr + 31 + 29, "webSQL" in x["dataToRemove"] ? true : false);
   494            A.store.Bool(ptr + 31 + 14, x["dataToRemove"]["webSQL"] ? true : false);
   495          }
   496  
   497          if (typeof x["options"] === "undefined") {
   498            A.store.Bool(ptr + 64 + 25, false);
   499            A.store.Ref(ptr + 64 + 0, undefined);
   500  
   501            A.store.Bool(ptr + 64 + 4 + 6, false);
   502            A.store.Bool(ptr + 64 + 4 + 3, false);
   503            A.store.Bool(ptr + 64 + 4 + 0, false);
   504            A.store.Bool(ptr + 64 + 4 + 4, false);
   505            A.store.Bool(ptr + 64 + 4 + 1, false);
   506            A.store.Bool(ptr + 64 + 4 + 5, false);
   507            A.store.Bool(ptr + 64 + 4 + 2, false);
   508            A.store.Ref(ptr + 64 + 12, undefined);
   509            A.store.Bool(ptr + 64 + 24, false);
   510            A.store.Float64(ptr + 64 + 16, 0);
   511          } else {
   512            A.store.Bool(ptr + 64 + 25, true);
   513            A.store.Ref(ptr + 64 + 0, x["options"]["excludeOrigins"]);
   514  
   515            if (typeof x["options"]["originTypes"] === "undefined") {
   516              A.store.Bool(ptr + 64 + 4 + 6, false);
   517              A.store.Bool(ptr + 64 + 4 + 3, false);
   518              A.store.Bool(ptr + 64 + 4 + 0, false);
   519              A.store.Bool(ptr + 64 + 4 + 4, false);
   520              A.store.Bool(ptr + 64 + 4 + 1, false);
   521              A.store.Bool(ptr + 64 + 4 + 5, false);
   522              A.store.Bool(ptr + 64 + 4 + 2, false);
   523            } else {
   524              A.store.Bool(ptr + 64 + 4 + 6, true);
   525              A.store.Bool(ptr + 64 + 4 + 3, "extension" in x["options"]["originTypes"] ? true : false);
   526              A.store.Bool(ptr + 64 + 4 + 0, x["options"]["originTypes"]["extension"] ? true : false);
   527              A.store.Bool(ptr + 64 + 4 + 4, "protectedWeb" in x["options"]["originTypes"] ? true : false);
   528              A.store.Bool(ptr + 64 + 4 + 1, x["options"]["originTypes"]["protectedWeb"] ? true : false);
   529              A.store.Bool(ptr + 64 + 4 + 5, "unprotectedWeb" in x["options"]["originTypes"] ? true : false);
   530              A.store.Bool(ptr + 64 + 4 + 2, x["options"]["originTypes"]["unprotectedWeb"] ? true : false);
   531            }
   532            A.store.Ref(ptr + 64 + 12, x["options"]["origins"]);
   533            A.store.Bool(ptr + 64 + 24, "since" in x["options"] ? true : false);
   534            A.store.Float64(ptr + 64 + 16, x["options"]["since"] === undefined ? 0 : (x["options"]["since"] as number));
   535          }
   536        }
   537      },
   538      "load_SettingsReturnType": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => {
   539        const x = create === A.H.TRUE ? {} : A.H.get<any>(ref);
   540  
   541        if (A.load.Bool(ptr + 0 + 30)) {
   542          x["dataRemovalPermitted"] = {};
   543          if (A.load.Bool(ptr + 0 + 15)) {
   544            x["dataRemovalPermitted"]["appcache"] = A.load.Bool(ptr + 0 + 0);
   545          } else {
   546            delete x["dataRemovalPermitted"]["appcache"];
   547          }
   548          if (A.load.Bool(ptr + 0 + 16)) {
   549            x["dataRemovalPermitted"]["cache"] = A.load.Bool(ptr + 0 + 1);
   550          } else {
   551            delete x["dataRemovalPermitted"]["cache"];
   552          }
   553          if (A.load.Bool(ptr + 0 + 17)) {
   554            x["dataRemovalPermitted"]["cacheStorage"] = A.load.Bool(ptr + 0 + 2);
   555          } else {
   556            delete x["dataRemovalPermitted"]["cacheStorage"];
   557          }
   558          if (A.load.Bool(ptr + 0 + 18)) {
   559            x["dataRemovalPermitted"]["cookies"] = A.load.Bool(ptr + 0 + 3);
   560          } else {
   561            delete x["dataRemovalPermitted"]["cookies"];
   562          }
   563          if (A.load.Bool(ptr + 0 + 19)) {
   564            x["dataRemovalPermitted"]["downloads"] = A.load.Bool(ptr + 0 + 4);
   565          } else {
   566            delete x["dataRemovalPermitted"]["downloads"];
   567          }
   568          if (A.load.Bool(ptr + 0 + 20)) {
   569            x["dataRemovalPermitted"]["fileSystems"] = A.load.Bool(ptr + 0 + 5);
   570          } else {
   571            delete x["dataRemovalPermitted"]["fileSystems"];
   572          }
   573          if (A.load.Bool(ptr + 0 + 21)) {
   574            x["dataRemovalPermitted"]["formData"] = A.load.Bool(ptr + 0 + 6);
   575          } else {
   576            delete x["dataRemovalPermitted"]["formData"];
   577          }
   578          if (A.load.Bool(ptr + 0 + 22)) {
   579            x["dataRemovalPermitted"]["history"] = A.load.Bool(ptr + 0 + 7);
   580          } else {
   581            delete x["dataRemovalPermitted"]["history"];
   582          }
   583          if (A.load.Bool(ptr + 0 + 23)) {
   584            x["dataRemovalPermitted"]["indexedDB"] = A.load.Bool(ptr + 0 + 8);
   585          } else {
   586            delete x["dataRemovalPermitted"]["indexedDB"];
   587          }
   588          if (A.load.Bool(ptr + 0 + 24)) {
   589            x["dataRemovalPermitted"]["localStorage"] = A.load.Bool(ptr + 0 + 9);
   590          } else {
   591            delete x["dataRemovalPermitted"]["localStorage"];
   592          }
   593          if (A.load.Bool(ptr + 0 + 25)) {
   594            x["dataRemovalPermitted"]["passwords"] = A.load.Bool(ptr + 0 + 10);
   595          } else {
   596            delete x["dataRemovalPermitted"]["passwords"];
   597          }
   598          if (A.load.Bool(ptr + 0 + 26)) {
   599            x["dataRemovalPermitted"]["pluginData"] = A.load.Bool(ptr + 0 + 11);
   600          } else {
   601            delete x["dataRemovalPermitted"]["pluginData"];
   602          }
   603          if (A.load.Bool(ptr + 0 + 27)) {
   604            x["dataRemovalPermitted"]["serverBoundCertificates"] = A.load.Bool(ptr + 0 + 12);
   605          } else {
   606            delete x["dataRemovalPermitted"]["serverBoundCertificates"];
   607          }
   608          if (A.load.Bool(ptr + 0 + 28)) {
   609            x["dataRemovalPermitted"]["serviceWorkers"] = A.load.Bool(ptr + 0 + 13);
   610          } else {
   611            delete x["dataRemovalPermitted"]["serviceWorkers"];
   612          }
   613          if (A.load.Bool(ptr + 0 + 29)) {
   614            x["dataRemovalPermitted"]["webSQL"] = A.load.Bool(ptr + 0 + 14);
   615          } else {
   616            delete x["dataRemovalPermitted"]["webSQL"];
   617          }
   618        } else {
   619          delete x["dataRemovalPermitted"];
   620        }
   621        if (A.load.Bool(ptr + 31 + 30)) {
   622          x["dataToRemove"] = {};
   623          if (A.load.Bool(ptr + 31 + 15)) {
   624            x["dataToRemove"]["appcache"] = A.load.Bool(ptr + 31 + 0);
   625          } else {
   626            delete x["dataToRemove"]["appcache"];
   627          }
   628          if (A.load.Bool(ptr + 31 + 16)) {
   629            x["dataToRemove"]["cache"] = A.load.Bool(ptr + 31 + 1);
   630          } else {
   631            delete x["dataToRemove"]["cache"];
   632          }
   633          if (A.load.Bool(ptr + 31 + 17)) {
   634            x["dataToRemove"]["cacheStorage"] = A.load.Bool(ptr + 31 + 2);
   635          } else {
   636            delete x["dataToRemove"]["cacheStorage"];
   637          }
   638          if (A.load.Bool(ptr + 31 + 18)) {
   639            x["dataToRemove"]["cookies"] = A.load.Bool(ptr + 31 + 3);
   640          } else {
   641            delete x["dataToRemove"]["cookies"];
   642          }
   643          if (A.load.Bool(ptr + 31 + 19)) {
   644            x["dataToRemove"]["downloads"] = A.load.Bool(ptr + 31 + 4);
   645          } else {
   646            delete x["dataToRemove"]["downloads"];
   647          }
   648          if (A.load.Bool(ptr + 31 + 20)) {
   649            x["dataToRemove"]["fileSystems"] = A.load.Bool(ptr + 31 + 5);
   650          } else {
   651            delete x["dataToRemove"]["fileSystems"];
   652          }
   653          if (A.load.Bool(ptr + 31 + 21)) {
   654            x["dataToRemove"]["formData"] = A.load.Bool(ptr + 31 + 6);
   655          } else {
   656            delete x["dataToRemove"]["formData"];
   657          }
   658          if (A.load.Bool(ptr + 31 + 22)) {
   659            x["dataToRemove"]["history"] = A.load.Bool(ptr + 31 + 7);
   660          } else {
   661            delete x["dataToRemove"]["history"];
   662          }
   663          if (A.load.Bool(ptr + 31 + 23)) {
   664            x["dataToRemove"]["indexedDB"] = A.load.Bool(ptr + 31 + 8);
   665          } else {
   666            delete x["dataToRemove"]["indexedDB"];
   667          }
   668          if (A.load.Bool(ptr + 31 + 24)) {
   669            x["dataToRemove"]["localStorage"] = A.load.Bool(ptr + 31 + 9);
   670          } else {
   671            delete x["dataToRemove"]["localStorage"];
   672          }
   673          if (A.load.Bool(ptr + 31 + 25)) {
   674            x["dataToRemove"]["passwords"] = A.load.Bool(ptr + 31 + 10);
   675          } else {
   676            delete x["dataToRemove"]["passwords"];
   677          }
   678          if (A.load.Bool(ptr + 31 + 26)) {
   679            x["dataToRemove"]["pluginData"] = A.load.Bool(ptr + 31 + 11);
   680          } else {
   681            delete x["dataToRemove"]["pluginData"];
   682          }
   683          if (A.load.Bool(ptr + 31 + 27)) {
   684            x["dataToRemove"]["serverBoundCertificates"] = A.load.Bool(ptr + 31 + 12);
   685          } else {
   686            delete x["dataToRemove"]["serverBoundCertificates"];
   687          }
   688          if (A.load.Bool(ptr + 31 + 28)) {
   689            x["dataToRemove"]["serviceWorkers"] = A.load.Bool(ptr + 31 + 13);
   690          } else {
   691            delete x["dataToRemove"]["serviceWorkers"];
   692          }
   693          if (A.load.Bool(ptr + 31 + 29)) {
   694            x["dataToRemove"]["webSQL"] = A.load.Bool(ptr + 31 + 14);
   695          } else {
   696            delete x["dataToRemove"]["webSQL"];
   697          }
   698        } else {
   699          delete x["dataToRemove"];
   700        }
   701        if (A.load.Bool(ptr + 64 + 25)) {
   702          x["options"] = {};
   703          x["options"]["excludeOrigins"] = A.load.Ref(ptr + 64 + 0, undefined);
   704          if (A.load.Bool(ptr + 64 + 4 + 6)) {
   705            x["options"]["originTypes"] = {};
   706            if (A.load.Bool(ptr + 64 + 4 + 3)) {
   707              x["options"]["originTypes"]["extension"] = A.load.Bool(ptr + 64 + 4 + 0);
   708            } else {
   709              delete x["options"]["originTypes"]["extension"];
   710            }
   711            if (A.load.Bool(ptr + 64 + 4 + 4)) {
   712              x["options"]["originTypes"]["protectedWeb"] = A.load.Bool(ptr + 64 + 4 + 1);
   713            } else {
   714              delete x["options"]["originTypes"]["protectedWeb"];
   715            }
   716            if (A.load.Bool(ptr + 64 + 4 + 5)) {
   717              x["options"]["originTypes"]["unprotectedWeb"] = A.load.Bool(ptr + 64 + 4 + 2);
   718            } else {
   719              delete x["options"]["originTypes"]["unprotectedWeb"];
   720            }
   721          } else {
   722            delete x["options"]["originTypes"];
   723          }
   724          x["options"]["origins"] = A.load.Ref(ptr + 64 + 12, undefined);
   725          if (A.load.Bool(ptr + 64 + 24)) {
   726            x["options"]["since"] = A.load.Float64(ptr + 64 + 16);
   727          } else {
   728            delete x["options"]["since"];
   729          }
   730        } else {
   731          delete x["options"];
   732        }
   733        return create === A.H.TRUE ? A.H.push(x) : ref;
   734      },
   735      "has_Remove": (): heap.Ref<boolean> => {
   736        if (WEBEXT?.browsingData && "remove" in WEBEXT?.browsingData) {
   737          return A.H.TRUE;
   738        }
   739        return A.H.FALSE;
   740      },
   741      "func_Remove": (fn: Pointer): void => {
   742        A.store.Ref(fn, WEBEXT.browsingData.remove);
   743      },
   744      "call_Remove": (retPtr: Pointer, options: Pointer, dataToRemove: Pointer): void => {
   745        const options_ffi = {};
   746  
   747        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   748        if (A.load.Bool(options + 4 + 6)) {
   749          options_ffi["originTypes"] = {};
   750          if (A.load.Bool(options + 4 + 3)) {
   751            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   752          }
   753          if (A.load.Bool(options + 4 + 4)) {
   754            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
   755          }
   756          if (A.load.Bool(options + 4 + 5)) {
   757            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
   758          }
   759        }
   760        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
   761        if (A.load.Bool(options + 24)) {
   762          options_ffi["since"] = A.load.Float64(options + 16);
   763        }
   764  
   765        const dataToRemove_ffi = {};
   766  
   767        if (A.load.Bool(dataToRemove + 15)) {
   768          dataToRemove_ffi["appcache"] = A.load.Bool(dataToRemove + 0);
   769        }
   770        if (A.load.Bool(dataToRemove + 16)) {
   771          dataToRemove_ffi["cache"] = A.load.Bool(dataToRemove + 1);
   772        }
   773        if (A.load.Bool(dataToRemove + 17)) {
   774          dataToRemove_ffi["cacheStorage"] = A.load.Bool(dataToRemove + 2);
   775        }
   776        if (A.load.Bool(dataToRemove + 18)) {
   777          dataToRemove_ffi["cookies"] = A.load.Bool(dataToRemove + 3);
   778        }
   779        if (A.load.Bool(dataToRemove + 19)) {
   780          dataToRemove_ffi["downloads"] = A.load.Bool(dataToRemove + 4);
   781        }
   782        if (A.load.Bool(dataToRemove + 20)) {
   783          dataToRemove_ffi["fileSystems"] = A.load.Bool(dataToRemove + 5);
   784        }
   785        if (A.load.Bool(dataToRemove + 21)) {
   786          dataToRemove_ffi["formData"] = A.load.Bool(dataToRemove + 6);
   787        }
   788        if (A.load.Bool(dataToRemove + 22)) {
   789          dataToRemove_ffi["history"] = A.load.Bool(dataToRemove + 7);
   790        }
   791        if (A.load.Bool(dataToRemove + 23)) {
   792          dataToRemove_ffi["indexedDB"] = A.load.Bool(dataToRemove + 8);
   793        }
   794        if (A.load.Bool(dataToRemove + 24)) {
   795          dataToRemove_ffi["localStorage"] = A.load.Bool(dataToRemove + 9);
   796        }
   797        if (A.load.Bool(dataToRemove + 25)) {
   798          dataToRemove_ffi["passwords"] = A.load.Bool(dataToRemove + 10);
   799        }
   800        if (A.load.Bool(dataToRemove + 26)) {
   801          dataToRemove_ffi["pluginData"] = A.load.Bool(dataToRemove + 11);
   802        }
   803        if (A.load.Bool(dataToRemove + 27)) {
   804          dataToRemove_ffi["serverBoundCertificates"] = A.load.Bool(dataToRemove + 12);
   805        }
   806        if (A.load.Bool(dataToRemove + 28)) {
   807          dataToRemove_ffi["serviceWorkers"] = A.load.Bool(dataToRemove + 13);
   808        }
   809        if (A.load.Bool(dataToRemove + 29)) {
   810          dataToRemove_ffi["webSQL"] = A.load.Bool(dataToRemove + 14);
   811        }
   812  
   813        const _ret = WEBEXT.browsingData.remove(options_ffi, dataToRemove_ffi);
   814        A.store.Ref(retPtr, _ret);
   815      },
   816      "try_Remove": (retPtr: Pointer, errPtr: Pointer, options: Pointer, dataToRemove: Pointer): heap.Ref<boolean> => {
   817        try {
   818          const options_ffi = {};
   819  
   820          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   821          if (A.load.Bool(options + 4 + 6)) {
   822            options_ffi["originTypes"] = {};
   823            if (A.load.Bool(options + 4 + 3)) {
   824              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   825            }
   826            if (A.load.Bool(options + 4 + 4)) {
   827              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
   828            }
   829            if (A.load.Bool(options + 4 + 5)) {
   830              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
   831            }
   832          }
   833          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
   834          if (A.load.Bool(options + 24)) {
   835            options_ffi["since"] = A.load.Float64(options + 16);
   836          }
   837  
   838          const dataToRemove_ffi = {};
   839  
   840          if (A.load.Bool(dataToRemove + 15)) {
   841            dataToRemove_ffi["appcache"] = A.load.Bool(dataToRemove + 0);
   842          }
   843          if (A.load.Bool(dataToRemove + 16)) {
   844            dataToRemove_ffi["cache"] = A.load.Bool(dataToRemove + 1);
   845          }
   846          if (A.load.Bool(dataToRemove + 17)) {
   847            dataToRemove_ffi["cacheStorage"] = A.load.Bool(dataToRemove + 2);
   848          }
   849          if (A.load.Bool(dataToRemove + 18)) {
   850            dataToRemove_ffi["cookies"] = A.load.Bool(dataToRemove + 3);
   851          }
   852          if (A.load.Bool(dataToRemove + 19)) {
   853            dataToRemove_ffi["downloads"] = A.load.Bool(dataToRemove + 4);
   854          }
   855          if (A.load.Bool(dataToRemove + 20)) {
   856            dataToRemove_ffi["fileSystems"] = A.load.Bool(dataToRemove + 5);
   857          }
   858          if (A.load.Bool(dataToRemove + 21)) {
   859            dataToRemove_ffi["formData"] = A.load.Bool(dataToRemove + 6);
   860          }
   861          if (A.load.Bool(dataToRemove + 22)) {
   862            dataToRemove_ffi["history"] = A.load.Bool(dataToRemove + 7);
   863          }
   864          if (A.load.Bool(dataToRemove + 23)) {
   865            dataToRemove_ffi["indexedDB"] = A.load.Bool(dataToRemove + 8);
   866          }
   867          if (A.load.Bool(dataToRemove + 24)) {
   868            dataToRemove_ffi["localStorage"] = A.load.Bool(dataToRemove + 9);
   869          }
   870          if (A.load.Bool(dataToRemove + 25)) {
   871            dataToRemove_ffi["passwords"] = A.load.Bool(dataToRemove + 10);
   872          }
   873          if (A.load.Bool(dataToRemove + 26)) {
   874            dataToRemove_ffi["pluginData"] = A.load.Bool(dataToRemove + 11);
   875          }
   876          if (A.load.Bool(dataToRemove + 27)) {
   877            dataToRemove_ffi["serverBoundCertificates"] = A.load.Bool(dataToRemove + 12);
   878          }
   879          if (A.load.Bool(dataToRemove + 28)) {
   880            dataToRemove_ffi["serviceWorkers"] = A.load.Bool(dataToRemove + 13);
   881          }
   882          if (A.load.Bool(dataToRemove + 29)) {
   883            dataToRemove_ffi["webSQL"] = A.load.Bool(dataToRemove + 14);
   884          }
   885  
   886          const _ret = WEBEXT.browsingData.remove(options_ffi, dataToRemove_ffi);
   887          A.store.Ref(retPtr, _ret);
   888          return A.H.TRUE;
   889        } catch (err: any) {
   890          A.store.Ref(errPtr, err);
   891          return A.H.FALSE;
   892        }
   893      },
   894      "has_RemoveAppcache": (): heap.Ref<boolean> => {
   895        if (WEBEXT?.browsingData && "removeAppcache" in WEBEXT?.browsingData) {
   896          return A.H.TRUE;
   897        }
   898        return A.H.FALSE;
   899      },
   900      "func_RemoveAppcache": (fn: Pointer): void => {
   901        A.store.Ref(fn, WEBEXT.browsingData.removeAppcache);
   902      },
   903      "call_RemoveAppcache": (retPtr: Pointer, options: Pointer): void => {
   904        const options_ffi = {};
   905  
   906        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   907        if (A.load.Bool(options + 4 + 6)) {
   908          options_ffi["originTypes"] = {};
   909          if (A.load.Bool(options + 4 + 3)) {
   910            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   911          }
   912          if (A.load.Bool(options + 4 + 4)) {
   913            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
   914          }
   915          if (A.load.Bool(options + 4 + 5)) {
   916            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
   917          }
   918        }
   919        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
   920        if (A.load.Bool(options + 24)) {
   921          options_ffi["since"] = A.load.Float64(options + 16);
   922        }
   923  
   924        const _ret = WEBEXT.browsingData.removeAppcache(options_ffi);
   925        A.store.Ref(retPtr, _ret);
   926      },
   927      "try_RemoveAppcache": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
   928        try {
   929          const options_ffi = {};
   930  
   931          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   932          if (A.load.Bool(options + 4 + 6)) {
   933            options_ffi["originTypes"] = {};
   934            if (A.load.Bool(options + 4 + 3)) {
   935              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   936            }
   937            if (A.load.Bool(options + 4 + 4)) {
   938              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
   939            }
   940            if (A.load.Bool(options + 4 + 5)) {
   941              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
   942            }
   943          }
   944          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
   945          if (A.load.Bool(options + 24)) {
   946            options_ffi["since"] = A.load.Float64(options + 16);
   947          }
   948  
   949          const _ret = WEBEXT.browsingData.removeAppcache(options_ffi);
   950          A.store.Ref(retPtr, _ret);
   951          return A.H.TRUE;
   952        } catch (err: any) {
   953          A.store.Ref(errPtr, err);
   954          return A.H.FALSE;
   955        }
   956      },
   957      "has_RemoveCache": (): heap.Ref<boolean> => {
   958        if (WEBEXT?.browsingData && "removeCache" in WEBEXT?.browsingData) {
   959          return A.H.TRUE;
   960        }
   961        return A.H.FALSE;
   962      },
   963      "func_RemoveCache": (fn: Pointer): void => {
   964        A.store.Ref(fn, WEBEXT.browsingData.removeCache);
   965      },
   966      "call_RemoveCache": (retPtr: Pointer, options: Pointer): void => {
   967        const options_ffi = {};
   968  
   969        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   970        if (A.load.Bool(options + 4 + 6)) {
   971          options_ffi["originTypes"] = {};
   972          if (A.load.Bool(options + 4 + 3)) {
   973            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   974          }
   975          if (A.load.Bool(options + 4 + 4)) {
   976            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
   977          }
   978          if (A.load.Bool(options + 4 + 5)) {
   979            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
   980          }
   981        }
   982        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
   983        if (A.load.Bool(options + 24)) {
   984          options_ffi["since"] = A.load.Float64(options + 16);
   985        }
   986  
   987        const _ret = WEBEXT.browsingData.removeCache(options_ffi);
   988        A.store.Ref(retPtr, _ret);
   989      },
   990      "try_RemoveCache": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
   991        try {
   992          const options_ffi = {};
   993  
   994          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
   995          if (A.load.Bool(options + 4 + 6)) {
   996            options_ffi["originTypes"] = {};
   997            if (A.load.Bool(options + 4 + 3)) {
   998              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
   999            }
  1000            if (A.load.Bool(options + 4 + 4)) {
  1001              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1002            }
  1003            if (A.load.Bool(options + 4 + 5)) {
  1004              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1005            }
  1006          }
  1007          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1008          if (A.load.Bool(options + 24)) {
  1009            options_ffi["since"] = A.load.Float64(options + 16);
  1010          }
  1011  
  1012          const _ret = WEBEXT.browsingData.removeCache(options_ffi);
  1013          A.store.Ref(retPtr, _ret);
  1014          return A.H.TRUE;
  1015        } catch (err: any) {
  1016          A.store.Ref(errPtr, err);
  1017          return A.H.FALSE;
  1018        }
  1019      },
  1020      "has_RemoveCacheStorage": (): heap.Ref<boolean> => {
  1021        if (WEBEXT?.browsingData && "removeCacheStorage" in WEBEXT?.browsingData) {
  1022          return A.H.TRUE;
  1023        }
  1024        return A.H.FALSE;
  1025      },
  1026      "func_RemoveCacheStorage": (fn: Pointer): void => {
  1027        A.store.Ref(fn, WEBEXT.browsingData.removeCacheStorage);
  1028      },
  1029      "call_RemoveCacheStorage": (retPtr: Pointer, options: Pointer): void => {
  1030        const options_ffi = {};
  1031  
  1032        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1033        if (A.load.Bool(options + 4 + 6)) {
  1034          options_ffi["originTypes"] = {};
  1035          if (A.load.Bool(options + 4 + 3)) {
  1036            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1037          }
  1038          if (A.load.Bool(options + 4 + 4)) {
  1039            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1040          }
  1041          if (A.load.Bool(options + 4 + 5)) {
  1042            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1043          }
  1044        }
  1045        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1046        if (A.load.Bool(options + 24)) {
  1047          options_ffi["since"] = A.load.Float64(options + 16);
  1048        }
  1049  
  1050        const _ret = WEBEXT.browsingData.removeCacheStorage(options_ffi);
  1051        A.store.Ref(retPtr, _ret);
  1052      },
  1053      "try_RemoveCacheStorage": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1054        try {
  1055          const options_ffi = {};
  1056  
  1057          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1058          if (A.load.Bool(options + 4 + 6)) {
  1059            options_ffi["originTypes"] = {};
  1060            if (A.load.Bool(options + 4 + 3)) {
  1061              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1062            }
  1063            if (A.load.Bool(options + 4 + 4)) {
  1064              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1065            }
  1066            if (A.load.Bool(options + 4 + 5)) {
  1067              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1068            }
  1069          }
  1070          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1071          if (A.load.Bool(options + 24)) {
  1072            options_ffi["since"] = A.load.Float64(options + 16);
  1073          }
  1074  
  1075          const _ret = WEBEXT.browsingData.removeCacheStorage(options_ffi);
  1076          A.store.Ref(retPtr, _ret);
  1077          return A.H.TRUE;
  1078        } catch (err: any) {
  1079          A.store.Ref(errPtr, err);
  1080          return A.H.FALSE;
  1081        }
  1082      },
  1083      "has_RemoveCookies": (): heap.Ref<boolean> => {
  1084        if (WEBEXT?.browsingData && "removeCookies" in WEBEXT?.browsingData) {
  1085          return A.H.TRUE;
  1086        }
  1087        return A.H.FALSE;
  1088      },
  1089      "func_RemoveCookies": (fn: Pointer): void => {
  1090        A.store.Ref(fn, WEBEXT.browsingData.removeCookies);
  1091      },
  1092      "call_RemoveCookies": (retPtr: Pointer, options: Pointer): void => {
  1093        const options_ffi = {};
  1094  
  1095        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1096        if (A.load.Bool(options + 4 + 6)) {
  1097          options_ffi["originTypes"] = {};
  1098          if (A.load.Bool(options + 4 + 3)) {
  1099            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1100          }
  1101          if (A.load.Bool(options + 4 + 4)) {
  1102            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1103          }
  1104          if (A.load.Bool(options + 4 + 5)) {
  1105            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1106          }
  1107        }
  1108        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1109        if (A.load.Bool(options + 24)) {
  1110          options_ffi["since"] = A.load.Float64(options + 16);
  1111        }
  1112  
  1113        const _ret = WEBEXT.browsingData.removeCookies(options_ffi);
  1114        A.store.Ref(retPtr, _ret);
  1115      },
  1116      "try_RemoveCookies": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1117        try {
  1118          const options_ffi = {};
  1119  
  1120          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1121          if (A.load.Bool(options + 4 + 6)) {
  1122            options_ffi["originTypes"] = {};
  1123            if (A.load.Bool(options + 4 + 3)) {
  1124              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1125            }
  1126            if (A.load.Bool(options + 4 + 4)) {
  1127              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1128            }
  1129            if (A.load.Bool(options + 4 + 5)) {
  1130              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1131            }
  1132          }
  1133          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1134          if (A.load.Bool(options + 24)) {
  1135            options_ffi["since"] = A.load.Float64(options + 16);
  1136          }
  1137  
  1138          const _ret = WEBEXT.browsingData.removeCookies(options_ffi);
  1139          A.store.Ref(retPtr, _ret);
  1140          return A.H.TRUE;
  1141        } catch (err: any) {
  1142          A.store.Ref(errPtr, err);
  1143          return A.H.FALSE;
  1144        }
  1145      },
  1146      "has_RemoveDownloads": (): heap.Ref<boolean> => {
  1147        if (WEBEXT?.browsingData && "removeDownloads" in WEBEXT?.browsingData) {
  1148          return A.H.TRUE;
  1149        }
  1150        return A.H.FALSE;
  1151      },
  1152      "func_RemoveDownloads": (fn: Pointer): void => {
  1153        A.store.Ref(fn, WEBEXT.browsingData.removeDownloads);
  1154      },
  1155      "call_RemoveDownloads": (retPtr: Pointer, options: Pointer): void => {
  1156        const options_ffi = {};
  1157  
  1158        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1159        if (A.load.Bool(options + 4 + 6)) {
  1160          options_ffi["originTypes"] = {};
  1161          if (A.load.Bool(options + 4 + 3)) {
  1162            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1163          }
  1164          if (A.load.Bool(options + 4 + 4)) {
  1165            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1166          }
  1167          if (A.load.Bool(options + 4 + 5)) {
  1168            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1169          }
  1170        }
  1171        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1172        if (A.load.Bool(options + 24)) {
  1173          options_ffi["since"] = A.load.Float64(options + 16);
  1174        }
  1175  
  1176        const _ret = WEBEXT.browsingData.removeDownloads(options_ffi);
  1177        A.store.Ref(retPtr, _ret);
  1178      },
  1179      "try_RemoveDownloads": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1180        try {
  1181          const options_ffi = {};
  1182  
  1183          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1184          if (A.load.Bool(options + 4 + 6)) {
  1185            options_ffi["originTypes"] = {};
  1186            if (A.load.Bool(options + 4 + 3)) {
  1187              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1188            }
  1189            if (A.load.Bool(options + 4 + 4)) {
  1190              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1191            }
  1192            if (A.load.Bool(options + 4 + 5)) {
  1193              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1194            }
  1195          }
  1196          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1197          if (A.load.Bool(options + 24)) {
  1198            options_ffi["since"] = A.load.Float64(options + 16);
  1199          }
  1200  
  1201          const _ret = WEBEXT.browsingData.removeDownloads(options_ffi);
  1202          A.store.Ref(retPtr, _ret);
  1203          return A.H.TRUE;
  1204        } catch (err: any) {
  1205          A.store.Ref(errPtr, err);
  1206          return A.H.FALSE;
  1207        }
  1208      },
  1209      "has_RemoveFileSystems": (): heap.Ref<boolean> => {
  1210        if (WEBEXT?.browsingData && "removeFileSystems" in WEBEXT?.browsingData) {
  1211          return A.H.TRUE;
  1212        }
  1213        return A.H.FALSE;
  1214      },
  1215      "func_RemoveFileSystems": (fn: Pointer): void => {
  1216        A.store.Ref(fn, WEBEXT.browsingData.removeFileSystems);
  1217      },
  1218      "call_RemoveFileSystems": (retPtr: Pointer, options: Pointer): void => {
  1219        const options_ffi = {};
  1220  
  1221        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1222        if (A.load.Bool(options + 4 + 6)) {
  1223          options_ffi["originTypes"] = {};
  1224          if (A.load.Bool(options + 4 + 3)) {
  1225            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1226          }
  1227          if (A.load.Bool(options + 4 + 4)) {
  1228            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1229          }
  1230          if (A.load.Bool(options + 4 + 5)) {
  1231            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1232          }
  1233        }
  1234        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1235        if (A.load.Bool(options + 24)) {
  1236          options_ffi["since"] = A.load.Float64(options + 16);
  1237        }
  1238  
  1239        const _ret = WEBEXT.browsingData.removeFileSystems(options_ffi);
  1240        A.store.Ref(retPtr, _ret);
  1241      },
  1242      "try_RemoveFileSystems": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1243        try {
  1244          const options_ffi = {};
  1245  
  1246          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1247          if (A.load.Bool(options + 4 + 6)) {
  1248            options_ffi["originTypes"] = {};
  1249            if (A.load.Bool(options + 4 + 3)) {
  1250              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1251            }
  1252            if (A.load.Bool(options + 4 + 4)) {
  1253              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1254            }
  1255            if (A.load.Bool(options + 4 + 5)) {
  1256              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1257            }
  1258          }
  1259          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1260          if (A.load.Bool(options + 24)) {
  1261            options_ffi["since"] = A.load.Float64(options + 16);
  1262          }
  1263  
  1264          const _ret = WEBEXT.browsingData.removeFileSystems(options_ffi);
  1265          A.store.Ref(retPtr, _ret);
  1266          return A.H.TRUE;
  1267        } catch (err: any) {
  1268          A.store.Ref(errPtr, err);
  1269          return A.H.FALSE;
  1270        }
  1271      },
  1272      "has_RemoveFormData": (): heap.Ref<boolean> => {
  1273        if (WEBEXT?.browsingData && "removeFormData" in WEBEXT?.browsingData) {
  1274          return A.H.TRUE;
  1275        }
  1276        return A.H.FALSE;
  1277      },
  1278      "func_RemoveFormData": (fn: Pointer): void => {
  1279        A.store.Ref(fn, WEBEXT.browsingData.removeFormData);
  1280      },
  1281      "call_RemoveFormData": (retPtr: Pointer, options: Pointer): void => {
  1282        const options_ffi = {};
  1283  
  1284        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1285        if (A.load.Bool(options + 4 + 6)) {
  1286          options_ffi["originTypes"] = {};
  1287          if (A.load.Bool(options + 4 + 3)) {
  1288            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1289          }
  1290          if (A.load.Bool(options + 4 + 4)) {
  1291            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1292          }
  1293          if (A.load.Bool(options + 4 + 5)) {
  1294            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1295          }
  1296        }
  1297        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1298        if (A.load.Bool(options + 24)) {
  1299          options_ffi["since"] = A.load.Float64(options + 16);
  1300        }
  1301  
  1302        const _ret = WEBEXT.browsingData.removeFormData(options_ffi);
  1303        A.store.Ref(retPtr, _ret);
  1304      },
  1305      "try_RemoveFormData": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1306        try {
  1307          const options_ffi = {};
  1308  
  1309          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1310          if (A.load.Bool(options + 4 + 6)) {
  1311            options_ffi["originTypes"] = {};
  1312            if (A.load.Bool(options + 4 + 3)) {
  1313              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1314            }
  1315            if (A.load.Bool(options + 4 + 4)) {
  1316              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1317            }
  1318            if (A.load.Bool(options + 4 + 5)) {
  1319              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1320            }
  1321          }
  1322          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1323          if (A.load.Bool(options + 24)) {
  1324            options_ffi["since"] = A.load.Float64(options + 16);
  1325          }
  1326  
  1327          const _ret = WEBEXT.browsingData.removeFormData(options_ffi);
  1328          A.store.Ref(retPtr, _ret);
  1329          return A.H.TRUE;
  1330        } catch (err: any) {
  1331          A.store.Ref(errPtr, err);
  1332          return A.H.FALSE;
  1333        }
  1334      },
  1335      "has_RemoveHistory": (): heap.Ref<boolean> => {
  1336        if (WEBEXT?.browsingData && "removeHistory" in WEBEXT?.browsingData) {
  1337          return A.H.TRUE;
  1338        }
  1339        return A.H.FALSE;
  1340      },
  1341      "func_RemoveHistory": (fn: Pointer): void => {
  1342        A.store.Ref(fn, WEBEXT.browsingData.removeHistory);
  1343      },
  1344      "call_RemoveHistory": (retPtr: Pointer, options: Pointer): void => {
  1345        const options_ffi = {};
  1346  
  1347        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1348        if (A.load.Bool(options + 4 + 6)) {
  1349          options_ffi["originTypes"] = {};
  1350          if (A.load.Bool(options + 4 + 3)) {
  1351            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1352          }
  1353          if (A.load.Bool(options + 4 + 4)) {
  1354            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1355          }
  1356          if (A.load.Bool(options + 4 + 5)) {
  1357            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1358          }
  1359        }
  1360        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1361        if (A.load.Bool(options + 24)) {
  1362          options_ffi["since"] = A.load.Float64(options + 16);
  1363        }
  1364  
  1365        const _ret = WEBEXT.browsingData.removeHistory(options_ffi);
  1366        A.store.Ref(retPtr, _ret);
  1367      },
  1368      "try_RemoveHistory": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1369        try {
  1370          const options_ffi = {};
  1371  
  1372          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1373          if (A.load.Bool(options + 4 + 6)) {
  1374            options_ffi["originTypes"] = {};
  1375            if (A.load.Bool(options + 4 + 3)) {
  1376              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1377            }
  1378            if (A.load.Bool(options + 4 + 4)) {
  1379              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1380            }
  1381            if (A.load.Bool(options + 4 + 5)) {
  1382              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1383            }
  1384          }
  1385          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1386          if (A.load.Bool(options + 24)) {
  1387            options_ffi["since"] = A.load.Float64(options + 16);
  1388          }
  1389  
  1390          const _ret = WEBEXT.browsingData.removeHistory(options_ffi);
  1391          A.store.Ref(retPtr, _ret);
  1392          return A.H.TRUE;
  1393        } catch (err: any) {
  1394          A.store.Ref(errPtr, err);
  1395          return A.H.FALSE;
  1396        }
  1397      },
  1398      "has_RemoveIndexedDB": (): heap.Ref<boolean> => {
  1399        if (WEBEXT?.browsingData && "removeIndexedDB" in WEBEXT?.browsingData) {
  1400          return A.H.TRUE;
  1401        }
  1402        return A.H.FALSE;
  1403      },
  1404      "func_RemoveIndexedDB": (fn: Pointer): void => {
  1405        A.store.Ref(fn, WEBEXT.browsingData.removeIndexedDB);
  1406      },
  1407      "call_RemoveIndexedDB": (retPtr: Pointer, options: Pointer): void => {
  1408        const options_ffi = {};
  1409  
  1410        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1411        if (A.load.Bool(options + 4 + 6)) {
  1412          options_ffi["originTypes"] = {};
  1413          if (A.load.Bool(options + 4 + 3)) {
  1414            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1415          }
  1416          if (A.load.Bool(options + 4 + 4)) {
  1417            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1418          }
  1419          if (A.load.Bool(options + 4 + 5)) {
  1420            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1421          }
  1422        }
  1423        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1424        if (A.load.Bool(options + 24)) {
  1425          options_ffi["since"] = A.load.Float64(options + 16);
  1426        }
  1427  
  1428        const _ret = WEBEXT.browsingData.removeIndexedDB(options_ffi);
  1429        A.store.Ref(retPtr, _ret);
  1430      },
  1431      "try_RemoveIndexedDB": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1432        try {
  1433          const options_ffi = {};
  1434  
  1435          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1436          if (A.load.Bool(options + 4 + 6)) {
  1437            options_ffi["originTypes"] = {};
  1438            if (A.load.Bool(options + 4 + 3)) {
  1439              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1440            }
  1441            if (A.load.Bool(options + 4 + 4)) {
  1442              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1443            }
  1444            if (A.load.Bool(options + 4 + 5)) {
  1445              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1446            }
  1447          }
  1448          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1449          if (A.load.Bool(options + 24)) {
  1450            options_ffi["since"] = A.load.Float64(options + 16);
  1451          }
  1452  
  1453          const _ret = WEBEXT.browsingData.removeIndexedDB(options_ffi);
  1454          A.store.Ref(retPtr, _ret);
  1455          return A.H.TRUE;
  1456        } catch (err: any) {
  1457          A.store.Ref(errPtr, err);
  1458          return A.H.FALSE;
  1459        }
  1460      },
  1461      "has_RemoveLocalStorage": (): heap.Ref<boolean> => {
  1462        if (WEBEXT?.browsingData && "removeLocalStorage" in WEBEXT?.browsingData) {
  1463          return A.H.TRUE;
  1464        }
  1465        return A.H.FALSE;
  1466      },
  1467      "func_RemoveLocalStorage": (fn: Pointer): void => {
  1468        A.store.Ref(fn, WEBEXT.browsingData.removeLocalStorage);
  1469      },
  1470      "call_RemoveLocalStorage": (retPtr: Pointer, options: Pointer): void => {
  1471        const options_ffi = {};
  1472  
  1473        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1474        if (A.load.Bool(options + 4 + 6)) {
  1475          options_ffi["originTypes"] = {};
  1476          if (A.load.Bool(options + 4 + 3)) {
  1477            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1478          }
  1479          if (A.load.Bool(options + 4 + 4)) {
  1480            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1481          }
  1482          if (A.load.Bool(options + 4 + 5)) {
  1483            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1484          }
  1485        }
  1486        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1487        if (A.load.Bool(options + 24)) {
  1488          options_ffi["since"] = A.load.Float64(options + 16);
  1489        }
  1490  
  1491        const _ret = WEBEXT.browsingData.removeLocalStorage(options_ffi);
  1492        A.store.Ref(retPtr, _ret);
  1493      },
  1494      "try_RemoveLocalStorage": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1495        try {
  1496          const options_ffi = {};
  1497  
  1498          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1499          if (A.load.Bool(options + 4 + 6)) {
  1500            options_ffi["originTypes"] = {};
  1501            if (A.load.Bool(options + 4 + 3)) {
  1502              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1503            }
  1504            if (A.load.Bool(options + 4 + 4)) {
  1505              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1506            }
  1507            if (A.load.Bool(options + 4 + 5)) {
  1508              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1509            }
  1510          }
  1511          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1512          if (A.load.Bool(options + 24)) {
  1513            options_ffi["since"] = A.load.Float64(options + 16);
  1514          }
  1515  
  1516          const _ret = WEBEXT.browsingData.removeLocalStorage(options_ffi);
  1517          A.store.Ref(retPtr, _ret);
  1518          return A.H.TRUE;
  1519        } catch (err: any) {
  1520          A.store.Ref(errPtr, err);
  1521          return A.H.FALSE;
  1522        }
  1523      },
  1524      "has_RemovePasswords": (): heap.Ref<boolean> => {
  1525        if (WEBEXT?.browsingData && "removePasswords" in WEBEXT?.browsingData) {
  1526          return A.H.TRUE;
  1527        }
  1528        return A.H.FALSE;
  1529      },
  1530      "func_RemovePasswords": (fn: Pointer): void => {
  1531        A.store.Ref(fn, WEBEXT.browsingData.removePasswords);
  1532      },
  1533      "call_RemovePasswords": (retPtr: Pointer, options: Pointer): void => {
  1534        const options_ffi = {};
  1535  
  1536        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1537        if (A.load.Bool(options + 4 + 6)) {
  1538          options_ffi["originTypes"] = {};
  1539          if (A.load.Bool(options + 4 + 3)) {
  1540            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1541          }
  1542          if (A.load.Bool(options + 4 + 4)) {
  1543            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1544          }
  1545          if (A.load.Bool(options + 4 + 5)) {
  1546            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1547          }
  1548        }
  1549        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1550        if (A.load.Bool(options + 24)) {
  1551          options_ffi["since"] = A.load.Float64(options + 16);
  1552        }
  1553  
  1554        const _ret = WEBEXT.browsingData.removePasswords(options_ffi);
  1555        A.store.Ref(retPtr, _ret);
  1556      },
  1557      "try_RemovePasswords": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1558        try {
  1559          const options_ffi = {};
  1560  
  1561          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1562          if (A.load.Bool(options + 4 + 6)) {
  1563            options_ffi["originTypes"] = {};
  1564            if (A.load.Bool(options + 4 + 3)) {
  1565              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1566            }
  1567            if (A.load.Bool(options + 4 + 4)) {
  1568              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1569            }
  1570            if (A.load.Bool(options + 4 + 5)) {
  1571              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1572            }
  1573          }
  1574          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1575          if (A.load.Bool(options + 24)) {
  1576            options_ffi["since"] = A.load.Float64(options + 16);
  1577          }
  1578  
  1579          const _ret = WEBEXT.browsingData.removePasswords(options_ffi);
  1580          A.store.Ref(retPtr, _ret);
  1581          return A.H.TRUE;
  1582        } catch (err: any) {
  1583          A.store.Ref(errPtr, err);
  1584          return A.H.FALSE;
  1585        }
  1586      },
  1587      "has_RemovePluginData": (): heap.Ref<boolean> => {
  1588        if (WEBEXT?.browsingData && "removePluginData" in WEBEXT?.browsingData) {
  1589          return A.H.TRUE;
  1590        }
  1591        return A.H.FALSE;
  1592      },
  1593      "func_RemovePluginData": (fn: Pointer): void => {
  1594        A.store.Ref(fn, WEBEXT.browsingData.removePluginData);
  1595      },
  1596      "call_RemovePluginData": (retPtr: Pointer, options: Pointer): void => {
  1597        const options_ffi = {};
  1598  
  1599        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1600        if (A.load.Bool(options + 4 + 6)) {
  1601          options_ffi["originTypes"] = {};
  1602          if (A.load.Bool(options + 4 + 3)) {
  1603            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1604          }
  1605          if (A.load.Bool(options + 4 + 4)) {
  1606            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1607          }
  1608          if (A.load.Bool(options + 4 + 5)) {
  1609            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1610          }
  1611        }
  1612        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1613        if (A.load.Bool(options + 24)) {
  1614          options_ffi["since"] = A.load.Float64(options + 16);
  1615        }
  1616  
  1617        const _ret = WEBEXT.browsingData.removePluginData(options_ffi);
  1618        A.store.Ref(retPtr, _ret);
  1619      },
  1620      "try_RemovePluginData": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1621        try {
  1622          const options_ffi = {};
  1623  
  1624          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1625          if (A.load.Bool(options + 4 + 6)) {
  1626            options_ffi["originTypes"] = {};
  1627            if (A.load.Bool(options + 4 + 3)) {
  1628              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1629            }
  1630            if (A.load.Bool(options + 4 + 4)) {
  1631              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1632            }
  1633            if (A.load.Bool(options + 4 + 5)) {
  1634              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1635            }
  1636          }
  1637          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1638          if (A.load.Bool(options + 24)) {
  1639            options_ffi["since"] = A.load.Float64(options + 16);
  1640          }
  1641  
  1642          const _ret = WEBEXT.browsingData.removePluginData(options_ffi);
  1643          A.store.Ref(retPtr, _ret);
  1644          return A.H.TRUE;
  1645        } catch (err: any) {
  1646          A.store.Ref(errPtr, err);
  1647          return A.H.FALSE;
  1648        }
  1649      },
  1650      "has_RemoveServiceWorkers": (): heap.Ref<boolean> => {
  1651        if (WEBEXT?.browsingData && "removeServiceWorkers" in WEBEXT?.browsingData) {
  1652          return A.H.TRUE;
  1653        }
  1654        return A.H.FALSE;
  1655      },
  1656      "func_RemoveServiceWorkers": (fn: Pointer): void => {
  1657        A.store.Ref(fn, WEBEXT.browsingData.removeServiceWorkers);
  1658      },
  1659      "call_RemoveServiceWorkers": (retPtr: Pointer, options: Pointer): void => {
  1660        const options_ffi = {};
  1661  
  1662        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1663        if (A.load.Bool(options + 4 + 6)) {
  1664          options_ffi["originTypes"] = {};
  1665          if (A.load.Bool(options + 4 + 3)) {
  1666            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1667          }
  1668          if (A.load.Bool(options + 4 + 4)) {
  1669            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1670          }
  1671          if (A.load.Bool(options + 4 + 5)) {
  1672            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1673          }
  1674        }
  1675        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1676        if (A.load.Bool(options + 24)) {
  1677          options_ffi["since"] = A.load.Float64(options + 16);
  1678        }
  1679  
  1680        const _ret = WEBEXT.browsingData.removeServiceWorkers(options_ffi);
  1681        A.store.Ref(retPtr, _ret);
  1682      },
  1683      "try_RemoveServiceWorkers": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1684        try {
  1685          const options_ffi = {};
  1686  
  1687          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1688          if (A.load.Bool(options + 4 + 6)) {
  1689            options_ffi["originTypes"] = {};
  1690            if (A.load.Bool(options + 4 + 3)) {
  1691              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1692            }
  1693            if (A.load.Bool(options + 4 + 4)) {
  1694              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1695            }
  1696            if (A.load.Bool(options + 4 + 5)) {
  1697              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1698            }
  1699          }
  1700          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1701          if (A.load.Bool(options + 24)) {
  1702            options_ffi["since"] = A.load.Float64(options + 16);
  1703          }
  1704  
  1705          const _ret = WEBEXT.browsingData.removeServiceWorkers(options_ffi);
  1706          A.store.Ref(retPtr, _ret);
  1707          return A.H.TRUE;
  1708        } catch (err: any) {
  1709          A.store.Ref(errPtr, err);
  1710          return A.H.FALSE;
  1711        }
  1712      },
  1713      "has_RemoveWebSQL": (): heap.Ref<boolean> => {
  1714        if (WEBEXT?.browsingData && "removeWebSQL" in WEBEXT?.browsingData) {
  1715          return A.H.TRUE;
  1716        }
  1717        return A.H.FALSE;
  1718      },
  1719      "func_RemoveWebSQL": (fn: Pointer): void => {
  1720        A.store.Ref(fn, WEBEXT.browsingData.removeWebSQL);
  1721      },
  1722      "call_RemoveWebSQL": (retPtr: Pointer, options: Pointer): void => {
  1723        const options_ffi = {};
  1724  
  1725        options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1726        if (A.load.Bool(options + 4 + 6)) {
  1727          options_ffi["originTypes"] = {};
  1728          if (A.load.Bool(options + 4 + 3)) {
  1729            options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1730          }
  1731          if (A.load.Bool(options + 4 + 4)) {
  1732            options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1733          }
  1734          if (A.load.Bool(options + 4 + 5)) {
  1735            options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1736          }
  1737        }
  1738        options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1739        if (A.load.Bool(options + 24)) {
  1740          options_ffi["since"] = A.load.Float64(options + 16);
  1741        }
  1742  
  1743        const _ret = WEBEXT.browsingData.removeWebSQL(options_ffi);
  1744        A.store.Ref(retPtr, _ret);
  1745      },
  1746      "try_RemoveWebSQL": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => {
  1747        try {
  1748          const options_ffi = {};
  1749  
  1750          options_ffi["excludeOrigins"] = A.load.Ref(options + 0, undefined);
  1751          if (A.load.Bool(options + 4 + 6)) {
  1752            options_ffi["originTypes"] = {};
  1753            if (A.load.Bool(options + 4 + 3)) {
  1754              options_ffi["originTypes"]["extension"] = A.load.Bool(options + 4 + 0);
  1755            }
  1756            if (A.load.Bool(options + 4 + 4)) {
  1757              options_ffi["originTypes"]["protectedWeb"] = A.load.Bool(options + 4 + 1);
  1758            }
  1759            if (A.load.Bool(options + 4 + 5)) {
  1760              options_ffi["originTypes"]["unprotectedWeb"] = A.load.Bool(options + 4 + 2);
  1761            }
  1762          }
  1763          options_ffi["origins"] = A.load.Ref(options + 12, undefined);
  1764          if (A.load.Bool(options + 24)) {
  1765            options_ffi["since"] = A.load.Float64(options + 16);
  1766          }
  1767  
  1768          const _ret = WEBEXT.browsingData.removeWebSQL(options_ffi);
  1769          A.store.Ref(retPtr, _ret);
  1770          return A.H.TRUE;
  1771        } catch (err: any) {
  1772          A.store.Ref(errPtr, err);
  1773          return A.H.FALSE;
  1774        }
  1775      },
  1776      "has_Settings": (): heap.Ref<boolean> => {
  1777        if (WEBEXT?.browsingData && "settings" in WEBEXT?.browsingData) {
  1778          return A.H.TRUE;
  1779        }
  1780        return A.H.FALSE;
  1781      },
  1782      "func_Settings": (fn: Pointer): void => {
  1783        A.store.Ref(fn, WEBEXT.browsingData.settings);
  1784      },
  1785      "call_Settings": (retPtr: Pointer): void => {
  1786        const _ret = WEBEXT.browsingData.settings();
  1787        A.store.Ref(retPtr, _ret);
  1788      },
  1789      "try_Settings": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
  1790        try {
  1791          const _ret = WEBEXT.browsingData.settings();
  1792          A.store.Ref(retPtr, _ret);
  1793          return A.H.TRUE;
  1794        } catch (err: any) {
  1795          A.store.Ref(errPtr, err);
  1796          return A.H.FALSE;
  1797        }
  1798      },
  1799    };
  1800  });