Merge pull request #560 from dart-lang/stable-to-7-x

Stable to 7 x
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..1603cdd
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+# Dependabot configuration file.
+# See https://docs.github.com/en/code-security/dependabot/dependabot-version-updates
+version: 2
+
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "monthly"
diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index 3c4d535..8bcf6e6 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -13,49 +13,105 @@
   PUB_ENVIRONMENT: bot.github
 
 jobs:
-  # Check code formatting and static analysis on a single OS (linux).
+  # Check code formatting and static analysis on a single OS (macos).
   analyze:
-    runs-on: ubuntu-latest
+    runs-on: macos-latest
     strategy:
       fail-fast: false
       matrix:
-        sdk: [2.14.0]
+        sdk: [stable]
     steps:
-      - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v1.0
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
         with:
           sdk: ${{ matrix.sdk }}
       - id: install
         name: Install dependencies
-        run: dart pub get
+        run: dart pub get && dart pub get --directory="example/shared_bindings"
       - name: Check formatting
         run: dart format --output=none --set-exit-if-changed .
         if: always() && steps.install.outcome == 'success'
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
       - name: Analyze code
         run: dart analyze --fatal-infos
         if: always() && steps.install.outcome == 'success'
 
-  test:
+  test-linux:
     needs: analyze
-    # This job requires clang-10 which is the default on 20.04
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v1.0
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
         with:
-          sdk: 2.14.0
+          sdk: stable
       - name: Install dependencies
         run: dart pub get
-      - name: Install libclang-10-dev
-        run: sudo apt-get install libclang-10-dev
-      - name: Build test dylib
-        run: cd test/native_test && dart build_test_dylib.dart && cd ../..
+      - name: Install libclang-14-dev
+        run: sudo apt-get install libclang-14-dev
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
       - name: Run VM tests
-        run: dart test --platform vm
+        run: dart test --platform vm --concurrency=1
+
+  test-mac:
+    needs: analyze
+    runs-on: macos-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
+        with:
+          sdk: stable
+      - name: Install dependencies
+        run: dart pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: dart test --platform vm --concurrency=1
       - name: Collect coverage
         run: ./tool/coverage.sh
       - name: Upload coverage
-        uses: coverallsapp/github-action@v1.1.2
+        uses: coverallsapp/github-action@67662d24394fd74bffcf7b462d1b432814159afd
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
           path-to-lcov: lcov.info
+
+  test-windows:
+    needs: analyze
+    runs-on: windows-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
+        with:
+          sdk: stable
+      - name: Install dependencies
+        run: dart pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: dart test --platform vm --concurrency=1
+
+  # Sanity check the latest `flutter create --template plugin_ffi`.
+  # This will break if we change the Flutter template or the generated code.
+  # But, getting libclang on the LUCI infrastructure has proven to be
+  # non-trivial. See discussion on
+  # https://github.com/flutter/flutter/issues/105513.
+  # If we need to change the generated code, we should temporarily disable this
+  # test, or temporarily disable the requirement for all bots to be green to
+  # merge PRs.
+  # Running this sanity check on one OS should be sufficient. Chosing Windows
+  # because it is the most likely to break.
+  test-windows-flutter:
+    needs: analyze
+    runs-on: windows-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
+        with:
+          channel: 'master'
+      - name: Install dependencies
+        run: flutter pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: flutter pub run test test_flutter/ --platform vm
diff --git a/.gitignore b/.gitignore
index 96f7b01..d9616e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,8 @@
 # Files generated by tests for debugging purposes.
 test/debug_generated/*
 !test/debug_generated/readme.md
+lcov.info
+coverage.json
+
+# Files generated by various OSs.
+.DS_Store
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73861a3..e996b1c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,108 @@
+# 7.2.10
+
+- Generate parameter names in function pointer fields and typedefs.
+
+# 7.2.9
+
+- Detect LLVM installed using Scoop on Windows machines.
+
+# 7.2.8
+
+- Automatically generate `ignore_for_file: type=lint` if not specified in preamble.
+
+# 7.2.7
+
+- Fix some macros not being generated in some cases due to relative header paths.
+
+# 7.2.6
+
+- Fix path normalization behaviour for absolute paths and globs starting with `**`.
+
+# 7.2.5
+
+- Add support nested anonymous union/struct
+
+# 7.2.4
+
+- Add new supported typedef - `uintptr_t` (mapped to `ffi.UintPtr`).
+
+# 7.2.3
+
+- Change compiler option order so that user options can override built-in
+  options.
+
+# 7.2.2
+
+- Added newer versions of LLVM, to default `linuxDylibLocations`.
+
+# 7.2.1
+
+- Fix helper methods sometimes missing from NSString.
+
+# 7.2.0
+
+- Added support for sharing bindings using `symbol-file` config. (See `README.md`
+and examples/shared_bindings).
+
+# 7.1.0
+
+- Handle declarations with definition accessible from a different entry-point.
+
+# 7.0.0
+
+- Fix typedef include/exclude config.
+- Return `ObjCBlock` wrapper instead of raw pointer in more cases.
+
+# 7.0.0-dev
+
+- Relative paths in ffigen config files are now assumed to be relative to the
+  config file, rather than the working directory of the tool invocation.
+
+# 6.1.2
+
+- Fix bug where function bindings were not deduped correctly.
+
+# 6.1.1
+
+- _EXPERIMENTAL_ support for `FfiNative`. The API and output
+  might change at any point.
+
+# 6.1.0
+
+- Added `exclude-all-by-default` config flag, which changes the default behavior
+  of declaration filters to exclude everything, rather than include everything.
+
+# 6.0.2
+
+- Bump `package:ffi` to 2.0.1.
+
+# 6.0.1
+
+- Replace path separators in `include-directives` before matching file names.
+- Add more ways to find `libclang`.
+
+# 6.0.0
+- Removed config `dart-bool`. Booleans are now always generated with `bool`
+and `ffi.Bool` as it's Dart and C Type respectively.
+
+# 5.0.1
+
+- Add a the xcode tools llvm as default path on MacOS.
+
+# 5.0.0
+
+- Stable release targeting Dart 2.17, supporting ABI-specific integer types.
+- _EXPERIMENTAL_ support for ObjectiveC on MacOS hosts. The API and output
+  might change at any point. Feel free to report bugs if encountered.
+
+# 5.0.0-dev.1
+- Fixed invalid default dart types being generated for `size_t` and `wchar_t`.
+
+# 5.0.0-dev.0
+- Added support for generating ABI Specific integers.
+- Breaking: removed config keys - `size-map` and `typedef-map`.
+- Added config keys - `library-imports` and `type-map`.
+
 # 4.1.3
 - Analyzer fixes.
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..1ef4cd9
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,35 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## Process
+
+Some of our branching and releasing process is described on the
+[wiki](https://github.com/dart-lang/ffigen/wiki). Please familiarize yourself
+with the info there.
+
+## Community Guidelines
+
+This project follows [Google's Open Source Community
+Guidelines](https://opensource.google/conduct/) and the [Dart code of
+conduct](https://dart.dev/code-of-conduct).
diff --git a/LICENSE b/LICENSE
index 467a982..c7e642d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -25,3 +25,6 @@
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Code generated by FFIgen is owned by the owner of the input file used
+when generating it.
diff --git a/README.md b/README.md
index a4439bb..c4f5a02 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,16 @@
 
 Binding generator for [FFI](https://dart.dev/guides/libraries/c-interop) bindings.
 
-> Note: ffigen only supports parsing `C` headers.
+> Note: ffigen only supports parsing `C` headers, not `C++` headers.
+
+This bindings generator can be used to call C code -- or code in another
+language that compiles to C modules that follow the C calling convention --
+such as Go or Rust. For more details, see:
+https://dart.dev/guides/libraries/c-interop
+
+ffigen also has experimental support for calling ObjC and Swift code;
+for details see:
+https://dart.dev/guides/libraries/objective-c-interop
 
 ## Example
 
@@ -22,13 +31,14 @@
 ```
 Output (_generated_bindings.dart_).
 ```dart
+import 'dart:ffi' as ffi;
 class NativeLibrary {
-  final Pointer<T> Function<T extends NativeType>(String symbolName)
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
       _lookup;
-  NativeLibrary(DynamicLibrary dynamicLibrary)
+  NativeLibrary(ffi.DynamicLibrary dynamicLibrary)
       : _lookup = dynamicLibrary.lookup;
   NativeLibrary.fromLookup(
-      Pointer<T> Function<T extends NativeType>(String symbolName)
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
           lookup)
       : _lookup = lookup;
 
@@ -36,12 +46,14 @@
     return _sum(a, b);
   }
 
-  late final _sumPtr = _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32, ffi.Int32)>>('sum');
-  late final _sum = _sum_ptr.asFunction<int Function(int, int)>();
+  late final _sumPtr = _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>('sum');
+  late final _sum = _sumPtr.asFunction<int Function(int, int)>();
+}
 }
 ```
 ## Using this package
 - Add `ffigen` under `dev_dependencies` in your `pubspec.yaml` (run `dart pub add -d ffigen`).
+- Add `package:ffi` under `dependencies` in your `pubspec.yaml` (run `dart pub add ffi`).
 - Install LLVM (see [Installing LLVM](#installing-llvm)).
 - Configurations must be provided in `pubspec.yaml` or in a custom YAML file (see [configurations](#configurations)).
 - Run the tool- `dart run ffigen`.
@@ -90,6 +102,12 @@
 ```yaml
 output: 'generated_bindings.dart'
 ```
+or
+```yaml
+output:
+  bindings: 'generated_bindings.dart'
+  ... 
+```
   </td>
   </tr>
   <tr>
@@ -182,7 +200,10 @@
   </td>
   </tr>
   <tr>
-    <td>functions<br><br>structs<br><br>unions<br><br>enums<br><br>unnamed-enums<br><br>macros<br><br>globals</td>
+    <td>
+      functions<br><br>structs<br><br>unions<br><br>enums<br><br>
+      unnamed-enums<br><br>macros<br><br>globals
+    </td>
     <td>Filters for declarations.<br><b>Default: all are included.</b><br><br>
     Options -<br>
     - Include/Exclude declarations.<br>
@@ -385,7 +406,7 @@
   </tr>
   <tr>
     <td>use-supported-typedefs</td>
-    <td>Should automatically map typedefs, E.g uint8_t => Uint8, int16_t => Int16 etc.<br>
+    <td>Should automatically map typedefs, E.g uint8_t => Uint8, int16_t => Int16, size_t => Size etc.<br>
     <b>Default: true</b>
     </td>
     <td>
@@ -396,18 +417,6 @@
   </td>
   </tr>
   <tr>
-    <td>dart-bool</td>
-    <td>Should generate dart `bool` instead of Uint8 for c99 bool in functions.<br>
-    <b>Default: true</b>
-    </td>
-    <td>
-
-```yaml
-dart-bool: true
-```
-  </td>
-  </tr>
-  <tr>
     <td>use-dart-handle</td>
     <td>Should map `Dart_Handle` to `Handle`.<br>
     <b>Default: true</b>
@@ -420,6 +429,21 @@
   </td>
   </tr>
   <tr>
+    <td>exclude-all-by-default</td>
+    <td>
+      When a declaration filter (eg `functions:` or `structs:`) is empty or
+      unset, it defaults to including everything. If this flag is enabled, the
+      default behavior is to exclude everything instead.<br>
+      <b>Default: false</b>
+    </td>
+    <td>
+
+```yaml
+exclude-all-by-default: true
+```
+  </td>
+  </tr>
+  <tr>
     <td>preamble</td>
     <td>Raw header of the file, pasted as-it-is.</td>
     <td>
@@ -431,63 +455,204 @@
 </td>
   </tr>
   <tr>
-    <td>typedef-map</td>
-    <td>Map typedefs to Native Types.<br> Values can only be
-    <i>Void, Uint8, Int8, Uint16, Int16, Uint32, Int32, Uint64, Int64, IntPtr, Float and Double.</i>
+    <td>library-imports</td>
+    <td>Specify library imports for use in type-map.<br><br>
+    Note: ffi (dart:ffi) is already available as a predefined import.
     </td>
     <td>
 
 ```yaml
-typedef-map:
-  'my_custom_type': 'IntPtr'
-  'size_t': 'Int64'
+library-imports:
+  custom_lib: 'package:some_pkg/some_file.dart'
 ```
   </td>
   </tr>
   <tr>
-    <td>size-map</td>
-    <td>Size of integers to use (in bytes).<br>
-    <b>The defaults (see example) <i>may</i> not be portable on all OS.
-    Do not change these unless absolutely sure.</b>
+    <td>type-map</td>
+    <td>Map types like integers, typedefs, structs,  unions to any other type.<br><br>
+    <b>Sub-fields</b> - <i>typedefs</i>, <i>structs</i>, <i>unions</i>, <i>ints</i><br><br>
+    <b><i>lib</i></b> must be specified in <i>library-imports</i> or be one of a predefined import.
     </td>
     <td>
 
 ```yaml
-# These are optional and also default,
-# Omitting any and the default
-# will be used.
-size-map:
-  char: 1
-  unsigned char: 1
-  short: 2
-  unsigned short: 2
-  int: 4
-  unsigned int: 4
-  long: 8
-  unsigned long: 8
-  long long: 8
-  unsigned long long: 8
-  enum: 4
+type-map:
+  'native-types': # Targets native types.
+    'char':
+      'lib': 'pkg_ffi' # predefined import.
+      'c-type': 'Char'
+      # For native-types dart-type can be be int, double or float
+      # but same otherwise.
+      'dart-type': 'int'
+    'int':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType4'
+      'dart-type': 'int'
+  'typedefs': # Targets typedefs.
+    'my_type1':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType'
+      'dart-type': 'CustomType'
+  'structs': # Targets structs.
+    'my_type2':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType2'
+      'dart-type': 'CustomType2'
+  'unions': # Targets unions.
+    'my_type3':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType3'
+      'dart-type': 'CustomType3'
 ```
   </td>
   </tr>
+  <tr>
+    <td>ffi-native</td>
+    <td>
+      <b>WARNING:</b> FfiNative support is EXPERIMENTAL. The API may change
+      in a breaking way without notice.
+      <br><br>
+      Generate `@FfiNative` bindings instead of bindings using `DynamicLibrary` or `lookup`.
+    </td>
+    <td>
+
+```yaml
+ffi-native:
+  asset: 'myasset' # Optional.
+```
+  </td>
+  </tr>
+  <tr>
+    <td>language</td>
+    <td>
+      <b>WARNING:</b> Other language support is EXPERIMENTAL. The API may change
+      in a breaking way without notice.
+      <br><br>
+      Choose the input langauge. Must be one of 'c', or 'objc'. Defaults to 'c'.
+    </td>
+    <td>
+
+```yaml
+language: 'objc'
+```
+  </td>
+  </tr>
+  <tr>
+    <td>output -> symbol-file</td>
+    <td>Generates a symbol file yaml containing all types defined in the generated output.</td>
+    <td>
+
+```yaml
+output:
+  ...
+  symbol-file:
+    # Although file paths are supported here, prefer Package Uri's here
+    # so that other pacakges can use them.
+    output: 'package:some_pkg/symbols.yaml'
+    import-path: 'package:some_pkg/base.dart'
+```
+</td>
+  </tr>
+  <tr>
+    <td>import -> symbol-files</td>
+    <td>Import symbols from a symbol file. Used for sharing type definitions from other pacakges.</td>
+    <td>
+
+```yaml
+import:
+  symbol-files:
+    # Both package Uri and file paths are supported here.
+    - 'package:some_pkg/symbols.yaml'
+    - 'path/to/some/symbol_file.yaml'
+```
+</td>
+  </tr>
 </tbody>
 </table>
 
-## Limitations
-1. Multi OS support for types such as long. [Issue #7](https://github.com/dart-lang/ffigen/issues/7)
+### Objective-C config options
+
+<table>
+<thead>
+  <tr>
+    <th>Key</th>
+    <th>Explaination</th>
+    <th>Example</th>
+  </tr>
+  <colgroup>
+    <col>
+    <col style="width: 100px;">
+  </colgroup>
+</thead>
+<tbody>
+  <tr>
+    <td>
+      objc-interfaces
+    </td>
+    <td>
+      Filters for interface declarations. This option works the same as other
+      declaration filters like `functions` and `structs`.
+    </td>
+    <td>
+
+```yaml
+objc-interfaces:
+  include:
+    # Includes a specific interface.
+    - 'MyInterface'
+    # Includes all interfaces starting with "NS".
+    - 'NS.*'
+  exclude:
+    # Override the above NS.* inclusion, to exclude NSURL.
+    - 'NSURL'
+  rename:
+    # Removes '_' prefix from interface names.
+    '_(.*)': '$1'
+```
+
+  </td>
+  </tr>
+
+  <tr>
+    <td>
+      objc-interfaces -> module
+    </td>
+    <td>
+      Adds a module prefix to the class name when loading the class
+      from the dylib. This is only relevent for ObjC headers that are generated
+      wrappers for a Swift library. See example/swift for more information.
+    </td>
+    <td>
+
+```yaml
+headers:
+  entry-points:
+    # Generated by swiftc to wrap foo_lib.swift.
+    - 'foo_lib-Swift.h'
+objc-interfaces:
+  include:
+    # Eg, foo_lib contains a set of classes prefixed with FL.
+    - 'FL.*'
+  module:
+    # Use 'foo_lib' as the module name for all the FL.* classes.
+    # We don't match .* here because other classes like NSString
+    # shouldn't be given a module prefix.
+    'FL.*': 'foo_lib'
+```
+
+  </td>
+  </tr>
+</tbody>
+</table>
 
 ## Trying out examples
 1. `cd examples/<example_u_want_to_run>`, Run `dart pub get`.
 2. Run `dart run ffigen`.
 
 ## Running Tests
-1. Dynamic library for some tests need to be built before running the examples.
-  1. `cd test/native_test`.
-  2. Run `dart build_test_dylib.dart`.
 
-Run tests from the root of the package with `dart run test`.
-> Note: If llvm is not installed in one of the default locations, tests may fail.
+See [test/README.md](test/README.md)
+
 ## FAQ
 ### Can ffigen be used for removing underscores or renaming declarations?
 Ffigen supports **regexp based renaming**, the regexp must be a
@@ -537,11 +702,6 @@
 
 Ffigen treats `char*` just as any other pointer,(`Pointer<Int8>`).
 To convert these to/from `String`, you can use [package:ffi](https://pub.dev/packages/ffi). Use `ptr.cast<Utf8>().toDartString()` to convert `char*` to dart `string` and `"str".toNativeUtf8()` to convert `string` to `char*`.
-### How does ffigen handle C99 bool data type?
-
-Although `dart:ffi` doesn't have a NativeType for `bool`, they can be implemented as `Uint8`.
-Ffigen generates dart `bool` for function parameters and return type by default.
-To disable this, and use `int` instead, set `dart-bool: false` in configurations.
 
 ### How are unnamed enums handled?
 
@@ -619,6 +779,12 @@
   - They refer to a struct/union having the same name as itself.
   - They refer to a boolean, enum, inline array, Handle or any unsupported type.
 
+### How are macros handled?
+
+`ffigen` uses `clang`'s own compiler frontend to parse and traverse the `C` header files. `ffigen` expands the macros using `clang`'s macro expansion and then traverses the expanded code. To do this, `ffigen` generates temporary files in a system tmp directory.
+
+A custom temporary directory can be specified by setting the `TEST_TMPDIR` environment variable.
+
 ### What are these logs generated by ffigen and how to fix them?
 
 Ffigen can sometimes generate a lot of logs, especially when it's parsing a lot of code.
@@ -637,3 +803,16 @@
     Level options are - `[all, fine, info (default), warning, severe]`.
     The `all` and `fine` will print a ton of logs are meant for debugging
     purposes only.
+
+### How can type definitions be shared?
+
+Ffigen can share type definitions using symbol files.
+- A package can generate a symbol file using the `output -> symbol-file` config.
+- And another package can then import this, using `import -> symbol-files` config.
+- Doing so will reuse all the types such as Struct/Unions, and will automatically
+ exclude generating other types (E.g functions, enums, macros).
+
+Checkout `examples/shared_bindings` for details.
+
+For manually reusing definitions from another package, the `library-imports`
+and `type-map` config can be used.
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 002a2c4..5028f95 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -5,9 +5,13 @@
 include: package:lints/recommended.yaml
 
 analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
+  exclude:
+    - 'test/**_expected*'
+    # Goldens cannot be generated outside MacOS causing analysis errors.
+    - test/native_objc_test/** 
+  language:
+    strict-casts: true
+    strict-inference: true
 
 linter:
   rules:
diff --git a/example/README.md b/example/README.md
index 954249d..91a8db8 100644
--- a/example/README.md
+++ b/example/README.md
@@ -3,3 +3,5 @@
 - [Simple](https://github.com/dart-lang/ffigen/tree/master/example/simple)
 - [cJSON](https://github.com/dart-lang/ffigen/tree/master/example/c_json)
 - [LibClang](https://github.com/dart-lang/ffigen/tree/master/example/libclang-example)
+- [ObjectiveC](https://github.com/dart-lang/ffigen/tree/master/example/objective_c)
+- [Swift](https://github.com/dart-lang/ffigen/tree/master/example/swift)
diff --git a/example/c_json/README.md b/example/c_json/README.md
index 229d65b..f222cc2 100644
--- a/example/c_json/README.md
+++ b/example/c_json/README.md
@@ -15,7 +15,7 @@
 ## Generating bindings
 At the root of this example (`example/c_json`), run -
 ```
-dart run ffigen
+dart run ffigen --config config.yaml
 ```
 This will generate bindings in a file: [cjson_generated_bindings.dart](./cjson_generated_bindings.dart)
 
diff --git a/example/c_json/cjson_generated_bindings.dart b/example/c_json/cjson_generated_bindings.dart
index a518d8a..c520c20 100644
--- a/example/c_json/cjson_generated_bindings.dart
+++ b/example/c_json/cjson_generated_bindings.dart
@@ -19,10 +19,10 @@
 // THE SOFTWARE.
 
 // ignore_for_file: camel_case_types, non_constant_identifier_names
-
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Holds bindings to cJSON.
@@ -40,15 +40,15 @@
           lookup)
       : _lookup = lookup;
 
-  ffi.Pointer<ffi.Int8> cJSON_Version() {
+  ffi.Pointer<ffi.Char> cJSON_Version() {
     return _cJSON_Version();
   }
 
   late final _cJSON_VersionPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_Version');
   late final _cJSON_Version =
-      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
   void cJSON_InitHooks(
     ffi.Pointer<cJSON_Hooks> hooks,
@@ -65,7 +65,7 @@
       _cJSON_InitHooksPtr.asFunction<void Function(ffi.Pointer<cJSON_Hooks>)>();
 
   ffi.Pointer<cJSON> cJSON_Parse(
-    ffi.Pointer<ffi.Int8> value,
+    ffi.Pointer<ffi.Char> value,
   ) {
     return _cJSON_Parse(
       value,
@@ -74,13 +74,13 @@
 
   late final _cJSON_ParsePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>>('cJSON_Parse');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>>('cJSON_Parse');
   late final _cJSON_Parse = _cJSON_ParsePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_ParseWithOpts(
-    ffi.Pointer<ffi.Int8> value,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> return_parse_end,
+    ffi.Pointer<ffi.Char> value,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> return_parse_end,
     int require_null_terminated,
   ) {
     return _cJSON_ParseWithOpts(
@@ -93,14 +93,14 @@
   late final _cJSON_ParseWithOptsPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               cJSON_bool)>>('cJSON_ParseWithOpts');
   late final _cJSON_ParseWithOpts = _cJSON_ParseWithOptsPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_Print(
+  ffi.Pointer<ffi.Char> cJSON_Print(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_Print(
@@ -110,11 +110,11 @@
 
   late final _cJSON_PrintPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
   late final _cJSON_Print = _cJSON_PrintPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintUnformatted(
+  ffi.Pointer<ffi.Char> cJSON_PrintUnformatted(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_PrintUnformatted(
@@ -124,12 +124,12 @@
 
   late final _cJSON_PrintUnformattedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_PrintUnformatted');
   late final _cJSON_PrintUnformatted = _cJSON_PrintUnformattedPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintBuffered(
+  ffi.Pointer<ffi.Char> cJSON_PrintBuffered(
     ffi.Pointer<cJSON> item,
     int prebuffer,
     int fmt,
@@ -143,14 +143,14 @@
 
   late final _cJSON_PrintBufferedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, ffi.Int32,
-              cJSON_bool)>>('cJSON_PrintBuffered');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<cJSON>, ffi.Int, cJSON_bool)>>('cJSON_PrintBuffered');
   late final _cJSON_PrintBuffered = _cJSON_PrintBufferedPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, int, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>, int, int)>();
 
   int cJSON_PrintPreallocated(
     ffi.Pointer<cJSON> item,
-    ffi.Pointer<ffi.Int8> buffer,
+    ffi.Pointer<ffi.Char> buffer,
     int length,
     int format,
   ) {
@@ -164,10 +164,10 @@
 
   late final _cJSON_PrintPreallocatedPtr = _lookup<
       ffi.NativeFunction<
-          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, cJSON_bool)>>('cJSON_PrintPreallocated');
+          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Int, cJSON_bool)>>('cJSON_PrintPreallocated');
   late final _cJSON_PrintPreallocated = _cJSON_PrintPreallocatedPtr.asFunction<
-      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int, int)>();
+      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int, int)>();
 
   void cJSON_Delete(
     ffi.Pointer<cJSON> item,
@@ -192,7 +192,7 @@
   }
 
   late final _cJSON_GetArraySizePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<cJSON>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<cJSON>)>>(
           'cJSON_GetArraySize');
   late final _cJSON_GetArraySize =
       _cJSON_GetArraySizePtr.asFunction<int Function(ffi.Pointer<cJSON>)>();
@@ -210,13 +210,13 @@
   late final _cJSON_GetArrayItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_GetArrayItem');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_GetArrayItem');
   late final _cJSON_GetArrayItem = _cJSON_GetArrayItemPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItem(
       object,
@@ -227,13 +227,13 @@
   late final _cJSON_GetObjectItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItem');
   late final _cJSON_GetObjectItem = _cJSON_GetObjectItemPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItemCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItemCaseSensitive(
       object,
@@ -244,15 +244,15 @@
   late final _cJSON_GetObjectItemCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItemCaseSensitive');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItemCaseSensitive');
   late final _cJSON_GetObjectItemCaseSensitive =
       _cJSON_GetObjectItemCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   int cJSON_HasObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_HasObjectItem(
       object,
@@ -263,21 +263,21 @@
   late final _cJSON_HasObjectItemPtr = _lookup<
       ffi.NativeFunction<
           cJSON_bool Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_HasObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_HasObjectItem');
   late final _cJSON_HasObjectItem = _cJSON_HasObjectItemPtr
-      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetErrorPtr() {
+  ffi.Pointer<ffi.Char> cJSON_GetErrorPtr() {
     return _cJSON_GetErrorPtr();
   }
 
   late final _cJSON_GetErrorPtrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_GetErrorPtr');
   late final _cJSON_GetErrorPtr =
-      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetStringValue(
+  ffi.Pointer<ffi.Char> cJSON_GetStringValue(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_GetStringValue(
@@ -287,10 +287,10 @@
 
   late final _cJSON_GetStringValuePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_GetStringValue');
   late final _cJSON_GetStringValue = _cJSON_GetStringValuePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
   int cJSON_IsInvalid(
     ffi.Pointer<cJSON> item,
@@ -491,7 +491,7 @@
       _cJSON_CreateNumberPtr.asFunction<ffi.Pointer<cJSON> Function(double)>();
 
   ffi.Pointer<cJSON> cJSON_CreateString(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateString(
       string,
@@ -501,12 +501,12 @@
   late final _cJSON_CreateStringPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateString');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateString');
   late final _cJSON_CreateString = _cJSON_CreateStringPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateRaw(
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_CreateRaw(
       raw,
@@ -516,9 +516,9 @@
   late final _cJSON_CreateRawPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateRaw');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateRaw');
   late final _cJSON_CreateRaw = _cJSON_CreateRawPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateArray() {
     return _cJSON_CreateArray();
@@ -541,7 +541,7 @@
       _cJSON_CreateObjectPtr.asFunction<ffi.Pointer<cJSON> Function()>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringReference(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateStringReference(
       string,
@@ -551,9 +551,9 @@
   late final _cJSON_CreateStringReferencePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateStringReference');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateStringReference');
   late final _cJSON_CreateStringReference = _cJSON_CreateStringReferencePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateObjectReference(
     ffi.Pointer<cJSON> child,
@@ -584,7 +584,7 @@
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateIntArray(
-    ffi.Pointer<ffi.Int32> numbers,
+    ffi.Pointer<ffi.Int> numbers,
     int count,
   ) {
     return _cJSON_CreateIntArray(
@@ -596,9 +596,9 @@
   late final _cJSON_CreateIntArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int32>, ffi.Int32)>>('cJSON_CreateIntArray');
+              ffi.Pointer<ffi.Int>, ffi.Int)>>('cJSON_CreateIntArray');
   late final _cJSON_CreateIntArray = _cJSON_CreateIntArrayPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int32>, int)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateFloatArray(
     ffi.Pointer<ffi.Float> numbers,
@@ -613,7 +613,7 @@
   late final _cJSON_CreateFloatArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Float>, ffi.Int32)>>('cJSON_CreateFloatArray');
+              ffi.Pointer<ffi.Float>, ffi.Int)>>('cJSON_CreateFloatArray');
   late final _cJSON_CreateFloatArray = _cJSON_CreateFloatArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Float>, int)>();
 
@@ -630,12 +630,12 @@
   late final _cJSON_CreateDoubleArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Double>, ffi.Int32)>>('cJSON_CreateDoubleArray');
+              ffi.Pointer<ffi.Double>, ffi.Int)>>('cJSON_CreateDoubleArray');
   late final _cJSON_CreateDoubleArray = _cJSON_CreateDoubleArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Double>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringArray(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> strings,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> strings,
     int count,
   ) {
     return _cJSON_CreateStringArray(
@@ -646,10 +646,10 @@
 
   late final _cJSON_CreateStringArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32)>>('cJSON_CreateStringArray');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int)>>('cJSON_CreateStringArray');
   late final _cJSON_CreateStringArray = _cJSON_CreateStringArrayPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
   void cJSON_AddItemToArray(
     ffi.Pointer<cJSON> array,
@@ -670,7 +670,7 @@
 
   void cJSON_AddItemToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObject(
@@ -682,15 +682,15 @@
 
   late final _cJSON_AddItemToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObject');
   late final _cJSON_AddItemToObject = _cJSON_AddItemToObjectPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemToObjectCS(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObjectCS(
@@ -702,11 +702,11 @@
 
   late final _cJSON_AddItemToObjectCSPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObjectCS');
   late final _cJSON_AddItemToObjectCS = _cJSON_AddItemToObjectCSPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemReferenceToArray(
     ffi.Pointer<cJSON> array,
@@ -727,7 +727,7 @@
 
   void cJSON_AddItemReferenceToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemReferenceToObject(
@@ -739,12 +739,12 @@
 
   late final _cJSON_AddItemReferenceToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemReferenceToObject');
   late final _cJSON_AddItemReferenceToObject =
       _cJSON_AddItemReferenceToObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemViaPointer(
     ffi.Pointer<cJSON> parent,
@@ -778,7 +778,7 @@
   late final _cJSON_DetachItemFromArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_DetachItemFromArray');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_DetachItemFromArray');
   late final _cJSON_DetachItemFromArray = _cJSON_DetachItemFromArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
@@ -793,14 +793,14 @@
   }
 
   late final _cJSON_DeleteItemFromArrayPtr = _lookup<
-          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32)>>(
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int)>>(
       'cJSON_DeleteItemFromArray');
   late final _cJSON_DeleteItemFromArray = _cJSON_DeleteItemFromArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObject(
       object,
@@ -811,15 +811,15 @@
   late final _cJSON_DetachItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DetachItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DetachItemFromObject');
   late final _cJSON_DetachItemFromObject =
       _cJSON_DetachItemFromObjectPtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObjectCaseSensitive(
       object,
@@ -830,16 +830,16 @@
   late final _cJSON_DetachItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
               ffi.Pointer<cJSON> Function(
-                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DetachItemFromObjectCaseSensitive');
   late final _cJSON_DetachItemFromObjectCaseSensitive =
       _cJSON_DetachItemFromObjectCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObject(
       object,
@@ -850,13 +850,13 @@
   late final _cJSON_DeleteItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DeleteItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DeleteItemFromObject');
   late final _cJSON_DeleteItemFromObject = _cJSON_DeleteItemFromObjectPtr
-      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObjectCaseSensitive(
       object,
@@ -866,11 +866,11 @@
 
   late final _cJSON_DeleteItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DeleteItemFromObjectCaseSensitive');
   late final _cJSON_DeleteItemFromObjectCaseSensitive =
       _cJSON_DeleteItemFromObjectCaseSensitivePtr.asFunction<
-          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_InsertItemInArray(
     ffi.Pointer<cJSON> array,
@@ -886,7 +886,7 @@
 
   late final _cJSON_InsertItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_InsertItemInArray');
   late final _cJSON_InsertItemInArray = _cJSON_InsertItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
@@ -926,14 +926,14 @@
 
   late final _cJSON_ReplaceItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInArray');
   late final _cJSON_ReplaceItemInArray = _cJSON_ReplaceItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObject(
@@ -945,16 +945,16 @@
 
   late final _cJSON_ReplaceItemInObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObject');
   late final _cJSON_ReplaceItemInObject =
       _cJSON_ReplaceItemInObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObjectCaseSensitive(
@@ -966,12 +966,12 @@
 
   late final _cJSON_ReplaceItemInObjectCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObjectCaseSensitive');
   late final _cJSON_ReplaceItemInObjectCaseSensitive =
       _cJSON_ReplaceItemInObjectCaseSensitivePtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_Duplicate(
     ffi.Pointer<cJSON> item,
@@ -1010,7 +1010,7 @@
       .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<cJSON>, int)>();
 
   void cJSON_Minify(
-    ffi.Pointer<ffi.Int8> json,
+    ffi.Pointer<ffi.Char> json,
   ) {
     return _cJSON_Minify(
       json,
@@ -1018,14 +1018,14 @@
   }
 
   late final _cJSON_MinifyPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Char>)>>(
           'cJSON_Minify');
   late final _cJSON_Minify =
-      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Int8>)>();
+      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddNullToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddNullToObject(
       object,
@@ -1036,13 +1036,13 @@
   late final _cJSON_AddNullToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddNullToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddNullToObject');
   late final _cJSON_AddNullToObject = _cJSON_AddNullToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddTrueToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddTrueToObject(
       object,
@@ -1053,13 +1053,13 @@
   late final _cJSON_AddTrueToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddTrueToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddTrueToObject');
   late final _cJSON_AddTrueToObject = _cJSON_AddTrueToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddFalseToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddFalseToObject(
       object,
@@ -1070,13 +1070,13 @@
   late final _cJSON_AddFalseToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddFalseToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddFalseToObject');
   late final _cJSON_AddFalseToObject = _cJSON_AddFalseToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddBoolToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int boolean,
   ) {
     return _cJSON_AddBoolToObject(
@@ -1088,15 +1088,15 @@
 
   late final _cJSON_AddBoolToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               cJSON_bool)>>('cJSON_AddBoolToObject');
   late final _cJSON_AddBoolToObject = _cJSON_AddBoolToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int)>();
 
   ffi.Pointer<cJSON> cJSON_AddNumberToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     double number,
   ) {
     return _cJSON_AddNumberToObject(
@@ -1108,16 +1108,16 @@
 
   late final _cJSON_AddNumberToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Double)>>('cJSON_AddNumberToObject');
   late final _cJSON_AddNumberToObject = _cJSON_AddNumberToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, double)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, double)>();
 
   ffi.Pointer<cJSON> cJSON_AddStringToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_AddStringToObject(
       object,
@@ -1128,16 +1128,16 @@
 
   late final _cJSON_AddStringToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddStringToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddStringToObject');
   late final _cJSON_AddStringToObject = _cJSON_AddStringToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddRawToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_AddRawToObject(
       object,
@@ -1148,15 +1148,15 @@
 
   late final _cJSON_AddRawToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddRawToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddRawToObject');
   late final _cJSON_AddRawToObject = _cJSON_AddRawToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddObjectToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddObjectToObject(
       object,
@@ -1167,13 +1167,13 @@
   late final _cJSON_AddObjectToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddObjectToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddObjectToObject');
   late final _cJSON_AddObjectToObject = _cJSON_AddObjectToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddArrayToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddArrayToObject(
       object,
@@ -1184,9 +1184,9 @@
   late final _cJSON_AddArrayToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddArrayToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddArrayToObject');
   late final _cJSON_AddArrayToObject = _cJSON_AddArrayToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   double cJSON_SetNumberHelper(
     ffi.Pointer<cJSON> object,
@@ -1214,7 +1214,7 @@
   }
 
   late final _cJSON_mallocPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size)>>(
           'cJSON_malloc');
   late final _cJSON_malloc =
       _cJSON_mallocPtr.asFunction<ffi.Pointer<ffi.Void> Function(int)>();
@@ -1241,30 +1241,30 @@
 
   external ffi.Pointer<cJSON> child;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int type;
 
-  external ffi.Pointer<ffi.Int8> valuestring;
+  external ffi.Pointer<ffi.Char> valuestring;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int valueint;
 
   @ffi.Double()
   external double valuedouble;
 
-  external ffi.Pointer<ffi.Int8> string;
+  external ffi.Pointer<ffi.Char> string;
 }
 
 class cJSON_Hooks extends ffi.Struct {
   external ffi.Pointer<
-      ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>> malloc_fn;
+          ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size sz)>>
+      malloc_fn;
 
-  external ffi
-          .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
-      free_fn;
+  external ffi.Pointer<
+      ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void> ptr)>> free_fn;
 }
 
-typedef cJSON_bool = ffi.Int32;
+typedef cJSON_bool = ffi.Int;
 
 const int CJSON_VERSION_MAJOR = 1;
 
diff --git a/example/c_json/config.yaml b/example/c_json/config.yaml
new file mode 100644
index 0000000..08c5891
--- /dev/null
+++ b/example/c_json/config.yaml
@@ -0,0 +1,31 @@
+output: 'cjson_generated_bindings.dart'
+name: 'CJson'
+description: 'Holds bindings to cJSON.'
+headers:
+  entry-points:
+    - '../../third_party/cjson_library/cJSON.h'
+  include-directives:
+    - '**cJSON.h'
+comments: false
+preamble: |
+  // Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
+  //
+  // Permission is hereby granted, free of charge, to any person obtaining a copy
+  // of this software and associated documentation files (the "Software"), to deal
+  // in the Software without restriction, including without limitation the rights
+  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  // copies of the Software, and to permit persons to whom the Software is
+  // furnished to do so, subject to the following conditions:
+  //
+  // The above copyright notice and this permission notice shall be included in
+  // all copies or substantial portions of the Software.
+  //
+  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  // THE SOFTWARE.
+
+  // ignore_for_file: camel_case_types, non_constant_identifier_names
\ No newline at end of file
diff --git a/example/c_json/main.dart b/example/c_json/main.dart
index 99042eb..adbdac6 100644
--- a/example/c_json/main.dart
+++ b/example/c_json/main.dart
@@ -40,8 +40,8 @@
     print('Json converted successfully');
   } else {
     print("Converted json doesn't match\n");
-    print('Actual:\n' + dartJson.toString() + '\n');
-    print('Expected:\n' + json.decode(jsonString).toString());
+    print('Actual:\n$dartJson\n');
+    print('Expected:\n${json.decode(jsonString)}');
   }
 }
 
diff --git a/example/c_json/pubspec.yaml b/example/c_json/pubspec.yaml
index e9b7960..1733b5f 100644
--- a/example/c_json/pubspec.yaml
+++ b/example/c_json/pubspec.yaml
@@ -5,49 +5,13 @@
 name: c_json_example
 
 environment:
-  sdk: '>=2.13.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
 dependencies:
-  ffi: ^1.0.0
+  ffi: ^2.0.1
   path: ^1.8.0
 
 dev_dependencies:
   ffigen:
     path: '../../'
-  lints: ^1.0.1
-
-ffigen:
-  output: 'cjson_generated_bindings.dart'
-  name: 'CJson'
-  description: 'Holds bindings to cJSON.'
-  headers:
-    entry-points:
-      - '../../third_party/cjson_library/cJSON.h'
-    include-directives:
-      - '**cJSON.h'
-  comments: false
-  typedef-map:
-    'size_t': 'IntPtr'
-
-  preamble: |
-    // Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
-    //
-    // Permission is hereby granted, free of charge, to any person obtaining a copy
-    // of this software and associated documentation files (the "Software"), to deal
-    // in the Software without restriction, including without limitation the rights
-    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    // copies of the Software, and to permit persons to whom the Software is
-    // furnished to do so, subject to the following conditions:
-    //
-    // The above copyright notice and this permission notice shall be included in
-    // all copies or substantial portions of the Software.
-    //
-    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    // THE SOFTWARE.
-
-    // ignore_for_file: camel_case_types, non_constant_identifier_names
+  lints: ^2.0.1
diff --git a/example/ffinative/.gitignore b/example/ffinative/.gitignore
new file mode 100644
index 0000000..1b05164
--- /dev/null
+++ b/example/ffinative/.gitignore
@@ -0,0 +1,11 @@
+# Files and directories created by pub.
+.dart_tool/
+.packages
+# Remove the following pattern if you wish to check in your lock file.
+pubspec.lock
+
+# Conventional directory for build outputs.
+build/
+
+# Directory created by dartdoc.
+doc/api/
diff --git a/example/ffinative/README.md b/example/ffinative/README.md
new file mode 100644
index 0000000..82b0e88
--- /dev/null
+++ b/example/ffinative/README.md
@@ -0,0 +1,10 @@
+# FfiNatives example
+
+A simple example generating `FfiNative` bindings for a very small header file (`headers/example.h`).
+
+## Generating bindings
+At the root of this example (`example/simple`), run -
+```
+dart run ffigen --config config.yaml
+```
+This will generate bindings in a file: [generated_bindings.dart](./generated_bindings.dart).
diff --git a/example/ffinative/config.yaml b/example/ffinative/config.yaml
new file mode 100644
index 0000000..18aeb3f
--- /dev/null
+++ b/example/ffinative/config.yaml
@@ -0,0 +1,10 @@
+name: NativeLibrary
+ffi-native:
+  # asset: 'assetname' # (optional)
+description: Bindings to `headers/example.h`.
+output: 'generated_bindings.dart'
+headers:
+  entry-points:
+    - 'headers/example.h'
+preamble: |
+  // ignore_for_file: deprecated_member_use
\ No newline at end of file
diff --git a/example/ffinative/generated_bindings.dart b/example/ffinative/generated_bindings.dart
new file mode 100644
index 0000000..1529564
--- /dev/null
+++ b/example/ffinative/generated_bindings.dart
@@ -0,0 +1,43 @@
+// ignore_for_file: deprecated_member_use
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Adds 2 integers.
+@ffi.FfiNative<ffi.Int Function(ffi.Int, ffi.Int)>('sum')
+external int sum(
+  int a,
+  int b,
+);
+
+/// Subtracts 2 integers.
+@ffi.FfiNative<ffi.Int Function(ffi.Int, ffi.Int)>('subtract')
+external int subtract(
+  int a,
+  int b,
+);
+
+/// Multiplies 2 integers, returns pointer to an integer,.
+@ffi.FfiNative<ffi.Pointer<ffi.Int> Function(ffi.Int, ffi.Int)>('multiply')
+external ffi.Pointer<ffi.Int> multiply(
+  int a,
+  int b,
+);
+
+/// Divides 2 integers, returns pointer to a float.
+@ffi.FfiNative<ffi.Pointer<ffi.Float> Function(ffi.Int, ffi.Int)>('divide')
+external ffi.Pointer<ffi.Float> divide(
+  int a,
+  int b,
+);
+
+/// Divides 2 floats, returns a pointer to double.
+@ffi.FfiNative<ffi.Pointer<ffi.Double> Function(ffi.Float, ffi.Float)>(
+    'dividePrecision')
+external ffi.Pointer<ffi.Double> dividePrecision(
+  double a,
+  double b,
+);
diff --git a/example/ffinative/headers/example.h b/example/ffinative/headers/example.h
new file mode 100644
index 0000000..44056dd
--- /dev/null
+++ b/example/ffinative/headers/example.h
@@ -0,0 +1,18 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/** Adds 2 integers. */
+int sum(int a, int b);
+
+/** Subtracts 2 integers. */
+int subtract(int a, int b);
+
+/** Multiplies 2 integers, returns pointer to an integer,. */
+int *multiply(int a, int b);
+
+/** Divides 2 integers, returns pointer to a float. */
+float *divide(int a, int b);
+
+/** Divides 2 floats, returns a pointer to double. */
+double *dividePrecision(float a, float b);
diff --git a/example/ffinative/pubspec.yaml b/example/ffinative/pubspec.yaml
new file mode 100644
index 0000000..2247de4
--- /dev/null
+++ b/example/ffinative/pubspec.yaml
@@ -0,0 +1,15 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: ffinative_example
+
+environment:
+  sdk: '>=2.17.0 <4.0.0'
+
+dependencies:
+  ffi: ^2.0.1
+dev_dependencies:
+  ffigen:
+    path: '../../'
+  lints: ^2.0.0
diff --git a/example/libclang-example/config.yaml b/example/libclang-example/config.yaml
new file mode 100644
index 0000000..f6517c0
--- /dev/null
+++ b/example/libclang-example/config.yaml
@@ -0,0 +1,74 @@
+output: 'generated_bindings.dart'
+
+# This will sort the bindings alphabetically.
+# sort: true
+
+# This is required if LLVM can't be found in default locations by ffigen.
+# llvm-path:
+#   - '/usr/local/opt/llvm'
+
+# Bash style Glob matching is also supported.
+# TODO(11): Globs dont work on windows if they begin with '.' or '..'.
+headers:
+  entry-points:
+    - ../../third_party/libclang/include/clang-c/Index.h
+  include-directives: # use glob syntax to match with header file path.
+    - '**CXString.h'
+    - '**Index.h'
+
+compiler-opts:
+  - '-I../../third_party/libclang/include'
+  - '-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/'
+  - '-Wno-nullability-completeness'
+functions:
+  include:
+    - 'clang_.*' # Can be a regexp, '.' matches any character.
+  symbol-address:
+    include:
+      - 'clang_.*' # Symbol Address for these functions will be exposed via addresses.
+  expose-typedefs:
+    include:
+      - 'clang_.*' # Typedefs for Native and Dart type for these functions will be generated.
+structs:
+  include:
+      - 'CX.*'
+enums:
+  include:
+    - 'CXTypeKind' # Full names are given higher priority than regexp.
+    - 'CXGlobalOptFlags'
+
+library-imports:
+  custom_import: 'custom_import.dart'
+
+# These can be used to map any typedef to a specific native type.
+type-map:
+  typedefs:
+    'time_t':
+      lib: 'ffi'
+      c-type: 'Int64'
+      dart-type: 'int'
+  structs:
+    'CXCursorSetImpl':
+      lib: 'custom_import'
+      c-type: 'CXCursorSetImpl'
+      dart-type: 'CXCursorSetImpl'
+
+# Default is 'NativeLibrary'
+name: 'LibClang'
+
+description: 'Holds bindings to LibClang.'
+
+# Doc Comments for generated binings.
+# Comments can be disabled by using comments: false
+comments:
+  style: doxygen # Options - doxygen(default) / any.
+  length: full # Options - brief / full(default).
+
+# The header of the file, this is pasted as it is.
+preamble: |
+  // Part of the LLVM Project, under the Apache License v2.0 with LLVM
+  // Exceptions.
+  // See https://llvm.org/LICENSE.txt for license information.
+  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+  // ignore_for_file: camel_case_types, non_constant_identifier_names
diff --git a/example/libclang-example/custom_import.dart b/example/libclang-example/custom_import.dart
new file mode 100644
index 0000000..df11af4
--- /dev/null
+++ b/example/libclang-example/custom_import.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+/// Represents a native unsigned pointer-sized integer in C.
+///
+/// [UintPtr] is not constructible in the Dart code and serves purely as marker in
+/// type signatures.
+@AbiSpecificIntegerMapping({
+  Abi.androidArm: Uint32(),
+  Abi.androidArm64: Uint64(),
+  Abi.androidIA32: Uint32(),
+  Abi.androidX64: Uint64(),
+  Abi.fuchsiaArm64: Uint64(),
+  Abi.fuchsiaX64: Uint64(),
+  Abi.iosArm: Uint32(),
+  Abi.iosArm64: Uint64(),
+  Abi.iosX64: Uint64(),
+  Abi.linuxArm: Uint32(),
+  Abi.linuxArm64: Uint64(),
+  Abi.linuxIA32: Uint32(),
+  Abi.linuxX64: Uint64(),
+  Abi.macosArm64: Uint64(),
+  Abi.macosX64: Uint64(),
+  Abi.windowsArm64: Uint64(),
+  Abi.windowsIA32: Uint32(),
+  Abi.windowsX64: Uint64(),
+})
+class UintPtr extends AbiSpecificInteger {
+  const UintPtr();
+}
+
+/// `unsigned long` in C.
+///
+/// [UnsignedLong] is not constructible in the Dart code and serves purely as marker in
+/// type signatures.
+@AbiSpecificIntegerMapping({
+  Abi.androidArm: Uint32(),
+  Abi.androidArm64: Uint64(),
+  Abi.androidIA32: Uint32(),
+  Abi.androidX64: Uint64(),
+  Abi.fuchsiaArm64: Uint64(),
+  Abi.fuchsiaX64: Uint64(),
+  Abi.iosArm: Uint32(),
+  Abi.iosArm64: Uint64(),
+  Abi.iosX64: Uint64(),
+  Abi.linuxArm: Uint32(),
+  Abi.linuxArm64: Uint64(),
+  Abi.linuxIA32: Uint32(),
+  Abi.linuxX64: Uint64(),
+  Abi.macosArm64: Uint64(),
+  Abi.macosX64: Uint64(),
+  Abi.windowsArm64: Uint32(),
+  Abi.windowsIA32: Uint32(),
+  Abi.windowsX64: Uint32(),
+})
+class UnsignedLong extends AbiSpecificInteger {
+  const UnsignedLong();
+}
+
+class CXCursorSetImpl extends Opaque {}
diff --git a/example/libclang-example/generated_bindings.dart b/example/libclang-example/generated_bindings.dart
index 1c7c15b..800c580 100644
--- a/example/libclang-example/generated_bindings.dart
+++ b/example/libclang-example/generated_bindings.dart
@@ -8,7 +8,9 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
+import 'custom_import.dart' as custom_import;
 
 /// Holds bindings to LibClang.
 class LibClang {
@@ -26,7 +28,7 @@
       : _lookup = lookup;
 
   /// Retrieve the character data associated with the given string.
-  ffi.Pointer<ffi.Int8> clang_getCString(
+  ffi.Pointer<ffi.Char> clang_getCString(
     CXString string,
   ) {
     return _clang_getCString(
@@ -194,7 +196,7 @@
   /// libclang invocations are not logged..
   void clang_CXIndex_setInvocationEmissionPathOption(
     CXIndex arg0,
-    ffi.Pointer<ffi.Int8> Path,
+    ffi.Pointer<ffi.Char> Path,
   ) {
     return _clang_CXIndex_setInvocationEmissionPathOption(
       arg0,
@@ -290,7 +292,7 @@
   /// or a NULL file handle if the file was not a part of this translation unit.
   CXFile clang_getFile(
     CXTranslationUnit tu,
-    ffi.Pointer<ffi.Int8> file_name,
+    ffi.Pointer<ffi.Char> file_name,
   ) {
     return _clang_getFile(
       tu,
@@ -312,10 +314,10 @@
   ///
   /// \returns a pointer to the buffer in memory that holds the contents of
   /// \p file, or a NULL pointer when the file is not loaded.
-  ffi.Pointer<ffi.Int8> clang_getFileContents(
+  ffi.Pointer<ffi.Char> clang_getFileContents(
     CXTranslationUnit tu,
     CXFile file,
-    ffi.Pointer<ffi.IntPtr> size,
+    ffi.Pointer<ffi.Size> size,
   ) {
     return _clang_getFileContents(
       tu,
@@ -555,9 +557,9 @@
   void clang_getExpansionLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getExpansionLocation(
       location,
@@ -615,8 +617,8 @@
   void clang_getPresumedLocation(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
   ) {
     return _clang_getPresumedLocation(
       location,
@@ -641,9 +643,9 @@
   void clang_getInstantiationLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getInstantiationLocation(
       location,
@@ -684,9 +686,9 @@
   void clang_getSpellingLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getSpellingLocation(
       location,
@@ -727,9 +729,9 @@
   void clang_getFileLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getFileLocation(
       location,
@@ -881,7 +883,7 @@
   /// \returns A loaded CXDiagnosticSet if successful, and NULL otherwise.  These
   /// diagnostics should be released using clang_disposeDiagnosticSet().
   CXDiagnosticSet clang_loadDiagnostics(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString,
   ) {
@@ -1341,9 +1343,9 @@
   /// guarantee their validity until the call to this function returns.
   CXTranslationUnit clang_createTranslationUnitFromSourceFile(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
+    ffi.Pointer<ffi.Char> source_filename,
     int num_clang_command_line_args,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
     int num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
   ) {
@@ -1370,7 +1372,7 @@
   /// error codes.
   CXTranslationUnit clang_createTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
   ) {
     return _clang_createTranslationUnit(
       CIdx,
@@ -1392,7 +1394,7 @@
   /// \returns Zero on success, otherwise returns an error code.
   int clang_createTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
     ffi.Pointer<CXTranslationUnit> out_TU,
   ) {
     return _clang_createTranslationUnit2(
@@ -1435,8 +1437,8 @@
   /// error codes.
   CXTranslationUnit clang_parseTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1503,8 +1505,8 @@
   /// \returns Zero on success, otherwise returns an error code.
   int clang_parseTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1534,8 +1536,8 @@
   /// library paths are relative to the binary.
   int clang_parseTranslationUnit2FullArgv(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1605,7 +1607,7 @@
   /// saved successfully, while a non-zero value indicates that a problem occurred.
   int clang_saveTranslationUnit(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> FileName,
+    ffi.Pointer<ffi.Char> FileName,
     int options,
   ) {
     return _clang_saveTranslationUnit(
@@ -1736,7 +1738,7 @@
 
   /// Returns the human-readable null-terminated C string that represents
   /// the name of the memory category.  This string should never be freed.
-  ffi.Pointer<ffi.Int8> clang_getTUResourceUsageName(
+  ffi.Pointer<ffi.Char> clang_getTUResourceUsageName(
     int kind,
   ) {
     return _clang_getTUResourceUsageName(
@@ -2208,9 +2210,9 @@
   /// \c min(N, availability_size) such structures.
   int clang_getCursorPlatformAvailability(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size,
@@ -2495,7 +2497,7 @@
   void clang_getOverriddenCursors(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden,
+    ffi.Pointer<ffi.UnsignedInt> num_overridden,
   ) {
     return _clang_getOverriddenCursors(
       cursor,
@@ -3637,7 +3639,7 @@
   /// CXTypeLayoutError_InvalidFieldName is returned.
   int clang_Type_getOffsetOf(
     CXType T,
-    ffi.Pointer<ffi.Int8> S,
+    ffi.Pointer<ffi.Char> S,
   ) {
     return _clang_Type_getOffsetOf(
       T,
@@ -3996,7 +3998,7 @@
 
   /// Construct a USR for a specified Objective-C class.
   CXString clang_constructUSR_ObjCClass(
-    ffi.Pointer<ffi.Int8> class_name,
+    ffi.Pointer<ffi.Char> class_name,
   ) {
     return _clang_constructUSR_ObjCClass(
       class_name,
@@ -4011,8 +4013,8 @@
 
   /// Construct a USR for a specified Objective-C category.
   CXString clang_constructUSR_ObjCCategory(
-    ffi.Pointer<ffi.Int8> class_name,
-    ffi.Pointer<ffi.Int8> category_name,
+    ffi.Pointer<ffi.Char> class_name,
+    ffi.Pointer<ffi.Char> category_name,
   ) {
     return _clang_constructUSR_ObjCCategory(
       class_name,
@@ -4029,7 +4031,7 @@
 
   /// Construct a USR for a specified Objective-C protocol.
   CXString clang_constructUSR_ObjCProtocol(
-    ffi.Pointer<ffi.Int8> protocol_name,
+    ffi.Pointer<ffi.Char> protocol_name,
   ) {
     return _clang_constructUSR_ObjCProtocol(
       protocol_name,
@@ -4046,7 +4048,7 @@
   /// Construct a USR for a specified Objective-C instance variable and
   /// the USR for its containing class.
   CXString clang_constructUSR_ObjCIvar(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCIvar(
@@ -4064,7 +4066,7 @@
   /// Construct a USR for a specified Objective-C method and
   /// the USR for its containing class.
   CXString clang_constructUSR_ObjCMethod(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int isInstanceMethod,
     CXString classUSR,
   ) {
@@ -4084,7 +4086,7 @@
   /// Construct a USR for a specified Objective-C property and the USR
   /// for its containing class.
   CXString clang_constructUSR_ObjCProperty(
-    ffi.Pointer<ffi.Int8> property,
+    ffi.Pointer<ffi.Char> property,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCProperty(
@@ -4558,7 +4560,7 @@
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated,
+    ffi.Pointer<ffi.UnsignedInt> isGenerated,
   ) {
     return _clang_Cursor_isExternalSymbol(
       C,
@@ -5244,7 +5246,7 @@
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens,
+    ffi.Pointer<ffi.UnsignedInt> NumTokens,
   ) {
     return _clang_tokenize(
       TU,
@@ -5348,12 +5350,12 @@
 
   void clang_getDefinitionSpellingAndExtent(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn,
   ) {
     return _clang_getDefinitionSpellingAndExtent(
       arg0,
@@ -5820,7 +5822,7 @@
   /// completion fails, returns NULL.
   ffi.Pointer<CXCodeCompleteResults> clang_codeCompleteAt(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> complete_filename,
+    ffi.Pointer<ffi.Char> complete_filename,
     int complete_line,
     int complete_column,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
@@ -5960,7 +5962,7 @@
   /// container
   int clang_codeCompleteGetContainerKind(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete,
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete,
   ) {
     return _clang_codeCompleteGetContainerKind(
       Results,
@@ -6193,7 +6195,7 @@
   /// kind is other than Int or float. User must not free this pointer,
   /// instead call clang_EvalResult_dispose on the CXEvalResult returned
   /// by clang_Cursor_Evaluate.
-  ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
+  ffi.Pointer<ffi.Char> clang_EvalResult_getAsStr(
     CXEvalResult E,
   ) {
     return _clang_EvalResult_getAsStr(
@@ -6229,7 +6231,7 @@
   /// \returns the requested remapping. This remapping must be freed
   /// via a call to \c clang_remap_dispose(). Can return NULL if an error occurred.
   CXRemapping clang_getRemappings(
-    ffi.Pointer<ffi.Int8> path,
+    ffi.Pointer<ffi.Char> path,
   ) {
     return _clang_getRemappings(
       path,
@@ -6251,7 +6253,7 @@
   /// \returns the requested remapping. This remapping must be freed
   /// via a call to \c clang_remap_dispose(). Can return NULL if an error occurred.
   CXRemapping clang_getRemappingsFromFileList(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths,
     int numFiles,
   ) {
     return _clang_getRemappingsFromFileList(
@@ -6636,8 +6638,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -6675,8 +6677,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -6753,9 +6755,9 @@
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_indexLoc_getFileLocation(
       loc,
@@ -7648,20 +7650,20 @@
 class CXString extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int private_flags;
 }
 
 class CXStringSet extends ffi.Struct {
   external ffi.Pointer<CXString> Strings;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int Count;
 }
 
-typedef NativeClang_getCString = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_getCString = ffi.Pointer<ffi.Char> Function(
     CXString string);
-typedef DartClang_getCString = ffi.Pointer<ffi.Int8> Function(CXString string);
+typedef DartClang_getCString = ffi.Pointer<ffi.Char> Function(CXString string);
 typedef NativeClang_disposeString = ffi.Void Function(CXString string);
 typedef DartClang_disposeString = void Function(CXString string);
 typedef NativeClang_disposeStringSet = ffi.Void Function(
@@ -7682,13 +7684,13 @@
   /// The file whose contents have not yet been saved.
   ///
   /// This file must already exist in the file system.
-  external ffi.Pointer<ffi.Int8> Filename;
+  external ffi.Pointer<ffi.Char> Filename;
 
   /// A buffer containing the unsaved contents of this file.
-  external ffi.Pointer<ffi.Int8> Contents;
+  external ffi.Pointer<ffi.Char> Contents;
 
   /// The length of the unsaved contents of this buffer.
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int Length;
 }
 
@@ -7696,19 +7698,19 @@
 class CXVersion extends ffi.Struct {
   /// The major version number, e.g., the '10' in '10.7.3'. A negative
   /// value indicates that there is no version number at all.
-  @ffi.Int32()
+  @ffi.Int()
   external int Major;
 
   /// The minor version number, e.g., the '7' in '10.7.3'. This value
   /// will be negative if no minor version number was provided, e.g., for
   /// version '10'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Minor;
 
   /// The subminor version number, e.g., the '3' in '10.7.3'. This value
   /// will be negative if no minor or subminor version number was provided,
   /// e.g., in version '10' or '10.7'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Subminor;
 }
 
@@ -7716,7 +7718,7 @@
 /// typically be linked together into an executable or library.
 typedef CXIndex = ffi.Pointer<ffi.Void>;
 typedef NativeClang_createIndex = CXIndex Function(
-    ffi.Int32 excludeDeclarationsFromPCH, ffi.Int32 displayDiagnostics);
+    ffi.Int excludeDeclarationsFromPCH, ffi.Int displayDiagnostics);
 typedef DartClang_createIndex = CXIndex Function(
     int excludeDeclarationsFromPCH, int displayDiagnostics);
 typedef NativeClang_disposeIndex = ffi.Void Function(CXIndex index);
@@ -7746,16 +7748,16 @@
 }
 
 typedef NativeClang_CXIndex_setGlobalOptions = ffi.Void Function(
-    CXIndex arg0, ffi.Uint32 options);
+    CXIndex arg0, ffi.UnsignedInt options);
 typedef DartClang_CXIndex_setGlobalOptions = void Function(
     CXIndex arg0, int options);
-typedef NativeClang_CXIndex_getGlobalOptions = ffi.Uint32 Function(
+typedef NativeClang_CXIndex_getGlobalOptions = ffi.UnsignedInt Function(
     CXIndex arg0);
 typedef DartClang_CXIndex_getGlobalOptions = int Function(CXIndex arg0);
 typedef NativeClang_CXIndex_setInvocationEmissionPathOption = ffi.Void Function(
-    CXIndex arg0, ffi.Pointer<ffi.Int8> Path);
+    CXIndex arg0, ffi.Pointer<ffi.Char> Path);
 typedef DartClang_CXIndex_setInvocationEmissionPathOption = void Function(
-    CXIndex arg0, ffi.Pointer<ffi.Int8> Path);
+    CXIndex arg0, ffi.Pointer<ffi.Char> Path);
 
 /// A particular source file that is part of a translation unit.
 typedef CXFile = ffi.Pointer<ffi.Void>;
@@ -7768,30 +7770,29 @@
 /// across an indexing session.
 class CXFileUniqueID extends ffi.Struct {
   @ffi.Array.multi([3])
-  external ffi.Array<ffi.Uint64> data;
+  external ffi.Array<ffi.UnsignedLongLong> data;
 }
 
-typedef NativeClang_getFileUniqueID = ffi.Int32 Function(
+typedef NativeClang_getFileUniqueID = ffi.Int Function(
     CXFile file, ffi.Pointer<CXFileUniqueID> outID);
 typedef DartClang_getFileUniqueID = int Function(
     CXFile file, ffi.Pointer<CXFileUniqueID> outID);
 
 /// A single translation unit, which resides in an index.
 typedef CXTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>;
-typedef NativeClang_isFileMultipleIncludeGuarded = ffi.Uint32 Function(
+typedef NativeClang_isFileMultipleIncludeGuarded = ffi.UnsignedInt Function(
     CXTranslationUnit tu, CXFile file);
 typedef DartClang_isFileMultipleIncludeGuarded = int Function(
     CXTranslationUnit tu, CXFile file);
 typedef NativeClang_getFile = CXFile Function(
-    CXTranslationUnit tu, ffi.Pointer<ffi.Int8> file_name);
+    CXTranslationUnit tu, ffi.Pointer<ffi.Char> file_name);
 typedef DartClang_getFile = CXFile Function(
-    CXTranslationUnit tu, ffi.Pointer<ffi.Int8> file_name);
-typedef NativeClang_getFileContents = ffi.Pointer<ffi.Int8> Function(
-    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.IntPtr> size);
-typedef DartClang_getFileContents = ffi.Pointer<ffi.Int8> Function(
-    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.IntPtr> size);
-typedef NativeClang_File_isEqual = ffi.Int32 Function(
-    CXFile file1, CXFile file2);
+    CXTranslationUnit tu, ffi.Pointer<ffi.Char> file_name);
+typedef NativeClang_getFileContents = ffi.Pointer<ffi.Char> Function(
+    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.Size> size);
+typedef DartClang_getFileContents = ffi.Pointer<ffi.Char> Function(
+    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.Size> size);
+typedef NativeClang_File_isEqual = ffi.Int Function(CXFile file1, CXFile file2);
 typedef DartClang_File_isEqual = int Function(CXFile file1, CXFile file2);
 typedef NativeClang_File_tryGetRealPathName = CXString Function(CXFile file);
 typedef DartClang_File_tryGetRealPathName = CXString Function(CXFile file);
@@ -7805,7 +7806,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -7817,32 +7818,35 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int begin_int_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int end_int_data;
 }
 
 typedef NativeClang_getNullLocation = CXSourceLocation Function();
 typedef DartClang_getNullLocation = CXSourceLocation Function();
-typedef NativeClang_equalLocations = ffi.Uint32 Function(
+typedef NativeClang_equalLocations = ffi.UnsignedInt Function(
     CXSourceLocation loc1, CXSourceLocation loc2);
 typedef DartClang_equalLocations = int Function(
     CXSourceLocation loc1, CXSourceLocation loc2);
 typedef NativeClang_getLocation = CXSourceLocation Function(
-    CXTranslationUnit tu, CXFile file, ffi.Uint32 line, ffi.Uint32 column);
+    CXTranslationUnit tu,
+    CXFile file,
+    ffi.UnsignedInt line,
+    ffi.UnsignedInt column);
 typedef DartClang_getLocation = CXSourceLocation Function(
     CXTranslationUnit tu, CXFile file, int line, int column);
 typedef NativeClang_getLocationForOffset = CXSourceLocation Function(
-    CXTranslationUnit tu, CXFile file, ffi.Uint32 offset);
+    CXTranslationUnit tu, CXFile file, ffi.UnsignedInt offset);
 typedef DartClang_getLocationForOffset = CXSourceLocation Function(
     CXTranslationUnit tu, CXFile file, int offset);
-typedef NativeClang_Location_isInSystemHeader = ffi.Int32 Function(
+typedef NativeClang_Location_isInSystemHeader = ffi.Int Function(
     CXSourceLocation location);
 typedef DartClang_Location_isInSystemHeader = int Function(
     CXSourceLocation location);
-typedef NativeClang_Location_isFromMainFile = ffi.Int32 Function(
+typedef NativeClang_Location_isFromMainFile = ffi.Int Function(
     CXSourceLocation location);
 typedef DartClang_Location_isFromMainFile = int Function(
     CXSourceLocation location);
@@ -7852,70 +7856,70 @@
     CXSourceLocation begin, CXSourceLocation end);
 typedef DartClang_getRange = CXSourceRange Function(
     CXSourceLocation begin, CXSourceLocation end);
-typedef NativeClang_equalRanges = ffi.Uint32 Function(
+typedef NativeClang_equalRanges = ffi.UnsignedInt Function(
     CXSourceRange range1, CXSourceRange range2);
 typedef DartClang_equalRanges = int Function(
     CXSourceRange range1, CXSourceRange range2);
-typedef NativeClang_Range_isNull = ffi.Int32 Function(CXSourceRange range);
+typedef NativeClang_Range_isNull = ffi.Int Function(CXSourceRange range);
 typedef DartClang_Range_isNull = int Function(CXSourceRange range);
 typedef NativeClang_getExpansionLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getExpansionLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getPresumedLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column);
 typedef DartClang_getPresumedLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column);
 typedef NativeClang_getInstantiationLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getInstantiationLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getSpellingLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getSpellingLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getFileLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getFileLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getRangeStart = CXSourceLocation Function(
     CXSourceRange range);
 typedef DartClang_getRangeStart = CXSourceLocation Function(
@@ -7927,7 +7931,7 @@
 /// Identifies an array of ranges.
 class CXSourceRangeList extends ffi.Struct {
   /// The number of ranges in the \c ranges array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int count;
 
   /// An array of \c CXSourceRanges.
@@ -7949,7 +7953,7 @@
 
 /// A group of CXDiagnostics.
 typedef CXDiagnosticSet = ffi.Pointer<ffi.Void>;
-typedef NativeClang_getNumDiagnosticsInSet = ffi.Uint32 Function(
+typedef NativeClang_getNumDiagnosticsInSet = ffi.UnsignedInt Function(
     CXDiagnosticSet Diags);
 typedef DartClang_getNumDiagnosticsInSet = int Function(CXDiagnosticSet Diags);
 
@@ -7957,7 +7961,7 @@
 /// location, text, source ranges, and fix-it hints.
 typedef CXDiagnostic = ffi.Pointer<ffi.Void>;
 typedef NativeClang_getDiagnosticInSet = CXDiagnostic Function(
-    CXDiagnosticSet Diags, ffi.Uint32 Index);
+    CXDiagnosticSet Diags, ffi.UnsignedInt Index);
 typedef DartClang_getDiagnosticInSet = CXDiagnostic Function(
     CXDiagnosticSet Diags, int Index);
 
@@ -7981,11 +7985,11 @@
 }
 
 typedef NativeClang_loadDiagnostics = CXDiagnosticSet Function(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString);
 typedef DartClang_loadDiagnostics = CXDiagnosticSet Function(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString);
 typedef NativeClang_disposeDiagnosticSet = ffi.Void Function(
@@ -7995,11 +7999,11 @@
     CXDiagnostic D);
 typedef DartClang_getChildDiagnostics = CXDiagnosticSet Function(
     CXDiagnostic D);
-typedef NativeClang_getNumDiagnostics = ffi.Uint32 Function(
+typedef NativeClang_getNumDiagnostics = ffi.UnsignedInt Function(
     CXTranslationUnit Unit);
 typedef DartClang_getNumDiagnostics = int Function(CXTranslationUnit Unit);
 typedef NativeClang_getDiagnostic = CXDiagnostic Function(
-    CXTranslationUnit Unit, ffi.Uint32 Index);
+    CXTranslationUnit Unit, ffi.UnsignedInt Index);
 typedef DartClang_getDiagnostic = CXDiagnostic Function(
     CXTranslationUnit Unit, int Index);
 typedef NativeClang_getDiagnosticSetFromTU = CXDiagnosticSet Function(
@@ -8010,10 +8014,11 @@
     CXDiagnostic Diagnostic);
 typedef DartClang_disposeDiagnostic = void Function(CXDiagnostic Diagnostic);
 typedef NativeClang_formatDiagnostic = CXString Function(
-    CXDiagnostic Diagnostic, ffi.Uint32 Options);
+    CXDiagnostic Diagnostic, ffi.UnsignedInt Options);
 typedef DartClang_formatDiagnostic = CXString Function(
     CXDiagnostic Diagnostic, int Options);
-typedef NativeClang_defaultDiagnosticDisplayOptions = ffi.Uint32 Function();
+typedef NativeClang_defaultDiagnosticDisplayOptions = ffi.UnsignedInt
+    Function();
 typedef DartClang_defaultDiagnosticDisplayOptions = int Function();
 
 /// Describes the severity of a particular diagnostic.
@@ -8053,30 +8058,30 @@
     CXDiagnostic Diag, ffi.Pointer<CXString> Disable);
 typedef DartClang_getDiagnosticOption = CXString Function(
     CXDiagnostic Diag, ffi.Pointer<CXString> Disable);
-typedef NativeClang_getDiagnosticCategory = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticCategory = ffi.UnsignedInt Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticCategory = int Function(CXDiagnostic arg0);
 typedef NativeClang_getDiagnosticCategoryName = CXString Function(
-    ffi.Uint32 Category);
+    ffi.UnsignedInt Category);
 typedef DartClang_getDiagnosticCategoryName = CXString Function(int Category);
 typedef NativeClang_getDiagnosticCategoryText = CXString Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticCategoryText = CXString Function(
     CXDiagnostic arg0);
-typedef NativeClang_getDiagnosticNumRanges = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticNumRanges = ffi.UnsignedInt Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticNumRanges = int Function(CXDiagnostic arg0);
 typedef NativeClang_getDiagnosticRange = CXSourceRange Function(
-    CXDiagnostic Diagnostic, ffi.Uint32 Range);
+    CXDiagnostic Diagnostic, ffi.UnsignedInt Range);
 typedef DartClang_getDiagnosticRange = CXSourceRange Function(
     CXDiagnostic Diagnostic, int Range);
-typedef NativeClang_getDiagnosticNumFixIts = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticNumFixIts = ffi.UnsignedInt Function(
     CXDiagnostic Diagnostic);
 typedef DartClang_getDiagnosticNumFixIts = int Function(
     CXDiagnostic Diagnostic);
 typedef NativeClang_getDiagnosticFixIt = CXString Function(
     CXDiagnostic Diagnostic,
-    ffi.Uint32 FixIt,
+    ffi.UnsignedInt FixIt,
     ffi.Pointer<CXSourceRange> ReplacementRange);
 typedef DartClang_getDiagnosticFixIt = CXString Function(
     CXDiagnostic Diagnostic,
@@ -8089,23 +8094,23 @@
 typedef NativeClang_createTranslationUnitFromSourceFile
     = CXTranslationUnit Function(
         CXIndex CIdx,
-        ffi.Pointer<ffi.Int8> source_filename,
-        ffi.Int32 num_clang_command_line_args,
-        ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
-        ffi.Uint32 num_unsaved_files,
+        ffi.Pointer<ffi.Char> source_filename,
+        ffi.Int num_clang_command_line_args,
+        ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
+        ffi.UnsignedInt num_unsaved_files,
         ffi.Pointer<CXUnsavedFile> unsaved_files);
 typedef DartClang_createTranslationUnitFromSourceFile
     = CXTranslationUnit Function(
         CXIndex CIdx,
-        ffi.Pointer<ffi.Int8> source_filename,
+        ffi.Pointer<ffi.Char> source_filename,
         int num_clang_command_line_args,
-        ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
+        ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
         int num_unsaved_files,
         ffi.Pointer<CXUnsavedFile> unsaved_files);
 typedef NativeClang_createTranslationUnit = CXTranslationUnit Function(
-    CXIndex CIdx, ffi.Pointer<ffi.Int8> ast_filename);
+    CXIndex CIdx, ffi.Pointer<ffi.Char> ast_filename);
 typedef DartClang_createTranslationUnit = CXTranslationUnit Function(
-    CXIndex CIdx, ffi.Pointer<ffi.Int8> ast_filename);
+    CXIndex CIdx, ffi.Pointer<ffi.Char> ast_filename);
 
 /// Error codes returned by libclang routines.
 ///
@@ -8133,41 +8138,41 @@
 }
 
 typedef NativeClang_createTranslationUnit2 = ffi.Int32 Function(CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
+    ffi.Pointer<ffi.Char> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_createTranslationUnit2 = int Function(CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
-typedef NativeClang_defaultEditingTranslationUnitOptions = ffi.Uint32
+    ffi.Pointer<ffi.Char> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
+typedef NativeClang_defaultEditingTranslationUnitOptions = ffi.UnsignedInt
     Function();
 typedef DartClang_defaultEditingTranslationUnitOptions = int Function();
 typedef NativeClang_parseTranslationUnit = CXTranslationUnit Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options);
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options);
 typedef DartClang_parseTranslationUnit = CXTranslationUnit Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options);
 typedef NativeClang_parseTranslationUnit2 = ffi.Int32 Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options,
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options,
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_parseTranslationUnit2 = int Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -8175,44 +8180,44 @@
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef NativeClang_parseTranslationUnit2FullArgv = ffi.Int32 Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options,
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options,
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_parseTranslationUnit2FullArgv = int Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options,
     ffi.Pointer<CXTranslationUnit> out_TU);
-typedef NativeClang_defaultSaveOptions = ffi.Uint32 Function(
+typedef NativeClang_defaultSaveOptions = ffi.UnsignedInt Function(
     CXTranslationUnit TU);
 typedef DartClang_defaultSaveOptions = int Function(CXTranslationUnit TU);
-typedef NativeClang_saveTranslationUnit = ffi.Int32 Function(
-    CXTranslationUnit TU, ffi.Pointer<ffi.Int8> FileName, ffi.Uint32 options);
+typedef NativeClang_saveTranslationUnit = ffi.Int Function(CXTranslationUnit TU,
+    ffi.Pointer<ffi.Char> FileName, ffi.UnsignedInt options);
 typedef DartClang_saveTranslationUnit = int Function(
-    CXTranslationUnit TU, ffi.Pointer<ffi.Int8> FileName, int options);
-typedef NativeClang_suspendTranslationUnit = ffi.Uint32 Function(
+    CXTranslationUnit TU, ffi.Pointer<ffi.Char> FileName, int options);
+typedef NativeClang_suspendTranslationUnit = ffi.UnsignedInt Function(
     CXTranslationUnit arg0);
 typedef DartClang_suspendTranslationUnit = int Function(CXTranslationUnit arg0);
 typedef NativeClang_disposeTranslationUnit = ffi.Void Function(
     CXTranslationUnit arg0);
 typedef DartClang_disposeTranslationUnit = void Function(
     CXTranslationUnit arg0);
-typedef NativeClang_defaultReparseOptions = ffi.Uint32 Function(
+typedef NativeClang_defaultReparseOptions = ffi.UnsignedInt Function(
     CXTranslationUnit TU);
 typedef DartClang_defaultReparseOptions = int Function(CXTranslationUnit TU);
-typedef NativeClang_reparseTranslationUnit = ffi.Int32 Function(
+typedef NativeClang_reparseTranslationUnit = ffi.Int Function(
     CXTranslationUnit TU,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 options);
+    ffi.UnsignedInt options);
 typedef DartClang_reparseTranslationUnit = int Function(
     CXTranslationUnit TU,
     int num_unsaved_files,
@@ -8241,16 +8246,16 @@
   static const int CXTUResourceUsage_Last = 14;
 }
 
-typedef NativeClang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_getTUResourceUsageName = ffi.Pointer<ffi.Char> Function(
     ffi.Int32 kind);
-typedef DartClang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
+typedef DartClang_getTUResourceUsageName = ffi.Pointer<ffi.Char> Function(
     int kind);
 
 class CXTUResourceUsageEntry extends ffi.Struct {
   @ffi.Int32()
   external int kind;
 
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int amount;
 }
 
@@ -8258,7 +8263,7 @@
 class CXTUResourceUsage extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numEntries;
 
   external ffi.Pointer<CXTUResourceUsageEntry> entries;
@@ -8284,7 +8289,7 @@
 typedef DartClang_TargetInfo_dispose = void Function(CXTargetInfo Info);
 typedef NativeClang_TargetInfo_getTriple = CXString Function(CXTargetInfo Info);
 typedef DartClang_TargetInfo_getTriple = CXString Function(CXTargetInfo Info);
-typedef NativeClang_TargetInfo_getPointerWidth = ffi.Int32 Function(
+typedef NativeClang_TargetInfo_getPointerWidth = ffi.Int Function(
     CXTargetInfo Info);
 typedef DartClang_TargetInfo_getPointerWidth = int Function(CXTargetInfo Info);
 
@@ -8308,7 +8313,7 @@
   @ffi.Int32()
   external int kind;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int xdata;
 
   @ffi.Array.multi([3])
@@ -9107,36 +9112,38 @@
     CXTranslationUnit arg0);
 typedef DartClang_getTranslationUnitCursor = CXCursor Function(
     CXTranslationUnit arg0);
-typedef NativeClang_equalCursors = ffi.Uint32 Function(
+typedef NativeClang_equalCursors = ffi.UnsignedInt Function(
     CXCursor arg0, CXCursor arg1);
 typedef DartClang_equalCursors = int Function(CXCursor arg0, CXCursor arg1);
-typedef NativeClang_Cursor_isNull = ffi.Int32 Function(CXCursor cursor);
+typedef NativeClang_Cursor_isNull = ffi.Int Function(CXCursor cursor);
 typedef DartClang_Cursor_isNull = int Function(CXCursor cursor);
-typedef NativeClang_hashCursor = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_hashCursor = ffi.UnsignedInt Function(CXCursor arg0);
 typedef DartClang_hashCursor = int Function(CXCursor arg0);
 typedef NativeClang_getCursorKind = ffi.Int32 Function(CXCursor arg0);
 typedef DartClang_getCursorKind = int Function(CXCursor arg0);
-typedef NativeClang_isDeclaration = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isDeclaration = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isDeclaration = int Function(int arg0);
-typedef NativeClang_isInvalidDeclaration = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isInvalidDeclaration = ffi.UnsignedInt Function(
+    CXCursor arg0);
 typedef DartClang_isInvalidDeclaration = int Function(CXCursor arg0);
-typedef NativeClang_isReference = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isReference = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isReference = int Function(int arg0);
-typedef NativeClang_isExpression = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isExpression = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isExpression = int Function(int arg0);
-typedef NativeClang_isStatement = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isStatement = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isStatement = int Function(int arg0);
-typedef NativeClang_isAttribute = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isAttribute = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isAttribute = int Function(int arg0);
-typedef NativeClang_Cursor_hasAttrs = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_hasAttrs = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_hasAttrs = int Function(CXCursor C);
-typedef NativeClang_isInvalid = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isInvalid = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isInvalid = int Function(int arg0);
-typedef NativeClang_isTranslationUnit = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isTranslationUnit = ffi.UnsignedInt Function(
+    ffi.Int32 arg0);
 typedef DartClang_isTranslationUnit = int Function(int arg0);
-typedef NativeClang_isPreprocessing = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isPreprocessing = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isPreprocessing = int Function(int arg0);
-typedef NativeClang_isUnexposed = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isUnexposed = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isUnexposed = int Function(int arg0);
 
 /// Describe the linkage of the entity referred to by a cursor.
@@ -9224,7 +9231,7 @@
   external CXVersion Obsoleted;
 
   /// Whether the entity is unconditionally unavailable on this platform.
-  @ffi.Int32()
+  @ffi.Int()
   external int Unavailable;
 
   /// An optional message to provide to a user of this API, e.g., to
@@ -9232,19 +9239,19 @@
   external CXString Message;
 }
 
-typedef NativeClang_getCursorPlatformAvailability = ffi.Int32 Function(
+typedef NativeClang_getCursorPlatformAvailability = ffi.Int Function(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
-    ffi.Int32 availability_size);
+    ffi.Int availability_size);
 typedef DartClang_getCursorPlatformAvailability = int Function(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size);
@@ -9279,19 +9286,17 @@
 typedef DartClang_Cursor_getTranslationUnit = CXTranslationUnit Function(
     CXCursor arg0);
 
-class CXCursorSetImpl extends ffi.Opaque {}
-
 /// A fast container representing a set of CXCursors.
-typedef CXCursorSet = ffi.Pointer<CXCursorSetImpl>;
+typedef CXCursorSet = ffi.Pointer<custom_import.CXCursorSetImpl>;
 typedef NativeClang_createCXCursorSet = CXCursorSet Function();
 typedef DartClang_createCXCursorSet = CXCursorSet Function();
 typedef NativeClang_disposeCXCursorSet = ffi.Void Function(CXCursorSet cset);
 typedef DartClang_disposeCXCursorSet = void Function(CXCursorSet cset);
-typedef NativeClang_CXCursorSet_contains = ffi.Uint32 Function(
+typedef NativeClang_CXCursorSet_contains = ffi.UnsignedInt Function(
     CXCursorSet cset, CXCursor cursor);
 typedef DartClang_CXCursorSet_contains = int Function(
     CXCursorSet cset, CXCursor cursor);
-typedef NativeClang_CXCursorSet_insert = ffi.Uint32 Function(
+typedef NativeClang_CXCursorSet_insert = ffi.UnsignedInt Function(
     CXCursorSet cset, CXCursor cursor);
 typedef DartClang_CXCursorSet_insert = int Function(
     CXCursorSet cset, CXCursor cursor);
@@ -9303,11 +9308,11 @@
 typedef NativeClang_getOverriddenCursors = ffi.Void Function(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden);
+    ffi.Pointer<ffi.UnsignedInt> num_overridden);
 typedef DartClang_getOverriddenCursors = void Function(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden);
+    ffi.Pointer<ffi.UnsignedInt> num_overridden);
 typedef NativeClang_disposeOverriddenCursors = ffi.Void Function(
     ffi.Pointer<CXCursor> overridden);
 typedef DartClang_disposeOverriddenCursors = void Function(
@@ -9471,19 +9476,20 @@
 typedef DartClang_getTypedefDeclUnderlyingType = CXType Function(CXCursor C);
 typedef NativeClang_getEnumDeclIntegerType = CXType Function(CXCursor C);
 typedef DartClang_getEnumDeclIntegerType = CXType Function(CXCursor C);
-typedef NativeClang_getEnumConstantDeclValue = ffi.Int64 Function(CXCursor C);
-typedef DartClang_getEnumConstantDeclValue = int Function(CXCursor C);
-typedef NativeClang_getEnumConstantDeclUnsignedValue = ffi.Uint64 Function(
+typedef NativeClang_getEnumConstantDeclValue = ffi.LongLong Function(
     CXCursor C);
+typedef DartClang_getEnumConstantDeclValue = int Function(CXCursor C);
+typedef NativeClang_getEnumConstantDeclUnsignedValue = ffi.UnsignedLongLong
+    Function(CXCursor C);
 typedef DartClang_getEnumConstantDeclUnsignedValue = int Function(CXCursor C);
-typedef NativeClang_getFieldDeclBitWidth = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_getFieldDeclBitWidth = ffi.Int Function(CXCursor C);
 typedef DartClang_getFieldDeclBitWidth = int Function(CXCursor C);
-typedef NativeClang_Cursor_getNumArguments = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_Cursor_getNumArguments = ffi.Int Function(CXCursor C);
 typedef DartClang_Cursor_getNumArguments = int Function(CXCursor C);
 typedef NativeClang_Cursor_getArgument = CXCursor Function(
-    CXCursor C, ffi.Uint32 i);
+    CXCursor C, ffi.UnsignedInt i);
 typedef DartClang_Cursor_getArgument = CXCursor Function(CXCursor C, int i);
-typedef NativeClang_Cursor_getNumTemplateArguments = ffi.Int32 Function(
+typedef NativeClang_Cursor_getNumTemplateArguments = ffi.Int Function(
     CXCursor C);
 typedef DartClang_Cursor_getNumTemplateArguments = int Function(CXCursor C);
 
@@ -9505,39 +9511,43 @@
 }
 
 typedef NativeClang_Cursor_getTemplateArgumentKind = ffi.Int32 Function(
-    CXCursor C, ffi.Uint32 I);
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentKind = int Function(
     CXCursor C, int I);
 typedef NativeClang_Cursor_getTemplateArgumentType = CXType Function(
-    CXCursor C, ffi.Uint32 I);
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentType = CXType Function(
     CXCursor C, int I);
-typedef NativeClang_Cursor_getTemplateArgumentValue = ffi.Int64 Function(
-    CXCursor C, ffi.Uint32 I);
+typedef NativeClang_Cursor_getTemplateArgumentValue = ffi.LongLong Function(
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentValue = int Function(
     CXCursor C, int I);
-typedef NativeClang_Cursor_getTemplateArgumentUnsignedValue = ffi.Uint64
-    Function(CXCursor C, ffi.Uint32 I);
+typedef NativeClang_Cursor_getTemplateArgumentUnsignedValue
+    = ffi.UnsignedLongLong Function(CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentUnsignedValue = int Function(
     CXCursor C, int I);
-typedef NativeClang_equalTypes = ffi.Uint32 Function(CXType A, CXType B);
+typedef NativeClang_equalTypes = ffi.UnsignedInt Function(CXType A, CXType B);
 typedef DartClang_equalTypes = int Function(CXType A, CXType B);
 typedef NativeClang_getCanonicalType = CXType Function(CXType T);
 typedef DartClang_getCanonicalType = CXType Function(CXType T);
-typedef NativeClang_isConstQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isConstQualifiedType = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isConstQualifiedType = int Function(CXType T);
-typedef NativeClang_Cursor_isMacroFunctionLike = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isMacroFunctionLike = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_isMacroFunctionLike = int Function(CXCursor C);
-typedef NativeClang_Cursor_isMacroBuiltin = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isMacroBuiltin = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isMacroBuiltin = int Function(CXCursor C);
-typedef NativeClang_Cursor_isFunctionInlined = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isFunctionInlined = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isFunctionInlined = int Function(CXCursor C);
-typedef NativeClang_isVolatileQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isVolatileQualifiedType = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_isVolatileQualifiedType = int Function(CXType T);
-typedef NativeClang_isRestrictQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isRestrictQualifiedType = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_isRestrictQualifiedType = int Function(CXType T);
-typedef NativeClang_getAddressSpace = ffi.Uint32 Function(CXType T);
+typedef NativeClang_getAddressSpace = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_getAddressSpace = int Function(CXType T);
 typedef NativeClang_getTypedefName = CXString Function(CXType CT);
 typedef DartClang_getTypedefName = CXString Function(CXType CT);
@@ -9580,46 +9590,47 @@
 typedef DartClang_getFunctionTypeCallingConv = int Function(CXType T);
 typedef NativeClang_getResultType = CXType Function(CXType T);
 typedef DartClang_getResultType = CXType Function(CXType T);
-typedef NativeClang_getExceptionSpecificationType = ffi.Int32 Function(
-    CXType T);
+typedef NativeClang_getExceptionSpecificationType = ffi.Int Function(CXType T);
 typedef DartClang_getExceptionSpecificationType = int Function(CXType T);
-typedef NativeClang_getNumArgTypes = ffi.Int32 Function(CXType T);
+typedef NativeClang_getNumArgTypes = ffi.Int Function(CXType T);
 typedef DartClang_getNumArgTypes = int Function(CXType T);
-typedef NativeClang_getArgType = CXType Function(CXType T, ffi.Uint32 i);
+typedef NativeClang_getArgType = CXType Function(CXType T, ffi.UnsignedInt i);
 typedef DartClang_getArgType = CXType Function(CXType T, int i);
 typedef NativeClang_Type_getObjCObjectBaseType = CXType Function(CXType T);
 typedef DartClang_Type_getObjCObjectBaseType = CXType Function(CXType T);
-typedef NativeClang_Type_getNumObjCProtocolRefs = ffi.Uint32 Function(CXType T);
+typedef NativeClang_Type_getNumObjCProtocolRefs = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_Type_getNumObjCProtocolRefs = int Function(CXType T);
 typedef NativeClang_Type_getObjCProtocolDecl = CXCursor Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getObjCProtocolDecl = CXCursor Function(CXType T, int i);
-typedef NativeClang_Type_getNumObjCTypeArgs = ffi.Uint32 Function(CXType T);
+typedef NativeClang_Type_getNumObjCTypeArgs = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_Type_getNumObjCTypeArgs = int Function(CXType T);
 typedef NativeClang_Type_getObjCTypeArg = CXType Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getObjCTypeArg = CXType Function(CXType T, int i);
-typedef NativeClang_isFunctionTypeVariadic = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isFunctionTypeVariadic = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isFunctionTypeVariadic = int Function(CXType T);
 typedef NativeClang_getCursorResultType = CXType Function(CXCursor C);
 typedef DartClang_getCursorResultType = CXType Function(CXCursor C);
-typedef NativeClang_getCursorExceptionSpecificationType = ffi.Int32 Function(
+typedef NativeClang_getCursorExceptionSpecificationType = ffi.Int Function(
     CXCursor C);
 typedef DartClang_getCursorExceptionSpecificationType = int Function(
     CXCursor C);
-typedef NativeClang_isPODType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isPODType = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isPODType = int Function(CXType T);
 typedef NativeClang_getElementType = CXType Function(CXType T);
 typedef DartClang_getElementType = CXType Function(CXType T);
-typedef NativeClang_getNumElements = ffi.Int64 Function(CXType T);
+typedef NativeClang_getNumElements = ffi.LongLong Function(CXType T);
 typedef DartClang_getNumElements = int Function(CXType T);
 typedef NativeClang_getArrayElementType = CXType Function(CXType T);
 typedef DartClang_getArrayElementType = CXType Function(CXType T);
-typedef NativeClang_getArraySize = ffi.Int64 Function(CXType T);
+typedef NativeClang_getArraySize = ffi.LongLong Function(CXType T);
 typedef DartClang_getArraySize = int Function(CXType T);
 typedef NativeClang_Type_getNamedType = CXType Function(CXType T);
 typedef DartClang_Type_getNamedType = CXType Function(CXType T);
-typedef NativeClang_Type_isTransparentTagTypedef = ffi.Uint32 Function(
+typedef NativeClang_Type_isTransparentTagTypedef = ffi.UnsignedInt Function(
     CXType T);
 typedef DartClang_Type_isTransparentTagTypedef = int Function(CXType T);
 
@@ -9642,31 +9653,32 @@
 
 typedef NativeClang_Type_getNullability = ffi.Int32 Function(CXType T);
 typedef DartClang_Type_getNullability = int Function(CXType T);
-typedef NativeClang_Type_getAlignOf = ffi.Int64 Function(CXType T);
+typedef NativeClang_Type_getAlignOf = ffi.LongLong Function(CXType T);
 typedef DartClang_Type_getAlignOf = int Function(CXType T);
 typedef NativeClang_Type_getClassType = CXType Function(CXType T);
 typedef DartClang_Type_getClassType = CXType Function(CXType T);
-typedef NativeClang_Type_getSizeOf = ffi.Int64 Function(CXType T);
+typedef NativeClang_Type_getSizeOf = ffi.LongLong Function(CXType T);
 typedef DartClang_Type_getSizeOf = int Function(CXType T);
-typedef NativeClang_Type_getOffsetOf = ffi.Int64 Function(
-    CXType T, ffi.Pointer<ffi.Int8> S);
+typedef NativeClang_Type_getOffsetOf = ffi.LongLong Function(
+    CXType T, ffi.Pointer<ffi.Char> S);
 typedef DartClang_Type_getOffsetOf = int Function(
-    CXType T, ffi.Pointer<ffi.Int8> S);
+    CXType T, ffi.Pointer<ffi.Char> S);
 typedef NativeClang_Type_getModifiedType = CXType Function(CXType T);
 typedef DartClang_Type_getModifiedType = CXType Function(CXType T);
-typedef NativeClang_Cursor_getOffsetOfField = ffi.Int64 Function(CXCursor C);
+typedef NativeClang_Cursor_getOffsetOfField = ffi.LongLong Function(CXCursor C);
 typedef DartClang_Cursor_getOffsetOfField = int Function(CXCursor C);
-typedef NativeClang_Cursor_isAnonymous = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isAnonymous = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isAnonymous = int Function(CXCursor C);
-typedef NativeClang_Cursor_isAnonymousRecordDecl = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isAnonymousRecordDecl = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_isAnonymousRecordDecl = int Function(CXCursor C);
-typedef NativeClang_Cursor_isInlineNamespace = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isInlineNamespace = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isInlineNamespace = int Function(CXCursor C);
-typedef NativeClang_Type_getNumTemplateArguments = ffi.Int32 Function(CXType T);
+typedef NativeClang_Type_getNumTemplateArguments = ffi.Int Function(CXType T);
 typedef DartClang_Type_getNumTemplateArguments = int Function(CXType T);
 typedef NativeClang_Type_getTemplateArgumentAsType = CXType Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getTemplateArgumentAsType = CXType Function(
     CXType T, int i);
 
@@ -9683,9 +9695,9 @@
 
 typedef NativeClang_Type_getCXXRefQualifier = ffi.Int32 Function(CXType T);
 typedef DartClang_Type_getCXXRefQualifier = int Function(CXType T);
-typedef NativeClang_Cursor_isBitField = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isBitField = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isBitField = int Function(CXCursor C);
-typedef NativeClang_isVirtualBase = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isVirtualBase = ffi.UnsignedInt Function(CXCursor arg0);
 typedef DartClang_isVirtualBase = int Function(CXCursor arg0);
 
 /// Represents the C++ access control level to a base class for a
@@ -9715,11 +9727,11 @@
 
 typedef NativeClang_Cursor_getStorageClass = ffi.Int32 Function(CXCursor arg0);
 typedef DartClang_Cursor_getStorageClass = int Function(CXCursor arg0);
-typedef NativeClang_getNumOverloadedDecls = ffi.Uint32 Function(
+typedef NativeClang_getNumOverloadedDecls = ffi.UnsignedInt Function(
     CXCursor cursor);
 typedef DartClang_getNumOverloadedDecls = int Function(CXCursor cursor);
 typedef NativeClang_getOverloadedDecl = CXCursor Function(
-    CXCursor cursor, ffi.Uint32 index);
+    CXCursor cursor, ffi.UnsignedInt index);
 typedef DartClang_getOverloadedDecl = CXCursor Function(
     CXCursor cursor, int index);
 typedef NativeClang_getIBOutletCollectionType = CXType Function(CXCursor arg0);
@@ -9736,7 +9748,9 @@
 /// The visitor should return one of the \c CXChildVisitResult values
 /// to direct clang_visitCursorChildren().
 typedef CXCursorVisitor = ffi.Pointer<
-    ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXCursor, CXClientData)>>;
+    ffi.NativeFunction<
+        ffi.Int32 Function(
+            CXCursor cursor, CXCursor parent, CXClientData client_data)>>;
 
 /// Describes how the traversal of the children of a particular
 /// cursor should proceed after visiting a particular child cursor.
@@ -9759,40 +9773,42 @@
 /// Opaque pointer representing client data that will be passed through
 /// to various callbacks and visitors.
 typedef CXClientData = ffi.Pointer<ffi.Void>;
-typedef NativeClang_visitChildren = ffi.Uint32 Function(
+typedef NativeClang_visitChildren = ffi.UnsignedInt Function(
     CXCursor parent, CXCursorVisitor visitor, CXClientData client_data);
 typedef DartClang_visitChildren = int Function(
     CXCursor parent, CXCursorVisitor visitor, CXClientData client_data);
 typedef NativeClang_getCursorUSR = CXString Function(CXCursor arg0);
 typedef DartClang_getCursorUSR = CXString Function(CXCursor arg0);
 typedef NativeClang_constructUSR_ObjCClass = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name);
+    ffi.Pointer<ffi.Char> class_name);
 typedef DartClang_constructUSR_ObjCClass = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name);
+    ffi.Pointer<ffi.Char> class_name);
 typedef NativeClang_constructUSR_ObjCCategory = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name, ffi.Pointer<ffi.Int8> category_name);
+    ffi.Pointer<ffi.Char> class_name, ffi.Pointer<ffi.Char> category_name);
 typedef DartClang_constructUSR_ObjCCategory = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name, ffi.Pointer<ffi.Int8> category_name);
+    ffi.Pointer<ffi.Char> class_name, ffi.Pointer<ffi.Char> category_name);
 typedef NativeClang_constructUSR_ObjCProtocol = CXString Function(
-    ffi.Pointer<ffi.Int8> protocol_name);
+    ffi.Pointer<ffi.Char> protocol_name);
 typedef DartClang_constructUSR_ObjCProtocol = CXString Function(
-    ffi.Pointer<ffi.Int8> protocol_name);
+    ffi.Pointer<ffi.Char> protocol_name);
 typedef NativeClang_constructUSR_ObjCIvar = CXString Function(
-    ffi.Pointer<ffi.Int8> name, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, CXString classUSR);
 typedef DartClang_constructUSR_ObjCIvar = CXString Function(
-    ffi.Pointer<ffi.Int8> name, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, CXString classUSR);
 typedef NativeClang_constructUSR_ObjCMethod = CXString Function(
-    ffi.Pointer<ffi.Int8> name, ffi.Uint32 isInstanceMethod, CXString classUSR);
+    ffi.Pointer<ffi.Char> name,
+    ffi.UnsignedInt isInstanceMethod,
+    CXString classUSR);
 typedef DartClang_constructUSR_ObjCMethod = CXString Function(
-    ffi.Pointer<ffi.Int8> name, int isInstanceMethod, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, int isInstanceMethod, CXString classUSR);
 typedef NativeClang_constructUSR_ObjCProperty = CXString Function(
-    ffi.Pointer<ffi.Int8> property, CXString classUSR);
+    ffi.Pointer<ffi.Char> property, CXString classUSR);
 typedef DartClang_constructUSR_ObjCProperty = CXString Function(
-    ffi.Pointer<ffi.Int8> property, CXString classUSR);
+    ffi.Pointer<ffi.Char> property, CXString classUSR);
 typedef NativeClang_getCursorSpelling = CXString Function(CXCursor arg0);
 typedef DartClang_getCursorSpelling = CXString Function(CXCursor arg0);
 typedef NativeClang_Cursor_getSpellingNameRange = CXSourceRange Function(
-    CXCursor arg0, ffi.Uint32 pieceIndex, ffi.Uint32 options);
+    CXCursor arg0, ffi.UnsignedInt pieceIndex, ffi.UnsignedInt options);
 typedef DartClang_Cursor_getSpellingNameRange = CXSourceRange Function(
     CXCursor arg0, int pieceIndex, int options);
 
@@ -9833,12 +9849,12 @@
   static const int CXPrintingPolicy_LastProperty = 25;
 }
 
-typedef NativeClang_PrintingPolicy_getProperty = ffi.Uint32 Function(
+typedef NativeClang_PrintingPolicy_getProperty = ffi.UnsignedInt Function(
     CXPrintingPolicy Policy, ffi.Int32 Property);
 typedef DartClang_PrintingPolicy_getProperty = int Function(
     CXPrintingPolicy Policy, int Property);
 typedef NativeClang_PrintingPolicy_setProperty = ffi.Void Function(
-    CXPrintingPolicy Policy, ffi.Int32 Property, ffi.Uint32 Value);
+    CXPrintingPolicy Policy, ffi.Int32 Property, ffi.UnsignedInt Value);
 typedef DartClang_PrintingPolicy_setProperty = void Function(
     CXPrintingPolicy Policy, int Property, int Value);
 typedef NativeClang_getCursorPrintingPolicy = CXPrintingPolicy Function(
@@ -9859,19 +9875,20 @@
 typedef DartClang_getCursorReferenced = CXCursor Function(CXCursor arg0);
 typedef NativeClang_getCursorDefinition = CXCursor Function(CXCursor arg0);
 typedef DartClang_getCursorDefinition = CXCursor Function(CXCursor arg0);
-typedef NativeClang_isCursorDefinition = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isCursorDefinition = ffi.UnsignedInt Function(
+    CXCursor arg0);
 typedef DartClang_isCursorDefinition = int Function(CXCursor arg0);
 typedef NativeClang_getCanonicalCursor = CXCursor Function(CXCursor arg0);
 typedef DartClang_getCanonicalCursor = CXCursor Function(CXCursor arg0);
-typedef NativeClang_Cursor_getObjCSelectorIndex = ffi.Int32 Function(
+typedef NativeClang_Cursor_getObjCSelectorIndex = ffi.Int Function(
     CXCursor arg0);
 typedef DartClang_Cursor_getObjCSelectorIndex = int Function(CXCursor arg0);
-typedef NativeClang_Cursor_isDynamicCall = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_Cursor_isDynamicCall = ffi.Int Function(CXCursor C);
 typedef DartClang_Cursor_isDynamicCall = int Function(CXCursor C);
 typedef NativeClang_Cursor_getReceiverType = CXType Function(CXCursor C);
 typedef DartClang_Cursor_getReceiverType = CXType Function(CXCursor C);
-typedef NativeClang_Cursor_getObjCPropertyAttributes = ffi.Uint32 Function(
-    CXCursor C, ffi.Uint32 reserved);
+typedef NativeClang_Cursor_getObjCPropertyAttributes = ffi.UnsignedInt Function(
+    CXCursor C, ffi.UnsignedInt reserved);
 typedef DartClang_Cursor_getObjCPropertyAttributes = int Function(
     CXCursor C, int reserved);
 typedef NativeClang_Cursor_getObjCPropertyGetterName = CXString Function(
@@ -9882,23 +9899,24 @@
     CXCursor C);
 typedef DartClang_Cursor_getObjCPropertySetterName = CXString Function(
     CXCursor C);
-typedef NativeClang_Cursor_getObjCDeclQualifiers = ffi.Uint32 Function(
+typedef NativeClang_Cursor_getObjCDeclQualifiers = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_getObjCDeclQualifiers = int Function(CXCursor C);
-typedef NativeClang_Cursor_isObjCOptional = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isObjCOptional = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isObjCOptional = int Function(CXCursor C);
-typedef NativeClang_Cursor_isVariadic = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isVariadic = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isVariadic = int Function(CXCursor C);
-typedef NativeClang_Cursor_isExternalSymbol = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isExternalSymbol = ffi.UnsignedInt Function(
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated);
+    ffi.Pointer<ffi.UnsignedInt> isGenerated);
 typedef DartClang_Cursor_isExternalSymbol = int Function(
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated);
+    ffi.Pointer<ffi.UnsignedInt> isGenerated);
 typedef NativeClang_Cursor_getCommentRange = CXSourceRange Function(CXCursor C);
 typedef DartClang_Cursor_getCommentRange = CXSourceRange Function(CXCursor C);
 typedef NativeClang_Cursor_getRawCommentText = CXString Function(CXCursor C);
@@ -9936,45 +9954,47 @@
 typedef DartClang_Module_getName = CXString Function(CXModule Module);
 typedef NativeClang_Module_getFullName = CXString Function(CXModule Module);
 typedef DartClang_Module_getFullName = CXString Function(CXModule Module);
-typedef NativeClang_Module_isSystem = ffi.Int32 Function(CXModule Module);
+typedef NativeClang_Module_isSystem = ffi.Int Function(CXModule Module);
 typedef DartClang_Module_isSystem = int Function(CXModule Module);
-typedef NativeClang_Module_getNumTopLevelHeaders = ffi.Uint32 Function(
+typedef NativeClang_Module_getNumTopLevelHeaders = ffi.UnsignedInt Function(
     CXTranslationUnit arg0, CXModule Module);
 typedef DartClang_Module_getNumTopLevelHeaders = int Function(
     CXTranslationUnit arg0, CXModule Module);
 typedef NativeClang_Module_getTopLevelHeader = CXFile Function(
-    CXTranslationUnit arg0, CXModule Module, ffi.Uint32 Index);
+    CXTranslationUnit arg0, CXModule Module, ffi.UnsignedInt Index);
 typedef DartClang_Module_getTopLevelHeader = CXFile Function(
     CXTranslationUnit arg0, CXModule Module, int Index);
-typedef NativeClang_CXXConstructor_isConvertingConstructor = ffi.Uint32
+typedef NativeClang_CXXConstructor_isConvertingConstructor = ffi.UnsignedInt
     Function(CXCursor C);
 typedef DartClang_CXXConstructor_isConvertingConstructor = int Function(
     CXCursor C);
-typedef NativeClang_CXXConstructor_isCopyConstructor = ffi.Uint32 Function(
+typedef NativeClang_CXXConstructor_isCopyConstructor = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_CXXConstructor_isCopyConstructor = int Function(CXCursor C);
-typedef NativeClang_CXXConstructor_isDefaultConstructor = ffi.Uint32 Function(
-    CXCursor C);
+typedef NativeClang_CXXConstructor_isDefaultConstructor = ffi.UnsignedInt
+    Function(CXCursor C);
 typedef DartClang_CXXConstructor_isDefaultConstructor = int Function(
     CXCursor C);
-typedef NativeClang_CXXConstructor_isMoveConstructor = ffi.Uint32 Function(
+typedef NativeClang_CXXConstructor_isMoveConstructor = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_CXXConstructor_isMoveConstructor = int Function(CXCursor C);
-typedef NativeClang_CXXField_isMutable = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXField_isMutable = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXField_isMutable = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isDefaulted = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isDefaulted = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_CXXMethod_isDefaulted = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isPureVirtual = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isPureVirtual = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_CXXMethod_isPureVirtual = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isStatic = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isStatic = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isStatic = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isVirtual = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isVirtual = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isVirtual = int Function(CXCursor C);
-typedef NativeClang_CXXRecord_isAbstract = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXRecord_isAbstract = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXRecord_isAbstract = int Function(CXCursor C);
-typedef NativeClang_EnumDecl_isScoped = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_EnumDecl_isScoped = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_EnumDecl_isScoped = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isConst = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isConst = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isConst = int Function(CXCursor C);
 typedef NativeClang_getTemplateCursorKind = ffi.Int32 Function(CXCursor C);
 typedef DartClang_getTemplateCursorKind = int Function(CXCursor C);
@@ -9982,14 +10002,14 @@
     CXCursor C);
 typedef DartClang_getSpecializedCursorTemplate = CXCursor Function(CXCursor C);
 typedef NativeClang_getCursorReferenceNameRange = CXSourceRange Function(
-    CXCursor C, ffi.Uint32 NameFlags, ffi.Uint32 PieceIndex);
+    CXCursor C, ffi.UnsignedInt NameFlags, ffi.UnsignedInt PieceIndex);
 typedef DartClang_getCursorReferenceNameRange = CXSourceRange Function(
     CXCursor C, int NameFlags, int PieceIndex);
 
 /// Describes a single preprocessing token.
 class CXToken extends ffi.Struct {
   @ffi.Array.multi([4])
-  external ffi.Array<ffi.Uint32> int_data;
+  external ffi.Array<ffi.UnsignedInt> int_data;
 
   external ffi.Pointer<ffi.Void> ptr_data;
 }
@@ -10035,48 +10055,48 @@
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens);
+    ffi.Pointer<ffi.UnsignedInt> NumTokens);
 typedef DartClang_tokenize = void Function(
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens);
+    ffi.Pointer<ffi.UnsignedInt> NumTokens);
 typedef NativeClang_annotateTokens = ffi.Void Function(
     CXTranslationUnit TU,
     ffi.Pointer<CXToken> Tokens,
-    ffi.Uint32 NumTokens,
+    ffi.UnsignedInt NumTokens,
     ffi.Pointer<CXCursor> Cursors);
 typedef DartClang_annotateTokens = void Function(CXTranslationUnit TU,
     ffi.Pointer<CXToken> Tokens, int NumTokens, ffi.Pointer<CXCursor> Cursors);
-typedef NativeClang_disposeTokens = ffi.Void Function(
-    CXTranslationUnit TU, ffi.Pointer<CXToken> Tokens, ffi.Uint32 NumTokens);
+typedef NativeClang_disposeTokens = ffi.Void Function(CXTranslationUnit TU,
+    ffi.Pointer<CXToken> Tokens, ffi.UnsignedInt NumTokens);
 typedef DartClang_disposeTokens = void Function(
     CXTranslationUnit TU, ffi.Pointer<CXToken> Tokens, int NumTokens);
 typedef NativeClang_getCursorKindSpelling = CXString Function(ffi.Int32 Kind);
 typedef DartClang_getCursorKindSpelling = CXString Function(int Kind);
 typedef NativeClang_getDefinitionSpellingAndExtent = ffi.Void Function(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn);
 typedef DartClang_getDefinitionSpellingAndExtent = void Function(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn);
 typedef NativeClang_enableStackTraces = ffi.Void Function();
 typedef DartClang_enableStackTraces = void Function();
 typedef NativeClang_executeOnThread = ffi.Void Function(
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         fn,
     ffi.Pointer<ffi.Void> user_data,
-    ffi.Uint32 stack_size);
+    ffi.UnsignedInt stack_size);
 typedef DartClang_executeOnThread = void Function(
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         fn,
@@ -10262,22 +10282,23 @@
 }
 
 typedef NativeClang_getCompletionChunkKind = ffi.Int32 Function(
-    CXCompletionString completion_string, ffi.Uint32 chunk_number);
+    CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkKind = int Function(
     CXCompletionString completion_string, int chunk_number);
 typedef NativeClang_getCompletionChunkText = CXString Function(
-    CXCompletionString completion_string, ffi.Uint32 chunk_number);
+    CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkText = CXString Function(
     CXCompletionString completion_string, int chunk_number);
-typedef NativeClang_getCompletionChunkCompletionString = CXCompletionString
-    Function(CXCompletionString completion_string, ffi.Uint32 chunk_number);
+typedef NativeClang_getCompletionChunkCompletionString
+    = CXCompletionString Function(
+        CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkCompletionString = CXCompletionString
     Function(CXCompletionString completion_string, int chunk_number);
-typedef NativeClang_getNumCompletionChunks = ffi.Uint32 Function(
+typedef NativeClang_getNumCompletionChunks = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getNumCompletionChunks = int Function(
     CXCompletionString completion_string);
-typedef NativeClang_getCompletionPriority = ffi.Uint32 Function(
+typedef NativeClang_getCompletionPriority = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getCompletionPriority = int Function(
     CXCompletionString completion_string);
@@ -10285,12 +10306,12 @@
     CXCompletionString completion_string);
 typedef DartClang_getCompletionAvailability = int Function(
     CXCompletionString completion_string);
-typedef NativeClang_getCompletionNumAnnotations = ffi.Uint32 Function(
+typedef NativeClang_getCompletionNumAnnotations = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getCompletionNumAnnotations = int Function(
     CXCompletionString completion_string);
 typedef NativeClang_getCompletionAnnotation = CXString Function(
-    CXCompletionString completion_string, ffi.Uint32 annotation_number);
+    CXCompletionString completion_string, ffi.UnsignedInt annotation_number);
 typedef DartClang_getCompletionAnnotation = CXString Function(
     CXCompletionString completion_string, int annotation_number);
 typedef NativeClang_getCompletionParent = CXString Function(
@@ -10317,69 +10338,70 @@
 
   /// The number of code-completion results stored in the
   /// \c Results array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int NumResults;
 }
 
-typedef NativeClang_getCompletionNumFixIts = ffi.Uint32 Function(
-    ffi.Pointer<CXCodeCompleteResults> results, ffi.Uint32 completion_index);
+typedef NativeClang_getCompletionNumFixIts = ffi.UnsignedInt Function(
+    ffi.Pointer<CXCodeCompleteResults> results,
+    ffi.UnsignedInt completion_index);
 typedef DartClang_getCompletionNumFixIts = int Function(
     ffi.Pointer<CXCodeCompleteResults> results, int completion_index);
 typedef NativeClang_getCompletionFixIt = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> results,
-    ffi.Uint32 completion_index,
-    ffi.Uint32 fixit_index,
+    ffi.UnsignedInt completion_index,
+    ffi.UnsignedInt fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range);
 typedef DartClang_getCompletionFixIt = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> results,
     int completion_index,
     int fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range);
-typedef NativeClang_defaultCodeCompleteOptions = ffi.Uint32 Function();
+typedef NativeClang_defaultCodeCompleteOptions = ffi.UnsignedInt Function();
 typedef DartClang_defaultCodeCompleteOptions = int Function();
 typedef NativeClang_codeCompleteAt
     = ffi.Pointer<CXCodeCompleteResults> Function(
         CXTranslationUnit TU,
-        ffi.Pointer<ffi.Int8> complete_filename,
-        ffi.Uint32 complete_line,
-        ffi.Uint32 complete_column,
+        ffi.Pointer<ffi.Char> complete_filename,
+        ffi.UnsignedInt complete_line,
+        ffi.UnsignedInt complete_column,
         ffi.Pointer<CXUnsavedFile> unsaved_files,
-        ffi.Uint32 num_unsaved_files,
-        ffi.Uint32 options);
+        ffi.UnsignedInt num_unsaved_files,
+        ffi.UnsignedInt options);
 typedef DartClang_codeCompleteAt = ffi.Pointer<CXCodeCompleteResults> Function(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> complete_filename,
+    ffi.Pointer<ffi.Char> complete_filename,
     int complete_line,
     int complete_column,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options);
 typedef NativeClang_sortCodeCompletionResults = ffi.Void Function(
-    ffi.Pointer<CXCompletionResult> Results, ffi.Uint32 NumResults);
+    ffi.Pointer<CXCompletionResult> Results, ffi.UnsignedInt NumResults);
 typedef DartClang_sortCodeCompletionResults = void Function(
     ffi.Pointer<CXCompletionResult> Results, int NumResults);
 typedef NativeClang_disposeCodeCompleteResults = ffi.Void Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_disposeCodeCompleteResults = void Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
-typedef NativeClang_codeCompleteGetNumDiagnostics = ffi.Uint32 Function(
+typedef NativeClang_codeCompleteGetNumDiagnostics = ffi.UnsignedInt Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetNumDiagnostics = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef NativeClang_codeCompleteGetDiagnostic = CXDiagnostic Function(
-    ffi.Pointer<CXCodeCompleteResults> Results, ffi.Uint32 Index);
+    ffi.Pointer<CXCodeCompleteResults> Results, ffi.UnsignedInt Index);
 typedef DartClang_codeCompleteGetDiagnostic = CXDiagnostic Function(
     ffi.Pointer<CXCodeCompleteResults> Results, int Index);
-typedef NativeClang_codeCompleteGetContexts = ffi.Uint64 Function(
+typedef NativeClang_codeCompleteGetContexts = ffi.UnsignedLongLong Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetContexts = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef NativeClang_codeCompleteGetContainerKind = ffi.Int32 Function(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete);
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete);
 typedef DartClang_codeCompleteGetContainerKind = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete);
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete);
 typedef NativeClang_codeCompleteGetContainerUSR = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetContainerUSR = CXString Function(
@@ -10391,7 +10413,7 @@
 typedef NativeClang_getClangVersion = CXString Function();
 typedef DartClang_getClangVersion = CXString Function();
 typedef NativeClang_toggleCrashRecovery = ffi.Void Function(
-    ffi.Uint32 isEnabled);
+    ffi.UnsignedInt isEnabled);
 typedef DartClang_toggleCrashRecovery = void Function(int isEnabled);
 
 /// Visitor invoked for each file in a translation unit
@@ -10406,7 +10428,10 @@
 typedef CXInclusionVisitor = ffi.Pointer<
     ffi.NativeFunction<
         ffi.Void Function(
-            CXFile, ffi.Pointer<CXSourceLocation>, ffi.Uint32, CXClientData)>>;
+            CXFile included_file,
+            ffi.Pointer<CXSourceLocation> inclusion_stack,
+            ffi.UnsignedInt include_len,
+            CXClientData client_data)>>;
 typedef NativeClang_getInclusions = ffi.Void Function(
     CXTranslationUnit tu, CXInclusionVisitor visitor, CXClientData client_data);
 typedef DartClang_getInclusions = void Function(
@@ -10429,23 +10454,23 @@
 
 typedef NativeClang_EvalResult_getKind = ffi.Int32 Function(CXEvalResult E);
 typedef DartClang_EvalResult_getKind = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsInt = ffi.Int32 Function(CXEvalResult E);
+typedef NativeClang_EvalResult_getAsInt = ffi.Int Function(CXEvalResult E);
 typedef DartClang_EvalResult_getAsInt = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsLongLong = ffi.Int64 Function(
+typedef NativeClang_EvalResult_getAsLongLong = ffi.LongLong Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsLongLong = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_isUnsignedInt = ffi.Uint32 Function(
+typedef NativeClang_EvalResult_isUnsignedInt = ffi.UnsignedInt Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_isUnsignedInt = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsUnsigned = ffi.Uint64 Function(
+typedef NativeClang_EvalResult_getAsUnsigned = ffi.UnsignedLongLong Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsUnsigned = int Function(CXEvalResult E);
 typedef NativeClang_EvalResult_getAsDouble = ffi.Double Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsDouble = double Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_EvalResult_getAsStr = ffi.Pointer<ffi.Char> Function(
     CXEvalResult E);
-typedef DartClang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
+typedef DartClang_EvalResult_getAsStr = ffi.Pointer<ffi.Char> Function(
     CXEvalResult E);
 typedef NativeClang_EvalResult_dispose = ffi.Void Function(CXEvalResult E);
 typedef DartClang_EvalResult_dispose = void Function(CXEvalResult E);
@@ -10453,18 +10478,19 @@
 /// A remapping of original source files and their translated files.
 typedef CXRemapping = ffi.Pointer<ffi.Void>;
 typedef NativeClang_getRemappings = CXRemapping Function(
-    ffi.Pointer<ffi.Int8> path);
+    ffi.Pointer<ffi.Char> path);
 typedef DartClang_getRemappings = CXRemapping Function(
-    ffi.Pointer<ffi.Int8> path);
+    ffi.Pointer<ffi.Char> path);
 typedef NativeClang_getRemappingsFromFileList = CXRemapping Function(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths, ffi.Uint32 numFiles);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths, ffi.UnsignedInt numFiles);
 typedef DartClang_getRemappingsFromFileList = CXRemapping Function(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths, int numFiles);
-typedef NativeClang_remap_getNumFiles = ffi.Uint32 Function(CXRemapping arg0);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths, int numFiles);
+typedef NativeClang_remap_getNumFiles = ffi.UnsignedInt Function(
+    CXRemapping arg0);
 typedef DartClang_remap_getNumFiles = int Function(CXRemapping arg0);
 typedef NativeClang_remap_getFilenames = ffi.Void Function(
     CXRemapping arg0,
-    ffi.Uint32 index,
+    ffi.UnsignedInt index,
     ffi.Pointer<CXString> original,
     ffi.Pointer<CXString> transformed);
 typedef DartClang_remap_getFilenames = void Function(
@@ -10518,7 +10544,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -10528,20 +10554,20 @@
   external CXIdxLoc hashLoc;
 
   /// Filename as written in the \#include/\#import directive.
-  external ffi.Pointer<ffi.Int8> filename;
+  external ffi.Pointer<ffi.Char> filename;
 
   /// The actual file that the \#include/\#import directive resolved to.
   external CXFile file;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isImport;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isAngled;
 
   /// Non-zero if the directive was automatically turned into a module
   /// import.
-  @ffi.Int32()
+  @ffi.Int()
   external int isModuleImport;
 }
 
@@ -10558,7 +10584,7 @@
 
   /// Non-zero if an inclusion directive was automatically turned into
   /// a module import. Applicable only for modules.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 }
 
@@ -10588,15 +10614,15 @@
   @ffi.Int32()
   external int lang;
 
-  external ffi.Pointer<ffi.Int8> name;
+  external ffi.Pointer<ffi.Char> name;
 
-  external ffi.Pointer<ffi.Int8> USR;
+  external ffi.Pointer<ffi.Char> USR;
 
   external CXCursor cursor;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 }
 
@@ -10680,28 +10706,28 @@
   /// cases like out-of-line C++ member functions.
   external ffi.Pointer<CXIdxContainerInfo> lexicalContainer;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isRedeclaration;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isDefinition;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isContainer;
 
   external ffi.Pointer<CXIdxContainerInfo> declAsContainer;
 
   /// Whether the declaration exists in code or was created implicitly
   /// by the compiler, e.g. implicit Objective-C methods for properties.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int flags;
 }
 
@@ -10737,7 +10763,7 @@
 class CXIdxObjCProtocolRefListInfo extends ffi.Struct {
   external ffi.Pointer<ffi.Pointer<CXIdxObjCProtocolRefInfo>> protocols;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numProtocols;
 }
 
@@ -10774,7 +10800,7 @@
 
   external ffi.Pointer<ffi.Pointer<CXIdxBaseClassInfo>> bases;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numBases;
 }
 
@@ -10840,7 +10866,7 @@
   static const int CXSymbolRole_Implicit = 256;
 }
 
-typedef NativeClang_index_isEntityObjCContainerKind = ffi.Int32 Function(
+typedef NativeClang_index_isEntityObjCContainerKind = ffi.Int Function(
     ffi.Int32 arg0);
 typedef DartClang_index_isEntityObjCContainerKind = int Function(int arg0);
 typedef NativeClang_index_getObjCContainerDeclInfo
@@ -10922,8 +10948,10 @@
   /// Called periodically to check whether indexing should be aborted.
   /// Should return 0 to continue, and non-zero to abort.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(CXClientData, ffi.Pointer<ffi.Void>)>> abortQuery;
+          ffi.NativeFunction<
+              ffi.Int Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      abortQuery;
 
   /// Called at the end of indexing; passes the complete diagnostic set.
   external ffi.Pointer<
@@ -10934,8 +10962,8 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          CXIdxClientFile Function(
-              CXClientData, CXFile, ffi.Pointer<ffi.Void>)>> enteredMainFile;
+          CXIdxClientFile Function(CXClientData client_data, CXFile mainFile,
+              ffi.Pointer<ffi.Void> reserved)>> enteredMainFile;
 
   /// Called when a file gets \#included/\#imported.
   external ffi.Pointer<
@@ -10958,9 +10986,10 @@
 
   /// Called at the beginning of indexing a translation unit.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          CXIdxClientContainer Function(
-              CXClientData, ffi.Pointer<ffi.Void>)>> startedTranslationUnit;
+          ffi.NativeFunction<
+              CXIdxClientContainer Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      startedTranslationUnit;
 
   external ffi.Pointer<
           ffi.NativeFunction<
@@ -10980,64 +11009,64 @@
 /// The client's data object that is associated with an AST file (PCH
 /// or module).
 typedef CXIdxClientASTFile = ffi.Pointer<ffi.Void>;
-typedef NativeClang_indexSourceFile = ffi.Int32 Function(
+typedef NativeClang_indexSourceFile = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
-    ffi.Uint32 TU_options);
+    ffi.UnsignedInt TU_options);
 typedef DartClang_indexSourceFile = int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
     int TU_options);
-typedef NativeClang_indexSourceFileFullArgv = ffi.Int32 Function(
+typedef NativeClang_indexSourceFileFullArgv = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
-    ffi.Uint32 TU_options);
+    ffi.UnsignedInt TU_options);
 typedef DartClang_indexSourceFileFullArgv = int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
     int TU_options);
-typedef NativeClang_indexTranslationUnit = ffi.Int32 Function(
+typedef NativeClang_indexTranslationUnit = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
     CXTranslationUnit arg5);
 typedef DartClang_indexTranslationUnit = int Function(
     CXIndexAction arg0,
@@ -11050,16 +11079,16 @@
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_indexLoc_getFileLocation = void Function(
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
     CXIdxLoc loc);
 typedef DartClang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
@@ -11074,9 +11103,10 @@
 ///
 /// The visitor should return one of the \c CXVisitorResult values
 /// to direct \c clang_Type_visitFields.
-typedef CXFieldVisitor = ffi
-    .Pointer<ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXClientData)>>;
-typedef NativeClang_Type_visitFields = ffi.Uint32 Function(
+typedef CXFieldVisitor = ffi.Pointer<
+    ffi.NativeFunction<
+        ffi.Int32 Function(CXCursor C, CXClientData client_data)>>;
+typedef NativeClang_Type_visitFields = ffi.UnsignedInt Function(
     CXType T, CXFieldVisitor visitor, CXClientData client_data);
 typedef DartClang_Type_visitFields = int Function(
     CXType T, CXFieldVisitor visitor, CXClientData client_data);
diff --git a/example/libclang-example/pubspec.yaml b/example/libclang-example/pubspec.yaml
index f10498b..daef35b 100644
--- a/example/libclang-example/pubspec.yaml
+++ b/example/libclang-example/pubspec.yaml
@@ -5,88 +5,11 @@
 name: libclang_example
 
 environment:
-  sdk: '>=2.13.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
+dependencies:
+  ffi: ^2.0.1
 dev_dependencies:
   ffigen:
     path: '../../'
-  lints: ^1.0.1
-
-ffigen:
-  output: 'generated_bindings.dart'
-
-  # This will sort the bindings alphabetically.
-  # sort: true
-
-  # This is required if LLVM can't be found in default locations by ffigen.
-  # llvm-path:
-  #   - '/usr/local/opt/llvm'
-
-  # Bash style Glob matching is also supported.
-  # TODO(11): Globs dont work on windows if they begin with '.' or '..'.
-  headers:
-    entry-points:
-      - ../../third_party/libclang/include/clang-c/Index.h
-    include-directives: # use glob syntax to match with header file path.
-      - '**CXString.h'
-      - '**Index.h'
-
-  compiler-opts:
-    - '-I../../third_party/libclang/include'
-    - '-Wno-nullability-completeness'
-  functions:
-    include:
-      - 'clang_.*' # Can be a regexp, '.' matches any character.
-    symbol-address:
-      include:
-        - 'clang_.*' # Symbol Address for these functions will be exposed via addresses.
-    expose-typedefs:
-      include:
-        - 'clang_.*' # Typedefs for Native and Dart type for these functions will be generated.
-  structs:
-    include:
-        - 'CX.*'
-  enums:
-    include:
-      - 'CXTypeKind' # Full names are given higher priority than regexp.
-      - 'CXGlobalOptFlags'
-
-  # These are optional and also default,
-  # Omitting any and the default will be used.
-  size-map:
-    char: 1
-    unsigned char: 1
-    short: 2
-    unsigned short: 2
-    int: 4
-    unsigned int: 4
-    long: 8
-    unsigned long: 8
-    long long: 8
-    unsigned long long: 8
-    enum: 4
-
-  # These can be used to map any typedef to a specific native type.
-  typedef-map:
-    'size_t': 'IntPtr'
-    'time_t': 'Int64'
-
-  # Default is 'NativeLibrary'
-  name: 'LibClang'
-
-  description: 'Holds bindings to LibClang.'
-
-  # Doc Comments for generated binings.
-  # Comments can be disabled by using comments: false
-  comments:
-    style: doxygen # Options - doxygen(default) / any.
-    length: full # Options - brief / full(default).
-
-  # The header of the file, this is pasted as it is.
-  preamble: |
-    // Part of the LLVM Project, under the Apache License v2.0 with LLVM
-    // Exceptions.
-    // See https://llvm.org/LICENSE.txt for license information.
-    // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-    // ignore_for_file: camel_case_types, non_constant_identifier_names
+  lints: ^2.0.1
diff --git a/example/libclang-example/readme.md b/example/libclang-example/readme.md
index dab0bdf..39f2474 100644
--- a/example/libclang-example/readme.md
+++ b/example/libclang-example/readme.md
@@ -6,6 +6,6 @@
 ## Generating bindings
 At the root of this example (`example/libclang-example`), run -
 ```
-dart run ffigen
+dart run ffigen --config config.yaml
 ```
 This will generate bindings in a file: [generated_bindings.dart](./generated_bindings.dart).
diff --git a/example/objective_c/README.md b/example/objective_c/README.md
new file mode 100644
index 0000000..846b77a
--- /dev/null
+++ b/example/objective_c/README.md
@@ -0,0 +1,44 @@
+# Objective C example
+
+This example shows how to use ffigen to generate bindings for an Objective C
+library. It uses the AVFAudio framework to play audio files.
+
+```
+dart play_audio.dart test.mp3
+```
+
+## Config notes
+
+The ffigen config for an Objective C library looks very similar to a C library.
+The most important difference is that you must set `language: objc`. If you want
+to filter which interfaces are included you can use the `objc-interfaces:`
+option. This works similarly to the other filtering options.
+
+It is recommended that you filter out just about everything you're not
+interested in binding (see the ffigen config in [pubspec.yaml](./pubspec.yaml)).
+Virtually all Objective C libraries depend on Apple's internal libraries, which
+are huge. Filtering can reduce the generated bindings from millions of lines to
+tens of thousands. You can use the `exclude-all-by-default` flag, or exclude
+individual sets of declarations like this:
+
+```yaml
+functions:
+  exclude:
+    - '.*'
+# Same for structs/unions/enums etc.
+```
+
+In this example, we're only interested in `AVAudioPlayer`, so we've filtered out
+everything else. But ffigen will automatically pull in anything referenced by
+any of the fields or methods of `AVAudioPlayer`, so we're still able to use
+`NSURL` etc to load our audio file.
+
+## Generating bindings
+
+At the root of this example (`example/objective_c`), run:
+
+```
+dart run ffigen --config config.yaml
+```
+
+This will generate [avf_audio_bindings.dart](./avf_audio_bindings.dart).
diff --git a/example/objective_c/avf_audio_bindings.dart b/example/objective_c/avf_audio_bindings.dart
new file mode 100644
index 0000000..972e8fe
--- /dev/null
+++ b/example/objective_c/avf_audio_bindings.dart
@@ -0,0 +1,67761 @@
+// ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field, return_of_invalid_type, void_checks, annotate_overrides, no_leading_underscores_for_local_identifiers, library_private_types_in_public_api
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+import 'package:ffi/ffi.dart' as pkg_ffi;
+
+/// Bindings for AVFAudio.
+class AVFAudio {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  AVFAudio(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  AVFAudio.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  ffi.Pointer<ObjCSel> _registerName1(String name) {
+    final cstr = name.toNativeUtf8();
+    final sel = _sel_registerName(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    return sel;
+  }
+
+  ffi.Pointer<ObjCSel> _sel_registerName(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __sel_registerName(
+      str,
+    );
+  }
+
+  late final __sel_registerNamePtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ffi.Char>)>>('sel_registerName');
+  late final __sel_registerName = __sel_registerNamePtr
+      .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _getClass1(String name) {
+    final cstr = name.toNativeUtf8();
+    final clazz = _objc_getClass(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    if (clazz == ffi.nullptr) {
+      throw Exception('Failed to load Objective-C class: $name');
+    }
+    return clazz;
+  }
+
+  ffi.Pointer<ObjCObject> _objc_getClass(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __objc_getClass(
+      str,
+    );
+  }
+
+  late final __objc_getClassPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ffi.Char>)>>('objc_getClass');
+  late final __objc_getClass = __objc_getClassPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _objc_retain(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_retain(
+      value,
+    );
+  }
+
+  late final __objc_retainPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>)>>('objc_retain');
+  late final __objc_retain = __objc_retainPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>)>();
+
+  void _objc_release(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_release(
+      value,
+    );
+  }
+
+  late final __objc_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject>)>>(
+          'objc_release');
+  late final __objc_release =
+      __objc_releasePtr.asFunction<void Function(ffi.Pointer<ObjCObject>)>();
+
+  late final _objc_releaseFinalizer2 =
+      ffi.NativeFinalizer(__objc_releasePtr.cast());
+  late final _class_NSObject1 = _getClass1("NSObject");
+  late final _sel_load1 = _registerName1("load");
+  void _objc_msgSend_1(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initialize1 = _registerName1("initialize");
+  late final _sel_init1 = _registerName1("init");
+  instancetype _objc_msgSend_2(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_2(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_2Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_new1 = _registerName1("new");
+  late final _sel_allocWithZone_1 = _registerName1("allocWithZone:");
+  instancetype _objc_msgSend_3(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_NSZone> zone,
+  ) {
+    return __objc_msgSend_3(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_3Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_NSZone>)>();
+
+  late final _sel_alloc1 = _registerName1("alloc");
+  late final _sel_dealloc1 = _registerName1("dealloc");
+  late final _sel_finalize1 = _registerName1("finalize");
+  late final _sel_copy1 = _registerName1("copy");
+  late final _sel_mutableCopy1 = _registerName1("mutableCopy");
+  late final _sel_copyWithZone_1 = _registerName1("copyWithZone:");
+  late final _sel_mutableCopyWithZone_1 =
+      _registerName1("mutableCopyWithZone:");
+  late final _sel_instancesRespondToSelector_1 =
+      _registerName1("instancesRespondToSelector:");
+  bool _objc_msgSend_4(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_4(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_4Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  bool _objc_msgSend_0(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> clazz,
+  ) {
+    return __objc_msgSend_0(
+      obj,
+      sel,
+      clazz,
+    );
+  }
+
+  late final __objc_msgSend_0Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isKindOfClass_1 = _registerName1("isKindOfClass:");
+  late final _class_Protocol1 = _getClass1("Protocol");
+  late final _sel_conformsToProtocol_1 = _registerName1("conformsToProtocol:");
+  bool _objc_msgSend_5(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> protocol,
+  ) {
+    return __objc_msgSend_5(
+      obj,
+      sel,
+      protocol,
+    );
+  }
+
+  late final __objc_msgSend_5Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodForSelector_1 = _registerName1("methodForSelector:");
+  IMP _objc_msgSend_6(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_6(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_6Ptr = _lookup<
+      ffi.NativeFunction<
+          IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction<
+      IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodForSelector_1 =
+      _registerName1("instanceMethodForSelector:");
+  late final _sel_doesNotRecognizeSelector_1 =
+      _registerName1("doesNotRecognizeSelector:");
+  void _objc_msgSend_7(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_7(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_7Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_forwardingTargetForSelector_1 =
+      _registerName1("forwardingTargetForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_8(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_8(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_8Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSInvocation1 = _getClass1("NSInvocation");
+  late final _class_NSMethodSignature1 = _getClass1("NSMethodSignature");
+  late final _sel_signatureWithObjCTypes_1 =
+      _registerName1("signatureWithObjCTypes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_9(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_9(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_9Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_numberOfArguments1 = _registerName1("numberOfArguments");
+  int _objc_msgSend_10(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_10(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_10Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getArgumentTypeAtIndex_1 =
+      _registerName1("getArgumentTypeAtIndex:");
+  ffi.Pointer<ffi.Char> _objc_msgSend_11(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int idx,
+  ) {
+    return __objc_msgSend_11(
+      obj,
+      sel,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_11Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_frameLength1 = _registerName1("frameLength");
+  late final _sel_isOneway1 = _registerName1("isOneway");
+  bool _objc_msgSend_12(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_12(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_12Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnType1 = _registerName1("methodReturnType");
+  ffi.Pointer<ffi.Char> _objc_msgSend_13(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_13(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_13Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnLength1 = _registerName1("methodReturnLength");
+  late final _sel_cancelPreviousPerformRequestsWithTarget_selector_object_1 =
+      _registerName1(
+          "cancelPreviousPerformRequestsWithTarget:selector:object:");
+  void _objc_msgSend_14(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+  ) {
+    return __objc_msgSend_14(
+      obj,
+      sel,
+      aTarget,
+      aSelector,
+      anArgument,
+    );
+  }
+
+  late final __objc_msgSend_14Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cancelPreviousPerformRequestsWithTarget_1 =
+      _registerName1("cancelPreviousPerformRequestsWithTarget:");
+  void _objc_msgSend_15(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+  ) {
+    return __objc_msgSend_15(
+      obj,
+      sel,
+      aTarget,
+    );
+  }
+
+  late final __objc_msgSend_15Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_accessInstanceVariablesDirectly1 =
+      _registerName1("accessInstanceVariablesDirectly");
+  late final _sel_useStoredAccessor1 = _registerName1("useStoredAccessor");
+  late final _class_NSSet1 = _getClass1("NSSet");
+  late final _sel_count1 = _registerName1("count");
+  late final _sel_member_1 = _registerName1("member:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_16(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+  ) {
+    return __objc_msgSend_16(
+      obj,
+      sel,
+      object,
+    );
+  }
+
+  late final __objc_msgSend_16Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSEnumerator1 = _getClass1("NSEnumerator");
+  late final _sel_nextObject1 = _registerName1("nextObject");
+  late final _class_NSString1 = _getClass1("NSString");
+  late final _sel_length1 = _registerName1("length");
+  late final _sel_characterAtIndex_1 = _registerName1("characterAtIndex:");
+  int _objc_msgSend_17(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_17(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_17Ptr = _lookup<
+      ffi.NativeFunction<
+          unichar Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSCoder1 = _getClass1("NSCoder");
+  late final _sel_encodeValueOfObjCType_at_1 =
+      _registerName1("encodeValueOfObjCType:at:");
+  void _objc_msgSend_18(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> addr,
+  ) {
+    return __objc_msgSend_18(
+      obj,
+      sel,
+      type,
+      addr,
+    );
+  }
+
+  late final __objc_msgSend_18Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>();
+
+  late final _class_NSData1 = _getClass1("NSData");
+  late final _sel_bytes1 = _registerName1("bytes");
+  ffi.Pointer<ffi.Void> _objc_msgSend_19(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_19(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_19Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_description1 = _registerName1("description");
+  ffi.Pointer<ObjCObject> _objc_msgSend_20(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_20(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_20Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getBytes_length_1 = _registerName1("getBytes:length:");
+  void _objc_msgSend_21(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int length,
+  ) {
+    return __objc_msgSend_21(
+      obj,
+      sel,
+      buffer,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_21Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_getBytes_range_1 = _registerName1("getBytes:range:");
+  void _objc_msgSend_22(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_22(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_22Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, NSRange)>();
+
+  late final _sel_isEqualToData_1 = _registerName1("isEqualToData:");
+  bool _objc_msgSend_23(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_23(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_23Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_subdataWithRange_1 = _registerName1("subdataWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_24(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_24(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_24Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_writeToFile_atomically_1 =
+      _registerName1("writeToFile:atomically:");
+  bool _objc_msgSend_25(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+  ) {
+    return __objc_msgSend_25(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+    );
+  }
+
+  late final __objc_msgSend_25Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _class_NSURL1 = _getClass1("NSURL");
+  late final _sel_initWithScheme_host_path_1 =
+      _registerName1("initWithScheme:host:path:");
+  instancetype _objc_msgSend_26(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> scheme,
+    ffi.Pointer<ObjCObject> host,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_26(
+      obj,
+      sel,
+      scheme,
+      host,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_26Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_27(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_27(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_27Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:relativeToURL:");
+  instancetype _objc_msgSend_28(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_28(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_28Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_28 = __objc_msgSend_28Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_1 =
+      _registerName1("initFileURLWithPath:isDirectory:");
+  instancetype _objc_msgSend_29(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_29(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_29Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_29 = __objc_msgSend_29Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initFileURLWithPath_1 =
+      _registerName1("initFileURLWithPath:");
+  instancetype _objc_msgSend_30(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_30(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_30Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_30 = __objc_msgSend_30Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("fileURLWithPath:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_31(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_31(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_31Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_31 = __objc_msgSend_31Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_relativeToURL_1 =
+      _registerName1("fileURLWithPath:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_32(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_32(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_32Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_32 = __objc_msgSend_32Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_1 =
+      _registerName1("fileURLWithPath:isDirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_33(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_33(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_33Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_33 = __objc_msgSend_33Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_fileURLWithPath_1 = _registerName1("fileURLWithPath:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_34(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_34(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_34Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_34 = __objc_msgSend_34Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "initFileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_35(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_35(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_35Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_35 = __objc_msgSend_35Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "fileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_36(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_36(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_36Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_36 = __objc_msgSend_36Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithString_1 = _registerName1("initWithString:");
+  late final _sel_initWithString_relativeToURL_1 =
+      _registerName1("initWithString:relativeToURL:");
+  late final _sel_URLWithString_1 = _registerName1("URLWithString:");
+  late final _sel_URLWithString_relativeToURL_1 =
+      _registerName1("URLWithString:relativeToURL:");
+  late final _sel_initWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initWithDataRepresentation:relativeToURL:");
+  instancetype _objc_msgSend_37(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_37(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_37Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_37 = __objc_msgSend_37Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("URLWithDataRepresentation:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_38(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_38(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_38Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_38 = __objc_msgSend_38Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initAbsoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initAbsoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_absoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("absoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_dataRepresentation1 = _registerName1("dataRepresentation");
+  ffi.Pointer<ObjCObject> _objc_msgSend_39(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_39(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_39Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_39 = __objc_msgSend_39Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteString1 = _registerName1("absoluteString");
+  late final _sel_relativeString1 = _registerName1("relativeString");
+  late final _sel_baseURL1 = _registerName1("baseURL");
+  ffi.Pointer<ObjCObject> _objc_msgSend_40(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_40(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_40Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_40 = __objc_msgSend_40Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteURL1 = _registerName1("absoluteURL");
+  late final _sel_scheme1 = _registerName1("scheme");
+  late final _sel_resourceSpecifier1 = _registerName1("resourceSpecifier");
+  late final _sel_host1 = _registerName1("host");
+  late final _class_NSNumber1 = _getClass1("NSNumber");
+  late final _class_NSValue1 = _getClass1("NSValue");
+  late final _sel_getValue_size_1 = _registerName1("getValue:size:");
+  late final _sel_objCType1 = _registerName1("objCType");
+  late final _sel_initWithBytes_objCType_1 =
+      _registerName1("initWithBytes:objCType:");
+  instancetype _objc_msgSend_41(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_41(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_41Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_41 = __objc_msgSend_41Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithCoder_1 = _registerName1("initWithCoder:");
+  instancetype _objc_msgSend_42(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> coder,
+  ) {
+    return __objc_msgSend_42(
+      obj,
+      sel,
+      coder,
+    );
+  }
+
+  late final __objc_msgSend_42Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_42 = __objc_msgSend_42Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueWithBytes_objCType_1 =
+      _registerName1("valueWithBytes:objCType:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_43(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_43(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_43Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_43 = __objc_msgSend_43Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_value_withObjCType_1 = _registerName1("value:withObjCType:");
+  late final _sel_valueWithNonretainedObject_1 =
+      _registerName1("valueWithNonretainedObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_44(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_44(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_44Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_44 = __objc_msgSend_44Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_nonretainedObjectValue1 =
+      _registerName1("nonretainedObjectValue");
+  late final _sel_valueWithPointer_1 = _registerName1("valueWithPointer:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_45(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> pointer,
+  ) {
+    return __objc_msgSend_45(
+      obj,
+      sel,
+      pointer,
+    );
+  }
+
+  late final __objc_msgSend_45Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_45 = __objc_msgSend_45Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_pointerValue1 = _registerName1("pointerValue");
+  late final _sel_isEqualToValue_1 = _registerName1("isEqualToValue:");
+  bool _objc_msgSend_46(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_46(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_46Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_46 = __objc_msgSend_46Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getValue_1 = _registerName1("getValue:");
+  void _objc_msgSend_47(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __objc_msgSend_47(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_47Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_47 = __objc_msgSend_47Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_valueWithRange_1 = _registerName1("valueWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_48(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_48(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_48Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_48 = __objc_msgSend_48Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_rangeValue1 = _registerName1("rangeValue");
+  NSRange _objc_msgSend_49(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_49(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_49Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_49 = __objc_msgSend_49Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_valueWithPoint_1 = _registerName1("valueWithPoint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_50(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_50(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_50Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_50 = __objc_msgSend_50Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_valueWithSize_1 = _registerName1("valueWithSize:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_51(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_51(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_51Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_51 = __objc_msgSend_51Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_valueWithRect_1 = _registerName1("valueWithRect:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_52(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_52(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_52Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_52 = __objc_msgSend_52Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_valueWithEdgeInsets_1 =
+      _registerName1("valueWithEdgeInsets:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_53(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSEdgeInsets insets,
+  ) {
+    return __objc_msgSend_53(
+      obj,
+      sel,
+      insets,
+    );
+  }
+
+  late final __objc_msgSend_53Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSEdgeInsets)>>('objc_msgSend');
+  late final __objc_msgSend_53 = __objc_msgSend_53Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSEdgeInsets)>();
+
+  late final _sel_pointValue1 = _registerName1("pointValue");
+  NSPoint _objc_msgSend_54(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_54(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_54Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_54 = __objc_msgSend_54Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sizeValue1 = _registerName1("sizeValue");
+  NSSize _objc_msgSend_55(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_55(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_55Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_55 = __objc_msgSend_55Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_rectValue1 = _registerName1("rectValue");
+  NSRect _objc_msgSend_56(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_56(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_56Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_56 = __objc_msgSend_56Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_edgeInsetsValue1 = _registerName1("edgeInsetsValue");
+  NSEdgeInsets _objc_msgSend_57(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_57(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_57Ptr = _lookup<
+      ffi.NativeFunction<
+          NSEdgeInsets Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_57 = __objc_msgSend_57Ptr.asFunction<
+      NSEdgeInsets Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_keyPathsForValuesAffectingValueForKey_1 =
+      _registerName1("keyPathsForValuesAffectingValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_58(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_58(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_58Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_58 = __objc_msgSend_58Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_automaticallyNotifiesObserversForKey_1 =
+      _registerName1("automaticallyNotifiesObserversForKey:");
+  bool _objc_msgSend_59(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_59(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_59Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_59 = __objc_msgSend_59Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSArray1 = _getClass1("NSArray");
+  late final _sel_objectAtIndex_1 = _registerName1("objectAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_60(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_60(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_60Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_60 = __objc_msgSend_60Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithObjects_count_1 =
+      _registerName1("initWithObjects:count:");
+  instancetype _objc_msgSend_61(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int cnt,
+  ) {
+    return __objc_msgSend_61(
+      obj,
+      sel,
+      objects,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_61Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_61 = __objc_msgSend_61Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_arrayByAddingObject_1 =
+      _registerName1("arrayByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_62(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_62(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_62Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_62 = __objc_msgSend_62Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayByAddingObjectsFromArray_1 =
+      _registerName1("arrayByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_63(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_63(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_63Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_63 = __objc_msgSend_63Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_componentsJoinedByString_1 =
+      _registerName1("componentsJoinedByString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_64(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_64(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_64Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_64 = __objc_msgSend_64Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsObject_1 = _registerName1("containsObject:");
+  late final _sel_descriptionWithLocale_1 =
+      _registerName1("descriptionWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_65(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_65(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_65Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_65 = __objc_msgSend_65Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithLocale_indent_1 =
+      _registerName1("descriptionWithLocale:indent:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_66(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+    int level,
+  ) {
+    return __objc_msgSend_66(
+      obj,
+      sel,
+      locale,
+      level,
+    );
+  }
+
+  late final __objc_msgSend_66Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_66 = __objc_msgSend_66Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_firstObjectCommonWithArray_1 =
+      _registerName1("firstObjectCommonWithArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_67(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_67(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_67Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_67 = __objc_msgSend_67Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getObjects_range_1 = _registerName1("getObjects:range:");
+  void _objc_msgSend_68(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    NSRange range,
+  ) {
+    return __objc_msgSend_68(
+      obj,
+      sel,
+      objects,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_68Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_68 = __objc_msgSend_68Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>();
+
+  late final _sel_indexOfObject_1 = _registerName1("indexOfObject:");
+  int _objc_msgSend_69(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_69(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_69Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_69 = __objc_msgSend_69Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_indexOfObject_inRange_1 =
+      _registerName1("indexOfObject:inRange:");
+  int _objc_msgSend_70(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    NSRange range,
+  ) {
+    return __objc_msgSend_70(
+      obj,
+      sel,
+      anObject,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_70Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_70 = __objc_msgSend_70Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_indexOfObjectIdenticalTo_1 =
+      _registerName1("indexOfObjectIdenticalTo:");
+  late final _sel_indexOfObjectIdenticalTo_inRange_1 =
+      _registerName1("indexOfObjectIdenticalTo:inRange:");
+  late final _sel_isEqualToArray_1 = _registerName1("isEqualToArray:");
+  bool _objc_msgSend_71(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_71(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_71Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_71 = __objc_msgSend_71Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstObject1 = _registerName1("firstObject");
+  late final _sel_lastObject1 = _registerName1("lastObject");
+  late final _sel_objectEnumerator1 = _registerName1("objectEnumerator");
+  ffi.Pointer<ObjCObject> _objc_msgSend_72(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_72(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_72Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_72 = __objc_msgSend_72Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_reverseObjectEnumerator1 =
+      _registerName1("reverseObjectEnumerator");
+  late final _sel_sortedArrayHint1 = _registerName1("sortedArrayHint");
+  late final _sel_sortedArrayUsingFunction_context_1 =
+      _registerName1("sortedArrayUsingFunction:context:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_73(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_73(
+      obj,
+      sel,
+      comparator,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_73Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_73 = __objc_msgSend_73Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_sortedArrayUsingFunction_context_hint_1 =
+      _registerName1("sortedArrayUsingFunction:context:hint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_74(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+    ffi.Pointer<ObjCObject> hint,
+  ) {
+    return __objc_msgSend_74(
+      obj,
+      sel,
+      comparator,
+      context,
+      hint,
+    );
+  }
+
+  late final __objc_msgSend_74Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_74 = __objc_msgSend_74Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingSelector_1 =
+      _registerName1("sortedArrayUsingSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_75(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> comparator,
+  ) {
+    return __objc_msgSend_75(
+      obj,
+      sel,
+      comparator,
+    );
+  }
+
+  late final __objc_msgSend_75Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_75 = __objc_msgSend_75Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_subarrayWithRange_1 = _registerName1("subarrayWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_76(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_76(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_76Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_76 = __objc_msgSend_76Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _class_NSError1 = _getClass1("NSError");
+  late final _sel_initWithDomain_code_userInfo_1 =
+      _registerName1("initWithDomain:code:userInfo:");
+  instancetype _objc_msgSend_77(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSErrorDomain domain,
+    int code,
+  ) {
+    return __objc_msgSend_77(
+      obj,
+      sel,
+      domain,
+      code,
+    );
+  }
+
+  late final __objc_msgSend_77Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSErrorDomain, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_77 = __objc_msgSend_77Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSErrorDomain, int)>();
+
+  late final _sel_errorWithDomain_code_userInfo_1 =
+      _registerName1("errorWithDomain:code:userInfo:");
+  late final _sel_domain1 = _registerName1("domain");
+  late final _sel_code1 = _registerName1("code");
+  int _objc_msgSend_78(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_78(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_78Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_78 = __objc_msgSend_78Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setKeys_triggerChangeNotificationsForDependentKey_1 =
+      _registerName1("setKeys:triggerChangeNotificationsForDependentKey:");
+  void _objc_msgSend_79(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> dependentKey,
+  ) {
+    return __objc_msgSend_79(
+      obj,
+      sel,
+      keys,
+      dependentKey,
+    );
+  }
+
+  late final __objc_msgSend_79Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_79 = __objc_msgSend_79Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classFallbacksForKeyedArchiver1 =
+      _registerName1("classFallbacksForKeyedArchiver");
+  ffi.Pointer<ObjCObject> _objc_msgSend_80(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_80(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_80Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_80 = __objc_msgSend_80Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_classForKeyedUnarchiver1 =
+      _registerName1("classForKeyedUnarchiver");
+  late final _sel_writeToURL_error_1 = _registerName1("writeToURL:error:");
+  bool _objc_msgSend_81(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_81(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_81Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_81 = __objc_msgSend_81Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_makeObjectsPerformSelector_1 =
+      _registerName1("makeObjectsPerformSelector:");
+  late final _sel_makeObjectsPerformSelector_withObject_1 =
+      _registerName1("makeObjectsPerformSelector:withObject:");
+  void _objc_msgSend_82(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_82(
+      obj,
+      sel,
+      aSelector,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_82Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_82 = __objc_msgSend_82Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSIndexSet1 = _getClass1("NSIndexSet");
+  late final _sel_indexSet1 = _registerName1("indexSet");
+  late final _sel_indexSetWithIndex_1 = _registerName1("indexSetWithIndex:");
+  late final _sel_indexSetWithIndexesInRange_1 =
+      _registerName1("indexSetWithIndexesInRange:");
+  instancetype _objc_msgSend_83(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_83(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_83Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_83 = __objc_msgSend_83Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_initWithIndexesInRange_1 =
+      _registerName1("initWithIndexesInRange:");
+  late final _sel_initWithIndexSet_1 = _registerName1("initWithIndexSet:");
+  instancetype _objc_msgSend_84(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_84(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_84Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_84 = __objc_msgSend_84Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithIndex_1 = _registerName1("initWithIndex:");
+  late final _sel_isEqualToIndexSet_1 = _registerName1("isEqualToIndexSet:");
+  bool _objc_msgSend_85(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_85(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_85Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_85 = __objc_msgSend_85Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstIndex1 = _registerName1("firstIndex");
+  late final _sel_lastIndex1 = _registerName1("lastIndex");
+  late final _sel_indexGreaterThanIndex_1 =
+      _registerName1("indexGreaterThanIndex:");
+  int _objc_msgSend_86(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_86(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_86Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_86 = __objc_msgSend_86Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_indexLessThanIndex_1 = _registerName1("indexLessThanIndex:");
+  late final _sel_indexGreaterThanOrEqualToIndex_1 =
+      _registerName1("indexGreaterThanOrEqualToIndex:");
+  late final _sel_indexLessThanOrEqualToIndex_1 =
+      _registerName1("indexLessThanOrEqualToIndex:");
+  late final _sel_getIndexes_maxCount_inIndexRange_1 =
+      _registerName1("getIndexes:maxCount:inIndexRange:");
+  int _objc_msgSend_87(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexBuffer,
+    int bufferSize,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_87(
+      obj,
+      sel,
+      indexBuffer,
+      bufferSize,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_87Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_87 = __objc_msgSend_87Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int, NSRangePointer)>();
+
+  late final _sel_countOfIndexesInRange_1 =
+      _registerName1("countOfIndexesInRange:");
+  int _objc_msgSend_88(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_88(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_88Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_88 = __objc_msgSend_88Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndex_1 = _registerName1("containsIndex:");
+  bool _objc_msgSend_89(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_89(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_89Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_89 = __objc_msgSend_89Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_containsIndexesInRange_1 =
+      _registerName1("containsIndexesInRange:");
+  bool _objc_msgSend_90(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_90(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_90Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_90 = __objc_msgSend_90Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndexes_1 = _registerName1("containsIndexes:");
+  late final _sel_intersectsIndexesInRange_1 =
+      _registerName1("intersectsIndexesInRange:");
+  ffi.Pointer<_ObjCBlockDesc> _newBlockDesc1() {
+    final d =
+        pkg_ffi.calloc.allocate<_ObjCBlockDesc>(ffi.sizeOf<_ObjCBlockDesc>());
+    d.ref.size = ffi.sizeOf<_ObjCBlock>();
+    return d;
+  }
+
+  late final _objc_block_desc1 = _newBlockDesc1();
+  late final _objc_concrete_global_block1 =
+      _lookup<ffi.Void>('_NSConcreteGlobalBlock');
+  ffi.Pointer<_ObjCBlock> _newBlock1(
+      ffi.Pointer<ffi.Void> invoke, ffi.Pointer<ffi.Void> target) {
+    final b = pkg_ffi.calloc.allocate<_ObjCBlock>(ffi.sizeOf<_ObjCBlock>());
+    b.ref.isa = _objc_concrete_global_block1;
+    b.ref.invoke = invoke;
+    b.ref.target = target;
+    b.ref.descriptor = _objc_block_desc1;
+    final copy = _Block_copy(b.cast()).cast<_ObjCBlock>();
+    pkg_ffi.calloc.free(b);
+    return copy;
+  }
+
+  ffi.Pointer<ffi.Void> _Block_copy(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_copy(
+      value,
+    );
+  }
+
+  late final __Block_copyPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>)>>('_Block_copy');
+  late final __Block_copy = __Block_copyPtr
+      .asFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>();
+
+  void _Block_release(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_release(
+      value,
+    );
+  }
+
+  late final __Block_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
+          '_Block_release');
+  late final __Block_release =
+      __Block_releasePtr.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
+
+  late final _objc_releaseFinalizer11 =
+      ffi.NativeFinalizer(__Block_releasePtr.cast());
+  late final _sel_enumerateIndexesUsingBlock_1 =
+      _registerName1("enumerateIndexesUsingBlock:");
+  void _objc_msgSend_91(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_91(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_91Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_91 = __objc_msgSend_91Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesWithOptions_usingBlock_1 =
+      _registerName1("enumerateIndexesWithOptions:usingBlock:");
+  void _objc_msgSend_92(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_92(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_92Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_92 = __objc_msgSend_92Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesInRange_options_usingBlock_1 =
+      _registerName1("enumerateIndexesInRange:options:usingBlock:");
+  void _objc_msgSend_93(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_93(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_93Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_93 = __objc_msgSend_93Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexPassingTest_1 = _registerName1("indexPassingTest:");
+  int _objc_msgSend_94(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_94(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_94Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_94 = __objc_msgSend_94Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexWithOptions_passingTest_1 =
+      _registerName1("indexWithOptions:passingTest:");
+  int _objc_msgSend_95(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_95(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_95Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_95 = __objc_msgSend_95Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexInRange_options_passingTest_1 =
+      _registerName1("indexInRange:options:passingTest:");
+  int _objc_msgSend_96(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_96(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_96Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_96 = __objc_msgSend_96Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesPassingTest_1 = _registerName1("indexesPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_97(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_97(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_97Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_97 = __objc_msgSend_97Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesWithOptions_passingTest_1 =
+      _registerName1("indexesWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_98(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_98(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_98Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_98 = __objc_msgSend_98Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesInRange_options_passingTest_1 =
+      _registerName1("indexesInRange:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_99(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_99(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_99Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_99 = __objc_msgSend_99Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesUsingBlock_1 =
+      _registerName1("enumerateRangesUsingBlock:");
+  void _objc_msgSend_100(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_100(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_100Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_100 = __objc_msgSend_100Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesWithOptions_usingBlock_1 =
+      _registerName1("enumerateRangesWithOptions:usingBlock:");
+  void _objc_msgSend_101(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_101(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_101Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_101 = __objc_msgSend_101Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesInRange_options_usingBlock_1 =
+      _registerName1("enumerateRangesInRange:options:usingBlock:");
+  void _objc_msgSend_102(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_102(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_102Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_102 = __objc_msgSend_102Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsAtIndexes_1 = _registerName1("objectsAtIndexes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_103(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_103(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_103Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_103 = __objc_msgSend_103Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectAtIndexedSubscript_1 =
+      _registerName1("objectAtIndexedSubscript:");
+  late final _sel_enumerateObjectsUsingBlock_1 =
+      _registerName1("enumerateObjectsUsingBlock:");
+  void _objc_msgSend_104(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_104(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_104Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_104 = __objc_msgSend_104Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_105(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_105(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_105Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_105 = __objc_msgSend_105Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsAtIndexes_options_usingBlock_1 =
+      _registerName1("enumerateObjectsAtIndexes:options:usingBlock:");
+  void _objc_msgSend_106(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_106(
+      obj,
+      sel,
+      s,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_106Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_106 = __objc_msgSend_106Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectPassingTest_1 =
+      _registerName1("indexOfObjectPassingTest:");
+  int _objc_msgSend_107(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_107(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_107Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_107 = __objc_msgSend_107Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectWithOptions_passingTest_1 =
+      _registerName1("indexOfObjectWithOptions:passingTest:");
+  int _objc_msgSend_108(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_108(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_108Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_108 = __objc_msgSend_108Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectAtIndexes_options_passingTest_1 =
+      _registerName1("indexOfObjectAtIndexes:options:passingTest:");
+  int _objc_msgSend_109(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_109(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_109Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_109 = __objc_msgSend_109Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsPassingTest_1 =
+      _registerName1("indexesOfObjectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_110(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_110(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_110Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_110 = __objc_msgSend_110Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsWithOptions_passingTest_1 =
+      _registerName1("indexesOfObjectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_111(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_111(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_111Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_111 = __objc_msgSend_111Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsAtIndexes_options_passingTest_1 =
+      _registerName1("indexesOfObjectsAtIndexes:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_112(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_112(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_112Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_112 = __objc_msgSend_112Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_sortedArrayUsingComparator_1 =
+      _registerName1("sortedArrayUsingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_113(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_113(
+      obj,
+      sel,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_113Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_113 = __objc_msgSend_113Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSComparator)>();
+
+  late final _sel_sortedArrayWithOptions_usingComparator_1 =
+      _registerName1("sortedArrayWithOptions:usingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_114(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_114(
+      obj,
+      sel,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_114Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_114 = __objc_msgSend_114Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, NSComparator)>();
+
+  late final _sel_indexOfObject_inSortedRange_options_usingComparator_1 =
+      _registerName1("indexOfObject:inSortedRange:options:usingComparator:");
+  int _objc_msgSend_115(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> obj1,
+    NSRange r,
+    int opts,
+    NSComparator cmp,
+  ) {
+    return __objc_msgSend_115(
+      obj,
+      sel,
+      obj1,
+      r,
+      opts,
+      cmp,
+    );
+  }
+
+  late final __objc_msgSend_115Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSRange,
+              ffi.Int32,
+              NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_115 = __objc_msgSend_115Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, int, NSComparator)>();
+
+  late final _sel_array1 = _registerName1("array");
+  late final _sel_arrayWithObject_1 = _registerName1("arrayWithObject:");
+  late final _sel_arrayWithObjects_count_1 =
+      _registerName1("arrayWithObjects:count:");
+  late final _sel_arrayWithObjects_1 = _registerName1("arrayWithObjects:");
+  late final _sel_arrayWithArray_1 = _registerName1("arrayWithArray:");
+  late final _sel_initWithObjects_1 = _registerName1("initWithObjects:");
+  late final _sel_initWithArray_1 = _registerName1("initWithArray:");
+  late final _sel_initWithArray_copyItems_1 =
+      _registerName1("initWithArray:copyItems:");
+  instancetype _objc_msgSend_116(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> array,
+    bool flag,
+  ) {
+    return __objc_msgSend_116(
+      obj,
+      sel,
+      array,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_116Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_116 = __objc_msgSend_116Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithContentsOfURL_error_1 =
+      _registerName1("initWithContentsOfURL:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_117(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_117(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_117Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_117 = __objc_msgSend_117Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfURL_error_1 =
+      _registerName1("arrayWithContentsOfURL:error:");
+  late final _sel_getObjects_1 = _registerName1("getObjects:");
+  void _objc_msgSend_118(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+  ) {
+    return __objc_msgSend_118(
+      obj,
+      sel,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_118Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_118 = __objc_msgSend_118Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfFile_1 =
+      _registerName1("arrayWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_119(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_119(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_119Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_119 = __objc_msgSend_119Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayWithContentsOfURL_1 =
+      _registerName1("arrayWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_120(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_120(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_120Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_120 = __objc_msgSend_120Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithContentsOfFile_1 =
+      _registerName1("initWithContentsOfFile:");
+  late final _sel_initWithContentsOfURL_1 =
+      _registerName1("initWithContentsOfURL:");
+  late final _sel_writeToURL_atomically_1 =
+      _registerName1("writeToURL:atomically:");
+  bool _objc_msgSend_121(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool atomically,
+  ) {
+    return __objc_msgSend_121(
+      obj,
+      sel,
+      url,
+      atomically,
+    );
+  }
+
+  late final __objc_msgSend_121Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_121 = __objc_msgSend_121Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_pathsMatchingExtensions_1 =
+      _registerName1("pathsMatchingExtensions:");
+  late final _sel_valueForKey_1 = _registerName1("valueForKey:");
+  late final _sel_setValue_forKey_1 = _registerName1("setValue:forKey:");
+  void _objc_msgSend_122(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_122(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_122Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_122 = __objc_msgSend_122Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_toObjectsAtIndexes_forKeyPath_options_context_1 =
+      _registerName1(
+          "addObserver:toObjectsAtIndexes:forKeyPath:options:context:");
+  void _objc_msgSend_123(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_123(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_123Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_123 = __objc_msgSend_123Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_context_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:context:");
+  void _objc_msgSend_124(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_124(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_124Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_124 = __objc_msgSend_124Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:");
+  void _objc_msgSend_125(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_125(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_125Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_125 = __objc_msgSend_125Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_forKeyPath_options_context_1 =
+      _registerName1("addObserver:forKeyPath:options:context:");
+  void _objc_msgSend_126(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_126(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_126Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_126 = __objc_msgSend_126Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_context_1 =
+      _registerName1("removeObserver:forKeyPath:context:");
+  void _objc_msgSend_127(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_127(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_127Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_127 = __objc_msgSend_127Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_1 =
+      _registerName1("removeObserver:forKeyPath:");
+  void _objc_msgSend_128(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_128(
+      obj,
+      sel,
+      observer,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_128Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_128 = __objc_msgSend_128Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingDescriptors_1 =
+      _registerName1("sortedArrayUsingDescriptors:");
+  late final _class_NSPredicate1 = _getClass1("NSPredicate");
+  late final _sel_predicateWithFormat_argumentArray_1 =
+      _registerName1("predicateWithFormat:argumentArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_129(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<ObjCObject> arguments,
+  ) {
+    return __objc_msgSend_129(
+      obj,
+      sel,
+      predicateFormat,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_129Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_129 = __objc_msgSend_129Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_1 =
+      _registerName1("predicateWithFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_130(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+  ) {
+    return __objc_msgSend_130(
+      obj,
+      sel,
+      predicateFormat,
+    );
+  }
+
+  late final __objc_msgSend_130Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_130 = __objc_msgSend_130Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_arguments_1 =
+      _registerName1("predicateWithFormat:arguments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_131(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_131(
+      obj,
+      sel,
+      predicateFormat,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_131Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_131 = __objc_msgSend_131Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_predicateFromMetadataQueryString_1 =
+      _registerName1("predicateFromMetadataQueryString:");
+  late final _sel_predicateWithValue_1 = _registerName1("predicateWithValue:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_132(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_132(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_132Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_132 = __objc_msgSend_132Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _class_NSDictionary1 = _getClass1("NSDictionary");
+  late final _sel_objectForKey_1 = _registerName1("objectForKey:");
+  late final _sel_keyEnumerator1 = _registerName1("keyEnumerator");
+  late final _sel_initWithObjects_forKeys_count_1 =
+      _registerName1("initWithObjects:forKeys:count:");
+  instancetype _objc_msgSend_133(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int cnt,
+  ) {
+    return __objc_msgSend_133(
+      obj,
+      sel,
+      objects,
+      keys,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_133Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_133 = __objc_msgSend_133Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_allKeys1 = _registerName1("allKeys");
+  late final _sel_allKeysForObject_1 = _registerName1("allKeysForObject:");
+  late final _sel_allValues1 = _registerName1("allValues");
+  late final _sel_descriptionInStringsFileFormat1 =
+      _registerName1("descriptionInStringsFileFormat");
+  late final _sel_isEqualToDictionary_1 =
+      _registerName1("isEqualToDictionary:");
+  bool _objc_msgSend_134(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+  ) {
+    return __objc_msgSend_134(
+      obj,
+      sel,
+      otherDictionary,
+    );
+  }
+
+  late final __objc_msgSend_134Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_134 = __objc_msgSend_134Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectsForKeys_notFoundMarker_1 =
+      _registerName1("objectsForKeys:notFoundMarker:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_135(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> marker,
+  ) {
+    return __objc_msgSend_135(
+      obj,
+      sel,
+      keys,
+      marker,
+    );
+  }
+
+  late final __objc_msgSend_135Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_135 = __objc_msgSend_135Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_keysSortedByValueUsingSelector_1 =
+      _registerName1("keysSortedByValueUsingSelector:");
+  late final _sel_getObjects_andKeys_count_1 =
+      _registerName1("getObjects:andKeys:count:");
+  void _objc_msgSend_136(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int count,
+  ) {
+    return __objc_msgSend_136(
+      obj,
+      sel,
+      objects,
+      keys,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_136Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_136 = __objc_msgSend_136Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_objectForKeyedSubscript_1 =
+      _registerName1("objectForKeyedSubscript:");
+  late final _sel_enumerateKeysAndObjectsUsingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsUsingBlock:");
+  void _objc_msgSend_137(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_137(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_137Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_137 = __objc_msgSend_137Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateKeysAndObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_138(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_138(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_138Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_138 = __objc_msgSend_138Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_keysSortedByValueUsingComparator_1 =
+      _registerName1("keysSortedByValueUsingComparator:");
+  late final _sel_keysSortedByValueWithOptions_usingComparator_1 =
+      _registerName1("keysSortedByValueWithOptions:usingComparator:");
+  late final _sel_getObjects_andKeys_1 = _registerName1("getObjects:andKeys:");
+  void _objc_msgSend_139(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+  ) {
+    return __objc_msgSend_139(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_139Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_139 = __objc_msgSend_139Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfFile_1 =
+      _registerName1("dictionaryWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_140(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_140(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_140Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_140 = __objc_msgSend_140Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_1 =
+      _registerName1("dictionaryWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_141(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_141(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_141Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_141 = __objc_msgSend_141Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionary1 = _registerName1("dictionary");
+  late final _sel_dictionaryWithObject_forKey_1 =
+      _registerName1("dictionaryWithObject:forKey:");
+  instancetype _objc_msgSend_142(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_142(
+      obj,
+      sel,
+      object,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_142Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_142 = __objc_msgSend_142Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_count_1 =
+      _registerName1("dictionaryWithObjects:forKeys:count:");
+  late final _sel_dictionaryWithObjectsAndKeys_1 =
+      _registerName1("dictionaryWithObjectsAndKeys:");
+  late final _sel_dictionaryWithDictionary_1 =
+      _registerName1("dictionaryWithDictionary:");
+  instancetype _objc_msgSend_143(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_143(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_143Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_143 = __objc_msgSend_143Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_1 =
+      _registerName1("dictionaryWithObjects:forKeys:");
+  instancetype _objc_msgSend_144(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objects,
+    ffi.Pointer<ObjCObject> keys,
+  ) {
+    return __objc_msgSend_144(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_144Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_144 = __objc_msgSend_144Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithObjectsAndKeys_1 =
+      _registerName1("initWithObjectsAndKeys:");
+  late final _sel_initWithDictionary_1 = _registerName1("initWithDictionary:");
+  late final _sel_initWithDictionary_copyItems_1 =
+      _registerName1("initWithDictionary:copyItems:");
+  instancetype _objc_msgSend_145(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+    bool flag,
+  ) {
+    return __objc_msgSend_145(
+      obj,
+      sel,
+      otherDictionary,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_145Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_145 = __objc_msgSend_145Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithObjects_forKeys_1 =
+      _registerName1("initWithObjects:forKeys:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_146(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_146(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_146Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_146 = __objc_msgSend_146Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_error_1 =
+      _registerName1("dictionaryWithContentsOfURL:error:");
+  late final _sel_sharedKeySetForKeys_1 =
+      _registerName1("sharedKeySetForKeys:");
+  late final _sel_countByEnumeratingWithState_objects_count_1 =
+      _registerName1("countByEnumeratingWithState:objects:count:");
+  int _objc_msgSend_147(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSFastEnumerationState> state,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> buffer,
+    int len,
+  ) {
+    return __objc_msgSend_147(
+      obj,
+      sel,
+      state,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_147Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSFastEnumerationState>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_147 = __objc_msgSend_147Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSFastEnumerationState>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_fileSize1 = _registerName1("fileSize");
+  int _objc_msgSend_148(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_148(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_148Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedLongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_148 = __objc_msgSend_148Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSDate1 = _getClass1("NSDate");
+  late final _sel_timeIntervalSinceReferenceDate1 =
+      _registerName1("timeIntervalSinceReferenceDate");
+  double _objc_msgSend_149(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_149(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_149Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_149 = __objc_msgSend_149Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("initWithTimeIntervalSinceReferenceDate:");
+  instancetype _objc_msgSend_150(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+  ) {
+    return __objc_msgSend_150(
+      obj,
+      sel,
+      ti,
+    );
+  }
+
+  late final __objc_msgSend_150Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_150 = __objc_msgSend_150Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_timeIntervalSinceDate_1 =
+      _registerName1("timeIntervalSinceDate:");
+  double _objc_msgSend_151(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_151(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_151Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_151 = __objc_msgSend_151Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeIntervalSinceNow1 =
+      _registerName1("timeIntervalSinceNow");
+  late final _sel_timeIntervalSince19701 =
+      _registerName1("timeIntervalSince1970");
+  late final _sel_addTimeInterval_1 = _registerName1("addTimeInterval:");
+  late final _sel_dateByAddingTimeInterval_1 =
+      _registerName1("dateByAddingTimeInterval:");
+  late final _sel_earlierDate_1 = _registerName1("earlierDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_152(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_152(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_152Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_152 = __objc_msgSend_152Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_laterDate_1 = _registerName1("laterDate:");
+  late final _sel_compare_1 = _registerName1("compare:");
+  int _objc_msgSend_153(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_153(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_153Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_153 = __objc_msgSend_153Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToDate_1 = _registerName1("isEqualToDate:");
+  bool _objc_msgSend_154(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDate,
+  ) {
+    return __objc_msgSend_154(
+      obj,
+      sel,
+      otherDate,
+    );
+  }
+
+  late final __objc_msgSend_154Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_154 = __objc_msgSend_154Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_date1 = _registerName1("date");
+  late final _sel_dateWithTimeIntervalSinceNow_1 =
+      _registerName1("dateWithTimeIntervalSinceNow:");
+  late final _sel_dateWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("dateWithTimeIntervalSinceReferenceDate:");
+  late final _sel_dateWithTimeIntervalSince1970_1 =
+      _registerName1("dateWithTimeIntervalSince1970:");
+  late final _sel_dateWithTimeInterval_sinceDate_1 =
+      _registerName1("dateWithTimeInterval:sinceDate:");
+  instancetype _objc_msgSend_155(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double secsToBeAdded,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_155(
+      obj,
+      sel,
+      secsToBeAdded,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_155Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_155 = __objc_msgSend_155Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          double, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_distantFuture1 = _registerName1("distantFuture");
+  ffi.Pointer<ObjCObject> _objc_msgSend_156(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_156(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_156Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_156 = __objc_msgSend_156Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_distantPast1 = _registerName1("distantPast");
+  late final _sel_now1 = _registerName1("now");
+  late final _sel_initWithTimeIntervalSinceNow_1 =
+      _registerName1("initWithTimeIntervalSinceNow:");
+  late final _sel_initWithTimeIntervalSince1970_1 =
+      _registerName1("initWithTimeIntervalSince1970:");
+  late final _sel_initWithTimeInterval_sinceDate_1 =
+      _registerName1("initWithTimeInterval:sinceDate:");
+  late final _sel_dateWithNaturalLanguageString_locale_1 =
+      _registerName1("dateWithNaturalLanguageString:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_157(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_157(
+      obj,
+      sel,
+      string,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_157Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_157 = __objc_msgSend_157Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithNaturalLanguageString_1 =
+      _registerName1("dateWithNaturalLanguageString:");
+  late final _sel_dateWithString_1 = _registerName1("dateWithString:");
+  late final _class_NSCalendarDate1 = _getClass1("NSCalendarDate");
+  late final _sel_calendarDate1 = _registerName1("calendarDate");
+  late final _sel_dateWithString_calendarFormat_locale_1 =
+      _registerName1("dateWithString:calendarFormat:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_158(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_158(
+      obj,
+      sel,
+      description,
+      format,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_158Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_158 = __objc_msgSend_158Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithString_calendarFormat_1 =
+      _registerName1("dateWithString:calendarFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_159(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_159(
+      obj,
+      sel,
+      description,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_159Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_159 = __objc_msgSend_159Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSTimeZone1 = _getClass1("NSTimeZone");
+  late final _sel_name1 = _registerName1("name");
+  late final _sel_data1 = _registerName1("data");
+  late final _sel_secondsFromGMTForDate_1 =
+      _registerName1("secondsFromGMTForDate:");
+  int _objc_msgSend_160(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_160(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_160Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_160 = __objc_msgSend_160Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_abbreviationForDate_1 =
+      _registerName1("abbreviationForDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_161(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_161(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_161Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_161 = __objc_msgSend_161Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isDaylightSavingTimeForDate_1 =
+      _registerName1("isDaylightSavingTimeForDate:");
+  late final _sel_daylightSavingTimeOffsetForDate_1 =
+      _registerName1("daylightSavingTimeOffsetForDate:");
+  late final _sel_nextDaylightSavingTimeTransitionAfterDate_1 =
+      _registerName1("nextDaylightSavingTimeTransitionAfterDate:");
+  late final _sel_systemTimeZone1 = _registerName1("systemTimeZone");
+  ffi.Pointer<ObjCObject> _objc_msgSend_162(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_162(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_162Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_162 = __objc_msgSend_162Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_resetSystemTimeZone1 = _registerName1("resetSystemTimeZone");
+  late final _sel_defaultTimeZone1 = _registerName1("defaultTimeZone");
+  late final _sel_setDefaultTimeZone_1 = _registerName1("setDefaultTimeZone:");
+  void _objc_msgSend_163(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_163(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_163Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_163 = __objc_msgSend_163Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_localTimeZone1 = _registerName1("localTimeZone");
+  late final _sel_knownTimeZoneNames1 = _registerName1("knownTimeZoneNames");
+  late final _sel_abbreviationDictionary1 =
+      _registerName1("abbreviationDictionary");
+  ffi.Pointer<ObjCObject> _objc_msgSend_164(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_164(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_164Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_164 = __objc_msgSend_164Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAbbreviationDictionary_1 =
+      _registerName1("setAbbreviationDictionary:");
+  void _objc_msgSend_165(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_165(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_165Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_165 = __objc_msgSend_165Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneDataVersion1 = _registerName1("timeZoneDataVersion");
+  late final _sel_secondsFromGMT1 = _registerName1("secondsFromGMT");
+  late final _sel_abbreviation1 = _registerName1("abbreviation");
+  late final _sel_isDaylightSavingTime1 =
+      _registerName1("isDaylightSavingTime");
+  late final _sel_daylightSavingTimeOffset1 =
+      _registerName1("daylightSavingTimeOffset");
+  late final _sel_nextDaylightSavingTimeTransition1 =
+      _registerName1("nextDaylightSavingTimeTransition");
+  late final _sel_isEqualToTimeZone_1 = _registerName1("isEqualToTimeZone:");
+  bool _objc_msgSend_166(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_166(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_166Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_166 = __objc_msgSend_166Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSLocale1 = _getClass1("NSLocale");
+  late final _sel_displayNameForKey_value_1 =
+      _registerName1("displayNameForKey:value:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_167(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSLocaleKey key,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_167(
+      obj,
+      sel,
+      key,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_167Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSLocaleKey,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_167 = __objc_msgSend_167Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSLocaleKey, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithLocaleIdentifier_1 =
+      _registerName1("initWithLocaleIdentifier:");
+  late final _sel_localeIdentifier1 = _registerName1("localeIdentifier");
+  late final _sel_localizedStringForLocaleIdentifier_1 =
+      _registerName1("localizedStringForLocaleIdentifier:");
+  late final _sel_languageCode1 = _registerName1("languageCode");
+  late final _sel_localizedStringForLanguageCode_1 =
+      _registerName1("localizedStringForLanguageCode:");
+  late final _sel_countryCode1 = _registerName1("countryCode");
+  late final _sel_localizedStringForCountryCode_1 =
+      _registerName1("localizedStringForCountryCode:");
+  late final _sel_scriptCode1 = _registerName1("scriptCode");
+  late final _sel_localizedStringForScriptCode_1 =
+      _registerName1("localizedStringForScriptCode:");
+  late final _sel_variantCode1 = _registerName1("variantCode");
+  late final _sel_localizedStringForVariantCode_1 =
+      _registerName1("localizedStringForVariantCode:");
+  late final _class_NSCharacterSet1 = _getClass1("NSCharacterSet");
+  late final _sel_controlCharacterSet1 = _registerName1("controlCharacterSet");
+  ffi.Pointer<ObjCObject> _objc_msgSend_168(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_168(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_168Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_168 = __objc_msgSend_168Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_whitespaceCharacterSet1 =
+      _registerName1("whitespaceCharacterSet");
+  late final _sel_whitespaceAndNewlineCharacterSet1 =
+      _registerName1("whitespaceAndNewlineCharacterSet");
+  late final _sel_decimalDigitCharacterSet1 =
+      _registerName1("decimalDigitCharacterSet");
+  late final _sel_letterCharacterSet1 = _registerName1("letterCharacterSet");
+  late final _sel_lowercaseLetterCharacterSet1 =
+      _registerName1("lowercaseLetterCharacterSet");
+  late final _sel_uppercaseLetterCharacterSet1 =
+      _registerName1("uppercaseLetterCharacterSet");
+  late final _sel_nonBaseCharacterSet1 = _registerName1("nonBaseCharacterSet");
+  late final _sel_alphanumericCharacterSet1 =
+      _registerName1("alphanumericCharacterSet");
+  late final _sel_decomposableCharacterSet1 =
+      _registerName1("decomposableCharacterSet");
+  late final _sel_illegalCharacterSet1 = _registerName1("illegalCharacterSet");
+  late final _sel_punctuationCharacterSet1 =
+      _registerName1("punctuationCharacterSet");
+  late final _sel_capitalizedLetterCharacterSet1 =
+      _registerName1("capitalizedLetterCharacterSet");
+  late final _sel_symbolCharacterSet1 = _registerName1("symbolCharacterSet");
+  late final _sel_newlineCharacterSet1 = _registerName1("newlineCharacterSet");
+  late final _sel_characterSetWithRange_1 =
+      _registerName1("characterSetWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_169(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange aRange,
+  ) {
+    return __objc_msgSend_169(
+      obj,
+      sel,
+      aRange,
+    );
+  }
+
+  late final __objc_msgSend_169Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_169 = __objc_msgSend_169Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_characterSetWithCharactersInString_1 =
+      _registerName1("characterSetWithCharactersInString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_170(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aString,
+  ) {
+    return __objc_msgSend_170(
+      obj,
+      sel,
+      aString,
+    );
+  }
+
+  late final __objc_msgSend_170Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_170 = __objc_msgSend_170Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithBitmapRepresentation_1 =
+      _registerName1("characterSetWithBitmapRepresentation:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_171(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_171(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_171Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_171 = __objc_msgSend_171Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithContentsOfFile_1 =
+      _registerName1("characterSetWithContentsOfFile:");
+  late final _sel_characterIsMember_1 = _registerName1("characterIsMember:");
+  bool _objc_msgSend_172(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aCharacter,
+  ) {
+    return __objc_msgSend_172(
+      obj,
+      sel,
+      aCharacter,
+    );
+  }
+
+  late final __objc_msgSend_172Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              unichar)>>('objc_msgSend');
+  late final __objc_msgSend_172 = __objc_msgSend_172Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_bitmapRepresentation1 =
+      _registerName1("bitmapRepresentation");
+  late final _sel_invertedSet1 = _registerName1("invertedSet");
+  late final _sel_longCharacterIsMember_1 =
+      _registerName1("longCharacterIsMember:");
+  bool _objc_msgSend_173(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int theLongChar,
+  ) {
+    return __objc_msgSend_173(
+      obj,
+      sel,
+      theLongChar,
+    );
+  }
+
+  late final __objc_msgSend_173Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              UTF32Char)>>('objc_msgSend');
+  late final __objc_msgSend_173 = __objc_msgSend_173Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isSupersetOfSet_1 = _registerName1("isSupersetOfSet:");
+  bool _objc_msgSend_174(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> theOtherSet,
+  ) {
+    return __objc_msgSend_174(
+      obj,
+      sel,
+      theOtherSet,
+    );
+  }
+
+  late final __objc_msgSend_174Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_174 = __objc_msgSend_174Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_hasMemberInPlane_1 = _registerName1("hasMemberInPlane:");
+  bool _objc_msgSend_175(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int thePlane,
+  ) {
+    return __objc_msgSend_175(
+      obj,
+      sel,
+      thePlane,
+    );
+  }
+
+  late final __objc_msgSend_175Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Uint8)>>('objc_msgSend');
+  late final __objc_msgSend_175 = __objc_msgSend_175Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_URLUserAllowedCharacterSet1 =
+      _registerName1("URLUserAllowedCharacterSet");
+  late final _sel_URLPasswordAllowedCharacterSet1 =
+      _registerName1("URLPasswordAllowedCharacterSet");
+  late final _sel_URLHostAllowedCharacterSet1 =
+      _registerName1("URLHostAllowedCharacterSet");
+  late final _sel_URLPathAllowedCharacterSet1 =
+      _registerName1("URLPathAllowedCharacterSet");
+  late final _sel_URLQueryAllowedCharacterSet1 =
+      _registerName1("URLQueryAllowedCharacterSet");
+  late final _sel_URLFragmentAllowedCharacterSet1 =
+      _registerName1("URLFragmentAllowedCharacterSet");
+  late final _sel_exemplarCharacterSet1 =
+      _registerName1("exemplarCharacterSet");
+  late final _sel_calendarIdentifier1 = _registerName1("calendarIdentifier");
+  late final _sel_localizedStringForCalendarIdentifier_1 =
+      _registerName1("localizedStringForCalendarIdentifier:");
+  late final _sel_collationIdentifier1 = _registerName1("collationIdentifier");
+  late final _sel_localizedStringForCollationIdentifier_1 =
+      _registerName1("localizedStringForCollationIdentifier:");
+  late final _sel_usesMetricSystem1 = _registerName1("usesMetricSystem");
+  late final _sel_decimalSeparator1 = _registerName1("decimalSeparator");
+  late final _sel_groupingSeparator1 = _registerName1("groupingSeparator");
+  late final _sel_currencySymbol1 = _registerName1("currencySymbol");
+  late final _sel_currencyCode1 = _registerName1("currencyCode");
+  late final _sel_localizedStringForCurrencyCode_1 =
+      _registerName1("localizedStringForCurrencyCode:");
+  late final _sel_collatorIdentifier1 = _registerName1("collatorIdentifier");
+  late final _sel_localizedStringForCollatorIdentifier_1 =
+      _registerName1("localizedStringForCollatorIdentifier:");
+  late final _sel_quotationBeginDelimiter1 =
+      _registerName1("quotationBeginDelimiter");
+  late final _sel_quotationEndDelimiter1 =
+      _registerName1("quotationEndDelimiter");
+  late final _sel_alternateQuotationBeginDelimiter1 =
+      _registerName1("alternateQuotationBeginDelimiter");
+  late final _sel_alternateQuotationEndDelimiter1 =
+      _registerName1("alternateQuotationEndDelimiter");
+  late final _sel_autoupdatingCurrentLocale1 =
+      _registerName1("autoupdatingCurrentLocale");
+  ffi.Pointer<ObjCObject> _objc_msgSend_176(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_176(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_176Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_176 = __objc_msgSend_176Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_currentLocale1 = _registerName1("currentLocale");
+  late final _sel_systemLocale1 = _registerName1("systemLocale");
+  late final _sel_localeWithLocaleIdentifier_1 =
+      _registerName1("localeWithLocaleIdentifier:");
+  late final _sel_availableLocaleIdentifiers1 =
+      _registerName1("availableLocaleIdentifiers");
+  late final _sel_ISOLanguageCodes1 = _registerName1("ISOLanguageCodes");
+  late final _sel_ISOCountryCodes1 = _registerName1("ISOCountryCodes");
+  late final _sel_ISOCurrencyCodes1 = _registerName1("ISOCurrencyCodes");
+  late final _sel_commonISOCurrencyCodes1 =
+      _registerName1("commonISOCurrencyCodes");
+  late final _sel_preferredLanguages1 = _registerName1("preferredLanguages");
+  late final _sel_componentsFromLocaleIdentifier_1 =
+      _registerName1("componentsFromLocaleIdentifier:");
+  late final _sel_localeIdentifierFromComponents_1 =
+      _registerName1("localeIdentifierFromComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_177(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_177(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_177Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_177 = __objc_msgSend_177Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_canonicalLocaleIdentifierFromString_1 =
+      _registerName1("canonicalLocaleIdentifierFromString:");
+  late final _sel_canonicalLanguageIdentifierFromString_1 =
+      _registerName1("canonicalLanguageIdentifierFromString:");
+  late final _sel_localeIdentifierFromWindowsLocaleCode_1 =
+      _registerName1("localeIdentifierFromWindowsLocaleCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_178(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int lcid,
+  ) {
+    return __objc_msgSend_178(
+      obj,
+      sel,
+      lcid,
+    );
+  }
+
+  late final __objc_msgSend_178Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Uint32)>>('objc_msgSend');
+  late final __objc_msgSend_178 = __objc_msgSend_178Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_windowsLocaleCodeFromLocaleIdentifier_1 =
+      _registerName1("windowsLocaleCodeFromLocaleIdentifier:");
+  int _objc_msgSend_179(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localeIdentifier,
+  ) {
+    return __objc_msgSend_179(
+      obj,
+      sel,
+      localeIdentifier,
+    );
+  }
+
+  late final __objc_msgSend_179Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Uint32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_179 = __objc_msgSend_179Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterDirectionForLanguage_1 =
+      _registerName1("characterDirectionForLanguage:");
+  int _objc_msgSend_180(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> isoLangCode,
+  ) {
+    return __objc_msgSend_180(
+      obj,
+      sel,
+      isoLangCode,
+    );
+  }
+
+  late final __objc_msgSend_180Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_180 = __objc_msgSend_180Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lineDirectionForLanguage_1 =
+      _registerName1("lineDirectionForLanguage:");
+  late final _sel_localizedName_locale_1 =
+      _registerName1("localizedName:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_181(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int style,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_181(
+      obj,
+      sel,
+      style,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_181Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_181 = __objc_msgSend_181Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneWithName_1 = _registerName1("timeZoneWithName:");
+  late final _sel_timeZoneWithName_data_1 =
+      _registerName1("timeZoneWithName:data:");
+  instancetype _objc_msgSend_182(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> tzName,
+    ffi.Pointer<ObjCObject> aData,
+  ) {
+    return __objc_msgSend_182(
+      obj,
+      sel,
+      tzName,
+      aData,
+    );
+  }
+
+  late final __objc_msgSend_182Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_182 = __objc_msgSend_182Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithName_1 = _registerName1("initWithName:");
+  late final _sel_initWithName_data_1 = _registerName1("initWithName:data:");
+  late final _sel_timeZoneForSecondsFromGMT_1 =
+      _registerName1("timeZoneForSecondsFromGMT:");
+  instancetype _objc_msgSend_183(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int seconds,
+  ) {
+    return __objc_msgSend_183(
+      obj,
+      sel,
+      seconds,
+    );
+  }
+
+  late final __objc_msgSend_183Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_183 = __objc_msgSend_183Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_timeZoneWithAbbreviation_1 =
+      _registerName1("timeZoneWithAbbreviation:");
+  late final _sel_dateWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("dateWithYear:month:day:hour:minute:second:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_184(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_184(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_184Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_184 = __objc_msgSend_184Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          int,
+          int,
+          int,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateByAddingYears_months_days_hours_minutes_seconds_1 =
+      _registerName1("dateByAddingYears:months:days:hours:minutes:seconds:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_185(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+  ) {
+    return __objc_msgSend_185(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+    );
+  }
+
+  late final __objc_msgSend_185Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_185 = __objc_msgSend_185Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, int, int, int)>();
+
+  late final _sel_dayOfCommonEra1 = _registerName1("dayOfCommonEra");
+  late final _sel_dayOfMonth1 = _registerName1("dayOfMonth");
+  late final _sel_dayOfWeek1 = _registerName1("dayOfWeek");
+  late final _sel_dayOfYear1 = _registerName1("dayOfYear");
+  late final _sel_hourOfDay1 = _registerName1("hourOfDay");
+  late final _sel_minuteOfHour1 = _registerName1("minuteOfHour");
+  late final _sel_monthOfYear1 = _registerName1("monthOfYear");
+  late final _sel_secondOfMinute1 = _registerName1("secondOfMinute");
+  late final _sel_yearOfCommonEra1 = _registerName1("yearOfCommonEra");
+  late final _sel_calendarFormat1 = _registerName1("calendarFormat");
+  late final _sel_descriptionWithCalendarFormat_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:locale:");
+  late final _sel_descriptionWithCalendarFormat_1 =
+      _registerName1("descriptionWithCalendarFormat:");
+  late final _sel_timeZone1 = _registerName1("timeZone");
+  late final _sel_initWithString_calendarFormat_locale_1 =
+      _registerName1("initWithString:calendarFormat:locale:");
+  late final _sel_initWithString_calendarFormat_1 =
+      _registerName1("initWithString:calendarFormat:");
+  late final _sel_initWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("initWithYear:month:day:hour:minute:second:timeZone:");
+  late final _sel_setCalendarFormat_1 = _registerName1("setCalendarFormat:");
+  void _objc_msgSend_186(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_186(
+      obj,
+      sel,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_186Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_186 = __objc_msgSend_186Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setTimeZone_1 = _registerName1("setTimeZone:");
+  void _objc_msgSend_187(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_187(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_187Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_187 = __objc_msgSend_187Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_years_months_days_hours_minutes_seconds_sinceDate_1 =
+      _registerName1("years:months:days:hours:minutes:seconds:sinceDate:");
+  void _objc_msgSend_188(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> yp,
+    ffi.Pointer<NSInteger> mop,
+    ffi.Pointer<NSInteger> dp,
+    ffi.Pointer<NSInteger> hp,
+    ffi.Pointer<NSInteger> mip,
+    ffi.Pointer<NSInteger> sp,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_188(
+      obj,
+      sel,
+      yp,
+      mop,
+      dp,
+      hp,
+      mip,
+      sp,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_188Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_188 = __objc_msgSend_188Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithCalendarFormat_timeZone_1 =
+      _registerName1("dateWithCalendarFormat:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_189(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_189(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_189Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_189 = __objc_msgSend_189Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithCalendarFormat_timeZone_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:timeZone:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_190(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_190(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_190Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_190 = __objc_msgSend_190Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileModificationDate1 =
+      _registerName1("fileModificationDate");
+  late final _sel_fileType1 = _registerName1("fileType");
+  late final _sel_filePosixPermissions1 =
+      _registerName1("filePosixPermissions");
+  late final _sel_fileOwnerAccountName1 =
+      _registerName1("fileOwnerAccountName");
+  late final _sel_fileGroupOwnerAccountName1 =
+      _registerName1("fileGroupOwnerAccountName");
+  late final _sel_fileSystemNumber1 = _registerName1("fileSystemNumber");
+  late final _sel_fileSystemFileNumber1 =
+      _registerName1("fileSystemFileNumber");
+  late final _sel_fileExtensionHidden1 = _registerName1("fileExtensionHidden");
+  late final _sel_fileHFSCreatorCode1 = _registerName1("fileHFSCreatorCode");
+  int _objc_msgSend_191(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_191(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_191Ptr = _lookup<
+      ffi.NativeFunction<
+          OSType Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_191 = __objc_msgSend_191Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileHFSTypeCode1 = _registerName1("fileHFSTypeCode");
+  late final _sel_fileIsImmutable1 = _registerName1("fileIsImmutable");
+  late final _sel_fileIsAppendOnly1 = _registerName1("fileIsAppendOnly");
+  late final _sel_fileCreationDate1 = _registerName1("fileCreationDate");
+  late final _sel_fileOwnerAccountID1 = _registerName1("fileOwnerAccountID");
+  ffi.Pointer<ObjCObject> _objc_msgSend_192(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_192(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_192Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_192 = __objc_msgSend_192Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileGroupOwnerAccountID1 =
+      _registerName1("fileGroupOwnerAccountID");
+  late final _sel_predicateWithBlock_1 = _registerName1("predicateWithBlock:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_193(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_193(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_193Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_193 = __objc_msgSend_193Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_predicateFormat1 = _registerName1("predicateFormat");
+  late final _sel_predicateWithSubstitutionVariables_1 =
+      _registerName1("predicateWithSubstitutionVariables:");
+  late final _sel_evaluateWithObject_1 = _registerName1("evaluateWithObject:");
+  late final _sel_evaluateWithObject_substitutionVariables_1 =
+      _registerName1("evaluateWithObject:substitutionVariables:");
+  bool _objc_msgSend_194(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> bindings,
+  ) {
+    return __objc_msgSend_194(
+      obj,
+      sel,
+      object,
+      bindings,
+    );
+  }
+
+  late final __objc_msgSend_194Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_194 = __objc_msgSend_194Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allowEvaluation1 = _registerName1("allowEvaluation");
+  late final _sel_filteredArrayUsingPredicate_1 =
+      _registerName1("filteredArrayUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_195(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_195(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_195Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_195 = __objc_msgSend_195Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithChar_1 = _registerName1("initWithChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_196(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_196(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_196Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Char)>>('objc_msgSend');
+  late final __objc_msgSend_196 = __objc_msgSend_196Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedChar_1 =
+      _registerName1("initWithUnsignedChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_197(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_197(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_197Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedChar)>>('objc_msgSend');
+  late final __objc_msgSend_197 = __objc_msgSend_197Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithShort_1 = _registerName1("initWithShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_198(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_198(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_198Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Short)>>('objc_msgSend');
+  late final __objc_msgSend_198 = __objc_msgSend_198Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedShort_1 =
+      _registerName1("initWithUnsignedShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_199(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_199(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_199Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedShort)>>('objc_msgSend');
+  late final __objc_msgSend_199 = __objc_msgSend_199Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithInt_1 = _registerName1("initWithInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_200(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_200(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_200Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_200 = __objc_msgSend_200Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedInt_1 =
+      _registerName1("initWithUnsignedInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_201(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_201(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_201Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedInt)>>('objc_msgSend');
+  late final __objc_msgSend_201 = __objc_msgSend_201Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLong_1 = _registerName1("initWithLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_202(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_202(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_202Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Long)>>('objc_msgSend');
+  late final __objc_msgSend_202 = __objc_msgSend_202Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLong_1 =
+      _registerName1("initWithUnsignedLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_203(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_203(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_203Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLong)>>('objc_msgSend');
+  late final __objc_msgSend_203 = __objc_msgSend_203Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLongLong_1 = _registerName1("initWithLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_204(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_204(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_204Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.LongLong)>>('objc_msgSend');
+  late final __objc_msgSend_204 = __objc_msgSend_204Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLongLong_1 =
+      _registerName1("initWithUnsignedLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_205(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_205(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_205Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLongLong)>>('objc_msgSend');
+  late final __objc_msgSend_205 = __objc_msgSend_205Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithFloat_1 = _registerName1("initWithFloat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_206(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_206(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_206Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Float)>>('objc_msgSend');
+  late final __objc_msgSend_206 = __objc_msgSend_206Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithDouble_1 = _registerName1("initWithDouble:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_207(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_207(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_207Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_207 = __objc_msgSend_207Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithBool_1 = _registerName1("initWithBool:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_208(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_208(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_208Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_208 = __objc_msgSend_208Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_initWithInteger_1 = _registerName1("initWithInteger:");
+  late final _sel_initWithUnsignedInteger_1 =
+      _registerName1("initWithUnsignedInteger:");
+  late final _sel_charValue1 = _registerName1("charValue");
+  int _objc_msgSend_209(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_209(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_209Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Char Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_209 = __objc_msgSend_209Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedCharValue1 = _registerName1("unsignedCharValue");
+  int _objc_msgSend_210(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_210(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_210Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedChar Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_210 = __objc_msgSend_210Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_shortValue1 = _registerName1("shortValue");
+  int _objc_msgSend_211(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_211(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_211Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Short Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_211 = __objc_msgSend_211Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedShortValue1 = _registerName1("unsignedShortValue");
+  int _objc_msgSend_212(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_212(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_212Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedShort Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_212 = __objc_msgSend_212Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_intValue1 = _registerName1("intValue");
+  int _objc_msgSend_213(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_213(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_213Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_213 = __objc_msgSend_213Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedIntValue1 = _registerName1("unsignedIntValue");
+  late final _sel_longValue1 = _registerName1("longValue");
+  late final _sel_unsignedLongValue1 = _registerName1("unsignedLongValue");
+  late final _sel_longLongValue1 = _registerName1("longLongValue");
+  int _objc_msgSend_214(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_214(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_214Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.LongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_214 = __objc_msgSend_214Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedLongLongValue1 =
+      _registerName1("unsignedLongLongValue");
+  late final _sel_floatValue1 = _registerName1("floatValue");
+  double _objc_msgSend_215(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_215(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_215Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_215 = __objc_msgSend_215Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_doubleValue1 = _registerName1("doubleValue");
+  late final _sel_boolValue1 = _registerName1("boolValue");
+  late final _sel_integerValue1 = _registerName1("integerValue");
+  late final _sel_unsignedIntegerValue1 =
+      _registerName1("unsignedIntegerValue");
+  late final _sel_stringValue1 = _registerName1("stringValue");
+  int _objc_msgSend_216(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherNumber,
+  ) {
+    return __objc_msgSend_216(
+      obj,
+      sel,
+      otherNumber,
+    );
+  }
+
+  late final __objc_msgSend_216Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_216 = __objc_msgSend_216Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToNumber_1 = _registerName1("isEqualToNumber:");
+  bool _objc_msgSend_217(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> number,
+  ) {
+    return __objc_msgSend_217(
+      obj,
+      sel,
+      number,
+    );
+  }
+
+  late final __objc_msgSend_217Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_217 = __objc_msgSend_217Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_numberWithChar_1 = _registerName1("numberWithChar:");
+  late final _sel_numberWithUnsignedChar_1 =
+      _registerName1("numberWithUnsignedChar:");
+  late final _sel_numberWithShort_1 = _registerName1("numberWithShort:");
+  late final _sel_numberWithUnsignedShort_1 =
+      _registerName1("numberWithUnsignedShort:");
+  late final _sel_numberWithInt_1 = _registerName1("numberWithInt:");
+  late final _sel_numberWithUnsignedInt_1 =
+      _registerName1("numberWithUnsignedInt:");
+  late final _sel_numberWithLong_1 = _registerName1("numberWithLong:");
+  late final _sel_numberWithUnsignedLong_1 =
+      _registerName1("numberWithUnsignedLong:");
+  late final _sel_numberWithLongLong_1 = _registerName1("numberWithLongLong:");
+  late final _sel_numberWithUnsignedLongLong_1 =
+      _registerName1("numberWithUnsignedLongLong:");
+  late final _sel_numberWithFloat_1 = _registerName1("numberWithFloat:");
+  late final _sel_numberWithDouble_1 = _registerName1("numberWithDouble:");
+  late final _sel_numberWithBool_1 = _registerName1("numberWithBool:");
+  late final _sel_numberWithInteger_1 = _registerName1("numberWithInteger:");
+  late final _sel_numberWithUnsignedInteger_1 =
+      _registerName1("numberWithUnsignedInteger:");
+  late final _sel_port1 = _registerName1("port");
+  late final _sel_user1 = _registerName1("user");
+  late final _sel_password1 = _registerName1("password");
+  late final _sel_path1 = _registerName1("path");
+  late final _sel_fragment1 = _registerName1("fragment");
+  late final _sel_parameterString1 = _registerName1("parameterString");
+  late final _sel_query1 = _registerName1("query");
+  late final _sel_relativePath1 = _registerName1("relativePath");
+  late final _sel_hasDirectoryPath1 = _registerName1("hasDirectoryPath");
+  late final _sel_getFileSystemRepresentation_maxLength_1 =
+      _registerName1("getFileSystemRepresentation:maxLength:");
+  bool _objc_msgSend_218(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferLength,
+  ) {
+    return __objc_msgSend_218(
+      obj,
+      sel,
+      buffer,
+      maxBufferLength,
+    );
+  }
+
+  late final __objc_msgSend_218Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_218 = __objc_msgSend_218Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_fileSystemRepresentation1 =
+      _registerName1("fileSystemRepresentation");
+  late final _sel_isFileURL1 = _registerName1("isFileURL");
+  late final _sel_standardizedURL1 = _registerName1("standardizedURL");
+  late final _sel_checkResourceIsReachableAndReturnError_1 =
+      _registerName1("checkResourceIsReachableAndReturnError:");
+  bool _objc_msgSend_219(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_219(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_219Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_219 = __objc_msgSend_219Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isFileReferenceURL1 = _registerName1("isFileReferenceURL");
+  late final _sel_fileReferenceURL1 = _registerName1("fileReferenceURL");
+  late final _sel_filePathURL1 = _registerName1("filePathURL");
+  late final _sel_getResourceValue_forKey_error_1 =
+      _registerName1("getResourceValue:forKey:error:");
+  bool _objc_msgSend_220(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+    NSURLResourceKey key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_220(
+      obj,
+      sel,
+      value,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_220Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSURLResourceKey,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_220 = __objc_msgSend_220Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          NSURLResourceKey,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getPromisedItemResourceValue_forKey_error_1 =
+      _registerName1("getPromisedItemResourceValue:forKey:error:");
+  late final _sel_promisedItemResourceValuesForKeys_error_1 =
+      _registerName1("promisedItemResourceValuesForKeys:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_221(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_221(
+      obj,
+      sel,
+      keys,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_221Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_221 = __objc_msgSend_221Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_checkPromisedItemIsReachableAndReturnError_1 =
+      _registerName1("checkPromisedItemIsReachableAndReturnError:");
+  late final _sel_fileURLWithPathComponents_1 =
+      _registerName1("fileURLWithPathComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_222(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_222(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_222Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_222 = __objc_msgSend_222Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathComponents1 = _registerName1("pathComponents");
+  late final _sel_lastPathComponent1 = _registerName1("lastPathComponent");
+  late final _sel_pathExtension1 = _registerName1("pathExtension");
+  late final _sel_URLByAppendingPathComponent_1 =
+      _registerName1("URLByAppendingPathComponent:");
+  late final _sel_URLByAppendingPathComponent_isDirectory_1 =
+      _registerName1("URLByAppendingPathComponent:isDirectory:");
+  late final _sel_URLByDeletingLastPathComponent1 =
+      _registerName1("URLByDeletingLastPathComponent");
+  late final _sel_URLByAppendingPathExtension_1 =
+      _registerName1("URLByAppendingPathExtension:");
+  late final _sel_URLByDeletingPathExtension1 =
+      _registerName1("URLByDeletingPathExtension");
+  late final _sel_URLByStandardizingPath1 =
+      _registerName1("URLByStandardizingPath");
+  late final _sel_URLByResolvingSymlinksInPath1 =
+      _registerName1("URLByResolvingSymlinksInPath");
+  late final _sel_resourceDataUsingCache_1 =
+      _registerName1("resourceDataUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_223(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_223(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_223Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_223 = __objc_msgSend_223Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_loadResourceDataNotifyingClient_usingCache_1 =
+      _registerName1("loadResourceDataNotifyingClient:usingCache:");
+  void _objc_msgSend_224(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> client,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_224(
+      obj,
+      sel,
+      client,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_224Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_224 = __objc_msgSend_224Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKey_1 = _registerName1("propertyForKey:");
+  late final _sel_setResourceData_1 = _registerName1("setResourceData:");
+  late final _sel_setProperty_forKey_1 = _registerName1("setProperty:forKey:");
+  bool _objc_msgSend_225(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> property,
+    ffi.Pointer<ObjCObject> propertyKey,
+  ) {
+    return __objc_msgSend_225(
+      obj,
+      sel,
+      property,
+      propertyKey,
+    );
+  }
+
+  late final __objc_msgSend_225Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_225 = __objc_msgSend_225Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLHandle1 = _getClass1("NSURLHandle");
+  late final _sel_registerURLHandleClass_1 =
+      _registerName1("registerURLHandleClass:");
+  late final _sel_URLHandleClassForURL_1 =
+      _registerName1("URLHandleClassForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_226(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_226(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_226Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_226 = __objc_msgSend_226Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_status1 = _registerName1("status");
+  int _objc_msgSend_227(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_227(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_227Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_227 = __objc_msgSend_227Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failureReason1 = _registerName1("failureReason");
+  late final _sel_addClient_1 = _registerName1("addClient:");
+  late final _sel_removeClient_1 = _registerName1("removeClient:");
+  late final _sel_loadInBackground1 = _registerName1("loadInBackground");
+  late final _sel_cancelLoadInBackground1 =
+      _registerName1("cancelLoadInBackground");
+  late final _sel_resourceData1 = _registerName1("resourceData");
+  late final _sel_availableResourceData1 =
+      _registerName1("availableResourceData");
+  late final _sel_expectedResourceDataSize1 =
+      _registerName1("expectedResourceDataSize");
+  late final _sel_flushCachedData1 = _registerName1("flushCachedData");
+  late final _sel_backgroundLoadDidFailWithReason_1 =
+      _registerName1("backgroundLoadDidFailWithReason:");
+  late final _sel_didLoadBytes_loadComplete_1 =
+      _registerName1("didLoadBytes:loadComplete:");
+  void _objc_msgSend_228(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> newBytes,
+    bool yorn,
+  ) {
+    return __objc_msgSend_228(
+      obj,
+      sel,
+      newBytes,
+      yorn,
+    );
+  }
+
+  late final __objc_msgSend_228Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_228 = __objc_msgSend_228Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_canInitWithURL_1 = _registerName1("canInitWithURL:");
+  bool _objc_msgSend_229(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_229(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_229Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_229 = __objc_msgSend_229Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cachedHandleForURL_1 = _registerName1("cachedHandleForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_230(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_230(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_230Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_230 = __objc_msgSend_230Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithURL_cached_1 = _registerName1("initWithURL:cached:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_231(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+    bool willCache,
+  ) {
+    return __objc_msgSend_231(
+      obj,
+      sel,
+      anURL,
+      willCache,
+    );
+  }
+
+  late final __objc_msgSend_231Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_231 = __objc_msgSend_231Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKeyIfAvailable_1 =
+      _registerName1("propertyForKeyIfAvailable:");
+  late final _sel_writeProperty_forKey_1 =
+      _registerName1("writeProperty:forKey:");
+  late final _sel_writeData_1 = _registerName1("writeData:");
+  late final _sel_loadInForeground1 = _registerName1("loadInForeground");
+  late final _sel_beginLoadInBackground1 =
+      _registerName1("beginLoadInBackground");
+  late final _sel_endLoadInBackground1 = _registerName1("endLoadInBackground");
+  late final _sel_URLHandleUsingCache_1 =
+      _registerName1("URLHandleUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_232(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_232(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_232Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_232 = __objc_msgSend_232Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_writeToFile_options_error_1 =
+      _registerName1("writeToFile:options:error:");
+  bool _objc_msgSend_233(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_233(
+      obj,
+      sel,
+      path,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_233Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_233 = __objc_msgSend_233Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToURL_options_error_1 =
+      _registerName1("writeToURL:options:error:");
+  bool _objc_msgSend_234(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_234(
+      obj,
+      sel,
+      url,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_234Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_234 = __objc_msgSend_234Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_rangeOfData_options_range_1 =
+      _registerName1("rangeOfData:options:range:");
+  NSRange _objc_msgSend_235(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataToFind,
+    int mask,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_235(
+      obj,
+      sel,
+      dataToFind,
+      mask,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_235Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_235 = __objc_msgSend_235Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_enumerateByteRangesUsingBlock_1 =
+      _registerName1("enumerateByteRangesUsingBlock:");
+  void _objc_msgSend_236(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_236(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_236Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_236 = __objc_msgSend_236Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataWithBytes_length_1 =
+      _registerName1("dataWithBytes:length:");
+  instancetype _objc_msgSend_237(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+  ) {
+    return __objc_msgSend_237(
+      obj,
+      sel,
+      bytes,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_237Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_237 = __objc_msgSend_237Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_dataWithBytesNoCopy_length_1 =
+      _registerName1("dataWithBytesNoCopy:length:");
+  late final _sel_dataWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("dataWithBytesNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_238(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    bool b,
+  ) {
+    return __objc_msgSend_238(
+      obj,
+      sel,
+      bytes,
+      length,
+      b,
+    );
+  }
+
+  late final __objc_msgSend_238Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_238 = __objc_msgSend_238Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, bool)>();
+
+  late final _sel_dataWithContentsOfFile_options_error_1 =
+      _registerName1("dataWithContentsOfFile:options:error:");
+  instancetype _objc_msgSend_239(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_239(
+      obj,
+      sel,
+      path,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_239Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_239 = __objc_msgSend_239Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfURL_options_error_1 =
+      _registerName1("dataWithContentsOfURL:options:error:");
+  instancetype _objc_msgSend_240(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_240(
+      obj,
+      sel,
+      url,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_240Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_240 = __objc_msgSend_240Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfFile_1 =
+      _registerName1("dataWithContentsOfFile:");
+  late final _sel_dataWithContentsOfURL_1 =
+      _registerName1("dataWithContentsOfURL:");
+  late final _sel_initWithBytes_length_1 =
+      _registerName1("initWithBytes:length:");
+  late final _sel_initWithBytesNoCopy_length_1 =
+      _registerName1("initWithBytesNoCopy:length:");
+  late final _sel_initWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:freeWhenDone:");
+  late final _sel_initWithBytesNoCopy_length_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_241(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_241(
+      obj,
+      sel,
+      bytes,
+      length,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_241Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_241 = __objc_msgSend_241Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithContentsOfFile_options_error_1 =
+      _registerName1("initWithContentsOfFile:options:error:");
+  late final _sel_initWithContentsOfURL_options_error_1 =
+      _registerName1("initWithContentsOfURL:options:error:");
+  late final _sel_initWithData_1 = _registerName1("initWithData:");
+  instancetype _objc_msgSend_242(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_242(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_242Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_242 = __objc_msgSend_242Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataWithData_1 = _registerName1("dataWithData:");
+  late final _sel_initWithBase64EncodedString_options_1 =
+      _registerName1("initWithBase64EncodedString:options:");
+  instancetype _objc_msgSend_243(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64String,
+    int options,
+  ) {
+    return __objc_msgSend_243(
+      obj,
+      sel,
+      base64String,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_243Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_243 = __objc_msgSend_243Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedStringWithOptions_1 =
+      _registerName1("base64EncodedStringWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_244(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_244(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_244Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_244 = __objc_msgSend_244Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithBase64EncodedData_options_1 =
+      _registerName1("initWithBase64EncodedData:options:");
+  instancetype _objc_msgSend_245(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64Data,
+    int options,
+  ) {
+    return __objc_msgSend_245(
+      obj,
+      sel,
+      base64Data,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_245Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_245 = __objc_msgSend_245Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedDataWithOptions_1 =
+      _registerName1("base64EncodedDataWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_246(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_246(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_246Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_246 = __objc_msgSend_246Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_decompressedDataUsingAlgorithm_error_1 =
+      _registerName1("decompressedDataUsingAlgorithm:error:");
+  instancetype _objc_msgSend_247(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int algorithm,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_247(
+      obj,
+      sel,
+      algorithm,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_247Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_247 = __objc_msgSend_247Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_compressedDataUsingAlgorithm_error_1 =
+      _registerName1("compressedDataUsingAlgorithm:error:");
+  late final _sel_getBytes_1 = _registerName1("getBytes:");
+  late final _sel_dataWithContentsOfMappedFile_1 =
+      _registerName1("dataWithContentsOfMappedFile:");
+  late final _sel_initWithContentsOfMappedFile_1 =
+      _registerName1("initWithContentsOfMappedFile:");
+  late final _sel_initWithBase64Encoding_1 =
+      _registerName1("initWithBase64Encoding:");
+  late final _sel_base64Encoding1 = _registerName1("base64Encoding");
+  late final _sel_encodeDataObject_1 = _registerName1("encodeDataObject:");
+  void _objc_msgSend_248(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_248(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_248Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_248 = __objc_msgSend_248Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDataObject1 = _registerName1("decodeDataObject");
+  late final _sel_decodeValueOfObjCType_at_size_1 =
+      _registerName1("decodeValueOfObjCType:at:size:");
+  void _objc_msgSend_249(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> data,
+    int size,
+  ) {
+    return __objc_msgSend_249(
+      obj,
+      sel,
+      type,
+      data,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_249Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_249 = __objc_msgSend_249Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_versionForClassName_1 =
+      _registerName1("versionForClassName:");
+  int _objc_msgSend_250(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> className,
+  ) {
+    return __objc_msgSend_250(
+      obj,
+      sel,
+      className,
+    );
+  }
+
+  late final __objc_msgSend_250Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_250 = __objc_msgSend_250Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeObject_1 = _registerName1("encodeObject:");
+  late final _sel_encodeRootObject_1 = _registerName1("encodeRootObject:");
+  late final _sel_encodeBycopyObject_1 = _registerName1("encodeBycopyObject:");
+  late final _sel_encodeByrefObject_1 = _registerName1("encodeByrefObject:");
+  late final _sel_encodeConditionalObject_1 =
+      _registerName1("encodeConditionalObject:");
+  late final _sel_encodeValuesOfObjCTypes_1 =
+      _registerName1("encodeValuesOfObjCTypes:");
+  void _objc_msgSend_251(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_251(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_251Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_251 = __objc_msgSend_251Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_encodeArrayOfObjCType_count_at_1 =
+      _registerName1("encodeArrayOfObjCType:count:at:");
+  void _objc_msgSend_252(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    int count,
+    ffi.Pointer<ffi.Void> array,
+  ) {
+    return __objc_msgSend_252(
+      obj,
+      sel,
+      type,
+      count,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_252Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_252 = __objc_msgSend_252Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_encodeBytes_length_1 = _registerName1("encodeBytes:length:");
+  late final _sel_decodeObject1 = _registerName1("decodeObject");
+  late final _sel_decodeTopLevelObjectAndReturnError_1 =
+      _registerName1("decodeTopLevelObjectAndReturnError:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_253(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_253(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_253Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_253 = __objc_msgSend_253Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeValuesOfObjCTypes_1 =
+      _registerName1("decodeValuesOfObjCTypes:");
+  late final _sel_decodeArrayOfObjCType_count_at_1 =
+      _registerName1("decodeArrayOfObjCType:count:at:");
+  late final _sel_decodeBytesWithReturnedLength_1 =
+      _registerName1("decodeBytesWithReturnedLength:");
+  ffi.Pointer<ffi.Void> _objc_msgSend_254(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_254(
+      obj,
+      sel,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_254Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_254 = __objc_msgSend_254Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodePropertyList_1 = _registerName1("encodePropertyList:");
+  late final _sel_decodePropertyList1 = _registerName1("decodePropertyList");
+  late final _sel_setObjectZone_1 = _registerName1("setObjectZone:");
+  void _objc_msgSend_255(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSZone> zone,
+  ) {
+    return __objc_msgSend_255(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_255Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_255 = __objc_msgSend_255Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSZone>)>();
+
+  late final _sel_objectZone1 = _registerName1("objectZone");
+  ffi.Pointer<NSZone> _objc_msgSend_256(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_256(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_256Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSZone> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_256 = __objc_msgSend_256Ptr.asFunction<
+      ffi.Pointer<NSZone> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_systemVersion1 = _registerName1("systemVersion");
+  late final _sel_allowsKeyedCoding1 = _registerName1("allowsKeyedCoding");
+  late final _sel_encodeObject_forKey_1 =
+      _registerName1("encodeObject:forKey:");
+  late final _sel_encodeConditionalObject_forKey_1 =
+      _registerName1("encodeConditionalObject:forKey:");
+  late final _sel_encodeBool_forKey_1 = _registerName1("encodeBool:forKey:");
+  void _objc_msgSend_257(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_257(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_257Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_257 = __objc_msgSend_257Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt_forKey_1 = _registerName1("encodeInt:forKey:");
+  void _objc_msgSend_258(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_258(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_258Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_258 = __objc_msgSend_258Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt32_forKey_1 = _registerName1("encodeInt32:forKey:");
+  void _objc_msgSend_259(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_259(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_259Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_259 = __objc_msgSend_259Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt64_forKey_1 = _registerName1("encodeInt64:forKey:");
+  void _objc_msgSend_260(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_260(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_260Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_260 = __objc_msgSend_260Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeFloat_forKey_1 = _registerName1("encodeFloat:forKey:");
+  void _objc_msgSend_261(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_261(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_261Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_261 = __objc_msgSend_261Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeDouble_forKey_1 =
+      _registerName1("encodeDouble:forKey:");
+  void _objc_msgSend_262(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_262(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_262Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_262 = __objc_msgSend_262Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeBytes_length_forKey_1 =
+      _registerName1("encodeBytes:length:forKey:");
+  void _objc_msgSend_263(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> bytes,
+    int length,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_263(
+      obj,
+      sel,
+      bytes,
+      length,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_263Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_263 = __objc_msgSend_263Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsValueForKey_1 =
+      _registerName1("containsValueForKey:");
+  late final _sel_decodeObjectForKey_1 = _registerName1("decodeObjectForKey:");
+  late final _sel_decodeTopLevelObjectForKey_error_1 =
+      _registerName1("decodeTopLevelObjectForKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_264(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_264(
+      obj,
+      sel,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_264Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_264 = __objc_msgSend_264Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeBoolForKey_1 = _registerName1("decodeBoolForKey:");
+  late final _sel_decodeIntForKey_1 = _registerName1("decodeIntForKey:");
+  int _objc_msgSend_265(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_265(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_265Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_265 = __objc_msgSend_265Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt32ForKey_1 = _registerName1("decodeInt32ForKey:");
+  int _objc_msgSend_266(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_266(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_266Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_266 = __objc_msgSend_266Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt64ForKey_1 = _registerName1("decodeInt64ForKey:");
+  int _objc_msgSend_267(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_267(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_267Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int64 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_267 = __objc_msgSend_267Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeFloatForKey_1 = _registerName1("decodeFloatForKey:");
+  double _objc_msgSend_268(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_268(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_268Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_268 = __objc_msgSend_268Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDoubleForKey_1 = _registerName1("decodeDoubleForKey:");
+  double _objc_msgSend_269(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_269(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_269Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_269 = __objc_msgSend_269Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeBytesForKey_returnedLength_1 =
+      _registerName1("decodeBytesForKey:returnedLength:");
+  ffi.Pointer<ffi.Uint8> _objc_msgSend_270(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_270(
+      obj,
+      sel,
+      key,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_270Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Uint8> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_270 = __objc_msgSend_270Ptr.asFunction<
+      ffi.Pointer<ffi.Uint8> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodeInteger_forKey_1 =
+      _registerName1("encodeInteger:forKey:");
+  void _objc_msgSend_271(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_271(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_271Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_271 = __objc_msgSend_271Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeIntegerForKey_1 =
+      _registerName1("decodeIntegerForKey:");
+  late final _sel_requiresSecureCoding1 =
+      _registerName1("requiresSecureCoding");
+  late final _sel_decodeObjectOfClass_forKey_1 =
+      _registerName1("decodeObjectOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_272(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_272(
+      obj,
+      sel,
+      aClass,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_272Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_272 = __objc_msgSend_272Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClass_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClass:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_273(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_273(
+      obj,
+      sel,
+      aClass,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_273Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_273 = __objc_msgSend_273Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClass_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_274(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_274(
+      obj,
+      sel,
+      cls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_274Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_274 = __objc_msgSend_274Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_1 =
+      _registerName1("decodeDictionaryWithKeysOfClass:objectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_275(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyCls,
+    ffi.Pointer<ObjCObject> objectCls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_275(
+      obj,
+      sel,
+      keyCls,
+      objectCls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_275Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_275 = __objc_msgSend_275Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeObjectOfClasses_forKey_1 =
+      _registerName1("decodeObjectOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_276(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_276(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_276Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_276 = __objc_msgSend_276Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClasses_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClasses:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_277(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_277(
+      obj,
+      sel,
+      classes,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_277Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_277 = __objc_msgSend_277Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClasses_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_278(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_278(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_278Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_278 = __objc_msgSend_278Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_1 =
+      _registerName1(
+          "decodeDictionaryWithKeysOfClasses:objectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_279(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyClasses,
+    ffi.Pointer<ObjCObject> objectClasses,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_279(
+      obj,
+      sel,
+      keyClasses,
+      objectClasses,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_279Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_279 = __objc_msgSend_279Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePropertyListForKey_1 =
+      _registerName1("decodePropertyListForKey:");
+  late final _sel_allowedClasses1 = _registerName1("allowedClasses");
+  ffi.Pointer<ObjCObject> _objc_msgSend_280(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_280(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_280Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_280 = __objc_msgSend_280Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failWithError_1 = _registerName1("failWithError:");
+  void _objc_msgSend_281(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+  ) {
+    return __objc_msgSend_281(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_281Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_281 = __objc_msgSend_281Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodingFailurePolicy1 =
+      _registerName1("decodingFailurePolicy");
+  int _objc_msgSend_282(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_282(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_282Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_282 = __objc_msgSend_282Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_error1 = _registerName1("error");
+  ffi.Pointer<ObjCObject> _objc_msgSend_283(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_283(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_283Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_283 = __objc_msgSend_283Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_encodeNXObject_1 = _registerName1("encodeNXObject:");
+  late final _sel_decodeNXObject1 = _registerName1("decodeNXObject");
+  late final _sel_decodeValueOfObjCType_at_1 =
+      _registerName1("decodeValueOfObjCType:at:");
+  late final _sel_encodePoint_1 = _registerName1("encodePoint:");
+  void _objc_msgSend_284(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_284(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_284Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_284 = __objc_msgSend_284Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_decodePoint1 = _registerName1("decodePoint");
+  late final _sel_encodeSize_1 = _registerName1("encodeSize:");
+  void _objc_msgSend_285(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_285(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_285Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_285 = __objc_msgSend_285Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_decodeSize1 = _registerName1("decodeSize");
+  late final _sel_encodeRect_1 = _registerName1("encodeRect:");
+  void _objc_msgSend_286(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_286(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_286Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_286 = __objc_msgSend_286Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_decodeRect1 = _registerName1("decodeRect");
+  late final _sel_encodePoint_forKey_1 = _registerName1("encodePoint:forKey:");
+  void _objc_msgSend_287(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_287(
+      obj,
+      sel,
+      point,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_287Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_287 = __objc_msgSend_287Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeSize_forKey_1 = _registerName1("encodeSize:forKey:");
+  void _objc_msgSend_288(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_288(
+      obj,
+      sel,
+      size,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_288Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_288 = __objc_msgSend_288Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeRect_forKey_1 = _registerName1("encodeRect:forKey:");
+  void _objc_msgSend_289(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_289(
+      obj,
+      sel,
+      rect,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_289Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_289 = __objc_msgSend_289Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePointForKey_1 = _registerName1("decodePointForKey:");
+  NSPoint _objc_msgSend_290(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_290(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_290Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_290 = __objc_msgSend_290Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeSizeForKey_1 = _registerName1("decodeSizeForKey:");
+  NSSize _objc_msgSend_291(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_291(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_291Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_291 = __objc_msgSend_291Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeRectForKey_1 = _registerName1("decodeRectForKey:");
+  NSRect _objc_msgSend_292(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_292(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_292Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_292 = __objc_msgSend_292Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_substringFromIndex_1 = _registerName1("substringFromIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_293(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int from,
+  ) {
+    return __objc_msgSend_293(
+      obj,
+      sel,
+      from,
+    );
+  }
+
+  late final __objc_msgSend_293Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_293 = __objc_msgSend_293Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_substringToIndex_1 = _registerName1("substringToIndex:");
+  late final _sel_substringWithRange_1 = _registerName1("substringWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_294(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_294(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_294Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_294 = __objc_msgSend_294Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_getCharacters_range_1 =
+      _registerName1("getCharacters:range:");
+  void _objc_msgSend_295(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_295(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_295Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_295 = __objc_msgSend_295Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, NSRange)>();
+
+  int _objc_msgSend_296(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_296(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_296Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_296 = __objc_msgSend_296Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_compare_options_1 = _registerName1("compare:options:");
+  int _objc_msgSend_297(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+  ) {
+    return __objc_msgSend_297(
+      obj,
+      sel,
+      string,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_297Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_297 = __objc_msgSend_297Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_compare_options_range_1 =
+      _registerName1("compare:options:range:");
+  int _objc_msgSend_298(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+  ) {
+    return __objc_msgSend_298(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+    );
+  }
+
+  late final __objc_msgSend_298Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_298 = __objc_msgSend_298Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_compare_options_range_locale_1 =
+      _registerName1("compare:options:range:locale:");
+  int _objc_msgSend_299(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_299(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_299Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_299 = __objc_msgSend_299Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_caseInsensitiveCompare_1 =
+      _registerName1("caseInsensitiveCompare:");
+  late final _sel_localizedCompare_1 = _registerName1("localizedCompare:");
+  late final _sel_localizedCaseInsensitiveCompare_1 =
+      _registerName1("localizedCaseInsensitiveCompare:");
+  late final _sel_localizedStandardCompare_1 =
+      _registerName1("localizedStandardCompare:");
+  late final _sel_isEqualToString_1 = _registerName1("isEqualToString:");
+  late final _sel_hasPrefix_1 = _registerName1("hasPrefix:");
+  late final _sel_hasSuffix_1 = _registerName1("hasSuffix:");
+  late final _sel_commonPrefixWithString_options_1 =
+      _registerName1("commonPrefixWithString:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_300(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+    int mask,
+  ) {
+    return __objc_msgSend_300(
+      obj,
+      sel,
+      str,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_300Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_300 = __objc_msgSend_300Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_containsString_1 = _registerName1("containsString:");
+  late final _sel_localizedCaseInsensitiveContainsString_1 =
+      _registerName1("localizedCaseInsensitiveContainsString:");
+  late final _sel_localizedStandardContainsString_1 =
+      _registerName1("localizedStandardContainsString:");
+  late final _sel_localizedStandardRangeOfString_1 =
+      _registerName1("localizedStandardRangeOfString:");
+  NSRange _objc_msgSend_301(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+  ) {
+    return __objc_msgSend_301(
+      obj,
+      sel,
+      str,
+    );
+  }
+
+  late final __objc_msgSend_301Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_301 = __objc_msgSend_301Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfString_1 = _registerName1("rangeOfString:");
+  late final _sel_rangeOfString_options_1 =
+      _registerName1("rangeOfString:options:");
+  NSRange _objc_msgSend_302(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+  ) {
+    return __objc_msgSend_302(
+      obj,
+      sel,
+      searchString,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_302Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_302 = __objc_msgSend_302Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfString_options_range_1 =
+      _registerName1("rangeOfString:options:range:");
+  NSRange _objc_msgSend_303(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_303(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_303Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_303 = __objc_msgSend_303Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfString_options_range_locale_1 =
+      _registerName1("rangeOfString:options:range:locale:");
+  NSRange _objc_msgSend_304(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_304(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_304Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_304 = __objc_msgSend_304Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_1 =
+      _registerName1("rangeOfCharacterFromSet:");
+  NSRange _objc_msgSend_305(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+  ) {
+    return __objc_msgSend_305(
+      obj,
+      sel,
+      searchSet,
+    );
+  }
+
+  late final __objc_msgSend_305Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_305 = __objc_msgSend_305Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_1 =
+      _registerName1("rangeOfCharacterFromSet:options:");
+  NSRange _objc_msgSend_306(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+  ) {
+    return __objc_msgSend_306(
+      obj,
+      sel,
+      searchSet,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_306Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_306 = __objc_msgSend_306Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_range_1 =
+      _registerName1("rangeOfCharacterFromSet:options:range:");
+  NSRange _objc_msgSend_307(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_307(
+      obj,
+      sel,
+      searchSet,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_307Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_307 = __objc_msgSend_307Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfComposedCharacterSequenceAtIndex_1 =
+      _registerName1("rangeOfComposedCharacterSequenceAtIndex:");
+  NSRange _objc_msgSend_308(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_308(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_308Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_308 = __objc_msgSend_308Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_rangeOfComposedCharacterSequencesForRange_1 =
+      _registerName1("rangeOfComposedCharacterSequencesForRange:");
+  NSRange _objc_msgSend_309(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_309(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_309Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_309 = __objc_msgSend_309Ptr.asFunction<
+      NSRange Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_stringByAppendingString_1 =
+      _registerName1("stringByAppendingString:");
+  late final _sel_stringByAppendingFormat_1 =
+      _registerName1("stringByAppendingFormat:");
+  late final _sel_uppercaseString1 = _registerName1("uppercaseString");
+  late final _sel_lowercaseString1 = _registerName1("lowercaseString");
+  late final _sel_capitalizedString1 = _registerName1("capitalizedString");
+  late final _sel_localizedUppercaseString1 =
+      _registerName1("localizedUppercaseString");
+  late final _sel_localizedLowercaseString1 =
+      _registerName1("localizedLowercaseString");
+  late final _sel_localizedCapitalizedString1 =
+      _registerName1("localizedCapitalizedString");
+  late final _sel_uppercaseStringWithLocale_1 =
+      _registerName1("uppercaseStringWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_310(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_310(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_310Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_310 = __objc_msgSend_310Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lowercaseStringWithLocale_1 =
+      _registerName1("lowercaseStringWithLocale:");
+  late final _sel_capitalizedStringWithLocale_1 =
+      _registerName1("capitalizedStringWithLocale:");
+  late final _sel_getLineStart_end_contentsEnd_forRange_1 =
+      _registerName1("getLineStart:end:contentsEnd:forRange:");
+  void _objc_msgSend_311(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> startPtr,
+    ffi.Pointer<NSUInteger> lineEndPtr,
+    ffi.Pointer<NSUInteger> contentsEndPtr,
+    NSRange range,
+  ) {
+    return __objc_msgSend_311(
+      obj,
+      sel,
+      startPtr,
+      lineEndPtr,
+      contentsEndPtr,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_311Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_311 = __objc_msgSend_311Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          NSRange)>();
+
+  late final _sel_lineRangeForRange_1 = _registerName1("lineRangeForRange:");
+  late final _sel_getParagraphStart_end_contentsEnd_forRange_1 =
+      _registerName1("getParagraphStart:end:contentsEnd:forRange:");
+  late final _sel_paragraphRangeForRange_1 =
+      _registerName1("paragraphRangeForRange:");
+  late final _sel_enumerateSubstringsInRange_options_usingBlock_1 =
+      _registerName1("enumerateSubstringsInRange:options:usingBlock:");
+  void _objc_msgSend_312(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_312(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_312Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_312 = __objc_msgSend_312Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateLinesUsingBlock_1 =
+      _registerName1("enumerateLinesUsingBlock:");
+  void _objc_msgSend_313(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_313(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_313Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_313 = __objc_msgSend_313Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_UTF8String1 = _registerName1("UTF8String");
+  late final _sel_fastestEncoding1 = _registerName1("fastestEncoding");
+  late final _sel_smallestEncoding1 = _registerName1("smallestEncoding");
+  late final _sel_dataUsingEncoding_allowLossyConversion_1 =
+      _registerName1("dataUsingEncoding:allowLossyConversion:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_314(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+    bool lossy,
+  ) {
+    return __objc_msgSend_314(
+      obj,
+      sel,
+      encoding,
+      lossy,
+    );
+  }
+
+  late final __objc_msgSend_314Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_314 = __objc_msgSend_314Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, bool)>();
+
+  late final _sel_dataUsingEncoding_1 = _registerName1("dataUsingEncoding:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_315(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+  ) {
+    return __objc_msgSend_315(
+      obj,
+      sel,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_315Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_315 = __objc_msgSend_315Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_canBeConvertedToEncoding_1 =
+      _registerName1("canBeConvertedToEncoding:");
+  late final _sel_cStringUsingEncoding_1 =
+      _registerName1("cStringUsingEncoding:");
+  late final _sel_getCString_maxLength_encoding_1 =
+      _registerName1("getCString:maxLength:encoding:");
+  bool _objc_msgSend_316(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferCount,
+    int encoding,
+  ) {
+    return __objc_msgSend_316(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_316Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_316 = __objc_msgSend_316Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, int)>();
+
+  late final _sel_getBytes_maxLength_usedLength_encoding_options_range_remainingRange_1 =
+      _registerName1(
+          "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:");
+  bool _objc_msgSend_317(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int maxBufferCount,
+    ffi.Pointer<NSUInteger> usedBufferCount,
+    int encoding,
+    int options,
+    NSRange range,
+    NSRangePointer leftover,
+  ) {
+    return __objc_msgSend_317(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      usedBufferCount,
+      encoding,
+      options,
+      range,
+      leftover,
+    );
+  }
+
+  late final __objc_msgSend_317Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<NSUInteger>,
+              NSStringEncoding,
+              ffi.Int32,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_317 = __objc_msgSend_317Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          int,
+          ffi.Pointer<NSUInteger>,
+          int,
+          int,
+          NSRange,
+          NSRangePointer)>();
+
+  late final _sel_maximumLengthOfBytesUsingEncoding_1 =
+      _registerName1("maximumLengthOfBytesUsingEncoding:");
+  late final _sel_lengthOfBytesUsingEncoding_1 =
+      _registerName1("lengthOfBytesUsingEncoding:");
+  late final _sel_availableStringEncodings1 =
+      _registerName1("availableStringEncodings");
+  ffi.Pointer<NSStringEncoding> _objc_msgSend_318(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_318(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_318Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSStringEncoding> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_318 = __objc_msgSend_318Ptr.asFunction<
+      ffi.Pointer<NSStringEncoding> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_localizedNameOfStringEncoding_1 =
+      _registerName1("localizedNameOfStringEncoding:");
+  late final _sel_defaultCStringEncoding1 =
+      _registerName1("defaultCStringEncoding");
+  late final _sel_decomposedStringWithCanonicalMapping1 =
+      _registerName1("decomposedStringWithCanonicalMapping");
+  late final _sel_precomposedStringWithCanonicalMapping1 =
+      _registerName1("precomposedStringWithCanonicalMapping");
+  late final _sel_decomposedStringWithCompatibilityMapping1 =
+      _registerName1("decomposedStringWithCompatibilityMapping");
+  late final _sel_precomposedStringWithCompatibilityMapping1 =
+      _registerName1("precomposedStringWithCompatibilityMapping");
+  late final _sel_componentsSeparatedByString_1 =
+      _registerName1("componentsSeparatedByString:");
+  late final _sel_componentsSeparatedByCharactersInSet_1 =
+      _registerName1("componentsSeparatedByCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_319(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_319(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_319Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_319 = __objc_msgSend_319Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByTrimmingCharactersInSet_1 =
+      _registerName1("stringByTrimmingCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_320(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_320(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_320Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_320 = __objc_msgSend_320Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByPaddingToLength_withString_startingAtIndex_1 =
+      _registerName1("stringByPaddingToLength:withString:startingAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_321(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int newLength,
+    ffi.Pointer<ObjCObject> padString,
+    int padIndex,
+  ) {
+    return __objc_msgSend_321(
+      obj,
+      sel,
+      newLength,
+      padString,
+      padIndex,
+    );
+  }
+
+  late final __objc_msgSend_321Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_321 = __objc_msgSend_321Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_stringByFoldingWithOptions_locale_1 =
+      _registerName1("stringByFoldingWithOptions:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_322(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_322(
+      obj,
+      sel,
+      options,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_322Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_322 = __objc_msgSend_322Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_options_range_1 =
+      _registerName1(
+          "stringByReplacingOccurrencesOfString:withString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_323(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+    int options,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_323(
+      obj,
+      sel,
+      target,
+      replacement,
+      options,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_323Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_323 = __objc_msgSend_323Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          NSRange)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_1 =
+      _registerName1("stringByReplacingOccurrencesOfString:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_324(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_324(
+      obj,
+      sel,
+      target,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_324Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_324 = __objc_msgSend_324Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingCharactersInRange_withString_1 =
+      _registerName1("stringByReplacingCharactersInRange:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_325(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_325(
+      obj,
+      sel,
+      range,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_325Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_325 = __objc_msgSend_325Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByApplyingTransform_reverse_1 =
+      _registerName1("stringByApplyingTransform:reverse:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_326(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSStringTransform transform,
+    bool reverse,
+  ) {
+    return __objc_msgSend_326(
+      obj,
+      sel,
+      transform,
+      reverse,
+    );
+  }
+
+  late final __objc_msgSend_326Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringTransform,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_326 = __objc_msgSend_326Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSStringTransform, bool)>();
+
+  late final _sel_writeToURL_atomically_encoding_error_1 =
+      _registerName1("writeToURL:atomically:encoding:error:");
+  bool _objc_msgSend_327(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_327(
+      obj,
+      sel,
+      url,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_327Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_327 = __objc_msgSend_327Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToFile_atomically_encoding_error_1 =
+      _registerName1("writeToFile:atomically:encoding:error:");
+  bool _objc_msgSend_328(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_328(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_328Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_328 = __objc_msgSend_328Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_hash1 = _registerName1("hash");
+  late final _sel_initWithCharactersNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCharactersNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_329(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_329(
+      obj,
+      sel,
+      characters,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_329Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_329 = __objc_msgSend_329Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, bool)>();
+
+  late final _sel_initWithCharactersNoCopy_length_deallocator_1 =
+      _registerName1("initWithCharactersNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_330(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> chars,
+    int len,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_330(
+      obj,
+      sel,
+      chars,
+      len,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_330Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_330 = __objc_msgSend_330Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithCharacters_length_1 =
+      _registerName1("initWithCharacters:length:");
+  instancetype _objc_msgSend_331(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+  ) {
+    return __objc_msgSend_331(
+      obj,
+      sel,
+      characters,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_331Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_331 = __objc_msgSend_331Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int)>();
+
+  late final _sel_initWithUTF8String_1 = _registerName1("initWithUTF8String:");
+  instancetype _objc_msgSend_332(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+  ) {
+    return __objc_msgSend_332(
+      obj,
+      sel,
+      nullTerminatedCString,
+    );
+  }
+
+  late final __objc_msgSend_332Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_332 = __objc_msgSend_332Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithFormat_1 = _registerName1("initWithFormat:");
+  late final _sel_initWithFormat_arguments_1 =
+      _registerName1("initWithFormat:arguments:");
+  instancetype _objc_msgSend_333(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_333(
+      obj,
+      sel,
+      format,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_333Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_333 = __objc_msgSend_333Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithFormat_locale_1 =
+      _registerName1("initWithFormat:locale:");
+  late final _sel_initWithFormat_locale_arguments_1 =
+      _registerName1("initWithFormat:locale:arguments:");
+  instancetype _objc_msgSend_334(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_334(
+      obj,
+      sel,
+      format,
+      locale,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_334Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_334 = __objc_msgSend_334Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithData_encoding_1 =
+      _registerName1("initWithData:encoding:");
+  instancetype _objc_msgSend_335(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    int encoding,
+  ) {
+    return __objc_msgSend_335(
+      obj,
+      sel,
+      data,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_335Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_335 = __objc_msgSend_335Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_initWithBytes_length_encoding_1 =
+      _registerName1("initWithBytes:length:encoding:");
+  instancetype _objc_msgSend_336(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+  ) {
+    return __objc_msgSend_336(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_336Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_336 = __objc_msgSend_336Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:freeWhenDone:");
+  instancetype _objc_msgSend_337(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_337(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_337Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_337 = __objc_msgSend_337Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, bool)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:deallocator:");
+  instancetype _objc_msgSend_338(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_338(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_338Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_338 = __objc_msgSend_338Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_string1 = _registerName1("string");
+  late final _sel_stringWithString_1 = _registerName1("stringWithString:");
+  late final _sel_stringWithCharacters_length_1 =
+      _registerName1("stringWithCharacters:length:");
+  late final _sel_stringWithUTF8String_1 =
+      _registerName1("stringWithUTF8String:");
+  late final _sel_stringWithFormat_1 = _registerName1("stringWithFormat:");
+  late final _sel_localizedStringWithFormat_1 =
+      _registerName1("localizedStringWithFormat:");
+  late final _sel_initWithCString_encoding_1 =
+      _registerName1("initWithCString:encoding:");
+  instancetype _objc_msgSend_339(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+    int encoding,
+  ) {
+    return __objc_msgSend_339(
+      obj,
+      sel,
+      nullTerminatedCString,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_339Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_339 = __objc_msgSend_339Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_stringWithCString_encoding_1 =
+      _registerName1("stringWithCString:encoding:");
+  late final _sel_initWithContentsOfURL_encoding_error_1 =
+      _registerName1("initWithContentsOfURL:encoding:error:");
+  instancetype _objc_msgSend_340(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_340(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_340Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_340 = __objc_msgSend_340Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_encoding_error_1 =
+      _registerName1("initWithContentsOfFile:encoding:error:");
+  instancetype _objc_msgSend_341(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_341(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_341Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_341 = __objc_msgSend_341Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_encoding_error_1 =
+      _registerName1("stringWithContentsOfURL:encoding:error:");
+  late final _sel_stringWithContentsOfFile_encoding_error_1 =
+      _registerName1("stringWithContentsOfFile:encoding:error:");
+  late final _sel_initWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfURL:usedEncoding:error:");
+  instancetype _objc_msgSend_342(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_342(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_342Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_342 = __objc_msgSend_342Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfFile:usedEncoding:error:");
+  instancetype _objc_msgSend_343(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_343(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_343Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_343 = __objc_msgSend_343Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfURL:usedEncoding:error:");
+  late final _sel_stringWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfFile:usedEncoding:error:");
+  late final _sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1 =
+      _registerName1(
+          "stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:");
+  int _objc_msgSend_344(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> opts,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+    ffi.Pointer<ffi.Bool> usedLossyConversion,
+  ) {
+    return __objc_msgSend_344(
+      obj,
+      sel,
+      data,
+      opts,
+      string,
+      usedLossyConversion,
+    );
+  }
+
+  late final __objc_msgSend_344Ptr = _lookup<
+      ffi.NativeFunction<
+          NSStringEncoding Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Bool>)>>('objc_msgSend');
+  late final __objc_msgSend_344 = __objc_msgSend_344Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Bool>)>();
+
+  late final _sel_propertyList1 = _registerName1("propertyList");
+  late final _sel_propertyListFromStringsFileFormat1 =
+      _registerName1("propertyListFromStringsFileFormat");
+  late final _sel_cString1 = _registerName1("cString");
+  late final _sel_lossyCString1 = _registerName1("lossyCString");
+  late final _sel_cStringLength1 = _registerName1("cStringLength");
+  late final _sel_getCString_1 = _registerName1("getCString:");
+  late final _sel_getCString_maxLength_1 =
+      _registerName1("getCString:maxLength:");
+  void _objc_msgSend_345(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+  ) {
+    return __objc_msgSend_345(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+    );
+  }
+
+  late final __objc_msgSend_345Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_345 = __objc_msgSend_345Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_getCString_maxLength_range_remainingRange_1 =
+      _registerName1("getCString:maxLength:range:remainingRange:");
+  void _objc_msgSend_346(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+    NSRange aRange,
+    NSRangePointer leftoverRange,
+  ) {
+    return __objc_msgSend_346(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+      aRange,
+      leftoverRange,
+    );
+  }
+
+  late final __objc_msgSend_346Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_346 = __objc_msgSend_346Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, NSRange, NSRangePointer)>();
+
+  late final _sel_stringWithContentsOfFile_1 =
+      _registerName1("stringWithContentsOfFile:");
+  late final _sel_stringWithContentsOfURL_1 =
+      _registerName1("stringWithContentsOfURL:");
+  late final _sel_initWithCStringNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCStringNoCopy:length:freeWhenDone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_347(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_347(
+      obj,
+      sel,
+      bytes,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_347Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_347 = __objc_msgSend_347Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>, int, bool)>();
+
+  late final _sel_initWithCString_length_1 =
+      _registerName1("initWithCString:length:");
+  late final _sel_initWithCString_1 = _registerName1("initWithCString:");
+  late final _sel_stringWithCString_length_1 =
+      _registerName1("stringWithCString:length:");
+  late final _sel_stringWithCString_1 = _registerName1("stringWithCString:");
+  late final _sel_getCharacters_1 = _registerName1("getCharacters:");
+  void _objc_msgSend_348(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+  ) {
+    return __objc_msgSend_348(
+      obj,
+      sel,
+      buffer,
+    );
+  }
+
+  late final __objc_msgSend_348Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>)>>('objc_msgSend');
+  late final __objc_msgSend_348 = __objc_msgSend_348Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>)>();
+
+  late final _sel_variantFittingPresentationWidth_1 =
+      _registerName1("variantFittingPresentationWidth:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_349(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int width,
+  ) {
+    return __objc_msgSend_349(
+      obj,
+      sel,
+      width,
+    );
+  }
+
+  late final __objc_msgSend_349Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_349 = __objc_msgSend_349Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_pathWithComponents_1 = _registerName1("pathWithComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_350(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_350(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_350Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_350 = __objc_msgSend_350Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isAbsolutePath1 = _registerName1("isAbsolutePath");
+  late final _sel_stringByDeletingLastPathComponent1 =
+      _registerName1("stringByDeletingLastPathComponent");
+  late final _sel_stringByAppendingPathComponent_1 =
+      _registerName1("stringByAppendingPathComponent:");
+  late final _sel_stringByDeletingPathExtension1 =
+      _registerName1("stringByDeletingPathExtension");
+  late final _sel_stringByAppendingPathExtension_1 =
+      _registerName1("stringByAppendingPathExtension:");
+  late final _sel_stringByAbbreviatingWithTildeInPath1 =
+      _registerName1("stringByAbbreviatingWithTildeInPath");
+  late final _sel_stringByExpandingTildeInPath1 =
+      _registerName1("stringByExpandingTildeInPath");
+  late final _sel_stringByStandardizingPath1 =
+      _registerName1("stringByStandardizingPath");
+  late final _sel_stringByResolvingSymlinksInPath1 =
+      _registerName1("stringByResolvingSymlinksInPath");
+  late final _sel_stringsByAppendingPaths_1 =
+      _registerName1("stringsByAppendingPaths:");
+  late final _sel_completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_1 =
+      _registerName1(
+          "completePathIntoString:caseSensitive:matchesIntoArray:filterTypes:");
+  int _objc_msgSend_351(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputName,
+    bool flag,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputArray,
+    ffi.Pointer<ObjCObject> filterTypes,
+  ) {
+    return __objc_msgSend_351(
+      obj,
+      sel,
+      outputName,
+      flag,
+      outputArray,
+      filterTypes,
+    );
+  }
+
+  late final __objc_msgSend_351Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_351 = __objc_msgSend_351Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByAddingPercentEncodingWithAllowedCharacters_1 =
+      _registerName1("stringByAddingPercentEncodingWithAllowedCharacters:");
+  late final _sel_stringByRemovingPercentEncoding1 =
+      _registerName1("stringByRemovingPercentEncoding");
+  late final _sel_stringByAddingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByAddingPercentEscapesUsingEncoding:");
+  late final _sel_stringByReplacingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByReplacingPercentEscapesUsingEncoding:");
+  late final _class_NSOrthography1 = _getClass1("NSOrthography");
+  late final _sel_dominantScript1 = _registerName1("dominantScript");
+  late final _sel_languageMap1 = _registerName1("languageMap");
+  late final _sel_initWithDominantScript_languageMap_1 =
+      _registerName1("initWithDominantScript:languageMap:");
+  instancetype _objc_msgSend_352(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> script,
+    ffi.Pointer<ObjCObject> map,
+  ) {
+    return __objc_msgSend_352(
+      obj,
+      sel,
+      script,
+      map,
+    );
+  }
+
+  late final __objc_msgSend_352Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_352 = __objc_msgSend_352Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_languagesForScript_1 = _registerName1("languagesForScript:");
+  late final _sel_dominantLanguageForScript_1 =
+      _registerName1("dominantLanguageForScript:");
+  late final _sel_dominantLanguage1 = _registerName1("dominantLanguage");
+  late final _sel_allScripts1 = _registerName1("allScripts");
+  late final _sel_allLanguages1 = _registerName1("allLanguages");
+  late final _sel_defaultOrthographyForLanguage_1 =
+      _registerName1("defaultOrthographyForLanguage:");
+  late final _sel_orthographyWithDominantScript_languageMap_1 =
+      _registerName1("orthographyWithDominantScript:languageMap:");
+  late final _sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1 =
+      _registerName1(
+          "linguisticTagsInRange:scheme:options:orthography:tokenRanges:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_353(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges,
+  ) {
+    return __objc_msgSend_353(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      tokenRanges,
+    );
+  }
+
+  late final __objc_msgSend_353Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_353 = __objc_msgSend_353Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1 =
+      _registerName1(
+          "enumerateLinguisticTagsInRange:scheme:options:orthography:usingBlock:");
+  void _objc_msgSend_354(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_354(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_354Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_354 = __objc_msgSend_354Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_allObjects1 = _registerName1("allObjects");
+  late final _sel_anyObject1 = _registerName1("anyObject");
+  late final _sel_intersectsSet_1 = _registerName1("intersectsSet:");
+  bool _objc_msgSend_355(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherSet,
+  ) {
+    return __objc_msgSend_355(
+      obj,
+      sel,
+      otherSet,
+    );
+  }
+
+  late final __objc_msgSend_355Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_355 = __objc_msgSend_355Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToSet_1 = _registerName1("isEqualToSet:");
+  late final _sel_isSubsetOfSet_1 = _registerName1("isSubsetOfSet:");
+  late final _sel_setByAddingObject_1 = _registerName1("setByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_356(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_356(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_356Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_356 = __objc_msgSend_356Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromSet_1 =
+      _registerName1("setByAddingObjectsFromSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_357(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_357(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_357Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_357 = __objc_msgSend_357Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromArray_1 =
+      _registerName1("setByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_358(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_358(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_358Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_358 = __objc_msgSend_358Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  void _objc_msgSend_359(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_359(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_359Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_359 = __objc_msgSend_359Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  void _objc_msgSend_360(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_360(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_360Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_360 = __objc_msgSend_360Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsPassingTest_1 = _registerName1("objectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_361(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_361(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_361Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_361 = __objc_msgSend_361Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsWithOptions_passingTest_1 =
+      _registerName1("objectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_362(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_362(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_362Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_362 = __objc_msgSend_362Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_set1 = _registerName1("set");
+  late final _sel_setWithObject_1 = _registerName1("setWithObject:");
+  late final _sel_setWithObjects_count_1 =
+      _registerName1("setWithObjects:count:");
+  late final _sel_setWithObjects_1 = _registerName1("setWithObjects:");
+  late final _sel_setWithSet_1 = _registerName1("setWithSet:");
+  instancetype _objc_msgSend_363(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_363(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_363Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_363 = __objc_msgSend_363Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setWithArray_1 = _registerName1("setWithArray:");
+  late final _sel_initWithSet_1 = _registerName1("initWithSet:");
+  late final _sel_initWithSet_copyItems_1 =
+      _registerName1("initWithSet:copyItems:");
+  instancetype _objc_msgSend_364(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    bool flag,
+  ) {
+    return __objc_msgSend_364(
+      obj,
+      sel,
+      set1,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_364Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_364 = __objc_msgSend_364Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_filteredSetUsingPredicate_1 =
+      _registerName1("filteredSetUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_365(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_365(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_365Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_365 = __objc_msgSend_365Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_invocationWithMethodSignature_1 =
+      _registerName1("invocationWithMethodSignature:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_366(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sig,
+  ) {
+    return __objc_msgSend_366(
+      obj,
+      sel,
+      sig,
+    );
+  }
+
+  late final __objc_msgSend_366Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_366 = __objc_msgSend_366Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignature1 = _registerName1("methodSignature");
+  ffi.Pointer<ObjCObject> _objc_msgSend_367(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_367(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_367Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_367 = __objc_msgSend_367Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_retainArguments1 = _registerName1("retainArguments");
+  late final _sel_argumentsRetained1 = _registerName1("argumentsRetained");
+  late final _sel_target1 = _registerName1("target");
+  late final _sel_setTarget_1 = _registerName1("setTarget:");
+  void _objc_msgSend_368(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_368(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_368Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_368 = __objc_msgSend_368Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_selector1 = _registerName1("selector");
+  ffi.Pointer<ObjCSel> _objc_msgSend_369(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_369(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_369Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_369 = __objc_msgSend_369Ptr.asFunction<
+      ffi.Pointer<ObjCSel> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSelector_1 = _registerName1("setSelector:");
+  void _objc_msgSend_370(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> value,
+  ) {
+    return __objc_msgSend_370(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_370Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_370 = __objc_msgSend_370Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getReturnValue_1 = _registerName1("getReturnValue:");
+  late final _sel_setReturnValue_1 = _registerName1("setReturnValue:");
+  late final _sel_getArgument_atIndex_1 =
+      _registerName1("getArgument:atIndex:");
+  void _objc_msgSend_371(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> argumentLocation,
+    int idx,
+  ) {
+    return __objc_msgSend_371(
+      obj,
+      sel,
+      argumentLocation,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_371Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_371 = __objc_msgSend_371Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_setArgument_atIndex_1 =
+      _registerName1("setArgument:atIndex:");
+  late final _sel_invoke1 = _registerName1("invoke");
+  late final _sel_invokeWithTarget_1 = _registerName1("invokeWithTarget:");
+  late final _sel_forwardInvocation_1 = _registerName1("forwardInvocation:");
+  void _objc_msgSend_372(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anInvocation,
+  ) {
+    return __objc_msgSend_372(
+      obj,
+      sel,
+      anInvocation,
+    );
+  }
+
+  late final __objc_msgSend_372Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_372 = __objc_msgSend_372Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignatureForSelector_1 =
+      _registerName1("methodSignatureForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_373(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_373(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_373Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_373 = __objc_msgSend_373Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodSignatureForSelector_1 =
+      _registerName1("instanceMethodSignatureForSelector:");
+  late final _sel_allowsWeakReference1 = _registerName1("allowsWeakReference");
+  late final _sel_retainWeakReference1 = _registerName1("retainWeakReference");
+  late final _sel_isSubclassOfClass_1 = _registerName1("isSubclassOfClass:");
+  late final _sel_resolveClassMethod_1 = _registerName1("resolveClassMethod:");
+  late final _sel_resolveInstanceMethod_1 =
+      _registerName1("resolveInstanceMethod:");
+  late final _sel_superclass1 = _registerName1("superclass");
+  late final _sel_class1 = _registerName1("class");
+  late final _sel_debugDescription1 = _registerName1("debugDescription");
+  late final _sel_version1 = _registerName1("version");
+  late final _sel_setVersion_1 = _registerName1("setVersion:");
+  void _objc_msgSend_374(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aVersion,
+  ) {
+    return __objc_msgSend_374(
+      obj,
+      sel,
+      aVersion,
+    );
+  }
+
+  late final __objc_msgSend_374Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_374 = __objc_msgSend_374Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_classForCoder1 = _registerName1("classForCoder");
+  late final _sel_replacementObjectForCoder_1 =
+      _registerName1("replacementObjectForCoder:");
+  late final _sel_awakeAfterUsingCoder_1 =
+      _registerName1("awakeAfterUsingCoder:");
+  late final _sel_poseAsClass_1 = _registerName1("poseAsClass:");
+  late final _sel_autoContentAccessingProxy1 =
+      _registerName1("autoContentAccessingProxy");
+  late final _sel_attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_1 =
+      _registerName1(
+          "attemptRecoveryFromError:optionIndex:delegate:didRecoverSelector:contextInfo:");
+  void _objc_msgSend_375(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+    int recoveryOptionIndex,
+    ffi.Pointer<ObjCObject> delegate,
+    ffi.Pointer<ObjCSel> didRecoverSelector,
+    ffi.Pointer<ffi.Void> contextInfo,
+  ) {
+    return __objc_msgSend_375(
+      obj,
+      sel,
+      error,
+      recoveryOptionIndex,
+      delegate,
+      didRecoverSelector,
+      contextInfo,
+    );
+  }
+
+  late final __objc_msgSend_375Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_375 = __objc_msgSend_375Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_attemptRecoveryFromError_optionIndex_1 =
+      _registerName1("attemptRecoveryFromError:optionIndex:");
+  bool _objc_msgSend_376(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+    int recoveryOptionIndex,
+  ) {
+    return __objc_msgSend_376(
+      obj,
+      sel,
+      error,
+      recoveryOptionIndex,
+    );
+  }
+
+  late final __objc_msgSend_376Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_376 = __objc_msgSend_376Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_performSelector_withObject_afterDelay_inModes_1 =
+      _registerName1("performSelector:withObject:afterDelay:inModes:");
+  void _objc_msgSend_377(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+    double delay,
+    ffi.Pointer<ObjCObject> modes,
+  ) {
+    return __objc_msgSend_377(
+      obj,
+      sel,
+      aSelector,
+      anArgument,
+      delay,
+      modes,
+    );
+  }
+
+  late final __objc_msgSend_377Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_377 = __objc_msgSend_377Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelector_withObject_afterDelay_1 =
+      _registerName1("performSelector:withObject:afterDelay:");
+  void _objc_msgSend_378(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+    double delay,
+  ) {
+    return __objc_msgSend_378(
+      obj,
+      sel,
+      aSelector,
+      anArgument,
+      delay,
+    );
+  }
+
+  late final __objc_msgSend_378Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_378 = __objc_msgSend_378Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, double)>();
+
+  late final _sel_URL_resourceDataDidBecomeAvailable_1 =
+      _registerName1("URL:resourceDataDidBecomeAvailable:");
+  void _objc_msgSend_379(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+    ffi.Pointer<ObjCObject> newBytes,
+  ) {
+    return __objc_msgSend_379(
+      obj,
+      sel,
+      sender,
+      newBytes,
+    );
+  }
+
+  late final __objc_msgSend_379Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_379 = __objc_msgSend_379Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLResourceDidFinishLoading_1 =
+      _registerName1("URLResourceDidFinishLoading:");
+  void _objc_msgSend_380(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+  ) {
+    return __objc_msgSend_380(
+      obj,
+      sel,
+      sender,
+    );
+  }
+
+  late final __objc_msgSend_380Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_380 = __objc_msgSend_380Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLResourceDidCancelLoading_1 =
+      _registerName1("URLResourceDidCancelLoading:");
+  late final _sel_URL_resourceDidFailLoadingWithReason_1 =
+      _registerName1("URL:resourceDidFailLoadingWithReason:");
+  void _objc_msgSend_381(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_381(
+      obj,
+      sel,
+      sender,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_381Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_381 = __objc_msgSend_381Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSFileManager1 = _getClass1("NSFileManager");
+  late final _sel_defaultManager1 = _registerName1("defaultManager");
+  ffi.Pointer<ObjCObject> _objc_msgSend_382(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_382(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_382Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_382 = __objc_msgSend_382Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_1 =
+      _registerName1(
+          "mountedVolumeURLsIncludingResourceValuesForKeys:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_383(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> propertyKeys,
+    int options,
+  ) {
+    return __objc_msgSend_383(
+      obj,
+      sel,
+      propertyKeys,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_383Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_383 = __objc_msgSend_383Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_unmountVolumeAtURL_options_completionHandler_1 =
+      _registerName1("unmountVolumeAtURL:options:completionHandler:");
+  void _objc_msgSend_384(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int mask,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_384(
+      obj,
+      sel,
+      url,
+      mask,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_384Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_384 = __objc_msgSend_384Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_1 =
+      _registerName1(
+          "contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_385(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> keys,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_385(
+      obj,
+      sel,
+      url,
+      keys,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_385Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_385 = __objc_msgSend_385Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_URLsForDirectory_inDomains_1 =
+      _registerName1("URLsForDirectory:inDomains:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_386(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int directory,
+    int domainMask,
+  ) {
+    return __objc_msgSend_386(
+      obj,
+      sel,
+      directory,
+      domainMask,
+    );
+  }
+
+  late final __objc_msgSend_386Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_386 = __objc_msgSend_386Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_URLForDirectory_inDomain_appropriateForURL_create_error_1 =
+      _registerName1(
+          "URLForDirectory:inDomain:appropriateForURL:create:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_387(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int directory,
+    int domain,
+    ffi.Pointer<ObjCObject> url,
+    bool shouldCreate,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_387(
+      obj,
+      sel,
+      directory,
+      domain,
+      url,
+      shouldCreate,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_387Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_387 = __objc_msgSend_387Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_1 =
+      _registerName1("getRelationship:ofDirectoryAtURL:toItemAtURL:error:");
+  bool _objc_msgSend_388(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int32> outRelationship,
+    ffi.Pointer<ObjCObject> directoryURL,
+    ffi.Pointer<ObjCObject> otherURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_388(
+      obj,
+      sel,
+      outRelationship,
+      directoryURL,
+      otherURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_388Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_388 = __objc_msgSend_388Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int32>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_1 =
+      _registerName1("getRelationship:ofDirectory:inDomain:toItemAtURL:error:");
+  bool _objc_msgSend_389(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int32> outRelationship,
+    int directory,
+    int domainMask,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_389(
+      obj,
+      sel,
+      outRelationship,
+      directory,
+      domainMask,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_389Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int32>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_389 = __objc_msgSend_389Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int32>,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_1 =
+      _registerName1(
+          "createDirectoryAtURL:withIntermediateDirectories:attributes:error:");
+  bool _objc_msgSend_390(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool createIntermediates,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_390(
+      obj,
+      sel,
+      url,
+      createIntermediates,
+      attributes,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_390Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_390 = __objc_msgSend_390Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createSymbolicLinkAtURL_withDestinationURL_error_1 =
+      _registerName1("createSymbolicLinkAtURL:withDestinationURL:error:");
+  bool _objc_msgSend_391(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> destURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_391(
+      obj,
+      sel,
+      url,
+      destURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_391Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_391 = __objc_msgSend_391Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_delegate1 = _registerName1("delegate");
+  late final _sel_setDelegate_1 = _registerName1("setDelegate:");
+  late final _sel_setAttributes_ofItemAtPath_error_1 =
+      _registerName1("setAttributes:ofItemAtPath:error:");
+  bool _objc_msgSend_392(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_392(
+      obj,
+      sel,
+      attributes,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_392Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_392 = __objc_msgSend_392Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_1 =
+      _registerName1(
+          "createDirectoryAtPath:withIntermediateDirectories:attributes:error:");
+  bool _objc_msgSend_393(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool createIntermediates,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_393(
+      obj,
+      sel,
+      path,
+      createIntermediates,
+      attributes,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_393Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_393 = __objc_msgSend_393Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_contentsOfDirectoryAtPath_error_1 =
+      _registerName1("contentsOfDirectoryAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_394(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_394(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_394Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_394 = __objc_msgSend_394Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_subpathsOfDirectoryAtPath_error_1 =
+      _registerName1("subpathsOfDirectoryAtPath:error:");
+  late final _sel_attributesOfItemAtPath_error_1 =
+      _registerName1("attributesOfItemAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_395(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_395(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_395Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_395 = __objc_msgSend_395Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_attributesOfFileSystemForPath_error_1 =
+      _registerName1("attributesOfFileSystemForPath:error:");
+  late final _sel_createSymbolicLinkAtPath_withDestinationPath_error_1 =
+      _registerName1("createSymbolicLinkAtPath:withDestinationPath:error:");
+  bool _objc_msgSend_396(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> destPath,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_396(
+      obj,
+      sel,
+      path,
+      destPath,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_396Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_396 = __objc_msgSend_396Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_destinationOfSymbolicLinkAtPath_error_1 =
+      _registerName1("destinationOfSymbolicLinkAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_397(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_397(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_397Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_397 = __objc_msgSend_397Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_copyItemAtPath_toPath_error_1 =
+      _registerName1("copyItemAtPath:toPath:error:");
+  late final _sel_moveItemAtPath_toPath_error_1 =
+      _registerName1("moveItemAtPath:toPath:error:");
+  late final _sel_linkItemAtPath_toPath_error_1 =
+      _registerName1("linkItemAtPath:toPath:error:");
+  late final _sel_removeItemAtPath_error_1 =
+      _registerName1("removeItemAtPath:error:");
+  bool _objc_msgSend_398(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_398(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_398Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_398 = __objc_msgSend_398Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_copyItemAtURL_toURL_error_1 =
+      _registerName1("copyItemAtURL:toURL:error:");
+  late final _sel_moveItemAtURL_toURL_error_1 =
+      _registerName1("moveItemAtURL:toURL:error:");
+  late final _sel_linkItemAtURL_toURL_error_1 =
+      _registerName1("linkItemAtURL:toURL:error:");
+  late final _sel_removeItemAtURL_error_1 =
+      _registerName1("removeItemAtURL:error:");
+  late final _sel_trashItemAtURL_resultingItemURL_error_1 =
+      _registerName1("trashItemAtURL:resultingItemURL:error:");
+  bool _objc_msgSend_399(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outResultingURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_399(
+      obj,
+      sel,
+      url,
+      outResultingURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_399Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_399 = __objc_msgSend_399Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_fileAttributesAtPath_traverseLink_1 =
+      _registerName1("fileAttributesAtPath:traverseLink:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_400(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool yorn,
+  ) {
+    return __objc_msgSend_400(
+      obj,
+      sel,
+      path,
+      yorn,
+    );
+  }
+
+  late final __objc_msgSend_400Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_400 = __objc_msgSend_400Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_changeFileAttributes_atPath_1 =
+      _registerName1("changeFileAttributes:atPath:");
+  bool _objc_msgSend_401(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_401(
+      obj,
+      sel,
+      attributes,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_401Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_401 = __objc_msgSend_401Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_directoryContentsAtPath_1 =
+      _registerName1("directoryContentsAtPath:");
+  late final _sel_fileSystemAttributesAtPath_1 =
+      _registerName1("fileSystemAttributesAtPath:");
+  late final _sel_pathContentOfSymbolicLinkAtPath_1 =
+      _registerName1("pathContentOfSymbolicLinkAtPath:");
+  late final _sel_createSymbolicLinkAtPath_pathContent_1 =
+      _registerName1("createSymbolicLinkAtPath:pathContent:");
+  bool _objc_msgSend_402(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> otherpath,
+  ) {
+    return __objc_msgSend_402(
+      obj,
+      sel,
+      path,
+      otherpath,
+    );
+  }
+
+  late final __objc_msgSend_402Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_402 = __objc_msgSend_402Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_createDirectoryAtPath_attributes_1 =
+      _registerName1("createDirectoryAtPath:attributes:");
+  bool _objc_msgSend_403(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> attributes,
+  ) {
+    return __objc_msgSend_403(
+      obj,
+      sel,
+      path,
+      attributes,
+    );
+  }
+
+  late final __objc_msgSend_403Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_403 = __objc_msgSend_403Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_linkPath_toPath_handler_1 =
+      _registerName1("linkPath:toPath:handler:");
+  bool _objc_msgSend_404(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> src,
+    ffi.Pointer<ObjCObject> dest,
+    ffi.Pointer<ObjCObject> handler,
+  ) {
+    return __objc_msgSend_404(
+      obj,
+      sel,
+      src,
+      dest,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_404Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_404 = __objc_msgSend_404Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_copyPath_toPath_handler_1 =
+      _registerName1("copyPath:toPath:handler:");
+  late final _sel_movePath_toPath_handler_1 =
+      _registerName1("movePath:toPath:handler:");
+  late final _sel_removeFileAtPath_handler_1 =
+      _registerName1("removeFileAtPath:handler:");
+  bool _objc_msgSend_405(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> handler,
+  ) {
+    return __objc_msgSend_405(
+      obj,
+      sel,
+      path,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_405Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_405 = __objc_msgSend_405Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_currentDirectoryPath1 =
+      _registerName1("currentDirectoryPath");
+  late final _sel_changeCurrentDirectoryPath_1 =
+      _registerName1("changeCurrentDirectoryPath:");
+  late final _sel_fileExistsAtPath_1 = _registerName1("fileExistsAtPath:");
+  late final _sel_fileExistsAtPath_isDirectory_1 =
+      _registerName1("fileExistsAtPath:isDirectory:");
+  bool _objc_msgSend_406(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Bool> isDirectory,
+  ) {
+    return __objc_msgSend_406(
+      obj,
+      sel,
+      path,
+      isDirectory,
+    );
+  }
+
+  late final __objc_msgSend_406Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Bool>)>>('objc_msgSend');
+  late final __objc_msgSend_406 = __objc_msgSend_406Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Bool>)>();
+
+  late final _sel_isReadableFileAtPath_1 =
+      _registerName1("isReadableFileAtPath:");
+  late final _sel_isWritableFileAtPath_1 =
+      _registerName1("isWritableFileAtPath:");
+  late final _sel_isExecutableFileAtPath_1 =
+      _registerName1("isExecutableFileAtPath:");
+  late final _sel_isDeletableFileAtPath_1 =
+      _registerName1("isDeletableFileAtPath:");
+  late final _sel_contentsEqualAtPath_andPath_1 =
+      _registerName1("contentsEqualAtPath:andPath:");
+  late final _sel_displayNameAtPath_1 = _registerName1("displayNameAtPath:");
+  late final _sel_componentsToDisplayForPath_1 =
+      _registerName1("componentsToDisplayForPath:");
+  late final _sel_homeDirectoryForCurrentUser1 =
+      _registerName1("homeDirectoryForCurrentUser");
+  late final _sel_temporaryDirectory1 = _registerName1("temporaryDirectory");
+  late final _sel_homeDirectoryForUser_1 =
+      _registerName1("homeDirectoryForUser:");
+  late final _sel_fileManager_shouldProceedAfterError_1 =
+      _registerName1("fileManager:shouldProceedAfterError:");
+  bool _objc_msgSend_407(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fm,
+    ffi.Pointer<ObjCObject> errorInfo,
+  ) {
+    return __objc_msgSend_407(
+      obj,
+      sel,
+      fm,
+      errorInfo,
+    );
+  }
+
+  late final __objc_msgSend_407Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_407 = __objc_msgSend_407Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileManager_willProcessPath_1 =
+      _registerName1("fileManager:willProcessPath:");
+  void _objc_msgSend_408(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fm,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_408(
+      obj,
+      sel,
+      fm,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_408Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_408 = __objc_msgSend_408Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_validateValue_forKey_error_1 =
+      _registerName1("validateValue:forKey:error:");
+  late final _class_NSMutableArray1 = _getClass1("NSMutableArray");
+  late final _sel_addObject_1 = _registerName1("addObject:");
+  late final _sel_insertObject_atIndex_1 =
+      _registerName1("insertObject:atIndex:");
+  void _objc_msgSend_409(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    int index,
+  ) {
+    return __objc_msgSend_409(
+      obj,
+      sel,
+      anObject,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_409Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_409 = __objc_msgSend_409Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_removeLastObject1 = _registerName1("removeLastObject");
+  late final _sel_removeObjectAtIndex_1 =
+      _registerName1("removeObjectAtIndex:");
+  void _objc_msgSend_410(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_410(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_410Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_410 = __objc_msgSend_410Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_replaceObjectAtIndex_withObject_1 =
+      _registerName1("replaceObjectAtIndex:withObject:");
+  void _objc_msgSend_411(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_411(
+      obj,
+      sel,
+      index,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_411Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_411 = __objc_msgSend_411Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithCapacity_1 = _registerName1("initWithCapacity:");
+  late final _sel_addObjectsFromArray_1 =
+      _registerName1("addObjectsFromArray:");
+  void _objc_msgSend_412(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_412(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_412Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_412 = __objc_msgSend_412Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_exchangeObjectAtIndex_withObjectAtIndex_1 =
+      _registerName1("exchangeObjectAtIndex:withObjectAtIndex:");
+  void _objc_msgSend_413(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int idx1,
+    int idx2,
+  ) {
+    return __objc_msgSend_413(
+      obj,
+      sel,
+      idx1,
+      idx2,
+    );
+  }
+
+  late final __objc_msgSend_413Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_413 = __objc_msgSend_413Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_removeAllObjects1 = _registerName1("removeAllObjects");
+  late final _sel_removeObject_inRange_1 =
+      _registerName1("removeObject:inRange:");
+  void _objc_msgSend_414(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    NSRange range,
+  ) {
+    return __objc_msgSend_414(
+      obj,
+      sel,
+      anObject,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_414Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_414 = __objc_msgSend_414Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_removeObject_1 = _registerName1("removeObject:");
+  late final _sel_removeObjectIdenticalTo_inRange_1 =
+      _registerName1("removeObjectIdenticalTo:inRange:");
+  late final _sel_removeObjectIdenticalTo_1 =
+      _registerName1("removeObjectIdenticalTo:");
+  late final _sel_removeObjectsFromIndices_numIndices_1 =
+      _registerName1("removeObjectsFromIndices:numIndices:");
+  void _objc_msgSend_415(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indices,
+    int cnt,
+  ) {
+    return __objc_msgSend_415(
+      obj,
+      sel,
+      indices,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_415Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_415 = __objc_msgSend_415Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int)>();
+
+  late final _sel_removeObjectsInArray_1 =
+      _registerName1("removeObjectsInArray:");
+  late final _sel_removeObjectsInRange_1 =
+      _registerName1("removeObjectsInRange:");
+  void _objc_msgSend_416(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_416(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_416Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_416 = __objc_msgSend_416Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_replaceObjectsInRange_withObjectsFromArray_range_1 =
+      _registerName1("replaceObjectsInRange:withObjectsFromArray:range:");
+  void _objc_msgSend_417(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> otherArray,
+    NSRange otherRange,
+  ) {
+    return __objc_msgSend_417(
+      obj,
+      sel,
+      range,
+      otherArray,
+      otherRange,
+    );
+  }
+
+  late final __objc_msgSend_417Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_417 = __objc_msgSend_417Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_replaceObjectsInRange_withObjectsFromArray_1 =
+      _registerName1("replaceObjectsInRange:withObjectsFromArray:");
+  void _objc_msgSend_418(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_418(
+      obj,
+      sel,
+      range,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_418Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_418 = __objc_msgSend_418Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setArray_1 = _registerName1("setArray:");
+  late final _sel_sortUsingFunction_context_1 =
+      _registerName1("sortUsingFunction:context:");
+  void _objc_msgSend_419(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        compare,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_419(
+      obj,
+      sel,
+      compare,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_419Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_419 = __objc_msgSend_419Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_sortUsingSelector_1 = _registerName1("sortUsingSelector:");
+  late final _sel_insertObjects_atIndexes_1 =
+      _registerName1("insertObjects:atIndexes:");
+  void _objc_msgSend_420(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objects,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_420(
+      obj,
+      sel,
+      objects,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_420Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_420 = __objc_msgSend_420Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeObjectsAtIndexes_1 =
+      _registerName1("removeObjectsAtIndexes:");
+  void _objc_msgSend_421(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_421(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_421Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_421 = __objc_msgSend_421Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceObjectsAtIndexes_withObjects_1 =
+      _registerName1("replaceObjectsAtIndexes:withObjects:");
+  void _objc_msgSend_422(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> objects,
+  ) {
+    return __objc_msgSend_422(
+      obj,
+      sel,
+      indexes,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_422Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_422 = __objc_msgSend_422Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setObject_atIndexedSubscript_1 =
+      _registerName1("setObject:atIndexedSubscript:");
+  late final _sel_sortUsingComparator_1 =
+      _registerName1("sortUsingComparator:");
+  void _objc_msgSend_423(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_423(
+      obj,
+      sel,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_423Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_423 = __objc_msgSend_423Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSComparator)>();
+
+  late final _sel_sortWithOptions_usingComparator_1 =
+      _registerName1("sortWithOptions:usingComparator:");
+  void _objc_msgSend_424(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_424(
+      obj,
+      sel,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_424Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_424 = __objc_msgSend_424Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, NSComparator)>();
+
+  late final _sel_arrayWithCapacity_1 = _registerName1("arrayWithCapacity:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_425(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_425(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_425Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_425 = __objc_msgSend_425Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_426(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_426(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_426Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_426 = __objc_msgSend_426Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_applyDifference_1 = _registerName1("applyDifference:");
+  late final _sel_sortUsingDescriptors_1 =
+      _registerName1("sortUsingDescriptors:");
+  late final _sel_filterUsingPredicate_1 =
+      _registerName1("filterUsingPredicate:");
+  void _objc_msgSend_427(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_427(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_427Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_427 = __objc_msgSend_427Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_mutableArrayValueForKey_1 =
+      _registerName1("mutableArrayValueForKey:");
+  late final _class_NSMutableOrderedSet1 = _getClass1("NSMutableOrderedSet");
+  late final _class_NSOrderedSet1 = _getClass1("NSOrderedSet");
+  late final _sel_isEqualToOrderedSet_1 =
+      _registerName1("isEqualToOrderedSet:");
+  bool _objc_msgSend_428(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_428(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_428Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_428 = __objc_msgSend_428Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_intersectsOrderedSet_1 =
+      _registerName1("intersectsOrderedSet:");
+  late final _sel_isSubsetOfOrderedSet_1 =
+      _registerName1("isSubsetOfOrderedSet:");
+  late final _sel_reversedOrderedSet1 = _registerName1("reversedOrderedSet");
+  ffi.Pointer<ObjCObject> _objc_msgSend_429(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_429(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_429Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_429 = __objc_msgSend_429Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_orderedSet1 = _registerName1("orderedSet");
+  late final _sel_orderedSetWithObject_1 =
+      _registerName1("orderedSetWithObject:");
+  late final _sel_orderedSetWithObjects_count_1 =
+      _registerName1("orderedSetWithObjects:count:");
+  late final _sel_orderedSetWithObjects_1 =
+      _registerName1("orderedSetWithObjects:");
+  late final _sel_orderedSetWithOrderedSet_1 =
+      _registerName1("orderedSetWithOrderedSet:");
+  instancetype _objc_msgSend_430(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_430(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_430Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_430 = __objc_msgSend_430Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_orderedSetWithOrderedSet_range_copyItems_1 =
+      _registerName1("orderedSetWithOrderedSet:range:copyItems:");
+  instancetype _objc_msgSend_431(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    NSRange range,
+    bool flag,
+  ) {
+    return __objc_msgSend_431(
+      obj,
+      sel,
+      set1,
+      range,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_431Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_431 = __objc_msgSend_431Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, bool)>();
+
+  late final _sel_orderedSetWithArray_1 =
+      _registerName1("orderedSetWithArray:");
+  late final _sel_orderedSetWithArray_range_copyItems_1 =
+      _registerName1("orderedSetWithArray:range:copyItems:");
+  instancetype _objc_msgSend_432(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> array,
+    NSRange range,
+    bool flag,
+  ) {
+    return __objc_msgSend_432(
+      obj,
+      sel,
+      array,
+      range,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_432Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_432 = __objc_msgSend_432Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, bool)>();
+
+  late final _sel_orderedSetWithSet_1 = _registerName1("orderedSetWithSet:");
+  late final _sel_orderedSetWithSet_copyItems_1 =
+      _registerName1("orderedSetWithSet:copyItems:");
+  late final _sel_initWithObject_1 = _registerName1("initWithObject:");
+  late final _sel_initWithOrderedSet_1 = _registerName1("initWithOrderedSet:");
+  late final _sel_initWithOrderedSet_copyItems_1 =
+      _registerName1("initWithOrderedSet:copyItems:");
+  instancetype _objc_msgSend_433(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    bool flag,
+  ) {
+    return __objc_msgSend_433(
+      obj,
+      sel,
+      set1,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_433Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_433 = __objc_msgSend_433Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithOrderedSet_range_copyItems_1 =
+      _registerName1("initWithOrderedSet:range:copyItems:");
+  late final _sel_initWithArray_range_copyItems_1 =
+      _registerName1("initWithArray:range:copyItems:");
+  late final _sel_filteredOrderedSetUsingPredicate_1 =
+      _registerName1("filteredOrderedSetUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_434(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> p,
+  ) {
+    return __objc_msgSend_434(
+      obj,
+      sel,
+      p,
+    );
+  }
+
+  late final __objc_msgSend_434Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_434 = __objc_msgSend_434Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObjects_count_1 = _registerName1("addObjects:count:");
+  void _objc_msgSend_435(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int count,
+  ) {
+    return __objc_msgSend_435(
+      obj,
+      sel,
+      objects,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_435Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_435 = __objc_msgSend_435Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_moveObjectsAtIndexes_toIndex_1 =
+      _registerName1("moveObjectsAtIndexes:toIndex:");
+  void _objc_msgSend_436(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+    int idx,
+  ) {
+    return __objc_msgSend_436(
+      obj,
+      sel,
+      indexes,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_436Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_436 = __objc_msgSend_436Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_setObject_atIndex_1 = _registerName1("setObject:atIndex:");
+  late final _sel_replaceObjectsInRange_withObjects_count_1 =
+      _registerName1("replaceObjectsInRange:withObjects:count:");
+  void _objc_msgSend_437(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int count,
+  ) {
+    return __objc_msgSend_437(
+      obj,
+      sel,
+      range,
+      objects,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_437Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_437 = __objc_msgSend_437Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_intersectOrderedSet_1 =
+      _registerName1("intersectOrderedSet:");
+  void _objc_msgSend_438(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_438(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_438Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_438 = __objc_msgSend_438Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_minusOrderedSet_1 = _registerName1("minusOrderedSet:");
+  late final _sel_unionOrderedSet_1 = _registerName1("unionOrderedSet:");
+  late final _sel_intersectSet_1 = _registerName1("intersectSet:");
+  void _objc_msgSend_439(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_439(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_439Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_439 = __objc_msgSend_439Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_minusSet_1 = _registerName1("minusSet:");
+  late final _sel_unionSet_1 = _registerName1("unionSet:");
+  late final _sel_sortRange_options_usingComparator_1 =
+      _registerName1("sortRange:options:usingComparator:");
+  void _objc_msgSend_440(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_440(
+      obj,
+      sel,
+      range,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_440Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_440 = __objc_msgSend_440Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          NSComparator)>();
+
+  late final _sel_orderedSetWithCapacity_1 =
+      _registerName1("orderedSetWithCapacity:");
+  late final _sel_mutableOrderedSetValueForKey_1 =
+      _registerName1("mutableOrderedSetValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_441(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_441(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_441Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_441 = __objc_msgSend_441Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSMutableSet1 = _getClass1("NSMutableSet");
+  late final _sel_setSet_1 = _registerName1("setSet:");
+  late final _sel_setWithCapacity_1 = _registerName1("setWithCapacity:");
+  late final _sel_mutableSetValueForKey_1 =
+      _registerName1("mutableSetValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_442(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_442(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_442Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_442 = __objc_msgSend_442Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueForKeyPath_1 = _registerName1("valueForKeyPath:");
+  late final _sel_setValue_forKeyPath_1 =
+      _registerName1("setValue:forKeyPath:");
+  late final _sel_validateValue_forKeyPath_error_1 =
+      _registerName1("validateValue:forKeyPath:error:");
+  late final _sel_mutableArrayValueForKeyPath_1 =
+      _registerName1("mutableArrayValueForKeyPath:");
+  late final _sel_mutableOrderedSetValueForKeyPath_1 =
+      _registerName1("mutableOrderedSetValueForKeyPath:");
+  late final _sel_mutableSetValueForKeyPath_1 =
+      _registerName1("mutableSetValueForKeyPath:");
+  late final _sel_valueForUndefinedKey_1 =
+      _registerName1("valueForUndefinedKey:");
+  late final _sel_setValue_forUndefinedKey_1 =
+      _registerName1("setValue:forUndefinedKey:");
+  late final _sel_setNilValueForKey_1 = _registerName1("setNilValueForKey:");
+  late final _sel_dictionaryWithValuesForKeys_1 =
+      _registerName1("dictionaryWithValuesForKeys:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_443(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+  ) {
+    return __objc_msgSend_443(
+      obj,
+      sel,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_443Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_443 = __objc_msgSend_443Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setValuesForKeysWithDictionary_1 =
+      _registerName1("setValuesForKeysWithDictionary:");
+  void _objc_msgSend_444(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyedValues,
+  ) {
+    return __objc_msgSend_444(
+      obj,
+      sel,
+      keyedValues,
+    );
+  }
+
+  late final __objc_msgSend_444Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_444 = __objc_msgSend_444Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_storedValueForKey_1 = _registerName1("storedValueForKey:");
+  late final _sel_takeStoredValue_forKey_1 =
+      _registerName1("takeStoredValue:forKey:");
+  late final _sel_takeValue_forKey_1 = _registerName1("takeValue:forKey:");
+  late final _sel_takeValue_forKeyPath_1 =
+      _registerName1("takeValue:forKeyPath:");
+  late final _sel_handleQueryWithUnboundKey_1 =
+      _registerName1("handleQueryWithUnboundKey:");
+  late final _sel_handleTakeValue_forUnboundKey_1 =
+      _registerName1("handleTakeValue:forUnboundKey:");
+  late final _sel_unableToSetNilForKey_1 =
+      _registerName1("unableToSetNilForKey:");
+  late final _sel_valuesForKeys_1 = _registerName1("valuesForKeys:");
+  late final _sel_takeValuesFromDictionary_1 =
+      _registerName1("takeValuesFromDictionary:");
+  late final _sel_observeValueForKeyPath_ofObject_change_context_1 =
+      _registerName1("observeValueForKeyPath:ofObject:change:context:");
+  void _objc_msgSend_445(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> change,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_445(
+      obj,
+      sel,
+      keyPath,
+      object,
+      change,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_445Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_445 = __objc_msgSend_445Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_willChangeValueForKey_1 =
+      _registerName1("willChangeValueForKey:");
+  late final _sel_didChangeValueForKey_1 =
+      _registerName1("didChangeValueForKey:");
+  late final _sel_willChange_valuesAtIndexes_forKey_1 =
+      _registerName1("willChange:valuesAtIndexes:forKey:");
+  void _objc_msgSend_446(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int changeKind,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_446(
+      obj,
+      sel,
+      changeKind,
+      indexes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_446Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_446 = __objc_msgSend_446Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_didChange_valuesAtIndexes_forKey_1 =
+      _registerName1("didChange:valuesAtIndexes:forKey:");
+  late final _sel_willChangeValueForKey_withSetMutation_usingObjects_1 =
+      _registerName1("willChangeValueForKey:withSetMutation:usingObjects:");
+  void _objc_msgSend_447(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    int mutationKind,
+    ffi.Pointer<ObjCObject> objects,
+  ) {
+    return __objc_msgSend_447(
+      obj,
+      sel,
+      key,
+      mutationKind,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_447Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_447 = __objc_msgSend_447Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_didChangeValueForKey_withSetMutation_usingObjects_1 =
+      _registerName1("didChangeValueForKey:withSetMutation:usingObjects:");
+  late final _sel_observationInfo1 = _registerName1("observationInfo");
+  late final _sel_setObservationInfo_1 = _registerName1("setObservationInfo:");
+  void _objc_msgSend_448(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __objc_msgSend_448(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_448Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_448 = __objc_msgSend_448Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_classForKeyedArchiver1 =
+      _registerName1("classForKeyedArchiver");
+  late final _class_NSKeyedArchiver1 = _getClass1("NSKeyedArchiver");
+  late final _sel_initRequiringSecureCoding_1 =
+      _registerName1("initRequiringSecureCoding:");
+  instancetype _objc_msgSend_449(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool requiresSecureCoding,
+  ) {
+    return __objc_msgSend_449(
+      obj,
+      sel,
+      requiresSecureCoding,
+    );
+  }
+
+  late final __objc_msgSend_449Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_449 = __objc_msgSend_449Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_archivedDataWithRootObject_requiringSecureCoding_error_1 =
+      _registerName1("archivedDataWithRootObject:requiringSecureCoding:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_450(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    bool requiresSecureCoding,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_450(
+      obj,
+      sel,
+      object,
+      requiresSecureCoding,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_450Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_450 = __objc_msgSend_450Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _class_NSMutableData1 = _getClass1("NSMutableData");
+  late final _sel_mutableBytes1 = _registerName1("mutableBytes");
+  late final _sel_setLength_1 = _registerName1("setLength:");
+  void _objc_msgSend_451(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_451(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_451Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_451 = __objc_msgSend_451Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_appendBytes_length_1 = _registerName1("appendBytes:length:");
+  late final _sel_appendData_1 = _registerName1("appendData:");
+  late final _sel_increaseLengthBy_1 = _registerName1("increaseLengthBy:");
+  late final _sel_replaceBytesInRange_withBytes_1 =
+      _registerName1("replaceBytesInRange:withBytes:");
+  void _objc_msgSend_452(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Void> bytes,
+  ) {
+    return __objc_msgSend_452(
+      obj,
+      sel,
+      range,
+      bytes,
+    );
+  }
+
+  late final __objc_msgSend_452Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_452 = __objc_msgSend_452Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_resetBytesInRange_1 = _registerName1("resetBytesInRange:");
+  late final _sel_setData_1 = _registerName1("setData:");
+  late final _sel_replaceBytesInRange_withBytes_length_1 =
+      _registerName1("replaceBytesInRange:withBytes:length:");
+  void _objc_msgSend_453(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Void> replacementBytes,
+    int replacementLength,
+  ) {
+    return __objc_msgSend_453(
+      obj,
+      sel,
+      range,
+      replacementBytes,
+      replacementLength,
+    );
+  }
+
+  late final __objc_msgSend_453Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_453 = __objc_msgSend_453Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_dataWithCapacity_1 = _registerName1("dataWithCapacity:");
+  late final _sel_dataWithLength_1 = _registerName1("dataWithLength:");
+  late final _sel_initWithLength_1 = _registerName1("initWithLength:");
+  late final _sel_decompressUsingAlgorithm_error_1 =
+      _registerName1("decompressUsingAlgorithm:error:");
+  bool _objc_msgSend_454(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int algorithm,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_454(
+      obj,
+      sel,
+      algorithm,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_454Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_454 = __objc_msgSend_454Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_compressUsingAlgorithm_error_1 =
+      _registerName1("compressUsingAlgorithm:error:");
+  late final _sel_initForWritingWithMutableData_1 =
+      _registerName1("initForWritingWithMutableData:");
+  instancetype _objc_msgSend_455(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_455(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_455Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_455 = __objc_msgSend_455Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_archivedDataWithRootObject_1 =
+      _registerName1("archivedDataWithRootObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_456(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> rootObject,
+  ) {
+    return __objc_msgSend_456(
+      obj,
+      sel,
+      rootObject,
+    );
+  }
+
+  late final __objc_msgSend_456Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_456 = __objc_msgSend_456Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_archiveRootObject_toFile_1 =
+      _registerName1("archiveRootObject:toFile:");
+  late final _sel_outputFormat1 = _registerName1("outputFormat");
+  int _objc_msgSend_457(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_457(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_457Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_457 = __objc_msgSend_457Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setOutputFormat_1 = _registerName1("setOutputFormat:");
+  void _objc_msgSend_458(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_458(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_458Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_458 = __objc_msgSend_458Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_encodedData1 = _registerName1("encodedData");
+  late final _sel_finishEncoding1 = _registerName1("finishEncoding");
+  late final _sel_setClassName_forClass_1 =
+      _registerName1("setClassName:forClass:");
+  void _objc_msgSend_459(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> codedName,
+    ffi.Pointer<ObjCObject> cls,
+  ) {
+    return __objc_msgSend_459(
+      obj,
+      sel,
+      codedName,
+      cls,
+    );
+  }
+
+  late final __objc_msgSend_459Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_459 = __objc_msgSend_459Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classNameForClass_1 = _registerName1("classNameForClass:");
+  late final _sel_setRequiresSecureCoding_1 =
+      _registerName1("setRequiresSecureCoding:");
+  void _objc_msgSend_460(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_460(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_460Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_460 = __objc_msgSend_460Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_replacementObjectForKeyedArchiver_1 =
+      _registerName1("replacementObjectForKeyedArchiver:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_461(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> archiver,
+  ) {
+    return __objc_msgSend_461(
+      obj,
+      sel,
+      archiver,
+    );
+  }
+
+  late final __objc_msgSend_461Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_461 = __objc_msgSend_461Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelectorOnMainThread_withObject_waitUntilDone_modes_1 =
+      _registerName1(
+          "performSelectorOnMainThread:withObject:waitUntilDone:modes:");
+  void _objc_msgSend_462(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+    ffi.Pointer<ObjCObject> array,
+  ) {
+    return __objc_msgSend_462(
+      obj,
+      sel,
+      aSelector,
+      arg,
+      wait,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_462Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_462 = __objc_msgSend_462Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelectorOnMainThread_withObject_waitUntilDone_1 =
+      _registerName1("performSelectorOnMainThread:withObject:waitUntilDone:");
+  void _objc_msgSend_463(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+  ) {
+    return __objc_msgSend_463(
+      obj,
+      sel,
+      aSelector,
+      arg,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_463Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_463 = __objc_msgSend_463Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _class_NSThread1 = _getClass1("NSThread");
+  late final _sel_currentThread1 = _registerName1("currentThread");
+  ffi.Pointer<ObjCObject> _objc_msgSend_464(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_464(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_464Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_464 = __objc_msgSend_464Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_detachNewThreadWithBlock_1 =
+      _registerName1("detachNewThreadWithBlock:");
+  void _objc_msgSend_465(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_465(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_465Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_465 = __objc_msgSend_465Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_detachNewThreadSelector_toTarget_withObject_1 =
+      _registerName1("detachNewThreadSelector:toTarget:withObject:");
+  void _objc_msgSend_466(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> selector,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_466(
+      obj,
+      sel,
+      selector,
+      target,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_466Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_466 = __objc_msgSend_466Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isMultiThreaded1 = _registerName1("isMultiThreaded");
+  late final _class_NSMutableDictionary1 = _getClass1("NSMutableDictionary");
+  late final _sel_removeObjectForKey_1 = _registerName1("removeObjectForKey:");
+  late final _sel_setObject_forKey_1 = _registerName1("setObject:forKey:");
+  void _objc_msgSend_467(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    ffi.Pointer<ObjCObject> aKey,
+  ) {
+    return __objc_msgSend_467(
+      obj,
+      sel,
+      anObject,
+      aKey,
+    );
+  }
+
+  late final __objc_msgSend_467Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_467 = __objc_msgSend_467Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addEntriesFromDictionary_1 =
+      _registerName1("addEntriesFromDictionary:");
+  late final _sel_removeObjectsForKeys_1 =
+      _registerName1("removeObjectsForKeys:");
+  late final _sel_setDictionary_1 = _registerName1("setDictionary:");
+  late final _sel_setObject_forKeyedSubscript_1 =
+      _registerName1("setObject:forKeyedSubscript:");
+  late final _sel_dictionaryWithCapacity_1 =
+      _registerName1("dictionaryWithCapacity:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_468(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_468(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_468Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_468 = __objc_msgSend_468Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_469(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_469(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_469Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_469 = __objc_msgSend_469Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithSharedKeySet_1 =
+      _registerName1("dictionaryWithSharedKeySet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_470(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyset,
+  ) {
+    return __objc_msgSend_470(
+      obj,
+      sel,
+      keyset,
+    );
+  }
+
+  late final __objc_msgSend_470Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_470 = __objc_msgSend_470Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_threadDictionary1 = _registerName1("threadDictionary");
+  ffi.Pointer<ObjCObject> _objc_msgSend_471(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_471(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_471Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_471 = __objc_msgSend_471Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sleepUntilDate_1 = _registerName1("sleepUntilDate:");
+  void _objc_msgSend_472(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_472(
+      obj,
+      sel,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_472Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_472 = __objc_msgSend_472Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sleepForTimeInterval_1 =
+      _registerName1("sleepForTimeInterval:");
+  void _objc_msgSend_473(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+  ) {
+    return __objc_msgSend_473(
+      obj,
+      sel,
+      ti,
+    );
+  }
+
+  late final __objc_msgSend_473Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_473 = __objc_msgSend_473Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_exit1 = _registerName1("exit");
+  late final _sel_threadPriority1 = _registerName1("threadPriority");
+  late final _sel_setThreadPriority_1 = _registerName1("setThreadPriority:");
+  void _objc_msgSend_474(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_474(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_474Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_474 = __objc_msgSend_474Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_qualityOfService1 = _registerName1("qualityOfService");
+  int _objc_msgSend_475(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_475(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_475Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_475 = __objc_msgSend_475Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setQualityOfService_1 =
+      _registerName1("setQualityOfService:");
+  void _objc_msgSend_476(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_476(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_476Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_476 = __objc_msgSend_476Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_callStackReturnAddresses1 =
+      _registerName1("callStackReturnAddresses");
+  late final _sel_callStackSymbols1 = _registerName1("callStackSymbols");
+  late final _sel_setName_1 = _registerName1("setName:");
+  void _objc_msgSend_477(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_477(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_477Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_477 = __objc_msgSend_477Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stackSize1 = _registerName1("stackSize");
+  late final _sel_setStackSize_1 = _registerName1("setStackSize:");
+  late final _sel_isMainThread1 = _registerName1("isMainThread");
+  late final _sel_mainThread1 = _registerName1("mainThread");
+  late final _sel_initWithTarget_selector_object_1 =
+      _registerName1("initWithTarget:selector:object:");
+  instancetype _objc_msgSend_478(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCSel> selector,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_478(
+      obj,
+      sel,
+      target,
+      selector,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_478Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_478 = __objc_msgSend_478Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithBlock_1 = _registerName1("initWithBlock:");
+  instancetype _objc_msgSend_479(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_479(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_479Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_479 = __objc_msgSend_479Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_isExecuting1 = _registerName1("isExecuting");
+  late final _sel_isFinished1 = _registerName1("isFinished");
+  late final _sel_isCancelled1 = _registerName1("isCancelled");
+  late final _sel_cancel1 = _registerName1("cancel");
+  late final _sel_start1 = _registerName1("start");
+  late final _sel_main1 = _registerName1("main");
+  late final _sel_performSelector_onThread_withObject_waitUntilDone_modes_1 =
+      _registerName1(
+          "performSelector:onThread:withObject:waitUntilDone:modes:");
+  void _objc_msgSend_480(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> thr,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+    ffi.Pointer<ObjCObject> array,
+  ) {
+    return __objc_msgSend_480(
+      obj,
+      sel,
+      aSelector,
+      thr,
+      arg,
+      wait,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_480Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_480 = __objc_msgSend_480Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelector_onThread_withObject_waitUntilDone_1 =
+      _registerName1("performSelector:onThread:withObject:waitUntilDone:");
+  void _objc_msgSend_481(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> thr,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+  ) {
+    return __objc_msgSend_481(
+      obj,
+      sel,
+      aSelector,
+      thr,
+      arg,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_481Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_481 = __objc_msgSend_481Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_performSelectorInBackground_withObject_1 =
+      _registerName1("performSelectorInBackground:withObject:");
+  late final _sel_classForArchiver1 = _registerName1("classForArchiver");
+  late final _class_NSArchiver1 = _getClass1("NSArchiver");
+  late final _sel_archiverData1 = _registerName1("archiverData");
+  ffi.Pointer<ObjCObject> _objc_msgSend_482(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_482(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_482Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_482 = __objc_msgSend_482Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_encodeClassName_intoClassName_1 =
+      _registerName1("encodeClassName:intoClassName:");
+  void _objc_msgSend_483(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> trueName,
+    ffi.Pointer<ObjCObject> inArchiveName,
+  ) {
+    return __objc_msgSend_483(
+      obj,
+      sel,
+      trueName,
+      inArchiveName,
+    );
+  }
+
+  late final __objc_msgSend_483Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_483 = __objc_msgSend_483Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classNameEncodedForTrueClassName_1 =
+      _registerName1("classNameEncodedForTrueClassName:");
+  late final _sel_replaceObject_withObject_1 =
+      _registerName1("replaceObject:withObject:");
+  late final _sel_replacementObjectForArchiver_1 =
+      _registerName1("replacementObjectForArchiver:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_484(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> archiver,
+  ) {
+    return __objc_msgSend_484(
+      obj,
+      sel,
+      archiver,
+    );
+  }
+
+  late final __objc_msgSend_484Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_484 = __objc_msgSend_484Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classForPortCoder1 = _registerName1("classForPortCoder");
+  late final _class_NSPortCoder1 = _getClass1("NSPortCoder");
+  late final _sel_isBycopy1 = _registerName1("isBycopy");
+  late final _sel_isByref1 = _registerName1("isByref");
+  late final _class_NSPort1 = _getClass1("NSPort");
+  ffi.Pointer<ObjCObject> _objc_msgSend_485(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_485(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_485Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_485 = __objc_msgSend_485Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_invalidate1 = _registerName1("invalidate");
+  late final _sel_isValid1 = _registerName1("isValid");
+  late final _class_NSRunLoop1 = _getClass1("NSRunLoop");
+  late final _sel_currentRunLoop1 = _registerName1("currentRunLoop");
+  ffi.Pointer<ObjCObject> _objc_msgSend_486(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_486(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_486Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_486 = __objc_msgSend_486Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mainRunLoop1 = _registerName1("mainRunLoop");
+  late final _sel_currentMode1 = _registerName1("currentMode");
+  late final _sel_getCFRunLoop1 = _registerName1("getCFRunLoop");
+  CFRunLoopRef _objc_msgSend_487(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_487(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_487Ptr = _lookup<
+      ffi.NativeFunction<
+          CFRunLoopRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_487 = __objc_msgSend_487Ptr.asFunction<
+      CFRunLoopRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSTimer1 = _getClass1("NSTimer");
+  late final _sel_timerWithTimeInterval_invocation_repeats_1 =
+      _registerName1("timerWithTimeInterval:invocation:repeats:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_488(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+    ffi.Pointer<ObjCObject> invocation,
+    bool yesOrNo,
+  ) {
+    return __objc_msgSend_488(
+      obj,
+      sel,
+      ti,
+      invocation,
+      yesOrNo,
+    );
+  }
+
+  late final __objc_msgSend_488Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_488 = __objc_msgSend_488Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, double, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_invocation_repeats_1 =
+      _registerName1("scheduledTimerWithTimeInterval:invocation:repeats:");
+  late final _sel_timerWithTimeInterval_target_selector_userInfo_repeats_1 =
+      _registerName1("timerWithTimeInterval:target:selector:userInfo:repeats:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_489(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+    ffi.Pointer<ObjCObject> aTarget,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> userInfo,
+    bool yesOrNo,
+  ) {
+    return __objc_msgSend_489(
+      obj,
+      sel,
+      ti,
+      aTarget,
+      aSelector,
+      userInfo,
+      yesOrNo,
+    );
+  }
+
+  late final __objc_msgSend_489Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_489 = __objc_msgSend_489Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          double,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_1 =
+      _registerName1(
+          "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:");
+  late final _sel_timerWithTimeInterval_repeats_block_1 =
+      _registerName1("timerWithTimeInterval:repeats:block:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_490(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double interval,
+    bool repeats,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_490(
+      obj,
+      sel,
+      interval,
+      repeats,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_490Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Bool,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_490 = __objc_msgSend_490Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, double, bool, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_repeats_block_1 =
+      _registerName1("scheduledTimerWithTimeInterval:repeats:block:");
+  late final _sel_initWithFireDate_interval_repeats_block_1 =
+      _registerName1("initWithFireDate:interval:repeats:block:");
+  instancetype _objc_msgSend_491(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    double interval,
+    bool repeats,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_491(
+      obj,
+      sel,
+      date,
+      interval,
+      repeats,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_491Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Bool,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_491 = __objc_msgSend_491Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, double, bool, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithFireDate_interval_target_selector_userInfo_repeats_1 =
+      _registerName1(
+          "initWithFireDate:interval:target:selector:userInfo:repeats:");
+  instancetype _objc_msgSend_492(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    double ti,
+    ffi.Pointer<ObjCObject> t,
+    ffi.Pointer<ObjCSel> s,
+    ffi.Pointer<ObjCObject> ui,
+    bool rep,
+  ) {
+    return __objc_msgSend_492(
+      obj,
+      sel,
+      date,
+      ti,
+      t,
+      s,
+      ui,
+      rep,
+    );
+  }
+
+  late final __objc_msgSend_492Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_492 = __objc_msgSend_492Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          double,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_fire1 = _registerName1("fire");
+  late final _sel_fireDate1 = _registerName1("fireDate");
+  late final _sel_setFireDate_1 = _registerName1("setFireDate:");
+  void _objc_msgSend_493(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_493(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_493Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_493 = __objc_msgSend_493Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeInterval1 = _registerName1("timeInterval");
+  late final _sel_tolerance1 = _registerName1("tolerance");
+  late final _sel_setTolerance_1 = _registerName1("setTolerance:");
+  late final _sel_userInfo1 = _registerName1("userInfo");
+  late final _sel_addTimer_forMode_1 = _registerName1("addTimer:forMode:");
+  void _objc_msgSend_494(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> timer,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_494(
+      obj,
+      sel,
+      timer,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_494Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_494 = __objc_msgSend_494Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_addPort_forMode_1 = _registerName1("addPort:forMode:");
+  void _objc_msgSend_495(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aPort,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_495(
+      obj,
+      sel,
+      aPort,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_495Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_495 = __objc_msgSend_495Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removePort_forMode_1 = _registerName1("removePort:forMode:");
+  late final _sel_limitDateForMode_1 = _registerName1("limitDateForMode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_496(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_496(
+      obj,
+      sel,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_496Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_496 = __objc_msgSend_496Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRunLoopMode)>();
+
+  late final _sel_acceptInputForMode_beforeDate_1 =
+      _registerName1("acceptInputForMode:beforeDate:");
+  void _objc_msgSend_497(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+    ffi.Pointer<ObjCObject> limitDate,
+  ) {
+    return __objc_msgSend_497(
+      obj,
+      sel,
+      mode,
+      limitDate,
+    );
+  }
+
+  late final __objc_msgSend_497Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRunLoopMode, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_497 = __objc_msgSend_497Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSRunLoopMode, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_run1 = _registerName1("run");
+  late final _sel_runUntilDate_1 = _registerName1("runUntilDate:");
+  late final _sel_runMode_beforeDate_1 = _registerName1("runMode:beforeDate:");
+  bool _objc_msgSend_498(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+    ffi.Pointer<ObjCObject> limitDate,
+  ) {
+    return __objc_msgSend_498(
+      obj,
+      sel,
+      mode,
+      limitDate,
+    );
+  }
+
+  late final __objc_msgSend_498Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRunLoopMode, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_498 = __objc_msgSend_498Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSRunLoopMode, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_configureAsServer1 = _registerName1("configureAsServer");
+  late final _sel_performInModes_block_1 =
+      _registerName1("performInModes:block:");
+  void _objc_msgSend_499(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> modes,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_499(
+      obj,
+      sel,
+      modes,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_499Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_499 = __objc_msgSend_499Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_performBlock_1 = _registerName1("performBlock:");
+  late final _sel_performSelector_target_argument_order_modes_1 =
+      _registerName1("performSelector:target:argument:order:modes:");
+  void _objc_msgSend_500(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> arg,
+    int order,
+    ffi.Pointer<ObjCObject> modes,
+  ) {
+    return __objc_msgSend_500(
+      obj,
+      sel,
+      aSelector,
+      target,
+      arg,
+      order,
+      modes,
+    );
+  }
+
+  late final __objc_msgSend_500Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_500 = __objc_msgSend_500Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cancelPerformSelector_target_argument_1 =
+      _registerName1("cancelPerformSelector:target:argument:");
+  late final _sel_cancelPerformSelectorsWithTarget_1 =
+      _registerName1("cancelPerformSelectorsWithTarget:");
+  late final _sel_scheduleInRunLoop_forMode_1 =
+      _registerName1("scheduleInRunLoop:forMode:");
+  void _objc_msgSend_501(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> runLoop,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_501(
+      obj,
+      sel,
+      runLoop,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_501Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_501 = __objc_msgSend_501Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removeFromRunLoop_forMode_1 =
+      _registerName1("removeFromRunLoop:forMode:");
+  late final _sel_reservedSpaceLength1 = _registerName1("reservedSpaceLength");
+  late final _sel_sendBeforeDate_components_from_reserved_1 =
+      _registerName1("sendBeforeDate:components:from:reserved:");
+  bool _objc_msgSend_502(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> limitDate,
+    ffi.Pointer<ObjCObject> components,
+    ffi.Pointer<ObjCObject> receivePort,
+    int headerSpaceReserved,
+  ) {
+    return __objc_msgSend_502(
+      obj,
+      sel,
+      limitDate,
+      components,
+      receivePort,
+      headerSpaceReserved,
+    );
+  }
+
+  late final __objc_msgSend_502Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_502 = __objc_msgSend_502Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_sendBeforeDate_msgid_components_from_reserved_1 =
+      _registerName1("sendBeforeDate:msgid:components:from:reserved:");
+  bool _objc_msgSend_503(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> limitDate,
+    int msgID,
+    ffi.Pointer<ObjCObject> components,
+    ffi.Pointer<ObjCObject> receivePort,
+    int headerSpaceReserved,
+  ) {
+    return __objc_msgSend_503(
+      obj,
+      sel,
+      limitDate,
+      msgID,
+      components,
+      receivePort,
+      headerSpaceReserved,
+    );
+  }
+
+  late final __objc_msgSend_503Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_503 = __objc_msgSend_503Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _class_NSConnection1 = _getClass1("NSConnection");
+  late final _sel_statistics1 = _registerName1("statistics");
+  late final _sel_allConnections1 = _registerName1("allConnections");
+  late final _sel_defaultConnection1 = _registerName1("defaultConnection");
+  ffi.Pointer<ObjCObject> _objc_msgSend_504(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_504(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_504Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_504 = __objc_msgSend_504Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_connectionWithRegisteredName_host_1 =
+      _registerName1("connectionWithRegisteredName:host:");
+  late final _class_NSPortNameServer1 = _getClass1("NSPortNameServer");
+  late final _sel_systemDefaultPortNameServer1 =
+      _registerName1("systemDefaultPortNameServer");
+  ffi.Pointer<ObjCObject> _objc_msgSend_505(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_505(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_505Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_505 = __objc_msgSend_505Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_portForName_1 = _registerName1("portForName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_506(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_506(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_506Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_506 = __objc_msgSend_506Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_portForName_host_1 = _registerName1("portForName:host:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_507(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> host,
+  ) {
+    return __objc_msgSend_507(
+      obj,
+      sel,
+      name,
+      host,
+    );
+  }
+
+  late final __objc_msgSend_507Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_507 = __objc_msgSend_507Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_registerPort_name_1 = _registerName1("registerPort:name:");
+  bool _objc_msgSend_508(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> port,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_508(
+      obj,
+      sel,
+      port,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_508Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_508 = __objc_msgSend_508Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removePortForName_1 = _registerName1("removePortForName:");
+  late final _sel_connectionWithRegisteredName_host_usingNameServer_1 =
+      _registerName1("connectionWithRegisteredName:host:usingNameServer:");
+  instancetype _objc_msgSend_509(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_509(
+      obj,
+      sel,
+      name,
+      hostName,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_509Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_509 = __objc_msgSend_509Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSDistantObject1 = _getClass1("NSDistantObject");
+  late final _class_NSProxy1 = _getClass1("NSProxy");
+  late final _sel_respondsToSelector_1 = _registerName1("respondsToSelector:");
+  late final _sel_proxyWithTarget_connection_1 =
+      _registerName1("proxyWithTarget:connection:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_510(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> connection,
+  ) {
+    return __objc_msgSend_510(
+      obj,
+      sel,
+      target,
+      connection,
+    );
+  }
+
+  late final __objc_msgSend_510Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_510 = __objc_msgSend_510Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTarget_connection_1 =
+      _registerName1("initWithTarget:connection:");
+  late final _sel_proxyWithLocal_connection_1 =
+      _registerName1("proxyWithLocal:connection:");
+  late final _sel_initWithLocal_connection_1 =
+      _registerName1("initWithLocal:connection:");
+  late final _sel_setProtocolForProxy_1 =
+      _registerName1("setProtocolForProxy:");
+  void _objc_msgSend_511(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> proto,
+  ) {
+    return __objc_msgSend_511(
+      obj,
+      sel,
+      proto,
+    );
+  }
+
+  late final __objc_msgSend_511Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_511 = __objc_msgSend_511Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionForProxy1 = _registerName1("connectionForProxy");
+  late final _sel_rootProxyForConnectionWithRegisteredName_host_1 =
+      _registerName1("rootProxyForConnectionWithRegisteredName:host:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_512(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+  ) {
+    return __objc_msgSend_512(
+      obj,
+      sel,
+      name,
+      hostName,
+    );
+  }
+
+  late final __objc_msgSend_512Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_512 = __objc_msgSend_512Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_1 =
+      _registerName1(
+          "rootProxyForConnectionWithRegisteredName:host:usingNameServer:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_513(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_513(
+      obj,
+      sel,
+      name,
+      hostName,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_513Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_513 = __objc_msgSend_513Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_serviceConnectionWithName_rootObject_usingNameServer_1 =
+      _registerName1("serviceConnectionWithName:rootObject:usingNameServer:");
+  instancetype _objc_msgSend_514(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> root,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_514(
+      obj,
+      sel,
+      name,
+      root,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_514Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_514 = __objc_msgSend_514Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_serviceConnectionWithName_rootObject_1 =
+      _registerName1("serviceConnectionWithName:rootObject:");
+  late final _sel_requestTimeout1 = _registerName1("requestTimeout");
+  late final _sel_setRequestTimeout_1 = _registerName1("setRequestTimeout:");
+  late final _sel_replyTimeout1 = _registerName1("replyTimeout");
+  late final _sel_setReplyTimeout_1 = _registerName1("setReplyTimeout:");
+  late final _sel_rootObject1 = _registerName1("rootObject");
+  late final _sel_setRootObject_1 = _registerName1("setRootObject:");
+  late final _sel_independentConversationQueueing1 =
+      _registerName1("independentConversationQueueing");
+  late final _sel_setIndependentConversationQueueing_1 =
+      _registerName1("setIndependentConversationQueueing:");
+  late final _sel_rootProxy1 = _registerName1("rootProxy");
+  ffi.Pointer<ObjCObject> _objc_msgSend_515(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_515(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_515Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_515 = __objc_msgSend_515Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_addRequestMode_1 = _registerName1("addRequestMode:");
+  late final _sel_removeRequestMode_1 = _registerName1("removeRequestMode:");
+  late final _sel_requestModes1 = _registerName1("requestModes");
+  late final _sel_registerName_1 = _registerName1("registerName:");
+  late final _sel_registerName_withNameServer_1 =
+      _registerName1("registerName:withNameServer:");
+  bool _objc_msgSend_516(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_516(
+      obj,
+      sel,
+      name,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_516Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_516 = __objc_msgSend_516Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionWithReceivePort_sendPort_1 =
+      _registerName1("connectionWithReceivePort:sendPort:");
+  instancetype _objc_msgSend_517(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> receivePort,
+    ffi.Pointer<ObjCObject> sendPort,
+  ) {
+    return __objc_msgSend_517(
+      obj,
+      sel,
+      receivePort,
+      sendPort,
+    );
+  }
+
+  late final __objc_msgSend_517Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_517 = __objc_msgSend_517Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_currentConversation1 = _registerName1("currentConversation");
+  late final _sel_initWithReceivePort_sendPort_1 =
+      _registerName1("initWithReceivePort:sendPort:");
+  late final _sel_sendPort1 = _registerName1("sendPort");
+  late final _sel_receivePort1 = _registerName1("receivePort");
+  late final _sel_enableMultipleThreads1 =
+      _registerName1("enableMultipleThreads");
+  late final _sel_multipleThreadsEnabled1 =
+      _registerName1("multipleThreadsEnabled");
+  late final _sel_addRunLoop_1 = _registerName1("addRunLoop:");
+  void _objc_msgSend_518(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> runloop,
+  ) {
+    return __objc_msgSend_518(
+      obj,
+      sel,
+      runloop,
+    );
+  }
+
+  late final __objc_msgSend_518Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_518 = __objc_msgSend_518Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeRunLoop_1 = _registerName1("removeRunLoop:");
+  late final _sel_runInNewThread1 = _registerName1("runInNewThread");
+  late final _sel_remoteObjects1 = _registerName1("remoteObjects");
+  late final _sel_localObjects1 = _registerName1("localObjects");
+  late final _sel_dispatchWithComponents_1 =
+      _registerName1("dispatchWithComponents:");
+  late final _sel_addConnection_toRunLoop_forMode_1 =
+      _registerName1("addConnection:toRunLoop:forMode:");
+  void _objc_msgSend_519(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> conn,
+    ffi.Pointer<ObjCObject> runLoop,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_519(
+      obj,
+      sel,
+      conn,
+      runLoop,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_519Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_519 = __objc_msgSend_519Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removeConnection_fromRunLoop_forMode_1 =
+      _registerName1("removeConnection:fromRunLoop:forMode:");
+  late final _sel_encodePortObject_1 = _registerName1("encodePortObject:");
+  void _objc_msgSend_520(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aport,
+  ) {
+    return __objc_msgSend_520(
+      obj,
+      sel,
+      aport,
+    );
+  }
+
+  late final __objc_msgSend_520Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_520 = __objc_msgSend_520Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePortObject1 = _registerName1("decodePortObject");
+  late final _sel_connection1 = _registerName1("connection");
+  late final _sel_portCoderWithReceivePort_sendPort_components_1 =
+      _registerName1("portCoderWithReceivePort:sendPort:components:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_521(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> rcvPort,
+    ffi.Pointer<ObjCObject> sndPort,
+    ffi.Pointer<ObjCObject> comps,
+  ) {
+    return __objc_msgSend_521(
+      obj,
+      sel,
+      rcvPort,
+      sndPort,
+      comps,
+    );
+  }
+
+  late final __objc_msgSend_521Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_521 = __objc_msgSend_521Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithReceivePort_sendPort_components_1 =
+      _registerName1("initWithReceivePort:sendPort:components:");
+  late final _sel_dispatch1 = _registerName1("dispatch");
+  late final _sel_replacementObjectForPortCoder_1 =
+      _registerName1("replacementObjectForPortCoder:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_522(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> coder,
+  ) {
+    return __objc_msgSend_522(
+      obj,
+      sel,
+      coder,
+    );
+  }
+
+  late final __objc_msgSend_522Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_522 = __objc_msgSend_522Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSClassDescription1 = _getClass1("NSClassDescription");
+  late final _sel_registerClassDescription_forClass_1 =
+      _registerName1("registerClassDescription:forClass:");
+  void _objc_msgSend_523(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_523(
+      obj,
+      sel,
+      description,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_523Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_523 = __objc_msgSend_523Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_invalidateClassDescriptionCache1 =
+      _registerName1("invalidateClassDescriptionCache");
+  late final _sel_classDescriptionForClass_1 =
+      _registerName1("classDescriptionForClass:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_524(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_524(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_524Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_524 = __objc_msgSend_524Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributeKeys1 = _registerName1("attributeKeys");
+  late final _sel_toOneRelationshipKeys1 =
+      _registerName1("toOneRelationshipKeys");
+  late final _sel_toManyRelationshipKeys1 =
+      _registerName1("toManyRelationshipKeys");
+  late final _sel_inverseForRelationshipKey_1 =
+      _registerName1("inverseForRelationshipKey:");
+  late final _sel_classDescription1 = _registerName1("classDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_525(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_525(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_525Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_525 = __objc_msgSend_525Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSScriptObjectSpecifier1 =
+      _getClass1("NSScriptObjectSpecifier");
+  late final _class_NSAppleEventDescriptor1 =
+      _getClass1("NSAppleEventDescriptor");
+  late final _sel_nullDescriptor1 = _registerName1("nullDescriptor");
+  ffi.Pointer<ObjCObject> _objc_msgSend_526(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_526(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_526Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_526 = __objc_msgSend_526Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_descriptorWithDescriptorType_bytes_length_1 =
+      _registerName1("descriptorWithDescriptorType:bytes:length:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_527(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ffi.Void> bytes,
+    int byteCount,
+  ) {
+    return __objc_msgSend_527(
+      obj,
+      sel,
+      descriptorType,
+      bytes,
+      byteCount,
+    );
+  }
+
+  late final __objc_msgSend_527Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              DescType,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_527 = __objc_msgSend_527Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_descriptorWithDescriptorType_data_1 =
+      _registerName1("descriptorWithDescriptorType:data:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_528(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_528(
+      obj,
+      sel,
+      descriptorType,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_528Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              DescType,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_528 = __objc_msgSend_528Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithBoolean_1 =
+      _registerName1("descriptorWithBoolean:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_529(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int boolean,
+  ) {
+    return __objc_msgSend_529(
+      obj,
+      sel,
+      boolean,
+    );
+  }
+
+  late final __objc_msgSend_529Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, Boolean)>>('objc_msgSend');
+  late final __objc_msgSend_529 = __objc_msgSend_529Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithEnumCode_1 =
+      _registerName1("descriptorWithEnumCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_530(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int enumerator,
+  ) {
+    return __objc_msgSend_530(
+      obj,
+      sel,
+      enumerator,
+    );
+  }
+
+  late final __objc_msgSend_530Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, OSType)>>('objc_msgSend');
+  late final __objc_msgSend_530 = __objc_msgSend_530Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithInt32_1 =
+      _registerName1("descriptorWithInt32:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_531(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int signedInt,
+  ) {
+    return __objc_msgSend_531(
+      obj,
+      sel,
+      signedInt,
+    );
+  }
+
+  late final __objc_msgSend_531Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, SInt32)>>('objc_msgSend');
+  late final __objc_msgSend_531 = __objc_msgSend_531Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithDouble_1 =
+      _registerName1("descriptorWithDouble:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_532(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double doubleValue,
+  ) {
+    return __objc_msgSend_532(
+      obj,
+      sel,
+      doubleValue,
+    );
+  }
+
+  late final __objc_msgSend_532Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_532 = __objc_msgSend_532Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_descriptorWithTypeCode_1 =
+      _registerName1("descriptorWithTypeCode:");
+  late final _sel_descriptorWithString_1 =
+      _registerName1("descriptorWithString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_533(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_533(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_533Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_533 = __objc_msgSend_533Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithDate_1 = _registerName1("descriptorWithDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_534(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_534(
+      obj,
+      sel,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_534Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_534 = __objc_msgSend_534Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithFileURL_1 =
+      _registerName1("descriptorWithFileURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_535(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fileURL,
+  ) {
+    return __objc_msgSend_535(
+      obj,
+      sel,
+      fileURL,
+    );
+  }
+
+  late final __objc_msgSend_535Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_535 = __objc_msgSend_535Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_1 =
+      _registerName1(
+          "appleEventWithEventClass:eventID:targetDescriptor:returnID:transactionID:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_536(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eventClass,
+    int eventID,
+    ffi.Pointer<ObjCObject> targetDescriptor,
+    int returnID,
+    int transactionID,
+  ) {
+    return __objc_msgSend_536(
+      obj,
+      sel,
+      eventClass,
+      eventID,
+      targetDescriptor,
+      returnID,
+      transactionID,
+    );
+  }
+
+  late final __objc_msgSend_536Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AEEventClass,
+              AEEventID,
+              ffi.Pointer<ObjCObject>,
+              AEReturnID,
+              AETransactionID)>>('objc_msgSend');
+  late final __objc_msgSend_536 = __objc_msgSend_536Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_listDescriptor1 = _registerName1("listDescriptor");
+  late final _sel_recordDescriptor1 = _registerName1("recordDescriptor");
+  late final _sel_currentProcessDescriptor1 =
+      _registerName1("currentProcessDescriptor");
+  late final _sel_descriptorWithProcessIdentifier_1 =
+      _registerName1("descriptorWithProcessIdentifier:");
+  late final _sel_descriptorWithBundleIdentifier_1 =
+      _registerName1("descriptorWithBundleIdentifier:");
+  late final _sel_descriptorWithApplicationURL_1 =
+      _registerName1("descriptorWithApplicationURL:");
+  late final _sel_initWithAEDescNoCopy_1 =
+      _registerName1("initWithAEDescNoCopy:");
+  instancetype _objc_msgSend_537(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<AEDesc> aeDesc,
+  ) {
+    return __objc_msgSend_537(
+      obj,
+      sel,
+      aeDesc,
+    );
+  }
+
+  late final __objc_msgSend_537Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<AEDesc>)>>('objc_msgSend');
+  late final __objc_msgSend_537 = __objc_msgSend_537Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<AEDesc>)>();
+
+  late final _sel_initWithDescriptorType_bytes_length_1 =
+      _registerName1("initWithDescriptorType:bytes:length:");
+  instancetype _objc_msgSend_538(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ffi.Void> bytes,
+    int byteCount,
+  ) {
+    return __objc_msgSend_538(
+      obj,
+      sel,
+      descriptorType,
+      bytes,
+      byteCount,
+    );
+  }
+
+  late final __objc_msgSend_538Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              DescType, ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_538 = __objc_msgSend_538Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_initWithDescriptorType_data_1 =
+      _registerName1("initWithDescriptorType:data:");
+  instancetype _objc_msgSend_539(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_539(
+      obj,
+      sel,
+      descriptorType,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_539Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              DescType, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_539 = __objc_msgSend_539Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_1 =
+      _registerName1(
+          "initWithEventClass:eventID:targetDescriptor:returnID:transactionID:");
+  instancetype _objc_msgSend_540(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eventClass,
+    int eventID,
+    ffi.Pointer<ObjCObject> targetDescriptor,
+    int returnID,
+    int transactionID,
+  ) {
+    return __objc_msgSend_540(
+      obj,
+      sel,
+      eventClass,
+      eventID,
+      targetDescriptor,
+      returnID,
+      transactionID,
+    );
+  }
+
+  late final __objc_msgSend_540Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AEEventClass,
+              AEEventID,
+              ffi.Pointer<ObjCObject>,
+              AEReturnID,
+              AETransactionID)>>('objc_msgSend');
+  late final __objc_msgSend_540 = __objc_msgSend_540Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_initListDescriptor1 = _registerName1("initListDescriptor");
+  late final _sel_initRecordDescriptor1 =
+      _registerName1("initRecordDescriptor");
+  late final _sel_aeDesc1 = _registerName1("aeDesc");
+  ffi.Pointer<AEDesc> _objc_msgSend_541(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_541(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_541Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<AEDesc> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_541 = __objc_msgSend_541Ptr.asFunction<
+      ffi.Pointer<AEDesc> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_descriptorType1 = _registerName1("descriptorType");
+  late final _sel_booleanValue1 = _registerName1("booleanValue");
+  late final _sel_enumCodeValue1 = _registerName1("enumCodeValue");
+  late final _sel_int32Value1 = _registerName1("int32Value");
+  late final _sel_typeCodeValue1 = _registerName1("typeCodeValue");
+  late final _sel_dateValue1 = _registerName1("dateValue");
+  late final _sel_fileURLValue1 = _registerName1("fileURLValue");
+  late final _sel_eventClass1 = _registerName1("eventClass");
+  late final _sel_eventID1 = _registerName1("eventID");
+  late final _sel_returnID1 = _registerName1("returnID");
+  late final _sel_transactionID1 = _registerName1("transactionID");
+  late final _sel_setParamDescriptor_forKeyword_1 =
+      _registerName1("setParamDescriptor:forKeyword:");
+  void _objc_msgSend_542(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+    int keyword,
+  ) {
+    return __objc_msgSend_542(
+      obj,
+      sel,
+      descriptor,
+      keyword,
+    );
+  }
+
+  late final __objc_msgSend_542Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, AEKeyword)>>('objc_msgSend');
+  late final __objc_msgSend_542 = __objc_msgSend_542Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_paramDescriptorForKeyword_1 =
+      _registerName1("paramDescriptorForKeyword:");
+  late final _sel_removeParamDescriptorWithKeyword_1 =
+      _registerName1("removeParamDescriptorWithKeyword:");
+  void _objc_msgSend_543(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int keyword,
+  ) {
+    return __objc_msgSend_543(
+      obj,
+      sel,
+      keyword,
+    );
+  }
+
+  late final __objc_msgSend_543Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              AEKeyword)>>('objc_msgSend');
+  late final __objc_msgSend_543 = __objc_msgSend_543Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setAttributeDescriptor_forKeyword_1 =
+      _registerName1("setAttributeDescriptor:forKeyword:");
+  late final _sel_attributeDescriptorForKeyword_1 =
+      _registerName1("attributeDescriptorForKeyword:");
+  late final _sel_sendEventWithOptions_timeout_error_1 =
+      _registerName1("sendEventWithOptions:timeout:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_544(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int sendOptions,
+    double timeoutInSeconds,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_544(
+      obj,
+      sel,
+      sendOptions,
+      timeoutInSeconds,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_544Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              NSTimeInterval,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_544 = __objc_msgSend_544Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          double,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isRecordDescriptor1 = _registerName1("isRecordDescriptor");
+  late final _sel_numberOfItems1 = _registerName1("numberOfItems");
+  late final _sel_insertDescriptor_atIndex_1 =
+      _registerName1("insertDescriptor:atIndex:");
+  void _objc_msgSend_545(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+    int index,
+  ) {
+    return __objc_msgSend_545(
+      obj,
+      sel,
+      descriptor,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_545Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_545 = __objc_msgSend_545Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_descriptorAtIndex_1 = _registerName1("descriptorAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_546(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_546(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_546Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_546 = __objc_msgSend_546Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_removeDescriptorAtIndex_1 =
+      _registerName1("removeDescriptorAtIndex:");
+  late final _sel_setDescriptor_forKeyword_1 =
+      _registerName1("setDescriptor:forKeyword:");
+  late final _sel_descriptorForKeyword_1 =
+      _registerName1("descriptorForKeyword:");
+  late final _sel_removeDescriptorWithKeyword_1 =
+      _registerName1("removeDescriptorWithKeyword:");
+  late final _sel_keywordForDescriptorAtIndex_1 =
+      _registerName1("keywordForDescriptorAtIndex:");
+  int _objc_msgSend_547(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_547(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_547Ptr = _lookup<
+      ffi.NativeFunction<
+          AEKeyword Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_547 = __objc_msgSend_547Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_coerceToDescriptorType_1 =
+      _registerName1("coerceToDescriptorType:");
+  late final _sel_objectSpecifierWithDescriptor_1 =
+      _registerName1("objectSpecifierWithDescriptor:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_548(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+  ) {
+    return __objc_msgSend_548(
+      obj,
+      sel,
+      descriptor,
+    );
+  }
+
+  late final __objc_msgSend_548Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_548 = __objc_msgSend_548Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithContainerSpecifier_key_1 =
+      _registerName1("initWithContainerSpecifier:key:");
+  instancetype _objc_msgSend_549(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<ObjCObject> property,
+  ) {
+    return __objc_msgSend_549(
+      obj,
+      sel,
+      container,
+      property,
+    );
+  }
+
+  late final __objc_msgSend_549Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_549 = __objc_msgSend_549Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSScriptClassDescription1 =
+      _getClass1("NSScriptClassDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_550(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_550(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_550Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_550 = __objc_msgSend_550Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithSuiteName_className_dictionary_1 =
+      _registerName1("initWithSuiteName:className:dictionary:");
+  instancetype _objc_msgSend_551(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> suiteName,
+    ffi.Pointer<ObjCObject> className,
+    ffi.Pointer<ObjCObject> classDeclaration,
+  ) {
+    return __objc_msgSend_551(
+      obj,
+      sel,
+      suiteName,
+      className,
+      classDeclaration,
+    );
+  }
+
+  late final __objc_msgSend_551Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_551 = __objc_msgSend_551Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_suiteName1 = _registerName1("suiteName");
+  late final _sel_className1 = _registerName1("className");
+  late final _sel_implementationClassName1 =
+      _registerName1("implementationClassName");
+  late final _sel_superclassDescription1 =
+      _registerName1("superclassDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_552(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_552(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_552Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_552 = __objc_msgSend_552Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_appleEventCode1 = _registerName1("appleEventCode");
+  late final _sel_matchesAppleEventCode_1 =
+      _registerName1("matchesAppleEventCode:");
+  late final _class_NSScriptCommandDescription1 =
+      _getClass1("NSScriptCommandDescription");
+  late final _sel_initWithSuiteName_commandName_dictionary_1 =
+      _registerName1("initWithSuiteName:commandName:dictionary:");
+  late final _sel_commandName1 = _registerName1("commandName");
+  late final _sel_appleEventClassCode1 = _registerName1("appleEventClassCode");
+  late final _sel_commandClassName1 = _registerName1("commandClassName");
+  late final _sel_returnType1 = _registerName1("returnType");
+  late final _sel_appleEventCodeForReturnType1 =
+      _registerName1("appleEventCodeForReturnType");
+  late final _sel_argumentNames1 = _registerName1("argumentNames");
+  late final _sel_typeForArgumentWithName_1 =
+      _registerName1("typeForArgumentWithName:");
+  late final _sel_appleEventCodeForArgumentWithName_1 =
+      _registerName1("appleEventCodeForArgumentWithName:");
+  int _objc_msgSend_553(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> argumentName,
+  ) {
+    return __objc_msgSend_553(
+      obj,
+      sel,
+      argumentName,
+    );
+  }
+
+  late final __objc_msgSend_553Ptr = _lookup<
+      ffi.NativeFunction<
+          FourCharCode Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_553 = __objc_msgSend_553Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isOptionalArgumentWithName_1 =
+      _registerName1("isOptionalArgumentWithName:");
+  late final _class_NSScriptCommand1 = _getClass1("NSScriptCommand");
+  late final _sel_initWithCommandDescription_1 =
+      _registerName1("initWithCommandDescription:");
+  instancetype _objc_msgSend_554(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDef,
+  ) {
+    return __objc_msgSend_554(
+      obj,
+      sel,
+      commandDef,
+    );
+  }
+
+  late final __objc_msgSend_554Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_554 = __objc_msgSend_554Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_commandDescription1 = _registerName1("commandDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_555(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_555(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_555Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_555 = __objc_msgSend_555Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_directParameter1 = _registerName1("directParameter");
+  late final _sel_setDirectParameter_1 = _registerName1("setDirectParameter:");
+  late final _sel_receiversSpecifier1 = _registerName1("receiversSpecifier");
+  ffi.Pointer<ObjCObject> _objc_msgSend_556(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_556(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_556Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_556 = __objc_msgSend_556Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setReceiversSpecifier_1 =
+      _registerName1("setReceiversSpecifier:");
+  void _objc_msgSend_557(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_557(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_557Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_557 = __objc_msgSend_557Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_evaluatedReceivers1 = _registerName1("evaluatedReceivers");
+  late final _sel_arguments1 = _registerName1("arguments");
+  late final _sel_setArguments_1 = _registerName1("setArguments:");
+  late final _sel_evaluatedArguments1 = _registerName1("evaluatedArguments");
+  late final _sel_isWellFormed1 = _registerName1("isWellFormed");
+  late final _sel_performDefaultImplementation1 =
+      _registerName1("performDefaultImplementation");
+  late final _sel_executeCommand1 = _registerName1("executeCommand");
+  late final _sel_scriptErrorNumber1 = _registerName1("scriptErrorNumber");
+  late final _sel_setScriptErrorNumber_1 =
+      _registerName1("setScriptErrorNumber:");
+  void _objc_msgSend_558(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_558(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_558Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_558 = __objc_msgSend_558Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_scriptErrorOffendingObjectDescriptor1 =
+      _registerName1("scriptErrorOffendingObjectDescriptor");
+  late final _sel_setScriptErrorOffendingObjectDescriptor_1 =
+      _registerName1("setScriptErrorOffendingObjectDescriptor:");
+  void _objc_msgSend_559(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_559(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_559Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_559 = __objc_msgSend_559Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_scriptErrorExpectedTypeDescriptor1 =
+      _registerName1("scriptErrorExpectedTypeDescriptor");
+  late final _sel_setScriptErrorExpectedTypeDescriptor_1 =
+      _registerName1("setScriptErrorExpectedTypeDescriptor:");
+  late final _sel_scriptErrorString1 = _registerName1("scriptErrorString");
+  late final _sel_setScriptErrorString_1 =
+      _registerName1("setScriptErrorString:");
+  late final _sel_currentCommand1 = _registerName1("currentCommand");
+  ffi.Pointer<ObjCObject> _objc_msgSend_560(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_560(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_560Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_560 = __objc_msgSend_560Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_appleEvent1 = _registerName1("appleEvent");
+  late final _sel_suspendExecution1 = _registerName1("suspendExecution");
+  late final _sel_resumeExecutionWithResult_1 =
+      _registerName1("resumeExecutionWithResult:");
+  late final _sel_createCommandInstance1 =
+      _registerName1("createCommandInstance");
+  late final _sel_createCommandInstanceWithZone_1 =
+      _registerName1("createCommandInstanceWithZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_561(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSZone> zone,
+  ) {
+    return __objc_msgSend_561(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_561Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_561 = __objc_msgSend_561Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<NSZone>)>();
+
+  late final _sel_supportsCommand_1 = _registerName1("supportsCommand:");
+  bool _objc_msgSend_562(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDescription,
+  ) {
+    return __objc_msgSend_562(
+      obj,
+      sel,
+      commandDescription,
+    );
+  }
+
+  late final __objc_msgSend_562Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_562 = __objc_msgSend_562Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_selectorForCommand_1 = _registerName1("selectorForCommand:");
+  ffi.Pointer<ObjCSel> _objc_msgSend_563(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDescription,
+  ) {
+    return __objc_msgSend_563(
+      obj,
+      sel,
+      commandDescription,
+    );
+  }
+
+  late final __objc_msgSend_563Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_563 = __objc_msgSend_563Ptr.asFunction<
+      ffi.Pointer<ObjCSel> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_typeForKey_1 = _registerName1("typeForKey:");
+  late final _sel_classDescriptionForKey_1 =
+      _registerName1("classDescriptionForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_564(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_564(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_564Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_564 = __objc_msgSend_564Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_appleEventCodeForKey_1 =
+      _registerName1("appleEventCodeForKey:");
+  late final _sel_keyWithAppleEventCode_1 =
+      _registerName1("keyWithAppleEventCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_565(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int appleEventCode,
+  ) {
+    return __objc_msgSend_565(
+      obj,
+      sel,
+      appleEventCode,
+    );
+  }
+
+  late final __objc_msgSend_565Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, FourCharCode)>>('objc_msgSend');
+  late final __objc_msgSend_565 = __objc_msgSend_565Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_defaultSubcontainerAttributeKey1 =
+      _registerName1("defaultSubcontainerAttributeKey");
+  late final _sel_isLocationRequiredToCreateForKey_1 =
+      _registerName1("isLocationRequiredToCreateForKey:");
+  late final _sel_hasPropertyForKey_1 = _registerName1("hasPropertyForKey:");
+  late final _sel_hasOrderedToManyRelationshipForKey_1 =
+      _registerName1("hasOrderedToManyRelationshipForKey:");
+  late final _sel_hasReadablePropertyForKey_1 =
+      _registerName1("hasReadablePropertyForKey:");
+  late final _sel_hasWritablePropertyForKey_1 =
+      _registerName1("hasWritablePropertyForKey:");
+  late final _sel_isReadOnlyKey_1 = _registerName1("isReadOnlyKey:");
+  late final _sel_initWithContainerClassDescription_containerSpecifier_key_1 =
+      _registerName1(
+          "initWithContainerClassDescription:containerSpecifier:key:");
+  instancetype _objc_msgSend_566(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classDesc,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<ObjCObject> property,
+  ) {
+    return __objc_msgSend_566(
+      obj,
+      sel,
+      classDesc,
+      container,
+      property,
+    );
+  }
+
+  late final __objc_msgSend_566Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_566 = __objc_msgSend_566Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_childSpecifier1 = _registerName1("childSpecifier");
+  late final _sel_setChildSpecifier_1 = _registerName1("setChildSpecifier:");
+  late final _sel_containerSpecifier1 = _registerName1("containerSpecifier");
+  late final _sel_setContainerSpecifier_1 =
+      _registerName1("setContainerSpecifier:");
+  late final _sel_containerIsObjectBeingTested1 =
+      _registerName1("containerIsObjectBeingTested");
+  late final _sel_setContainerIsObjectBeingTested_1 =
+      _registerName1("setContainerIsObjectBeingTested:");
+  late final _sel_containerIsRangeContainerObject1 =
+      _registerName1("containerIsRangeContainerObject");
+  late final _sel_setContainerIsRangeContainerObject_1 =
+      _registerName1("setContainerIsRangeContainerObject:");
+  late final _sel_key1 = _registerName1("key");
+  late final _sel_setKey_1 = _registerName1("setKey:");
+  late final _sel_containerClassDescription1 =
+      _registerName1("containerClassDescription");
+  late final _sel_setContainerClassDescription_1 =
+      _registerName1("setContainerClassDescription:");
+  void _objc_msgSend_567(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_567(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_567Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_567 = __objc_msgSend_567Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_keyClassDescription1 = _registerName1("keyClassDescription");
+  late final _sel_indicesOfObjectsByEvaluatingWithContainer_count_1 =
+      _registerName1("indicesOfObjectsByEvaluatingWithContainer:count:");
+  ffi.Pointer<NSInteger> _objc_msgSend_568(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<NSInteger> count,
+  ) {
+    return __objc_msgSend_568(
+      obj,
+      sel,
+      container,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_568Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSInteger> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_568 = __objc_msgSend_568Ptr.asFunction<
+      ffi.Pointer<NSInteger> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSInteger>)>();
+
+  late final _sel_objectsByEvaluatingWithContainers_1 =
+      _registerName1("objectsByEvaluatingWithContainers:");
+  late final _sel_objectsByEvaluatingSpecifier1 =
+      _registerName1("objectsByEvaluatingSpecifier");
+  late final _sel_evaluationErrorNumber1 =
+      _registerName1("evaluationErrorNumber");
+  late final _sel_setEvaluationErrorNumber_1 =
+      _registerName1("setEvaluationErrorNumber:");
+  late final _sel_evaluationErrorSpecifier1 =
+      _registerName1("evaluationErrorSpecifier");
+  late final _sel_descriptor1 = _registerName1("descriptor");
+  late final _sel_scriptingValueForSpecifier_1 =
+      _registerName1("scriptingValueForSpecifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_569(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objectSpecifier,
+  ) {
+    return __objc_msgSend_569(
+      obj,
+      sel,
+      objectSpecifier,
+    );
+  }
+
+  late final __objc_msgSend_569Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_569 = __objc_msgSend_569Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_scriptingProperties1 = _registerName1("scriptingProperties");
+  late final _sel_setScriptingProperties_1 =
+      _registerName1("setScriptingProperties:");
+  late final _sel_copyScriptingValue_forKey_withProperties_1 =
+      _registerName1("copyScriptingValue:forKey:withProperties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_570(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_570(
+      obj,
+      sel,
+      value,
+      key,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_570Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_570 = __objc_msgSend_570Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_1 =
+      _registerName1(
+          "newScriptingObjectOfClass:forValueForKey:withContentsValue:properties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_571(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objectClass,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> contentsValue,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_571(
+      obj,
+      sel,
+      objectClass,
+      key,
+      contentsValue,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_571Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_571 = __objc_msgSend_571Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classCode1 = _registerName1("classCode");
+  late final _sel_valueAtIndex_inPropertyWithKey_1 =
+      _registerName1("valueAtIndex:inPropertyWithKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_572(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_572(
+      obj,
+      sel,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_572Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_572 = __objc_msgSend_572Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueWithName_inPropertyWithKey_1 =
+      _registerName1("valueWithName:inPropertyWithKey:");
+  late final _sel_valueWithUniqueID_inPropertyWithKey_1 =
+      _registerName1("valueWithUniqueID:inPropertyWithKey:");
+  late final _sel_insertValue_atIndex_inPropertyWithKey_1 =
+      _registerName1("insertValue:atIndex:inPropertyWithKey:");
+  void _objc_msgSend_573(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_573(
+      obj,
+      sel,
+      value,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_573Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_573 = __objc_msgSend_573Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeValueAtIndex_fromPropertyWithKey_1 =
+      _registerName1("removeValueAtIndex:fromPropertyWithKey:");
+  void _objc_msgSend_574(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_574(
+      obj,
+      sel,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_574Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_574 = __objc_msgSend_574Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceValueAtIndex_inPropertyWithKey_withValue_1 =
+      _registerName1("replaceValueAtIndex:inPropertyWithKey:withValue:");
+  void _objc_msgSend_575(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_575(
+      obj,
+      sel,
+      index,
+      key,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_575Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_575 = __objc_msgSend_575Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertValue_inPropertyWithKey_1 =
+      _registerName1("insertValue:inPropertyWithKey:");
+  late final _sel_coerceValue_forKey_1 = _registerName1("coerceValue:forKey:");
+  late final _sel_objectSpecifier1 = _registerName1("objectSpecifier");
+  late final _sel_indicesOfObjectsByEvaluatingObjectSpecifier_1 =
+      _registerName1("indicesOfObjectsByEvaluatingObjectSpecifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_576(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> specifier,
+  ) {
+    return __objc_msgSend_576(
+      obj,
+      sel,
+      specifier,
+    );
+  }
+
+  late final __objc_msgSend_576Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_576 = __objc_msgSend_576Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualTo_1 = _registerName1("isEqualTo:");
+  late final _sel_isLessThanOrEqualTo_1 =
+      _registerName1("isLessThanOrEqualTo:");
+  late final _sel_isLessThan_1 = _registerName1("isLessThan:");
+  late final _sel_isGreaterThanOrEqualTo_1 =
+      _registerName1("isGreaterThanOrEqualTo:");
+  late final _sel_isGreaterThan_1 = _registerName1("isGreaterThan:");
+  late final _sel_isNotEqualTo_1 = _registerName1("isNotEqualTo:");
+  late final _sel_doesContain_1 = _registerName1("doesContain:");
+  late final _sel_isLike_1 = _registerName1("isLike:");
+  late final _sel_isCaseInsensitiveLike_1 =
+      _registerName1("isCaseInsensitiveLike:");
+  late final _sel_scriptingIsEqualTo_1 = _registerName1("scriptingIsEqualTo:");
+  late final _sel_scriptingIsLessThanOrEqualTo_1 =
+      _registerName1("scriptingIsLessThanOrEqualTo:");
+  late final _sel_scriptingIsLessThan_1 =
+      _registerName1("scriptingIsLessThan:");
+  late final _sel_scriptingIsGreaterThanOrEqualTo_1 =
+      _registerName1("scriptingIsGreaterThanOrEqualTo:");
+  late final _sel_scriptingIsGreaterThan_1 =
+      _registerName1("scriptingIsGreaterThan:");
+  late final _sel_scriptingBeginsWith_1 =
+      _registerName1("scriptingBeginsWith:");
+  late final _sel_scriptingEndsWith_1 = _registerName1("scriptingEndsWith:");
+  late final _sel_scriptingContains_1 = _registerName1("scriptingContains:");
+  late final _class_NSItemProvider1 = _getClass1("NSItemProvider");
+  late final _class_NSProgress1 = _getClass1("NSProgress");
+  late final _sel_currentProgress1 = _registerName1("currentProgress");
+  ffi.Pointer<ObjCObject> _objc_msgSend_577(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_577(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_577Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_577 = __objc_msgSend_577Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_progressWithTotalUnitCount_1 =
+      _registerName1("progressWithTotalUnitCount:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_578(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+  ) {
+    return __objc_msgSend_578(
+      obj,
+      sel,
+      unitCount,
+    );
+  }
+
+  late final __objc_msgSend_578Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_578 = __objc_msgSend_578Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_discreteProgressWithTotalUnitCount_1 =
+      _registerName1("discreteProgressWithTotalUnitCount:");
+  late final _sel_progressWithTotalUnitCount_parent_pendingUnitCount_1 =
+      _registerName1("progressWithTotalUnitCount:parent:pendingUnitCount:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_579(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+    ffi.Pointer<ObjCObject> parent,
+    int portionOfParentTotalUnitCount,
+  ) {
+    return __objc_msgSend_579(
+      obj,
+      sel,
+      unitCount,
+      parent,
+      portionOfParentTotalUnitCount,
+    );
+  }
+
+  late final __objc_msgSend_579Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int64,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_579 = __objc_msgSend_579Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_initWithParent_userInfo_1 =
+      _registerName1("initWithParent:userInfo:");
+  instancetype _objc_msgSend_580(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> parentProgressOrNil,
+  ) {
+    return __objc_msgSend_580(
+      obj,
+      sel,
+      parentProgressOrNil,
+    );
+  }
+
+  late final __objc_msgSend_580Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_580 = __objc_msgSend_580Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_becomeCurrentWithPendingUnitCount_1 =
+      _registerName1("becomeCurrentWithPendingUnitCount:");
+  void _objc_msgSend_581(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+  ) {
+    return __objc_msgSend_581(
+      obj,
+      sel,
+      unitCount,
+    );
+  }
+
+  late final __objc_msgSend_581Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_581 = __objc_msgSend_581Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_performAsCurrentWithPendingUnitCount_usingBlock_1 =
+      _registerName1("performAsCurrentWithPendingUnitCount:usingBlock:");
+  void _objc_msgSend_582(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+    ffi.Pointer<_ObjCBlock> work,
+  ) {
+    return __objc_msgSend_582(
+      obj,
+      sel,
+      unitCount,
+      work,
+    );
+  }
+
+  late final __objc_msgSend_582Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_582 = __objc_msgSend_582Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_resignCurrent1 = _registerName1("resignCurrent");
+  late final _sel_addChild_withPendingUnitCount_1 =
+      _registerName1("addChild:withPendingUnitCount:");
+  void _objc_msgSend_583(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+    int inUnitCount,
+  ) {
+    return __objc_msgSend_583(
+      obj,
+      sel,
+      child,
+      inUnitCount,
+    );
+  }
+
+  late final __objc_msgSend_583Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_583 = __objc_msgSend_583Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_totalUnitCount1 = _registerName1("totalUnitCount");
+  int _objc_msgSend_584(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_584(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_584Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int64 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_584 = __objc_msgSend_584Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTotalUnitCount_1 = _registerName1("setTotalUnitCount:");
+  void _objc_msgSend_585(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_585(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_585Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_585 = __objc_msgSend_585Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_completedUnitCount1 = _registerName1("completedUnitCount");
+  late final _sel_setCompletedUnitCount_1 =
+      _registerName1("setCompletedUnitCount:");
+  late final _sel_localizedDescription1 =
+      _registerName1("localizedDescription");
+  late final _sel_setLocalizedDescription_1 =
+      _registerName1("setLocalizedDescription:");
+  late final _sel_localizedAdditionalDescription1 =
+      _registerName1("localizedAdditionalDescription");
+  late final _sel_setLocalizedAdditionalDescription_1 =
+      _registerName1("setLocalizedAdditionalDescription:");
+  late final _sel_isCancellable1 = _registerName1("isCancellable");
+  late final _sel_setCancellable_1 = _registerName1("setCancellable:");
+  late final _sel_isPausable1 = _registerName1("isPausable");
+  late final _sel_setPausable_1 = _registerName1("setPausable:");
+  late final _sel_isPaused1 = _registerName1("isPaused");
+  late final _sel_cancellationHandler1 = _registerName1("cancellationHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_586(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_586(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_586Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_586 = __objc_msgSend_586Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setCancellationHandler_1 =
+      _registerName1("setCancellationHandler:");
+  void _objc_msgSend_587(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_587(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_587Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_587 = __objc_msgSend_587Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_pausingHandler1 = _registerName1("pausingHandler");
+  late final _sel_setPausingHandler_1 = _registerName1("setPausingHandler:");
+  late final _sel_resumingHandler1 = _registerName1("resumingHandler");
+  late final _sel_setResumingHandler_1 = _registerName1("setResumingHandler:");
+  late final _sel_setUserInfoObject_forKey_1 =
+      _registerName1("setUserInfoObject:forKey:");
+  late final _sel_isIndeterminate1 = _registerName1("isIndeterminate");
+  late final _sel_fractionCompleted1 = _registerName1("fractionCompleted");
+  late final _sel_pause1 = _registerName1("pause");
+  late final _sel_resume1 = _registerName1("resume");
+  late final _sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler_1 =
+      _registerName1(
+          "registerDataRepresentationForTypeIdentifier:visibility:loadHandler:");
+  void _objc_msgSend_588(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_588(
+      obj,
+      sel,
+      typeIdentifier,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_588Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_588 = __objc_msgSend_588Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_1 =
+      _registerName1(
+          "registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:");
+  void _objc_msgSend_589(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int fileOptions,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_589(
+      obj,
+      sel,
+      typeIdentifier,
+      fileOptions,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_589Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_589 = __objc_msgSend_589Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_registeredTypeIdentifiers1 =
+      _registerName1("registeredTypeIdentifiers");
+  late final _sel_registeredTypeIdentifiersWithFileOptions_1 =
+      _registerName1("registeredTypeIdentifiersWithFileOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_590(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fileOptions,
+  ) {
+    return __objc_msgSend_590(
+      obj,
+      sel,
+      fileOptions,
+    );
+  }
+
+  late final __objc_msgSend_590Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_590 = __objc_msgSend_590Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_hasItemConformingToTypeIdentifier_1 =
+      _registerName1("hasItemConformingToTypeIdentifier:");
+  late final _sel_hasRepresentationConformingToTypeIdentifier_fileOptions_1 =
+      _registerName1(
+          "hasRepresentationConformingToTypeIdentifier:fileOptions:");
+  bool _objc_msgSend_591(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int fileOptions,
+  ) {
+    return __objc_msgSend_591(
+      obj,
+      sel,
+      typeIdentifier,
+      fileOptions,
+    );
+  }
+
+  late final __objc_msgSend_591Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_591 = __objc_msgSend_591Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_loadDataRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadDataRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_592(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_592(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_592Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_592 = __objc_msgSend_592Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_loadFileRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadFileRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_593(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_593(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_593Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_593 = __objc_msgSend_593Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_594(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_594(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_594Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_594 = __objc_msgSend_594Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_suggestedName1 = _registerName1("suggestedName");
+  late final _sel_setSuggestedName_1 = _registerName1("setSuggestedName:");
+  late final _sel_registerObject_visibility_1 =
+      _registerName1("registerObject:visibility:");
+  void _objc_msgSend_595(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    int visibility,
+  ) {
+    return __objc_msgSend_595(
+      obj,
+      sel,
+      object,
+      visibility,
+    );
+  }
+
+  late final __objc_msgSend_595Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_595 = __objc_msgSend_595Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_registerObjectOfClass_visibility_loadHandler_1 =
+      _registerName1("registerObjectOfClass:visibility:loadHandler:");
+  void _objc_msgSend_596(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_596(
+      obj,
+      sel,
+      aClass,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_596Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_596 = __objc_msgSend_596Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_canLoadObjectOfClass_1 =
+      _registerName1("canLoadObjectOfClass:");
+  late final _sel_loadObjectOfClass_completionHandler_1 =
+      _registerName1("loadObjectOfClass:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_597(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_597(
+      obj,
+      sel,
+      aClass,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_597Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_597 = __objc_msgSend_597Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithItem_typeIdentifier_1 =
+      _registerName1("initWithItem:typeIdentifier:");
+  late final _sel_registerItemForTypeIdentifier_loadHandler_1 =
+      _registerName1("registerItemForTypeIdentifier:loadHandler:");
+  void _objc_msgSend_598(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    NSItemProviderLoadHandler loadHandler,
+  ) {
+    return __objc_msgSend_598(
+      obj,
+      sel,
+      typeIdentifier,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_598Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderLoadHandler)>>('objc_msgSend');
+  late final __objc_msgSend_598 = __objc_msgSend_598Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSItemProviderLoadHandler)>();
+
+  late final _sel_loadItemForTypeIdentifier_options_completionHandler_1 =
+      _registerName1("loadItemForTypeIdentifier:options:completionHandler:");
+  void _objc_msgSend_599(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<ObjCObject> options,
+    NSItemProviderCompletionHandler completionHandler,
+  ) {
+    return __objc_msgSend_599(
+      obj,
+      sel,
+      typeIdentifier,
+      options,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_599Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderCompletionHandler)>>('objc_msgSend');
+  late final __objc_msgSend_599 = __objc_msgSend_599Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          NSItemProviderCompletionHandler)>();
+
+  late final _sel_previewImageHandler1 = _registerName1("previewImageHandler");
+  NSItemProviderLoadHandler _objc_msgSend_600(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_600(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_600Ptr = _lookup<
+      ffi.NativeFunction<
+          NSItemProviderLoadHandler Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_600 = __objc_msgSend_600Ptr.asFunction<
+      NSItemProviderLoadHandler Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPreviewImageHandler_1 =
+      _registerName1("setPreviewImageHandler:");
+  void _objc_msgSend_601(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSItemProviderLoadHandler value,
+  ) {
+    return __objc_msgSend_601(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_601Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSItemProviderLoadHandler)>>('objc_msgSend');
+  late final __objc_msgSend_601 = __objc_msgSend_601Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSItemProviderLoadHandler)>();
+
+  late final _sel_loadPreviewImageWithOptions_completionHandler_1 =
+      _registerName1("loadPreviewImageWithOptions:completionHandler:");
+  void _objc_msgSend_602(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> options,
+    NSItemProviderCompletionHandler completionHandler,
+  ) {
+    return __objc_msgSend_602(
+      obj,
+      sel,
+      options,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_602Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderCompletionHandler)>>('objc_msgSend');
+  late final __objc_msgSend_602 = __objc_msgSend_602Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSItemProviderCompletionHandler)>();
+
+  late final _class_NSMutableString1 = _getClass1("NSMutableString");
+  late final _sel_replaceCharactersInRange_withString_1 =
+      _registerName1("replaceCharactersInRange:withString:");
+  void _objc_msgSend_603(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> aString,
+  ) {
+    return __objc_msgSend_603(
+      obj,
+      sel,
+      range,
+      aString,
+    );
+  }
+
+  late final __objc_msgSend_603Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_603 = __objc_msgSend_603Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertString_atIndex_1 =
+      _registerName1("insertString:atIndex:");
+  void _objc_msgSend_604(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aString,
+    int loc,
+  ) {
+    return __objc_msgSend_604(
+      obj,
+      sel,
+      aString,
+      loc,
+    );
+  }
+
+  late final __objc_msgSend_604Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_604 = __objc_msgSend_604Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_deleteCharactersInRange_1 =
+      _registerName1("deleteCharactersInRange:");
+  late final _sel_appendString_1 = _registerName1("appendString:");
+  late final _sel_appendFormat_1 = _registerName1("appendFormat:");
+  late final _sel_setString_1 = _registerName1("setString:");
+  late final _sel_replaceOccurrencesOfString_withString_options_range_1 =
+      _registerName1("replaceOccurrencesOfString:withString:options:range:");
+  int _objc_msgSend_605(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+    int options,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_605(
+      obj,
+      sel,
+      target,
+      replacement,
+      options,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_605Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_605 = __objc_msgSend_605Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_applyTransform_reverse_range_updatedRange_1 =
+      _registerName1("applyTransform:reverse:range:updatedRange:");
+  bool _objc_msgSend_606(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSStringTransform transform,
+    bool reverse,
+    NSRange range,
+    NSRangePointer resultingRange,
+  ) {
+    return __objc_msgSend_606(
+      obj,
+      sel,
+      transform,
+      reverse,
+      range,
+      resultingRange,
+    );
+  }
+
+  late final __objc_msgSend_606Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringTransform,
+              ffi.Bool,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_606 = __objc_msgSend_606Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSStringTransform, bool, NSRange, NSRangePointer)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_607(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int capacity,
+  ) {
+    return __objc_msgSend_607(
+      obj,
+      sel,
+      capacity,
+    );
+  }
+
+  late final __objc_msgSend_607Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_607 = __objc_msgSend_607Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_stringWithCapacity_1 = _registerName1("stringWithCapacity:");
+  late final _class_NSNotification1 = _getClass1("NSNotification");
+  late final _sel_object1 = _registerName1("object");
+  late final _sel_initWithName_object_userInfo_1 =
+      _registerName1("initWithName:object:userInfo:");
+  instancetype _objc_msgSend_608(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSNotificationName name,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> userInfo,
+  ) {
+    return __objc_msgSend_608(
+      obj,
+      sel,
+      name,
+      object,
+      userInfo,
+    );
+  }
+
+  late final __objc_msgSend_608Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSNotificationName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_608 = __objc_msgSend_608Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSNotificationName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_notificationWithName_object_1 =
+      _registerName1("notificationWithName:object:");
+  late final _sel_notificationWithName_object_userInfo_1 =
+      _registerName1("notificationWithName:object:userInfo:");
+  late final _class_NSBundle1 = _getClass1("NSBundle");
+  late final _sel_mainBundle1 = _registerName1("mainBundle");
+  ffi.Pointer<ObjCObject> _objc_msgSend_609(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_609(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_609Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_609 = __objc_msgSend_609Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_bundleWithPath_1 = _registerName1("bundleWithPath:");
+  late final _sel_initWithPath_1 = _registerName1("initWithPath:");
+  late final _sel_bundleWithURL_1 = _registerName1("bundleWithURL:");
+  late final _sel_initWithURL_1 = _registerName1("initWithURL:");
+  late final _sel_bundleForClass_1 = _registerName1("bundleForClass:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_610(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_610(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_610Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_610 = __objc_msgSend_610Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_bundleWithIdentifier_1 =
+      _registerName1("bundleWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_611(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_611(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_611Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_611 = __objc_msgSend_611Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allBundles1 = _registerName1("allBundles");
+  late final _sel_allFrameworks1 = _registerName1("allFrameworks");
+  late final _sel_isLoaded1 = _registerName1("isLoaded");
+  late final _sel_unload1 = _registerName1("unload");
+  late final _sel_preflightAndReturnError_1 =
+      _registerName1("preflightAndReturnError:");
+  late final _sel_loadAndReturnError_1 = _registerName1("loadAndReturnError:");
+  late final _sel_bundleURL1 = _registerName1("bundleURL");
+  late final _sel_resourceURL1 = _registerName1("resourceURL");
+  late final _sel_executableURL1 = _registerName1("executableURL");
+  late final _sel_URLForAuxiliaryExecutable_1 =
+      _registerName1("URLForAuxiliaryExecutable:");
+  late final _sel_privateFrameworksURL1 =
+      _registerName1("privateFrameworksURL");
+  late final _sel_sharedFrameworksURL1 = _registerName1("sharedFrameworksURL");
+  late final _sel_sharedSupportURL1 = _registerName1("sharedSupportURL");
+  late final _sel_builtInPlugInsURL1 = _registerName1("builtInPlugInsURL");
+  late final _sel_appStoreReceiptURL1 = _registerName1("appStoreReceiptURL");
+  late final _sel_bundlePath1 = _registerName1("bundlePath");
+  late final _sel_resourcePath1 = _registerName1("resourcePath");
+  late final _sel_executablePath1 = _registerName1("executablePath");
+  late final _sel_pathForAuxiliaryExecutable_1 =
+      _registerName1("pathForAuxiliaryExecutable:");
+  late final _sel_privateFrameworksPath1 =
+      _registerName1("privateFrameworksPath");
+  late final _sel_sharedFrameworksPath1 =
+      _registerName1("sharedFrameworksPath");
+  late final _sel_sharedSupportPath1 = _registerName1("sharedSupportPath");
+  late final _sel_builtInPlugInsPath1 = _registerName1("builtInPlugInsPath");
+  late final _sel_URLForResource_withExtension_subdirectory_inBundleWithURL_1 =
+      _registerName1(
+          "URLForResource:withExtension:subdirectory:inBundleWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_612(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> bundleURL,
+  ) {
+    return __objc_msgSend_612(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      bundleURL,
+    );
+  }
+
+  late final __objc_msgSend_612Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_612 = __objc_msgSend_612Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_1 =
+      _registerName1(
+          "URLsForResourcesWithExtension:subdirectory:inBundleWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_613(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> bundleURL,
+  ) {
+    return __objc_msgSend_613(
+      obj,
+      sel,
+      ext,
+      subpath,
+      bundleURL,
+    );
+  }
+
+  late final __objc_msgSend_613Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_613 = __objc_msgSend_613Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_1 =
+      _registerName1("URLForResource:withExtension:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_614(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+  ) {
+    return __objc_msgSend_614(
+      obj,
+      sel,
+      name,
+      ext,
+    );
+  }
+
+  late final __objc_msgSend_614Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_614 = __objc_msgSend_614Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_subdirectory_1 =
+      _registerName1("URLForResource:withExtension:subdirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_615(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+  ) {
+    return __objc_msgSend_615(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+    );
+  }
+
+  late final __objc_msgSend_615Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_615 = __objc_msgSend_615Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_subdirectory_localization_1 =
+      _registerName1("URLForResource:withExtension:subdirectory:localization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_616(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_616(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_616Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_616 = __objc_msgSend_616Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_1 =
+      _registerName1("URLsForResourcesWithExtension:subdirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_617(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+  ) {
+    return __objc_msgSend_617(
+      obj,
+      sel,
+      ext,
+      subpath,
+    );
+  }
+
+  late final __objc_msgSend_617Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_617 = __objc_msgSend_617Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_localization_1 =
+      _registerName1(
+          "URLsForResourcesWithExtension:subdirectory:localization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_618(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_618(
+      obj,
+      sel,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_618Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_618 = __objc_msgSend_618Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathForResource_ofType_inDirectory_1 =
+      _registerName1("pathForResource:ofType:inDirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_619(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> bundlePath,
+  ) {
+    return __objc_msgSend_619(
+      obj,
+      sel,
+      name,
+      ext,
+      bundlePath,
+    );
+  }
+
+  late final __objc_msgSend_619Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_619 = __objc_msgSend_619Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathsForResourcesOfType_inDirectory_1 =
+      _registerName1("pathsForResourcesOfType:inDirectory:");
+  late final _sel_pathForResource_ofType_1 =
+      _registerName1("pathForResource:ofType:");
+  late final _sel_pathForResource_ofType_inDirectory_forLocalization_1 =
+      _registerName1("pathForResource:ofType:inDirectory:forLocalization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_620(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_620(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_620Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_620 = __objc_msgSend_620Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathsForResourcesOfType_inDirectory_forLocalization_1 =
+      _registerName1("pathsForResourcesOfType:inDirectory:forLocalization:");
+  late final _sel_localizedStringForKey_value_table_1 =
+      _registerName1("localizedStringForKey:value:table:");
+  late final _class_NSAttributedString1 = _getClass1("NSAttributedString");
+  late final _sel_attributesAtIndex_effectiveRange_1 =
+      _registerName1("attributesAtIndex:effectiveRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_621(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int location,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_621(
+      obj,
+      sel,
+      location,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_621Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_621 = __objc_msgSend_621Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, NSRangePointer)>();
+
+  late final _sel_attribute_atIndex_effectiveRange_1 =
+      _registerName1("attribute:atIndex:effectiveRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_622(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    int location,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_622(
+      obj,
+      sel,
+      attrName,
+      location,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_622Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_622 = __objc_msgSend_622Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSAttributedStringKey, int, NSRangePointer)>();
+
+  late final _sel_attributedSubstringFromRange_1 =
+      _registerName1("attributedSubstringFromRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_623(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_623(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_623Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_623 = __objc_msgSend_623Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_attributesAtIndex_longestEffectiveRange_inRange_1 =
+      _registerName1("attributesAtIndex:longestEffectiveRange:inRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_624(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int location,
+    NSRangePointer range,
+    NSRange rangeLimit,
+  ) {
+    return __objc_msgSend_624(
+      obj,
+      sel,
+      location,
+      range,
+      rangeLimit,
+    );
+  }
+
+  late final __objc_msgSend_624Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSRangePointer,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_624 = __objc_msgSend_624Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, NSRangePointer, NSRange)>();
+
+  late final _sel_attribute_atIndex_longestEffectiveRange_inRange_1 =
+      _registerName1("attribute:atIndex:longestEffectiveRange:inRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_625(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    int location,
+    NSRangePointer range,
+    NSRange rangeLimit,
+  ) {
+    return __objc_msgSend_625(
+      obj,
+      sel,
+      attrName,
+      location,
+      range,
+      rangeLimit,
+    );
+  }
+
+  late final __objc_msgSend_625Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSUInteger,
+              NSRangePointer,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_625 = __objc_msgSend_625Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey,
+          int,
+          NSRangePointer,
+          NSRange)>();
+
+  late final _sel_isEqualToAttributedString_1 =
+      _registerName1("isEqualToAttributedString:");
+  bool _objc_msgSend_626(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_626(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_626Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_626 = __objc_msgSend_626Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithString_attributes_1 =
+      _registerName1("initWithString:attributes:");
+  late final _sel_initWithAttributedString_1 =
+      _registerName1("initWithAttributedString:");
+  instancetype _objc_msgSend_627(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrStr,
+  ) {
+    return __objc_msgSend_627(
+      obj,
+      sel,
+      attrStr,
+    );
+  }
+
+  late final __objc_msgSend_627Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_627 = __objc_msgSend_627Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_enumerateAttributesInRange_options_usingBlock_1 =
+      _registerName1("enumerateAttributesInRange:options:usingBlock:");
+  void _objc_msgSend_628(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange enumerationRange,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_628(
+      obj,
+      sel,
+      enumerationRange,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_628Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_628 = __objc_msgSend_628Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateAttribute_inRange_options_usingBlock_1 =
+      _registerName1("enumerateAttribute:inRange:options:usingBlock:");
+  void _objc_msgSend_629(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    NSRange enumerationRange,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_629(
+      obj,
+      sel,
+      attrName,
+      enumerationRange,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_629Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSRange,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_629 = __objc_msgSend_629Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, NSRange, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSAttributedStringMarkdownParsingOptions1 =
+      _getClass1("NSAttributedStringMarkdownParsingOptions");
+  late final _sel_allowsExtendedAttributes1 =
+      _registerName1("allowsExtendedAttributes");
+  late final _sel_setAllowsExtendedAttributes_1 =
+      _registerName1("setAllowsExtendedAttributes:");
+  late final _sel_interpretedSyntax1 = _registerName1("interpretedSyntax");
+  int _objc_msgSend_630(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_630(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_630Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_630 = __objc_msgSend_630Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setInterpretedSyntax_1 =
+      _registerName1("setInterpretedSyntax:");
+  void _objc_msgSend_631(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_631(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_631Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_631 = __objc_msgSend_631Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_failurePolicy1 = _registerName1("failurePolicy");
+  int _objc_msgSend_632(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_632(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_632Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_632 = __objc_msgSend_632Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setFailurePolicy_1 = _registerName1("setFailurePolicy:");
+  void _objc_msgSend_633(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_633(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_633Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_633 = __objc_msgSend_633Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setLanguageCode_1 = _registerName1("setLanguageCode:");
+  late final _sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_1 =
+      _registerName1(
+          "initWithContentsOfMarkdownFileAtURL:options:baseURL:error:");
+  instancetype _objc_msgSend_634(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdownFile,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_634(
+      obj,
+      sel,
+      markdownFile,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_634Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_634 = __objc_msgSend_634Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithMarkdown_options_baseURL_error_1 =
+      _registerName1("initWithMarkdown:options:baseURL:error:");
+  instancetype _objc_msgSend_635(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdown,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_635(
+      obj,
+      sel,
+      markdown,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_635Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_635 = __objc_msgSend_635Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithMarkdownString_options_baseURL_error_1 =
+      _registerName1("initWithMarkdownString:options:baseURL:error:");
+  instancetype _objc_msgSend_636(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdownString,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_636(
+      obj,
+      sel,
+      markdownString,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_636Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_636 = __objc_msgSend_636Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithFormat_options_locale_1 =
+      _registerName1("initWithFormat:options:locale:");
+  instancetype _objc_msgSend_637(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_637(
+      obj,
+      sel,
+      format,
+      options,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_637Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_637 = __objc_msgSend_637Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithFormat_options_locale_arguments_1 =
+      _registerName1("initWithFormat:options:locale:arguments:");
+  instancetype _objc_msgSend_638(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+    ffi.Pointer<__va_list_tag> arguments,
+  ) {
+    return __objc_msgSend_638(
+      obj,
+      sel,
+      format,
+      options,
+      locale,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_638Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_638 = __objc_msgSend_638Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_localizedAttributedStringWithFormat_1 =
+      _registerName1("localizedAttributedStringWithFormat:");
+  late final _sel_localizedAttributedStringWithFormat_options_1 =
+      _registerName1("localizedAttributedStringWithFormat:options:");
+  instancetype _objc_msgSend_639(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+  ) {
+    return __objc_msgSend_639(
+      obj,
+      sel,
+      format,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_639Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_639 = __objc_msgSend_639Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_attributedStringByInflectingString1 =
+      _registerName1("attributedStringByInflectingString");
+  ffi.Pointer<ObjCObject> _objc_msgSend_640(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_640(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_640Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_640 = __objc_msgSend_640Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_localizedAttributedStringForKey_value_table_1 =
+      _registerName1("localizedAttributedStringForKey:value:table:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_641(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> tableName,
+  ) {
+    return __objc_msgSend_641(
+      obj,
+      sel,
+      key,
+      value,
+      tableName,
+    );
+  }
+
+  late final __objc_msgSend_641Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_641 = __objc_msgSend_641Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_bundleIdentifier1 = _registerName1("bundleIdentifier");
+  late final _sel_infoDictionary1 = _registerName1("infoDictionary");
+  late final _sel_localizedInfoDictionary1 =
+      _registerName1("localizedInfoDictionary");
+  late final _sel_objectForInfoDictionaryKey_1 =
+      _registerName1("objectForInfoDictionaryKey:");
+  late final _sel_classNamed_1 = _registerName1("classNamed:");
+  late final _sel_principalClass1 = _registerName1("principalClass");
+  late final _sel_preferredLocalizations1 =
+      _registerName1("preferredLocalizations");
+  late final _sel_localizations1 = _registerName1("localizations");
+  late final _sel_developmentLocalization1 =
+      _registerName1("developmentLocalization");
+  late final _sel_preferredLocalizationsFromArray_1 =
+      _registerName1("preferredLocalizationsFromArray:");
+  late final _sel_preferredLocalizationsFromArray_forPreferences_1 =
+      _registerName1("preferredLocalizationsFromArray:forPreferences:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_642(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localizationsArray,
+    ffi.Pointer<ObjCObject> preferencesArray,
+  ) {
+    return __objc_msgSend_642(
+      obj,
+      sel,
+      localizationsArray,
+      preferencesArray,
+    );
+  }
+
+  late final __objc_msgSend_642Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_642 = __objc_msgSend_642Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_executableArchitectures1 =
+      _registerName1("executableArchitectures");
+  late final _sel_setPreservationPriority_forTags_1 =
+      _registerName1("setPreservationPriority:forTags:");
+  void _objc_msgSend_643(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double priority,
+    ffi.Pointer<ObjCObject> tags,
+  ) {
+    return __objc_msgSend_643(
+      obj,
+      sel,
+      priority,
+      tags,
+    );
+  }
+
+  late final __objc_msgSend_643Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_643 = __objc_msgSend_643Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_preservationPriorityForTag_1 =
+      _registerName1("preservationPriorityForTag:");
+  late final _class_NSMutableAttributedString1 =
+      _getClass1("NSMutableAttributedString");
+  late final _sel_setAttributes_range_1 =
+      _registerName1("setAttributes:range:");
+  void _objc_msgSend_644(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrs,
+    NSRange range,
+  ) {
+    return __objc_msgSend_644(
+      obj,
+      sel,
+      attrs,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_644Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_644 = __objc_msgSend_644Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_mutableString1 = _registerName1("mutableString");
+  ffi.Pointer<ObjCObject> _objc_msgSend_645(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_645(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_645Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_645 = __objc_msgSend_645Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_addAttribute_value_range_1 =
+      _registerName1("addAttribute:value:range:");
+  void _objc_msgSend_646(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey name,
+    ffi.Pointer<ObjCObject> value,
+    NSRange range,
+  ) {
+    return __objc_msgSend_646(
+      obj,
+      sel,
+      name,
+      value,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_646Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              ffi.Pointer<ObjCObject>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_646 = __objc_msgSend_646Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_addAttributes_range_1 =
+      _registerName1("addAttributes:range:");
+  late final _sel_removeAttribute_range_1 =
+      _registerName1("removeAttribute:range:");
+  void _objc_msgSend_647(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey name,
+    NSRange range,
+  ) {
+    return __objc_msgSend_647(
+      obj,
+      sel,
+      name,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_647Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_647 = __objc_msgSend_647Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, NSRange)>();
+
+  late final _sel_replaceCharactersInRange_withAttributedString_1 =
+      _registerName1("replaceCharactersInRange:withAttributedString:");
+  void _objc_msgSend_648(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> attrString,
+  ) {
+    return __objc_msgSend_648(
+      obj,
+      sel,
+      range,
+      attrString,
+    );
+  }
+
+  late final __objc_msgSend_648Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_648 = __objc_msgSend_648Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertAttributedString_atIndex_1 =
+      _registerName1("insertAttributedString:atIndex:");
+  void _objc_msgSend_649(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrString,
+    int loc,
+  ) {
+    return __objc_msgSend_649(
+      obj,
+      sel,
+      attrString,
+      loc,
+    );
+  }
+
+  late final __objc_msgSend_649Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_649 = __objc_msgSend_649Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_appendAttributedString_1 =
+      _registerName1("appendAttributedString:");
+  void _objc_msgSend_650(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrString,
+  ) {
+    return __objc_msgSend_650(
+      obj,
+      sel,
+      attrString,
+    );
+  }
+
+  late final __objc_msgSend_650Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_650 = __objc_msgSend_650Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setAttributedString_1 =
+      _registerName1("setAttributedString:");
+  late final _sel_beginEditing1 = _registerName1("beginEditing");
+  late final _sel_endEditing1 = _registerName1("endEditing");
+  late final _sel_appendLocalizedFormat_1 =
+      _registerName1("appendLocalizedFormat:");
+  late final _class_NSDateFormatter1 = _getClass1("NSDateFormatter");
+  late final _class_NSFormatter1 = _getClass1("NSFormatter");
+  late final _sel_stringForObjectValue_1 =
+      _registerName1("stringForObjectValue:");
+  late final _sel_attributedStringForObjectValue_withDefaultAttributes_1 =
+      _registerName1("attributedStringForObjectValue:withDefaultAttributes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_651(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> obj1,
+    ffi.Pointer<ObjCObject> attrs,
+  ) {
+    return __objc_msgSend_651(
+      obj,
+      sel,
+      obj1,
+      attrs,
+    );
+  }
+
+  late final __objc_msgSend_651Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_651 = __objc_msgSend_651Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_editingStringForObjectValue_1 =
+      _registerName1("editingStringForObjectValue:");
+  late final _sel_getObjectValue_forString_errorDescription_1 =
+      _registerName1("getObjectValue:forString:errorDescription:");
+  bool _objc_msgSend_652(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> obj1,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_652(
+      obj,
+      sel,
+      obj1,
+      string,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_652Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_652 = __objc_msgSend_652Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isPartialStringValid_newEditingString_errorDescription_1 =
+      _registerName1("isPartialStringValid:newEditingString:errorDescription:");
+  bool _objc_msgSend_653(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> partialString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> newString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_653(
+      obj,
+      sel,
+      partialString,
+      newString,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_653Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_653 = __objc_msgSend_653Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_1 =
+      _registerName1(
+          "isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:");
+  bool _objc_msgSend_654(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> partialStringPtr,
+    NSRangePointer proposedSelRangePtr,
+    ffi.Pointer<ObjCObject> origString,
+    NSRange origSelRange,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_654(
+      obj,
+      sel,
+      partialStringPtr,
+      proposedSelRangePtr,
+      origString,
+      origSelRange,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_654Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSRangePointer,
+              ffi.Pointer<ObjCObject>,
+              NSRange,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_654 = __objc_msgSend_654Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          NSRangePointer,
+          ffi.Pointer<ObjCObject>,
+          NSRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_formattingContext1 = _registerName1("formattingContext");
+  int _objc_msgSend_655(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_655(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_655Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_655 = __objc_msgSend_655Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setFormattingContext_1 =
+      _registerName1("setFormattingContext:");
+  void _objc_msgSend_656(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_656(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_656Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_656 = __objc_msgSend_656Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_getObjectValue_forString_range_error_1 =
+      _registerName1("getObjectValue:forString:range:error:");
+  bool _objc_msgSend_657(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> obj1,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<NSRange> rangep,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_657(
+      obj,
+      sel,
+      obj1,
+      string,
+      rangep,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_657Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSRange>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_657 = __objc_msgSend_657Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSRange>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringFromDate_1 = _registerName1("stringFromDate:");
+  late final _sel_dateFromString_1 = _registerName1("dateFromString:");
+  late final _sel_localizedStringFromDate_dateStyle_timeStyle_1 =
+      _registerName1("localizedStringFromDate:dateStyle:timeStyle:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_658(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int dstyle,
+    int tstyle,
+  ) {
+    return __objc_msgSend_658(
+      obj,
+      sel,
+      date,
+      dstyle,
+      tstyle,
+    );
+  }
+
+  late final __objc_msgSend_658Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_658 = __objc_msgSend_658Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_dateFormatFromTemplate_options_locale_1 =
+      _registerName1("dateFormatFromTemplate:options:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_659(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> tmplate,
+    int opts,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_659(
+      obj,
+      sel,
+      tmplate,
+      opts,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_659Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_659 = __objc_msgSend_659Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_defaultFormatterBehavior1 =
+      _registerName1("defaultFormatterBehavior");
+  int _objc_msgSend_660(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_660(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_660Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_660 = __objc_msgSend_660Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDefaultFormatterBehavior_1 =
+      _registerName1("setDefaultFormatterBehavior:");
+  void _objc_msgSend_661(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_661(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_661Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_661 = __objc_msgSend_661Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setLocalizedDateFormatFromTemplate_1 =
+      _registerName1("setLocalizedDateFormatFromTemplate:");
+  late final _sel_dateFormat1 = _registerName1("dateFormat");
+  late final _sel_setDateFormat_1 = _registerName1("setDateFormat:");
+  late final _sel_dateStyle1 = _registerName1("dateStyle");
+  int _objc_msgSend_662(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_662(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_662Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_662 = __objc_msgSend_662Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDateStyle_1 = _registerName1("setDateStyle:");
+  void _objc_msgSend_663(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_663(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_663Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_663 = __objc_msgSend_663Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_timeStyle1 = _registerName1("timeStyle");
+  late final _sel_setTimeStyle_1 = _registerName1("setTimeStyle:");
+  late final _sel_locale1 = _registerName1("locale");
+  late final _sel_setLocale_1 = _registerName1("setLocale:");
+  void _objc_msgSend_664(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_664(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_664Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_664 = __objc_msgSend_664Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_generatesCalendarDates1 =
+      _registerName1("generatesCalendarDates");
+  late final _sel_setGeneratesCalendarDates_1 =
+      _registerName1("setGeneratesCalendarDates:");
+  late final _sel_formatterBehavior1 = _registerName1("formatterBehavior");
+  late final _sel_setFormatterBehavior_1 =
+      _registerName1("setFormatterBehavior:");
+  late final _class_NSCalendar1 = _getClass1("NSCalendar");
+  late final _sel_currentCalendar1 = _registerName1("currentCalendar");
+  ffi.Pointer<ObjCObject> _objc_msgSend_665(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_665(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_665Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_665 = __objc_msgSend_665Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_autoupdatingCurrentCalendar1 =
+      _registerName1("autoupdatingCurrentCalendar");
+  late final _sel_calendarWithIdentifier_1 =
+      _registerName1("calendarWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_666(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSCalendarIdentifier calendarIdentifierConstant,
+  ) {
+    return __objc_msgSend_666(
+      obj,
+      sel,
+      calendarIdentifierConstant,
+    );
+  }
+
+  late final __objc_msgSend_666Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSCalendarIdentifier)>>('objc_msgSend');
+  late final __objc_msgSend_666 = __objc_msgSend_666Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSCalendarIdentifier)>();
+
+  late final _sel_initWithCalendarIdentifier_1 =
+      _registerName1("initWithCalendarIdentifier:");
+  late final _sel_firstWeekday1 = _registerName1("firstWeekday");
+  late final _sel_setFirstWeekday_1 = _registerName1("setFirstWeekday:");
+  late final _sel_minimumDaysInFirstWeek1 =
+      _registerName1("minimumDaysInFirstWeek");
+  late final _sel_setMinimumDaysInFirstWeek_1 =
+      _registerName1("setMinimumDaysInFirstWeek:");
+  late final _sel_eraSymbols1 = _registerName1("eraSymbols");
+  late final _sel_longEraSymbols1 = _registerName1("longEraSymbols");
+  late final _sel_monthSymbols1 = _registerName1("monthSymbols");
+  late final _sel_shortMonthSymbols1 = _registerName1("shortMonthSymbols");
+  late final _sel_veryShortMonthSymbols1 =
+      _registerName1("veryShortMonthSymbols");
+  late final _sel_standaloneMonthSymbols1 =
+      _registerName1("standaloneMonthSymbols");
+  late final _sel_shortStandaloneMonthSymbols1 =
+      _registerName1("shortStandaloneMonthSymbols");
+  late final _sel_veryShortStandaloneMonthSymbols1 =
+      _registerName1("veryShortStandaloneMonthSymbols");
+  late final _sel_weekdaySymbols1 = _registerName1("weekdaySymbols");
+  late final _sel_shortWeekdaySymbols1 = _registerName1("shortWeekdaySymbols");
+  late final _sel_veryShortWeekdaySymbols1 =
+      _registerName1("veryShortWeekdaySymbols");
+  late final _sel_standaloneWeekdaySymbols1 =
+      _registerName1("standaloneWeekdaySymbols");
+  late final _sel_shortStandaloneWeekdaySymbols1 =
+      _registerName1("shortStandaloneWeekdaySymbols");
+  late final _sel_veryShortStandaloneWeekdaySymbols1 =
+      _registerName1("veryShortStandaloneWeekdaySymbols");
+  late final _sel_quarterSymbols1 = _registerName1("quarterSymbols");
+  late final _sel_shortQuarterSymbols1 = _registerName1("shortQuarterSymbols");
+  late final _sel_standaloneQuarterSymbols1 =
+      _registerName1("standaloneQuarterSymbols");
+  late final _sel_shortStandaloneQuarterSymbols1 =
+      _registerName1("shortStandaloneQuarterSymbols");
+  late final _sel_AMSymbol1 = _registerName1("AMSymbol");
+  late final _sel_PMSymbol1 = _registerName1("PMSymbol");
+  late final _sel_minimumRangeOfUnit_1 = _registerName1("minimumRangeOfUnit:");
+  NSRange _objc_msgSend_667(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+  ) {
+    return __objc_msgSend_667(
+      obj,
+      sel,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_667Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_667 = __objc_msgSend_667Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_maximumRangeOfUnit_1 = _registerName1("maximumRangeOfUnit:");
+  late final _sel_rangeOfUnit_inUnit_forDate_1 =
+      _registerName1("rangeOfUnit:inUnit:forDate:");
+  NSRange _objc_msgSend_668(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int smaller,
+    int larger,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_668(
+      obj,
+      sel,
+      smaller,
+      larger,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_668Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_668 = __objc_msgSend_668Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_ordinalityOfUnit_inUnit_forDate_1 =
+      _registerName1("ordinalityOfUnit:inUnit:forDate:");
+  int _objc_msgSend_669(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int smaller,
+    int larger,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_669(
+      obj,
+      sel,
+      smaller,
+      larger,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_669Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_669 = __objc_msgSend_669Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfUnit_startDate_interval_forDate_1 =
+      _registerName1("rangeOfUnit:startDate:interval:forDate:");
+  bool _objc_msgSend_670(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_670(
+      obj,
+      sel,
+      unit,
+      datep,
+      tip,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_670Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_670 = __objc_msgSend_670Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSDateComponents1 = _getClass1("NSDateComponents");
+  late final _sel_calendar1 = _registerName1("calendar");
+  late final _sel_setCalendar_1 = _registerName1("setCalendar:");
+  void _objc_msgSend_671(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_671(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_671Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_671 = __objc_msgSend_671Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_era1 = _registerName1("era");
+  late final _sel_setEra_1 = _registerName1("setEra:");
+  late final _sel_year1 = _registerName1("year");
+  late final _sel_setYear_1 = _registerName1("setYear:");
+  late final _sel_month1 = _registerName1("month");
+  late final _sel_setMonth_1 = _registerName1("setMonth:");
+  late final _sel_day1 = _registerName1("day");
+  late final _sel_setDay_1 = _registerName1("setDay:");
+  late final _sel_hour1 = _registerName1("hour");
+  late final _sel_setHour_1 = _registerName1("setHour:");
+  late final _sel_minute1 = _registerName1("minute");
+  late final _sel_setMinute_1 = _registerName1("setMinute:");
+  late final _sel_second1 = _registerName1("second");
+  late final _sel_setSecond_1 = _registerName1("setSecond:");
+  late final _sel_nanosecond1 = _registerName1("nanosecond");
+  late final _sel_setNanosecond_1 = _registerName1("setNanosecond:");
+  late final _sel_weekday1 = _registerName1("weekday");
+  late final _sel_setWeekday_1 = _registerName1("setWeekday:");
+  late final _sel_weekdayOrdinal1 = _registerName1("weekdayOrdinal");
+  late final _sel_setWeekdayOrdinal_1 = _registerName1("setWeekdayOrdinal:");
+  late final _sel_quarter1 = _registerName1("quarter");
+  late final _sel_setQuarter_1 = _registerName1("setQuarter:");
+  late final _sel_weekOfMonth1 = _registerName1("weekOfMonth");
+  late final _sel_setWeekOfMonth_1 = _registerName1("setWeekOfMonth:");
+  late final _sel_weekOfYear1 = _registerName1("weekOfYear");
+  late final _sel_setWeekOfYear_1 = _registerName1("setWeekOfYear:");
+  late final _sel_yearForWeekOfYear1 = _registerName1("yearForWeekOfYear");
+  late final _sel_setYearForWeekOfYear_1 =
+      _registerName1("setYearForWeekOfYear:");
+  late final _sel_isLeapMonth1 = _registerName1("isLeapMonth");
+  late final _sel_setLeapMonth_1 = _registerName1("setLeapMonth:");
+  late final _sel_week1 = _registerName1("week");
+  late final _sel_setWeek_1 = _registerName1("setWeek:");
+  late final _sel_setValue_forComponent_1 =
+      _registerName1("setValue:forComponent:");
+  void _objc_msgSend_672(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    int unit,
+  ) {
+    return __objc_msgSend_672(
+      obj,
+      sel,
+      value,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_672Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_672 = __objc_msgSend_672Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_valueForComponent_1 = _registerName1("valueForComponent:");
+  int _objc_msgSend_673(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+  ) {
+    return __objc_msgSend_673(
+      obj,
+      sel,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_673Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_673 = __objc_msgSend_673Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isValidDate1 = _registerName1("isValidDate");
+  late final _sel_isValidDateInCalendar_1 =
+      _registerName1("isValidDateInCalendar:");
+  bool _objc_msgSend_674(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> calendar,
+  ) {
+    return __objc_msgSend_674(
+      obj,
+      sel,
+      calendar,
+    );
+  }
+
+  late final __objc_msgSend_674Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_674 = __objc_msgSend_674Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateFromComponents_1 = _registerName1("dateFromComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_675(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> comps,
+  ) {
+    return __objc_msgSend_675(
+      obj,
+      sel,
+      comps,
+    );
+  }
+
+  late final __objc_msgSend_675Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_675 = __objc_msgSend_675Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_components_fromDate_1 =
+      _registerName1("components:fromDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_676(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_676(
+      obj,
+      sel,
+      unitFlags,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_676Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_676 = __objc_msgSend_676Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateByAddingComponents_toDate_options_1 =
+      _registerName1("dateByAddingComponents:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_677(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> comps,
+    ffi.Pointer<ObjCObject> date,
+    int opts,
+  ) {
+    return __objc_msgSend_677(
+      obj,
+      sel,
+      comps,
+      date,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_677Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_677 = __objc_msgSend_677Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_components_fromDate_toDate_options_1 =
+      _registerName1("components:fromDate:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_678(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> startingDate,
+    ffi.Pointer<ObjCObject> resultDate,
+    int opts,
+  ) {
+    return __objc_msgSend_678(
+      obj,
+      sel,
+      unitFlags,
+      startingDate,
+      resultDate,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_678Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_678 = __objc_msgSend_678Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_getEra_year_month_day_fromDate_1 =
+      _registerName1("getEra:year:month:day:fromDate:");
+  void _objc_msgSend_679(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> eraValuePointer,
+    ffi.Pointer<NSInteger> yearValuePointer,
+    ffi.Pointer<NSInteger> monthValuePointer,
+    ffi.Pointer<NSInteger> dayValuePointer,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_679(
+      obj,
+      sel,
+      eraValuePointer,
+      yearValuePointer,
+      monthValuePointer,
+      dayValuePointer,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_679Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_679 = __objc_msgSend_679Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_1 =
+      _registerName1("getEra:yearForWeekOfYear:weekOfYear:weekday:fromDate:");
+  late final _sel_getHour_minute_second_nanosecond_fromDate_1 =
+      _registerName1("getHour:minute:second:nanosecond:fromDate:");
+  late final _sel_component_fromDate_1 = _registerName1("component:fromDate:");
+  int _objc_msgSend_680(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_680(
+      obj,
+      sel,
+      unit,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_680Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_680 = __objc_msgSend_680Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_1 =
+      _registerName1(
+          "dateWithEra:year:month:day:hour:minute:second:nanosecond:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_681(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eraValue,
+    int yearValue,
+    int monthValue,
+    int dayValue,
+    int hourValue,
+    int minuteValue,
+    int secondValue,
+    int nanosecondValue,
+  ) {
+    return __objc_msgSend_681(
+      obj,
+      sel,
+      eraValue,
+      yearValue,
+      monthValue,
+      dayValue,
+      hourValue,
+      minuteValue,
+      secondValue,
+      nanosecondValue,
+    );
+  }
+
+  late final __objc_msgSend_681Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_681 = __objc_msgSend_681Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, int, int, int, int, int)>();
+
+  late final _sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_1 =
+      _registerName1(
+          "dateWithEra:yearForWeekOfYear:weekOfYear:weekday:hour:minute:second:nanosecond:");
+  late final _sel_startOfDayForDate_1 = _registerName1("startOfDayForDate:");
+  late final _sel_componentsInTimeZone_fromDate_1 =
+      _registerName1("componentsInTimeZone:fromDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_682(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> timezone,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_682(
+      obj,
+      sel,
+      timezone,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_682Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_682 = __objc_msgSend_682Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_compareDate_toDate_toUnitGranularity_1 =
+      _registerName1("compareDate:toDate:toUnitGranularity:");
+  int _objc_msgSend_683(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+    int unit,
+  ) {
+    return __objc_msgSend_683(
+      obj,
+      sel,
+      date1,
+      date2,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_683Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_683 = __objc_msgSend_683Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_isDate_equalToDate_toUnitGranularity_1 =
+      _registerName1("isDate:equalToDate:toUnitGranularity:");
+  bool _objc_msgSend_684(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+    int unit,
+  ) {
+    return __objc_msgSend_684(
+      obj,
+      sel,
+      date1,
+      date2,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_684Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_684 = __objc_msgSend_684Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_isDate_inSameDayAsDate_1 =
+      _registerName1("isDate:inSameDayAsDate:");
+  bool _objc_msgSend_685(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+  ) {
+    return __objc_msgSend_685(
+      obj,
+      sel,
+      date1,
+      date2,
+    );
+  }
+
+  late final __objc_msgSend_685Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_685 = __objc_msgSend_685Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isDateInToday_1 = _registerName1("isDateInToday:");
+  late final _sel_isDateInYesterday_1 = _registerName1("isDateInYesterday:");
+  late final _sel_isDateInTomorrow_1 = _registerName1("isDateInTomorrow:");
+  late final _sel_isDateInWeekend_1 = _registerName1("isDateInWeekend:");
+  late final _sel_rangeOfWeekendStartDate_interval_containingDate_1 =
+      _registerName1("rangeOfWeekendStartDate:interval:containingDate:");
+  bool _objc_msgSend_686(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_686(
+      obj,
+      sel,
+      datep,
+      tip,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_686Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_686 = __objc_msgSend_686Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_nextWeekendStartDate_interval_options_afterDate_1 =
+      _registerName1("nextWeekendStartDate:interval:options:afterDate:");
+  bool _objc_msgSend_687(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    int options,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_687(
+      obj,
+      sel,
+      datep,
+      tip,
+      options,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_687Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_687 = __objc_msgSend_687Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_components_fromDateComponents_toDateComponents_options_1 =
+      _registerName1("components:fromDateComponents:toDateComponents:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_688(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> startingDateComp,
+    ffi.Pointer<ObjCObject> resultDateComp,
+    int options,
+  ) {
+    return __objc_msgSend_688(
+      obj,
+      sel,
+      unitFlags,
+      startingDateComp,
+      resultDateComp,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_688Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_688 = __objc_msgSend_688Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_dateByAddingUnit_value_toDate_options_1 =
+      _registerName1("dateByAddingUnit:value:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_689(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    int value,
+    ffi.Pointer<ObjCObject> date,
+    int options,
+  ) {
+    return __objc_msgSend_689(
+      obj,
+      sel,
+      unit,
+      value,
+      date,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_689Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_689 = __objc_msgSend_689Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_1 =
+      _registerName1(
+          "enumerateDatesStartingAfterDate:matchingComponents:options:usingBlock:");
+  void _objc_msgSend_690(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> start,
+    ffi.Pointer<ObjCObject> comps,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_690(
+      obj,
+      sel,
+      start,
+      comps,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_690Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_690 = __objc_msgSend_690Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_nextDateAfterDate_matchingComponents_options_1 =
+      _registerName1("nextDateAfterDate:matchingComponents:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_691(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> comps,
+    int options,
+  ) {
+    return __objc_msgSend_691(
+      obj,
+      sel,
+      date,
+      comps,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_691Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_691 = __objc_msgSend_691Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_nextDateAfterDate_matchingUnit_value_options_1 =
+      _registerName1("nextDateAfterDate:matchingUnit:value:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_692(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int unit,
+    int value,
+    int options,
+  ) {
+    return __objc_msgSend_692(
+      obj,
+      sel,
+      date,
+      unit,
+      value,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_692Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSInteger,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_692 = __objc_msgSend_692Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int, int)>();
+
+  late final _sel_nextDateAfterDate_matchingHour_minute_second_options_1 =
+      _registerName1("nextDateAfterDate:matchingHour:minute:second:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_693(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int hourValue,
+    int minuteValue,
+    int secondValue,
+    int options,
+  ) {
+    return __objc_msgSend_693(
+      obj,
+      sel,
+      date,
+      hourValue,
+      minuteValue,
+      secondValue,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_693Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_693 = __objc_msgSend_693Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int, int, int)>();
+
+  late final _sel_dateBySettingUnit_value_ofDate_options_1 =
+      _registerName1("dateBySettingUnit:value:ofDate:options:");
+  late final _sel_dateBySettingHour_minute_second_ofDate_options_1 =
+      _registerName1("dateBySettingHour:minute:second:ofDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_694(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int h,
+    int m,
+    int s,
+    ffi.Pointer<ObjCObject> date,
+    int opts,
+  ) {
+    return __objc_msgSend_694(
+      obj,
+      sel,
+      h,
+      m,
+      s,
+      date,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_694Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_694 = __objc_msgSend_694Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_date_matchesComponents_1 =
+      _registerName1("date:matchesComponents:");
+  bool _objc_msgSend_695(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_695(
+      obj,
+      sel,
+      date,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_695Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_695 = __objc_msgSend_695Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isLenient1 = _registerName1("isLenient");
+  late final _sel_setLenient_1 = _registerName1("setLenient:");
+  late final _sel_twoDigitStartDate1 = _registerName1("twoDigitStartDate");
+  late final _sel_setTwoDigitStartDate_1 =
+      _registerName1("setTwoDigitStartDate:");
+  late final _sel_defaultDate1 = _registerName1("defaultDate");
+  late final _sel_setDefaultDate_1 = _registerName1("setDefaultDate:");
+  late final _sel_setEraSymbols_1 = _registerName1("setEraSymbols:");
+  void _objc_msgSend_696(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_696(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_696Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_696 = __objc_msgSend_696Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setMonthSymbols_1 = _registerName1("setMonthSymbols:");
+  late final _sel_setShortMonthSymbols_1 =
+      _registerName1("setShortMonthSymbols:");
+  late final _sel_setWeekdaySymbols_1 = _registerName1("setWeekdaySymbols:");
+  late final _sel_setShortWeekdaySymbols_1 =
+      _registerName1("setShortWeekdaySymbols:");
+  late final _sel_setAMSymbol_1 = _registerName1("setAMSymbol:");
+  late final _sel_setPMSymbol_1 = _registerName1("setPMSymbol:");
+  late final _sel_setLongEraSymbols_1 = _registerName1("setLongEraSymbols:");
+  late final _sel_setVeryShortMonthSymbols_1 =
+      _registerName1("setVeryShortMonthSymbols:");
+  late final _sel_setStandaloneMonthSymbols_1 =
+      _registerName1("setStandaloneMonthSymbols:");
+  late final _sel_setShortStandaloneMonthSymbols_1 =
+      _registerName1("setShortStandaloneMonthSymbols:");
+  late final _sel_setVeryShortStandaloneMonthSymbols_1 =
+      _registerName1("setVeryShortStandaloneMonthSymbols:");
+  late final _sel_setVeryShortWeekdaySymbols_1 =
+      _registerName1("setVeryShortWeekdaySymbols:");
+  late final _sel_setStandaloneWeekdaySymbols_1 =
+      _registerName1("setStandaloneWeekdaySymbols:");
+  late final _sel_setShortStandaloneWeekdaySymbols_1 =
+      _registerName1("setShortStandaloneWeekdaySymbols:");
+  late final _sel_setVeryShortStandaloneWeekdaySymbols_1 =
+      _registerName1("setVeryShortStandaloneWeekdaySymbols:");
+  late final _sel_setQuarterSymbols_1 = _registerName1("setQuarterSymbols:");
+  late final _sel_setShortQuarterSymbols_1 =
+      _registerName1("setShortQuarterSymbols:");
+  late final _sel_setStandaloneQuarterSymbols_1 =
+      _registerName1("setStandaloneQuarterSymbols:");
+  late final _sel_setShortStandaloneQuarterSymbols_1 =
+      _registerName1("setShortStandaloneQuarterSymbols:");
+  late final _sel_gregorianStartDate1 = _registerName1("gregorianStartDate");
+  late final _sel_setGregorianStartDate_1 =
+      _registerName1("setGregorianStartDate:");
+  late final _sel_doesRelativeDateFormatting1 =
+      _registerName1("doesRelativeDateFormatting");
+  late final _sel_setDoesRelativeDateFormatting_1 =
+      _registerName1("setDoesRelativeDateFormatting:");
+  late final _sel_initWithDateFormat_allowNaturalLanguage_1 =
+      _registerName1("initWithDateFormat:allowNaturalLanguage:");
+  late final _sel_allowsNaturalLanguage1 =
+      _registerName1("allowsNaturalLanguage");
+  late final _class_NSNumberFormatter1 = _getClass1("NSNumberFormatter");
+  late final _sel_stringFromNumber_1 = _registerName1("stringFromNumber:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_697(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> number,
+  ) {
+    return __objc_msgSend_697(
+      obj,
+      sel,
+      number,
+    );
+  }
+
+  late final __objc_msgSend_697Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_697 = __objc_msgSend_697Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_numberFromString_1 = _registerName1("numberFromString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_698(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_698(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_698Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_698 = __objc_msgSend_698Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_localizedStringFromNumber_numberStyle_1 =
+      _registerName1("localizedStringFromNumber:numberStyle:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_699(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> num,
+    int nstyle,
+  ) {
+    return __objc_msgSend_699(
+      obj,
+      sel,
+      num,
+      nstyle,
+    );
+  }
+
+  late final __objc_msgSend_699Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_699 = __objc_msgSend_699Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  int _objc_msgSend_700(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_700(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_700Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_700 = __objc_msgSend_700Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  void _objc_msgSend_701(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int behavior,
+  ) {
+    return __objc_msgSend_701(
+      obj,
+      sel,
+      behavior,
+    );
+  }
+
+  late final __objc_msgSend_701Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_701 = __objc_msgSend_701Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_numberStyle1 = _registerName1("numberStyle");
+  int _objc_msgSend_702(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_702(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_702Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_702 = __objc_msgSend_702Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setNumberStyle_1 = _registerName1("setNumberStyle:");
+  void _objc_msgSend_703(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_703(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_703Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_703 = __objc_msgSend_703Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_generatesDecimalNumbers1 =
+      _registerName1("generatesDecimalNumbers");
+  late final _sel_setGeneratesDecimalNumbers_1 =
+      _registerName1("setGeneratesDecimalNumbers:");
+  void _objc_msgSend_704(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_704(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_704Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_704 = __objc_msgSend_704Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_negativeFormat1 = _registerName1("negativeFormat");
+  late final _sel_setNegativeFormat_1 = _registerName1("setNegativeFormat:");
+  late final _sel_textAttributesForNegativeValues1 =
+      _registerName1("textAttributesForNegativeValues");
+  late final _sel_setTextAttributesForNegativeValues_1 =
+      _registerName1("setTextAttributesForNegativeValues:");
+  late final _sel_positiveFormat1 = _registerName1("positiveFormat");
+  late final _sel_setPositiveFormat_1 = _registerName1("setPositiveFormat:");
+  late final _sel_textAttributesForPositiveValues1 =
+      _registerName1("textAttributesForPositiveValues");
+  late final _sel_setTextAttributesForPositiveValues_1 =
+      _registerName1("setTextAttributesForPositiveValues:");
+  late final _sel_allowsFloats1 = _registerName1("allowsFloats");
+  late final _sel_setAllowsFloats_1 = _registerName1("setAllowsFloats:");
+  late final _sel_setDecimalSeparator_1 =
+      _registerName1("setDecimalSeparator:");
+  late final _sel_alwaysShowsDecimalSeparator1 =
+      _registerName1("alwaysShowsDecimalSeparator");
+  late final _sel_setAlwaysShowsDecimalSeparator_1 =
+      _registerName1("setAlwaysShowsDecimalSeparator:");
+  late final _sel_currencyDecimalSeparator1 =
+      _registerName1("currencyDecimalSeparator");
+  late final _sel_setCurrencyDecimalSeparator_1 =
+      _registerName1("setCurrencyDecimalSeparator:");
+  late final _sel_usesGroupingSeparator1 =
+      _registerName1("usesGroupingSeparator");
+  late final _sel_setUsesGroupingSeparator_1 =
+      _registerName1("setUsesGroupingSeparator:");
+  late final _sel_setGroupingSeparator_1 =
+      _registerName1("setGroupingSeparator:");
+  late final _sel_zeroSymbol1 = _registerName1("zeroSymbol");
+  late final _sel_setZeroSymbol_1 = _registerName1("setZeroSymbol:");
+  late final _sel_textAttributesForZero1 =
+      _registerName1("textAttributesForZero");
+  late final _sel_setTextAttributesForZero_1 =
+      _registerName1("setTextAttributesForZero:");
+  late final _sel_nilSymbol1 = _registerName1("nilSymbol");
+  late final _sel_setNilSymbol_1 = _registerName1("setNilSymbol:");
+  late final _sel_textAttributesForNil1 =
+      _registerName1("textAttributesForNil");
+  late final _sel_setTextAttributesForNil_1 =
+      _registerName1("setTextAttributesForNil:");
+  late final _sel_notANumberSymbol1 = _registerName1("notANumberSymbol");
+  late final _sel_setNotANumberSymbol_1 =
+      _registerName1("setNotANumberSymbol:");
+  late final _sel_textAttributesForNotANumber1 =
+      _registerName1("textAttributesForNotANumber");
+  late final _sel_setTextAttributesForNotANumber_1 =
+      _registerName1("setTextAttributesForNotANumber:");
+  late final _sel_positiveInfinitySymbol1 =
+      _registerName1("positiveInfinitySymbol");
+  late final _sel_setPositiveInfinitySymbol_1 =
+      _registerName1("setPositiveInfinitySymbol:");
+  late final _sel_textAttributesForPositiveInfinity1 =
+      _registerName1("textAttributesForPositiveInfinity");
+  late final _sel_setTextAttributesForPositiveInfinity_1 =
+      _registerName1("setTextAttributesForPositiveInfinity:");
+  late final _sel_negativeInfinitySymbol1 =
+      _registerName1("negativeInfinitySymbol");
+  late final _sel_setNegativeInfinitySymbol_1 =
+      _registerName1("setNegativeInfinitySymbol:");
+  late final _sel_textAttributesForNegativeInfinity1 =
+      _registerName1("textAttributesForNegativeInfinity");
+  late final _sel_setTextAttributesForNegativeInfinity_1 =
+      _registerName1("setTextAttributesForNegativeInfinity:");
+  late final _sel_positivePrefix1 = _registerName1("positivePrefix");
+  late final _sel_setPositivePrefix_1 = _registerName1("setPositivePrefix:");
+  late final _sel_positiveSuffix1 = _registerName1("positiveSuffix");
+  late final _sel_setPositiveSuffix_1 = _registerName1("setPositiveSuffix:");
+  late final _sel_negativePrefix1 = _registerName1("negativePrefix");
+  late final _sel_setNegativePrefix_1 = _registerName1("setNegativePrefix:");
+  late final _sel_negativeSuffix1 = _registerName1("negativeSuffix");
+  late final _sel_setNegativeSuffix_1 = _registerName1("setNegativeSuffix:");
+  late final _sel_setCurrencyCode_1 = _registerName1("setCurrencyCode:");
+  late final _sel_setCurrencySymbol_1 = _registerName1("setCurrencySymbol:");
+  late final _sel_internationalCurrencySymbol1 =
+      _registerName1("internationalCurrencySymbol");
+  late final _sel_setInternationalCurrencySymbol_1 =
+      _registerName1("setInternationalCurrencySymbol:");
+  late final _sel_percentSymbol1 = _registerName1("percentSymbol");
+  late final _sel_setPercentSymbol_1 = _registerName1("setPercentSymbol:");
+  late final _sel_perMillSymbol1 = _registerName1("perMillSymbol");
+  late final _sel_setPerMillSymbol_1 = _registerName1("setPerMillSymbol:");
+  late final _sel_minusSign1 = _registerName1("minusSign");
+  late final _sel_setMinusSign_1 = _registerName1("setMinusSign:");
+  late final _sel_plusSign1 = _registerName1("plusSign");
+  late final _sel_setPlusSign_1 = _registerName1("setPlusSign:");
+  late final _sel_exponentSymbol1 = _registerName1("exponentSymbol");
+  late final _sel_setExponentSymbol_1 = _registerName1("setExponentSymbol:");
+  late final _sel_groupingSize1 = _registerName1("groupingSize");
+  late final _sel_setGroupingSize_1 = _registerName1("setGroupingSize:");
+  late final _sel_secondaryGroupingSize1 =
+      _registerName1("secondaryGroupingSize");
+  late final _sel_setSecondaryGroupingSize_1 =
+      _registerName1("setSecondaryGroupingSize:");
+  late final _sel_multiplier1 = _registerName1("multiplier");
+  late final _sel_setMultiplier_1 = _registerName1("setMultiplier:");
+  void _objc_msgSend_705(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_705(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_705Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_705 = __objc_msgSend_705Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_formatWidth1 = _registerName1("formatWidth");
+  late final _sel_setFormatWidth_1 = _registerName1("setFormatWidth:");
+  late final _sel_paddingCharacter1 = _registerName1("paddingCharacter");
+  late final _sel_setPaddingCharacter_1 =
+      _registerName1("setPaddingCharacter:");
+  late final _sel_paddingPosition1 = _registerName1("paddingPosition");
+  int _objc_msgSend_706(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_706(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_706Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_706 = __objc_msgSend_706Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPaddingPosition_1 = _registerName1("setPaddingPosition:");
+  void _objc_msgSend_707(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_707(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_707Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_707 = __objc_msgSend_707Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_roundingMode1 = _registerName1("roundingMode");
+  int _objc_msgSend_708(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_708(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_708Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_708 = __objc_msgSend_708Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setRoundingMode_1 = _registerName1("setRoundingMode:");
+  void _objc_msgSend_709(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_709(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_709Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_709 = __objc_msgSend_709Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_roundingIncrement1 = _registerName1("roundingIncrement");
+  late final _sel_setRoundingIncrement_1 =
+      _registerName1("setRoundingIncrement:");
+  late final _sel_minimumIntegerDigits1 =
+      _registerName1("minimumIntegerDigits");
+  late final _sel_setMinimumIntegerDigits_1 =
+      _registerName1("setMinimumIntegerDigits:");
+  late final _sel_maximumIntegerDigits1 =
+      _registerName1("maximumIntegerDigits");
+  late final _sel_setMaximumIntegerDigits_1 =
+      _registerName1("setMaximumIntegerDigits:");
+  late final _sel_minimumFractionDigits1 =
+      _registerName1("minimumFractionDigits");
+  late final _sel_setMinimumFractionDigits_1 =
+      _registerName1("setMinimumFractionDigits:");
+  late final _sel_maximumFractionDigits1 =
+      _registerName1("maximumFractionDigits");
+  late final _sel_setMaximumFractionDigits_1 =
+      _registerName1("setMaximumFractionDigits:");
+  late final _sel_minimum1 = _registerName1("minimum");
+  late final _sel_setMinimum_1 = _registerName1("setMinimum:");
+  late final _sel_maximum1 = _registerName1("maximum");
+  late final _sel_setMaximum_1 = _registerName1("setMaximum:");
+  late final _sel_currencyGroupingSeparator1 =
+      _registerName1("currencyGroupingSeparator");
+  late final _sel_setCurrencyGroupingSeparator_1 =
+      _registerName1("setCurrencyGroupingSeparator:");
+  late final _sel_usesSignificantDigits1 =
+      _registerName1("usesSignificantDigits");
+  late final _sel_setUsesSignificantDigits_1 =
+      _registerName1("setUsesSignificantDigits:");
+  late final _sel_minimumSignificantDigits1 =
+      _registerName1("minimumSignificantDigits");
+  late final _sel_setMinimumSignificantDigits_1 =
+      _registerName1("setMinimumSignificantDigits:");
+  late final _sel_maximumSignificantDigits1 =
+      _registerName1("maximumSignificantDigits");
+  late final _sel_setMaximumSignificantDigits_1 =
+      _registerName1("setMaximumSignificantDigits:");
+  late final _sel_isPartialStringValidationEnabled1 =
+      _registerName1("isPartialStringValidationEnabled");
+  late final _sel_setPartialStringValidationEnabled_1 =
+      _registerName1("setPartialStringValidationEnabled:");
+  late final _sel_hasThousandSeparators1 =
+      _registerName1("hasThousandSeparators");
+  late final _sel_setHasThousandSeparators_1 =
+      _registerName1("setHasThousandSeparators:");
+  late final _sel_thousandSeparator1 = _registerName1("thousandSeparator");
+  late final _sel_setThousandSeparator_1 =
+      _registerName1("setThousandSeparator:");
+  late final _sel_localizesFormat1 = _registerName1("localizesFormat");
+  late final _sel_setLocalizesFormat_1 = _registerName1("setLocalizesFormat:");
+  late final _sel_format1 = _registerName1("format");
+  late final _sel_setFormat_1 = _registerName1("setFormat:");
+  late final _sel_attributedStringForZero1 =
+      _registerName1("attributedStringForZero");
+  late final _sel_setAttributedStringForZero_1 =
+      _registerName1("setAttributedStringForZero:");
+  void _objc_msgSend_710(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_710(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_710Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_710 = __objc_msgSend_710Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributedStringForNil1 =
+      _registerName1("attributedStringForNil");
+  late final _sel_setAttributedStringForNil_1 =
+      _registerName1("setAttributedStringForNil:");
+  late final _sel_attributedStringForNotANumber1 =
+      _registerName1("attributedStringForNotANumber");
+  late final _sel_setAttributedStringForNotANumber_1 =
+      _registerName1("setAttributedStringForNotANumber:");
+  late final _class_NSDecimalNumberHandler1 =
+      _getClass1("NSDecimalNumberHandler");
+  late final _sel_defaultDecimalNumberHandler1 =
+      _registerName1("defaultDecimalNumberHandler");
+  ffi.Pointer<ObjCObject> _objc_msgSend_711(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_711(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_711Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_711 = __objc_msgSend_711Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1 =
+      _registerName1(
+          "initWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:");
+  instancetype _objc_msgSend_712(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int roundingMode,
+    int scale,
+    bool exact,
+    bool overflow,
+    bool underflow,
+    bool divideByZero,
+  ) {
+    return __objc_msgSend_712(
+      obj,
+      sel,
+      roundingMode,
+      scale,
+      exact,
+      overflow,
+      underflow,
+      divideByZero,
+    );
+  }
+
+  late final __objc_msgSend_712Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Short,
+              ffi.Bool,
+              ffi.Bool,
+              ffi.Bool,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_712 = __objc_msgSend_712Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, bool, bool, bool, bool)>();
+
+  late final _sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1 =
+      _registerName1(
+          "decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:");
+  late final _sel_roundingBehavior1 = _registerName1("roundingBehavior");
+  late final _sel_setRoundingBehavior_1 =
+      _registerName1("setRoundingBehavior:");
+  void _objc_msgSend_713(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_713(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_713Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_713 = __objc_msgSend_713Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSScanner1 = _getClass1("NSScanner");
+  late final _sel_scanLocation1 = _registerName1("scanLocation");
+  late final _sel_setScanLocation_1 = _registerName1("setScanLocation:");
+  late final _sel_charactersToBeSkipped1 =
+      _registerName1("charactersToBeSkipped");
+  late final _sel_setCharactersToBeSkipped_1 =
+      _registerName1("setCharactersToBeSkipped:");
+  void _objc_msgSend_714(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_714(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_714Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_714 = __objc_msgSend_714Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_caseSensitive1 = _registerName1("caseSensitive");
+  late final _sel_setCaseSensitive_1 = _registerName1("setCaseSensitive:");
+  late final _sel_scanInt_1 = _registerName1("scanInt:");
+  bool _objc_msgSend_715(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int> result,
+  ) {
+    return __objc_msgSend_715(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_715Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int>)>>('objc_msgSend');
+  late final __objc_msgSend_715 = __objc_msgSend_715Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int>)>();
+
+  late final _sel_scanInteger_1 = _registerName1("scanInteger:");
+  bool _objc_msgSend_716(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> result,
+  ) {
+    return __objc_msgSend_716(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_716Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_716 = __objc_msgSend_716Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>)>();
+
+  late final _sel_scanLongLong_1 = _registerName1("scanLongLong:");
+  bool _objc_msgSend_717(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.LongLong> result,
+  ) {
+    return __objc_msgSend_717(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_717Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.LongLong>)>>('objc_msgSend');
+  late final __objc_msgSend_717 = __objc_msgSend_717Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.LongLong>)>();
+
+  late final _sel_scanUnsignedLongLong_1 =
+      _registerName1("scanUnsignedLongLong:");
+  bool _objc_msgSend_718(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedLongLong> result,
+  ) {
+    return __objc_msgSend_718(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_718Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedLongLong>)>>('objc_msgSend');
+  late final __objc_msgSend_718 = __objc_msgSend_718Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedLongLong>)>();
+
+  late final _sel_scanFloat_1 = _registerName1("scanFloat:");
+  bool _objc_msgSend_719(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Float> result,
+  ) {
+    return __objc_msgSend_719(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_719Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Float>)>>('objc_msgSend');
+  late final __objc_msgSend_719 = __objc_msgSend_719Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Float>)>();
+
+  late final _sel_scanDouble_1 = _registerName1("scanDouble:");
+  bool _objc_msgSend_720(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Double> result,
+  ) {
+    return __objc_msgSend_720(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_720Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Double>)>>('objc_msgSend');
+  late final __objc_msgSend_720 = __objc_msgSend_720Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Double>)>();
+
+  late final _sel_scanHexInt_1 = _registerName1("scanHexInt:");
+  bool _objc_msgSend_721(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedInt> result,
+  ) {
+    return __objc_msgSend_721(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_721Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('objc_msgSend');
+  late final __objc_msgSend_721 = __objc_msgSend_721Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedInt>)>();
+
+  late final _sel_scanHexLongLong_1 = _registerName1("scanHexLongLong:");
+  late final _sel_scanHexFloat_1 = _registerName1("scanHexFloat:");
+  late final _sel_scanHexDouble_1 = _registerName1("scanHexDouble:");
+  late final _sel_scanString_intoString_1 =
+      _registerName1("scanString:intoString:");
+  bool _objc_msgSend_722(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> result,
+  ) {
+    return __objc_msgSend_722(
+      obj,
+      sel,
+      string,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_722Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_722 = __objc_msgSend_722Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_scanCharactersFromSet_intoString_1 =
+      _registerName1("scanCharactersFromSet:intoString:");
+  bool _objc_msgSend_723(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> result,
+  ) {
+    return __objc_msgSend_723(
+      obj,
+      sel,
+      set1,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_723Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_723 = __objc_msgSend_723Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_scanUpToString_intoString_1 =
+      _registerName1("scanUpToString:intoString:");
+  late final _sel_scanUpToCharactersFromSet_intoString_1 =
+      _registerName1("scanUpToCharactersFromSet:intoString:");
+  late final _sel_isAtEnd1 = _registerName1("isAtEnd");
+  late final _sel_scannerWithString_1 = _registerName1("scannerWithString:");
+  late final _sel_localizedScannerWithString_1 =
+      _registerName1("localizedScannerWithString:");
+  late final _sel_scanDecimal_1 = _registerName1("scanDecimal:");
+  bool _objc_msgSend_724(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSDecimal> dcm,
+  ) {
+    return __objc_msgSend_724(
+      obj,
+      sel,
+      dcm,
+    );
+  }
+
+  late final __objc_msgSend_724Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSDecimal>)>>('objc_msgSend');
+  late final __objc_msgSend_724 = __objc_msgSend_724Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSDecimal>)>();
+
+  late final _class_NSException1 = _getClass1("NSException");
+  late final _sel_exceptionWithName_reason_userInfo_1 =
+      _registerName1("exceptionWithName:reason:userInfo:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_725(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSExceptionName name,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<ObjCObject> userInfo,
+  ) {
+    return __objc_msgSend_725(
+      obj,
+      sel,
+      name,
+      reason,
+      userInfo,
+    );
+  }
+
+  late final __objc_msgSend_725Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSExceptionName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_725 = __objc_msgSend_725Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSExceptionName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithName_reason_userInfo_1 =
+      _registerName1("initWithName:reason:userInfo:");
+  late final _sel_reason1 = _registerName1("reason");
+  late final _sel_raise1 = _registerName1("raise");
+  late final _sel_raise_format_1 = _registerName1("raise:format:");
+  late final _sel_raise_format_arguments_1 =
+      _registerName1("raise:format:arguments:");
+  void _objc_msgSend_726(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSExceptionName name,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_726(
+      obj,
+      sel,
+      name,
+      format,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_726Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSExceptionName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_726 = __objc_msgSend_726Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSExceptionName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _class_NSFileHandle1 = _getClass1("NSFileHandle");
+  late final _sel_availableData1 = _registerName1("availableData");
+  late final _sel_initWithFileDescriptor_closeOnDealloc_1 =
+      _registerName1("initWithFileDescriptor:closeOnDealloc:");
+  instancetype _objc_msgSend_727(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fd,
+    bool closeopt,
+  ) {
+    return __objc_msgSend_727(
+      obj,
+      sel,
+      fd,
+      closeopt,
+    );
+  }
+
+  late final __objc_msgSend_727Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_727 = __objc_msgSend_727Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, bool)>();
+
+  late final _sel_readDataToEndOfFileAndReturnError_1 =
+      _registerName1("readDataToEndOfFileAndReturnError:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_728(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_728(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_728Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_728 = __objc_msgSend_728Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_readDataUpToLength_error_1 =
+      _registerName1("readDataUpToLength:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_729(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int length,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_729(
+      obj,
+      sel,
+      length,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_729Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_729 = __objc_msgSend_729Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeData_error_1 = _registerName1("writeData:error:");
+  bool _objc_msgSend_730(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_730(
+      obj,
+      sel,
+      data,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_730Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_730 = __objc_msgSend_730Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getOffset_error_1 = _registerName1("getOffset:error:");
+  bool _objc_msgSend_731(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_731(
+      obj,
+      sel,
+      offsetInFile,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_731Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedLongLong>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_731 = __objc_msgSend_731Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedLongLong>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_seekToEndReturningOffset_error_1 =
+      _registerName1("seekToEndReturningOffset:error:");
+  late final _sel_seekToOffset_error_1 = _registerName1("seekToOffset:error:");
+  bool _objc_msgSend_732(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_732(
+      obj,
+      sel,
+      offset,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_732Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.UnsignedLongLong,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_732 = __objc_msgSend_732Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_truncateAtOffset_error_1 =
+      _registerName1("truncateAtOffset:error:");
+  late final _sel_synchronizeAndReturnError_1 =
+      _registerName1("synchronizeAndReturnError:");
+  late final _sel_closeAndReturnError_1 =
+      _registerName1("closeAndReturnError:");
+  late final _sel_fileHandleWithStandardInput1 =
+      _registerName1("fileHandleWithStandardInput");
+  ffi.Pointer<ObjCObject> _objc_msgSend_733(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_733(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_733Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_733 = __objc_msgSend_733Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileHandleWithStandardOutput1 =
+      _registerName1("fileHandleWithStandardOutput");
+  late final _sel_fileHandleWithStandardError1 =
+      _registerName1("fileHandleWithStandardError");
+  late final _sel_fileHandleWithNullDevice1 =
+      _registerName1("fileHandleWithNullDevice");
+  late final _sel_fileHandleForReadingAtPath_1 =
+      _registerName1("fileHandleForReadingAtPath:");
+  late final _sel_fileHandleForWritingAtPath_1 =
+      _registerName1("fileHandleForWritingAtPath:");
+  late final _sel_fileHandleForUpdatingAtPath_1 =
+      _registerName1("fileHandleForUpdatingAtPath:");
+  late final _sel_fileHandleForReadingFromURL_error_1 =
+      _registerName1("fileHandleForReadingFromURL:error:");
+  instancetype _objc_msgSend_734(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_734(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_734Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_734 = __objc_msgSend_734Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_fileHandleForWritingToURL_error_1 =
+      _registerName1("fileHandleForWritingToURL:error:");
+  late final _sel_fileHandleForUpdatingURL_error_1 =
+      _registerName1("fileHandleForUpdatingURL:error:");
+  late final _sel_readInBackgroundAndNotifyForModes_1 =
+      _registerName1("readInBackgroundAndNotifyForModes:");
+  late final _sel_readInBackgroundAndNotify1 =
+      _registerName1("readInBackgroundAndNotify");
+  late final _sel_readToEndOfFileInBackgroundAndNotifyForModes_1 =
+      _registerName1("readToEndOfFileInBackgroundAndNotifyForModes:");
+  late final _sel_readToEndOfFileInBackgroundAndNotify1 =
+      _registerName1("readToEndOfFileInBackgroundAndNotify");
+  late final _sel_acceptConnectionInBackgroundAndNotifyForModes_1 =
+      _registerName1("acceptConnectionInBackgroundAndNotifyForModes:");
+  late final _sel_acceptConnectionInBackgroundAndNotify1 =
+      _registerName1("acceptConnectionInBackgroundAndNotify");
+  late final _sel_waitForDataInBackgroundAndNotifyForModes_1 =
+      _registerName1("waitForDataInBackgroundAndNotifyForModes:");
+  late final _sel_waitForDataInBackgroundAndNotify1 =
+      _registerName1("waitForDataInBackgroundAndNotify");
+  late final _sel_readabilityHandler1 = _registerName1("readabilityHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_735(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_735(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_735Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_735 = __objc_msgSend_735Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setReadabilityHandler_1 =
+      _registerName1("setReadabilityHandler:");
+  void _objc_msgSend_736(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_736(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_736Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_736 = __objc_msgSend_736Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_writeabilityHandler1 = _registerName1("writeabilityHandler");
+  late final _sel_setWriteabilityHandler_1 =
+      _registerName1("setWriteabilityHandler:");
+  late final _sel_initWithFileDescriptor_1 =
+      _registerName1("initWithFileDescriptor:");
+  instancetype _objc_msgSend_737(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fd,
+  ) {
+    return __objc_msgSend_737(
+      obj,
+      sel,
+      fd,
+    );
+  }
+
+  late final __objc_msgSend_737Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_737 = __objc_msgSend_737Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_fileDescriptor1 = _registerName1("fileDescriptor");
+  late final _sel_readDataToEndOfFile1 = _registerName1("readDataToEndOfFile");
+  late final _sel_readDataOfLength_1 = _registerName1("readDataOfLength:");
+  late final _sel_offsetInFile1 = _registerName1("offsetInFile");
+  late final _sel_seekToEndOfFile1 = _registerName1("seekToEndOfFile");
+  late final _sel_seekToFileOffset_1 = _registerName1("seekToFileOffset:");
+  void _objc_msgSend_738(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+  ) {
+    return __objc_msgSend_738(
+      obj,
+      sel,
+      offset,
+    );
+  }
+
+  late final __objc_msgSend_738Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.UnsignedLongLong)>>('objc_msgSend');
+  late final __objc_msgSend_738 = __objc_msgSend_738Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_truncateFileAtOffset_1 =
+      _registerName1("truncateFileAtOffset:");
+  late final _sel_synchronizeFile1 = _registerName1("synchronizeFile");
+  late final _sel_closeFile1 = _registerName1("closeFile");
+  late final _class_NSHTTPCookieStorage1 = _getClass1("NSHTTPCookieStorage");
+  late final _sel_sharedHTTPCookieStorage1 =
+      _registerName1("sharedHTTPCookieStorage");
+  ffi.Pointer<ObjCObject> _objc_msgSend_739(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_739(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_739Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_739 = __objc_msgSend_739Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sharedCookieStorageForGroupContainerIdentifier_1 =
+      _registerName1("sharedCookieStorageForGroupContainerIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_740(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_740(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_740Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_740 = __objc_msgSend_740Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cookies1 = _registerName1("cookies");
+  late final _class_NSHTTPCookie1 = _getClass1("NSHTTPCookie");
+  late final _sel_initWithProperties_1 = _registerName1("initWithProperties:");
+  late final _sel_cookieWithProperties_1 =
+      _registerName1("cookieWithProperties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_741(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_741(
+      obj,
+      sel,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_741Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_741 = __objc_msgSend_741Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_requestHeaderFieldsWithCookies_1 =
+      _registerName1("requestHeaderFieldsWithCookies:");
+  late final _sel_cookiesWithResponseHeaderFields_forURL_1 =
+      _registerName1("cookiesWithResponseHeaderFields:forURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_742(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> headerFields,
+    ffi.Pointer<ObjCObject> URL,
+  ) {
+    return __objc_msgSend_742(
+      obj,
+      sel,
+      headerFields,
+      URL,
+    );
+  }
+
+  late final __objc_msgSend_742Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_742 = __objc_msgSend_742Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_properties1 = _registerName1("properties");
+  late final _sel_value1 = _registerName1("value");
+  late final _sel_expiresDate1 = _registerName1("expiresDate");
+  late final _sel_isSessionOnly1 = _registerName1("isSessionOnly");
+  late final _sel_isSecure1 = _registerName1("isSecure");
+  late final _sel_isHTTPOnly1 = _registerName1("isHTTPOnly");
+  late final _sel_comment1 = _registerName1("comment");
+  late final _sel_commentURL1 = _registerName1("commentURL");
+  late final _sel_portList1 = _registerName1("portList");
+  late final _sel_sameSitePolicy1 = _registerName1("sameSitePolicy");
+  late final _sel_setCookie_1 = _registerName1("setCookie:");
+  void _objc_msgSend_743(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookie,
+  ) {
+    return __objc_msgSend_743(
+      obj,
+      sel,
+      cookie,
+    );
+  }
+
+  late final __objc_msgSend_743Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_743 = __objc_msgSend_743Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_deleteCookie_1 = _registerName1("deleteCookie:");
+  late final _sel_removeCookiesSinceDate_1 =
+      _registerName1("removeCookiesSinceDate:");
+  late final _sel_cookiesForURL_1 = _registerName1("cookiesForURL:");
+  late final _sel_setCookies_forURL_mainDocumentURL_1 =
+      _registerName1("setCookies:forURL:mainDocumentURL:");
+  void _objc_msgSend_744(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookies,
+    ffi.Pointer<ObjCObject> URL,
+    ffi.Pointer<ObjCObject> mainDocumentURL,
+  ) {
+    return __objc_msgSend_744(
+      obj,
+      sel,
+      cookies,
+      URL,
+      mainDocumentURL,
+    );
+  }
+
+  late final __objc_msgSend_744Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_744 = __objc_msgSend_744Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cookieAcceptPolicy1 = _registerName1("cookieAcceptPolicy");
+  int _objc_msgSend_745(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_745(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_745Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_745 = __objc_msgSend_745Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setCookieAcceptPolicy_1 =
+      _registerName1("setCookieAcceptPolicy:");
+  void _objc_msgSend_746(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_746(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_746Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_746 = __objc_msgSend_746Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_sortedCookiesUsingDescriptors_1 =
+      _registerName1("sortedCookiesUsingDescriptors:");
+  late final _class_NSURLSessionTask1 = _getClass1("NSURLSessionTask");
+  late final _sel_taskIdentifier1 = _registerName1("taskIdentifier");
+  late final _class_NSURLRequest1 = _getClass1("NSURLRequest");
+  late final _sel_requestWithURL_1 = _registerName1("requestWithURL:");
+  late final _sel_supportsSecureCoding1 =
+      _registerName1("supportsSecureCoding");
+  late final _sel_requestWithURL_cachePolicy_timeoutInterval_1 =
+      _registerName1("requestWithURL:cachePolicy:timeoutInterval:");
+  instancetype _objc_msgSend_747(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> URL,
+    int cachePolicy,
+    double timeoutInterval,
+  ) {
+    return __objc_msgSend_747(
+      obj,
+      sel,
+      URL,
+      cachePolicy,
+      timeoutInterval,
+    );
+  }
+
+  late final __objc_msgSend_747Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_747 = __objc_msgSend_747Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, double)>();
+
+  late final _sel_initWithURL_cachePolicy_timeoutInterval_1 =
+      _registerName1("initWithURL:cachePolicy:timeoutInterval:");
+  late final _sel_URL1 = _registerName1("URL");
+  late final _sel_cachePolicy1 = _registerName1("cachePolicy");
+  int _objc_msgSend_748(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_748(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_748Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_748 = __objc_msgSend_748Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_timeoutInterval1 = _registerName1("timeoutInterval");
+  late final _sel_mainDocumentURL1 = _registerName1("mainDocumentURL");
+  late final _sel_networkServiceType1 = _registerName1("networkServiceType");
+  int _objc_msgSend_749(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_749(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_749Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_749 = __objc_msgSend_749Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_allowsCellularAccess1 =
+      _registerName1("allowsCellularAccess");
+  late final _sel_allowsExpensiveNetworkAccess1 =
+      _registerName1("allowsExpensiveNetworkAccess");
+  late final _sel_allowsConstrainedNetworkAccess1 =
+      _registerName1("allowsConstrainedNetworkAccess");
+  late final _sel_assumesHTTP3Capable1 = _registerName1("assumesHTTP3Capable");
+  late final _sel_attribution1 = _registerName1("attribution");
+  int _objc_msgSend_750(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_750(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_750Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_750 = __objc_msgSend_750Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_HTTPMethod1 = _registerName1("HTTPMethod");
+  late final _sel_allHTTPHeaderFields1 = _registerName1("allHTTPHeaderFields");
+  late final _sel_valueForHTTPHeaderField_1 =
+      _registerName1("valueForHTTPHeaderField:");
+  late final _sel_HTTPBody1 = _registerName1("HTTPBody");
+  late final _class_NSInputStream1 = _getClass1("NSInputStream");
+  late final _class_NSStream1 = _getClass1("NSStream");
+  late final _sel_open1 = _registerName1("open");
+  late final _sel_close1 = _registerName1("close");
+  late final _sel_streamStatus1 = _registerName1("streamStatus");
+  int _objc_msgSend_751(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_751(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_751Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_751 = __objc_msgSend_751Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_streamError1 = _registerName1("streamError");
+  late final _class_NSOutputStream1 = _getClass1("NSOutputStream");
+  late final _sel_write_maxLength_1 = _registerName1("write:maxLength:");
+  int _objc_msgSend_752(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> buffer,
+    int len,
+  ) {
+    return __objc_msgSend_752(
+      obj,
+      sel,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_752Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_752 = __objc_msgSend_752Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int)>();
+
+  late final _sel_hasSpaceAvailable1 = _registerName1("hasSpaceAvailable");
+  late final _sel_initToMemory1 = _registerName1("initToMemory");
+  late final _sel_initToBuffer_capacity_1 =
+      _registerName1("initToBuffer:capacity:");
+  instancetype _objc_msgSend_753(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> buffer,
+    int capacity,
+  ) {
+    return __objc_msgSend_753(
+      obj,
+      sel,
+      buffer,
+      capacity,
+    );
+  }
+
+  late final __objc_msgSend_753Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_753 = __objc_msgSend_753Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int)>();
+
+  late final _sel_initWithURL_append_1 = _registerName1("initWithURL:append:");
+  late final _sel_initToFileAtPath_append_1 =
+      _registerName1("initToFileAtPath:append:");
+  late final _sel_outputStreamToMemory1 =
+      _registerName1("outputStreamToMemory");
+  late final _sel_outputStreamToBuffer_capacity_1 =
+      _registerName1("outputStreamToBuffer:capacity:");
+  late final _sel_outputStreamToFileAtPath_append_1 =
+      _registerName1("outputStreamToFileAtPath:append:");
+  late final _sel_outputStreamWithURL_append_1 =
+      _registerName1("outputStreamWithURL:append:");
+  late final _sel_getStreamsToHostWithName_port_inputStream_outputStream_1 =
+      _registerName1("getStreamsToHostWithName:port:inputStream:outputStream:");
+  void _objc_msgSend_754(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> hostname,
+    int port,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_754(
+      obj,
+      sel,
+      hostname,
+      port,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_754Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_754 = __objc_msgSend_754Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _class_NSHost1 = _getClass1("NSHost");
+  late final _sel_currentHost1 = _registerName1("currentHost");
+  late final _sel_hostWithName_1 = _registerName1("hostWithName:");
+  late final _sel_hostWithAddress_1 = _registerName1("hostWithAddress:");
+  late final _sel_isEqualToHost_1 = _registerName1("isEqualToHost:");
+  bool _objc_msgSend_755(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aHost,
+  ) {
+    return __objc_msgSend_755(
+      obj,
+      sel,
+      aHost,
+    );
+  }
+
+  late final __objc_msgSend_755Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_755 = __objc_msgSend_755Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_names1 = _registerName1("names");
+  late final _sel_address1 = _registerName1("address");
+  late final _sel_addresses1 = _registerName1("addresses");
+  late final _sel_localizedName1 = _registerName1("localizedName");
+  late final _sel_setHostCacheEnabled_1 =
+      _registerName1("setHostCacheEnabled:");
+  void _objc_msgSend_756(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool flag,
+  ) {
+    return __objc_msgSend_756(
+      obj,
+      sel,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_756Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_756 = __objc_msgSend_756Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_isHostCacheEnabled1 = _registerName1("isHostCacheEnabled");
+  late final _sel_flushHostCache1 = _registerName1("flushHostCache");
+  late final _sel_getStreamsToHost_port_inputStream_outputStream_1 =
+      _registerName1("getStreamsToHost:port:inputStream:outputStream:");
+  void _objc_msgSend_757(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> host,
+    int port,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_757(
+      obj,
+      sel,
+      host,
+      port,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_757Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_757 = __objc_msgSend_757Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1 =
+      _registerName1("getBoundStreamsWithBufferSize:inputStream:outputStream:");
+  void _objc_msgSend_758(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int bufferSize,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_758(
+      obj,
+      sel,
+      bufferSize,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_758Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_758 = __objc_msgSend_758Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_read_maxLength_1 = _registerName1("read:maxLength:");
+  late final _sel_getBuffer_length_1 = _registerName1("getBuffer:length:");
+  bool _objc_msgSend_759(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ffi.Uint8>> buffer,
+    ffi.Pointer<NSUInteger> len,
+  ) {
+    return __objc_msgSend_759(
+      obj,
+      sel,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_759Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ffi.Uint8>>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_759 = __objc_msgSend_759Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ffi.Uint8>>, ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_hasBytesAvailable1 = _registerName1("hasBytesAvailable");
+  late final _sel_initWithFileAtPath_1 = _registerName1("initWithFileAtPath:");
+  late final _sel_inputStreamWithData_1 =
+      _registerName1("inputStreamWithData:");
+  late final _sel_inputStreamWithFileAtPath_1 =
+      _registerName1("inputStreamWithFileAtPath:");
+  late final _sel_inputStreamWithURL_1 = _registerName1("inputStreamWithURL:");
+  late final _sel_HTTPBodyStream1 = _registerName1("HTTPBodyStream");
+  ffi.Pointer<ObjCObject> _objc_msgSend_760(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_760(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_760Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_760 = __objc_msgSend_760Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_HTTPShouldHandleCookies1 =
+      _registerName1("HTTPShouldHandleCookies");
+  late final _sel_HTTPShouldUsePipelining1 =
+      _registerName1("HTTPShouldUsePipelining");
+  late final _sel_originalRequest1 = _registerName1("originalRequest");
+  ffi.Pointer<ObjCObject> _objc_msgSend_761(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_761(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_761Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_761 = __objc_msgSend_761Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_currentRequest1 = _registerName1("currentRequest");
+  late final _class_NSURLResponse1 = _getClass1("NSURLResponse");
+  late final _sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_1 =
+      _registerName1(
+          "initWithURL:MIMEType:expectedContentLength:textEncodingName:");
+  instancetype _objc_msgSend_762(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> URL,
+    ffi.Pointer<ObjCObject> MIMEType,
+    int length,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_762(
+      obj,
+      sel,
+      URL,
+      MIMEType,
+      length,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_762Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_762 = __objc_msgSend_762Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_MIMEType1 = _registerName1("MIMEType");
+  late final _sel_expectedContentLength1 =
+      _registerName1("expectedContentLength");
+  late final _sel_textEncodingName1 = _registerName1("textEncodingName");
+  late final _sel_suggestedFilename1 = _registerName1("suggestedFilename");
+  late final _sel_response1 = _registerName1("response");
+  ffi.Pointer<ObjCObject> _objc_msgSend_763(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_763(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_763Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_763 = __objc_msgSend_763Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_progress1 = _registerName1("progress");
+  late final _sel_earliestBeginDate1 = _registerName1("earliestBeginDate");
+  late final _sel_setEarliestBeginDate_1 =
+      _registerName1("setEarliestBeginDate:");
+  late final _sel_countOfBytesClientExpectsToSend1 =
+      _registerName1("countOfBytesClientExpectsToSend");
+  late final _sel_setCountOfBytesClientExpectsToSend_1 =
+      _registerName1("setCountOfBytesClientExpectsToSend:");
+  late final _sel_countOfBytesClientExpectsToReceive1 =
+      _registerName1("countOfBytesClientExpectsToReceive");
+  late final _sel_setCountOfBytesClientExpectsToReceive_1 =
+      _registerName1("setCountOfBytesClientExpectsToReceive:");
+  late final _sel_countOfBytesSent1 = _registerName1("countOfBytesSent");
+  late final _sel_countOfBytesReceived1 =
+      _registerName1("countOfBytesReceived");
+  late final _sel_countOfBytesExpectedToSend1 =
+      _registerName1("countOfBytesExpectedToSend");
+  late final _sel_countOfBytesExpectedToReceive1 =
+      _registerName1("countOfBytesExpectedToReceive");
+  late final _sel_taskDescription1 = _registerName1("taskDescription");
+  late final _sel_setTaskDescription_1 = _registerName1("setTaskDescription:");
+  late final _sel_state1 = _registerName1("state");
+  int _objc_msgSend_764(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_764(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_764Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_764 = __objc_msgSend_764Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_suspend1 = _registerName1("suspend");
+  late final _sel_priority1 = _registerName1("priority");
+  late final _sel_setPriority_1 = _registerName1("setPriority:");
+  void _objc_msgSend_765(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_765(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_765Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float)>>('objc_msgSend');
+  late final __objc_msgSend_765 = __objc_msgSend_765Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_prefersIncrementalDelivery1 =
+      _registerName1("prefersIncrementalDelivery");
+  late final _sel_setPrefersIncrementalDelivery_1 =
+      _registerName1("setPrefersIncrementalDelivery:");
+  late final _sel_storeCookies_forTask_1 =
+      _registerName1("storeCookies:forTask:");
+  void _objc_msgSend_766(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookies,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_766(
+      obj,
+      sel,
+      cookies,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_766Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_766 = __objc_msgSend_766Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getCookiesForTask_completionHandler_1 =
+      _registerName1("getCookiesForTask:completionHandler:");
+  void _objc_msgSend_767(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_767(
+      obj,
+      sel,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_767Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_767 = __objc_msgSend_767Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSIndexPath1 = _getClass1("NSIndexPath");
+  late final _sel_indexPathWithIndex_1 = _registerName1("indexPathWithIndex:");
+  late final _sel_indexPathWithIndexes_length_1 =
+      _registerName1("indexPathWithIndexes:length:");
+  instancetype _objc_msgSend_768(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+    int length,
+  ) {
+    return __objc_msgSend_768(
+      obj,
+      sel,
+      indexes,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_768Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_768 = __objc_msgSend_768Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int)>();
+
+  late final _sel_initWithIndexes_length_1 =
+      _registerName1("initWithIndexes:length:");
+  late final _sel_indexPathByAddingIndex_1 =
+      _registerName1("indexPathByAddingIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_769(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_769(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_769Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_769 = __objc_msgSend_769Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_indexPathByRemovingLastIndex1 =
+      _registerName1("indexPathByRemovingLastIndex");
+  ffi.Pointer<ObjCObject> _objc_msgSend_770(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_770(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_770Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_770 = __objc_msgSend_770Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_indexAtPosition_1 = _registerName1("indexAtPosition:");
+  late final _sel_getIndexes_range_1 = _registerName1("getIndexes:range:");
+  void _objc_msgSend_771(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+    NSRange positionRange,
+  ) {
+    return __objc_msgSend_771(
+      obj,
+      sel,
+      indexes,
+      positionRange,
+    );
+  }
+
+  late final __objc_msgSend_771Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_771 = __objc_msgSend_771Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, NSRange)>();
+
+  int _objc_msgSend_772(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherObject,
+  ) {
+    return __objc_msgSend_772(
+      obj,
+      sel,
+      otherObject,
+    );
+  }
+
+  late final __objc_msgSend_772Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_772 = __objc_msgSend_772Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getIndexes_1 = _registerName1("getIndexes:");
+  void _objc_msgSend_773(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+  ) {
+    return __objc_msgSend_773(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_773Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_773 = __objc_msgSend_773Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>)>();
+
+  late final _class_NSInflectionRule1 = _getClass1("NSInflectionRule");
+  late final _sel_automaticRule1 = _registerName1("automaticRule");
+  ffi.Pointer<ObjCObject> _objc_msgSend_774(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_774(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_774Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_774 = __objc_msgSend_774Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_canInflectLanguage_1 = _registerName1("canInflectLanguage:");
+  late final _sel_canInflectPreferredLocalization1 =
+      _registerName1("canInflectPreferredLocalization");
+  late final _class_NSMorphology1 = _getClass1("NSMorphology");
+  late final _sel_grammaticalGender1 = _registerName1("grammaticalGender");
+  int _objc_msgSend_775(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_775(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_775Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_775 = __objc_msgSend_775Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setGrammaticalGender_1 =
+      _registerName1("setGrammaticalGender:");
+  void _objc_msgSend_776(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_776(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_776Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_776 = __objc_msgSend_776Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_partOfSpeech1 = _registerName1("partOfSpeech");
+  int _objc_msgSend_777(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_777(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_777Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_777 = __objc_msgSend_777Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPartOfSpeech_1 = _registerName1("setPartOfSpeech:");
+  void _objc_msgSend_778(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_778(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_778Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_778 = __objc_msgSend_778Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_number1 = _registerName1("number");
+  int _objc_msgSend_779(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_779(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_779Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_779 = __objc_msgSend_779Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setNumber_1 = _registerName1("setNumber:");
+  void _objc_msgSend_780(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_780(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_780Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_780 = __objc_msgSend_780Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSMorphologyCustomPronoun1 =
+      _getClass1("NSMorphologyCustomPronoun");
+  late final _sel_isSupportedForLanguage_1 =
+      _registerName1("isSupportedForLanguage:");
+  late final _sel_requiredKeysForLanguage_1 =
+      _registerName1("requiredKeysForLanguage:");
+  late final _sel_subjectForm1 = _registerName1("subjectForm");
+  late final _sel_setSubjectForm_1 = _registerName1("setSubjectForm:");
+  late final _sel_objectForm1 = _registerName1("objectForm");
+  late final _sel_setObjectForm_1 = _registerName1("setObjectForm:");
+  late final _sel_possessiveForm1 = _registerName1("possessiveForm");
+  late final _sel_setPossessiveForm_1 = _registerName1("setPossessiveForm:");
+  late final _sel_possessiveAdjectiveForm1 =
+      _registerName1("possessiveAdjectiveForm");
+  late final _sel_setPossessiveAdjectiveForm_1 =
+      _registerName1("setPossessiveAdjectiveForm:");
+  late final _sel_reflexiveForm1 = _registerName1("reflexiveForm");
+  late final _sel_setReflexiveForm_1 = _registerName1("setReflexiveForm:");
+  late final _sel_customPronounForLanguage_1 =
+      _registerName1("customPronounForLanguage:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_781(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> language,
+  ) {
+    return __objc_msgSend_781(
+      obj,
+      sel,
+      language,
+    );
+  }
+
+  late final __objc_msgSend_781Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_781 = __objc_msgSend_781Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setCustomPronoun_forLanguage_error_1 =
+      _registerName1("setCustomPronoun:forLanguage:error:");
+  bool _objc_msgSend_782(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> features,
+    ffi.Pointer<ObjCObject> language,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_782(
+      obj,
+      sel,
+      features,
+      language,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_782Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_782 = __objc_msgSend_782Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isUnspecified1 = _registerName1("isUnspecified");
+  late final _sel_userMorphology1 = _registerName1("userMorphology");
+  ffi.Pointer<ObjCObject> _objc_msgSend_783(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_783(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_783Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_783 = __objc_msgSend_783Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSOperationQueue1 = _getClass1("NSOperationQueue");
+  late final _class_NSOperation1 = _getClass1("NSOperation");
+  late final _sel_isConcurrent1 = _registerName1("isConcurrent");
+  late final _sel_isAsynchronous1 = _registerName1("isAsynchronous");
+  late final _sel_isReady1 = _registerName1("isReady");
+  late final _sel_addDependency_1 = _registerName1("addDependency:");
+  void _objc_msgSend_784(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> op,
+  ) {
+    return __objc_msgSend_784(
+      obj,
+      sel,
+      op,
+    );
+  }
+
+  late final __objc_msgSend_784Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_784 = __objc_msgSend_784Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeDependency_1 = _registerName1("removeDependency:");
+  late final _sel_dependencies1 = _registerName1("dependencies");
+  late final _sel_queuePriority1 = _registerName1("queuePriority");
+  int _objc_msgSend_785(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_785(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_785Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_785 = __objc_msgSend_785Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setQueuePriority_1 = _registerName1("setQueuePriority:");
+  void _objc_msgSend_786(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_786(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_786Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_786 = __objc_msgSend_786Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_completionBlock1 = _registerName1("completionBlock");
+  late final _sel_setCompletionBlock_1 = _registerName1("setCompletionBlock:");
+  late final _sel_waitUntilFinished1 = _registerName1("waitUntilFinished");
+  late final _sel_addOperation_1 = _registerName1("addOperation:");
+  late final _sel_addOperations_waitUntilFinished_1 =
+      _registerName1("addOperations:waitUntilFinished:");
+  void _objc_msgSend_787(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ops,
+    bool wait,
+  ) {
+    return __objc_msgSend_787(
+      obj,
+      sel,
+      ops,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_787Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_787 = __objc_msgSend_787Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_addOperationWithBlock_1 =
+      _registerName1("addOperationWithBlock:");
+  late final _sel_addBarrierBlock_1 = _registerName1("addBarrierBlock:");
+  late final _sel_maxConcurrentOperationCount1 =
+      _registerName1("maxConcurrentOperationCount");
+  late final _sel_setMaxConcurrentOperationCount_1 =
+      _registerName1("setMaxConcurrentOperationCount:");
+  late final _sel_isSuspended1 = _registerName1("isSuspended");
+  late final _sel_setSuspended_1 = _registerName1("setSuspended:");
+  late final _sel_underlyingQueue1 = _registerName1("underlyingQueue");
+  dispatch_queue_t _objc_msgSend_788(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_788(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_788Ptr = _lookup<
+      ffi.NativeFunction<
+          dispatch_queue_t Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_788 = __objc_msgSend_788Ptr.asFunction<
+      dispatch_queue_t Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setUnderlyingQueue_1 = _registerName1("setUnderlyingQueue:");
+  void _objc_msgSend_789(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    dispatch_queue_t value,
+  ) {
+    return __objc_msgSend_789(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_789Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              dispatch_queue_t)>>('objc_msgSend');
+  late final __objc_msgSend_789 = __objc_msgSend_789Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, dispatch_queue_t)>();
+
+  late final _sel_cancelAllOperations1 = _registerName1("cancelAllOperations");
+  late final _sel_waitUntilAllOperationsAreFinished1 =
+      _registerName1("waitUntilAllOperationsAreFinished");
+  late final _sel_currentQueue1 = _registerName1("currentQueue");
+  ffi.Pointer<ObjCObject> _objc_msgSend_790(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_790(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_790Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_790 = __objc_msgSend_790Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mainQueue1 = _registerName1("mainQueue");
+  late final _sel_operations1 = _registerName1("operations");
+  late final _sel_operationCount1 = _registerName1("operationCount");
+  late final _class_NSPointerArray1 = _getClass1("NSPointerArray");
+  late final _sel_initWithOptions_1 = _registerName1("initWithOptions:");
+  instancetype _objc_msgSend_791(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_791(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_791Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_791 = __objc_msgSend_791Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSPointerFunctions1 = _getClass1("NSPointerFunctions");
+  late final _sel_pointerFunctionsWithOptions_1 =
+      _registerName1("pointerFunctionsWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_792(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_792(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_792Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_792 = __objc_msgSend_792Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_hashFunction1 = _registerName1("hashFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              NSUInteger Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_793(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_793(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_793Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_793 = __objc_msgSend_793Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setHashFunction_1 = _registerName1("setHashFunction:");
+  void _objc_msgSend_794(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSUInteger Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_794(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_794Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_794 = __objc_msgSend_794Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_isEqualFunction1 = _registerName1("isEqualFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_795(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_795(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_795Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Bool Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_795 = __objc_msgSend_795Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setIsEqualFunction_1 = _registerName1("setIsEqualFunction:");
+  void _objc_msgSend_796(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_796(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_796Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Bool Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_796 = __objc_msgSend_796Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_sizeFunction1 = _registerName1("sizeFunction");
+  ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+      _objc_msgSend_797(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_797(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_797Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_797 = __objc_msgSend_797Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSizeFunction_1 = _registerName1("setSizeFunction:");
+  void _objc_msgSend_798(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+        value,
+  ) {
+    return __objc_msgSend_798(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_798Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(
+                          ffi.Pointer<ffi.Void>)>>)>>('objc_msgSend');
+  late final __objc_msgSend_798 = __objc_msgSend_798Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>();
+
+  late final _sel_descriptionFunction1 = _registerName1("descriptionFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+      _objc_msgSend_799(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_799(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_799Ptr =
+      _lookup<
+              ffi.NativeFunction<
+                  ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Pointer<ObjCObject> Function(
+                                  ffi.Pointer<ffi.Void>)>>
+                      Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+          'objc_msgSend');
+  late final __objc_msgSend_799 = __objc_msgSend_799Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDescriptionFunction_1 =
+      _registerName1("setDescriptionFunction:");
+  void _objc_msgSend_800(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+        value,
+  ) {
+    return __objc_msgSend_800(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_800Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      ffi.Pointer<ObjCObject> Function(
+                          ffi.Pointer<ffi.Void>)>>)>>('objc_msgSend');
+  late final __objc_msgSend_800 = __objc_msgSend_800Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>)>();
+
+  late final _sel_relinquishFunction1 = _registerName1("relinquishFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_801(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_801(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_801Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Void Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_801 = __objc_msgSend_801Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setRelinquishFunction_1 =
+      _registerName1("setRelinquishFunction:");
+  void _objc_msgSend_802(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_802(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_802Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Void Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_802 = __objc_msgSend_802Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_acquireFunction1 = _registerName1("acquireFunction");
+  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+              ffi.Bool)>> _objc_msgSend_803(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_803(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_803Ptr =
+      _lookup<
+              ffi.NativeFunction<
+                  ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Pointer<ffi.Void> Function(
+                                  ffi.Pointer<ffi.Void>,
+                                  ffi.Pointer<
+                                      ffi.NativeFunction<
+                                          NSUInteger Function(
+                                              ffi.Pointer<ffi.Void>)>>,
+                                  ffi.Bool)>>
+                      Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+          'objc_msgSend');
+  late final __objc_msgSend_803 = __objc_msgSend_803Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAcquireFunction_1 = _registerName1("setAcquireFunction:");
+  void _objc_msgSend_804(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Pointer<ffi.Void> Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                    ffi.Bool)>>
+        value,
+  ) {
+    return __objc_msgSend_804(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_804Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      ffi.Pointer<ffi.Void> Function(
+                          ffi.Pointer<ffi.Void>,
+                          ffi.Pointer<
+                              ffi.NativeFunction<
+                                  NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                          ffi.Bool)>>)>>('objc_msgSend');
+  late final __objc_msgSend_804 = __objc_msgSend_804Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>)>();
+
+  late final _sel_usesStrongWriteBarrier1 =
+      _registerName1("usesStrongWriteBarrier");
+  late final _sel_setUsesStrongWriteBarrier_1 =
+      _registerName1("setUsesStrongWriteBarrier:");
+  late final _sel_usesWeakReadAndWriteBarriers1 =
+      _registerName1("usesWeakReadAndWriteBarriers");
+  late final _sel_setUsesWeakReadAndWriteBarriers_1 =
+      _registerName1("setUsesWeakReadAndWriteBarriers:");
+  late final _sel_initWithPointerFunctions_1 =
+      _registerName1("initWithPointerFunctions:");
+  instancetype _objc_msgSend_805(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> functions,
+  ) {
+    return __objc_msgSend_805(
+      obj,
+      sel,
+      functions,
+    );
+  }
+
+  late final __objc_msgSend_805Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_805 = __objc_msgSend_805Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pointerArrayWithOptions_1 =
+      _registerName1("pointerArrayWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_806(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_806(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_806Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_806 = __objc_msgSend_806Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_pointerArrayWithPointerFunctions_1 =
+      _registerName1("pointerArrayWithPointerFunctions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_807(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> functions,
+  ) {
+    return __objc_msgSend_807(
+      obj,
+      sel,
+      functions,
+    );
+  }
+
+  late final __objc_msgSend_807Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_807 = __objc_msgSend_807Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pointerFunctions1 = _registerName1("pointerFunctions");
+  ffi.Pointer<ObjCObject> _objc_msgSend_808(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_808(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_808Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_808 = __objc_msgSend_808Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_pointerAtIndex_1 = _registerName1("pointerAtIndex:");
+  ffi.Pointer<ffi.Void> _objc_msgSend_809(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_809(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_809Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_809 = __objc_msgSend_809Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_addPointer_1 = _registerName1("addPointer:");
+  late final _sel_removePointerAtIndex_1 =
+      _registerName1("removePointerAtIndex:");
+  late final _sel_insertPointer_atIndex_1 =
+      _registerName1("insertPointer:atIndex:");
+  late final _sel_replacePointerAtIndex_withPointer_1 =
+      _registerName1("replacePointerAtIndex:withPointer:");
+  void _objc_msgSend_810(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ffi.Void> item,
+  ) {
+    return __objc_msgSend_810(
+      obj,
+      sel,
+      index,
+      item,
+    );
+  }
+
+  late final __objc_msgSend_810Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_810 = __objc_msgSend_810Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_compact1 = _registerName1("compact");
+  late final _sel_setCount_1 = _registerName1("setCount:");
+  late final _sel_pointerArrayWithStrongObjects1 =
+      _registerName1("pointerArrayWithStrongObjects");
+  late final _sel_pointerArrayWithWeakObjects1 =
+      _registerName1("pointerArrayWithWeakObjects");
+  late final _sel_strongObjectsPointerArray1 =
+      _registerName1("strongObjectsPointerArray");
+  ffi.Pointer<ObjCObject> _objc_msgSend_811(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_811(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_811Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_811 = __objc_msgSend_811Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_weakObjectsPointerArray1 =
+      _registerName1("weakObjectsPointerArray");
+  late final _class_NSProcessInfo1 = _getClass1("NSProcessInfo");
+  late final _sel_processInfo1 = _registerName1("processInfo");
+  ffi.Pointer<ObjCObject> _objc_msgSend_812(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_812(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_812Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_812 = __objc_msgSend_812Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_environment1 = _registerName1("environment");
+  late final _sel_hostName1 = _registerName1("hostName");
+  late final _sel_processName1 = _registerName1("processName");
+  late final _sel_setProcessName_1 = _registerName1("setProcessName:");
+  late final _sel_processIdentifier1 = _registerName1("processIdentifier");
+  late final _sel_globallyUniqueString1 =
+      _registerName1("globallyUniqueString");
+  late final _sel_operatingSystem1 = _registerName1("operatingSystem");
+  late final _sel_operatingSystemName1 = _registerName1("operatingSystemName");
+  late final _sel_operatingSystemVersionString1 =
+      _registerName1("operatingSystemVersionString");
+  late final _sel_operatingSystemVersion1 =
+      _registerName1("operatingSystemVersion");
+  NSOperatingSystemVersion _objc_msgSend_813(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_813(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_813Ptr = _lookup<
+      ffi.NativeFunction<
+          NSOperatingSystemVersion Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_813 = __objc_msgSend_813Ptr.asFunction<
+      NSOperatingSystemVersion Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_processorCount1 = _registerName1("processorCount");
+  late final _sel_activeProcessorCount1 =
+      _registerName1("activeProcessorCount");
+  late final _sel_physicalMemory1 = _registerName1("physicalMemory");
+  late final _sel_isOperatingSystemAtLeastVersion_1 =
+      _registerName1("isOperatingSystemAtLeastVersion:");
+  bool _objc_msgSend_814(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSOperatingSystemVersion version,
+  ) {
+    return __objc_msgSend_814(
+      obj,
+      sel,
+      version,
+    );
+  }
+
+  late final __objc_msgSend_814Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSOperatingSystemVersion)>>('objc_msgSend');
+  late final __objc_msgSend_814 = __objc_msgSend_814Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSOperatingSystemVersion)>();
+
+  late final _sel_systemUptime1 = _registerName1("systemUptime");
+  late final _sel_disableSuddenTermination1 =
+      _registerName1("disableSuddenTermination");
+  late final _sel_enableSuddenTermination1 =
+      _registerName1("enableSuddenTermination");
+  late final _sel_disableAutomaticTermination_1 =
+      _registerName1("disableAutomaticTermination:");
+  late final _sel_enableAutomaticTermination_1 =
+      _registerName1("enableAutomaticTermination:");
+  late final _sel_automaticTerminationSupportEnabled1 =
+      _registerName1("automaticTerminationSupportEnabled");
+  late final _sel_setAutomaticTerminationSupportEnabled_1 =
+      _registerName1("setAutomaticTerminationSupportEnabled:");
+  late final _sel_beginActivityWithOptions_reason_1 =
+      _registerName1("beginActivityWithOptions:reason:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_815(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_815(
+      obj,
+      sel,
+      options,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_815Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_815 = __objc_msgSend_815Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_endActivity_1 = _registerName1("endActivity:");
+  late final _sel_performActivityWithOptions_reason_usingBlock_1 =
+      _registerName1("performActivityWithOptions:reason:usingBlock:");
+  void _objc_msgSend_816(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_816(
+      obj,
+      sel,
+      options,
+      reason,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_816Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_816 = __objc_msgSend_816Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_performExpiringActivityWithReason_usingBlock_1 =
+      _registerName1("performExpiringActivityWithReason:usingBlock:");
+  void _objc_msgSend_817(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_817(
+      obj,
+      sel,
+      reason,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_817Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_817 = __objc_msgSend_817Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_userName1 = _registerName1("userName");
+  late final _sel_fullUserName1 = _registerName1("fullUserName");
+  late final _sel_thermalState1 = _registerName1("thermalState");
+  int _objc_msgSend_818(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_818(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_818Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_818 = __objc_msgSend_818Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_isLowPowerModeEnabled1 =
+      _registerName1("isLowPowerModeEnabled");
+  late final _sel_isMacCatalystApp1 = _registerName1("isMacCatalystApp");
+  late final _sel_isiOSAppOnMac1 = _registerName1("isiOSAppOnMac");
+  late final _class_NSTextCheckingResult1 = _getClass1("NSTextCheckingResult");
+  late final _sel_resultType1 = _registerName1("resultType");
+  int _objc_msgSend_819(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_819(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_819Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_819 = __objc_msgSend_819Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_range1 = _registerName1("range");
+  late final _sel_orthography1 = _registerName1("orthography");
+  ffi.Pointer<ObjCObject> _objc_msgSend_820(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_820(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_820Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_820 = __objc_msgSend_820Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_grammarDetails1 = _registerName1("grammarDetails");
+  late final _sel_duration1 = _registerName1("duration");
+  late final _sel_components1 = _registerName1("components");
+  late final _sel_replacementString1 = _registerName1("replacementString");
+  late final _sel_alternativeStrings1 = _registerName1("alternativeStrings");
+  late final _class_NSRegularExpression1 = _getClass1("NSRegularExpression");
+  late final _sel_regularExpressionWithPattern_options_error_1 =
+      _registerName1("regularExpressionWithPattern:options:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_821(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> pattern,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_821(
+      obj,
+      sel,
+      pattern,
+      options,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_821Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_821 = __objc_msgSend_821Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithPattern_options_error_1 =
+      _registerName1("initWithPattern:options:error:");
+  instancetype _objc_msgSend_822(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> pattern,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_822(
+      obj,
+      sel,
+      pattern,
+      options,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_822Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_822 = __objc_msgSend_822Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_pattern1 = _registerName1("pattern");
+  late final _sel_options1 = _registerName1("options");
+  int _objc_msgSend_823(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_823(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_823Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_823 = __objc_msgSend_823Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_numberOfCaptureGroups1 =
+      _registerName1("numberOfCaptureGroups");
+  late final _sel_escapedPatternForString_1 =
+      _registerName1("escapedPatternForString:");
+  late final _sel_enumerateMatchesInString_options_range_usingBlock_1 =
+      _registerName1("enumerateMatchesInString:options:range:usingBlock:");
+  void _objc_msgSend_824(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_824(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_824Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_824 = __objc_msgSend_824Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_matchesInString_options_range_1 =
+      _registerName1("matchesInString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_825(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_825(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_825Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_825 = __objc_msgSend_825Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_numberOfMatchesInString_options_range_1 =
+      _registerName1("numberOfMatchesInString:options:range:");
+  int _objc_msgSend_826(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_826(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_826Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_826 = __objc_msgSend_826Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_firstMatchInString_options_range_1 =
+      _registerName1("firstMatchInString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_827(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_827(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_827Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_827 = __objc_msgSend_827Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfFirstMatchInString_options_range_1 =
+      _registerName1("rangeOfFirstMatchInString:options:range:");
+  NSRange _objc_msgSend_828(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_828(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_828Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_828 = __objc_msgSend_828Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_stringByReplacingMatchesInString_options_range_withTemplate_1 =
+      _registerName1(
+          "stringByReplacingMatchesInString:options:range:withTemplate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_829(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_829(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_829Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_829 = __objc_msgSend_829Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceMatchesInString_options_range_withTemplate_1 =
+      _registerName1("replaceMatchesInString:options:range:withTemplate:");
+  int _objc_msgSend_830(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_830(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_830Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_830 = __objc_msgSend_830Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replacementStringForResult_inString_offset_template_1 =
+      _registerName1("replacementStringForResult:inString:offset:template:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_831(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> result,
+    ffi.Pointer<ObjCObject> string,
+    int offset,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_831(
+      obj,
+      sel,
+      result,
+      string,
+      offset,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_831Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_831 = __objc_msgSend_831Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_escapedTemplateForString_1 =
+      _registerName1("escapedTemplateForString:");
+  late final _sel_regularExpression1 = _registerName1("regularExpression");
+  ffi.Pointer<ObjCObject> _objc_msgSend_832(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_832(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_832Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_832 = __objc_msgSend_832Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_phoneNumber1 = _registerName1("phoneNumber");
+  late final _sel_numberOfRanges1 = _registerName1("numberOfRanges");
+  late final _sel_rangeAtIndex_1 = _registerName1("rangeAtIndex:");
+  late final _sel_rangeWithName_1 = _registerName1("rangeWithName:");
+  late final _sel_resultByAdjustingRangesWithOffset_1 =
+      _registerName1("resultByAdjustingRangesWithOffset:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_833(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+  ) {
+    return __objc_msgSend_833(
+      obj,
+      sel,
+      offset,
+    );
+  }
+
+  late final __objc_msgSend_833Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_833 = __objc_msgSend_833Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_addressComponents1 = _registerName1("addressComponents");
+  late final _sel_orthographyCheckingResultWithRange_orthography_1 =
+      _registerName1("orthographyCheckingResultWithRange:orthography:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_834(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> orthography,
+  ) {
+    return __objc_msgSend_834(
+      obj,
+      sel,
+      range,
+      orthography,
+    );
+  }
+
+  late final __objc_msgSend_834Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_834 = __objc_msgSend_834Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_spellCheckingResultWithRange_1 =
+      _registerName1("spellCheckingResultWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_835(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_835(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_835Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_835 = __objc_msgSend_835Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_grammarCheckingResultWithRange_details_1 =
+      _registerName1("grammarCheckingResultWithRange:details:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_836(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> details,
+  ) {
+    return __objc_msgSend_836(
+      obj,
+      sel,
+      range,
+      details,
+    );
+  }
+
+  late final __objc_msgSend_836Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_836 = __objc_msgSend_836Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateCheckingResultWithRange_date_1 =
+      _registerName1("dateCheckingResultWithRange:date:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_837(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_837(
+      obj,
+      sel,
+      range,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_837Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_837 = __objc_msgSend_837Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateCheckingResultWithRange_date_timeZone_duration_1 =
+      _registerName1("dateCheckingResultWithRange:date:timeZone:duration:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_838(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> timeZone,
+    double duration,
+  ) {
+    return __objc_msgSend_838(
+      obj,
+      sel,
+      range,
+      date,
+      timeZone,
+      duration,
+    );
+  }
+
+  late final __objc_msgSend_838Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_838 = __objc_msgSend_838Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          double)>();
+
+  late final _sel_addressCheckingResultWithRange_components_1 =
+      _registerName1("addressCheckingResultWithRange:components:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_839(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_839(
+      obj,
+      sel,
+      range,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_839Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_839 = __objc_msgSend_839Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_linkCheckingResultWithRange_URL_1 =
+      _registerName1("linkCheckingResultWithRange:URL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_840(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_840(
+      obj,
+      sel,
+      range,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_840Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_840 = __objc_msgSend_840Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_quoteCheckingResultWithRange_replacementString_1 =
+      _registerName1("quoteCheckingResultWithRange:replacementString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_841(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacementString,
+  ) {
+    return __objc_msgSend_841(
+      obj,
+      sel,
+      range,
+      replacementString,
+    );
+  }
+
+  late final __objc_msgSend_841Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_841 = __objc_msgSend_841Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dashCheckingResultWithRange_replacementString_1 =
+      _registerName1("dashCheckingResultWithRange:replacementString:");
+  late final _sel_replacementCheckingResultWithRange_replacementString_1 =
+      _registerName1("replacementCheckingResultWithRange:replacementString:");
+  late final _sel_correctionCheckingResultWithRange_replacementString_1 =
+      _registerName1("correctionCheckingResultWithRange:replacementString:");
+  late final _sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_1 =
+      _registerName1(
+          "correctionCheckingResultWithRange:replacementString:alternativeStrings:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_842(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacementString,
+    ffi.Pointer<ObjCObject> alternativeStrings,
+  ) {
+    return __objc_msgSend_842(
+      obj,
+      sel,
+      range,
+      replacementString,
+      alternativeStrings,
+    );
+  }
+
+  late final __objc_msgSend_842Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_842 = __objc_msgSend_842Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_regularExpressionCheckingResultWithRanges_count_regularExpression_1 =
+      _registerName1(
+          "regularExpressionCheckingResultWithRanges:count:regularExpression:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_843(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRangePointer ranges,
+    int count,
+    ffi.Pointer<ObjCObject> regularExpression,
+  ) {
+    return __objc_msgSend_843(
+      obj,
+      sel,
+      ranges,
+      count,
+      regularExpression,
+    );
+  }
+
+  late final __objc_msgSend_843Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRangePointer,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_843 = __objc_msgSend_843Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRangePointer,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_phoneNumberCheckingResultWithRange_phoneNumber_1 =
+      _registerName1("phoneNumberCheckingResultWithRange:phoneNumber:");
+  late final _sel_transitInformationCheckingResultWithRange_components_1 =
+      _registerName1("transitInformationCheckingResultWithRange:components:");
+  late final _class_NSURLCache1 = _getClass1("NSURLCache");
+  late final _sel_sharedURLCache1 = _registerName1("sharedURLCache");
+  ffi.Pointer<ObjCObject> _objc_msgSend_844(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_844(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_844Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_844 = __objc_msgSend_844Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSharedURLCache_1 = _registerName1("setSharedURLCache:");
+  void _objc_msgSend_845(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_845(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_845Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_845 = __objc_msgSend_845Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithMemoryCapacity_diskCapacity_diskPath_1 =
+      _registerName1("initWithMemoryCapacity:diskCapacity:diskPath:");
+  instancetype _objc_msgSend_846(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int memoryCapacity,
+    int diskCapacity,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_846(
+      obj,
+      sel,
+      memoryCapacity,
+      diskCapacity,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_846Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_846 = __objc_msgSend_846Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithMemoryCapacity_diskCapacity_directoryURL_1 =
+      _registerName1("initWithMemoryCapacity:diskCapacity:directoryURL:");
+  instancetype _objc_msgSend_847(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int memoryCapacity,
+    int diskCapacity,
+    ffi.Pointer<ObjCObject> directoryURL,
+  ) {
+    return __objc_msgSend_847(
+      obj,
+      sel,
+      memoryCapacity,
+      diskCapacity,
+      directoryURL,
+    );
+  }
+
+  late final __objc_msgSend_847Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_847 = __objc_msgSend_847Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSCachedURLResponse1 = _getClass1("NSCachedURLResponse");
+  late final _sel_initWithResponse_data_1 =
+      _registerName1("initWithResponse:data:");
+  instancetype _objc_msgSend_848(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> response,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_848(
+      obj,
+      sel,
+      response,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_848Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_848 = __objc_msgSend_848Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithResponse_data_userInfo_storagePolicy_1 =
+      _registerName1("initWithResponse:data:userInfo:storagePolicy:");
+  instancetype _objc_msgSend_849(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> response,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> userInfo,
+    int storagePolicy,
+  ) {
+    return __objc_msgSend_849(
+      obj,
+      sel,
+      response,
+      data,
+      userInfo,
+      storagePolicy,
+    );
+  }
+
+  late final __objc_msgSend_849Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_849 = __objc_msgSend_849Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_storagePolicy1 = _registerName1("storagePolicy");
+  int _objc_msgSend_850(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_850(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_850Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_850 = __objc_msgSend_850Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_cachedResponseForRequest_1 =
+      _registerName1("cachedResponseForRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_851(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_851(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_851Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_851 = __objc_msgSend_851Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_storeCachedResponse_forRequest_1 =
+      _registerName1("storeCachedResponse:forRequest:");
+  void _objc_msgSend_852(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_852(
+      obj,
+      sel,
+      cachedResponse,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_852Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_852 = __objc_msgSend_852Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCachedResponseForRequest_1 =
+      _registerName1("removeCachedResponseForRequest:");
+  void _objc_msgSend_853(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_853(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_853Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_853 = __objc_msgSend_853Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeAllCachedResponses1 =
+      _registerName1("removeAllCachedResponses");
+  late final _sel_removeCachedResponsesSinceDate_1 =
+      _registerName1("removeCachedResponsesSinceDate:");
+  late final _sel_memoryCapacity1 = _registerName1("memoryCapacity");
+  late final _sel_setMemoryCapacity_1 = _registerName1("setMemoryCapacity:");
+  late final _sel_diskCapacity1 = _registerName1("diskCapacity");
+  late final _sel_setDiskCapacity_1 = _registerName1("setDiskCapacity:");
+  late final _sel_currentMemoryUsage1 = _registerName1("currentMemoryUsage");
+  late final _sel_currentDiskUsage1 = _registerName1("currentDiskUsage");
+  late final _class_NSURLSessionDataTask1 = _getClass1("NSURLSessionDataTask");
+  late final _sel_storeCachedResponse_forDataTask_1 =
+      _registerName1("storeCachedResponse:forDataTask:");
+  void _objc_msgSend_854(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> dataTask,
+  ) {
+    return __objc_msgSend_854(
+      obj,
+      sel,
+      cachedResponse,
+      dataTask,
+    );
+  }
+
+  late final __objc_msgSend_854Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_854 = __objc_msgSend_854Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getCachedResponseForDataTask_completionHandler_1 =
+      _registerName1("getCachedResponseForDataTask:completionHandler:");
+  void _objc_msgSend_855(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataTask,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_855(
+      obj,
+      sel,
+      dataTask,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_855Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_855 = __objc_msgSend_855Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_removeCachedResponseForDataTask_1 =
+      _registerName1("removeCachedResponseForDataTask:");
+  void _objc_msgSend_856(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataTask,
+  ) {
+    return __objc_msgSend_856(
+      obj,
+      sel,
+      dataTask,
+    );
+  }
+
+  late final __objc_msgSend_856Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_856 = __objc_msgSend_856Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLConnection1 = _getClass1("NSURLConnection");
+  late final _sel_initWithRequest_delegate_startImmediately_1 =
+      _registerName1("initWithRequest:delegate:startImmediately:");
+  instancetype _objc_msgSend_857(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+    bool startImmediately,
+  ) {
+    return __objc_msgSend_857(
+      obj,
+      sel,
+      request,
+      delegate,
+      startImmediately,
+    );
+  }
+
+  late final __objc_msgSend_857Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_857 = __objc_msgSend_857Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithRequest_delegate_1 =
+      _registerName1("initWithRequest:delegate:");
+  instancetype _objc_msgSend_858(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+  ) {
+    return __objc_msgSend_858(
+      obj,
+      sel,
+      request,
+      delegate,
+    );
+  }
+
+  late final __objc_msgSend_858Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_858 = __objc_msgSend_858Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionWithRequest_delegate_1 =
+      _registerName1("connectionWithRequest:delegate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_859(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+  ) {
+    return __objc_msgSend_859(
+      obj,
+      sel,
+      request,
+      delegate,
+    );
+  }
+
+  late final __objc_msgSend_859Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_859 = __objc_msgSend_859Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_unscheduleFromRunLoop_forMode_1 =
+      _registerName1("unscheduleFromRunLoop:forMode:");
+  late final _sel_setDelegateQueue_1 = _registerName1("setDelegateQueue:");
+  void _objc_msgSend_860(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> queue,
+  ) {
+    return __objc_msgSend_860(
+      obj,
+      sel,
+      queue,
+    );
+  }
+
+  late final __objc_msgSend_860Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_860 = __objc_msgSend_860Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_canHandleRequest_1 = _registerName1("canHandleRequest:");
+  bool _objc_msgSend_861(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_861(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_861Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_861 = __objc_msgSend_861Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sendSynchronousRequest_returningResponse_error_1 =
+      _registerName1("sendSynchronousRequest:returningResponse:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_862(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> response,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_862(
+      obj,
+      sel,
+      request,
+      response,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_862Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_862 = __objc_msgSend_862Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_sendAsynchronousRequest_queue_completionHandler_1 =
+      _registerName1("sendAsynchronousRequest:queue:completionHandler:");
+  void _objc_msgSend_863(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> queue,
+    ffi.Pointer<_ObjCBlock> handler,
+  ) {
+    return __objc_msgSend_863(
+      obj,
+      sel,
+      request,
+      queue,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_863Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_863 = __objc_msgSend_863Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSURLCredential1 = _getClass1("NSURLCredential");
+  late final _sel_persistence1 = _registerName1("persistence");
+  int _objc_msgSend_864(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_864(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_864Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_864 = __objc_msgSend_864Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithUser_password_persistence_1 =
+      _registerName1("initWithUser:password:persistence:");
+  instancetype _objc_msgSend_865(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> user,
+    ffi.Pointer<ObjCObject> password,
+    int persistence,
+  ) {
+    return __objc_msgSend_865(
+      obj,
+      sel,
+      user,
+      password,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_865Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_865 = __objc_msgSend_865Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_credentialWithUser_password_persistence_1 =
+      _registerName1("credentialWithUser:password:persistence:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_866(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> user,
+    ffi.Pointer<ObjCObject> password,
+    int persistence,
+  ) {
+    return __objc_msgSend_866(
+      obj,
+      sel,
+      user,
+      password,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_866Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_866 = __objc_msgSend_866Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_hasPassword1 = _registerName1("hasPassword");
+  late final _sel_initWithIdentity_certificates_persistence_1 =
+      _registerName1("initWithIdentity:certificates:persistence:");
+  instancetype _objc_msgSend_867(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecIdentityRef identity,
+    ffi.Pointer<ObjCObject> certArray,
+    int persistence,
+  ) {
+    return __objc_msgSend_867(
+      obj,
+      sel,
+      identity,
+      certArray,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_867Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              SecIdentityRef,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_867 = __objc_msgSend_867Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          SecIdentityRef, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_credentialWithIdentity_certificates_persistence_1 =
+      _registerName1("credentialWithIdentity:certificates:persistence:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_868(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecIdentityRef identity,
+    ffi.Pointer<ObjCObject> certArray,
+    int persistence,
+  ) {
+    return __objc_msgSend_868(
+      obj,
+      sel,
+      identity,
+      certArray,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_868Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              SecIdentityRef,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_868 = __objc_msgSend_868Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          SecIdentityRef,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_identity1 = _registerName1("identity");
+  SecIdentityRef _objc_msgSend_869(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_869(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_869Ptr = _lookup<
+      ffi.NativeFunction<
+          SecIdentityRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_869 = __objc_msgSend_869Ptr.asFunction<
+      SecIdentityRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_certificates1 = _registerName1("certificates");
+  late final _sel_initWithTrust_1 = _registerName1("initWithTrust:");
+  instancetype _objc_msgSend_870(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecTrustRef trust,
+  ) {
+    return __objc_msgSend_870(
+      obj,
+      sel,
+      trust,
+    );
+  }
+
+  late final __objc_msgSend_870Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              SecTrustRef)>>('objc_msgSend');
+  late final __objc_msgSend_870 = __objc_msgSend_870Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, SecTrustRef)>();
+
+  late final _sel_credentialForTrust_1 = _registerName1("credentialForTrust:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_871(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecTrustRef trust,
+  ) {
+    return __objc_msgSend_871(
+      obj,
+      sel,
+      trust,
+    );
+  }
+
+  late final __objc_msgSend_871Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, SecTrustRef)>>('objc_msgSend');
+  late final __objc_msgSend_871 = __objc_msgSend_871Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, SecTrustRef)>();
+
+  late final _class_NSURLProtectionSpace1 = _getClass1("NSURLProtectionSpace");
+  late final _sel_initWithHost_port_protocol_realm_authenticationMethod_1 =
+      _registerName1("initWithHost:port:protocol:realm:authenticationMethod:");
+  instancetype _objc_msgSend_872(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> host,
+    int port,
+    ffi.Pointer<ObjCObject> protocol,
+    ffi.Pointer<ObjCObject> realm,
+    ffi.Pointer<ObjCObject> authenticationMethod,
+  ) {
+    return __objc_msgSend_872(
+      obj,
+      sel,
+      host,
+      port,
+      protocol,
+      realm,
+      authenticationMethod,
+    );
+  }
+
+  late final __objc_msgSend_872Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_872 = __objc_msgSend_872Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithProxyHost_port_type_realm_authenticationMethod_1 =
+      _registerName1("initWithProxyHost:port:type:realm:authenticationMethod:");
+  late final _sel_realm1 = _registerName1("realm");
+  late final _sel_receivesCredentialSecurely1 =
+      _registerName1("receivesCredentialSecurely");
+  late final _sel_isProxy1 = _registerName1("isProxy");
+  late final _sel_proxyType1 = _registerName1("proxyType");
+  late final _sel_protocol1 = _registerName1("protocol");
+  late final _sel_authenticationMethod1 =
+      _registerName1("authenticationMethod");
+  late final _sel_distinguishedNames1 = _registerName1("distinguishedNames");
+  late final _sel_serverTrust1 = _registerName1("serverTrust");
+  SecTrustRef _objc_msgSend_873(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_873(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_873Ptr = _lookup<
+      ffi.NativeFunction<
+          SecTrustRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_873 = __objc_msgSend_873Ptr.asFunction<
+      SecTrustRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSURLCredentialStorage1 =
+      _getClass1("NSURLCredentialStorage");
+  late final _sel_sharedCredentialStorage1 =
+      _registerName1("sharedCredentialStorage");
+  ffi.Pointer<ObjCObject> _objc_msgSend_874(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_874(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_874Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_874 = __objc_msgSend_874Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_credentialsForProtectionSpace_1 =
+      _registerName1("credentialsForProtectionSpace:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_875(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_875(
+      obj,
+      sel,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_875Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_875 = __objc_msgSend_875Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allCredentials1 = _registerName1("allCredentials");
+  late final _sel_setCredential_forProtectionSpace_1 =
+      _registerName1("setCredential:forProtectionSpace:");
+  void _objc_msgSend_876(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_876(
+      obj,
+      sel,
+      credential,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_876Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_876 = __objc_msgSend_876Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCredential_forProtectionSpace_1 =
+      _registerName1("removeCredential:forProtectionSpace:");
+  late final _sel_removeCredential_forProtectionSpace_options_1 =
+      _registerName1("removeCredential:forProtectionSpace:options:");
+  void _objc_msgSend_877(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> space,
+    ffi.Pointer<ObjCObject> options,
+  ) {
+    return __objc_msgSend_877(
+      obj,
+      sel,
+      credential,
+      space,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_877Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_877 = __objc_msgSend_877Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_defaultCredentialForProtectionSpace_1 =
+      _registerName1("defaultCredentialForProtectionSpace:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_878(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_878(
+      obj,
+      sel,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_878Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_878 = __objc_msgSend_878Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setDefaultCredential_forProtectionSpace_1 =
+      _registerName1("setDefaultCredential:forProtectionSpace:");
+  late final _sel_getCredentialsForProtectionSpace_task_completionHandler_1 =
+      _registerName1(
+          "getCredentialsForProtectionSpace:task:completionHandler:");
+  void _objc_msgSend_879(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_879(
+      obj,
+      sel,
+      protectionSpace,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_879Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_879 = __objc_msgSend_879Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_setCredential_forProtectionSpace_task_1 =
+      _registerName1("setCredential:forProtectionSpace:task:");
+  void _objc_msgSend_880(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_880(
+      obj,
+      sel,
+      credential,
+      protectionSpace,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_880Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_880 = __objc_msgSend_880Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCredential_forProtectionSpace_options_task_1 =
+      _registerName1("removeCredential:forProtectionSpace:options:task:");
+  void _objc_msgSend_881(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_881(
+      obj,
+      sel,
+      credential,
+      protectionSpace,
+      options,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_881Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_881 = __objc_msgSend_881Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getDefaultCredentialForProtectionSpace_task_completionHandler_1 =
+      _registerName1(
+          "getDefaultCredentialForProtectionSpace:task:completionHandler:");
+  void _objc_msgSend_882(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_882(
+      obj,
+      sel,
+      space,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_882Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_882 = __objc_msgSend_882Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_setDefaultCredential_forProtectionSpace_task_1 =
+      _registerName1("setDefaultCredential:forProtectionSpace:task:");
+  late final _class_NSURLProtocol1 = _getClass1("NSURLProtocol");
+  late final _sel_initWithRequest_cachedResponse_client_1 =
+      _registerName1("initWithRequest:cachedResponse:client:");
+  instancetype _objc_msgSend_883(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> client,
+  ) {
+    return __objc_msgSend_883(
+      obj,
+      sel,
+      request,
+      cachedResponse,
+      client,
+    );
+  }
+
+  late final __objc_msgSend_883Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_883 = __objc_msgSend_883Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_client1 = _registerName1("client");
+  late final _sel_request1 = _registerName1("request");
+  late final _sel_cachedResponse1 = _registerName1("cachedResponse");
+  ffi.Pointer<ObjCObject> _objc_msgSend_884(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_884(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_884Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_884 = __objc_msgSend_884Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_canInitWithRequest_1 = _registerName1("canInitWithRequest:");
+  late final _sel_canonicalRequestForRequest_1 =
+      _registerName1("canonicalRequestForRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_885(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_885(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_885Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_885 = __objc_msgSend_885Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_requestIsCacheEquivalent_toRequest_1 =
+      _registerName1("requestIsCacheEquivalent:toRequest:");
+  bool _objc_msgSend_886(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> a,
+    ffi.Pointer<ObjCObject> b,
+  ) {
+    return __objc_msgSend_886(
+      obj,
+      sel,
+      a,
+      b,
+    );
+  }
+
+  late final __objc_msgSend_886Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_886 = __objc_msgSend_886Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_startLoading1 = _registerName1("startLoading");
+  late final _sel_stopLoading1 = _registerName1("stopLoading");
+  late final _sel_propertyForKey_inRequest_1 =
+      _registerName1("propertyForKey:inRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_887(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_887(
+      obj,
+      sel,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_887Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_887 = __objc_msgSend_887Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSMutableURLRequest1 = _getClass1("NSMutableURLRequest");
+  late final _sel_setURL_1 = _registerName1("setURL:");
+  void _objc_msgSend_888(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_888(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_888Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_888 = __objc_msgSend_888Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setCachePolicy_1 = _registerName1("setCachePolicy:");
+  void _objc_msgSend_889(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_889(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_889Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_889 = __objc_msgSend_889Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setTimeoutInterval_1 = _registerName1("setTimeoutInterval:");
+  late final _sel_setMainDocumentURL_1 = _registerName1("setMainDocumentURL:");
+  late final _sel_setNetworkServiceType_1 =
+      _registerName1("setNetworkServiceType:");
+  void _objc_msgSend_890(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_890(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_890Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_890 = __objc_msgSend_890Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setAllowsCellularAccess_1 =
+      _registerName1("setAllowsCellularAccess:");
+  late final _sel_setAllowsExpensiveNetworkAccess_1 =
+      _registerName1("setAllowsExpensiveNetworkAccess:");
+  late final _sel_setAllowsConstrainedNetworkAccess_1 =
+      _registerName1("setAllowsConstrainedNetworkAccess:");
+  late final _sel_setAssumesHTTP3Capable_1 =
+      _registerName1("setAssumesHTTP3Capable:");
+  late final _sel_setAttribution_1 = _registerName1("setAttribution:");
+  void _objc_msgSend_891(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_891(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_891Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_891 = __objc_msgSend_891Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setHTTPMethod_1 = _registerName1("setHTTPMethod:");
+  late final _sel_setAllHTTPHeaderFields_1 =
+      _registerName1("setAllHTTPHeaderFields:");
+  late final _sel_setValue_forHTTPHeaderField_1 =
+      _registerName1("setValue:forHTTPHeaderField:");
+  late final _sel_addValue_forHTTPHeaderField_1 =
+      _registerName1("addValue:forHTTPHeaderField:");
+  late final _sel_setHTTPBody_1 = _registerName1("setHTTPBody:");
+  void _objc_msgSend_892(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_892(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_892Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_892 = __objc_msgSend_892Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setHTTPBodyStream_1 = _registerName1("setHTTPBodyStream:");
+  void _objc_msgSend_893(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_893(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_893Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_893 = __objc_msgSend_893Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setHTTPShouldHandleCookies_1 =
+      _registerName1("setHTTPShouldHandleCookies:");
+  late final _sel_setHTTPShouldUsePipelining_1 =
+      _registerName1("setHTTPShouldUsePipelining:");
+  late final _sel_setProperty_forKey_inRequest_1 =
+      _registerName1("setProperty:forKey:inRequest:");
+  void _objc_msgSend_894(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_894(
+      obj,
+      sel,
+      value,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_894Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_894 = __objc_msgSend_894Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removePropertyForKey_inRequest_1 =
+      _registerName1("removePropertyForKey:inRequest:");
+  void _objc_msgSend_895(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_895(
+      obj,
+      sel,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_895Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_895 = __objc_msgSend_895Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_registerClass_1 = _registerName1("registerClass:");
+  late final _sel_unregisterClass_1 = _registerName1("unregisterClass:");
+  late final _sel_canInitWithTask_1 = _registerName1("canInitWithTask:");
+  bool _objc_msgSend_896(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_896(
+      obj,
+      sel,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_896Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_896 = __objc_msgSend_896Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTask_cachedResponse_client_1 =
+      _registerName1("initWithTask:cachedResponse:client:");
+  instancetype _objc_msgSend_897(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> client,
+  ) {
+    return __objc_msgSend_897(
+      obj,
+      sel,
+      task,
+      cachedResponse,
+      client,
+    );
+  }
+
+  late final __objc_msgSend_897Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_897 = __objc_msgSend_897Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_task1 = _registerName1("task");
+  ffi.Pointer<ObjCObject> _objc_msgSend_898(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_898(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_898Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_898 = __objc_msgSend_898Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSXMLParser1 = _getClass1("NSXMLParser");
+  late final _sel_initWithStream_1 = _registerName1("initWithStream:");
+  instancetype _objc_msgSend_899(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> stream,
+  ) {
+    return __objc_msgSend_899(
+      obj,
+      sel,
+      stream,
+    );
+  }
+
+  late final __objc_msgSend_899Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_899 = __objc_msgSend_899Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_shouldProcessNamespaces1 =
+      _registerName1("shouldProcessNamespaces");
+  late final _sel_setShouldProcessNamespaces_1 =
+      _registerName1("setShouldProcessNamespaces:");
+  late final _sel_shouldReportNamespacePrefixes1 =
+      _registerName1("shouldReportNamespacePrefixes");
+  late final _sel_setShouldReportNamespacePrefixes_1 =
+      _registerName1("setShouldReportNamespacePrefixes:");
+  late final _sel_externalEntityResolvingPolicy1 =
+      _registerName1("externalEntityResolvingPolicy");
+  int _objc_msgSend_900(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_900(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_900Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_900 = __objc_msgSend_900Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setExternalEntityResolvingPolicy_1 =
+      _registerName1("setExternalEntityResolvingPolicy:");
+  void _objc_msgSend_901(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_901(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_901Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_901 = __objc_msgSend_901Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_allowedExternalEntityURLs1 =
+      _registerName1("allowedExternalEntityURLs");
+  late final _sel_setAllowedExternalEntityURLs_1 =
+      _registerName1("setAllowedExternalEntityURLs:");
+  void _objc_msgSend_902(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_902(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_902Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_902 = __objc_msgSend_902Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_parse1 = _registerName1("parse");
+  late final _sel_abortParsing1 = _registerName1("abortParsing");
+  late final _sel_parserError1 = _registerName1("parserError");
+  late final _sel_shouldResolveExternalEntities1 =
+      _registerName1("shouldResolveExternalEntities");
+  late final _sel_setShouldResolveExternalEntities_1 =
+      _registerName1("setShouldResolveExternalEntities:");
+  late final _sel_publicID1 = _registerName1("publicID");
+  late final _sel_systemID1 = _registerName1("systemID");
+  late final _sel_lineNumber1 = _registerName1("lineNumber");
+  late final _sel_columnNumber1 = _registerName1("columnNumber");
+  late final _class_NSFileWrapper1 = _getClass1("NSFileWrapper");
+  late final _sel_initWithURL_options_error_1 =
+      _registerName1("initWithURL:options:error:");
+  instancetype _objc_msgSend_903(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_903(
+      obj,
+      sel,
+      url,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_903Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_903 = __objc_msgSend_903Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initDirectoryWithFileWrappers_1 =
+      _registerName1("initDirectoryWithFileWrappers:");
+  late final _sel_initRegularFileWithContents_1 =
+      _registerName1("initRegularFileWithContents:");
+  late final _sel_initSymbolicLinkWithDestinationURL_1 =
+      _registerName1("initSymbolicLinkWithDestinationURL:");
+  late final _sel_initWithSerializedRepresentation_1 =
+      _registerName1("initWithSerializedRepresentation:");
+  late final _sel_isDirectory1 = _registerName1("isDirectory");
+  late final _sel_isRegularFile1 = _registerName1("isRegularFile");
+  late final _sel_isSymbolicLink1 = _registerName1("isSymbolicLink");
+  late final _sel_preferredFilename1 = _registerName1("preferredFilename");
+  late final _sel_setPreferredFilename_1 =
+      _registerName1("setPreferredFilename:");
+  late final _sel_filename1 = _registerName1("filename");
+  late final _sel_setFilename_1 = _registerName1("setFilename:");
+  late final _sel_fileAttributes1 = _registerName1("fileAttributes");
+  late final _sel_setFileAttributes_1 = _registerName1("setFileAttributes:");
+  late final _sel_matchesContentsOfURL_1 =
+      _registerName1("matchesContentsOfURL:");
+  late final _sel_readFromURL_options_error_1 =
+      _registerName1("readFromURL:options:error:");
+  bool _objc_msgSend_904(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_904(
+      obj,
+      sel,
+      url,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_904Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_904 = __objc_msgSend_904Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToURL_options_originalContentsURL_error_1 =
+      _registerName1("writeToURL:options:originalContentsURL:error:");
+  bool _objc_msgSend_905(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ObjCObject> originalContentsURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_905(
+      obj,
+      sel,
+      url,
+      options,
+      originalContentsURL,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_905Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_905 = __objc_msgSend_905Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_serializedRepresentation1 =
+      _registerName1("serializedRepresentation");
+  late final _sel_addFileWrapper_1 = _registerName1("addFileWrapper:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_906(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_906(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_906Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_906 = __objc_msgSend_906Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addRegularFileWithContents_preferredFilename_1 =
+      _registerName1("addRegularFileWithContents:preferredFilename:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_907(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> fileName,
+  ) {
+    return __objc_msgSend_907(
+      obj,
+      sel,
+      data,
+      fileName,
+    );
+  }
+
+  late final __objc_msgSend_907Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_907 = __objc_msgSend_907Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeFileWrapper_1 = _registerName1("removeFileWrapper:");
+  void _objc_msgSend_908(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_908(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_908Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_908 = __objc_msgSend_908Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileWrappers1 = _registerName1("fileWrappers");
+  late final _sel_keyForFileWrapper_1 = _registerName1("keyForFileWrapper:");
+  late final _sel_regularFileContents1 = _registerName1("regularFileContents");
+  late final _sel_symbolicLinkDestinationURL1 =
+      _registerName1("symbolicLinkDestinationURL");
+  late final _sel_initSymbolicLinkWithDestination_1 =
+      _registerName1("initSymbolicLinkWithDestination:");
+  late final _sel_needsToBeUpdatedFromPath_1 =
+      _registerName1("needsToBeUpdatedFromPath:");
+  late final _sel_updateFromPath_1 = _registerName1("updateFromPath:");
+  late final _sel_writeToFile_atomically_updateFilenames_1 =
+      _registerName1("writeToFile:atomically:updateFilenames:");
+  bool _objc_msgSend_909(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool atomicFlag,
+    bool updateFilenamesFlag,
+  ) {
+    return __objc_msgSend_909(
+      obj,
+      sel,
+      path,
+      atomicFlag,
+      updateFilenamesFlag,
+    );
+  }
+
+  late final __objc_msgSend_909Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_909 = __objc_msgSend_909Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool, bool)>();
+
+  late final _sel_addFileWithPath_1 = _registerName1("addFileWithPath:");
+  late final _sel_addSymbolicLinkWithDestination_preferredFilename_1 =
+      _registerName1("addSymbolicLinkWithDestination:preferredFilename:");
+  late final _sel_symbolicLinkDestination1 =
+      _registerName1("symbolicLinkDestination");
+  late final _class_NSURLSession1 = _getClass1("NSURLSession");
+  late final _sel_sharedSession1 = _registerName1("sharedSession");
+  ffi.Pointer<ObjCObject> _objc_msgSend_910(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_910(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_910Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_910 = __objc_msgSend_910Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSURLSessionConfiguration1 =
+      _getClass1("NSURLSessionConfiguration");
+  late final _sel_defaultSessionConfiguration1 =
+      _registerName1("defaultSessionConfiguration");
+  ffi.Pointer<ObjCObject> _objc_msgSend_911(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_911(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_911Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_911 = __objc_msgSend_911Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_ephemeralSessionConfiguration1 =
+      _registerName1("ephemeralSessionConfiguration");
+  late final _sel_backgroundSessionConfigurationWithIdentifier_1 =
+      _registerName1("backgroundSessionConfigurationWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_912(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_912(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_912Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_912 = __objc_msgSend_912Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_identifier1 = _registerName1("identifier");
+  late final _sel_requestCachePolicy1 = _registerName1("requestCachePolicy");
+  late final _sel_setRequestCachePolicy_1 =
+      _registerName1("setRequestCachePolicy:");
+  late final _sel_timeoutIntervalForRequest1 =
+      _registerName1("timeoutIntervalForRequest");
+  late final _sel_setTimeoutIntervalForRequest_1 =
+      _registerName1("setTimeoutIntervalForRequest:");
+  late final _sel_timeoutIntervalForResource1 =
+      _registerName1("timeoutIntervalForResource");
+  late final _sel_setTimeoutIntervalForResource_1 =
+      _registerName1("setTimeoutIntervalForResource:");
+  late final _sel_waitsForConnectivity1 =
+      _registerName1("waitsForConnectivity");
+  late final _sel_setWaitsForConnectivity_1 =
+      _registerName1("setWaitsForConnectivity:");
+  late final _sel_isDiscretionary1 = _registerName1("isDiscretionary");
+  late final _sel_setDiscretionary_1 = _registerName1("setDiscretionary:");
+  late final _sel_sharedContainerIdentifier1 =
+      _registerName1("sharedContainerIdentifier");
+  late final _sel_setSharedContainerIdentifier_1 =
+      _registerName1("setSharedContainerIdentifier:");
+  late final _sel_sessionSendsLaunchEvents1 =
+      _registerName1("sessionSendsLaunchEvents");
+  late final _sel_setSessionSendsLaunchEvents_1 =
+      _registerName1("setSessionSendsLaunchEvents:");
+  late final _sel_connectionProxyDictionary1 =
+      _registerName1("connectionProxyDictionary");
+  late final _sel_setConnectionProxyDictionary_1 =
+      _registerName1("setConnectionProxyDictionary:");
+  late final _sel_TLSMinimumSupportedProtocol1 =
+      _registerName1("TLSMinimumSupportedProtocol");
+  int _objc_msgSend_913(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_913(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_913Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_913 = __objc_msgSend_913Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTLSMinimumSupportedProtocol_1 =
+      _registerName1("setTLSMinimumSupportedProtocol:");
+  void _objc_msgSend_914(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_914(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_914Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_914 = __objc_msgSend_914Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_TLSMaximumSupportedProtocol1 =
+      _registerName1("TLSMaximumSupportedProtocol");
+  late final _sel_setTLSMaximumSupportedProtocol_1 =
+      _registerName1("setTLSMaximumSupportedProtocol:");
+  late final _sel_TLSMinimumSupportedProtocolVersion1 =
+      _registerName1("TLSMinimumSupportedProtocolVersion");
+  int _objc_msgSend_915(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_915(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_915Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_915 = __objc_msgSend_915Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTLSMinimumSupportedProtocolVersion_1 =
+      _registerName1("setTLSMinimumSupportedProtocolVersion:");
+  void _objc_msgSend_916(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_916(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_916Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_916 = __objc_msgSend_916Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_TLSMaximumSupportedProtocolVersion1 =
+      _registerName1("TLSMaximumSupportedProtocolVersion");
+  late final _sel_setTLSMaximumSupportedProtocolVersion_1 =
+      _registerName1("setTLSMaximumSupportedProtocolVersion:");
+  late final _sel_HTTPShouldSetCookies1 =
+      _registerName1("HTTPShouldSetCookies");
+  late final _sel_setHTTPShouldSetCookies_1 =
+      _registerName1("setHTTPShouldSetCookies:");
+  late final _sel_HTTPCookieAcceptPolicy1 =
+      _registerName1("HTTPCookieAcceptPolicy");
+  late final _sel_setHTTPCookieAcceptPolicy_1 =
+      _registerName1("setHTTPCookieAcceptPolicy:");
+  late final _sel_HTTPAdditionalHeaders1 =
+      _registerName1("HTTPAdditionalHeaders");
+  late final _sel_setHTTPAdditionalHeaders_1 =
+      _registerName1("setHTTPAdditionalHeaders:");
+  late final _sel_HTTPMaximumConnectionsPerHost1 =
+      _registerName1("HTTPMaximumConnectionsPerHost");
+  late final _sel_setHTTPMaximumConnectionsPerHost_1 =
+      _registerName1("setHTTPMaximumConnectionsPerHost:");
+  late final _sel_HTTPCookieStorage1 = _registerName1("HTTPCookieStorage");
+  late final _sel_setHTTPCookieStorage_1 =
+      _registerName1("setHTTPCookieStorage:");
+  void _objc_msgSend_917(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_917(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_917Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_917 = __objc_msgSend_917Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLCredentialStorage1 =
+      _registerName1("URLCredentialStorage");
+  late final _sel_setURLCredentialStorage_1 =
+      _registerName1("setURLCredentialStorage:");
+  void _objc_msgSend_918(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_918(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_918Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_918 = __objc_msgSend_918Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLCache1 = _registerName1("URLCache");
+  late final _sel_setURLCache_1 = _registerName1("setURLCache:");
+  late final _sel_shouldUseExtendedBackgroundIdleMode1 =
+      _registerName1("shouldUseExtendedBackgroundIdleMode");
+  late final _sel_setShouldUseExtendedBackgroundIdleMode_1 =
+      _registerName1("setShouldUseExtendedBackgroundIdleMode:");
+  late final _sel_protocolClasses1 = _registerName1("protocolClasses");
+  late final _sel_setProtocolClasses_1 = _registerName1("setProtocolClasses:");
+  late final _sel_multipathServiceType1 =
+      _registerName1("multipathServiceType");
+  int _objc_msgSend_919(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_919(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_919Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_919 = __objc_msgSend_919Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setMultipathServiceType_1 =
+      _registerName1("setMultipathServiceType:");
+  void _objc_msgSend_920(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_920(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_920Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_920 = __objc_msgSend_920Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_backgroundSessionConfiguration_1 =
+      _registerName1("backgroundSessionConfiguration:");
+  late final _sel_sessionWithConfiguration_1 =
+      _registerName1("sessionWithConfiguration:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_921(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> configuration,
+  ) {
+    return __objc_msgSend_921(
+      obj,
+      sel,
+      configuration,
+    );
+  }
+
+  late final __objc_msgSend_921Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_921 = __objc_msgSend_921Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sessionWithConfiguration_delegate_delegateQueue_1 =
+      _registerName1("sessionWithConfiguration:delegate:delegateQueue:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_922(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> configuration,
+    ffi.Pointer<ObjCObject> delegate,
+    ffi.Pointer<ObjCObject> queue,
+  ) {
+    return __objc_msgSend_922(
+      obj,
+      sel,
+      configuration,
+      delegate,
+      queue,
+    );
+  }
+
+  late final __objc_msgSend_922Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_922 = __objc_msgSend_922Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_delegateQueue1 = _registerName1("delegateQueue");
+  late final _sel_configuration1 = _registerName1("configuration");
+  late final _sel_sessionDescription1 = _registerName1("sessionDescription");
+  late final _sel_setSessionDescription_1 =
+      _registerName1("setSessionDescription:");
+  late final _sel_finishTasksAndInvalidate1 =
+      _registerName1("finishTasksAndInvalidate");
+  late final _sel_invalidateAndCancel1 = _registerName1("invalidateAndCancel");
+  late final _sel_resetWithCompletionHandler_1 =
+      _registerName1("resetWithCompletionHandler:");
+  late final _sel_flushWithCompletionHandler_1 =
+      _registerName1("flushWithCompletionHandler:");
+  late final _sel_getTasksWithCompletionHandler_1 =
+      _registerName1("getTasksWithCompletionHandler:");
+  void _objc_msgSend_923(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_923(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_923Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_923 = __objc_msgSend_923Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_getAllTasksWithCompletionHandler_1 =
+      _registerName1("getAllTasksWithCompletionHandler:");
+  void _objc_msgSend_924(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_924(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_924Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_924 = __objc_msgSend_924Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataTaskWithRequest_1 =
+      _registerName1("dataTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_925(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_925(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_925Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_925 = __objc_msgSend_925Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataTaskWithURL_1 = _registerName1("dataTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_926(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_926(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_926Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_926 = __objc_msgSend_926Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionUploadTask1 =
+      _getClass1("NSURLSessionUploadTask");
+  late final _sel_uploadTaskWithRequest_fromFile_1 =
+      _registerName1("uploadTaskWithRequest:fromFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_927(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> fileURL,
+  ) {
+    return __objc_msgSend_927(
+      obj,
+      sel,
+      request,
+      fileURL,
+    );
+  }
+
+  late final __objc_msgSend_927Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_927 = __objc_msgSend_927Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_uploadTaskWithRequest_fromData_1 =
+      _registerName1("uploadTaskWithRequest:fromData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_928(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> bodyData,
+  ) {
+    return __objc_msgSend_928(
+      obj,
+      sel,
+      request,
+      bodyData,
+    );
+  }
+
+  late final __objc_msgSend_928Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_928 = __objc_msgSend_928Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_uploadTaskWithStreamedRequest_1 =
+      _registerName1("uploadTaskWithStreamedRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_929(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_929(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_929Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_929 = __objc_msgSend_929Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionDownloadTask1 =
+      _getClass1("NSURLSessionDownloadTask");
+  late final _sel_cancelByProducingResumeData_1 =
+      _registerName1("cancelByProducingResumeData:");
+  void _objc_msgSend_930(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_930(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_930Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_930 = __objc_msgSend_930Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithRequest_1 =
+      _registerName1("downloadTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_931(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_931(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_931Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_931 = __objc_msgSend_931Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_downloadTaskWithURL_1 =
+      _registerName1("downloadTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_932(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_932(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_932Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_932 = __objc_msgSend_932Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_downloadTaskWithResumeData_1 =
+      _registerName1("downloadTaskWithResumeData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_933(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> resumeData,
+  ) {
+    return __objc_msgSend_933(
+      obj,
+      sel,
+      resumeData,
+    );
+  }
+
+  late final __objc_msgSend_933Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_933 = __objc_msgSend_933Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionStreamTask1 =
+      _getClass1("NSURLSessionStreamTask");
+  late final _sel_readDataOfMinLength_maxLength_timeout_completionHandler_1 =
+      _registerName1(
+          "readDataOfMinLength:maxLength:timeout:completionHandler:");
+  void _objc_msgSend_934(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int minBytes,
+    int maxBytes,
+    double timeout,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_934(
+      obj,
+      sel,
+      minBytes,
+      maxBytes,
+      timeout,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_934Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              NSTimeInterval,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_934 = __objc_msgSend_934Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          double, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_writeData_timeout_completionHandler_1 =
+      _registerName1("writeData:timeout:completionHandler:");
+  void _objc_msgSend_935(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    double timeout,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_935(
+      obj,
+      sel,
+      data,
+      timeout,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_935Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_935 = __objc_msgSend_935Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, double, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_captureStreams1 = _registerName1("captureStreams");
+  late final _sel_closeWrite1 = _registerName1("closeWrite");
+  late final _sel_closeRead1 = _registerName1("closeRead");
+  late final _sel_startSecureConnection1 =
+      _registerName1("startSecureConnection");
+  late final _sel_stopSecureConnection1 =
+      _registerName1("stopSecureConnection");
+  late final _sel_streamTaskWithHostName_port_1 =
+      _registerName1("streamTaskWithHostName:port:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_936(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> hostname,
+    int port,
+  ) {
+    return __objc_msgSend_936(
+      obj,
+      sel,
+      hostname,
+      port,
+    );
+  }
+
+  late final __objc_msgSend_936Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_936 = __objc_msgSend_936Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _class_NSNetService1 = _getClass1("NSNetService");
+  late final _sel_initWithDomain_type_name_port_1 =
+      _registerName1("initWithDomain:type:name:port:");
+  instancetype _objc_msgSend_937(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> domain,
+    ffi.Pointer<ObjCObject> type,
+    ffi.Pointer<ObjCObject> name,
+    int port,
+  ) {
+    return __objc_msgSend_937(
+      obj,
+      sel,
+      domain,
+      type,
+      name,
+      port,
+    );
+  }
+
+  late final __objc_msgSend_937Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_937 = __objc_msgSend_937Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_initWithDomain_type_name_1 =
+      _registerName1("initWithDomain:type:name:");
+  late final _sel_includesPeerToPeer1 = _registerName1("includesPeerToPeer");
+  late final _sel_setIncludesPeerToPeer_1 =
+      _registerName1("setIncludesPeerToPeer:");
+  late final _sel_type1 = _registerName1("type");
+  late final _sel_publish1 = _registerName1("publish");
+  late final _sel_publishWithOptions_1 = _registerName1("publishWithOptions:");
+  void _objc_msgSend_938(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_938(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_938Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_938 = __objc_msgSend_938Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_resolve1 = _registerName1("resolve");
+  late final _sel_stop1 = _registerName1("stop");
+  late final _sel_dictionaryFromTXTRecordData_1 =
+      _registerName1("dictionaryFromTXTRecordData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_939(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> txtData,
+  ) {
+    return __objc_msgSend_939(
+      obj,
+      sel,
+      txtData,
+    );
+  }
+
+  late final __objc_msgSend_939Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_939 = __objc_msgSend_939Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataFromTXTRecordDictionary_1 =
+      _registerName1("dataFromTXTRecordDictionary:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_940(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> txtDictionary,
+  ) {
+    return __objc_msgSend_940(
+      obj,
+      sel,
+      txtDictionary,
+    );
+  }
+
+  late final __objc_msgSend_940Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_940 = __objc_msgSend_940Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_resolveWithTimeout_1 = _registerName1("resolveWithTimeout:");
+  late final _sel_getInputStream_outputStream_1 =
+      _registerName1("getInputStream:outputStream:");
+  bool _objc_msgSend_941(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_941(
+      obj,
+      sel,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_941Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_941 = __objc_msgSend_941Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setTXTRecordData_1 = _registerName1("setTXTRecordData:");
+  late final _sel_TXTRecordData1 = _registerName1("TXTRecordData");
+  late final _sel_startMonitoring1 = _registerName1("startMonitoring");
+  late final _sel_stopMonitoring1 = _registerName1("stopMonitoring");
+  late final _sel_streamTaskWithNetService_1 =
+      _registerName1("streamTaskWithNetService:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_942(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> service,
+  ) {
+    return __objc_msgSend_942(
+      obj,
+      sel,
+      service,
+    );
+  }
+
+  late final __objc_msgSend_942Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_942 = __objc_msgSend_942Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionWebSocketTask1 =
+      _getClass1("NSURLSessionWebSocketTask");
+  late final _class_NSURLSessionWebSocketMessage1 =
+      _getClass1("NSURLSessionWebSocketMessage");
+  int _objc_msgSend_943(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_943(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_943Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_943 = __objc_msgSend_943Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sendMessage_completionHandler_1 =
+      _registerName1("sendMessage:completionHandler:");
+  void _objc_msgSend_944(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> message,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_944(
+      obj,
+      sel,
+      message,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_944Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_944 = __objc_msgSend_944Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_receiveMessageWithCompletionHandler_1 =
+      _registerName1("receiveMessageWithCompletionHandler:");
+  void _objc_msgSend_945(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_945(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_945Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_945 = __objc_msgSend_945Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_sendPingWithPongReceiveHandler_1 =
+      _registerName1("sendPingWithPongReceiveHandler:");
+  void _objc_msgSend_946(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> pongReceiveHandler,
+  ) {
+    return __objc_msgSend_946(
+      obj,
+      sel,
+      pongReceiveHandler,
+    );
+  }
+
+  late final __objc_msgSend_946Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_946 = __objc_msgSend_946Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_cancelWithCloseCode_reason_1 =
+      _registerName1("cancelWithCloseCode:reason:");
+  void _objc_msgSend_947(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int closeCode,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_947(
+      obj,
+      sel,
+      closeCode,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_947Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_947 = __objc_msgSend_947Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_maximumMessageSize1 = _registerName1("maximumMessageSize");
+  late final _sel_setMaximumMessageSize_1 =
+      _registerName1("setMaximumMessageSize:");
+  late final _sel_closeCode1 = _registerName1("closeCode");
+  int _objc_msgSend_948(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_948(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_948Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_948 = __objc_msgSend_948Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_closeReason1 = _registerName1("closeReason");
+  late final _sel_webSocketTaskWithURL_1 =
+      _registerName1("webSocketTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_949(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_949(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_949Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_949 = __objc_msgSend_949Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_webSocketTaskWithURL_protocols_1 =
+      _registerName1("webSocketTaskWithURL:protocols:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_950(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> protocols,
+  ) {
+    return __objc_msgSend_950(
+      obj,
+      sel,
+      url,
+      protocols,
+    );
+  }
+
+  late final __objc_msgSend_950Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_950 = __objc_msgSend_950Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_webSocketTaskWithRequest_1 =
+      _registerName1("webSocketTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_951(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_951(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_951Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_951 = __objc_msgSend_951Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataTaskWithRequest_completionHandler_1 =
+      _registerName1("dataTaskWithRequest:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_952(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_952(
+      obj,
+      sel,
+      request,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_952Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_952 = __objc_msgSend_952Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataTaskWithURL_completionHandler_1 =
+      _registerName1("dataTaskWithURL:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_953(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_953(
+      obj,
+      sel,
+      url,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_953Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_953 = __objc_msgSend_953Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_uploadTaskWithRequest_fromFile_completionHandler_1 =
+      _registerName1("uploadTaskWithRequest:fromFile:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_954(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> fileURL,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_954(
+      obj,
+      sel,
+      request,
+      fileURL,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_954Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_954 = __objc_msgSend_954Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_uploadTaskWithRequest_fromData_completionHandler_1 =
+      _registerName1("uploadTaskWithRequest:fromData:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_955(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> bodyData,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_955(
+      obj,
+      sel,
+      request,
+      bodyData,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_955Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_955 = __objc_msgSend_955Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithRequest_completionHandler_1 =
+      _registerName1("downloadTaskWithRequest:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_956(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_956(
+      obj,
+      sel,
+      request,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_956Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_956 = __objc_msgSend_956Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithURL_completionHandler_1 =
+      _registerName1("downloadTaskWithURL:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_957(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_957(
+      obj,
+      sel,
+      url,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_957Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_957 = __objc_msgSend_957Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithResumeData_completionHandler_1 =
+      _registerName1("downloadTaskWithResumeData:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_958(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> resumeData,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_958(
+      obj,
+      sel,
+      resumeData,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_958Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_958 = __objc_msgSend_958Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSProtocolChecker1 = _getClass1("NSProtocolChecker");
+  ffi.Pointer<ObjCObject> _objc_msgSend_959(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_959(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_959Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_959 = __objc_msgSend_959Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_protocolCheckerWithTarget_protocol_1 =
+      _registerName1("protocolCheckerWithTarget:protocol:");
+  instancetype _objc_msgSend_960(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    ffi.Pointer<ObjCObject> aProtocol,
+  ) {
+    return __objc_msgSend_960(
+      obj,
+      sel,
+      anObject,
+      aProtocol,
+    );
+  }
+
+  late final __objc_msgSend_960Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_960 = __objc_msgSend_960Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTarget_protocol_1 =
+      _registerName1("initWithTarget:protocol:");
+  late final _class_NSTask1 = _getClass1("NSTask");
+  late final _sel_setExecutableURL_1 = _registerName1("setExecutableURL:");
+  late final _sel_setEnvironment_1 = _registerName1("setEnvironment:");
+  late final _sel_currentDirectoryURL1 = _registerName1("currentDirectoryURL");
+  late final _sel_setCurrentDirectoryURL_1 =
+      _registerName1("setCurrentDirectoryURL:");
+  late final _sel_standardInput1 = _registerName1("standardInput");
+  late final _sel_setStandardInput_1 = _registerName1("setStandardInput:");
+  late final _sel_standardOutput1 = _registerName1("standardOutput");
+  late final _sel_setStandardOutput_1 = _registerName1("setStandardOutput:");
+  late final _sel_standardError1 = _registerName1("standardError");
+  late final _sel_setStandardError_1 = _registerName1("setStandardError:");
+  late final _sel_launchAndReturnError_1 =
+      _registerName1("launchAndReturnError:");
+  late final _sel_interrupt1 = _registerName1("interrupt");
+  late final _sel_terminate1 = _registerName1("terminate");
+  late final _sel_isRunning1 = _registerName1("isRunning");
+  late final _sel_terminationStatus1 = _registerName1("terminationStatus");
+  late final _sel_terminationReason1 = _registerName1("terminationReason");
+  int _objc_msgSend_961(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_961(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_961Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_961 = __objc_msgSend_961Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_terminationHandler1 = _registerName1("terminationHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_962(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_962(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_962Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_962 = __objc_msgSend_962Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTerminationHandler_1 =
+      _registerName1("setTerminationHandler:");
+  void _objc_msgSend_963(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_963(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_963Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_963 = __objc_msgSend_963Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_1 =
+      _registerName1(
+          "launchedTaskWithExecutableURL:arguments:error:terminationHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_964(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+    ffi.Pointer<_ObjCBlock> terminationHandler,
+  ) {
+    return __objc_msgSend_964(
+      obj,
+      sel,
+      url,
+      arguments,
+      error,
+      terminationHandler,
+    );
+  }
+
+  late final __objc_msgSend_964Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_964 = __objc_msgSend_964Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_waitUntilExit1 = _registerName1("waitUntilExit");
+  late final _sel_launchPath1 = _registerName1("launchPath");
+  late final _sel_setLaunchPath_1 = _registerName1("setLaunchPath:");
+  late final _sel_setCurrentDirectoryPath_1 =
+      _registerName1("setCurrentDirectoryPath:");
+  late final _sel_launch1 = _registerName1("launch");
+  late final _sel_launchedTaskWithLaunchPath_arguments_1 =
+      _registerName1("launchedTaskWithLaunchPath:arguments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_965(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> arguments,
+  ) {
+    return __objc_msgSend_965(
+      obj,
+      sel,
+      path,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_965Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_965 = __objc_msgSend_965Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSXMLElement1 = _getClass1("NSXMLElement");
+  late final _class_NSXMLNode1 = _getClass1("NSXMLNode");
+  late final _sel_initWithKind_1 = _registerName1("initWithKind:");
+  instancetype _objc_msgSend_966(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int kind,
+  ) {
+    return __objc_msgSend_966(
+      obj,
+      sel,
+      kind,
+    );
+  }
+
+  late final __objc_msgSend_966Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_966 = __objc_msgSend_966Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithKind_options_1 =
+      _registerName1("initWithKind:options:");
+  instancetype _objc_msgSend_967(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int kind,
+    int options,
+  ) {
+    return __objc_msgSend_967(
+      obj,
+      sel,
+      kind,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_967Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_967 = __objc_msgSend_967Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_document1 = _registerName1("document");
+  late final _sel_documentWithRootElement_1 =
+      _registerName1("documentWithRootElement:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_968(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> element,
+  ) {
+    return __objc_msgSend_968(
+      obj,
+      sel,
+      element,
+    );
+  }
+
+  late final __objc_msgSend_968Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_968 = __objc_msgSend_968Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_elementWithName_1 = _registerName1("elementWithName:");
+  late final _sel_elementWithName_URI_1 =
+      _registerName1("elementWithName:URI:");
+  late final _sel_elementWithName_stringValue_1 =
+      _registerName1("elementWithName:stringValue:");
+  late final _sel_elementWithName_children_attributes_1 =
+      _registerName1("elementWithName:children:attributes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_969(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> children,
+    ffi.Pointer<ObjCObject> attributes,
+  ) {
+    return __objc_msgSend_969(
+      obj,
+      sel,
+      name,
+      children,
+      attributes,
+    );
+  }
+
+  late final __objc_msgSend_969Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_969 = __objc_msgSend_969Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributeWithName_stringValue_1 =
+      _registerName1("attributeWithName:stringValue:");
+  late final _sel_attributeWithName_URI_stringValue_1 =
+      _registerName1("attributeWithName:URI:stringValue:");
+  late final _sel_namespaceWithName_stringValue_1 =
+      _registerName1("namespaceWithName:stringValue:");
+  late final _sel_processingInstructionWithName_stringValue_1 =
+      _registerName1("processingInstructionWithName:stringValue:");
+  late final _sel_commentWithStringValue_1 =
+      _registerName1("commentWithStringValue:");
+  late final _sel_textWithStringValue_1 =
+      _registerName1("textWithStringValue:");
+  late final _sel_DTDNodeWithXMLString_1 =
+      _registerName1("DTDNodeWithXMLString:");
+  late final _sel_kind1 = _registerName1("kind");
+  int _objc_msgSend_970(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_970(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_970Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_970 = __objc_msgSend_970Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_objectValue1 = _registerName1("objectValue");
+  late final _sel_setObjectValue_1 = _registerName1("setObjectValue:");
+  late final _sel_setStringValue_1 = _registerName1("setStringValue:");
+  late final _sel_setStringValue_resolvingEntities_1 =
+      _registerName1("setStringValue:resolvingEntities:");
+  void _objc_msgSend_971(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    bool resolve,
+  ) {
+    return __objc_msgSend_971(
+      obj,
+      sel,
+      string,
+      resolve,
+    );
+  }
+
+  late final __objc_msgSend_971Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_971 = __objc_msgSend_971Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_index1 = _registerName1("index");
+  late final _sel_level1 = _registerName1("level");
+  late final _class_NSXMLDocument1 = _getClass1("NSXMLDocument");
+  late final _sel_initWithXMLString_options_error_1 =
+      _registerName1("initWithXMLString:options:error:");
+  instancetype _objc_msgSend_972(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_972(
+      obj,
+      sel,
+      string,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_972Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_972 = __objc_msgSend_972Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  instancetype _objc_msgSend_973(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_973(
+      obj,
+      sel,
+      url,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_973Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_973 = __objc_msgSend_973Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithData_options_error_1 =
+      _registerName1("initWithData:options:error:");
+  instancetype _objc_msgSend_974(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_974(
+      obj,
+      sel,
+      data,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_974Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_974 = __objc_msgSend_974Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithRootElement_1 =
+      _registerName1("initWithRootElement:");
+  late final _sel_replacementClassForClass_1 =
+      _registerName1("replacementClassForClass:");
+  late final _sel_characterEncoding1 = _registerName1("characterEncoding");
+  late final _sel_setCharacterEncoding_1 =
+      _registerName1("setCharacterEncoding:");
+  late final _sel_isStandalone1 = _registerName1("isStandalone");
+  late final _sel_setStandalone_1 = _registerName1("setStandalone:");
+  late final _sel_documentContentKind1 = _registerName1("documentContentKind");
+  int _objc_msgSend_975(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_975(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_975Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_975 = __objc_msgSend_975Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDocumentContentKind_1 =
+      _registerName1("setDocumentContentKind:");
+  void _objc_msgSend_976(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_976(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_976Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_976 = __objc_msgSend_976Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setMIMEType_1 = _registerName1("setMIMEType:");
+  late final _class_NSXMLDTD1 = _getClass1("NSXMLDTD");
+  late final _sel_setPublicID_1 = _registerName1("setPublicID:");
+  late final _sel_setSystemID_1 = _registerName1("setSystemID:");
+  late final _sel_insertChild_atIndex_1 =
+      _registerName1("insertChild:atIndex:");
+  void _objc_msgSend_977(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+    int index,
+  ) {
+    return __objc_msgSend_977(
+      obj,
+      sel,
+      child,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_977Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_977 = __objc_msgSend_977Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_insertChildren_atIndex_1 =
+      _registerName1("insertChildren:atIndex:");
+  void _objc_msgSend_978(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> children,
+    int index,
+  ) {
+    return __objc_msgSend_978(
+      obj,
+      sel,
+      children,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_978Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_978 = __objc_msgSend_978Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_removeChildAtIndex_1 = _registerName1("removeChildAtIndex:");
+  late final _sel_setChildren_1 = _registerName1("setChildren:");
+  late final _sel_addChild_1 = _registerName1("addChild:");
+  void _objc_msgSend_979(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_979(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_979Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_979 = __objc_msgSend_979Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceChildAtIndex_withNode_1 =
+      _registerName1("replaceChildAtIndex:withNode:");
+  void _objc_msgSend_980(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> node,
+  ) {
+    return __objc_msgSend_980(
+      obj,
+      sel,
+      index,
+      node,
+    );
+  }
+
+  late final __objc_msgSend_980Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_980 = __objc_msgSend_980Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSXMLDTDNode1 = _getClass1("NSXMLDTDNode");
+  late final _sel_initWithXMLString_1 = _registerName1("initWithXMLString:");
+  late final _sel_DTDKind1 = _registerName1("DTDKind");
+  int _objc_msgSend_981(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_981(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_981Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_981 = __objc_msgSend_981Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDTDKind_1 = _registerName1("setDTDKind:");
+  void _objc_msgSend_982(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_982(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_982Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_982 = __objc_msgSend_982Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isExternal1 = _registerName1("isExternal");
+  late final _sel_notationName1 = _registerName1("notationName");
+  late final _sel_setNotationName_1 = _registerName1("setNotationName:");
+  late final _sel_localNameForName_1 = _registerName1("localNameForName:");
+  late final _sel_prefixForName_1 = _registerName1("prefixForName:");
+  late final _sel_predefinedNamespaceForPrefix_1 =
+      _registerName1("predefinedNamespaceForPrefix:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_983(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_983(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_983Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_983 = __objc_msgSend_983Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_entityDeclarationForName_1 =
+      _registerName1("entityDeclarationForName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_984(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_984(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_984Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_984 = __objc_msgSend_984Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_notationDeclarationForName_1 =
+      _registerName1("notationDeclarationForName:");
+  late final _sel_elementDeclarationForName_1 =
+      _registerName1("elementDeclarationForName:");
+  late final _sel_attributeDeclarationForName_elementName_1 =
+      _registerName1("attributeDeclarationForName:elementName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_985(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> elementName,
+  ) {
+    return __objc_msgSend_985(
+      obj,
+      sel,
+      name,
+      elementName,
+    );
+  }
+
+  late final __objc_msgSend_985Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_985 = __objc_msgSend_985Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predefinedEntityDeclarationForName_1 =
+      _registerName1("predefinedEntityDeclarationForName:");
+  late final _sel_DTD1 = _registerName1("DTD");
+  ffi.Pointer<ObjCObject> _objc_msgSend_986(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_986(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_986Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_986 = __objc_msgSend_986Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDTD_1 = _registerName1("setDTD:");
+  void _objc_msgSend_987(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_987(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_987Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_987 = __objc_msgSend_987Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setRootElement_1 = _registerName1("setRootElement:");
+  void _objc_msgSend_988(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> root,
+  ) {
+    return __objc_msgSend_988(
+      obj,
+      sel,
+      root,
+    );
+  }
+
+  late final __objc_msgSend_988Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_988 = __objc_msgSend_988Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rootElement1 = _registerName1("rootElement");
+  ffi.Pointer<ObjCObject> _objc_msgSend_989(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_989(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_989Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_989 = __objc_msgSend_989Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_XMLData1 = _registerName1("XMLData");
+  late final _sel_XMLDataWithOptions_1 = _registerName1("XMLDataWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_990(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_990(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_990Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_990 = __objc_msgSend_990Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_objectByApplyingXSLT_arguments_error_1 =
+      _registerName1("objectByApplyingXSLT:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_991(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xslt,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_991(
+      obj,
+      sel,
+      xslt,
+      arguments,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_991Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_991 = __objc_msgSend_991Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectByApplyingXSLTString_arguments_error_1 =
+      _registerName1("objectByApplyingXSLTString:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_992(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xslt,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_992(
+      obj,
+      sel,
+      xslt,
+      arguments,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_992Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_992 = __objc_msgSend_992Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectByApplyingXSLTAtURL_arguments_error_1 =
+      _registerName1("objectByApplyingXSLTAtURL:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_993(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xsltURL,
+    ffi.Pointer<ObjCObject> argument,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_993(
+      obj,
+      sel,
+      xsltURL,
+      argument,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_993Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_993 = __objc_msgSend_993Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_validateAndReturnError_1 =
+      _registerName1("validateAndReturnError:");
+  late final _sel_rootDocument1 = _registerName1("rootDocument");
+  ffi.Pointer<ObjCObject> _objc_msgSend_994(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_994(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_994Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_994 = __objc_msgSend_994Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_parent1 = _registerName1("parent");
+  ffi.Pointer<ObjCObject> _objc_msgSend_995(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_995(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_995Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_995 = __objc_msgSend_995Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_childCount1 = _registerName1("childCount");
+  late final _sel_children1 = _registerName1("children");
+  late final _sel_childAtIndex_1 = _registerName1("childAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_996(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_996(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_996Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_996 = __objc_msgSend_996Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_previousSibling1 = _registerName1("previousSibling");
+  late final _sel_nextSibling1 = _registerName1("nextSibling");
+  late final _sel_previousNode1 = _registerName1("previousNode");
+  late final _sel_nextNode1 = _registerName1("nextNode");
+  late final _sel_detach1 = _registerName1("detach");
+  late final _sel_XPath1 = _registerName1("XPath");
+  late final _sel_localName1 = _registerName1("localName");
+  late final _sel_prefix1 = _registerName1("prefix");
+  late final _sel_URI1 = _registerName1("URI");
+  late final _sel_setURI_1 = _registerName1("setURI:");
+  late final _sel_XMLString1 = _registerName1("XMLString");
+  late final _sel_XMLStringWithOptions_1 =
+      _registerName1("XMLStringWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_997(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_997(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_997Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_997 = __objc_msgSend_997Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_canonicalXMLStringPreservingComments_1 =
+      _registerName1("canonicalXMLStringPreservingComments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_998(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool comments,
+  ) {
+    return __objc_msgSend_998(
+      obj,
+      sel,
+      comments,
+    );
+  }
+
+  late final __objc_msgSend_998Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_998 = __objc_msgSend_998Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_nodesForXPath_error_1 =
+      _registerName1("nodesForXPath:error:");
+  late final _sel_objectsForXQuery_constants_error_1 =
+      _registerName1("objectsForXQuery:constants:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_999(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xquery,
+    ffi.Pointer<ObjCObject> constants,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_999(
+      obj,
+      sel,
+      xquery,
+      constants,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_999Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_999 = __objc_msgSend_999Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectsForXQuery_error_1 =
+      _registerName1("objectsForXQuery:error:");
+  late final _sel_initWithName_URI_1 = _registerName1("initWithName:URI:");
+  late final _sel_initWithName_stringValue_1 =
+      _registerName1("initWithName:stringValue:");
+  late final _sel_initWithXMLString_error_1 =
+      _registerName1("initWithXMLString:error:");
+  late final _sel_elementsForName_1 = _registerName1("elementsForName:");
+  late final _sel_elementsForLocalName_URI_1 =
+      _registerName1("elementsForLocalName:URI:");
+  late final _sel_addAttribute_1 = _registerName1("addAttribute:");
+  late final _sel_removeAttributeForName_1 =
+      _registerName1("removeAttributeForName:");
+  late final _sel_attributes1 = _registerName1("attributes");
+  late final _sel_setAttributes_1 = _registerName1("setAttributes:");
+  late final _sel_setAttributesWithDictionary_1 =
+      _registerName1("setAttributesWithDictionary:");
+  late final _sel_attributeForName_1 = _registerName1("attributeForName:");
+  late final _sel_attributeForLocalName_URI_1 =
+      _registerName1("attributeForLocalName:URI:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1000(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localName,
+    ffi.Pointer<ObjCObject> URI,
+  ) {
+    return __objc_msgSend_1000(
+      obj,
+      sel,
+      localName,
+      URI,
+    );
+  }
+
+  late final __objc_msgSend_1000Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_1000 = __objc_msgSend_1000Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addNamespace_1 = _registerName1("addNamespace:");
+  late final _sel_removeNamespaceForPrefix_1 =
+      _registerName1("removeNamespaceForPrefix:");
+  late final _sel_namespaces1 = _registerName1("namespaces");
+  late final _sel_setNamespaces_1 = _registerName1("setNamespaces:");
+  late final _sel_namespaceForPrefix_1 = _registerName1("namespaceForPrefix:");
+  late final _sel_resolveNamespaceForName_1 =
+      _registerName1("resolveNamespaceForName:");
+  late final _sel_resolvePrefixForNamespaceURI_1 =
+      _registerName1("resolvePrefixForNamespaceURI:");
+  late final _sel_normalizeAdjacentTextNodesPreservingCDATA_1 =
+      _registerName1("normalizeAdjacentTextNodesPreservingCDATA:");
+  late final _sel_setAttributesAsDictionary_1 =
+      _registerName1("setAttributesAsDictionary:");
+  late final _class_AVAudioSession1 = _getClass1("AVAudioSession");
+  late final _sel_sharedInstance1 = _registerName1("sharedInstance");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1001(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1001(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1001Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1001 = __objc_msgSend_1001Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_availableCategories1 = _registerName1("availableCategories");
+  late final _sel_setCategory_error_1 = _registerName1("setCategory:error:");
+  late final _sel_setCategory_withOptions_error_1 =
+      _registerName1("setCategory:withOptions:error:");
+  bool _objc_msgSend_1002(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    AVAudioSessionCategory category,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1002(
+      obj,
+      sel,
+      category,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1002Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AVAudioSessionCategory,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1002 = __objc_msgSend_1002Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          AVAudioSessionCategory, int, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setCategory_mode_options_error_1 =
+      _registerName1("setCategory:mode:options:error:");
+  bool _objc_msgSend_1003(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    AVAudioSessionCategory category,
+    AVAudioSessionMode mode,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1003(
+      obj,
+      sel,
+      category,
+      mode,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1003Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AVAudioSessionCategory,
+              AVAudioSessionMode,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1003 = __objc_msgSend_1003Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          AVAudioSessionCategory,
+          AVAudioSessionMode,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setCategory_mode_routeSharingPolicy_options_error_1 =
+      _registerName1("setCategory:mode:routeSharingPolicy:options:error:");
+  bool _objc_msgSend_1004(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    AVAudioSessionCategory category,
+    AVAudioSessionMode mode,
+    int policy,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1004(
+      obj,
+      sel,
+      category,
+      mode,
+      policy,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1004Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AVAudioSessionCategory,
+              AVAudioSessionMode,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1004 = __objc_msgSend_1004Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          AVAudioSessionCategory,
+          AVAudioSessionMode,
+          int,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_category1 = _registerName1("category");
+  late final _sel_categoryOptions1 = _registerName1("categoryOptions");
+  int _objc_msgSend_1005(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1005(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1005Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1005 = __objc_msgSend_1005Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_routeSharingPolicy1 = _registerName1("routeSharingPolicy");
+  int _objc_msgSend_1006(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1006(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1006Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1006 = __objc_msgSend_1006Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_availableModes1 = _registerName1("availableModes");
+  late final _sel_setMode_error_1 = _registerName1("setMode:error:");
+  late final _sel_mode1 = _registerName1("mode");
+  late final _sel_setAllowHapticsAndSystemSoundsDuringRecording_error_1 =
+      _registerName1("setAllowHapticsAndSystemSoundsDuringRecording:error:");
+  bool _objc_msgSend_1007(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool inValue,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1007(
+      obj,
+      sel,
+      inValue,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1007Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool, ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1007 = __objc_msgSend_1007Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_allowHapticsAndSystemSoundsDuringRecording1 =
+      _registerName1("allowHapticsAndSystemSoundsDuringRecording");
+  late final _sel_recordPermission1 = _registerName1("recordPermission");
+  int _objc_msgSend_1008(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1008(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1008Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1008 = __objc_msgSend_1008Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_requestRecordPermission_1 =
+      _registerName1("requestRecordPermission:");
+  void _objc_msgSend_1009(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> response,
+  ) {
+    return __objc_msgSend_1009(
+      obj,
+      sel,
+      response,
+    );
+  }
+
+  late final __objc_msgSend_1009Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_1009 = __objc_msgSend_1009Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_overrideOutputAudioPort_error_1 =
+      _registerName1("overrideOutputAudioPort:error:");
+  bool _objc_msgSend_1010(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int portOverride,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1010(
+      obj,
+      sel,
+      portOverride,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1010Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1010 = __objc_msgSend_1010Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _class_AVAudioSessionPortDescription1 =
+      _getClass1("AVAudioSessionPortDescription");
+  late final _sel_portType1 = _registerName1("portType");
+  late final _sel_portName1 = _registerName1("portName");
+  late final _sel_UID1 = _registerName1("UID");
+  late final _sel_hasHardwareVoiceCallProcessing1 =
+      _registerName1("hasHardwareVoiceCallProcessing");
+  late final _sel_isSpatialAudioEnabled1 =
+      _registerName1("isSpatialAudioEnabled");
+  late final _sel_channels1 = _registerName1("channels");
+  late final _sel_dataSources1 = _registerName1("dataSources");
+  late final _class_AVAudioSessionDataSourceDescription1 =
+      _getClass1("AVAudioSessionDataSourceDescription");
+  late final _sel_dataSourceID1 = _registerName1("dataSourceID");
+  late final _sel_dataSourceName1 = _registerName1("dataSourceName");
+  late final _sel_location1 = _registerName1("location");
+  late final _sel_orientation1 = _registerName1("orientation");
+  late final _sel_supportedPolarPatterns1 =
+      _registerName1("supportedPolarPatterns");
+  late final _sel_selectedPolarPattern1 =
+      _registerName1("selectedPolarPattern");
+  late final _sel_preferredPolarPattern1 =
+      _registerName1("preferredPolarPattern");
+  late final _sel_setPreferredPolarPattern_error_1 =
+      _registerName1("setPreferredPolarPattern:error:");
+  late final _sel_selectedDataSource1 = _registerName1("selectedDataSource");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1011(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1011(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1011Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1011 = __objc_msgSend_1011Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_preferredDataSource1 = _registerName1("preferredDataSource");
+  late final _sel_setPreferredDataSource_error_1 =
+      _registerName1("setPreferredDataSource:error:");
+  bool _objc_msgSend_1012(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataSource,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1012(
+      obj,
+      sel,
+      dataSource,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1012Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1012 = __objc_msgSend_1012Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setPreferredInput_error_1 =
+      _registerName1("setPreferredInput:error:");
+  bool _objc_msgSend_1013(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> inPort,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1013(
+      obj,
+      sel,
+      inPort,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1013Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1013 = __objc_msgSend_1013Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_preferredInput1 = _registerName1("preferredInput");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1014(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1014(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1014Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1014 = __objc_msgSend_1014Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPrefersNoInterruptionsFromSystemAlerts_error_1 =
+      _registerName1("setPrefersNoInterruptionsFromSystemAlerts:error:");
+  late final _sel_prefersNoInterruptionsFromSystemAlerts1 =
+      _registerName1("prefersNoInterruptionsFromSystemAlerts");
+  late final _sel_setActive_error_1 = _registerName1("setActive:error:");
+  late final _sel_setActive_withOptions_error_1 =
+      _registerName1("setActive:withOptions:error:");
+  bool _objc_msgSend_1015(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool active,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1015(
+      obj,
+      sel,
+      active,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1015Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Bool,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1015 = __objc_msgSend_1015Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_activateWithOptions_completionHandler_1 =
+      _registerName1("activateWithOptions:completionHandler:");
+  void _objc_msgSend_1016(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<_ObjCBlock> handler,
+  ) {
+    return __objc_msgSend_1016(
+      obj,
+      sel,
+      options,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_1016Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_1016 = __objc_msgSend_1016Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_setPreferredSampleRate_error_1 =
+      _registerName1("setPreferredSampleRate:error:");
+  bool _objc_msgSend_1017(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double sampleRate,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1017(
+      obj,
+      sel,
+      sampleRate,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1017Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Double,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1017 = __objc_msgSend_1017Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_preferredSampleRate1 = _registerName1("preferredSampleRate");
+  late final _sel_setPreferredIOBufferDuration_error_1 =
+      _registerName1("setPreferredIOBufferDuration:error:");
+  late final _sel_preferredIOBufferDuration1 =
+      _registerName1("preferredIOBufferDuration");
+  late final _sel_setPreferredInputNumberOfChannels_error_1 =
+      _registerName1("setPreferredInputNumberOfChannels:error:");
+  bool _objc_msgSend_1018(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int count,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1018(
+      obj,
+      sel,
+      count,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1018Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1018 = __objc_msgSend_1018Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_preferredInputNumberOfChannels1 =
+      _registerName1("preferredInputNumberOfChannels");
+  late final _sel_setPreferredOutputNumberOfChannels_error_1 =
+      _registerName1("setPreferredOutputNumberOfChannels:error:");
+  late final _sel_preferredOutputNumberOfChannels1 =
+      _registerName1("preferredOutputNumberOfChannels");
+  late final _sel_setPreferredInputOrientation_error_1 =
+      _registerName1("setPreferredInputOrientation:error:");
+  bool _objc_msgSend_1019(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int orientation,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1019(
+      obj,
+      sel,
+      orientation,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1019Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1019 = __objc_msgSend_1019Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_preferredInputOrientation1 =
+      _registerName1("preferredInputOrientation");
+  int _objc_msgSend_1020(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1020(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1020Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1020 = __objc_msgSend_1020Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_inputOrientation1 = _registerName1("inputOrientation");
+  late final _sel_maximumInputNumberOfChannels1 =
+      _registerName1("maximumInputNumberOfChannels");
+  late final _sel_maximumOutputNumberOfChannels1 =
+      _registerName1("maximumOutputNumberOfChannels");
+  late final _sel_setInputGain_error_1 = _registerName1("setInputGain:error:");
+  bool _objc_msgSend_1021(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double gain,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1021(
+      obj,
+      sel,
+      gain,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1021Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Float,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1021 = __objc_msgSend_1021Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_inputGain1 = _registerName1("inputGain");
+  late final _sel_isInputGainSettable1 = _registerName1("isInputGainSettable");
+  late final _sel_isInputAvailable1 = _registerName1("isInputAvailable");
+  late final _sel_inputDataSources1 = _registerName1("inputDataSources");
+  late final _sel_inputDataSource1 = _registerName1("inputDataSource");
+  late final _sel_setInputDataSource_error_1 =
+      _registerName1("setInputDataSource:error:");
+  late final _sel_outputDataSources1 = _registerName1("outputDataSources");
+  late final _sel_outputDataSource1 = _registerName1("outputDataSource");
+  late final _sel_setOutputDataSource_error_1 =
+      _registerName1("setOutputDataSource:error:");
+  late final _sel_sampleRate1 = _registerName1("sampleRate");
+  late final _sel_inputNumberOfChannels1 =
+      _registerName1("inputNumberOfChannels");
+  late final _sel_outputNumberOfChannels1 =
+      _registerName1("outputNumberOfChannels");
+  late final _sel_inputLatency1 = _registerName1("inputLatency");
+  late final _sel_outputLatency1 = _registerName1("outputLatency");
+  late final _sel_IOBufferDuration1 = _registerName1("IOBufferDuration");
+  late final _sel_isOtherAudioPlaying1 = _registerName1("isOtherAudioPlaying");
+  late final _sel_secondaryAudioShouldBeSilencedHint1 =
+      _registerName1("secondaryAudioShouldBeSilencedHint");
+  late final _sel_outputVolume1 = _registerName1("outputVolume");
+  late final _sel_promptStyle1 = _registerName1("promptStyle");
+  int _objc_msgSend_1022(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1022(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1022Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1022 = __objc_msgSend_1022Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_availableInputs1 = _registerName1("availableInputs");
+  late final _class_AVAudioSessionRouteDescription1 =
+      _getClass1("AVAudioSessionRouteDescription");
+  late final _sel_inputs1 = _registerName1("inputs");
+  late final _sel_outputs1 = _registerName1("outputs");
+  late final _sel_currentRoute1 = _registerName1("currentRoute");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1023(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1023(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1023Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1023 = __objc_msgSend_1023Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAggregatedIOPreference_error_1 =
+      _registerName1("setAggregatedIOPreference:error:");
+  bool _objc_msgSend_1024(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int inIOType,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1024(
+      obj,
+      sel,
+      inIOType,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1024Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1024 = __objc_msgSend_1024Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setSupportsMultichannelContent_error_1 =
+      _registerName1("setSupportsMultichannelContent:error:");
+  late final _sel_supportsMultichannelContent1 =
+      _registerName1("supportsMultichannelContent");
+  late final _sel_setActive_withFlags_error_1 =
+      _registerName1("setActive:withFlags:error:");
+  bool _objc_msgSend_1025(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool active,
+    int flags,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1025(
+      obj,
+      sel,
+      active,
+      flags,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1025Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Bool,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1025 = __objc_msgSend_1025Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_inputIsAvailable1 = _registerName1("inputIsAvailable");
+  late final _sel_currentHardwareSampleRate1 =
+      _registerName1("currentHardwareSampleRate");
+  late final _sel_currentHardwareInputNumberOfChannels1 =
+      _registerName1("currentHardwareInputNumberOfChannels");
+  late final _sel_currentHardwareOutputNumberOfChannels1 =
+      _registerName1("currentHardwareOutputNumberOfChannels");
+  late final _sel_setPreferredHardwareSampleRate_error_1 =
+      _registerName1("setPreferredHardwareSampleRate:error:");
+  late final _sel_preferredHardwareSampleRate1 =
+      _registerName1("preferredHardwareSampleRate");
+  late final _class_AVAudioPlayer1 = _getClass1("AVAudioPlayer");
+  late final _sel_initWithData_error_1 = _registerName1("initWithData:error:");
+  instancetype _objc_msgSend_1026(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1026(
+      obj,
+      sel,
+      data,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1026Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1026 = __objc_msgSend_1026Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfURL_fileTypeHint_error_1 =
+      _registerName1("initWithContentsOfURL:fileTypeHint:error:");
+  instancetype _objc_msgSend_1027(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> utiString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1027(
+      obj,
+      sel,
+      url,
+      utiString,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1027Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1027 = __objc_msgSend_1027Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithData_fileTypeHint_error_1 =
+      _registerName1("initWithData:fileTypeHint:error:");
+  instancetype _objc_msgSend_1028(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> utiString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_1028(
+      obj,
+      sel,
+      data,
+      utiString,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_1028Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_1028 = __objc_msgSend_1028Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_prepareToPlay1 = _registerName1("prepareToPlay");
+  late final _sel_play1 = _registerName1("play");
+  late final _sel_playAtTime_1 = _registerName1("playAtTime:");
+  bool _objc_msgSend_1029(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double time,
+  ) {
+    return __objc_msgSend_1029(
+      obj,
+      sel,
+      time,
+    );
+  }
+
+  late final __objc_msgSend_1029Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_1029 = __objc_msgSend_1029Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_isPlaying1 = _registerName1("isPlaying");
+  late final _sel_numberOfChannels1 = _registerName1("numberOfChannels");
+  late final _sel_currentDevice1 = _registerName1("currentDevice");
+  late final _sel_setCurrentDevice_1 = _registerName1("setCurrentDevice:");
+  late final _sel_url1 = _registerName1("url");
+  late final _sel_pan1 = _registerName1("pan");
+  late final _sel_setPan_1 = _registerName1("setPan:");
+  late final _sel_volume1 = _registerName1("volume");
+  late final _sel_setVolume_1 = _registerName1("setVolume:");
+  late final _sel_setVolume_fadeDuration_1 =
+      _registerName1("setVolume:fadeDuration:");
+  void _objc_msgSend_1030(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double volume,
+    double duration,
+  ) {
+    return __objc_msgSend_1030(
+      obj,
+      sel,
+      volume,
+      duration,
+    );
+  }
+
+  late final __objc_msgSend_1030Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float, NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_1030 = __objc_msgSend_1030Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double, double)>();
+
+  late final _sel_enableRate1 = _registerName1("enableRate");
+  late final _sel_setEnableRate_1 = _registerName1("setEnableRate:");
+  late final _sel_rate1 = _registerName1("rate");
+  late final _sel_setRate_1 = _registerName1("setRate:");
+  late final _sel_currentTime1 = _registerName1("currentTime");
+  late final _sel_setCurrentTime_1 = _registerName1("setCurrentTime:");
+  late final _sel_deviceCurrentTime1 = _registerName1("deviceCurrentTime");
+  late final _sel_numberOfLoops1 = _registerName1("numberOfLoops");
+  late final _sel_setNumberOfLoops_1 = _registerName1("setNumberOfLoops:");
+  late final _sel_settings1 = _registerName1("settings");
+  late final _class_AVAudioFormat1 = _getClass1("AVAudioFormat");
+  late final _sel_initWithStreamDescription_1 =
+      _registerName1("initWithStreamDescription:");
+  instancetype _objc_msgSend_1031(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<AudioStreamBasicDescription> asbd,
+  ) {
+    return __objc_msgSend_1031(
+      obj,
+      sel,
+      asbd,
+    );
+  }
+
+  late final __objc_msgSend_1031Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<AudioStreamBasicDescription>)>>('objc_msgSend');
+  late final __objc_msgSend_1031 = __objc_msgSend_1031Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<AudioStreamBasicDescription>)>();
+
+  late final _class_AVAudioChannelLayout1 = _getClass1("AVAudioChannelLayout");
+  late final _sel_initWithLayoutTag_1 = _registerName1("initWithLayoutTag:");
+  instancetype _objc_msgSend_1032(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int layoutTag,
+  ) {
+    return __objc_msgSend_1032(
+      obj,
+      sel,
+      layoutTag,
+    );
+  }
+
+  late final __objc_msgSend_1032Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              AudioChannelLayoutTag)>>('objc_msgSend');
+  late final __objc_msgSend_1032 = __objc_msgSend_1032Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLayout_1 = _registerName1("initWithLayout:");
+  instancetype _objc_msgSend_1033(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<AudioChannelLayout> layout,
+  ) {
+    return __objc_msgSend_1033(
+      obj,
+      sel,
+      layout,
+    );
+  }
+
+  late final __objc_msgSend_1033Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<AudioChannelLayout>)>>('objc_msgSend');
+  late final __objc_msgSend_1033 = __objc_msgSend_1033Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<AudioChannelLayout>)>();
+
+  late final _sel_isEqual_1 = _registerName1("isEqual:");
+  late final _sel_layoutWithLayoutTag_1 =
+      _registerName1("layoutWithLayoutTag:");
+  late final _sel_layoutWithLayout_1 = _registerName1("layoutWithLayout:");
+  late final _sel_layoutTag1 = _registerName1("layoutTag");
+  late final _sel_layout1 = _registerName1("layout");
+  ffi.Pointer<AudioChannelLayout> _objc_msgSend_1034(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1034(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1034Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<AudioChannelLayout> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1034 = __objc_msgSend_1034Ptr.asFunction<
+      ffi.Pointer<AudioChannelLayout> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_channelCount1 = _registerName1("channelCount");
+  int _objc_msgSend_1035(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1035(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1035Ptr = _lookup<
+      ffi.NativeFunction<
+          AVAudioChannelCount Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1035 = __objc_msgSend_1035Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithStreamDescription_channelLayout_1 =
+      _registerName1("initWithStreamDescription:channelLayout:");
+  instancetype _objc_msgSend_1036(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<AudioStreamBasicDescription> asbd,
+    ffi.Pointer<ObjCObject> layout,
+  ) {
+    return __objc_msgSend_1036(
+      obj,
+      sel,
+      asbd,
+      layout,
+    );
+  }
+
+  late final __objc_msgSend_1036Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<AudioStreamBasicDescription>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_1036 = __objc_msgSend_1036Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<AudioStreamBasicDescription>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initStandardFormatWithSampleRate_channels_1 =
+      _registerName1("initStandardFormatWithSampleRate:channels:");
+  instancetype _objc_msgSend_1037(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double sampleRate,
+    int channels,
+  ) {
+    return __objc_msgSend_1037(
+      obj,
+      sel,
+      sampleRate,
+      channels,
+    );
+  }
+
+  late final __objc_msgSend_1037Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, AVAudioChannelCount)>>('objc_msgSend');
+  late final __objc_msgSend_1037 = __objc_msgSend_1037Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double, int)>();
+
+  late final _sel_initStandardFormatWithSampleRate_channelLayout_1 =
+      _registerName1("initStandardFormatWithSampleRate:channelLayout:");
+  instancetype _objc_msgSend_1038(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double sampleRate,
+    ffi.Pointer<ObjCObject> layout,
+  ) {
+    return __objc_msgSend_1038(
+      obj,
+      sel,
+      sampleRate,
+      layout,
+    );
+  }
+
+  late final __objc_msgSend_1038Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_1038 = __objc_msgSend_1038Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          double, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithCommonFormat_sampleRate_channels_interleaved_1 =
+      _registerName1("initWithCommonFormat:sampleRate:channels:interleaved:");
+  instancetype _objc_msgSend_1039(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int format,
+    double sampleRate,
+    int channels,
+    bool interleaved,
+  ) {
+    return __objc_msgSend_1039(
+      obj,
+      sel,
+      format,
+      sampleRate,
+      channels,
+      interleaved,
+    );
+  }
+
+  late final __objc_msgSend_1039Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Double,
+              AVAudioChannelCount,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_1039 = __objc_msgSend_1039Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          double, int, bool)>();
+
+  late final _sel_initWithCommonFormat_sampleRate_interleaved_channelLayout_1 =
+      _registerName1(
+          "initWithCommonFormat:sampleRate:interleaved:channelLayout:");
+  instancetype _objc_msgSend_1040(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int format,
+    double sampleRate,
+    bool interleaved,
+    ffi.Pointer<ObjCObject> layout,
+  ) {
+    return __objc_msgSend_1040(
+      obj,
+      sel,
+      format,
+      sampleRate,
+      interleaved,
+      layout,
+    );
+  }
+
+  late final __objc_msgSend_1040Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Double,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_1040 = __objc_msgSend_1040Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          double, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithSettings_1 = _registerName1("initWithSettings:");
+  late final _sel_initWithCMAudioFormatDescription_1 =
+      _registerName1("initWithCMAudioFormatDescription:");
+  instancetype _objc_msgSend_1041(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    CMAudioFormatDescriptionRef formatDescription,
+  ) {
+    return __objc_msgSend_1041(
+      obj,
+      sel,
+      formatDescription,
+    );
+  }
+
+  late final __objc_msgSend_1041Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              CMAudioFormatDescriptionRef)>>('objc_msgSend');
+  late final __objc_msgSend_1041 = __objc_msgSend_1041Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          CMAudioFormatDescriptionRef)>();
+
+  late final _sel_isStandard1 = _registerName1("isStandard");
+  late final _sel_commonFormat1 = _registerName1("commonFormat");
+  int _objc_msgSend_1042(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1042(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1042Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1042 = __objc_msgSend_1042Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_isInterleaved1 = _registerName1("isInterleaved");
+  late final _sel_streamDescription1 = _registerName1("streamDescription");
+  ffi.Pointer<AudioStreamBasicDescription> _objc_msgSend_1043(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1043(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1043Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<AudioStreamBasicDescription> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1043 = __objc_msgSend_1043Ptr.asFunction<
+      ffi.Pointer<AudioStreamBasicDescription> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_channelLayout1 = _registerName1("channelLayout");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1044(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1044(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1044Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1044 = __objc_msgSend_1044Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_magicCookie1 = _registerName1("magicCookie");
+  late final _sel_setMagicCookie_1 = _registerName1("setMagicCookie:");
+  late final _sel_formatDescription1 = _registerName1("formatDescription");
+  CMAudioFormatDescriptionRef _objc_msgSend_1045(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1045(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1045Ptr = _lookup<
+      ffi.NativeFunction<
+          CMAudioFormatDescriptionRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1045 = __objc_msgSend_1045Ptr.asFunction<
+      CMAudioFormatDescriptionRef Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_1046(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1046(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1046Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1046 = __objc_msgSend_1046Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_isMeteringEnabled1 = _registerName1("isMeteringEnabled");
+  late final _sel_setMeteringEnabled_1 = _registerName1("setMeteringEnabled:");
+  late final _sel_updateMeters1 = _registerName1("updateMeters");
+  late final _sel_peakPowerForChannel_1 =
+      _registerName1("peakPowerForChannel:");
+  double _objc_msgSend_1047(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int channelNumber,
+  ) {
+    return __objc_msgSend_1047(
+      obj,
+      sel,
+      channelNumber,
+    );
+  }
+
+  late final __objc_msgSend_1047Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_1047 = __objc_msgSend_1047Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_averagePowerForChannel_1 =
+      _registerName1("averagePowerForChannel:");
+  late final _sel_channelAssignments1 = _registerName1("channelAssignments");
+  late final _sel_setChannelAssignments_1 =
+      _registerName1("setChannelAssignments:");
+}
+
+class _ObjCWrapper implements ffi.Finalizable {
+  final ffi.Pointer<ObjCObject> _id;
+  final AVFAudio _lib;
+  bool _pendingRelease;
+
+  _ObjCWrapper._(this._id, this._lib,
+      {bool retain = false, bool release = false})
+      : _pendingRelease = release {
+    if (retain) {
+      _lib._objc_retain(_id.cast());
+    }
+    if (release) {
+      _lib._objc_releaseFinalizer2.attach(this, _id.cast(), detach: this);
+    }
+  }
+
+  /// Releases the reference to the underlying ObjC object held by this wrapper.
+  /// Throws a StateError if this wrapper doesn't currently hold a reference.
+  void release() {
+    if (_pendingRelease) {
+      _pendingRelease = false;
+      _lib._objc_release(_id.cast());
+      _lib._objc_releaseFinalizer2.detach(this);
+    } else {
+      throw StateError(
+          'Released an ObjC object that was unowned or already released.');
+    }
+  }
+
+  @override
+  bool operator ==(Object other) {
+    return other is _ObjCWrapper && _id == other._id;
+  }
+
+  @override
+  int get hashCode => _id.hashCode;
+}
+
+class NSObject extends _ObjCWrapper {
+  NSObject._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSObject] that points to the same underlying object as [other].
+  static NSObject castFrom<T extends _ObjCWrapper>(T other) {
+    return NSObject._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSObject] that wraps the given raw object pointer.
+  static NSObject castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSObject._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSObject].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSObject1);
+  }
+
+  static void load(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSObject1, _lib._sel_load1);
+  }
+
+  static void initialize(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSObject1, _lib._sel_initialize1);
+  }
+
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_new1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject allocWithZone_(AVFAudio _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_allocWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  void dealloc() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dealloc1);
+  }
+
+  void finalize() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finalize1);
+  }
+
+  NSObject copy() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_copy1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject mutableCopy() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_mutableCopy1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject copyWithZone_(AVFAudio _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_copyWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject mutableCopyWithZone_(
+      AVFAudio _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_mutableCopyWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool instancesRespondToSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSObject1,
+        _lib._sel_instancesRespondToSelector_1, aSelector);
+  }
+
+  static bool conformsToProtocol_(AVFAudio _lib, Protocol? protocol) {
+    return _lib._objc_msgSend_5(_lib._class_NSObject1,
+        _lib._sel_conformsToProtocol_1, protocol?._id ?? ffi.nullptr);
+  }
+
+  IMP methodForSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_6(_id, _lib._sel_methodForSelector_1, aSelector);
+  }
+
+  static IMP instanceMethodForSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_6(_lib._class_NSObject1,
+        _lib._sel_instanceMethodForSelector_1, aSelector);
+  }
+
+  void doesNotRecognizeSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_doesNotRecognizeSelector_1, aSelector);
+  }
+
+  NSObject forwardingTargetForSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_8(
+        _id, _lib._sel_forwardingTargetForSelector_1, aSelector);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void forwardInvocation_(NSInvocation? anInvocation) {
+    return _lib._objc_msgSend_372(
+        _id, _lib._sel_forwardInvocation_1, anInvocation?._id ?? ffi.nullptr);
+  }
+
+  NSMethodSignature methodSignatureForSelector_(
+      ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_373(
+        _id, _lib._sel_methodSignatureForSelector_1, aSelector);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMethodSignature instanceMethodSignatureForSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_373(_lib._class_NSObject1,
+        _lib._sel_instanceMethodSignatureForSelector_1, aSelector);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool allowsWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsWeakReference1);
+  }
+
+  bool retainWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_retainWeakReference1);
+  }
+
+  static bool isSubclassOfClass_(AVFAudio _lib, NSObject aClass) {
+    return _lib._objc_msgSend_0(
+        _lib._class_NSObject1, _lib._sel_isSubclassOfClass_1, aClass._id);
+  }
+
+  static bool resolveClassMethod_(AVFAudio _lib, ffi.Pointer<ObjCSel> sel) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSObject1, _lib._sel_resolveClassMethod_1, sel);
+  }
+
+  static bool resolveInstanceMethod_(AVFAudio _lib, ffi.Pointer<ObjCSel> sel) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSObject1, _lib._sel_resolveInstanceMethod_1, sel);
+  }
+
+  static int hash(AVFAudio _lib) {
+    return _lib._objc_msgSend_10(_lib._class_NSObject1, _lib._sel_hash1);
+  }
+
+  static NSObject superclass(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_superclass1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject class1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_class1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString description(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_20(_lib._class_NSObject1, _lib._sel_description1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString debugDescription(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_20(
+        _lib._class_NSObject1, _lib._sel_debugDescription1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int version(AVFAudio _lib) {
+    return _lib._objc_msgSend_78(_lib._class_NSObject1, _lib._sel_version1);
+  }
+
+  static void setVersion_(AVFAudio _lib, int aVersion) {
+    return _lib._objc_msgSend_374(
+        _lib._class_NSObject1, _lib._sel_setVersion_1, aVersion);
+  }
+
+  NSObject get classForCoder {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForCoder1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_replacementObjectForCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject awakeAfterUsingCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_awakeAfterUsingCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void poseAsClass_(AVFAudio _lib, NSObject aClass) {
+    return _lib._objc_msgSend_15(
+        _lib._class_NSObject1, _lib._sel_poseAsClass_1, aClass._id);
+  }
+
+  NSObject get autoContentAccessingProxy {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_autoContentAccessingProxy1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void
+      attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_(
+          NSError? error,
+          int recoveryOptionIndex,
+          NSObject delegate,
+          ffi.Pointer<ObjCSel> didRecoverSelector,
+          ffi.Pointer<ffi.Void> contextInfo) {
+    return _lib._objc_msgSend_375(
+        _id,
+        _lib._sel_attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_1,
+        error?._id ?? ffi.nullptr,
+        recoveryOptionIndex,
+        delegate._id,
+        didRecoverSelector,
+        contextInfo);
+  }
+
+  bool attemptRecoveryFromError_optionIndex_(
+      NSError? error, int recoveryOptionIndex) {
+    return _lib._objc_msgSend_376(
+        _id,
+        _lib._sel_attemptRecoveryFromError_optionIndex_1,
+        error?._id ?? ffi.nullptr,
+        recoveryOptionIndex);
+  }
+
+  void performSelector_withObject_afterDelay_inModes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument,
+      double delay,
+      NSArray? modes) {
+    return _lib._objc_msgSend_377(
+        _id,
+        _lib._sel_performSelector_withObject_afterDelay_inModes_1,
+        aSelector,
+        anArgument._id,
+        delay,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void performSelector_withObject_afterDelay_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject anArgument, double delay) {
+    return _lib._objc_msgSend_378(
+        _id,
+        _lib._sel_performSelector_withObject_afterDelay_1,
+        aSelector,
+        anArgument._id,
+        delay);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSObject1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSObject1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  void URL_resourceDataDidBecomeAvailable_(NSURL? sender, NSData? newBytes) {
+    return _lib._objc_msgSend_379(
+        _id,
+        _lib._sel_URL_resourceDataDidBecomeAvailable_1,
+        sender?._id ?? ffi.nullptr,
+        newBytes?._id ?? ffi.nullptr);
+  }
+
+  void URLResourceDidFinishLoading_(NSURL? sender) {
+    return _lib._objc_msgSend_380(_id, _lib._sel_URLResourceDidFinishLoading_1,
+        sender?._id ?? ffi.nullptr);
+  }
+
+  void URLResourceDidCancelLoading_(NSURL? sender) {
+    return _lib._objc_msgSend_380(_id, _lib._sel_URLResourceDidCancelLoading_1,
+        sender?._id ?? ffi.nullptr);
+  }
+
+  void URL_resourceDidFailLoadingWithReason_(NSURL? sender, NSString? reason) {
+    return _lib._objc_msgSend_381(
+        _id,
+        _lib._sel_URL_resourceDidFailLoadingWithReason_1,
+        sender?._id ?? ffi.nullptr,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  bool fileManager_shouldProceedAfterError_(
+      NSFileManager? fm, NSDictionary? errorInfo) {
+    return _lib._objc_msgSend_407(
+        _id,
+        _lib._sel_fileManager_shouldProceedAfterError_1,
+        fm?._id ?? ffi.nullptr,
+        errorInfo?._id ?? ffi.nullptr);
+  }
+
+  void fileManager_willProcessPath_(NSFileManager? fm, NSString? path) {
+    return _lib._objc_msgSend_408(_id, _lib._sel_fileManager_willProcessPath_1,
+        fm?._id ?? ffi.nullptr, path?._id ?? ffi.nullptr);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSObject1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  bool validateValue_forKey_error_(ffi.Pointer<ffi.Pointer<ObjCObject>> ioValue,
+      NSString? inKey, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_220(_id, _lib._sel_validateValue_forKey_error_1,
+        ioValue, inKey?._id ?? ffi.nullptr, outError);
+  }
+
+  NSMutableArray mutableArrayValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_425(
+        _id, _lib._sel_mutableArrayValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet mutableOrderedSetValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_441(
+        _id, _lib._sel_mutableOrderedSetValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet mutableSetValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_442(
+        _id, _lib._sel_mutableSetValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKeyPath_(NSObject value, NSString? keyPath) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_setValue_forKeyPath_1,
+        value._id, keyPath?._id ?? ffi.nullptr);
+  }
+
+  bool validateValue_forKeyPath_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> ioValue,
+      NSString? inKeyPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_220(
+        _id,
+        _lib._sel_validateValue_forKeyPath_error_1,
+        ioValue,
+        inKeyPath?._id ?? ffi.nullptr,
+        outError);
+  }
+
+  NSMutableArray mutableArrayValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_425(_id,
+        _lib._sel_mutableArrayValueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet mutableOrderedSetValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_441(
+        _id,
+        _lib._sel_mutableOrderedSetValueForKeyPath_1,
+        keyPath?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet mutableSetValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_442(_id,
+        _lib._sel_mutableSetValueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueForUndefinedKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForUndefinedKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forUndefinedKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_setValue_forUndefinedKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void setNilValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setNilValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary dictionaryWithValuesForKeys_(NSArray? keys) {
+    final _ret = _lib._objc_msgSend_443(
+        _id, _lib._sel_dictionaryWithValuesForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValuesForKeysWithDictionary_(NSDictionary? keyedValues) {
+    return _lib._objc_msgSend_444(
+        _id,
+        _lib._sel_setValuesForKeysWithDictionary_1,
+        keyedValues?._id ?? ffi.nullptr);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSObject1, _lib._sel_useStoredAccessor1);
+  }
+
+  NSObject storedValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_storedValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void takeStoredValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_takeStoredValue_forKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void takeValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_takeValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void takeValue_forKeyPath_(NSObject value, NSString? keyPath) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_takeValue_forKeyPath_1,
+        value._id, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSObject handleQueryWithUnboundKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_handleQueryWithUnboundKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void handleTakeValue_forUnboundKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_handleTakeValue_forUnboundKey_1,
+        value._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void unableToSetNilForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_unableToSetNilForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary valuesForKeys_(NSArray? keys) {
+    final _ret = _lib._objc_msgSend_443(
+        _id, _lib._sel_valuesForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void takeValuesFromDictionary_(NSDictionary? properties) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_takeValuesFromDictionary_1,
+        properties?._id ?? ffi.nullptr);
+  }
+
+  void observeValueForKeyPath_ofObject_change_context_(NSString? keyPath,
+      NSObject object, NSDictionary? change, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_445(
+        _id,
+        _lib._sel_observeValueForKeyPath_ofObject_change_context_1,
+        keyPath?._id ?? ffi.nullptr,
+        object._id,
+        change?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  void willChangeValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_willChangeValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  void didChangeValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_didChangeValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  void willChange_valuesAtIndexes_forKey_(
+      int changeKind, NSIndexSet? indexes, NSString? key) {
+    return _lib._objc_msgSend_446(
+        _id,
+        _lib._sel_willChange_valuesAtIndexes_forKey_1,
+        changeKind,
+        indexes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void didChange_valuesAtIndexes_forKey_(
+      int changeKind, NSIndexSet? indexes, NSString? key) {
+    return _lib._objc_msgSend_446(
+        _id,
+        _lib._sel_didChange_valuesAtIndexes_forKey_1,
+        changeKind,
+        indexes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void willChangeValueForKey_withSetMutation_usingObjects_(
+      NSString? key, int mutationKind, NSSet? objects) {
+    return _lib._objc_msgSend_447(
+        _id,
+        _lib._sel_willChangeValueForKey_withSetMutation_usingObjects_1,
+        key?._id ?? ffi.nullptr,
+        mutationKind,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void didChangeValueForKey_withSetMutation_usingObjects_(
+      NSString? key, int mutationKind, NSSet? objects) {
+    return _lib._objc_msgSend_447(
+        _id,
+        _lib._sel_didChangeValueForKey_withSetMutation_usingObjects_1,
+        key?._id ?? ffi.nullptr,
+        mutationKind,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSObject1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSObject1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Void> get observationInfo {
+    return _lib._objc_msgSend_19(_id, _lib._sel_observationInfo1);
+  }
+
+  set observationInfo(ffi.Pointer<ffi.Void> value) {
+    _lib._objc_msgSend_448(_id, _lib._sel_setObservationInfo_1, value);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSObject1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  NSObject get classForKeyedArchiver {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForKeyedArchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForKeyedArchiver_(NSKeyedArchiver? archiver) {
+    final _ret = _lib._objc_msgSend_461(
+        _id,
+        _lib._sel_replacementObjectForKeyedArchiver_1,
+        archiver?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSObject1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSObject1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void performSelectorOnMainThread_withObject_waitUntilDone_modes_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg, bool wait, NSArray? array) {
+    return _lib._objc_msgSend_462(
+        _id,
+        _lib._sel_performSelectorOnMainThread_withObject_waitUntilDone_modes_1,
+        aSelector,
+        arg._id,
+        wait,
+        array?._id ?? ffi.nullptr);
+  }
+
+  void performSelectorOnMainThread_withObject_waitUntilDone_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg, bool wait) {
+    return _lib._objc_msgSend_463(
+        _id,
+        _lib._sel_performSelectorOnMainThread_withObject_waitUntilDone_1,
+        aSelector,
+        arg._id,
+        wait);
+  }
+
+  void performSelector_onThread_withObject_waitUntilDone_modes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSThread? thr,
+      NSObject arg,
+      bool wait,
+      NSArray? array) {
+    return _lib._objc_msgSend_480(
+        _id,
+        _lib._sel_performSelector_onThread_withObject_waitUntilDone_modes_1,
+        aSelector,
+        thr?._id ?? ffi.nullptr,
+        arg._id,
+        wait,
+        array?._id ?? ffi.nullptr);
+  }
+
+  void performSelector_onThread_withObject_waitUntilDone_(
+      ffi.Pointer<ObjCSel> aSelector, NSThread? thr, NSObject arg, bool wait) {
+    return _lib._objc_msgSend_481(
+        _id,
+        _lib._sel_performSelector_onThread_withObject_waitUntilDone_1,
+        aSelector,
+        thr?._id ?? ffi.nullptr,
+        arg._id,
+        wait);
+  }
+
+  void performSelectorInBackground_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg) {
+    return _lib._objc_msgSend_82(_id,
+        _lib._sel_performSelectorInBackground_withObject_1, aSelector, arg._id);
+  }
+
+  NSObject get classForArchiver {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForArchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForArchiver_(NSArchiver? archiver) {
+    final _ret = _lib._objc_msgSend_484(_id,
+        _lib._sel_replacementObjectForArchiver_1, archiver?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get classForPortCoder {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForPortCoder1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForPortCoder_(NSPortCoder? coder) {
+    final _ret = _lib._objc_msgSend_522(_id,
+        _lib._sel_replacementObjectForPortCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSClassDescription? get classDescription {
+    final _ret = _lib._objc_msgSend_525(_id, _lib._sel_classDescription1);
+    return _ret.address == 0
+        ? null
+        : NSClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get attributeKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributeKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get toOneRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toOneRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get toManyRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toManyRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString inverseForRelationshipKey_(NSString? relationshipKey) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_inverseForRelationshipKey_1,
+        relationshipKey?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject scriptingValueForSpecifier_(
+      NSScriptObjectSpecifier? objectSpecifier) {
+    final _ret = _lib._objc_msgSend_569(
+        _id,
+        _lib._sel_scriptingValueForSpecifier_1,
+        objectSpecifier?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get scriptingProperties {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_scriptingProperties1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptingProperties(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setScriptingProperties_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject copyScriptingValue_forKey_withProperties_(
+      NSObject value, NSString? key, NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_570(
+        _id,
+        _lib._sel_copyScriptingValue_forKey_withProperties_1,
+        value._id,
+        key?._id ?? ffi.nullptr,
+        properties?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject
+      newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_(
+          NSObject objectClass,
+          NSString? key,
+          NSObject contentsValue,
+          NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_571(
+        _id,
+        _lib._sel_newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_1,
+        objectClass._id,
+        key?._id ?? ffi.nullptr,
+        contentsValue._id,
+        properties?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  int get classCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_classCode1);
+  }
+
+  NSString? get className {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_className1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueAtIndex_inPropertyWithKey_(int index, NSString? key) {
+    final _ret = _lib._objc_msgSend_572(
+        _id,
+        _lib._sel_valueAtIndex_inPropertyWithKey_1,
+        index,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueWithName_inPropertyWithKey_(NSString? name, NSString? key) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_valueWithName_inPropertyWithKey_1,
+        name?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueWithUniqueID_inPropertyWithKey_(
+      NSObject uniqueID, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_valueWithUniqueID_inPropertyWithKey_1,
+        uniqueID._id,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertValue_atIndex_inPropertyWithKey_(
+      NSObject value, int index, NSString? key) {
+    return _lib._objc_msgSend_573(
+        _id,
+        _lib._sel_insertValue_atIndex_inPropertyWithKey_1,
+        value._id,
+        index,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void removeValueAtIndex_fromPropertyWithKey_(int index, NSString? key) {
+    return _lib._objc_msgSend_574(
+        _id,
+        _lib._sel_removeValueAtIndex_fromPropertyWithKey_1,
+        index,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void replaceValueAtIndex_inPropertyWithKey_withValue_(
+      int index, NSString? key, NSObject value) {
+    return _lib._objc_msgSend_575(
+        _id,
+        _lib._sel_replaceValueAtIndex_inPropertyWithKey_withValue_1,
+        index,
+        key?._id ?? ffi.nullptr,
+        value._id);
+  }
+
+  void insertValue_inPropertyWithKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_insertValue_inPropertyWithKey_1,
+        value._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  NSObject coerceValue_forKey_(NSObject value, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(_id, _lib._sel_coerceValue_forKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier? get objectSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_objectSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray indicesOfObjectsByEvaluatingObjectSpecifier_(
+      NSScriptObjectSpecifier? specifier) {
+    final _ret = _lib._objc_msgSend_576(
+        _id,
+        _lib._sel_indicesOfObjectsByEvaluatingObjectSpecifier_1,
+        specifier?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isEqualTo_1, object._id);
+  }
+
+  bool isLessThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_isLessThanOrEqualTo_1, object._id);
+  }
+
+  bool isLessThan_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isLessThan_1, object._id);
+  }
+
+  bool isGreaterThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_isGreaterThanOrEqualTo_1, object._id);
+  }
+
+  bool isGreaterThan_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isGreaterThan_1, object._id);
+  }
+
+  bool isNotEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isNotEqualTo_1, object._id);
+  }
+
+  bool doesContain_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_doesContain_1, object._id);
+  }
+
+  bool isLike_(NSString? object) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isLike_1, object?._id ?? ffi.nullptr);
+  }
+
+  bool isCaseInsensitiveLike_(NSString? object) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isCaseInsensitiveLike_1, object?._id ?? ffi.nullptr);
+  }
+
+  bool scriptingIsEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsEqualTo_1, object._id);
+  }
+
+  bool scriptingIsLessThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsLessThanOrEqualTo_1, object._id);
+  }
+
+  bool scriptingIsLessThan_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsLessThan_1, object._id);
+  }
+
+  bool scriptingIsGreaterThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsGreaterThanOrEqualTo_1, object._id);
+  }
+
+  bool scriptingIsGreaterThan_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsGreaterThan_1, object._id);
+  }
+
+  bool scriptingBeginsWith_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingBeginsWith_1, object._id);
+  }
+
+  bool scriptingEndsWith_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_scriptingEndsWith_1, object._id);
+  }
+
+  bool scriptingContains_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_scriptingContains_1, object._id);
+  }
+}
+
+class ObjCSel extends ffi.Opaque {}
+
+class ObjCObject extends ffi.Opaque {}
+
+typedef instancetype = ffi.Pointer<ObjCObject>;
+
+class _NSZone extends ffi.Opaque {}
+
+class Protocol extends _ObjCWrapper {
+  Protocol._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [Protocol] that points to the same underlying object as [other].
+  static Protocol castFrom<T extends _ObjCWrapper>(T other) {
+    return Protocol._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [Protocol] that wraps the given raw object pointer.
+  static Protocol castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return Protocol._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [Protocol].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_Protocol1);
+  }
+}
+
+typedef IMP = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>;
+
+class NSInvocation extends NSObject {
+  NSInvocation._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInvocation] that points to the same underlying object as [other].
+  static NSInvocation castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInvocation._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSInvocation] that wraps the given raw object pointer.
+  static NSInvocation castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInvocation._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInvocation].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSInvocation1);
+  }
+
+  static NSInvocation invocationWithMethodSignature_(
+      AVFAudio _lib, NSMethodSignature? sig) {
+    final _ret = _lib._objc_msgSend_366(_lib._class_NSInvocation1,
+        _lib._sel_invocationWithMethodSignature_1, sig?._id ?? ffi.nullptr);
+    return NSInvocation._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMethodSignature? get methodSignature {
+    final _ret = _lib._objc_msgSend_367(_id, _lib._sel_methodSignature1);
+    return _ret.address == 0
+        ? null
+        : NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  void retainArguments() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_retainArguments1);
+  }
+
+  bool get argumentsRetained {
+    return _lib._objc_msgSend_12(_id, _lib._sel_argumentsRetained1);
+  }
+
+  NSObject get target {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_target1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set target(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setTarget_1, value._id);
+  }
+
+  ffi.Pointer<ObjCSel> get selector {
+    return _lib._objc_msgSend_369(_id, _lib._sel_selector1);
+  }
+
+  set selector(ffi.Pointer<ObjCSel> value) {
+    _lib._objc_msgSend_370(_id, _lib._sel_setSelector_1, value);
+  }
+
+  void getReturnValue_(ffi.Pointer<ffi.Void> retLoc) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getReturnValue_1, retLoc);
+  }
+
+  void setReturnValue_(ffi.Pointer<ffi.Void> retLoc) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_setReturnValue_1, retLoc);
+  }
+
+  void getArgument_atIndex_(ffi.Pointer<ffi.Void> argumentLocation, int idx) {
+    return _lib._objc_msgSend_371(
+        _id, _lib._sel_getArgument_atIndex_1, argumentLocation, idx);
+  }
+
+  void setArgument_atIndex_(ffi.Pointer<ffi.Void> argumentLocation, int idx) {
+    return _lib._objc_msgSend_371(
+        _id, _lib._sel_setArgument_atIndex_1, argumentLocation, idx);
+  }
+
+  void invoke() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invoke1);
+  }
+
+  void invokeWithTarget_(NSObject target) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_invokeWithTarget_1, target._id);
+  }
+
+  static NSInvocation new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInvocation1, _lib._sel_new1);
+    return NSInvocation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInvocation alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInvocation1, _lib._sel_alloc1);
+    return NSInvocation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInvocation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInvocation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInvocation1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInvocation1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInvocation1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInvocation1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInvocation1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSInvocation1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInvocation1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMethodSignature extends NSObject {
+  NSMethodSignature._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMethodSignature] that points to the same underlying object as [other].
+  static NSMethodSignature castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMethodSignature._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMethodSignature] that wraps the given raw object pointer.
+  static NSMethodSignature castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMethodSignature._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMethodSignature].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMethodSignature1);
+  }
+
+  static NSMethodSignature signatureWithObjCTypes_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> types) {
+    final _ret = _lib._objc_msgSend_9(_lib._class_NSMethodSignature1,
+        _lib._sel_signatureWithObjCTypes_1, types);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get numberOfArguments {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfArguments1);
+  }
+
+  ffi.Pointer<ffi.Char> getArgumentTypeAtIndex_(int idx) {
+    return _lib._objc_msgSend_11(_id, _lib._sel_getArgumentTypeAtIndex_1, idx);
+  }
+
+  int get frameLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_frameLength1);
+  }
+
+  bool isOneway() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isOneway1);
+  }
+
+  ffi.Pointer<ffi.Char> get methodReturnType {
+    return _lib._objc_msgSend_13(_id, _lib._sel_methodReturnType1);
+  }
+
+  int get methodReturnLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_methodReturnLength1);
+  }
+
+  static NSMethodSignature new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMethodSignature1, _lib._sel_new1);
+    return NSMethodSignature._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMethodSignature alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMethodSignature1, _lib._sel_alloc1);
+    return NSMethodSignature._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMethodSignature1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMethodSignature1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMethodSignature1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMethodSignature1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMethodSignature1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSUInteger = ffi.UnsignedLong;
+
+class NSSet extends NSObject {
+  NSSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSSet] that points to the same underlying object as [other].
+  static NSSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSSet] that wraps the given raw object pointer.
+  static NSSet castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSSet1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject member_(NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_id, _lib._sel_member_1, object._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject anyObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_anyObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsObject_(NSObject anObject) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, anObject._id);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool intersectsSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_intersectsSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isEqualToSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isSubsetOfSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void makeObjectsPerformSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_makeObjectsPerformSelector_1, aSelector);
+  }
+
+  void makeObjectsPerformSelector_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject argument) {
+    return _lib._objc_msgSend_82(
+        _id,
+        _lib._sel_makeObjectsPerformSelector_withObject_1,
+        aSelector,
+        argument._id);
+  }
+
+  NSSet setByAddingObject_(NSObject anObject) {
+    final _ret = _lib._objc_msgSend_356(
+        _id, _lib._sel_setByAddingObject_1, anObject._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet setByAddingObjectsFromSet_(NSSet? other) {
+    final _ret = _lib._objc_msgSend_357(
+        _id, _lib._sel_setByAddingObjectsFromSet_1, other?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet setByAddingObjectsFromArray_(NSArray? other) {
+    final _ret = _lib._objc_msgSend_358(_id,
+        _lib._sel_setByAddingObjectsFromArray_1, other?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock13 block) {
+    return _lib._objc_msgSend_359(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock13 block) {
+    return _lib._objc_msgSend_360(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  NSSet objectsPassingTest_(ObjCBlock14 predicate) {
+    final _ret = _lib._objc_msgSend_361(
+        _id, _lib._sel_objectsPassingTest_1, predicate._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet objectsWithOptions_passingTest_(int opts, ObjCBlock14 predicate) {
+    final _ret = _lib._objc_msgSend_362(
+        _id, _lib._sel_objectsWithOptions_passingTest_1, opts, predicate._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet set1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_set1);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObject_(AVFAudio _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSSet1, _lib._sel_setWithObject_1, object._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _lib._class_NSSet1, _lib._sel_setWithObjects_count_1, objects, cnt);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObjects_(AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSSet1, _lib._sel_setWithObjects_1, firstObj._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithSet_(AVFAudio _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _lib._class_NSSet1, _lib._sel_setWithSet_1, set?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithArray_(AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSSet1,
+        _lib._sel_setWithArray_1, array?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithSet_(NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _id, _lib._sel_initWithSet_1, set?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithSet_copyItems_(NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(
+        _id, _lib._sel_initWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSSet initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet filteredSetUsingPredicate_(NSPredicate? predicate) {
+    final _ret = _lib._objc_msgSend_365(_id,
+        _lib._sel_filteredSetUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_new1);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSSet alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_alloc1);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSEnumerator extends NSObject {
+  NSEnumerator._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSEnumerator] that points to the same underlying object as [other].
+  static NSEnumerator castFrom<T extends _ObjCWrapper>(T other) {
+    return NSEnumerator._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSEnumerator] that wraps the given raw object pointer.
+  static NSEnumerator castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSEnumerator._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSEnumerator].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSEnumerator1);
+  }
+
+  NSObject nextObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_nextObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSEnumerator new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSEnumerator1, _lib._sel_new1);
+    return NSEnumerator._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSEnumerator alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSEnumerator1, _lib._sel_alloc1);
+    return NSEnumerator._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSEnumerator1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSEnumerator1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSEnumerator1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSEnumerator1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSEnumerator1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSEnumerator1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSEnumerator1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSEnumerator1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSEnumerator1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSString extends NSObject {
+  NSString._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSString] that points to the same underlying object as [other].
+  static NSString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSString._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSString] that wraps the given raw object pointer.
+  static NSString castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSString1);
+  }
+
+  factory NSString(AVFAudio _lib, String str) {
+    final cstr = str.toNativeUtf8();
+    final nsstr = stringWithCString_encoding_(_lib, cstr.cast(), 4 /* UTF8 */);
+    pkg_ffi.calloc.free(cstr);
+    return nsstr;
+  }
+
+  @override
+  String toString() => (UTF8String).cast<pkg_ffi.Utf8>().toDartString();
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  int characterAtIndex_(int index) {
+    return _lib._objc_msgSend_17(_id, _lib._sel_characterAtIndex_1, index);
+  }
+
+  @override
+  NSString init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringFromIndex_(int from) {
+    final _ret =
+        _lib._objc_msgSend_293(_id, _lib._sel_substringFromIndex_1, from);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringToIndex_(int to) {
+    final _ret = _lib._objc_msgSend_293(_id, _lib._sel_substringToIndex_1, to);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_294(_id, _lib._sel_substringWithRange_1, range);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getCharacters_range_(ffi.Pointer<unichar> buffer, NSRange range) {
+    return _lib._objc_msgSend_295(
+        _id, _lib._sel_getCharacters_range_1, buffer, range);
+  }
+
+  int compare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_compare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int compare_options_(NSString? string, int mask) {
+    return _lib._objc_msgSend_297(
+        _id, _lib._sel_compare_options_1, string?._id ?? ffi.nullptr, mask);
+  }
+
+  int compare_options_range_(
+      NSString? string, int mask, NSRange rangeOfReceiverToCompare) {
+    return _lib._objc_msgSend_298(_id, _lib._sel_compare_options_range_1,
+        string?._id ?? ffi.nullptr, mask, rangeOfReceiverToCompare);
+  }
+
+  int compare_options_range_locale_(NSString? string, int mask,
+      NSRange rangeOfReceiverToCompare, NSObject locale) {
+    return _lib._objc_msgSend_299(_id, _lib._sel_compare_options_range_locale_1,
+        string?._id ?? ffi.nullptr, mask, rangeOfReceiverToCompare, locale._id);
+  }
+
+  int caseInsensitiveCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_caseInsensitiveCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int localizedCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_localizedCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int localizedCaseInsensitiveCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id,
+        _lib._sel_localizedCaseInsensitiveCompare_1,
+        string?._id ?? ffi.nullptr);
+  }
+
+  int localizedStandardCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_localizedStandardCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToString_(NSString? aString) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isEqualToString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  bool hasPrefix_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasPrefix_1, str?._id ?? ffi.nullptr);
+  }
+
+  bool hasSuffix_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasSuffix_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSString commonPrefixWithString_options_(NSString? str, int mask) {
+    final _ret = _lib._objc_msgSend_300(
+        _id,
+        _lib._sel_commonPrefixWithString_options_1,
+        str?._id ?? ffi.nullptr,
+        mask);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsString_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_containsString_1, str?._id ?? ffi.nullptr);
+  }
+
+  bool localizedCaseInsensitiveContainsString_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_localizedCaseInsensitiveContainsString_1,
+        str?._id ?? ffi.nullptr);
+  }
+
+  bool localizedStandardContainsString_(NSString? str) {
+    return _lib._objc_msgSend_59(_id,
+        _lib._sel_localizedStandardContainsString_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSRange localizedStandardRangeOfString_(NSString? str) {
+    return _lib._objc_msgSend_301(_id,
+        _lib._sel_localizedStandardRangeOfString_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfString_(NSString? searchString) {
+    return _lib._objc_msgSend_301(
+        _id, _lib._sel_rangeOfString_1, searchString?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfString_options_(NSString? searchString, int mask) {
+    return _lib._objc_msgSend_302(_id, _lib._sel_rangeOfString_options_1,
+        searchString?._id ?? ffi.nullptr, mask);
+  }
+
+  NSRange rangeOfString_options_range_(
+      NSString? searchString, int mask, NSRange rangeOfReceiverToSearch) {
+    return _lib._objc_msgSend_303(_id, _lib._sel_rangeOfString_options_range_1,
+        searchString?._id ?? ffi.nullptr, mask, rangeOfReceiverToSearch);
+  }
+
+  NSRange rangeOfString_options_range_locale_(NSString? searchString, int mask,
+      NSRange rangeOfReceiverToSearch, NSLocale? locale) {
+    return _lib._objc_msgSend_304(
+        _id,
+        _lib._sel_rangeOfString_options_range_locale_1,
+        searchString?._id ?? ffi.nullptr,
+        mask,
+        rangeOfReceiverToSearch,
+        locale?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfCharacterFromSet_(NSCharacterSet? searchSet) {
+    return _lib._objc_msgSend_305(_id, _lib._sel_rangeOfCharacterFromSet_1,
+        searchSet?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfCharacterFromSet_options_(
+      NSCharacterSet? searchSet, int mask) {
+    return _lib._objc_msgSend_306(
+        _id,
+        _lib._sel_rangeOfCharacterFromSet_options_1,
+        searchSet?._id ?? ffi.nullptr,
+        mask);
+  }
+
+  NSRange rangeOfCharacterFromSet_options_range_(
+      NSCharacterSet? searchSet, int mask, NSRange rangeOfReceiverToSearch) {
+    return _lib._objc_msgSend_307(
+        _id,
+        _lib._sel_rangeOfCharacterFromSet_options_range_1,
+        searchSet?._id ?? ffi.nullptr,
+        mask,
+        rangeOfReceiverToSearch);
+  }
+
+  NSRange rangeOfComposedCharacterSequenceAtIndex_(int index) {
+    return _lib._objc_msgSend_308(
+        _id, _lib._sel_rangeOfComposedCharacterSequenceAtIndex_1, index);
+  }
+
+  NSRange rangeOfComposedCharacterSequencesForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(
+        _id, _lib._sel_rangeOfComposedCharacterSequencesForRange_1, range);
+  }
+
+  NSString stringByAppendingString_(NSString? aString) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_stringByAppendingString_1, aString?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_stringByAppendingFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  double get floatValue {
+    return _lib._objc_msgSend_215(_id, _lib._sel_floatValue1);
+  }
+
+  int get intValue {
+    return _lib._objc_msgSend_213(_id, _lib._sel_intValue1);
+  }
+
+  int get integerValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_integerValue1);
+  }
+
+  int get longLongValue {
+    return _lib._objc_msgSend_214(_id, _lib._sel_longLongValue1);
+  }
+
+  bool get boolValue {
+    return _lib._objc_msgSend_12(_id, _lib._sel_boolValue1);
+  }
+
+  NSString? get uppercaseString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_uppercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get lowercaseString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lowercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get capitalizedString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_capitalizedString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedUppercaseString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedUppercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedLowercaseString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedLowercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedCapitalizedString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedCapitalizedString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString uppercaseStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(
+        _id, _lib._sel_uppercaseStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString lowercaseStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(
+        _id, _lib._sel_lowercaseStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString capitalizedStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(_id,
+        _lib._sel_capitalizedStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getLineStart_end_contentsEnd_forRange_(
+      ffi.Pointer<NSUInteger> startPtr,
+      ffi.Pointer<NSUInteger> lineEndPtr,
+      ffi.Pointer<NSUInteger> contentsEndPtr,
+      NSRange range) {
+    return _lib._objc_msgSend_311(
+        _id,
+        _lib._sel_getLineStart_end_contentsEnd_forRange_1,
+        startPtr,
+        lineEndPtr,
+        contentsEndPtr,
+        range);
+  }
+
+  NSRange lineRangeForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(_id, _lib._sel_lineRangeForRange_1, range);
+  }
+
+  void getParagraphStart_end_contentsEnd_forRange_(
+      ffi.Pointer<NSUInteger> startPtr,
+      ffi.Pointer<NSUInteger> parEndPtr,
+      ffi.Pointer<NSUInteger> contentsEndPtr,
+      NSRange range) {
+    return _lib._objc_msgSend_311(
+        _id,
+        _lib._sel_getParagraphStart_end_contentsEnd_forRange_1,
+        startPtr,
+        parEndPtr,
+        contentsEndPtr,
+        range);
+  }
+
+  NSRange paragraphRangeForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(
+        _id, _lib._sel_paragraphRangeForRange_1, range);
+  }
+
+  void enumerateSubstringsInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock10 block) {
+    return _lib._objc_msgSend_312(
+        _id,
+        _lib._sel_enumerateSubstringsInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  void enumerateLinesUsingBlock_(ObjCBlock11 block) {
+    return _lib._objc_msgSend_313(
+        _id, _lib._sel_enumerateLinesUsingBlock_1, block._id);
+  }
+
+  ffi.Pointer<ffi.Char> get UTF8String {
+    return _lib._objc_msgSend_13(_id, _lib._sel_UTF8String1);
+  }
+
+  int get fastestEncoding {
+    return _lib._objc_msgSend_10(_id, _lib._sel_fastestEncoding1);
+  }
+
+  int get smallestEncoding {
+    return _lib._objc_msgSend_10(_id, _lib._sel_smallestEncoding1);
+  }
+
+  NSData dataUsingEncoding_allowLossyConversion_(int encoding, bool lossy) {
+    final _ret = _lib._objc_msgSend_314(_id,
+        _lib._sel_dataUsingEncoding_allowLossyConversion_1, encoding, lossy);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData dataUsingEncoding_(int encoding) {
+    final _ret =
+        _lib._objc_msgSend_315(_id, _lib._sel_dataUsingEncoding_1, encoding);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool canBeConvertedToEncoding_(int encoding) {
+    return _lib._objc_msgSend_89(
+        _id, _lib._sel_canBeConvertedToEncoding_1, encoding);
+  }
+
+  ffi.Pointer<ffi.Char> cStringUsingEncoding_(int encoding) {
+    return _lib._objc_msgSend_11(
+        _id, _lib._sel_cStringUsingEncoding_1, encoding);
+  }
+
+  bool getCString_maxLength_encoding_(
+      ffi.Pointer<ffi.Char> buffer, int maxBufferCount, int encoding) {
+    return _lib._objc_msgSend_316(
+        _id,
+        _lib._sel_getCString_maxLength_encoding_1,
+        buffer,
+        maxBufferCount,
+        encoding);
+  }
+
+  bool getBytes_maxLength_usedLength_encoding_options_range_remainingRange_(
+      ffi.Pointer<ffi.Void> buffer,
+      int maxBufferCount,
+      ffi.Pointer<NSUInteger> usedBufferCount,
+      int encoding,
+      int options,
+      NSRange range,
+      NSRangePointer leftover) {
+    return _lib._objc_msgSend_317(
+        _id,
+        _lib._sel_getBytes_maxLength_usedLength_encoding_options_range_remainingRange_1,
+        buffer,
+        maxBufferCount,
+        usedBufferCount,
+        encoding,
+        options,
+        range,
+        leftover);
+  }
+
+  int maximumLengthOfBytesUsingEncoding_(int enc) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_maximumLengthOfBytesUsingEncoding_1, enc);
+  }
+
+  int lengthOfBytesUsingEncoding_(int enc) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_lengthOfBytesUsingEncoding_1, enc);
+  }
+
+  static ffi.Pointer<NSStringEncoding> getAvailableStringEncodings(
+      AVFAudio _lib) {
+    return _lib._objc_msgSend_318(
+        _lib._class_NSString1, _lib._sel_availableStringEncodings1);
+  }
+
+  static NSString localizedNameOfStringEncoding_(AVFAudio _lib, int encoding) {
+    final _ret = _lib._objc_msgSend_293(_lib._class_NSString1,
+        _lib._sel_localizedNameOfStringEncoding_1, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultCStringEncoding(AVFAudio _lib) {
+    return _lib._objc_msgSend_10(
+        _lib._class_NSString1, _lib._sel_defaultCStringEncoding1);
+  }
+
+  NSString? get decomposedStringWithCanonicalMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_decomposedStringWithCanonicalMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get precomposedStringWithCanonicalMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_precomposedStringWithCanonicalMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get decomposedStringWithCompatibilityMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_decomposedStringWithCompatibilityMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get precomposedStringWithCompatibilityMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_precomposedStringWithCompatibilityMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsSeparatedByString_(NSString? separator) {
+    final _ret = _lib._objc_msgSend_119(_id,
+        _lib._sel_componentsSeparatedByString_1, separator?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsSeparatedByCharactersInSet_(NSCharacterSet? separator) {
+    final _ret = _lib._objc_msgSend_319(
+        _id,
+        _lib._sel_componentsSeparatedByCharactersInSet_1,
+        separator?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByTrimmingCharactersInSet_(NSCharacterSet? set) {
+    final _ret = _lib._objc_msgSend_320(_id,
+        _lib._sel_stringByTrimmingCharactersInSet_1, set?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByPaddingToLength_withString_startingAtIndex_(
+      int newLength, NSString? padString, int padIndex) {
+    final _ret = _lib._objc_msgSend_321(
+        _id,
+        _lib._sel_stringByPaddingToLength_withString_startingAtIndex_1,
+        newLength,
+        padString?._id ?? ffi.nullptr,
+        padIndex);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByFoldingWithOptions_locale_(int options, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_322(
+        _id,
+        _lib._sel_stringByFoldingWithOptions_locale_1,
+        options,
+        locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingOccurrencesOfString_withString_options_range_(
+      NSString? target,
+      NSString? replacement,
+      int options,
+      NSRange searchRange) {
+    final _ret = _lib._objc_msgSend_323(
+        _id,
+        _lib._sel_stringByReplacingOccurrencesOfString_withString_options_range_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr,
+        options,
+        searchRange);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingOccurrencesOfString_withString_(
+      NSString? target, NSString? replacement) {
+    final _ret = _lib._objc_msgSend_324(
+        _id,
+        _lib._sel_stringByReplacingOccurrencesOfString_withString_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingCharactersInRange_withString_(
+      NSRange range, NSString? replacement) {
+    final _ret = _lib._objc_msgSend_325(
+        _id,
+        _lib._sel_stringByReplacingCharactersInRange_withString_1,
+        range,
+        replacement?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByApplyingTransform_reverse_(
+      NSStringTransform transform, bool reverse) {
+    final _ret = _lib._objc_msgSend_326(
+        _id, _lib._sel_stringByApplyingTransform_reverse_1, transform, reverse);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_atomically_encoding_error_(NSURL? url, bool useAuxiliaryFile,
+      int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_327(
+        _id,
+        _lib._sel_writeToURL_atomically_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        useAuxiliaryFile,
+        enc,
+        error);
+  }
+
+  bool writeToFile_atomically_encoding_error_(
+      NSString? path,
+      bool useAuxiliaryFile,
+      int enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_328(
+        _id,
+        _lib._sel_writeToFile_atomically_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        useAuxiliaryFile,
+        enc,
+        error);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get hash {
+    return _lib._objc_msgSend_10(_id, _lib._sel_hash1);
+  }
+
+  NSString initWithCharactersNoCopy_length_freeWhenDone_(
+      ffi.Pointer<unichar> characters, int length, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_329(
+        _id,
+        _lib._sel_initWithCharactersNoCopy_length_freeWhenDone_1,
+        characters,
+        length,
+        freeBuffer);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithCharactersNoCopy_length_deallocator_(
+      ffi.Pointer<unichar> chars, int len, ObjCBlock12 deallocator) {
+    final _ret = _lib._objc_msgSend_330(
+        _id,
+        _lib._sel_initWithCharactersNoCopy_length_deallocator_1,
+        chars,
+        len,
+        deallocator._id);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithCharacters_length_(
+      ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(
+        _id, _lib._sel_initWithCharacters_length_1, characters, length);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithUTF8String_(ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(
+        _id, _lib._sel_initWithUTF8String_1, nullTerminatedCString);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithString_(NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, aString?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_arguments_(
+      NSString? format, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_333(
+        _id,
+        _lib._sel_initWithFormat_arguments_1,
+        format?._id ?? ffi.nullptr,
+        argList);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_locale_(NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(_id, _lib._sel_initWithFormat_locale_1,
+        format?._id ?? ffi.nullptr, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_locale_arguments_(
+      NSString? format, NSObject locale, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_334(
+        _id,
+        _lib._sel_initWithFormat_locale_arguments_1,
+        format?._id ?? ffi.nullptr,
+        locale._id,
+        argList);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithData_encoding_(NSData? data, int encoding) {
+    final _ret = _lib._objc_msgSend_335(_id, _lib._sel_initWithData_encoding_1,
+        data?._id ?? ffi.nullptr, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithBytes_length_encoding_(
+      ffi.Pointer<ffi.Void> bytes, int len, int encoding) {
+    final _ret = _lib._objc_msgSend_336(
+        _id, _lib._sel_initWithBytes_length_encoding_1, bytes, len, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithBytesNoCopy_length_encoding_freeWhenDone_(
+      ffi.Pointer<ffi.Void> bytes, int len, int encoding, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_337(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_encoding_freeWhenDone_1,
+        bytes,
+        len,
+        encoding,
+        freeBuffer);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithBytesNoCopy_length_encoding_deallocator_(
+      ffi.Pointer<ffi.Void> bytes,
+      int len,
+      int encoding,
+      ObjCBlock9 deallocator) {
+    final _ret = _lib._objc_msgSend_338(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_encoding_deallocator_1,
+        bytes,
+        len,
+        encoding,
+        deallocator._id);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSString string(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_string1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithCharacters_length_(
+      AVFAudio _lib, ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(_lib._class_NSString1,
+        _lib._sel_stringWithCharacters_length_1, characters, length);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithUTF8String_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(_lib._class_NSString1,
+        _lib._sel_stringWithUTF8String_1, nullTerminatedCString);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithFormat_(AVFAudio _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringWithFormat_(AVFAudio _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_localizedStringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithCString_encoding_(
+      ffi.Pointer<ffi.Char> nullTerminatedCString, int encoding) {
+    final _ret = _lib._objc_msgSend_339(_id,
+        _lib._sel_initWithCString_encoding_1, nullTerminatedCString, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithCString_encoding_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> cString, int enc) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSString1,
+        _lib._sel_stringWithCString_encoding_1, cString, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfURL_encoding_error_(
+      NSURL? url, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _id,
+        _lib._sel_initWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfFile_encoding_error_(
+      NSString? path, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _id,
+        _lib._sel_initWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfURL_encoding_error_(AVFAudio _lib,
+      NSURL? url, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfFile_encoding_error_(AVFAudio _lib,
+      NSString? path, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfURL_usedEncoding_error_(
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _id,
+        _lib._sel_initWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfFile_usedEncoding_error_(
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _id,
+        _lib._sel_initWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfURL_usedEncoding_error_(
+      AVFAudio _lib,
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfFile_usedEncoding_error_(
+      AVFAudio _lib,
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int
+      stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_(
+          AVFAudio _lib,
+          NSData? data,
+          NSDictionary? opts,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+          ffi.Pointer<ffi.Bool> usedLossyConversion) {
+    return _lib._objc_msgSend_344(
+        _lib._class_NSString1,
+        _lib._sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1,
+        data?._id ?? ffi.nullptr,
+        opts?._id ?? ffi.nullptr,
+        string,
+        usedLossyConversion);
+  }
+
+  NSObject propertyList() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_propertyList1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary propertyListFromStringsFileFormat() {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_propertyListFromStringsFileFormat1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Char> cString() {
+    return _lib._objc_msgSend_13(_id, _lib._sel_cString1);
+  }
+
+  ffi.Pointer<ffi.Char> lossyCString() {
+    return _lib._objc_msgSend_13(_id, _lib._sel_lossyCString1);
+  }
+
+  int cStringLength() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_cStringLength1);
+  }
+
+  void getCString_(ffi.Pointer<ffi.Char> bytes) {
+    return _lib._objc_msgSend_251(_id, _lib._sel_getCString_1, bytes);
+  }
+
+  void getCString_maxLength_(ffi.Pointer<ffi.Char> bytes, int maxLength) {
+    return _lib._objc_msgSend_345(
+        _id, _lib._sel_getCString_maxLength_1, bytes, maxLength);
+  }
+
+  void getCString_maxLength_range_remainingRange_(ffi.Pointer<ffi.Char> bytes,
+      int maxLength, NSRange aRange, NSRangePointer leftoverRange) {
+    return _lib._objc_msgSend_346(
+        _id,
+        _lib._sel_getCString_maxLength_range_remainingRange_1,
+        bytes,
+        maxLength,
+        aRange,
+        leftoverRange);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  NSObject initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCStringNoCopy_length_freeWhenDone_(
+      ffi.Pointer<ffi.Char> bytes, int length, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_347(
+        _id,
+        _lib._sel_initWithCStringNoCopy_length_freeWhenDone_1,
+        bytes,
+        length,
+        freeBuffer);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject initWithCString_length_(ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(
+        _id, _lib._sel_initWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCString_(ffi.Pointer<ffi.Char> bytes) {
+    final _ret =
+        _lib._objc_msgSend_332(_id, _lib._sel_initWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSString1,
+        _lib._sel_stringWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> bytes) {
+    final _ret = _lib._objc_msgSend_332(
+        _lib._class_NSString1, _lib._sel_stringWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getCharacters_(ffi.Pointer<unichar> buffer) {
+    return _lib._objc_msgSend_348(_id, _lib._sel_getCharacters_1, buffer);
+  }
+
+  NSString variantFittingPresentationWidth_(int width) {
+    final _ret = _lib._objc_msgSend_349(
+        _id, _lib._sel_variantFittingPresentationWidth_1, width);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathWithComponents_(AVFAudio _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_350(_lib._class_NSString1,
+        _lib._sel_pathWithComponents_1, components?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get pathComponents {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_pathComponents1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get absolutePath {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAbsolutePath1);
+  }
+
+  NSString? get lastPathComponent {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByDeletingLastPathComponent {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_stringByDeletingLastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingPathComponent_(NSString? str) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_stringByAppendingPathComponent_1, str?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pathExtension {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByDeletingPathExtension {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByDeletingPathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingPathExtension_(NSString? str) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_stringByAppendingPathExtension_1, str?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByAbbreviatingWithTildeInPath {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_stringByAbbreviatingWithTildeInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByExpandingTildeInPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByExpandingTildeInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByStandardizingPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByStandardizingPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByResolvingSymlinksInPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByResolvingSymlinksInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray stringsByAppendingPaths_(NSArray? paths) {
+    final _ret = _lib._objc_msgSend_63(
+        _id, _lib._sel_stringsByAppendingPaths_1, paths?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputName,
+      bool flag,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputArray,
+      NSArray? filterTypes) {
+    return _lib._objc_msgSend_351(
+        _id,
+        _lib._sel_completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_1,
+        outputName,
+        flag,
+        outputArray,
+        filterTypes?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Char> get fileSystemRepresentation {
+    return _lib._objc_msgSend_13(_id, _lib._sel_fileSystemRepresentation1);
+  }
+
+  bool getFileSystemRepresentation_maxLength_(
+      ffi.Pointer<ffi.Char> cname, int max) {
+    return _lib._objc_msgSend_218(
+        _id, _lib._sel_getFileSystemRepresentation_maxLength_1, cname, max);
+  }
+
+  NSString stringByAddingPercentEncodingWithAllowedCharacters_(
+      NSCharacterSet? allowedCharacters) {
+    final _ret = _lib._objc_msgSend_320(
+        _id,
+        _lib._sel_stringByAddingPercentEncodingWithAllowedCharacters_1,
+        allowedCharacters?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByRemovingPercentEncoding {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByRemovingPercentEncoding1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAddingPercentEscapesUsingEncoding_(int enc) {
+    final _ret = _lib._objc_msgSend_293(
+        _id, _lib._sel_stringByAddingPercentEscapesUsingEncoding_1, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingPercentEscapesUsingEncoding_(int enc) {
+    final _ret = _lib._objc_msgSend_293(
+        _id, _lib._sel_stringByReplacingPercentEscapesUsingEncoding_1, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray linguisticTagsInRange_scheme_options_orthography_tokenRanges_(
+      NSRange range,
+      NSLinguisticTagScheme scheme,
+      int options,
+      NSOrthography? orthography,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges) {
+    final _ret = _lib._objc_msgSend_353(
+        _id,
+        _lib._sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1,
+        range,
+        scheme,
+        options,
+        orthography?._id ?? ffi.nullptr,
+        tokenRanges);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_(
+      NSRange range,
+      NSLinguisticTagScheme scheme,
+      int options,
+      NSOrthography? orthography,
+      ObjCBlock10 block) {
+    return _lib._objc_msgSend_354(
+        _id,
+        _lib._sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1,
+        range,
+        scheme,
+        options,
+        orthography?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  static NSString new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_new1);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSString alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_alloc1);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSString1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSString1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+extension StringToNSString on String {
+  NSString toNSString(AVFAudio lib) => NSString(lib, this);
+}
+
+typedef unichar = ffi.UnsignedShort;
+
+class NSCoder extends NSObject {
+  NSCoder._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCoder] that points to the same underlying object as [other].
+  static NSCoder castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCoder._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCoder] that wraps the given raw object pointer.
+  static NSCoder castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCoder._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCoder].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSCoder1);
+  }
+
+  void encodeValueOfObjCType_at_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> addr) {
+    return _lib._objc_msgSend_18(
+        _id, _lib._sel_encodeValueOfObjCType_at_1, type, addr);
+  }
+
+  void encodeDataObject_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_encodeDataObject_1, data?._id ?? ffi.nullptr);
+  }
+
+  NSData decodeDataObject() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_decodeDataObject1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValueOfObjCType_at_size_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> data, int size) {
+    return _lib._objc_msgSend_249(
+        _id, _lib._sel_decodeValueOfObjCType_at_size_1, type, data, size);
+  }
+
+  int versionForClassName_(NSString? className) {
+    return _lib._objc_msgSend_250(
+        _id, _lib._sel_versionForClassName_1, className?._id ?? ffi.nullptr);
+  }
+
+  void encodeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_encodeObject_1, object._id);
+  }
+
+  void encodeRootObject_(NSObject rootObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeRootObject_1, rootObject._id);
+  }
+
+  void encodeBycopyObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeBycopyObject_1, anObject._id);
+  }
+
+  void encodeByrefObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeByrefObject_1, anObject._id);
+  }
+
+  void encodeConditionalObject_(NSObject object) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeConditionalObject_1, object._id);
+  }
+
+  void encodeValuesOfObjCTypes_(ffi.Pointer<ffi.Char> types) {
+    return _lib._objc_msgSend_251(
+        _id, _lib._sel_encodeValuesOfObjCTypes_1, types);
+  }
+
+  void encodeArrayOfObjCType_count_at_(
+      ffi.Pointer<ffi.Char> type, int count, ffi.Pointer<ffi.Void> array) {
+    return _lib._objc_msgSend_252(
+        _id, _lib._sel_encodeArrayOfObjCType_count_at_1, type, count, array);
+  }
+
+  void encodeBytes_length_(ffi.Pointer<ffi.Void> byteaddr, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_encodeBytes_length_1, byteaddr, length);
+  }
+
+  NSObject decodeObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodeObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_253(
+        _id, _lib._sel_decodeTopLevelObjectAndReturnError_1, error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValuesOfObjCTypes_(ffi.Pointer<ffi.Char> types) {
+    return _lib._objc_msgSend_251(
+        _id, _lib._sel_decodeValuesOfObjCTypes_1, types);
+  }
+
+  void decodeArrayOfObjCType_count_at_(
+      ffi.Pointer<ffi.Char> itemType, int count, ffi.Pointer<ffi.Void> array) {
+    return _lib._objc_msgSend_252(_id,
+        _lib._sel_decodeArrayOfObjCType_count_at_1, itemType, count, array);
+  }
+
+  ffi.Pointer<ffi.Void> decodeBytesWithReturnedLength_(
+      ffi.Pointer<NSUInteger> lengthp) {
+    return _lib._objc_msgSend_254(
+        _id, _lib._sel_decodeBytesWithReturnedLength_1, lengthp);
+  }
+
+  void encodePropertyList_(NSObject aPropertyList) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodePropertyList_1, aPropertyList._id);
+  }
+
+  NSObject decodePropertyList() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodePropertyList1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setObjectZone_(ffi.Pointer<NSZone> zone) {
+    return _lib._objc_msgSend_255(_id, _lib._sel_setObjectZone_1, zone);
+  }
+
+  ffi.Pointer<NSZone> objectZone() {
+    return _lib._objc_msgSend_256(_id, _lib._sel_objectZone1);
+  }
+
+  int get systemVersion {
+    return _lib._objc_msgSend_191(_id, _lib._sel_systemVersion1);
+  }
+
+  bool get allowsKeyedCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsKeyedCoding1);
+  }
+
+  void encodeObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_encodeObject_forKey_1,
+        object._id, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeConditionalObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_encodeConditionalObject_forKey_1,
+        object._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void encodeBool_forKey_(bool value, NSString? key) {
+    return _lib._objc_msgSend_257(
+        _id, _lib._sel_encodeBool_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_258(
+        _id, _lib._sel_encodeInt_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt32_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_259(
+        _id, _lib._sel_encodeInt32_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt64_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_260(
+        _id, _lib._sel_encodeInt64_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeFloat_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_261(
+        _id, _lib._sel_encodeFloat_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeDouble_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_262(
+        _id, _lib._sel_encodeDouble_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeBytes_length_forKey_(
+      ffi.Pointer<ffi.Uint8> bytes, int length, NSString? key) {
+    return _lib._objc_msgSend_263(_id, _lib._sel_encodeBytes_length_forKey_1,
+        bytes, length, key?._id ?? ffi.nullptr);
+  }
+
+  bool containsValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_containsValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSObject decodeObjectForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_decodeObjectForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectForKey_error_(
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_264(
+        _id,
+        _lib._sel_decodeTopLevelObjectForKey_error_1,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool decodeBoolForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_decodeBoolForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeIntForKey_(NSString? key) {
+    return _lib._objc_msgSend_265(
+        _id, _lib._sel_decodeIntForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeInt32ForKey_(NSString? key) {
+    return _lib._objc_msgSend_266(
+        _id, _lib._sel_decodeInt32ForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeInt64ForKey_(NSString? key) {
+    return _lib._objc_msgSend_267(
+        _id, _lib._sel_decodeInt64ForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  double decodeFloatForKey_(NSString? key) {
+    return _lib._objc_msgSend_268(
+        _id, _lib._sel_decodeFloatForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  double decodeDoubleForKey_(NSString? key) {
+    return _lib._objc_msgSend_269(
+        _id, _lib._sel_decodeDoubleForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Uint8> decodeBytesForKey_returnedLength_(
+      NSString? key, ffi.Pointer<NSUInteger> lengthp) {
+    return _lib._objc_msgSend_270(
+        _id,
+        _lib._sel_decodeBytesForKey_returnedLength_1,
+        key?._id ?? ffi.nullptr,
+        lengthp);
+  }
+
+  void encodeInteger_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_271(
+        _id, _lib._sel_encodeInteger_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeIntegerForKey_(NSString? key) {
+    return _lib._objc_msgSend_250(
+        _id, _lib._sel_decodeIntegerForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool get requiresSecureCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_requiresSecureCoding1);
+  }
+
+  NSObject decodeObjectOfClass_forKey_(NSObject aClass, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_decodeObjectOfClass_forKey_1,
+        aClass._id,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectOfClass_forKey_error_(NSObject aClass,
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_273(
+        _id,
+        _lib._sel_decodeTopLevelObjectOfClass_forKey_error_1,
+        aClass._id,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray decodeArrayOfObjectsOfClass_forKey_(NSObject cls, NSString? key) {
+    final _ret = _lib._objc_msgSend_274(
+        _id,
+        _lib._sel_decodeArrayOfObjectsOfClass_forKey_1,
+        cls._id,
+        key?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_(
+      NSObject keyCls, NSObject objectCls, NSString? key) {
+    final _ret = _lib._objc_msgSend_275(
+        _id,
+        _lib._sel_decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_1,
+        keyCls._id,
+        objectCls._id,
+        key?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeObjectOfClasses_forKey_(NSSet? classes, NSString? key) {
+    final _ret = _lib._objc_msgSend_276(
+        _id,
+        _lib._sel_decodeObjectOfClasses_forKey_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectOfClasses_forKey_error_(NSSet? classes,
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_277(
+        _id,
+        _lib._sel_decodeTopLevelObjectOfClasses_forKey_error_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray decodeArrayOfObjectsOfClasses_forKey_(NSSet? classes, NSString? key) {
+    final _ret = _lib._objc_msgSend_278(
+        _id,
+        _lib._sel_decodeArrayOfObjectsOfClasses_forKey_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_(
+      NSSet? keyClasses, NSSet? objectClasses, NSString? key) {
+    final _ret = _lib._objc_msgSend_279(
+        _id,
+        _lib._sel_decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_1,
+        keyClasses?._id ?? ffi.nullptr,
+        objectClasses?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodePropertyListForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_decodePropertyListForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet? get allowedClasses {
+    final _ret = _lib._objc_msgSend_280(_id, _lib._sel_allowedClasses1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void failWithError_(NSError? error) {
+    return _lib._objc_msgSend_281(
+        _id, _lib._sel_failWithError_1, error?._id ?? ffi.nullptr);
+  }
+
+  int get decodingFailurePolicy {
+    return _lib._objc_msgSend_282(_id, _lib._sel_decodingFailurePolicy1);
+  }
+
+  NSError? get error {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_error1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  void encodeNXObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_encodeNXObject_1, object._id);
+  }
+
+  NSObject decodeNXObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodeNXObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValueOfObjCType_at_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> data) {
+    return _lib._objc_msgSend_18(
+        _id, _lib._sel_decodeValueOfObjCType_at_1, type, data);
+  }
+
+  void encodePoint_(NSPoint point) {
+    return _lib._objc_msgSend_284(_id, _lib._sel_encodePoint_1, point);
+  }
+
+  NSPoint decodePoint() {
+    return _lib._objc_msgSend_54(_id, _lib._sel_decodePoint1);
+  }
+
+  void encodeSize_(NSSize size) {
+    return _lib._objc_msgSend_285(_id, _lib._sel_encodeSize_1, size);
+  }
+
+  NSSize decodeSize() {
+    return _lib._objc_msgSend_55(_id, _lib._sel_decodeSize1);
+  }
+
+  void encodeRect_(NSRect rect) {
+    return _lib._objc_msgSend_286(_id, _lib._sel_encodeRect_1, rect);
+  }
+
+  NSRect decodeRect() {
+    return _lib._objc_msgSend_56(_id, _lib._sel_decodeRect1);
+  }
+
+  void encodePoint_forKey_(NSPoint point, NSString? key) {
+    return _lib._objc_msgSend_287(
+        _id, _lib._sel_encodePoint_forKey_1, point, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeSize_forKey_(NSSize size, NSString? key) {
+    return _lib._objc_msgSend_288(
+        _id, _lib._sel_encodeSize_forKey_1, size, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeRect_forKey_(NSRect rect, NSString? key) {
+    return _lib._objc_msgSend_289(
+        _id, _lib._sel_encodeRect_forKey_1, rect, key?._id ?? ffi.nullptr);
+  }
+
+  NSPoint decodePointForKey_(NSString? key) {
+    return _lib._objc_msgSend_290(
+        _id, _lib._sel_decodePointForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSSize decodeSizeForKey_(NSString? key) {
+    return _lib._objc_msgSend_291(
+        _id, _lib._sel_decodeSizeForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSRect decodeRectForKey_(NSString? key) {
+    return _lib._objc_msgSend_292(
+        _id, _lib._sel_decodeRectForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  static NSCoder new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCoder1, _lib._sel_new1);
+    return NSCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCoder alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCoder1, _lib._sel_alloc1);
+    return NSCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCoder1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCoder1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCoder1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCoder1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCoder1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCoder1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCoder1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSData extends NSObject {
+  NSData._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSData] that points to the same underlying object as [other].
+  static NSData castFrom<T extends _ObjCWrapper>(T other) {
+    return NSData._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSData] that wraps the given raw object pointer.
+  static NSData castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSData._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSData].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSData1);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  ffi.Pointer<ffi.Void> get bytes {
+    return _lib._objc_msgSend_19(_id, _lib._sel_bytes1);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getBytes_length_(ffi.Pointer<ffi.Void> buffer, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_getBytes_length_1, buffer, length);
+  }
+
+  void getBytes_range_(ffi.Pointer<ffi.Void> buffer, NSRange range) {
+    return _lib._objc_msgSend_22(
+        _id, _lib._sel_getBytes_range_1, buffer, range);
+  }
+
+  bool isEqualToData_(NSData? other) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_isEqualToData_1, other?._id ?? ffi.nullptr);
+  }
+
+  NSData subdataWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_24(_id, _lib._sel_subdataWithRange_1, range);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  bool writeToFile_options_error_(NSString? path, int writeOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    return _lib._objc_msgSend_233(_id, _lib._sel_writeToFile_options_error_1,
+        path?._id ?? ffi.nullptr, writeOptionsMask, errorPtr);
+  }
+
+  bool writeToURL_options_error_(NSURL? url, int writeOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    return _lib._objc_msgSend_234(_id, _lib._sel_writeToURL_options_error_1,
+        url?._id ?? ffi.nullptr, writeOptionsMask, errorPtr);
+  }
+
+  NSRange rangeOfData_options_range_(
+      NSData? dataToFind, int mask, NSRange searchRange) {
+    return _lib._objc_msgSend_235(_id, _lib._sel_rangeOfData_options_range_1,
+        dataToFind?._id ?? ffi.nullptr, mask, searchRange);
+  }
+
+  void enumerateByteRangesUsingBlock_(ObjCBlock8 block) {
+    return _lib._objc_msgSend_236(
+        _id, _lib._sel_enumerateByteRangesUsingBlock_1, block._id);
+  }
+
+  static NSData data(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_data1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithBytes_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _lib._class_NSData1, _lib._sel_dataWithBytes_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithBytesNoCopy_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSData1,
+        _lib._sel_dataWithBytesNoCopy_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData dataWithBytesNoCopy_length_freeWhenDone_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_lib._class_NSData1,
+        _lib._sel_dataWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData dataWithContentsOfFile_options_error_(
+      AVFAudio _lib,
+      NSString? path,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _lib._class_NSData1,
+        _lib._sel_dataWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfURL_options_error_(AVFAudio _lib, NSURL? url,
+      int readOptionsMask, ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _lib._class_NSData1,
+        _lib._sel_dataWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBytes_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _id, _lib._sel_initWithBytes_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _id, _lib._sel_initWithBytesNoCopy_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_freeWhenDone_(
+      ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_id,
+        _lib._sel_initWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_deallocator_(
+      ffi.Pointer<ffi.Void> bytes, int length, ObjCBlock9 deallocator) {
+    final _ret = _lib._objc_msgSend_241(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_deallocator_1,
+        bytes,
+        length,
+        deallocator._id);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithContentsOfFile_options_error_(NSString? path,
+      int readOptionsMask, ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _id,
+        _lib._sel_initWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfURL_options_error_(NSURL? url, int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithData_(AVFAudio _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSData1,
+        _lib._sel_dataWithData_1, data?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBase64EncodedString_options_(
+      NSString? base64String, int options) {
+    final _ret = _lib._objc_msgSend_243(
+        _id,
+        _lib._sel_initWithBase64EncodedString_options_1,
+        base64String?._id ?? ffi.nullptr,
+        options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString base64EncodedStringWithOptions_(int options) {
+    final _ret = _lib._objc_msgSend_244(
+        _id, _lib._sel_base64EncodedStringWithOptions_1, options);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBase64EncodedData_options_(NSData? base64Data, int options) {
+    final _ret = _lib._objc_msgSend_245(
+        _id,
+        _lib._sel_initWithBase64EncodedData_options_1,
+        base64Data?._id ?? ffi.nullptr,
+        options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData base64EncodedDataWithOptions_(int options) {
+    final _ret = _lib._objc_msgSend_246(
+        _id, _lib._sel_base64EncodedDataWithOptions_1, options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData decompressedDataUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_247(_id,
+        _lib._sel_decompressedDataUsingAlgorithm_error_1, algorithm, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData compressedDataUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_247(
+        _id, _lib._sel_compressedDataUsingAlgorithm_error_1, algorithm, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getBytes_(ffi.Pointer<ffi.Void> buffer) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getBytes_1, buffer);
+  }
+
+  static NSObject dataWithContentsOfMappedFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithContentsOfMappedFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_initWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithBase64Encoding_(NSString? base64String) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_initWithBase64Encoding_1,
+        base64String?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString base64Encoding() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_base64Encoding1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_new1);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_alloc1);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSData1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSData1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSData1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSData1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSData1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSData1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSData1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRange = _NSRange;
+
+class _NSRange extends ffi.Struct {
+  @NSUInteger()
+  external int location;
+
+  @NSUInteger()
+  external int length;
+}
+
+class NSURL extends NSObject {
+  NSURL._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURL] that points to the same underlying object as [other].
+  static NSURL castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURL._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURL] that wraps the given raw object pointer.
+  static NSURL castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURL._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURL].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURL1);
+  }
+
+  NSURL initWithScheme_host_path_(
+      NSString? scheme, NSString? host, NSString? path) {
+    final _ret = _lib._objc_msgSend_26(
+        _id,
+        _lib._sel_initWithScheme_host_path_1,
+        scheme?._id ?? ffi.nullptr,
+        host?._id ?? ffi.nullptr,
+        path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_isDirectory_relativeToURL_(
+      NSString? path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_27(
+        _id,
+        _lib._sel_initFileURLWithPath_isDirectory_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_relativeToURL_(NSString? path, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _id,
+        _lib._sel_initFileURLWithPath_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_isDirectory_(NSString? path, bool isDir) {
+    final _ret = _lib._objc_msgSend_29(
+        _id,
+        _lib._sel_initFileURLWithPath_isDirectory_1,
+        path?._id ?? ffi.nullptr,
+        isDir);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initFileURLWithPath_1, path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_isDirectory_relativeToURL_(
+      AVFAudio _lib, NSString? path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_31(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_isDirectory_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_relativeToURL_(
+      AVFAudio _lib, NSString? path, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_32(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_isDirectory_(
+      AVFAudio _lib, NSString? path, bool isDir) {
+    final _ret = _lib._objc_msgSend_33(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_isDirectory_1,
+        path?._id ?? ffi.nullptr,
+        isDir);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_34(_lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_1, path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_(
+      ffi.Pointer<ffi.Char> path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_35(
+        _id,
+        _lib._sel_initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1,
+        path,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_36(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1,
+        path,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithString_(NSString? URLString) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, URLString?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithString_relativeToURL_(NSString? URLString, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _id,
+        _lib._sel_initWithString_relativeToURL_1,
+        URLString?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithString_(AVFAudio _lib, NSString? URLString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSURL1,
+        _lib._sel_URLWithString_1, URLString?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithString_relativeToURL_(
+      AVFAudio _lib, NSString? URLString, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _lib._class_NSURL1,
+        _lib._sel_URLWithString_relativeToURL_1,
+        URLString?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithDataRepresentation_relativeToURL_(
+      NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_37(
+        _id,
+        _lib._sel_initWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithDataRepresentation_relativeToURL_(
+      AVFAudio _lib, NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_38(
+        _lib._class_NSURL1,
+        _lib._sel_URLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initAbsoluteURLWithDataRepresentation_relativeToURL_(
+      NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_37(
+        _id,
+        _lib._sel_initAbsoluteURLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL absoluteURLWithDataRepresentation_relativeToURL_(
+      AVFAudio _lib, NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_38(
+        _lib._class_NSURL1,
+        _lib._sel_absoluteURLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get dataRepresentation {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_dataRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get absoluteString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_absoluteString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get relativeString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_relativeString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get baseURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_baseURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get absoluteURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_absoluteURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get scheme {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scheme1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get resourceSpecifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_resourceSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get host {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_host1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber? get port {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_port1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get user {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_user1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get password {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_password1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get path {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_path1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get fragment {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fragment1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get parameterString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_parameterString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get query {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_query1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get relativePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_relativePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get hasDirectoryPath {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasDirectoryPath1);
+  }
+
+  bool getFileSystemRepresentation_maxLength_(
+      ffi.Pointer<ffi.Char> buffer, int maxBufferLength) {
+    return _lib._objc_msgSend_218(
+        _id,
+        _lib._sel_getFileSystemRepresentation_maxLength_1,
+        buffer,
+        maxBufferLength);
+  }
+
+  ffi.Pointer<ffi.Char> get fileSystemRepresentation {
+    return _lib._objc_msgSend_13(_id, _lib._sel_fileSystemRepresentation1);
+  }
+
+  bool get fileURL {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFileURL1);
+  }
+
+  NSURL? get standardizedURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_standardizedURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool checkResourceIsReachableAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_checkResourceIsReachableAndReturnError_1, error);
+  }
+
+  bool isFileReferenceURL() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFileReferenceURL1);
+  }
+
+  NSURL fileReferenceURL() {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_fileReferenceURL1);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get filePathURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_filePathURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getResourceValue_forKey_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+      NSURLResourceKey key,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_220(
+        _id, _lib._sel_getResourceValue_forKey_error_1, value, key, error);
+  }
+
+  bool getPromisedItemResourceValue_forKey_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+      NSURLResourceKey key,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_220(
+        _id,
+        _lib._sel_getPromisedItemResourceValue_forKey_error_1,
+        value,
+        key,
+        error);
+  }
+
+  NSDictionary promisedItemResourceValuesForKeys_error_(
+      NSArray? keys, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_221(
+        _id,
+        _lib._sel_promisedItemResourceValuesForKeys_error_1,
+        keys?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool checkPromisedItemIsReachableAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_checkPromisedItemIsReachableAndReturnError_1, error);
+  }
+
+  static NSURL fileURLWithPathComponents_(AVFAudio _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_222(_lib._class_NSURL1,
+        _lib._sel_fileURLWithPathComponents_1, components?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get pathComponents {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_pathComponents1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get lastPathComponent {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pathExtension {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathComponent_(NSString? pathComponent) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLByAppendingPathComponent_1,
+        pathComponent?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathComponent_isDirectory_(
+      NSString? pathComponent, bool isDirectory) {
+    final _ret = _lib._objc_msgSend_33(
+        _id,
+        _lib._sel_URLByAppendingPathComponent_isDirectory_1,
+        pathComponent?._id ?? ffi.nullptr,
+        isDirectory);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByDeletingLastPathComponent {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByDeletingLastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathExtension_(NSString? pathExtension) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLByAppendingPathExtension_1,
+        pathExtension?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByDeletingPathExtension {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByDeletingPathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByStandardizingPath {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URLByStandardizingPath1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByResolvingSymlinksInPath {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByResolvingSymlinksInPath1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData resourceDataUsingCache_(bool shouldUseCache) {
+    final _ret = _lib._objc_msgSend_223(
+        _id, _lib._sel_resourceDataUsingCache_1, shouldUseCache);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void loadResourceDataNotifyingClient_usingCache_(
+      NSObject client, bool shouldUseCache) {
+    return _lib._objc_msgSend_224(
+        _id,
+        _lib._sel_loadResourceDataNotifyingClient_usingCache_1,
+        client._id,
+        shouldUseCache);
+  }
+
+  NSObject propertyForKey_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_propertyForKey_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setResourceData_(NSData? data) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_setResourceData_1, data?._id ?? ffi.nullptr);
+  }
+
+  bool setProperty_forKey_(NSObject property, NSString? propertyKey) {
+    return _lib._objc_msgSend_225(_id, _lib._sel_setProperty_forKey_1,
+        property._id, propertyKey?._id ?? ffi.nullptr);
+  }
+
+  NSURLHandle URLHandleUsingCache_(bool shouldUseCache) {
+    final _ret = _lib._objc_msgSend_232(
+        _id, _lib._sel_URLHandleUsingCache_1, shouldUseCache);
+    return NSURLHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURL1, _lib._sel_new1);
+    return NSURL._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURL alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURL1, _lib._sel_alloc1);
+    return NSURL._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURL1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURL1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURL1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURL1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURL1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURL1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURL1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURL1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURL1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSNumber extends NSValue {
+  NSNumber._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNumber] that points to the same underlying object as [other].
+  static NSNumber castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNumber._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNumber] that wraps the given raw object pointer.
+  static NSNumber castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNumber._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNumber].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSNumber1);
+  }
+
+  @override
+  NSNumber initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithChar_(int value) {
+    final _ret = _lib._objc_msgSend_196(_id, _lib._sel_initWithChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedChar_(int value) {
+    final _ret =
+        _lib._objc_msgSend_197(_id, _lib._sel_initWithUnsignedChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithShort_(int value) {
+    final _ret = _lib._objc_msgSend_198(_id, _lib._sel_initWithShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedShort_(int value) {
+    final _ret =
+        _lib._objc_msgSend_199(_id, _lib._sel_initWithUnsignedShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithInt_(int value) {
+    final _ret = _lib._objc_msgSend_200(_id, _lib._sel_initWithInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedInt_(int value) {
+    final _ret =
+        _lib._objc_msgSend_201(_id, _lib._sel_initWithUnsignedInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithLong_(int value) {
+    final _ret = _lib._objc_msgSend_202(_id, _lib._sel_initWithLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedLong_(int value) {
+    final _ret =
+        _lib._objc_msgSend_203(_id, _lib._sel_initWithUnsignedLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithLongLong_(int value) {
+    final _ret =
+        _lib._objc_msgSend_204(_id, _lib._sel_initWithLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedLongLong_(int value) {
+    final _ret = _lib._objc_msgSend_205(
+        _id, _lib._sel_initWithUnsignedLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithFloat_(double value) {
+    final _ret = _lib._objc_msgSend_206(_id, _lib._sel_initWithFloat_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithDouble_(double value) {
+    final _ret = _lib._objc_msgSend_207(_id, _lib._sel_initWithDouble_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithBool_(bool value) {
+    final _ret = _lib._objc_msgSend_208(_id, _lib._sel_initWithBool_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithInteger_(int value) {
+    final _ret =
+        _lib._objc_msgSend_202(_id, _lib._sel_initWithInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedInteger_(int value) {
+    final _ret =
+        _lib._objc_msgSend_203(_id, _lib._sel_initWithUnsignedInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get charValue {
+    return _lib._objc_msgSend_209(_id, _lib._sel_charValue1);
+  }
+
+  int get unsignedCharValue {
+    return _lib._objc_msgSend_210(_id, _lib._sel_unsignedCharValue1);
+  }
+
+  int get shortValue {
+    return _lib._objc_msgSend_211(_id, _lib._sel_shortValue1);
+  }
+
+  int get unsignedShortValue {
+    return _lib._objc_msgSend_212(_id, _lib._sel_unsignedShortValue1);
+  }
+
+  int get intValue {
+    return _lib._objc_msgSend_213(_id, _lib._sel_intValue1);
+  }
+
+  int get unsignedIntValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_unsignedIntValue1);
+  }
+
+  int get longValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_longValue1);
+  }
+
+  int get unsignedLongValue {
+    return _lib._objc_msgSend_10(_id, _lib._sel_unsignedLongValue1);
+  }
+
+  int get longLongValue {
+    return _lib._objc_msgSend_214(_id, _lib._sel_longLongValue1);
+  }
+
+  int get unsignedLongLongValue {
+    return _lib._objc_msgSend_148(_id, _lib._sel_unsignedLongLongValue1);
+  }
+
+  double get floatValue {
+    return _lib._objc_msgSend_215(_id, _lib._sel_floatValue1);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  bool get boolValue {
+    return _lib._objc_msgSend_12(_id, _lib._sel_boolValue1);
+  }
+
+  int get integerValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_integerValue1);
+  }
+
+  int get unsignedIntegerValue {
+    return _lib._objc_msgSend_10(_id, _lib._sel_unsignedIntegerValue1);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compare_(NSNumber? otherNumber) {
+    return _lib._objc_msgSend_216(
+        _id, _lib._sel_compare_1, otherNumber?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToNumber_(NSNumber? number) {
+    return _lib._objc_msgSend_217(
+        _id, _lib._sel_isEqualToNumber_1, number?._id ?? ffi.nullptr);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithChar_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_196(
+        _lib._class_NSNumber1, _lib._sel_numberWithChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedChar_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_197(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithShort_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_198(
+        _lib._class_NSNumber1, _lib._sel_numberWithShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedShort_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_199(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithInt_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_200(
+        _lib._class_NSNumber1, _lib._sel_numberWithInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedInt_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_201(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithLong_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_202(
+        _lib._class_NSNumber1, _lib._sel_numberWithLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedLong_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_203(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithLongLong_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_204(
+        _lib._class_NSNumber1, _lib._sel_numberWithLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedLongLong_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_205(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithFloat_(AVFAudio _lib, double value) {
+    final _ret = _lib._objc_msgSend_206(
+        _lib._class_NSNumber1, _lib._sel_numberWithFloat_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithDouble_(AVFAudio _lib, double value) {
+    final _ret = _lib._objc_msgSend_207(
+        _lib._class_NSNumber1, _lib._sel_numberWithDouble_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithBool_(AVFAudio _lib, bool value) {
+    final _ret = _lib._objc_msgSend_208(
+        _lib._class_NSNumber1, _lib._sel_numberWithBool_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithInteger_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_202(
+        _lib._class_NSNumber1, _lib._sel_numberWithInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedInteger_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_203(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithBytes_objCType_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(_lib._class_NSNumber1,
+        _lib._sel_valueWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue value_withObjCType_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSNumber1, _lib._sel_value_withObjCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithNonretainedObject_(AVFAudio _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_44(_lib._class_NSNumber1,
+        _lib._sel_valueWithNonretainedObject_1, anObject._id);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPointer_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> pointer) {
+    final _ret = _lib._objc_msgSend_45(
+        _lib._class_NSNumber1, _lib._sel_valueWithPointer_1, pointer);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRange_(AVFAudio _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_48(
+        _lib._class_NSNumber1, _lib._sel_valueWithRange_1, range);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPoint_(AVFAudio _lib, NSPoint point) {
+    final _ret = _lib._objc_msgSend_50(
+        _lib._class_NSNumber1, _lib._sel_valueWithPoint_1, point);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithSize_(AVFAudio _lib, NSSize size) {
+    final _ret = _lib._objc_msgSend_51(
+        _lib._class_NSNumber1, _lib._sel_valueWithSize_1, size);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRect_(AVFAudio _lib, NSRect rect) {
+    final _ret = _lib._objc_msgSend_52(
+        _lib._class_NSNumber1, _lib._sel_valueWithRect_1, rect);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithEdgeInsets_(AVFAudio _lib, NSEdgeInsets insets) {
+    final _ret = _lib._objc_msgSend_53(
+        _lib._class_NSNumber1, _lib._sel_valueWithEdgeInsets_1, insets);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSNumber1, _lib._sel_new1);
+    return NSNumber._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNumber alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSNumber1, _lib._sel_alloc1);
+    return NSNumber._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNumber1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNumber1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumber1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumber1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNumber1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNumber1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNumber1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNumber1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNumber1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSValue extends NSObject {
+  NSValue._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSValue] that points to the same underlying object as [other].
+  static NSValue castFrom<T extends _ObjCWrapper>(T other) {
+    return NSValue._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSValue] that wraps the given raw object pointer.
+  static NSValue castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSValue._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSValue].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSValue1);
+  }
+
+  void getValue_size_(ffi.Pointer<ffi.Void> value, int size) {
+    return _lib._objc_msgSend_21(_id, _lib._sel_getValue_size_1, value, size);
+  }
+
+  ffi.Pointer<ffi.Char> get objCType {
+    return _lib._objc_msgSend_13(_id, _lib._sel_objCType1);
+  }
+
+  NSValue initWithBytes_objCType_(
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_41(
+        _id, _lib._sel_initWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSValue initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithBytes_objCType_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSValue1, _lib._sel_valueWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue value_withObjCType_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSValue1, _lib._sel_value_withObjCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithNonretainedObject_(AVFAudio _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_44(_lib._class_NSValue1,
+        _lib._sel_valueWithNonretainedObject_1, anObject._id);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get nonretainedObjectValue {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_nonretainedObjectValue1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPointer_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> pointer) {
+    final _ret = _lib._objc_msgSend_45(
+        _lib._class_NSValue1, _lib._sel_valueWithPointer_1, pointer);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Void> get pointerValue {
+    return _lib._objc_msgSend_19(_id, _lib._sel_pointerValue1);
+  }
+
+  bool isEqualToValue_(NSValue? value) {
+    return _lib._objc_msgSend_46(
+        _id, _lib._sel_isEqualToValue_1, value?._id ?? ffi.nullptr);
+  }
+
+  void getValue_(ffi.Pointer<ffi.Void> value) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getValue_1, value);
+  }
+
+  static NSValue valueWithRange_(AVFAudio _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_48(
+        _lib._class_NSValue1, _lib._sel_valueWithRange_1, range);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange get rangeValue {
+    return _lib._objc_msgSend_49(_id, _lib._sel_rangeValue1);
+  }
+
+  static NSValue valueWithPoint_(AVFAudio _lib, NSPoint point) {
+    final _ret = _lib._objc_msgSend_50(
+        _lib._class_NSValue1, _lib._sel_valueWithPoint_1, point);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithSize_(AVFAudio _lib, NSSize size) {
+    final _ret = _lib._objc_msgSend_51(
+        _lib._class_NSValue1, _lib._sel_valueWithSize_1, size);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRect_(AVFAudio _lib, NSRect rect) {
+    final _ret = _lib._objc_msgSend_52(
+        _lib._class_NSValue1, _lib._sel_valueWithRect_1, rect);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithEdgeInsets_(AVFAudio _lib, NSEdgeInsets insets) {
+    final _ret = _lib._objc_msgSend_53(
+        _lib._class_NSValue1, _lib._sel_valueWithEdgeInsets_1, insets);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPoint get pointValue {
+    return _lib._objc_msgSend_54(_id, _lib._sel_pointValue1);
+  }
+
+  NSSize get sizeValue {
+    return _lib._objc_msgSend_55(_id, _lib._sel_sizeValue1);
+  }
+
+  NSRect get rectValue {
+    return _lib._objc_msgSend_56(_id, _lib._sel_rectValue1);
+  }
+
+  NSEdgeInsets get edgeInsetsValue {
+    return _lib._objc_msgSend_57(_id, _lib._sel_edgeInsetsValue1);
+  }
+
+  static NSValue new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSValue1, _lib._sel_new1);
+    return NSValue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSValue alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSValue1, _lib._sel_alloc1);
+    return NSValue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSValue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSValue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSValue1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSValue1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSValue1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSValue1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSValue1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSValue1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSValue1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSPoint = CGPoint;
+
+class CGPoint extends ffi.Struct {
+  @CGFloat()
+  external double x;
+
+  @CGFloat()
+  external double y;
+}
+
+typedef CGFloat = ffi.Double;
+typedef NSSize = CGSize;
+
+class CGSize extends ffi.Struct {
+  @CGFloat()
+  external double width;
+
+  @CGFloat()
+  external double height;
+}
+
+typedef NSRect = CGRect;
+
+class CGRect extends ffi.Struct {
+  external CGPoint origin;
+
+  external CGSize size;
+}
+
+class NSEdgeInsets extends ffi.Struct {
+  @CGFloat()
+  external double top;
+
+  @CGFloat()
+  external double left;
+
+  @CGFloat()
+  external double bottom;
+
+  @CGFloat()
+  external double right;
+}
+
+class NSArray extends NSObject {
+  NSArray._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSArray] that points to the same underlying object as [other].
+  static NSArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSArray] that wraps the given raw object pointer.
+  static NSArray castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSArray1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectAtIndex_(int index) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndex_1, index);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray arrayByAddingObject_(NSObject anObject) {
+    final _ret = _lib._objc_msgSend_62(
+        _id, _lib._sel_arrayByAddingObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray arrayByAddingObjectsFromArray_(NSArray? otherArray) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_arrayByAddingObjectsFromArray_1,
+        otherArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString componentsJoinedByString_(NSString? separator) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_componentsJoinedByString_1, separator?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsObject_(NSObject anObject) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, anObject._id);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject firstObjectCommonWithArray_(NSArray? otherArray) {
+    final _ret = _lib._objc_msgSend_67(_id,
+        _lib._sel_firstObjectCommonWithArray_1, otherArray?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_range_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, NSRange range) {
+    return _lib._objc_msgSend_68(
+        _id, _lib._sel_getObjects_range_1, objects, range);
+  }
+
+  int indexOfObject_(NSObject anObject) {
+    return _lib._objc_msgSend_69(_id, _lib._sel_indexOfObject_1, anObject._id);
+  }
+
+  int indexOfObject_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_70(
+        _id, _lib._sel_indexOfObject_inRange_1, anObject._id, range);
+  }
+
+  int indexOfObjectIdenticalTo_(NSObject anObject) {
+    return _lib._objc_msgSend_69(
+        _id, _lib._sel_indexOfObjectIdenticalTo_1, anObject._id);
+  }
+
+  int indexOfObjectIdenticalTo_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_70(
+        _id, _lib._sel_indexOfObjectIdenticalTo_inRange_1, anObject._id, range);
+  }
+
+  bool isEqualToArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_71(
+        _id, _lib._sel_isEqualToArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  NSObject get firstObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_firstObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get lastObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_lastObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator reverseObjectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_reverseObjectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get sortedArrayHint {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_sortedArrayHint1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingFunction_context_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          comparator,
+      ffi.Pointer<ffi.Void> context) {
+    final _ret = _lib._objc_msgSend_73(
+        _id, _lib._sel_sortedArrayUsingFunction_context_1, comparator, context);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingFunction_context_hint_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          comparator,
+      ffi.Pointer<ffi.Void> context,
+      NSData? hint) {
+    final _ret = _lib._objc_msgSend_74(
+        _id,
+        _lib._sel_sortedArrayUsingFunction_context_hint_1,
+        comparator,
+        context,
+        hint?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    final _ret = _lib._objc_msgSend_75(
+        _id, _lib._sel_sortedArrayUsingSelector_1, comparator);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray subarrayWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_76(_id, _lib._sel_subarrayWithRange_1, range);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_writeToURL_error_1, url?._id ?? ffi.nullptr, error);
+  }
+
+  void makeObjectsPerformSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_makeObjectsPerformSelector_1, aSelector);
+  }
+
+  void makeObjectsPerformSelector_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject argument) {
+    return _lib._objc_msgSend_82(
+        _id,
+        _lib._sel_makeObjectsPerformSelector_withObject_1,
+        aSelector,
+        argument._id);
+  }
+
+  NSArray objectsAtIndexes_(NSIndexSet? indexes) {
+    final _ret = _lib._objc_msgSend_103(
+        _id, _lib._sel_objectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectAtIndexedSubscript_(int idx) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndexedSubscript_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock3 block) {
+    return _lib._objc_msgSend_104(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_105(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateObjectsAtIndexes_options_usingBlock_(
+      NSIndexSet? s, int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_106(
+        _id,
+        _lib._sel_enumerateObjectsAtIndexes_options_usingBlock_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  int indexOfObjectPassingTest_(ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_107(
+        _id, _lib._sel_indexOfObjectPassingTest_1, predicate._id);
+  }
+
+  int indexOfObjectWithOptions_passingTest_(int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_108(_id,
+        _lib._sel_indexOfObjectWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexOfObjectAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_109(
+        _id,
+        _lib._sel_indexOfObjectAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesOfObjectsPassingTest_(ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_110(
+        _id, _lib._sel_indexesOfObjectsPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsWithOptions_passingTest_(
+      int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_111(
+        _id,
+        _lib._sel_indexesOfObjectsWithOptions_passingTest_1,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_112(
+        _id,
+        _lib._sel_indexesOfObjectsAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_sortedArrayUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(
+        _id, _lib._sel_sortedArrayWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_inSortedRange_options_usingComparator_(
+      NSObject obj, NSRange r, int opts, NSComparator cmp) {
+    return _lib._objc_msgSend_115(
+        _id,
+        _lib._sel_indexOfObject_inSortedRange_options_usingComparator_1,
+        obj._id,
+        r,
+        opts,
+        cmp);
+  }
+
+  static NSArray array(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_array1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObject_(AVFAudio _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSArray1, _lib._sel_arrayWithObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _lib._class_NSArray1, _lib._sel_arrayWithObjects_count_1, objects, cnt);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObjects_(AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSArray1, _lib._sel_arrayWithObjects_1, firstObj._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithArray_(AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSArray1,
+        _lib._sel_arrayWithArray_1, array?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithArray_copyItems_(NSArray? array, bool flag) {
+    final _ret = _lib._objc_msgSend_116(_id,
+        _lib._sel_initWithArray_copyItems_1, array?._id ?? ffi.nullptr, flag);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSArray initWithContentsOfURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _id,
+        _lib._sel_initWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects) {
+    return _lib._objc_msgSend_118(_id, _lib._sel_getObjects_1, objects);
+  }
+
+  static NSArray arrayWithContentsOfFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_119(_lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_120(_lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_120(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  NSArray pathsMatchingExtensions_(NSArray? filterTypes) {
+    final _ret = _lib._objc_msgSend_63(_id, _lib._sel_pathsMatchingExtensions_1,
+        filterTypes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void addObserver_toObjectsAtIndexes_forKeyPath_options_context_(
+      NSObject? observer,
+      NSIndexSet? indexes,
+      NSString? keyPath,
+      int options,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_123(
+        _id,
+        _lib._sel_addObserver_toObjectsAtIndexes_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  void removeObserver_fromObjectsAtIndexes_forKeyPath_context_(
+      NSObject? observer,
+      NSIndexSet? indexes,
+      NSString? keyPath,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_124(
+        _id,
+        _lib._sel_removeObserver_fromObjectsAtIndexes_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void removeObserver_fromObjectsAtIndexes_forKeyPath_(
+      NSObject? observer, NSIndexSet? indexes, NSString? keyPath) {
+    return _lib._objc_msgSend_125(
+        _id,
+        _lib._sel_removeObserver_fromObjectsAtIndexes_forKeyPath_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray filteredArrayUsingPredicate_(NSPredicate? predicate) {
+    final _ret = _lib._objc_msgSend_195(_id,
+        _lib._sel_filteredArrayUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_new1);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSArray alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_alloc1);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArray1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSInteger = ffi.Long;
+
+class NSError extends NSObject {
+  NSError._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSError] that points to the same underlying object as [other].
+  static NSError castFrom<T extends _ObjCWrapper>(T other) {
+    return NSError._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSError] that wraps the given raw object pointer.
+  static NSError castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSError._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSError].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSError1);
+  }
+
+  NSError initWithDomain_code_userInfo_(NSErrorDomain domain, int code) {
+    final _ret = _lib._objc_msgSend_77(
+        _id, _lib._sel_initWithDomain_code_userInfo_1, domain, code);
+    return NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSError errorWithDomain_code_userInfo_(
+      AVFAudio _lib, NSErrorDomain domain, int code) {
+    final _ret = _lib._objc_msgSend_77(_lib._class_NSError1,
+        _lib._sel_errorWithDomain_code_userInfo_1, domain, code);
+    return NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSErrorDomain get domain {
+    return _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+  }
+
+  int get code {
+    return _lib._objc_msgSend_78(_id, _lib._sel_code1);
+  }
+
+  static NSError new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSError1, _lib._sel_new1);
+    return NSError._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSError alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSError1, _lib._sel_alloc1);
+    return NSError._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSError1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSError1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSError1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSError1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSError1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSError1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSError1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSError1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSError1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSErrorDomain = ffi.Pointer<ObjCObject>;
+
+class NSIndexSet extends NSObject {
+  NSIndexSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSIndexSet] that points to the same underlying object as [other].
+  static NSIndexSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSIndexSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSIndexSet] that wraps the given raw object pointer.
+  static NSIndexSet castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSIndexSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSIndexSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSIndexSet1);
+  }
+
+  static NSIndexSet indexSet(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_indexSet1);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexSet indexSetWithIndex_(AVFAudio _lib, int value) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSIndexSet1, _lib._sel_indexSetWithIndex_1, value);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexSet indexSetWithIndexesInRange_(AVFAudio _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_83(
+        _lib._class_NSIndexSet1, _lib._sel_indexSetWithIndexesInRange_1, range);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndexesInRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_83(_id, _lib._sel_initWithIndexesInRange_1, range);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndexSet_(NSIndexSet? indexSet) {
+    final _ret = _lib._objc_msgSend_84(
+        _id, _lib._sel_initWithIndexSet_1, indexSet?._id ?? ffi.nullptr);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndex_(int value) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithIndex_1, value);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToIndexSet_(NSIndexSet? indexSet) {
+    return _lib._objc_msgSend_85(
+        _id, _lib._sel_isEqualToIndexSet_1, indexSet?._id ?? ffi.nullptr);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  int get firstIndex {
+    return _lib._objc_msgSend_10(_id, _lib._sel_firstIndex1);
+  }
+
+  int get lastIndex {
+    return _lib._objc_msgSend_10(_id, _lib._sel_lastIndex1);
+  }
+
+  int indexGreaterThanIndex_(int value) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexGreaterThanIndex_1, value);
+  }
+
+  int indexLessThanIndex_(int value) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexLessThanIndex_1, value);
+  }
+
+  int indexGreaterThanOrEqualToIndex_(int value) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_indexGreaterThanOrEqualToIndex_1, value);
+  }
+
+  int indexLessThanOrEqualToIndex_(int value) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_indexLessThanOrEqualToIndex_1, value);
+  }
+
+  int getIndexes_maxCount_inIndexRange_(ffi.Pointer<NSUInteger> indexBuffer,
+      int bufferSize, NSRangePointer range) {
+    return _lib._objc_msgSend_87(
+        _id,
+        _lib._sel_getIndexes_maxCount_inIndexRange_1,
+        indexBuffer,
+        bufferSize,
+        range);
+  }
+
+  int countOfIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_88(_id, _lib._sel_countOfIndexesInRange_1, range);
+  }
+
+  bool containsIndex_(int value) {
+    return _lib._objc_msgSend_89(_id, _lib._sel_containsIndex_1, value);
+  }
+
+  bool containsIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_90(
+        _id, _lib._sel_containsIndexesInRange_1, range);
+  }
+
+  bool containsIndexes_(NSIndexSet? indexSet) {
+    return _lib._objc_msgSend_85(
+        _id, _lib._sel_containsIndexes_1, indexSet?._id ?? ffi.nullptr);
+  }
+
+  bool intersectsIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_90(
+        _id, _lib._sel_intersectsIndexesInRange_1, range);
+  }
+
+  void enumerateIndexesUsingBlock_(ObjCBlock block) {
+    return _lib._objc_msgSend_91(
+        _id, _lib._sel_enumerateIndexesUsingBlock_1, block._id);
+  }
+
+  void enumerateIndexesWithOptions_usingBlock_(int opts, ObjCBlock block) {
+    return _lib._objc_msgSend_92(_id,
+        _lib._sel_enumerateIndexesWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateIndexesInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock block) {
+    return _lib._objc_msgSend_93(
+        _id,
+        _lib._sel_enumerateIndexesInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  int indexPassingTest_(ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_94(
+        _id, _lib._sel_indexPassingTest_1, predicate._id);
+  }
+
+  int indexWithOptions_passingTest_(int opts, ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_95(
+        _id, _lib._sel_indexWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexInRange_options_passingTest_(
+      NSRange range, int opts, ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_96(
+        _id,
+        _lib._sel_indexInRange_options_passingTest_1,
+        range,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesPassingTest_(ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_97(
+        _id, _lib._sel_indexesPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesWithOptions_passingTest_(int opts, ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_98(
+        _id, _lib._sel_indexesWithOptions_passingTest_1, opts, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesInRange_options_passingTest_(
+      NSRange range, int opts, ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_99(
+        _id,
+        _lib._sel_indexesInRange_options_passingTest_1,
+        range,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateRangesUsingBlock_(ObjCBlock2 block) {
+    return _lib._objc_msgSend_100(
+        _id, _lib._sel_enumerateRangesUsingBlock_1, block._id);
+  }
+
+  void enumerateRangesWithOptions_usingBlock_(int opts, ObjCBlock2 block) {
+    return _lib._objc_msgSend_101(_id,
+        _lib._sel_enumerateRangesWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateRangesInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock2 block) {
+    return _lib._objc_msgSend_102(
+        _id,
+        _lib._sel_enumerateRangesInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  static NSIndexSet new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_new1);
+    return NSIndexSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSIndexSet alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_alloc1);
+    return NSIndexSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSIndexSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSIndexSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSIndexSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSIndexSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSIndexSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSIndexSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSIndexSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRangePointer = ffi.Pointer<NSRange>;
+
+class _ObjCBlockBase implements ffi.Finalizable {
+  final ffi.Pointer<_ObjCBlock> _id;
+  final AVFAudio _lib;
+  bool _pendingRelease;
+
+  _ObjCBlockBase._(this._id, this._lib,
+      {bool retain = false, bool release = false})
+      : _pendingRelease = release {
+    if (retain) {
+      _lib._Block_copy(_id.cast());
+    }
+    if (release) {
+      _lib._objc_releaseFinalizer11.attach(this, _id.cast(), detach: this);
+    }
+  }
+
+  /// Releases the reference to the underlying ObjC block held by this wrapper.
+  /// Throws a StateError if this wrapper doesn't currently hold a reference.
+  void release() {
+    if (_pendingRelease) {
+      _pendingRelease = false;
+      _lib._Block_release(_id.cast());
+      _lib._objc_releaseFinalizer11.detach(this);
+    } else {
+      throw StateError(
+          'Released an ObjC block that was unowned or already released.');
+    }
+  }
+
+  @override
+  bool operator ==(Object other) {
+    return other is _ObjCBlockBase && _id == other._id;
+  }
+
+  @override
+  int get hashCode => _id.hashCode;
+}
+
+void _ObjCBlock_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(int arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock_closureRegistry = <int, Function>{};
+int _ObjCBlock_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock_registerClosure(Function fn) {
+  final id = ++_ObjCBlock_closureRegistryIndex;
+  _ObjCBlock_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock extends _ObjCBlockBase {
+  ObjCBlock._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock.fromFunction(
+      AVFAudio lib, void Function(int arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock_closureTrampoline)
+                    .cast(),
+                _ObjCBlock_registerClosure(fn)),
+            lib);
+  void call(int arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block, int arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class _ObjCBlockDesc extends ffi.Struct {
+  @ffi.UnsignedLong()
+  external int reserved;
+
+  @ffi.UnsignedLong()
+  external int size;
+
+  external ffi.Pointer<ffi.Void> copy_helper;
+
+  external ffi.Pointer<ffi.Void> dispose_helper;
+
+  external ffi.Pointer<ffi.Char> signature;
+}
+
+class _ObjCBlock extends ffi.Struct {
+  external ffi.Pointer<ffi.Void> isa;
+
+  @ffi.Int()
+  external int flags;
+
+  @ffi.Int()
+  external int reserved;
+
+  external ffi.Pointer<ffi.Void> invoke;
+
+  external ffi.Pointer<_ObjCBlockDesc> descriptor;
+
+  external ffi.Pointer<ffi.Void> target;
+}
+
+abstract class NSEnumerationOptions {
+  static const int NSEnumerationConcurrent = 1;
+  static const int NSEnumerationReverse = 2;
+}
+
+bool _ObjCBlock1_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          bool Function(int arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock1_closureRegistry = <int, Function>{};
+int _ObjCBlock1_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock1_registerClosure(Function fn) {
+  final id = ++_ObjCBlock1_closureRegistryIndex;
+  _ObjCBlock1_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock1_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock1_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock1 extends _ObjCBlockBase {
+  ObjCBlock1._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock1.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock1_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock1.fromFunction(
+      AVFAudio lib, bool Function(int arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock1_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock1_registerClosure(fn)),
+            lib);
+  bool call(int arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                    NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            bool Function(ffi.Pointer<_ObjCBlock> block, int arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock2_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(
+              NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock2_closureRegistry = <int, Function>{};
+int _ObjCBlock2_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock2_registerClosure(Function fn) {
+  final id = ++_ObjCBlock2_closureRegistryIndex;
+  _ObjCBlock2_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock2_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock2_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock2 extends _ObjCBlockBase {
+  ObjCBlock2._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock2.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock2_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock2.fromFunction(
+      AVFAudio lib, void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock2_closureTrampoline)
+                    .cast(),
+                _ObjCBlock2_registerClosure(fn)),
+            lib);
+  void call(NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block, NSRange arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block, NSRange arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock3_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSUInteger arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock3_closureRegistry = <int, Function>{};
+int _ObjCBlock3_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock3_registerClosure(Function fn) {
+  final id = ++_ObjCBlock3_closureRegistryIndex;
+  _ObjCBlock3_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock3_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock3_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock3 extends _ObjCBlockBase {
+  ObjCBlock3._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock3.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      NSUInteger arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock3_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock3.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock3_closureTrampoline)
+                    .cast(),
+                _ObjCBlock3_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSUInteger arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+bool _ObjCBlock4_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(ffi.Pointer<ObjCObject> arg0, NSUInteger arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock4_closureRegistry = <int, Function>{};
+int _ObjCBlock4_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock4_registerClosure(Function fn) {
+  final id = ++_ObjCBlock4_closureRegistryIndex;
+  _ObjCBlock4_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock4_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock4_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock4 extends _ObjCBlockBase {
+  ObjCBlock4._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock4.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                      NSUInteger arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock4_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock4.fromFunction(
+      AVFAudio lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock4_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock4_registerClosure(fn)),
+            lib);
+  bool call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSUInteger arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSComparator = ffi.Pointer<_ObjCBlock>;
+int _ObjCBlock5_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Int32 Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          int Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock5_closureRegistry = <int, Function>{};
+int _ObjCBlock5_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock5_registerClosure(Function fn) {
+  final id = ++_ObjCBlock5_closureRegistryIndex;
+  _ObjCBlock5_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+int _ObjCBlock5_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock5_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock5 extends _ObjCBlockBase {
+  ObjCBlock5._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock5.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Int32 Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Int32 Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock5_fnPtrTrampoline, 0)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock5.fromFunction(
+      AVFAudio lib,
+      int Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Int32 Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock5_closureTrampoline, 0)
+                    .cast(),
+                _ObjCBlock5_registerClosure(fn)),
+            lib);
+  int call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Int32 Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            int Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSComparisonResult {
+  static const int NSOrderedAscending = -1;
+  static const int NSOrderedSame = 0;
+  static const int NSOrderedDescending = 1;
+}
+
+abstract class NSSortOptions {
+  static const int NSSortConcurrent = 1;
+  static const int NSSortStable = 16;
+}
+
+abstract class NSBinarySearchingOptions {
+  static const int NSBinarySearchingFirstEqual = 256;
+  static const int NSBinarySearchingLastEqual = 512;
+  static const int NSBinarySearchingInsertionIndex = 1024;
+}
+
+abstract class NSKeyValueObservingOptions {
+  static const int NSKeyValueObservingOptionNew = 1;
+  static const int NSKeyValueObservingOptionOld = 2;
+  static const int NSKeyValueObservingOptionInitial = 4;
+  static const int NSKeyValueObservingOptionPrior = 8;
+}
+
+class NSPredicate extends NSObject {
+  NSPredicate._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPredicate] that points to the same underlying object as [other].
+  static NSPredicate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPredicate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPredicate] that wraps the given raw object pointer.
+  static NSPredicate castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPredicate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPredicate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPredicate1);
+  }
+
+  static NSPredicate predicateWithFormat_argumentArray_(
+      AVFAudio _lib, NSString? predicateFormat, NSArray? arguments) {
+    final _ret = _lib._objc_msgSend_129(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_argumentArray_1,
+        predicateFormat?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithFormat_(
+      AVFAudio _lib, NSString? predicateFormat) {
+    final _ret = _lib._objc_msgSend_130(_lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_1, predicateFormat?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithFormat_arguments_(AVFAudio _lib,
+      NSString? predicateFormat, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_131(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_arguments_1,
+        predicateFormat?._id ?? ffi.nullptr,
+        argList);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateFromMetadataQueryString_(
+      AVFAudio _lib, NSString? queryString) {
+    final _ret = _lib._objc_msgSend_130(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateFromMetadataQueryString_1,
+        queryString?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithValue_(AVFAudio _lib, bool value) {
+    final _ret = _lib._objc_msgSend_132(
+        _lib._class_NSPredicate1, _lib._sel_predicateWithValue_1, value);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithBlock_(AVFAudio _lib, ObjCBlock6 block) {
+    final _ret = _lib._objc_msgSend_193(
+        _lib._class_NSPredicate1, _lib._sel_predicateWithBlock_1, block._id);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get predicateFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_predicateFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPredicate predicateWithSubstitutionVariables_(NSDictionary? variables) {
+    final _ret = _lib._objc_msgSend_143(
+        _id,
+        _lib._sel_predicateWithSubstitutionVariables_1,
+        variables?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool evaluateWithObject_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_evaluateWithObject_1, object._id);
+  }
+
+  bool evaluateWithObject_substitutionVariables_(
+      NSObject object, NSDictionary? bindings) {
+    return _lib._objc_msgSend_194(
+        _id,
+        _lib._sel_evaluateWithObject_substitutionVariables_1,
+        object._id,
+        bindings?._id ?? ffi.nullptr);
+  }
+
+  void allowEvaluation() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_allowEvaluation1);
+  }
+
+  static NSPredicate new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPredicate1, _lib._sel_new1);
+    return NSPredicate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPredicate alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPredicate1, _lib._sel_alloc1);
+    return NSPredicate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPredicate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPredicate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPredicate1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPredicate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPredicate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPredicate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPredicate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPredicate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPredicate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class __va_list_tag extends ffi.Struct {
+  @ffi.UnsignedInt()
+  external int gp_offset;
+
+  @ffi.UnsignedInt()
+  external int fp_offset;
+
+  external ffi.Pointer<ffi.Void> overflow_arg_area;
+
+  external ffi.Pointer<ffi.Void> reg_save_area;
+}
+
+bool _ObjCBlock6_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock6_closureRegistry = <int, Function>{};
+int _ObjCBlock6_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock6_registerClosure(Function fn) {
+  final id = ++_ObjCBlock6_closureRegistryIndex;
+  _ObjCBlock6_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock6_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock6_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock6 extends _ObjCBlockBase {
+  ObjCBlock6._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock6.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock6_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock6.fromFunction(
+      AVFAudio lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock6_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock6_registerClosure(fn)),
+            lib);
+  bool call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSDictionary extends NSObject {
+  NSDictionary._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDictionary] that points to the same underlying object as [other].
+  static NSDictionary castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDictionary._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSDictionary] that wraps the given raw object pointer.
+  static NSDictionary castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDictionary._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDictionary].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSDictionary1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectForKey_(NSObject aKey) {
+    final _ret = _lib._objc_msgSend_16(_id, _lib._sel_objectForKey_1, aKey._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator keyEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_keyEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSDictionary init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithObjects_forKeys_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(
+        _id, _lib._sel_initWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray allKeysForObject_(NSObject anObject) {
+    final _ret =
+        _lib._objc_msgSend_62(_id, _lib._sel_allKeysForObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allValues {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allValues1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get descriptionInStringsFileFormat {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_descriptionInStringsFileFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_134(_id, _lib._sel_isEqualToDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForKeys_notFoundMarker_(NSArray? keys, NSObject marker) {
+    final _ret = _lib._objc_msgSend_135(
+        _id,
+        _lib._sel_objectsForKeys_notFoundMarker_1,
+        keys?._id ?? ffi.nullptr,
+        marker._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_writeToURL_error_1, url?._id ?? ffi.nullptr, error);
+  }
+
+  NSArray keysSortedByValueUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    final _ret = _lib._objc_msgSend_75(
+        _id, _lib._sel_keysSortedByValueUsingSelector_1, comparator);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_andKeys_count_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys, int count) {
+    return _lib._objc_msgSend_136(
+        _id, _lib._sel_getObjects_andKeys_count_1, objects, keys, count);
+  }
+
+  NSObject objectForKeyedSubscript_(NSObject key) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_objectForKeyedSubscript_1, key._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateKeysAndObjectsUsingBlock_(ObjCBlock7 block) {
+    return _lib._objc_msgSend_137(
+        _id, _lib._sel_enumerateKeysAndObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateKeysAndObjectsWithOptions_usingBlock_(
+      int opts, ObjCBlock7 block) {
+    return _lib._objc_msgSend_138(
+        _id,
+        _lib._sel_enumerateKeysAndObjectsWithOptions_usingBlock_1,
+        opts,
+        block._id);
+  }
+
+  NSArray keysSortedByValueUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_keysSortedByValueUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray keysSortedByValueWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(_id,
+        _lib._sel_keysSortedByValueWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_andKeys_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys) {
+    return _lib._objc_msgSend_139(
+        _id, _lib._sel_getObjects_andKeys_1, objects, keys);
+  }
+
+  static NSDictionary dictionaryWithContentsOfFile_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_140(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_141(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_140(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_141(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  static NSDictionary dictionary(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_dictionary1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObject_forKey_(
+      AVFAudio _lib, NSObject object, NSObject key) {
+    final _ret = _lib._objc_msgSend_142(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObject_forKey_1, object._id, key._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjects_forKeys_count_(
+      AVFAudio _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjectsAndKeys_(
+      AVFAudio _lib, NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjectsAndKeys_1, firstObject._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithDictionary_(
+      AVFAudio _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_143(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithDictionary_1, dict?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjects_forKeys_(
+      AVFAudio _lib, NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithObjectsAndKeys_(NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_initWithObjectsAndKeys_1, firstObject._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithDictionary_(NSDictionary? otherDictionary) {
+    final _ret = _lib._objc_msgSend_143(_id, _lib._sel_initWithDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithDictionary_copyItems_(
+      NSDictionary? otherDictionary, bool flag) {
+    final _ret = _lib._objc_msgSend_145(
+        _id,
+        _lib._sel_initWithDictionary_copyItems_1,
+        otherDictionary?._id ?? ffi.nullptr,
+        flag);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSDictionary initWithObjects_forKeys_(NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _id,
+        _lib._sel_initWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _id,
+        _lib._sel_initWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject sharedKeySetForKeys_(AVFAudio _lib, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSDictionary1,
+        _lib._sel_sharedKeySetForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int countByEnumeratingWithState_objects_count_(
+      ffi.Pointer<NSFastEnumerationState> state,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> buffer,
+      int len) {
+    return _lib._objc_msgSend_147(
+        _id,
+        _lib._sel_countByEnumeratingWithState_objects_count_1,
+        state,
+        buffer,
+        len);
+  }
+
+  int fileSize() {
+    return _lib._objc_msgSend_148(_id, _lib._sel_fileSize1);
+  }
+
+  NSDate fileModificationDate() {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fileModificationDate1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString fileType() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fileType1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int filePosixPermissions() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_filePosixPermissions1);
+  }
+
+  NSString fileOwnerAccountName() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fileOwnerAccountName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString fileGroupOwnerAccountName() {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_fileGroupOwnerAccountName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int fileSystemNumber() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_fileSystemNumber1);
+  }
+
+  int fileSystemFileNumber() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_fileSystemFileNumber1);
+  }
+
+  bool fileExtensionHidden() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileExtensionHidden1);
+  }
+
+  int fileHFSCreatorCode() {
+    return _lib._objc_msgSend_191(_id, _lib._sel_fileHFSCreatorCode1);
+  }
+
+  int fileHFSTypeCode() {
+    return _lib._objc_msgSend_191(_id, _lib._sel_fileHFSTypeCode1);
+  }
+
+  bool fileIsImmutable() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileIsImmutable1);
+  }
+
+  bool fileIsAppendOnly() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileIsAppendOnly1);
+  }
+
+  NSDate fileCreationDate() {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fileCreationDate1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber fileOwnerAccountID() {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_fileOwnerAccountID1);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber fileGroupOwnerAccountID() {
+    final _ret =
+        _lib._objc_msgSend_192(_id, _lib._sel_fileGroupOwnerAccountID1);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_new1);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDictionary alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_alloc1);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDictionary1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDictionary1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDictionary1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDictionary1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDictionary1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSDictionary1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDictionary1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock7_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1, ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock7_closureRegistry = <int, Function>{};
+int _ObjCBlock7_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock7_registerClosure(Function fn) {
+  final id = ++_ObjCBlock7_closureRegistryIndex;
+  _ObjCBlock7_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock7_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock7_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock7 extends _ObjCBlockBase {
+  ObjCBlock7._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock7.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock7_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock7.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock7_closureTrampoline)
+                    .cast(),
+                _ObjCBlock7_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSFastEnumerationState extends ffi.Struct {
+  @ffi.UnsignedLong()
+  external int state;
+
+  external ffi.Pointer<ffi.Pointer<ObjCObject>> itemsPtr;
+
+  external ffi.Pointer<ffi.UnsignedLong> mutationsPtr;
+
+  @ffi.Array.multi([5])
+  external ffi.Array<ffi.UnsignedLong> extra;
+}
+
+class NSDate extends NSObject {
+  NSDate._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDate] that points to the same underlying object as [other].
+  static NSDate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSDate] that wraps the given raw object pointer.
+  static NSDate castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSDate1);
+  }
+
+  double get timeIntervalSinceReferenceDate {
+    return _lib._objc_msgSend_149(
+        _id, _lib._sel_timeIntervalSinceReferenceDate1);
+  }
+
+  @override
+  NSDate init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSinceReferenceDate_(double ti) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  double timeIntervalSinceDate_(NSDate? anotherDate) {
+    return _lib._objc_msgSend_151(_id, _lib._sel_timeIntervalSinceDate_1,
+        anotherDate?._id ?? ffi.nullptr);
+  }
+
+  double get timeIntervalSinceNow {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeIntervalSinceNow1);
+  }
+
+  double get timeIntervalSince1970 {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeIntervalSince19701);
+  }
+
+  NSObject addTimeInterval_(double seconds) {
+    final _ret =
+        _lib._objc_msgSend_150(_id, _lib._sel_addTimeInterval_1, seconds);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingTimeInterval_(double ti) {
+    final _ret =
+        _lib._objc_msgSend_150(_id, _lib._sel_dateByAddingTimeInterval_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate earlierDate_(NSDate? anotherDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_earlierDate_1, anotherDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate laterDate_(NSDate? anotherDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_laterDate_1, anotherDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compare_(NSDate? other) {
+    return _lib._objc_msgSend_153(
+        _id, _lib._sel_compare_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToDate_(NSDate? otherDate) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isEqualToDate_1, otherDate?._id ?? ffi.nullptr);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate date(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_date1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSinceNow_(AVFAudio _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _lib._class_NSDate1, _lib._sel_dateWithTimeIntervalSinceNow_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSinceReferenceDate_(
+      AVFAudio _lib, double ti) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSDate1,
+        _lib._sel_dateWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSince1970_(AVFAudio _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _lib._class_NSDate1, _lib._sel_dateWithTimeIntervalSince1970_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeInterval_sinceDate_(
+      AVFAudio _lib, double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _lib._class_NSDate1,
+        _lib._sel_dateWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantFuture(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_distantFuture1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantPast(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_distantPast1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getNow(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_now1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSinceNow_(double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSinceNow_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSince1970_(double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSince1970_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeInterval_sinceDate_(double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _id,
+        _lib._sel_initWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_locale_(
+      AVFAudio _lib, NSString? string, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSDate1,
+        _lib._sel_dateWithNaturalLanguageString_locale_1,
+        string?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSDate1,
+        _lib._sel_dateWithNaturalLanguageString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_(AVFAudio _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSDate1,
+        _lib._sel_dateWithString_1, aString?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarDate dateWithCalendarFormat_timeZone_(
+      NSString? format, NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_189(
+        _id,
+        _lib._sel_dateWithCalendarFormat_timeZone_1,
+        format?._id ?? ffi.nullptr,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_timeZone_locale_(
+      NSString? format, NSTimeZone? aTimeZone, NSObject locale) {
+    final _ret = _lib._objc_msgSend_190(
+        _id,
+        _lib._sel_descriptionWithCalendarFormat_timeZone_locale_1,
+        format?._id ?? ffi.nullptr,
+        aTimeZone?._id ?? ffi.nullptr,
+        locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_(NSString? description) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, description?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_new1);
+    return NSDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDate alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_alloc1);
+    return NSDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDate1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSDate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSTimeInterval = ffi.Double;
+
+class NSCalendarDate extends NSDate {
+  NSCalendarDate._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCalendarDate] that points to the same underlying object as [other].
+  static NSCalendarDate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCalendarDate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCalendarDate] that wraps the given raw object pointer.
+  static NSCalendarDate castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCalendarDate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCalendarDate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCalendarDate1);
+  }
+
+  static NSObject calendarDate(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendarDate1, _lib._sel_calendarDate1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_calendarFormat_locale_(
+      AVFAudio _lib, NSString? description, NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_158(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_calendarFormat_locale_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_calendarFormat_(
+      AVFAudio _lib, NSString? description, NSString? format) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_calendarFormat_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithYear_month_day_hour_minute_second_timeZone_(
+      AVFAudio _lib,
+      int year,
+      int month,
+      int day,
+      int hour,
+      int minute,
+      int second,
+      NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_184(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithYear_month_day_hour_minute_second_timeZone_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarDate dateByAddingYears_months_days_hours_minutes_seconds_(
+      int year, int month, int day, int hour, int minute, int second) {
+    final _ret = _lib._objc_msgSend_185(
+        _id,
+        _lib._sel_dateByAddingYears_months_days_hours_minutes_seconds_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int dayOfCommonEra() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfCommonEra1);
+  }
+
+  int dayOfMonth() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfMonth1);
+  }
+
+  int dayOfWeek() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfWeek1);
+  }
+
+  int dayOfYear() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfYear1);
+  }
+
+  int hourOfDay() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_hourOfDay1);
+  }
+
+  int minuteOfHour() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_minuteOfHour1);
+  }
+
+  int monthOfYear() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_monthOfYear1);
+  }
+
+  int secondOfMinute() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_secondOfMinute1);
+  }
+
+  int yearOfCommonEra() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_yearOfCommonEra1);
+  }
+
+  NSString calendarFormat() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_calendarFormat1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_locale_(
+      NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_167(
+        _id,
+        _lib._sel_descriptionWithCalendarFormat_locale_1,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_descriptionWithCalendarFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone timeZone() {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_calendarFormat_locale_(
+      NSString? description, NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_158(
+        _id,
+        _lib._sel_initWithString_calendarFormat_locale_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_calendarFormat_(
+      NSString? description, NSString? format) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_initWithString_calendarFormat_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject initWithString_(NSString? description) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, description?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithYear_month_day_hour_minute_second_timeZone_(
+      int year,
+      int month,
+      int day,
+      int hour,
+      int minute,
+      int second,
+      NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_184(
+        _id,
+        _lib._sel_initWithYear_month_day_hour_minute_second_timeZone_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCalendarFormat_(NSString? format) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setCalendarFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  void setTimeZone_(NSTimeZone? aTimeZone) {
+    return _lib._objc_msgSend_187(
+        _id, _lib._sel_setTimeZone_1, aTimeZone?._id ?? ffi.nullptr);
+  }
+
+  void years_months_days_hours_minutes_seconds_sinceDate_(
+      ffi.Pointer<NSInteger> yp,
+      ffi.Pointer<NSInteger> mop,
+      ffi.Pointer<NSInteger> dp,
+      ffi.Pointer<NSInteger> hp,
+      ffi.Pointer<NSInteger> mip,
+      ffi.Pointer<NSInteger> sp,
+      NSCalendarDate? date) {
+    return _lib._objc_msgSend_188(
+        _id,
+        _lib._sel_years_months_days_hours_minutes_seconds_sinceDate_1,
+        yp,
+        mop,
+        dp,
+        hp,
+        mip,
+        sp,
+        date?._id ?? ffi.nullptr);
+  }
+
+  static NSDate? getDistantFuture(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_156(
+        _lib._class_NSCalendarDate1, _lib._sel_distantFuture1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantPast(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_156(
+        _lib._class_NSCalendarDate1, _lib._sel_distantPast1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate date(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_date1);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSinceNow_(
+      AVFAudio _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSinceNow_1, secs);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSinceReferenceDate_(
+      AVFAudio _lib, double ti) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSince1970_(
+      AVFAudio _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSince1970_1, secs);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeInterval_sinceDate_(
+      AVFAudio _lib, double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getNow(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSCalendarDate1, _lib._sel_now1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_locale_(
+      AVFAudio _lib, NSString? string, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithNaturalLanguageString_locale_1,
+        string?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithNaturalLanguageString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_(AVFAudio _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_1, aString?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_new1);
+    return NSCalendarDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCalendarDate alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_alloc1);
+    return NSCalendarDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCalendarDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCalendarDate1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendarDate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCalendarDate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendarDate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSTimeZone extends NSObject {
+  NSTimeZone._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTimeZone] that points to the same underlying object as [other].
+  static NSTimeZone castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTimeZone._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTimeZone] that wraps the given raw object pointer.
+  static NSTimeZone castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTimeZone._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTimeZone].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTimeZone1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int secondsFromGMTForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_160(
+        _id, _lib._sel_secondsFromGMTForDate_1, aDate?._id ?? ffi.nullptr);
+  }
+
+  NSString abbreviationForDate_(NSDate? aDate) {
+    final _ret = _lib._objc_msgSend_161(
+        _id, _lib._sel_abbreviationForDate_1, aDate?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isDaylightSavingTimeForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_154(_id, _lib._sel_isDaylightSavingTimeForDate_1,
+        aDate?._id ?? ffi.nullptr);
+  }
+
+  double daylightSavingTimeOffsetForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_151(_id,
+        _lib._sel_daylightSavingTimeOffsetForDate_1, aDate?._id ?? ffi.nullptr);
+  }
+
+  NSDate nextDaylightSavingTimeTransitionAfterDate_(NSDate? aDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id,
+        _lib._sel_nextDaylightSavingTimeTransitionAfterDate_1,
+        aDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone? getSystemTimeZone(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_systemTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void resetSystemTimeZone(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(
+        _lib._class_NSTimeZone1, _lib._sel_resetSystemTimeZone1);
+  }
+
+  static NSTimeZone? getDefaultTimeZone(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_defaultTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setDefaultTimeZone(AVFAudio _lib, NSTimeZone? value) {
+    _lib._objc_msgSend_163(_lib._class_NSTimeZone1,
+        _lib._sel_setDefaultTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSTimeZone? getLocalTimeZone(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_localTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getKnownTimeZoneNames(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimeZone1, _lib._sel_knownTimeZoneNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary? getAbbreviationDictionary(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_164(
+        _lib._class_NSTimeZone1, _lib._sel_abbreviationDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setAbbreviationDictionary(AVFAudio _lib, NSDictionary? value) {
+    _lib._objc_msgSend_165(_lib._class_NSTimeZone1,
+        _lib._sel_setAbbreviationDictionary_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSString? getTimeZoneDataVersion(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_20(
+        _lib._class_NSTimeZone1, _lib._sel_timeZoneDataVersion1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get secondsFromGMT {
+    return _lib._objc_msgSend_78(_id, _lib._sel_secondsFromGMT1);
+  }
+
+  NSString? get abbreviation {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_abbreviation1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get daylightSavingTime {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDaylightSavingTime1);
+  }
+
+  double get daylightSavingTimeOffset {
+    return _lib._objc_msgSend_149(_id, _lib._sel_daylightSavingTimeOffset1);
+  }
+
+  NSDate? get nextDaylightSavingTimeTransition {
+    final _ret = _lib._objc_msgSend_156(
+        _id, _lib._sel_nextDaylightSavingTimeTransition1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToTimeZone_(NSTimeZone? aTimeZone) {
+    return _lib._objc_msgSend_166(
+        _id, _lib._sel_isEqualToTimeZone_1, aTimeZone?._id ?? ffi.nullptr);
+  }
+
+  NSString localizedName_locale_(int style, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_181(_id, _lib._sel_localizedName_locale_1,
+        style, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithName_(AVFAudio _lib, NSString? tzName) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithName_1, tzName?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithName_data_(
+      AVFAudio _lib, NSString? tzName, NSData? aData) {
+    final _ret = _lib._objc_msgSend_182(
+        _lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithName_data_1,
+        tzName?._id ?? ffi.nullptr,
+        aData?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone initWithName_(NSString? tzName) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithName_1, tzName?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone initWithName_data_(NSString? tzName, NSData? aData) {
+    final _ret = _lib._objc_msgSend_182(_id, _lib._sel_initWithName_data_1,
+        tzName?._id ?? ffi.nullptr, aData?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneForSecondsFromGMT_(AVFAudio _lib, int seconds) {
+    final _ret = _lib._objc_msgSend_183(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneForSecondsFromGMT_1, seconds);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithAbbreviation_(
+      AVFAudio _lib, NSString? abbreviation) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithAbbreviation_1, abbreviation?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimeZone1, _lib._sel_new1);
+    return NSTimeZone._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTimeZone alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSTimeZone1, _lib._sel_alloc1);
+    return NSTimeZone._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTimeZone1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTimeZone1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimeZone1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimeZone1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTimeZone1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTimeZone1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTimeZone1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimeZone1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTimeZone1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTimeZoneNameStyle {
+  static const int NSTimeZoneNameStyleStandard = 0;
+  static const int NSTimeZoneNameStyleShortStandard = 1;
+  static const int NSTimeZoneNameStyleDaylightSaving = 2;
+  static const int NSTimeZoneNameStyleShortDaylightSaving = 3;
+  static const int NSTimeZoneNameStyleGeneric = 4;
+  static const int NSTimeZoneNameStyleShortGeneric = 5;
+}
+
+class NSLocale extends NSObject {
+  NSLocale._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSLocale] that points to the same underlying object as [other].
+  static NSLocale castFrom<T extends _ObjCWrapper>(T other) {
+    return NSLocale._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSLocale] that wraps the given raw object pointer.
+  static NSLocale castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSLocale._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSLocale].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSLocale1);
+  }
+
+  NSObject objectForKey_(NSLocaleKey key) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_objectForKey_1, key);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString displayNameForKey_value_(NSLocaleKey key, NSObject value) {
+    final _ret = _lib._objc_msgSend_167(
+        _id, _lib._sel_displayNameForKey_value_1, key, value._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSLocale initWithLocaleIdentifier_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithLocaleIdentifier_1, string?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSLocale initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localeIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localeIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForLocaleIdentifier_(NSString? localeIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForLocaleIdentifier_1,
+        localeIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get languageCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_languageCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForLanguageCode_(NSString? languageCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForLanguageCode_1,
+        languageCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get countryCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_countryCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCountryCode_(NSString? countryCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCountryCode_1,
+        countryCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get scriptCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scriptCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForScriptCode_(NSString? scriptCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForScriptCode_1,
+        scriptCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get variantCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_variantCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForVariantCode_(NSString? variantCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForVariantCode_1,
+        variantCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet? get exemplarCharacterSet {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_exemplarCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get calendarIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_calendarIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCalendarIdentifier_(NSString? calendarIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCalendarIdentifier_1,
+        calendarIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get collationIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_collationIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCollationIdentifier_(
+      NSString? collationIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCollationIdentifier_1,
+        collationIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get usesMetricSystem {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesMetricSystem1);
+  }
+
+  NSString? get decimalSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_decimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get groupingSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_groupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get currencySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get currencyCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencyCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCurrencyCode_(NSString? currencyCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCurrencyCode_1,
+        currencyCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get collatorIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_collatorIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCollatorIdentifier_(NSString? collatorIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCollatorIdentifier_1,
+        collatorIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get quotationBeginDelimiter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_quotationBeginDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get quotationEndDelimiter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_quotationEndDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get alternateQuotationBeginDelimiter {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_alternateQuotationBeginDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get alternateQuotationEndDelimiter {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_alternateQuotationEndDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getAutoupdatingCurrentLocale(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_176(
+        _lib._class_NSLocale1, _lib._sel_autoupdatingCurrentLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getCurrentLocale(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_176(_lib._class_NSLocale1, _lib._sel_currentLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getSystemLocale(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_176(_lib._class_NSLocale1, _lib._sel_systemLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale localeWithLocaleIdentifier_(AVFAudio _lib, NSString? ident) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSLocale1,
+        _lib._sel_localeWithLocaleIdentifier_1, ident?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSLocale init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAvailableLocaleIdentifiers(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_availableLocaleIdentifiers1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOLanguageCodes(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOLanguageCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOCountryCodes(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOCountryCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOCurrencyCodes(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOCurrencyCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getCommonISOCurrencyCodes(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_commonISOCurrencyCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getPreferredLanguages(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_preferredLanguages1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary componentsFromLocaleIdentifier_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_140(_lib._class_NSLocale1,
+        _lib._sel_componentsFromLocaleIdentifier_1, string?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localeIdentifierFromComponents_(
+      AVFAudio _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_177(_lib._class_NSLocale1,
+        _lib._sel_localeIdentifierFromComponents_1, dict?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString canonicalLocaleIdentifierFromString_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(
+        _lib._class_NSLocale1,
+        _lib._sel_canonicalLocaleIdentifierFromString_1,
+        string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString canonicalLanguageIdentifierFromString_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(
+        _lib._class_NSLocale1,
+        _lib._sel_canonicalLanguageIdentifierFromString_1,
+        string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localeIdentifierFromWindowsLocaleCode_(
+      AVFAudio _lib, int lcid) {
+    final _ret = _lib._objc_msgSend_178(_lib._class_NSLocale1,
+        _lib._sel_localeIdentifierFromWindowsLocaleCode_1, lcid);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int windowsLocaleCodeFromLocaleIdentifier_(
+      AVFAudio _lib, NSString? localeIdentifier) {
+    return _lib._objc_msgSend_179(
+        _lib._class_NSLocale1,
+        _lib._sel_windowsLocaleCodeFromLocaleIdentifier_1,
+        localeIdentifier?._id ?? ffi.nullptr);
+  }
+
+  static int characterDirectionForLanguage_(
+      AVFAudio _lib, NSString? isoLangCode) {
+    return _lib._objc_msgSend_180(
+        _lib._class_NSLocale1,
+        _lib._sel_characterDirectionForLanguage_1,
+        isoLangCode?._id ?? ffi.nullptr);
+  }
+
+  static int lineDirectionForLanguage_(AVFAudio _lib, NSString? isoLangCode) {
+    return _lib._objc_msgSend_180(_lib._class_NSLocale1,
+        _lib._sel_lineDirectionForLanguage_1, isoLangCode?._id ?? ffi.nullptr);
+  }
+
+  static NSLocale new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSLocale1, _lib._sel_new1);
+    return NSLocale._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSLocale alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSLocale1, _lib._sel_alloc1);
+    return NSLocale._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSLocale1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSLocale1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSLocale1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSLocale1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSLocale1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSLocale1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSLocale1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSLocale1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSLocaleKey = ffi.Pointer<ObjCObject>;
+
+class NSCharacterSet extends NSObject {
+  NSCharacterSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCharacterSet] that points to the same underlying object as [other].
+  static NSCharacterSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCharacterSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCharacterSet] that wraps the given raw object pointer.
+  static NSCharacterSet castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCharacterSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCharacterSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCharacterSet1);
+  }
+
+  static NSCharacterSet? getControlCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_controlCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getWhitespaceCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_whitespaceCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getWhitespaceAndNewlineCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(_lib._class_NSCharacterSet1,
+        _lib._sel_whitespaceAndNewlineCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getDecimalDigitCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_decimalDigitCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getLetterCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_letterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getLowercaseLetterCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_lowercaseLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getUppercaseLetterCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_uppercaseLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getNonBaseCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_nonBaseCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getAlphanumericCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_alphanumericCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getDecomposableCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_decomposableCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getIllegalCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_illegalCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getPunctuationCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_punctuationCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getCapitalizedLetterCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_capitalizedLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getSymbolCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_symbolCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getNewlineCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_newlineCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCharacterSet characterSetWithRange_(AVFAudio _lib, NSRange aRange) {
+    final _ret = _lib._objc_msgSend_169(
+        _lib._class_NSCharacterSet1, _lib._sel_characterSetWithRange_1, aRange);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithCharactersInString_(
+      AVFAudio _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_170(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithCharactersInString_1,
+        aString?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithBitmapRepresentation_(
+      AVFAudio _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_171(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithBitmapRepresentation_1,
+        data?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithContentsOfFile_(
+      AVFAudio _lib, NSString? fName) {
+    final _ret = _lib._objc_msgSend_170(_lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithContentsOfFile_1, fName?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool characterIsMember_(int aCharacter) {
+    return _lib._objc_msgSend_172(
+        _id, _lib._sel_characterIsMember_1, aCharacter);
+  }
+
+  NSData? get bitmapRepresentation {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_bitmapRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet? get invertedSet {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_invertedSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool longCharacterIsMember_(int theLongChar) {
+    return _lib._objc_msgSend_173(
+        _id, _lib._sel_longCharacterIsMember_1, theLongChar);
+  }
+
+  bool isSupersetOfSet_(NSCharacterSet? theOtherSet) {
+    return _lib._objc_msgSend_174(
+        _id, _lib._sel_isSupersetOfSet_1, theOtherSet?._id ?? ffi.nullptr);
+  }
+
+  bool hasMemberInPlane_(int thePlane) {
+    return _lib._objc_msgSend_175(_id, _lib._sel_hasMemberInPlane_1, thePlane);
+  }
+
+  static NSCharacterSet? getURLUserAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLUserAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLPasswordAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLPasswordAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLHostAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLHostAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLPathAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLPathAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLQueryAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLQueryAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLFragmentAllowedCharacterSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLFragmentAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCharacterSet1, _lib._sel_new1);
+    return NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCharacterSet alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCharacterSet1, _lib._sel_alloc1);
+    return NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCharacterSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCharacterSet1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCharacterSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCharacterSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCharacterSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef UTF32Char = UInt32;
+typedef UInt32 = ffi.UnsignedInt;
+
+abstract class NSLocaleLanguageDirection {
+  static const int NSLocaleLanguageDirectionUnknown = 0;
+  static const int NSLocaleLanguageDirectionLeftToRight = 1;
+  static const int NSLocaleLanguageDirectionRightToLeft = 2;
+  static const int NSLocaleLanguageDirectionTopToBottom = 3;
+  static const int NSLocaleLanguageDirectionBottomToTop = 4;
+}
+
+typedef OSType = FourCharCode;
+typedef FourCharCode = UInt32;
+typedef NSURLResourceKey = ffi.Pointer<ObjCObject>;
+
+class NSURLHandle extends NSObject {
+  NSURLHandle._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLHandle] that points to the same underlying object as [other].
+  static NSURLHandle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLHandle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLHandle] that wraps the given raw object pointer.
+  static NSURLHandle castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLHandle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLHandle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLHandle1);
+  }
+
+  static void registerURLHandleClass_(
+      AVFAudio _lib, NSObject anURLHandleSubclass) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLHandle1,
+        _lib._sel_registerURLHandleClass_1, anURLHandleSubclass._id);
+  }
+
+  static NSObject URLHandleClassForURL_(AVFAudio _lib, NSURL? anURL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSURLHandle1,
+        _lib._sel_URLHandleClassForURL_1, anURL?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int status() {
+    return _lib._objc_msgSend_227(_id, _lib._sel_status1);
+  }
+
+  NSString failureReason() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_failureReason1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addClient_(NSObject? client) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_addClient_1, client?._id ?? ffi.nullptr);
+  }
+
+  void removeClient_(NSObject? client) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_removeClient_1, client?._id ?? ffi.nullptr);
+  }
+
+  void loadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_loadInBackground1);
+  }
+
+  void cancelLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancelLoadInBackground1);
+  }
+
+  NSData resourceData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_resourceData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData availableResourceData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_availableResourceData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int expectedResourceDataSize() {
+    return _lib._objc_msgSend_214(_id, _lib._sel_expectedResourceDataSize1);
+  }
+
+  void flushCachedData() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_flushCachedData1);
+  }
+
+  void backgroundLoadDidFailWithReason_(NSString? reason) {
+    return _lib._objc_msgSend_186(
+        _id,
+        _lib._sel_backgroundLoadDidFailWithReason_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  void didLoadBytes_loadComplete_(NSData? newBytes, bool yorn) {
+    return _lib._objc_msgSend_228(_id, _lib._sel_didLoadBytes_loadComplete_1,
+        newBytes?._id ?? ffi.nullptr, yorn);
+  }
+
+  static bool canInitWithURL_(AVFAudio _lib, NSURL? anURL) {
+    return _lib._objc_msgSend_229(_lib._class_NSURLHandle1,
+        _lib._sel_canInitWithURL_1, anURL?._id ?? ffi.nullptr);
+  }
+
+  static NSURLHandle cachedHandleForURL_(AVFAudio _lib, NSURL? anURL) {
+    final _ret = _lib._objc_msgSend_230(_lib._class_NSURLHandle1,
+        _lib._sel_cachedHandleForURL_1, anURL?._id ?? ffi.nullptr);
+    return NSURLHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithURL_cached_(NSURL? anURL, bool willCache) {
+    final _ret = _lib._objc_msgSend_231(_id, _lib._sel_initWithURL_cached_1,
+        anURL?._id ?? ffi.nullptr, willCache);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject propertyForKey_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_propertyForKey_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject propertyForKeyIfAvailable_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_propertyForKeyIfAvailable_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeProperty_forKey_(NSObject propertyValue, NSString? propertyKey) {
+    return _lib._objc_msgSend_225(_id, _lib._sel_writeProperty_forKey_1,
+        propertyValue._id, propertyKey?._id ?? ffi.nullptr);
+  }
+
+  bool writeData_(NSData? data) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_writeData_1, data?._id ?? ffi.nullptr);
+  }
+
+  NSData loadInForeground() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_loadInForeground1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void beginLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_beginLoadInBackground1);
+  }
+
+  void endLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_endLoadInBackground1);
+  }
+
+  static NSURLHandle new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLHandle1, _lib._sel_new1);
+    return NSURLHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLHandle alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLHandle1, _lib._sel_alloc1);
+    return NSURLHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLHandle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLHandle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLHandle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLHandle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLHandle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLHandle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLHandle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLHandleStatus {
+  static const int NSURLHandleNotLoaded = 0;
+  static const int NSURLHandleLoadSucceeded = 1;
+  static const int NSURLHandleLoadInProgress = 2;
+  static const int NSURLHandleLoadFailed = 3;
+}
+
+abstract class NSDataWritingOptions {
+  static const int NSDataWritingAtomic = 1;
+  static const int NSDataWritingWithoutOverwriting = 2;
+  static const int NSDataWritingFileProtectionNone = 268435456;
+  static const int NSDataWritingFileProtectionComplete = 536870912;
+  static const int NSDataWritingFileProtectionCompleteUnlessOpen = 805306368;
+  static const int
+      NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication =
+      1073741824;
+  static const int NSDataWritingFileProtectionMask = 4026531840;
+  static const int NSAtomicWrite = 1;
+}
+
+abstract class NSDataSearchOptions {
+  static const int NSDataSearchBackwards = 1;
+  static const int NSDataSearchAnchored = 2;
+}
+
+void _ObjCBlock8_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock8_closureRegistry = <int, Function>{};
+int _ObjCBlock8_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock8_registerClosure(Function fn) {
+  final id = ++_ObjCBlock8_closureRegistryIndex;
+  _ObjCBlock8_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock8_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock8_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock8 extends _ObjCBlockBase {
+  ObjCBlock8._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock8.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ffi.Void> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock8_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock8.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ffi.Void> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock8_closureTrampoline)
+                    .cast(),
+                _ObjCBlock8_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ffi.Void> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ffi.Void> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDataReadingOptions {
+  static const int NSDataReadingMappedIfSafe = 1;
+  static const int NSDataReadingUncached = 2;
+  static const int NSDataReadingMappedAlways = 8;
+  static const int NSDataReadingMapped = 1;
+  static const int NSMappedRead = 1;
+  static const int NSUncachedRead = 2;
+}
+
+void _ObjCBlock9_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ffi.Void> arg0, int arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ffi.Void> arg0, int arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock9_closureRegistry = <int, Function>{};
+int _ObjCBlock9_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock9_registerClosure(Function fn) {
+  final id = ++_ObjCBlock9_closureRegistryIndex;
+  _ObjCBlock9_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock9_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ffi.Void> arg0, int arg1) {
+  return _ObjCBlock9_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock9 extends _ObjCBlockBase {
+  ObjCBlock9._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock9.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<ffi.Void> arg0,
+                            NSUInteger arg1)>(_ObjCBlock9_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock9.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ffi.Void> arg0, int arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<ffi.Void> arg0,
+                            NSUInteger arg1)>(_ObjCBlock9_closureTrampoline)
+                    .cast(),
+                _ObjCBlock9_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ffi.Void> arg0, int arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ffi.Void> arg0, int arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDataBase64DecodingOptions {
+  static const int NSDataBase64DecodingIgnoreUnknownCharacters = 1;
+}
+
+abstract class NSDataBase64EncodingOptions {
+  static const int NSDataBase64Encoding64CharacterLineLength = 1;
+  static const int NSDataBase64Encoding76CharacterLineLength = 2;
+  static const int NSDataBase64EncodingEndLineWithCarriageReturn = 16;
+  static const int NSDataBase64EncodingEndLineWithLineFeed = 32;
+}
+
+abstract class NSDataCompressionAlgorithm {
+  static const int NSDataCompressionAlgorithmLZFSE = 0;
+  static const int NSDataCompressionAlgorithmLZ4 = 1;
+  static const int NSDataCompressionAlgorithmLZMA = 2;
+  static const int NSDataCompressionAlgorithmZlib = 3;
+}
+
+typedef NSZone = _NSZone;
+
+abstract class NSDecodingFailurePolicy {
+  static const int NSDecodingFailurePolicyRaiseException = 0;
+  static const int NSDecodingFailurePolicySetErrorAndReturn = 1;
+}
+
+abstract class NSStringCompareOptions {
+  static const int NSCaseInsensitiveSearch = 1;
+  static const int NSLiteralSearch = 2;
+  static const int NSBackwardsSearch = 4;
+  static const int NSAnchoredSearch = 8;
+  static const int NSNumericSearch = 64;
+  static const int NSDiacriticInsensitiveSearch = 128;
+  static const int NSWidthInsensitiveSearch = 256;
+  static const int NSForcedOrderingSearch = 512;
+  static const int NSRegularExpressionSearch = 1024;
+}
+
+abstract class NSStringEnumerationOptions {
+  static const int NSStringEnumerationByLines = 0;
+  static const int NSStringEnumerationByParagraphs = 1;
+  static const int NSStringEnumerationByComposedCharacterSequences = 2;
+  static const int NSStringEnumerationByWords = 3;
+  static const int NSStringEnumerationBySentences = 4;
+  static const int NSStringEnumerationByCaretPositions = 5;
+  static const int NSStringEnumerationByDeletionClusters = 6;
+  static const int NSStringEnumerationReverse = 256;
+  static const int NSStringEnumerationSubstringNotRequired = 512;
+  static const int NSStringEnumerationLocalized = 1024;
+}
+
+void _ObjCBlock10_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    NSRange arg1,
+    NSRange arg2,
+    ffi.Pointer<ffi.Bool> arg3) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  NSRange arg2, ffi.Pointer<ffi.Bool> arg3)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              NSRange arg1,
+              NSRange arg2,
+              ffi.Pointer<ffi.Bool> arg3)>()(arg0, arg1, arg2, arg3);
+}
+
+final _ObjCBlock10_closureRegistry = <int, Function>{};
+int _ObjCBlock10_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock10_registerClosure(Function fn) {
+  final id = ++_ObjCBlock10_closureRegistryIndex;
+  _ObjCBlock10_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock10_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    NSRange arg1,
+    NSRange arg2,
+    ffi.Pointer<ffi.Bool> arg3) {
+  return _ObjCBlock10_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2, arg3);
+}
+
+class ObjCBlock10 extends _ObjCBlockBase {
+  ObjCBlock10._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock10.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      NSRange arg2, ffi.Pointer<ffi.Bool> arg3)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                NSRange arg2,
+                                ffi.Pointer<ffi.Bool> arg3)>(
+                        _ObjCBlock10_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock10.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1, NSRange arg2,
+              ffi.Pointer<ffi.Bool> arg3)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                NSRange arg2,
+                                ffi.Pointer<ffi.Bool> arg3)>(
+                        _ObjCBlock10_closureTrampoline)
+                    .cast(),
+                _ObjCBlock10_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, NSRange arg1, NSRange arg2,
+      ffi.Pointer<ffi.Bool> arg3) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    NSRange arg2,
+                    ffi.Pointer<ffi.Bool> arg3)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                NSRange arg2,
+                ffi.Pointer<ffi.Bool> arg3)>()(_id, arg0, arg1, arg2, arg3);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock11_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock11_closureRegistry = <int, Function>{};
+int _ObjCBlock11_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock11_registerClosure(Function fn) {
+  final id = ++_ObjCBlock11_closureRegistryIndex;
+  _ObjCBlock11_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock11_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock11_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock11 extends _ObjCBlockBase {
+  ObjCBlock11._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock11.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock11_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock11.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock11_closureTrampoline)
+                    .cast(),
+                _ObjCBlock11_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSStringEncoding = NSUInteger;
+
+abstract class NSStringEncodingConversionOptions {
+  static const int NSStringEncodingConversionAllowLossy = 1;
+  static const int NSStringEncodingConversionExternalRepresentation = 2;
+}
+
+typedef NSStringTransform = ffi.Pointer<ObjCObject>;
+void _ObjCBlock12_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<unichar> arg0, int arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<unichar> arg0, NSUInteger arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<unichar> arg0, int arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock12_closureRegistry = <int, Function>{};
+int _ObjCBlock12_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock12_registerClosure(Function fn) {
+  final id = ++_ObjCBlock12_closureRegistryIndex;
+  _ObjCBlock12_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock12_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<unichar> arg0, int arg1) {
+  return _ObjCBlock12_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock12 extends _ObjCBlockBase {
+  ObjCBlock12._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock12.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<unichar> arg0, NSUInteger arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<unichar> arg0,
+                            NSUInteger arg1)>(_ObjCBlock12_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock12.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<unichar> arg0, int arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<unichar> arg0,
+                            NSUInteger arg1)>(_ObjCBlock12_closureTrampoline)
+                    .cast(),
+                _ObjCBlock12_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<unichar> arg0, int arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<unichar> arg0, NSUInteger arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<unichar> arg0, int arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSLinguisticTagScheme = ffi.Pointer<ObjCObject>;
+
+abstract class NSLinguisticTaggerOptions {
+  static const int NSLinguisticTaggerOmitWords = 1;
+  static const int NSLinguisticTaggerOmitPunctuation = 2;
+  static const int NSLinguisticTaggerOmitWhitespace = 4;
+  static const int NSLinguisticTaggerOmitOther = 8;
+  static const int NSLinguisticTaggerJoinNames = 16;
+}
+
+class NSOrthography extends NSObject {
+  NSOrthography._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOrthography] that points to the same underlying object as [other].
+  static NSOrthography castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOrthography._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOrthography] that wraps the given raw object pointer.
+  static NSOrthography castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOrthography._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOrthography].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOrthography1);
+  }
+
+  NSString? get dominantScript {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dominantScript1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get languageMap {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_languageMap1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrthography initWithDominantScript_languageMap_(
+      NSString? script, NSDictionary? map) {
+    final _ret = _lib._objc_msgSend_352(
+        _id,
+        _lib._sel_initWithDominantScript_languageMap_1,
+        script?._id ?? ffi.nullptr,
+        map?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrthography initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray languagesForScript_(NSString? script) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_languagesForScript_1, script?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString dominantLanguageForScript_(NSString? script) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_dominantLanguageForScript_1, script?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get dominantLanguage {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dominantLanguage1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allScripts {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allScripts1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allLanguages {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allLanguages1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography defaultOrthographyForLanguage_(
+      AVFAudio _lib, NSString? language) {
+    final _ret = _lib._objc_msgSend_30(
+        _lib._class_NSOrthography1,
+        _lib._sel_defaultOrthographyForLanguage_1,
+        language?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography orthographyWithDominantScript_languageMap_(
+      AVFAudio _lib, NSString? script, NSDictionary? map) {
+    final _ret = _lib._objc_msgSend_352(
+        _lib._class_NSOrthography1,
+        _lib._sel_orthographyWithDominantScript_languageMap_1,
+        script?._id ?? ffi.nullptr,
+        map?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrthography1, _lib._sel_new1);
+    return NSOrthography._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrthography alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrthography1, _lib._sel_alloc1);
+    return NSOrthography._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOrthography1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOrthography1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrthography1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrthography1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOrthography1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOrthography1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOrthography1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOrthography1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOrthography1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock13_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock13_closureRegistry = <int, Function>{};
+int _ObjCBlock13_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock13_registerClosure(Function fn) {
+  final id = ++_ObjCBlock13_closureRegistryIndex;
+  _ObjCBlock13_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock13_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock13_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock13 extends _ObjCBlockBase {
+  ObjCBlock13._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock13.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock13_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock13.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock13_closureTrampoline)
+                    .cast(),
+                _ObjCBlock13_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+bool _ObjCBlock14_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock14_closureRegistry = <int, Function>{};
+int _ObjCBlock14_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock14_registerClosure(Function fn) {
+  final id = ++_ObjCBlock14_closureRegistryIndex;
+  _ObjCBlock14_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock14_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock14_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock14 extends _ObjCBlockBase {
+  ObjCBlock14._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock14.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock14_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock14.fromFunction(
+      AVFAudio lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock14_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock14_registerClosure(fn)),
+            lib);
+  bool call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSFileManager extends NSObject {
+  NSFileManager._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileManager] that points to the same underlying object as [other].
+  static NSFileManager castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileManager._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileManager] that wraps the given raw object pointer.
+  static NSFileManager castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileManager._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileManager].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileManager1);
+  }
+
+  static NSFileManager? getDefaultManager(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_382(
+        _lib._class_NSFileManager1, _lib._sel_defaultManager1);
+    return _ret.address == 0
+        ? null
+        : NSFileManager._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray mountedVolumeURLsIncludingResourceValuesForKeys_options_(
+      NSArray? propertyKeys, int options) {
+    final _ret = _lib._objc_msgSend_383(
+        _id,
+        _lib._sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_1,
+        propertyKeys?._id ?? ffi.nullptr,
+        options);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void unmountVolumeAtURL_options_completionHandler_(
+      NSURL? url, int mask, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_384(
+        _id,
+        _lib._sel_unmountVolumeAtURL_options_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        completionHandler._id);
+  }
+
+  NSArray contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_(
+      NSURL? url,
+      NSArray? keys,
+      int mask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_385(
+        _id,
+        _lib._sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_1,
+        url?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForDirectory_inDomains_(int directory, int domainMask) {
+    final _ret = _lib._objc_msgSend_386(
+        _id, _lib._sel_URLsForDirectory_inDomains_1, directory, domainMask);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForDirectory_inDomain_appropriateForURL_create_error_(
+      int directory,
+      int domain,
+      NSURL? url,
+      bool shouldCreate,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_387(
+        _id,
+        _lib._sel_URLForDirectory_inDomain_appropriateForURL_create_error_1,
+        directory,
+        domain,
+        url?._id ?? ffi.nullptr,
+        shouldCreate,
+        error);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getRelationship_ofDirectoryAtURL_toItemAtURL_error_(
+      ffi.Pointer<ffi.Int32> outRelationship,
+      NSURL? directoryURL,
+      NSURL? otherURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_388(
+        _id,
+        _lib._sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_1,
+        outRelationship,
+        directoryURL?._id ?? ffi.nullptr,
+        otherURL?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool getRelationship_ofDirectory_inDomain_toItemAtURL_error_(
+      ffi.Pointer<ffi.Int32> outRelationship,
+      int directory,
+      int domainMask,
+      NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_389(
+        _id,
+        _lib._sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_1,
+        outRelationship,
+        directory,
+        domainMask,
+        url?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createDirectoryAtURL_withIntermediateDirectories_attributes_error_(
+      NSURL? url,
+      bool createIntermediates,
+      NSDictionary? attributes,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_390(
+        _id,
+        _lib._sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_1,
+        url?._id ?? ffi.nullptr,
+        createIntermediates,
+        attributes?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createSymbolicLinkAtURL_withDestinationURL_error_(
+      NSURL? url, NSURL? destURL, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(
+        _id,
+        _lib._sel_createSymbolicLinkAtURL_withDestinationURL_error_1,
+        url?._id ?? ffi.nullptr,
+        destURL?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool setAttributes_ofItemAtPath_error_(NSDictionary? attributes,
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_392(
+        _id,
+        _lib._sel_setAttributes_ofItemAtPath_error_1,
+        attributes?._id ?? ffi.nullptr,
+        path?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createDirectoryAtPath_withIntermediateDirectories_attributes_error_(
+      NSString? path,
+      bool createIntermediates,
+      NSDictionary? attributes,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_393(
+        _id,
+        _lib._sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_1,
+        path?._id ?? ffi.nullptr,
+        createIntermediates,
+        attributes?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSArray contentsOfDirectoryAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id,
+        _lib._sel_contentsOfDirectoryAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray subpathsOfDirectoryAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id,
+        _lib._sel_subpathsOfDirectoryAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesOfItemAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_395(
+        _id,
+        _lib._sel_attributesOfItemAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesOfFileSystemForPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_395(
+        _id,
+        _lib._sel_attributesOfFileSystemForPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool createSymbolicLinkAtPath_withDestinationPath_error_(NSString? path,
+      NSString? destPath, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(
+        _id,
+        _lib._sel_createSymbolicLinkAtPath_withDestinationPath_error_1,
+        path?._id ?? ffi.nullptr,
+        destPath?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSString destinationOfSymbolicLinkAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_397(
+        _id,
+        _lib._sel_destinationOfSymbolicLinkAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool copyItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_copyItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool moveItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_moveItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool linkItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_linkItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool removeItemAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_398(_id, _lib._sel_removeItemAtPath_error_1,
+        path?._id ?? ffi.nullptr, error);
+  }
+
+  bool copyItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_copyItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool moveItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_moveItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool linkItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_linkItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool removeItemAtURL_error_(
+      NSURL? URL, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_removeItemAtURL_error_1, URL?._id ?? ffi.nullptr, error);
+  }
+
+  bool trashItemAtURL_resultingItemURL_error_(
+      NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outResultingURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_399(
+        _id,
+        _lib._sel_trashItemAtURL_resultingItemURL_error_1,
+        url?._id ?? ffi.nullptr,
+        outResultingURL,
+        error);
+  }
+
+  NSDictionary fileAttributesAtPath_traverseLink_(NSString? path, bool yorn) {
+    final _ret = _lib._objc_msgSend_400(
+        _id,
+        _lib._sel_fileAttributesAtPath_traverseLink_1,
+        path?._id ?? ffi.nullptr,
+        yorn);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool changeFileAttributes_atPath_(NSDictionary? attributes, NSString? path) {
+    return _lib._objc_msgSend_401(_id, _lib._sel_changeFileAttributes_atPath_1,
+        attributes?._id ?? ffi.nullptr, path?._id ?? ffi.nullptr);
+  }
+
+  NSArray directoryContentsAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_directoryContentsAtPath_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary fileSystemAttributesAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_140(
+        _id, _lib._sel_fileSystemAttributesAtPath_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathContentOfSymbolicLinkAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_pathContentOfSymbolicLinkAtPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool createSymbolicLinkAtPath_pathContent_(
+      NSString? path, NSString? otherpath) {
+    return _lib._objc_msgSend_402(
+        _id,
+        _lib._sel_createSymbolicLinkAtPath_pathContent_1,
+        path?._id ?? ffi.nullptr,
+        otherpath?._id ?? ffi.nullptr);
+  }
+
+  bool createDirectoryAtPath_attributes_(
+      NSString? path, NSDictionary? attributes) {
+    return _lib._objc_msgSend_403(
+        _id,
+        _lib._sel_createDirectoryAtPath_attributes_1,
+        path?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  bool linkPath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_linkPath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool copyPath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_copyPath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool movePath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_movePath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool removeFileAtPath_handler_(NSString? path, NSObject handler) {
+    return _lib._objc_msgSend_405(_id, _lib._sel_removeFileAtPath_handler_1,
+        path?._id ?? ffi.nullptr, handler._id);
+  }
+
+  NSString? get currentDirectoryPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currentDirectoryPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool changeCurrentDirectoryPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_changeCurrentDirectoryPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool fileExistsAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_fileExistsAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool fileExistsAtPath_isDirectory_(
+      NSString? path, ffi.Pointer<ffi.Bool> isDirectory) {
+    return _lib._objc_msgSend_406(_id, _lib._sel_fileExistsAtPath_isDirectory_1,
+        path?._id ?? ffi.nullptr, isDirectory);
+  }
+
+  bool isReadableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isReadableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isWritableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isWritableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isExecutableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isExecutableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isDeletableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isDeletableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool contentsEqualAtPath_andPath_(NSString? path1, NSString? path2) {
+    return _lib._objc_msgSend_402(_id, _lib._sel_contentsEqualAtPath_andPath_1,
+        path1?._id ?? ffi.nullptr, path2?._id ?? ffi.nullptr);
+  }
+
+  NSString displayNameAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_displayNameAtPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsToDisplayForPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_componentsToDisplayForPath_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get homeDirectoryForCurrentUser {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_homeDirectoryForCurrentUser1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get temporaryDirectory {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_temporaryDirectory1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL homeDirectoryForUser_(NSString? userName) {
+    final _ret = _lib._objc_msgSend_34(
+        _id, _lib._sel_homeDirectoryForUser_1, userName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileManager new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileManager1, _lib._sel_new1);
+    return NSFileManager._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileManager alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileManager1, _lib._sel_alloc1);
+    return NSFileManager._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileManager1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileManager1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileManager1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileManager1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileManager1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileManager1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileManager1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileManager1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileManager1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSVolumeEnumerationOptions {
+  static const int NSVolumeEnumerationSkipHiddenVolumes = 2;
+  static const int NSVolumeEnumerationProduceFileReferenceURLs = 4;
+}
+
+abstract class NSFileManagerUnmountOptions {
+  static const int NSFileManagerUnmountAllPartitionsAndEjectDisk = 1;
+  static const int NSFileManagerUnmountWithoutUI = 2;
+}
+
+void _ObjCBlock15_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock15_closureRegistry = <int, Function>{};
+int _ObjCBlock15_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock15_registerClosure(Function fn) {
+  final id = ++_ObjCBlock15_closureRegistryIndex;
+  _ObjCBlock15_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock15_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock15_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock15 extends _ObjCBlockBase {
+  ObjCBlock15._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock15.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock15_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock15.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock15_closureTrampoline)
+                    .cast(),
+                _ObjCBlock15_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDirectoryEnumerationOptions {
+  static const int NSDirectoryEnumerationSkipsSubdirectoryDescendants = 1;
+  static const int NSDirectoryEnumerationSkipsPackageDescendants = 2;
+  static const int NSDirectoryEnumerationSkipsHiddenFiles = 4;
+  static const int NSDirectoryEnumerationIncludesDirectoriesPostOrder = 8;
+  static const int NSDirectoryEnumerationProducesRelativePathURLs = 16;
+}
+
+abstract class NSSearchPathDirectory {
+  static const int NSApplicationDirectory = 1;
+  static const int NSDemoApplicationDirectory = 2;
+  static const int NSDeveloperApplicationDirectory = 3;
+  static const int NSAdminApplicationDirectory = 4;
+  static const int NSLibraryDirectory = 5;
+  static const int NSDeveloperDirectory = 6;
+  static const int NSUserDirectory = 7;
+  static const int NSDocumentationDirectory = 8;
+  static const int NSDocumentDirectory = 9;
+  static const int NSCoreServiceDirectory = 10;
+  static const int NSAutosavedInformationDirectory = 11;
+  static const int NSDesktopDirectory = 12;
+  static const int NSCachesDirectory = 13;
+  static const int NSApplicationSupportDirectory = 14;
+  static const int NSDownloadsDirectory = 15;
+  static const int NSInputMethodsDirectory = 16;
+  static const int NSMoviesDirectory = 17;
+  static const int NSMusicDirectory = 18;
+  static const int NSPicturesDirectory = 19;
+  static const int NSPrinterDescriptionDirectory = 20;
+  static const int NSSharedPublicDirectory = 21;
+  static const int NSPreferencePanesDirectory = 22;
+  static const int NSApplicationScriptsDirectory = 23;
+  static const int NSItemReplacementDirectory = 99;
+  static const int NSAllApplicationsDirectory = 100;
+  static const int NSAllLibrariesDirectory = 101;
+  static const int NSTrashDirectory = 102;
+}
+
+abstract class NSSearchPathDomainMask {
+  static const int NSUserDomainMask = 1;
+  static const int NSLocalDomainMask = 2;
+  static const int NSNetworkDomainMask = 4;
+  static const int NSSystemDomainMask = 8;
+  static const int NSAllDomainsMask = 65535;
+}
+
+abstract class NSURLRelationship {
+  static const int NSURLRelationshipContains = 0;
+  static const int NSURLRelationshipSame = 1;
+  static const int NSURLRelationshipOther = 2;
+}
+
+class NSMutableArray extends NSArray {
+  NSMutableArray._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableArray] that points to the same underlying object as [other].
+  static NSMutableArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableArray] that wraps the given raw object pointer.
+  static NSMutableArray castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableArray1);
+  }
+
+  void addObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, anObject._id);
+  }
+
+  void insertObject_atIndex_(NSObject anObject, int index) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_insertObject_atIndex_1, anObject._id, index);
+  }
+
+  void removeLastObject() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeLastObject1);
+  }
+
+  void removeObjectAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeObjectAtIndex_1, index);
+  }
+
+  void replaceObjectAtIndex_withObject_(int index, NSObject anObject) {
+    return _lib._objc_msgSend_411(
+        _id, _lib._sel_replaceObjectAtIndex_withObject_1, index, anObject._id);
+  }
+
+  @override
+  NSMutableArray init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableArray initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObjectsFromArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void exchangeObjectAtIndex_withObjectAtIndex_(int idx1, int idx2) {
+    return _lib._objc_msgSend_413(
+        _id, _lib._sel_exchangeObjectAtIndex_withObjectAtIndex_1, idx1, idx2);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObject_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_414(
+        _id, _lib._sel_removeObject_inRange_1, anObject._id, range);
+  }
+
+  void removeObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, anObject._id);
+  }
+
+  void removeObjectIdenticalTo_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_414(
+        _id, _lib._sel_removeObjectIdenticalTo_inRange_1, anObject._id, range);
+  }
+
+  void removeObjectIdenticalTo_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_removeObjectIdenticalTo_1, anObject._id);
+  }
+
+  void removeObjectsFromIndices_numIndices_(
+      ffi.Pointer<NSUInteger> indices, int cnt) {
+    return _lib._objc_msgSend_415(
+        _id, _lib._sel_removeObjectsFromIndices_numIndices_1, indices, cnt);
+  }
+
+  void removeObjectsInArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsInArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_removeObjectsInRange_1, range);
+  }
+
+  void replaceObjectsInRange_withObjectsFromArray_range_(
+      NSRange range, NSArray? otherArray, NSRange otherRange) {
+    return _lib._objc_msgSend_417(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjectsFromArray_range_1,
+        range,
+        otherArray?._id ?? ffi.nullptr,
+        otherRange);
+  }
+
+  void replaceObjectsInRange_withObjectsFromArray_(
+      NSRange range, NSArray? otherArray) {
+    return _lib._objc_msgSend_418(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjectsFromArray_1,
+        range,
+        otherArray?._id ?? ffi.nullptr);
+  }
+
+  void setArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void sortUsingFunction_context_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          compare,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_419(
+        _id, _lib._sel_sortUsingFunction_context_1, compare, context);
+  }
+
+  void sortUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    return _lib._objc_msgSend_7(_id, _lib._sel_sortUsingSelector_1, comparator);
+  }
+
+  void insertObjects_atIndexes_(NSArray? objects, NSIndexSet? indexes) {
+    return _lib._objc_msgSend_420(_id, _lib._sel_insertObjects_atIndexes_1,
+        objects?._id ?? ffi.nullptr, indexes?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsAtIndexes_(NSIndexSet? indexes) {
+    return _lib._objc_msgSend_421(
+        _id, _lib._sel_removeObjectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+  }
+
+  void replaceObjectsAtIndexes_withObjects_(
+      NSIndexSet? indexes, NSArray? objects) {
+    return _lib._objc_msgSend_422(
+        _id,
+        _lib._sel_replaceObjectsAtIndexes_withObjects_1,
+        indexes?._id ?? ffi.nullptr,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void setObject_atIndexedSubscript_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndexedSubscript_1, obj._id, idx);
+  }
+
+  void sortUsingComparator_(NSComparator cmptr) {
+    return _lib._objc_msgSend_423(_id, _lib._sel_sortUsingComparator_1, cmptr);
+  }
+
+  void sortWithOptions_usingComparator_(int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_424(
+        _id, _lib._sel_sortWithOptions_usingComparator_1, opts, cmptr);
+  }
+
+  static NSMutableArray arrayWithCapacity_(AVFAudio _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableArray1, _lib._sel_arrayWithCapacity_1, numItems);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithContentsOfFile_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_425(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_426(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_425(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_426(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void applyDifference_() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_applyDifference_1);
+  }
+
+  void sortUsingDescriptors_(NSArray? sortDescriptors) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_sortUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+  }
+
+  void filterUsingPredicate_(NSPredicate? predicate) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableArray array(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_array1);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObject_(AVFAudio _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableArray1, _lib._sel_arrayWithObject_1, anObject._id);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithObjects_count_1, objects, cnt);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObjects_(AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithObjects_1, firstObj._id);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithArray_(AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_new1);
+    return NSMutableArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableArray alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_alloc1);
+    return NSMutableArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableArray1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableOrderedSet extends NSOrderedSet {
+  NSMutableOrderedSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableOrderedSet] that points to the same underlying object as [other].
+  static NSMutableOrderedSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableOrderedSet._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableOrderedSet] that wraps the given raw object pointer.
+  static NSMutableOrderedSet castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableOrderedSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableOrderedSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableOrderedSet1);
+  }
+
+  void insertObject_atIndex_(NSObject object, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_insertObject_atIndex_1, object._id, idx);
+  }
+
+  void removeObjectAtIndex_(int idx) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeObjectAtIndex_1, idx);
+  }
+
+  void replaceObjectAtIndex_withObject_(int idx, NSObject object) {
+    return _lib._objc_msgSend_411(
+        _id, _lib._sel_replaceObjectAtIndex_withObject_1, idx, object._id);
+  }
+
+  @override
+  NSMutableOrderedSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableOrderedSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, object._id);
+  }
+
+  void addObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int count) {
+    return _lib._objc_msgSend_435(
+        _id, _lib._sel_addObjects_count_1, objects, count);
+  }
+
+  void addObjectsFromArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void exchangeObjectAtIndex_withObjectAtIndex_(int idx1, int idx2) {
+    return _lib._objc_msgSend_413(
+        _id, _lib._sel_exchangeObjectAtIndex_withObjectAtIndex_1, idx1, idx2);
+  }
+
+  void moveObjectsAtIndexes_toIndex_(NSIndexSet? indexes, int idx) {
+    return _lib._objc_msgSend_436(_id, _lib._sel_moveObjectsAtIndexes_toIndex_1,
+        indexes?._id ?? ffi.nullptr, idx);
+  }
+
+  void insertObjects_atIndexes_(NSArray? objects, NSIndexSet? indexes) {
+    return _lib._objc_msgSend_420(_id, _lib._sel_insertObjects_atIndexes_1,
+        objects?._id ?? ffi.nullptr, indexes?._id ?? ffi.nullptr);
+  }
+
+  void setObject_atIndex_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndex_1, obj._id, idx);
+  }
+
+  void setObject_atIndexedSubscript_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndexedSubscript_1, obj._id, idx);
+  }
+
+  void replaceObjectsInRange_withObjects_count_(
+      NSRange range, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int count) {
+    return _lib._objc_msgSend_437(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjects_count_1,
+        range,
+        objects,
+        count);
+  }
+
+  void replaceObjectsAtIndexes_withObjects_(
+      NSIndexSet? indexes, NSArray? objects) {
+    return _lib._objc_msgSend_422(
+        _id,
+        _lib._sel_replaceObjectsAtIndexes_withObjects_1,
+        indexes?._id ?? ffi.nullptr,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_removeObjectsInRange_1, range);
+  }
+
+  void removeObjectsAtIndexes_(NSIndexSet? indexes) {
+    return _lib._objc_msgSend_421(
+        _id, _lib._sel_removeObjectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, object._id);
+  }
+
+  void removeObjectsInArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsInArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void intersectOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_intersectOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void minusOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_minusOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void unionOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_unionOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void intersectSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_intersectSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void minusSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_minusSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void unionSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_unionSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void sortUsingComparator_(NSComparator cmptr) {
+    return _lib._objc_msgSend_423(_id, _lib._sel_sortUsingComparator_1, cmptr);
+  }
+
+  void sortWithOptions_usingComparator_(int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_424(
+        _id, _lib._sel_sortWithOptions_usingComparator_1, opts, cmptr);
+  }
+
+  void sortRange_options_usingComparator_(
+      NSRange range, int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_440(
+        _id, _lib._sel_sortRange_options_usingComparator_1, range, opts, cmptr);
+  }
+
+  static NSMutableOrderedSet orderedSetWithCapacity_(
+      AVFAudio _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithCapacity_1, numItems);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void applyDifference_() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_applyDifference_1);
+  }
+
+  void sortUsingDescriptors_(NSArray? sortDescriptors) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_sortUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+  }
+
+  void filterUsingPredicate_(NSPredicate? p) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, p?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableOrderedSet orderedSet(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_orderedSet1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObject_(
+      AVFAudio _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObject_1, object._id);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObjects_count_1, objects, cnt);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObjects_(
+      AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObjects_1, firstObj._id);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithOrderedSet_(
+      AVFAudio _lib, NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithOrderedSet_range_copyItems_(
+      AVFAudio _lib, NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithArray_(
+      AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithArray_range_copyItems_(
+      AVFAudio _lib, NSArray? array, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithArray_range_copyItems_1,
+        array?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithSet_(AVFAudio _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithSet_copyItems_(
+      AVFAudio _lib, NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableOrderedSet1, _lib._sel_new1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_alloc1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOrderedSet extends NSObject {
+  NSOrderedSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOrderedSet] that points to the same underlying object as [other].
+  static NSOrderedSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOrderedSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOrderedSet] that wraps the given raw object pointer.
+  static NSOrderedSet castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOrderedSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOrderedSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOrderedSet1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectAtIndex_(int idx) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndex_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_(NSObject object) {
+    return _lib._objc_msgSend_69(_id, _lib._sel_indexOfObject_1, object._id);
+  }
+
+  @override
+  NSOrderedSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_range_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, NSRange range) {
+    return _lib._objc_msgSend_68(
+        _id, _lib._sel_getObjects_range_1, objects, range);
+  }
+
+  NSArray objectsAtIndexes_(NSIndexSet? indexes) {
+    final _ret = _lib._objc_msgSend_103(
+        _id, _lib._sel_objectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get firstObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_firstObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get lastObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_lastObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_isEqualToOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool containsObject_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, object._id);
+  }
+
+  bool intersectsOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_intersectsOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool intersectsSet_(NSSet? set) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_intersectsSet_1, set?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_isSubsetOfOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfSet_(NSSet? set) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isSubsetOfSet_1, set?._id ?? ffi.nullptr);
+  }
+
+  NSObject objectAtIndexedSubscript_(int idx) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndexedSubscript_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator reverseObjectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_reverseObjectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet? get reversedOrderedSet {
+    final _ret = _lib._objc_msgSend_429(_id, _lib._sel_reversedOrderedSet1);
+    return _ret.address == 0
+        ? null
+        : NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get array {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_array1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet? get set1 {
+    final _ret = _lib._objc_msgSend_280(_id, _lib._sel_set1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock3 block) {
+    return _lib._objc_msgSend_104(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_105(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateObjectsAtIndexes_options_usingBlock_(
+      NSIndexSet? s, int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_106(
+        _id,
+        _lib._sel_enumerateObjectsAtIndexes_options_usingBlock_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  int indexOfObjectPassingTest_(ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_107(
+        _id, _lib._sel_indexOfObjectPassingTest_1, predicate._id);
+  }
+
+  int indexOfObjectWithOptions_passingTest_(int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_108(_id,
+        _lib._sel_indexOfObjectWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexOfObjectAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_109(
+        _id,
+        _lib._sel_indexOfObjectAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesOfObjectsPassingTest_(ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_110(
+        _id, _lib._sel_indexesOfObjectsPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsWithOptions_passingTest_(
+      int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_111(
+        _id,
+        _lib._sel_indexesOfObjectsWithOptions_passingTest_1,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_112(
+        _id,
+        _lib._sel_indexesOfObjectsAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_inSortedRange_options_usingComparator_(
+      NSObject object, NSRange range, int opts, NSComparator cmp) {
+    return _lib._objc_msgSend_115(
+        _id,
+        _lib._sel_indexOfObject_inSortedRange_options_usingComparator_1,
+        object._id,
+        range,
+        opts,
+        cmp);
+  }
+
+  NSArray sortedArrayUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_sortedArrayUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(
+        _id, _lib._sel_sortedArrayWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSet(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_orderedSet1);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObject_(AVFAudio _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObject_1, object._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObjects_count_1, objects, cnt);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObjects_(AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObjects_1, firstObj._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithOrderedSet_(
+      AVFAudio _lib, NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithOrderedSet_range_copyItems_(
+      AVFAudio _lib, NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithArray_(AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithArray_1, array?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithArray_range_copyItems_(
+      AVFAudio _lib, NSArray? array, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithArray_range_copyItems_1,
+        array?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithSet_(AVFAudio _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithSet_copyItems_(
+      AVFAudio _lib, NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithObject_(NSObject object) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObject_1, object._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_(NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(
+        _id, _lib._sel_initWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_copyItems_(NSOrderedSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_433(
+        _id,
+        _lib._sel_initWithOrderedSet_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_range_copyItems_(
+      NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _id,
+        _lib._sel_initWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithArray_copyItems_(NSArray? set, bool flag) {
+    final _ret = _lib._objc_msgSend_116(_id,
+        _lib._sel_initWithArray_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithArray_range_copyItems_(
+      NSArray? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _id,
+        _lib._sel_initWithArray_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithSet_(NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _id, _lib._sel_initWithSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithSet_copyItems_(NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(
+        _id, _lib._sel_initWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet filteredOrderedSetUsingPredicate_(NSPredicate? p) {
+    final _ret = _lib._objc_msgSend_434(_id,
+        _lib._sel_filteredOrderedSetUsingPredicate_1, p?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_new1);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_alloc1);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrderedSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrderedSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOrderedSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOrderedSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableSet extends NSSet {
+  NSMutableSet._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableSet] that points to the same underlying object as [other].
+  static NSMutableSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableSet] that wraps the given raw object pointer.
+  static NSMutableSet castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMutableSet1);
+  }
+
+  void addObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, object._id);
+  }
+
+  void removeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, object._id);
+  }
+
+  @override
+  NSMutableSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObjectsFromArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void intersectSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_intersectSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void minusSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_minusSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void unionSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_unionSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void setSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_setSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableSet setWithCapacity_(AVFAudio _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableSet1, _lib._sel_setWithCapacity_1, numItems);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void filterUsingPredicate_(NSPredicate? predicate) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableSet set1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_set1);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObject_(AVFAudio _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableSet1, _lib._sel_setWithObject_1, object._id);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObjects_count_(
+      AVFAudio _lib, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableSet1,
+        _lib._sel_setWithObjects_count_1, objects, cnt);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObjects_(AVFAudio _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableSet1, _lib._sel_setWithObjects_1, firstObj._id);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithSet_(AVFAudio _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSMutableSet1,
+        _lib._sel_setWithSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithArray_(AVFAudio _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableSet1,
+        _lib._sel_setWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_new1);
+    return NSMutableSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableSet alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_alloc1);
+    return NSMutableSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSKeyValueChange {
+  static const int NSKeyValueChangeSetting = 1;
+  static const int NSKeyValueChangeInsertion = 2;
+  static const int NSKeyValueChangeRemoval = 3;
+  static const int NSKeyValueChangeReplacement = 4;
+}
+
+abstract class NSKeyValueSetMutationKind {
+  static const int NSKeyValueUnionSetMutation = 1;
+  static const int NSKeyValueMinusSetMutation = 2;
+  static const int NSKeyValueIntersectSetMutation = 3;
+  static const int NSKeyValueSetSetMutation = 4;
+}
+
+class NSKeyedArchiver extends NSCoder {
+  NSKeyedArchiver._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSKeyedArchiver] that points to the same underlying object as [other].
+  static NSKeyedArchiver castFrom<T extends _ObjCWrapper>(T other) {
+    return NSKeyedArchiver._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSKeyedArchiver] that wraps the given raw object pointer.
+  static NSKeyedArchiver castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSKeyedArchiver._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSKeyedArchiver].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSKeyedArchiver1);
+  }
+
+  NSKeyedArchiver initRequiringSecureCoding_(bool requiresSecureCoding) {
+    final _ret = _lib._objc_msgSend_449(
+        _id, _lib._sel_initRequiringSecureCoding_1, requiresSecureCoding);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData archivedDataWithRootObject_requiringSecureCoding_error_(
+      AVFAudio _lib,
+      NSObject object,
+      bool requiresSecureCoding,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_450(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_archivedDataWithRootObject_requiringSecureCoding_error_1,
+        object._id,
+        requiresSecureCoding,
+        error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSKeyedArchiver init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSKeyedArchiver initForWritingWithMutableData_(NSMutableData? data) {
+    final _ret = _lib._objc_msgSend_455(_id,
+        _lib._sel_initForWritingWithMutableData_1, data?._id ?? ffi.nullptr);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData archivedDataWithRootObject_(
+      AVFAudio _lib, NSObject rootObject) {
+    final _ret = _lib._objc_msgSend_456(_lib._class_NSKeyedArchiver1,
+        _lib._sel_archivedDataWithRootObject_1, rootObject._id);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool archiveRootObject_toFile_(
+      AVFAudio _lib, NSObject rootObject, NSString? path) {
+    return _lib._objc_msgSend_225(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_archiveRootObject_toFile_1,
+        rootObject._id,
+        path?._id ?? ffi.nullptr);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get outputFormat {
+    return _lib._objc_msgSend_457(_id, _lib._sel_outputFormat1);
+  }
+
+  set outputFormat(int value) {
+    _lib._objc_msgSend_458(_id, _lib._sel_setOutputFormat_1, value);
+  }
+
+  NSData? get encodedData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_encodedData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void finishEncoding() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finishEncoding1);
+  }
+
+  static void setClassName_forClass_(
+      AVFAudio _lib, NSString? codedName, NSObject cls) {
+    return _lib._objc_msgSend_459(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_setClassName_forClass_1,
+        codedName?._id ?? ffi.nullptr,
+        cls._id);
+  }
+
+  static NSString classNameForClass_(AVFAudio _lib, NSObject cls) {
+    final _ret = _lib._objc_msgSend_65(
+        _lib._class_NSKeyedArchiver1, _lib._sel_classNameForClass_1, cls._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void encodeObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_encodeObject_forKey_1,
+        object._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeConditionalObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_encodeConditionalObject_forKey_1,
+        object._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeBool_forKey_(bool value, NSString? key) {
+    return _lib._objc_msgSend_257(
+        _id, _lib._sel_encodeBool_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_258(
+        _id, _lib._sel_encodeInt_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt32_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_259(
+        _id, _lib._sel_encodeInt32_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt64_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_260(
+        _id, _lib._sel_encodeInt64_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeFloat_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_261(
+        _id, _lib._sel_encodeFloat_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeDouble_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_262(
+        _id, _lib._sel_encodeDouble_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeBytes_length_forKey_(
+      ffi.Pointer<ffi.Uint8> bytes, int length, NSString? key) {
+    return _lib._objc_msgSend_263(_id, _lib._sel_encodeBytes_length_forKey_1,
+        bytes, length, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  bool get requiresSecureCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_requiresSecureCoding1);
+  }
+
+  set requiresSecureCoding(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setRequiresSecureCoding_1, value);
+  }
+
+  static NSKeyedArchiver new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSKeyedArchiver1, _lib._sel_new1);
+    return NSKeyedArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSKeyedArchiver alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSKeyedArchiver1, _lib._sel_alloc1);
+    return NSKeyedArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSKeyedArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSKeyedArchiver1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSKeyedArchiver1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSKeyedArchiver1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSKeyedArchiver1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableData extends NSData {
+  NSMutableData._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableData] that points to the same underlying object as [other].
+  static NSMutableData castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableData._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableData] that wraps the given raw object pointer.
+  static NSMutableData castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableData._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableData].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMutableData1);
+  }
+
+  ffi.Pointer<ffi.Void> get mutableBytes {
+    return _lib._objc_msgSend_19(_id, _lib._sel_mutableBytes1);
+  }
+
+  @override
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  set length(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setLength_1, value);
+  }
+
+  void appendBytes_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_appendBytes_length_1, bytes, length);
+  }
+
+  void appendData_(NSData? other) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_appendData_1, other?._id ?? ffi.nullptr);
+  }
+
+  void increaseLengthBy_(int extraLength) {
+    return _lib._objc_msgSend_410(
+        _id, _lib._sel_increaseLengthBy_1, extraLength);
+  }
+
+  void replaceBytesInRange_withBytes_(
+      NSRange range, ffi.Pointer<ffi.Void> bytes) {
+    return _lib._objc_msgSend_452(
+        _id, _lib._sel_replaceBytesInRange_withBytes_1, range, bytes);
+  }
+
+  void resetBytesInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_resetBytesInRange_1, range);
+  }
+
+  void setData_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_setData_1, data?._id ?? ffi.nullptr);
+  }
+
+  void replaceBytesInRange_withBytes_length_(NSRange range,
+      ffi.Pointer<ffi.Void> replacementBytes, int replacementLength) {
+    return _lib._objc_msgSend_453(
+        _id,
+        _lib._sel_replaceBytesInRange_withBytes_length_1,
+        range,
+        replacementBytes,
+        replacementLength);
+  }
+
+  static NSMutableData dataWithCapacity_(AVFAudio _lib, int aNumItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableData1, _lib._sel_dataWithCapacity_1, aNumItems);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithLength_(AVFAudio _lib, int length) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableData1, _lib._sel_dataWithLength_1, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData initWithCapacity_(int capacity) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, capacity);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData initWithLength_(int length) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithLength_1, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool decompressUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_454(
+        _id, _lib._sel_decompressUsingAlgorithm_error_1, algorithm, error);
+  }
+
+  bool compressUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_454(
+        _id, _lib._sel_compressUsingAlgorithm_error_1, algorithm, error);
+  }
+
+  static NSMutableData data(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_data1);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithBytes_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytes_length_1, bytes, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithBytesNoCopy_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytesNoCopy_length_1, bytes, length);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData dataWithBytesNoCopy_length_freeWhenDone_(
+      AVFAudio _lib, ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfFile_options_error_(
+      AVFAudio _lib,
+      NSString? path,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfURL_options_error_(
+      AVFAudio _lib,
+      NSURL? url,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithData_(AVFAudio _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSMutableData1,
+        _lib._sel_dataWithData_1, data?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dataWithContentsOfMappedFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_new1);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_alloc1);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableData1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableData1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableData1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableData1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableData1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableData1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableData1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSPropertyListFormat {
+  static const int NSPropertyListOpenStepFormat = 1;
+  static const int NSPropertyListXMLFormat_v1_0 = 100;
+  static const int NSPropertyListBinaryFormat_v1_0 = 200;
+}
+
+class NSThread extends NSObject {
+  NSThread._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSThread] that points to the same underlying object as [other].
+  static NSThread castFrom<T extends _ObjCWrapper>(T other) {
+    return NSThread._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSThread] that wraps the given raw object pointer.
+  static NSThread castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSThread._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSThread].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSThread1);
+  }
+
+  static NSThread? getCurrentThread(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_464(_lib._class_NSThread1, _lib._sel_currentThread1);
+    return _ret.address == 0
+        ? null
+        : NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void detachNewThreadWithBlock_(AVFAudio _lib, ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(
+        _lib._class_NSThread1, _lib._sel_detachNewThreadWithBlock_1, block._id);
+  }
+
+  static void detachNewThreadSelector_toTarget_withObject_(AVFAudio _lib,
+      ffi.Pointer<ObjCSel> selector, NSObject target, NSObject argument) {
+    return _lib._objc_msgSend_466(
+        _lib._class_NSThread1,
+        _lib._sel_detachNewThreadSelector_toTarget_withObject_1,
+        selector,
+        target._id,
+        argument._id);
+  }
+
+  static bool isMultiThreaded(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_isMultiThreaded1);
+  }
+
+  NSMutableDictionary? get threadDictionary {
+    final _ret = _lib._objc_msgSend_471(_id, _lib._sel_threadDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void sleepUntilDate_(AVFAudio _lib, NSDate? date) {
+    return _lib._objc_msgSend_472(_lib._class_NSThread1,
+        _lib._sel_sleepUntilDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  static void sleepForTimeInterval_(AVFAudio _lib, double ti) {
+    return _lib._objc_msgSend_473(
+        _lib._class_NSThread1, _lib._sel_sleepForTimeInterval_1, ti);
+  }
+
+  static void exit(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSThread1, _lib._sel_exit1);
+  }
+
+  double get threadPriority {
+    return _lib._objc_msgSend_149(_id, _lib._sel_threadPriority1);
+  }
+
+  set threadPriority(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setThreadPriority_1, value);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  static NSArray? getCallStackReturnAddresses(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_callStackReturnAddresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getCallStackSymbols(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_callStackSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get stackSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_stackSize1);
+  }
+
+  set stackSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setStackSize_1, value);
+  }
+
+  bool get isMainThread {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isMainThread1);
+  }
+
+  static NSThread? getMainThread(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_464(_lib._class_NSThread1, _lib._sel_mainThread1);
+    return _ret.address == 0
+        ? null
+        : NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSThread init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSThread initWithTarget_selector_object_(
+      NSObject target, ffi.Pointer<ObjCSel> selector, NSObject argument) {
+    final _ret = _lib._objc_msgSend_478(
+        _id,
+        _lib._sel_initWithTarget_selector_object_1,
+        target._id,
+        selector,
+        argument._id);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSThread initWithBlock_(ObjCBlock16 block) {
+    final _ret =
+        _lib._objc_msgSend_479(_id, _lib._sel_initWithBlock_1, block._id);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get executing {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExecuting1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void main() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_main1);
+  }
+
+  static NSThread new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSThread1, _lib._sel_new1);
+    return NSThread._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSThread alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSThread1, _lib._sel_alloc1);
+    return NSThread._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSThread1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSThread1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSThread1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSThread1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSThread1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSThread1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock16_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block) {
+  return block.ref.target
+      .cast<ffi.NativeFunction<ffi.Void Function()>>()
+      .asFunction<void Function()>()();
+}
+
+final _ObjCBlock16_closureRegistry = <int, Function>{};
+int _ObjCBlock16_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock16_registerClosure(Function fn) {
+  final id = ++_ObjCBlock16_closureRegistryIndex;
+  _ObjCBlock16_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock16_closureTrampoline(ffi.Pointer<_ObjCBlock> block) {
+  return _ObjCBlock16_closureRegistry[block.ref.target.address]!();
+}
+
+class ObjCBlock16 extends _ObjCBlockBase {
+  ObjCBlock16._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock16.fromFunctionPointer(
+      AVFAudio lib, ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>(
+                        _ObjCBlock16_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock16.fromFunction(AVFAudio lib, void Function() fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>(
+                        _ObjCBlock16_closureTrampoline)
+                    .cast(),
+                _ObjCBlock16_registerClosure(fn)),
+            lib);
+  void call() {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>>()
+        .asFunction<void Function(ffi.Pointer<_ObjCBlock> block)>()(_id);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSMutableDictionary extends NSDictionary {
+  NSMutableDictionary._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableDictionary] that points to the same underlying object as [other].
+  static NSMutableDictionary castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableDictionary._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableDictionary] that wraps the given raw object pointer.
+  static NSMutableDictionary castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableDictionary._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableDictionary].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableDictionary1);
+  }
+
+  void removeObjectForKey_(NSObject aKey) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObjectForKey_1, aKey._id);
+  }
+
+  void setObject_forKey_(NSObject anObject, NSObject aKey) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_setObject_forKey_1, anObject._id, aKey._id);
+  }
+
+  @override
+  NSMutableDictionary init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableDictionary initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addEntriesFromDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_addEntriesFromDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObjectsForKeys_(NSArray? keyArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsForKeys_1, keyArray?._id ?? ffi.nullptr);
+  }
+
+  void setDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_444(
+        _id, _lib._sel_setDictionary_1, otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  void setObject_forKeyedSubscript_(NSObject obj, NSObject key) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_setObject_forKeyedSubscript_1, obj._id, key._id);
+  }
+
+  static NSMutableDictionary dictionaryWithCapacity_(
+      AVFAudio _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithCapacity_1, numItems);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithContentsOfFile_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_468(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithContentsOfURL_(
+      AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_469(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_468(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_469(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithSharedKeySet_(
+      AVFAudio _lib, NSObject keyset) {
+    final _ret = _lib._objc_msgSend_470(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithSharedKeySet_1, keyset._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableDictionary dictionary(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_dictionary1);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObject_forKey_(
+      AVFAudio _lib, NSObject object, NSObject key) {
+    final _ret = _lib._objc_msgSend_142(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObject_forKey_1, object._id, key._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjects_forKeys_count_(
+      AVFAudio _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjectsAndKeys_(
+      AVFAudio _lib, NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjectsAndKeys_1, firstObject._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithDictionary_(
+      AVFAudio _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_143(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithDictionary_1, dict?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjects_forKeys_(
+      AVFAudio _lib, NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject sharedKeySetForKeys_(AVFAudio _lib, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableDictionary1,
+        _lib._sel_sharedKeySetForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableDictionary1, _lib._sel_new1);
+    return NSMutableDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableDictionary alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_alloc1);
+    return NSMutableDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableDictionary1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableDictionary1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableDictionary1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSQualityOfService {
+  static const int NSQualityOfServiceUserInteractive = 33;
+  static const int NSQualityOfServiceUserInitiated = 25;
+  static const int NSQualityOfServiceUtility = 17;
+  static const int NSQualityOfServiceBackground = 9;
+  static const int NSQualityOfServiceDefault = -1;
+}
+
+class NSArchiver extends NSCoder {
+  NSArchiver._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSArchiver] that points to the same underlying object as [other].
+  static NSArchiver castFrom<T extends _ObjCWrapper>(T other) {
+    return NSArchiver._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSArchiver] that wraps the given raw object pointer.
+  static NSArchiver castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSArchiver._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSArchiver].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSArchiver1);
+  }
+
+  NSArchiver initForWritingWithMutableData_(NSMutableData? mdata) {
+    final _ret = _lib._objc_msgSend_455(_id,
+        _lib._sel_initForWritingWithMutableData_1, mdata?._id ?? ffi.nullptr);
+    return NSArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData? get archiverData {
+    final _ret = _lib._objc_msgSend_482(_id, _lib._sel_archiverData1);
+    return _ret.address == 0
+        ? null
+        : NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void encodeRootObject_(NSObject rootObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeRootObject_1, rootObject._id);
+  }
+
+  @override
+  void encodeConditionalObject_(NSObject object) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeConditionalObject_1, object._id);
+  }
+
+  static NSData archivedDataWithRootObject_(
+      AVFAudio _lib, NSObject rootObject) {
+    final _ret = _lib._objc_msgSend_456(_lib._class_NSArchiver1,
+        _lib._sel_archivedDataWithRootObject_1, rootObject._id);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool archiveRootObject_toFile_(
+      AVFAudio _lib, NSObject rootObject, NSString? path) {
+    return _lib._objc_msgSend_225(
+        _lib._class_NSArchiver1,
+        _lib._sel_archiveRootObject_toFile_1,
+        rootObject._id,
+        path?._id ?? ffi.nullptr);
+  }
+
+  void encodeClassName_intoClassName_(
+      NSString? trueName, NSString? inArchiveName) {
+    return _lib._objc_msgSend_483(
+        _id,
+        _lib._sel_encodeClassName_intoClassName_1,
+        trueName?._id ?? ffi.nullptr,
+        inArchiveName?._id ?? ffi.nullptr);
+  }
+
+  NSString classNameEncodedForTrueClassName_(NSString? trueName) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_classNameEncodedForTrueClassName_1,
+        trueName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void replaceObject_withObject_(NSObject object, NSObject newObject) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_replaceObject_withObject_1, object._id, newObject._id);
+  }
+
+  static NSArchiver new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArchiver1, _lib._sel_new1);
+    return NSArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSArchiver alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSArchiver1, _lib._sel_alloc1);
+    return NSArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArchiver1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArchiver1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSArchiver1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSArchiver1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSArchiver1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSArchiver1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSArchiver1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPortCoder extends NSCoder {
+  NSPortCoder._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPortCoder] that points to the same underlying object as [other].
+  static NSPortCoder castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPortCoder._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPortCoder] that wraps the given raw object pointer.
+  static NSPortCoder castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPortCoder._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPortCoder].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPortCoder1);
+  }
+
+  bool isBycopy() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isBycopy1);
+  }
+
+  bool isByref() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isByref1);
+  }
+
+  void encodePortObject_(NSPort? aport) {
+    return _lib._objc_msgSend_520(
+        _id, _lib._sel_encodePortObject_1, aport?._id ?? ffi.nullptr);
+  }
+
+  NSPort decodePortObject() {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_decodePortObject1);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSConnection connection() {
+    final _ret = _lib._objc_msgSend_504(_id, _lib._sel_connection1);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject portCoderWithReceivePort_sendPort_components_(
+      AVFAudio _lib, NSPort? rcvPort, NSPort? sndPort, NSArray? comps) {
+    final _ret = _lib._objc_msgSend_521(
+        _lib._class_NSPortCoder1,
+        _lib._sel_portCoderWithReceivePort_sendPort_components_1,
+        rcvPort?._id ?? ffi.nullptr,
+        sndPort?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithReceivePort_sendPort_components_(
+      NSPort? rcvPort, NSPort? sndPort, NSArray? comps) {
+    final _ret = _lib._objc_msgSend_521(
+        _id,
+        _lib._sel_initWithReceivePort_sendPort_components_1,
+        rcvPort?._id ?? ffi.nullptr,
+        sndPort?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dispatch() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dispatch1);
+  }
+
+  static NSPortCoder new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPortCoder1, _lib._sel_new1);
+    return NSPortCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPortCoder alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortCoder1, _lib._sel_alloc1);
+    return NSPortCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPortCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPortCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortCoder1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortCoder1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPortCoder1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPortCoder1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPortCoder1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPortCoder1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPortCoder1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPort extends NSObject {
+  NSPort._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPort] that points to the same underlying object as [other].
+  static NSPort castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPort._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPort] that wraps the given raw object pointer.
+  static NSPort castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPort._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPort].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPort1);
+  }
+
+  static NSPort port(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_485(_lib._class_NSPort1, _lib._sel_port1);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  void setDelegate_(NSObject? anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_setDelegate_1, anObject?._id ?? ffi.nullptr);
+  }
+
+  NSObject delegate() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        runLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        runLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  int get reservedSpaceLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_reservedSpaceLength1);
+  }
+
+  bool sendBeforeDate_components_from_reserved_(
+      NSDate? limitDate,
+      NSMutableArray? components,
+      NSPort? receivePort,
+      int headerSpaceReserved) {
+    return _lib._objc_msgSend_502(
+        _id,
+        _lib._sel_sendBeforeDate_components_from_reserved_1,
+        limitDate?._id ?? ffi.nullptr,
+        components?._id ?? ffi.nullptr,
+        receivePort?._id ?? ffi.nullptr,
+        headerSpaceReserved);
+  }
+
+  bool sendBeforeDate_msgid_components_from_reserved_(
+      NSDate? limitDate,
+      int msgID,
+      NSMutableArray? components,
+      NSPort? receivePort,
+      int headerSpaceReserved) {
+    return _lib._objc_msgSend_503(
+        _id,
+        _lib._sel_sendBeforeDate_msgid_components_from_reserved_1,
+        limitDate?._id ?? ffi.nullptr,
+        msgID,
+        components?._id ?? ffi.nullptr,
+        receivePort?._id ?? ffi.nullptr,
+        headerSpaceReserved);
+  }
+
+  void addConnection_toRunLoop_forMode_(
+      NSConnection? conn, NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_519(
+        _id,
+        _lib._sel_addConnection_toRunLoop_forMode_1,
+        conn?._id ?? ffi.nullptr,
+        runLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  void removeConnection_fromRunLoop_forMode_(
+      NSConnection? conn, NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_519(
+        _id,
+        _lib._sel_removeConnection_fromRunLoop_forMode_1,
+        conn?._id ?? ffi.nullptr,
+        runLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  static NSPort new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPort1, _lib._sel_new1);
+    return NSPort._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPort alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPort1, _lib._sel_alloc1);
+    return NSPort._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPort1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPort1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPort1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPort1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPort1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPort1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPort1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPort1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPort1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSRunLoop extends NSObject {
+  NSRunLoop._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSRunLoop] that points to the same underlying object as [other].
+  static NSRunLoop castFrom<T extends _ObjCWrapper>(T other) {
+    return NSRunLoop._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSRunLoop] that wraps the given raw object pointer.
+  static NSRunLoop castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSRunLoop._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSRunLoop].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSRunLoop1);
+  }
+
+  static NSRunLoop? getCurrentRunLoop(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_486(
+        _lib._class_NSRunLoop1, _lib._sel_currentRunLoop1);
+    return _ret.address == 0
+        ? null
+        : NSRunLoop._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSRunLoop? getMainRunLoop(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_486(_lib._class_NSRunLoop1, _lib._sel_mainRunLoop1);
+    return _ret.address == 0
+        ? null
+        : NSRunLoop._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRunLoopMode get currentMode {
+    return _lib._objc_msgSend_20(_id, _lib._sel_currentMode1);
+  }
+
+  CFRunLoopRef getCFRunLoop() {
+    return _lib._objc_msgSend_487(_id, _lib._sel_getCFRunLoop1);
+  }
+
+  void addTimer_forMode_(NSTimer? timer, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_494(
+        _id, _lib._sel_addTimer_forMode_1, timer?._id ?? ffi.nullptr, mode);
+  }
+
+  void addPort_forMode_(NSPort? aPort, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_495(
+        _id, _lib._sel_addPort_forMode_1, aPort?._id ?? ffi.nullptr, mode);
+  }
+
+  void removePort_forMode_(NSPort? aPort, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_495(
+        _id, _lib._sel_removePort_forMode_1, aPort?._id ?? ffi.nullptr, mode);
+  }
+
+  NSDate limitDateForMode_(NSRunLoopMode mode) {
+    final _ret =
+        _lib._objc_msgSend_496(_id, _lib._sel_limitDateForMode_1, mode);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  void acceptInputForMode_beforeDate_(NSRunLoopMode mode, NSDate? limitDate) {
+    return _lib._objc_msgSend_497(
+        _id,
+        _lib._sel_acceptInputForMode_beforeDate_1,
+        mode,
+        limitDate?._id ?? ffi.nullptr);
+  }
+
+  void run() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_run1);
+  }
+
+  void runUntilDate_(NSDate? limitDate) {
+    return _lib._objc_msgSend_472(
+        _id, _lib._sel_runUntilDate_1, limitDate?._id ?? ffi.nullptr);
+  }
+
+  bool runMode_beforeDate_(NSRunLoopMode mode, NSDate? limitDate) {
+    return _lib._objc_msgSend_498(_id, _lib._sel_runMode_beforeDate_1, mode,
+        limitDate?._id ?? ffi.nullptr);
+  }
+
+  void configureAsServer() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_configureAsServer1);
+  }
+
+  void performInModes_block_(NSArray? modes, ObjCBlock16 block) {
+    return _lib._objc_msgSend_499(_id, _lib._sel_performInModes_block_1,
+        modes?._id ?? ffi.nullptr, block._id);
+  }
+
+  void performBlock_(ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(_id, _lib._sel_performBlock_1, block._id);
+  }
+
+  void performSelector_target_argument_order_modes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject target,
+      NSObject arg,
+      int order,
+      NSArray? modes) {
+    return _lib._objc_msgSend_500(
+        _id,
+        _lib._sel_performSelector_target_argument_order_modes_1,
+        aSelector,
+        target._id,
+        arg._id,
+        order,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void cancelPerformSelector_target_argument_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject target, NSObject arg) {
+    return _lib._objc_msgSend_466(
+        _id,
+        _lib._sel_cancelPerformSelector_target_argument_1,
+        aSelector,
+        target._id,
+        arg._id);
+  }
+
+  void cancelPerformSelectorsWithTarget_(NSObject target) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_cancelPerformSelectorsWithTarget_1, target._id);
+  }
+
+  static NSRunLoop new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSRunLoop1, _lib._sel_new1);
+    return NSRunLoop._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSRunLoop alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSRunLoop1, _lib._sel_alloc1);
+    return NSRunLoop._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSRunLoop1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSRunLoop1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRunLoop1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRunLoop1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSRunLoop1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSRunLoop1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSRunLoop1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSRunLoop1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRunLoop1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRunLoopMode = ffi.Pointer<ObjCObject>;
+typedef CFRunLoopRef = ffi.Pointer<__CFRunLoop>;
+
+class __CFRunLoop extends ffi.Opaque {}
+
+class NSTimer extends NSObject {
+  NSTimer._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTimer] that points to the same underlying object as [other].
+  static NSTimer castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTimer._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTimer] that wraps the given raw object pointer.
+  static NSTimer castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTimer._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTimer].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTimer1);
+  }
+
+  static NSTimer timerWithTimeInterval_invocation_repeats_(
+      AVFAudio _lib, double ti, NSInvocation? invocation, bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_488(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_invocation_repeats_1,
+        ti,
+        invocation?._id ?? ffi.nullptr,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer scheduledTimerWithTimeInterval_invocation_repeats_(
+      AVFAudio _lib, double ti, NSInvocation? invocation, bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_488(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_invocation_repeats_1,
+        ti,
+        invocation?._id ?? ffi.nullptr,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer timerWithTimeInterval_target_selector_userInfo_repeats_(
+      AVFAudio _lib,
+      double ti,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject userInfo,
+      bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_489(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_target_selector_userInfo_repeats_1,
+        ti,
+        aTarget._id,
+        aSelector,
+        userInfo._id,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer
+      scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(
+          AVFAudio _lib,
+          double ti,
+          NSObject aTarget,
+          ffi.Pointer<ObjCSel> aSelector,
+          NSObject userInfo,
+          bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_489(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_1,
+        ti,
+        aTarget._id,
+        aSelector,
+        userInfo._id,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer timerWithTimeInterval_repeats_block_(
+      AVFAudio _lib, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_490(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_repeats_block_1,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer scheduledTimerWithTimeInterval_repeats_block_(
+      AVFAudio _lib, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_490(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_repeats_block_1,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimer initWithFireDate_interval_repeats_block_(
+      NSDate? date, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_491(
+        _id,
+        _lib._sel_initWithFireDate_interval_repeats_block_1,
+        date?._id ?? ffi.nullptr,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimer initWithFireDate_interval_target_selector_userInfo_repeats_(
+      NSDate? date,
+      double ti,
+      NSObject t,
+      ffi.Pointer<ObjCSel> s,
+      NSObject ui,
+      bool rep) {
+    final _ret = _lib._objc_msgSend_492(
+        _id,
+        _lib._sel_initWithFireDate_interval_target_selector_userInfo_repeats_1,
+        date?._id ?? ffi.nullptr,
+        ti,
+        t._id,
+        s,
+        ui._id,
+        rep);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  void fire() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_fire1);
+  }
+
+  NSDate? get fireDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fireDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set fireDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setFireDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  double get timeInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeInterval1);
+  }
+
+  double get tolerance {
+    return _lib._objc_msgSend_149(_id, _lib._sel_tolerance1);
+  }
+
+  set tolerance(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setTolerance_1, value);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  NSObject get userInfo {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_userInfo1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimer1, _lib._sel_new1);
+    return NSTimer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTimer alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimer1, _lib._sel_alloc1);
+    return NSTimer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTimer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTimer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimer1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimer1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTimer1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTimer1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTimer1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimer1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTimer1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock17_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock17_closureRegistry = <int, Function>{};
+int _ObjCBlock17_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock17_registerClosure(Function fn) {
+  final id = ++_ObjCBlock17_closureRegistryIndex;
+  _ObjCBlock17_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock17_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock17_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock17 extends _ObjCBlockBase {
+  ObjCBlock17._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock17.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock17_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock17.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock17_closureTrampoline)
+                    .cast(),
+                _ObjCBlock17_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSConnection extends NSObject {
+  NSConnection._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSConnection] that points to the same underlying object as [other].
+  static NSConnection castFrom<T extends _ObjCWrapper>(T other) {
+    return NSConnection._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSConnection] that wraps the given raw object pointer.
+  static NSConnection castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSConnection._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSConnection].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSConnection1);
+  }
+
+  NSDictionary? get statistics {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_statistics1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray allConnections(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSConnection1, _lib._sel_allConnections1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection defaultConnection(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_504(
+        _lib._class_NSConnection1, _lib._sel_defaultConnection1);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection connectionWithRegisteredName_host_(
+      AVFAudio _lib, NSString? name, NSString? hostName) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithRegisteredName_host_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection connectionWithRegisteredName_host_usingNameServer_(
+      AVFAudio _lib,
+      NSString? name,
+      NSString? hostName,
+      NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_509(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithRegisteredName_host_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr,
+        server?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDistantObject rootProxyForConnectionWithRegisteredName_host_(
+      AVFAudio _lib, NSString? name, NSString? hostName) {
+    final _ret = _lib._objc_msgSend_512(
+        _lib._class_NSConnection1,
+        _lib._sel_rootProxyForConnectionWithRegisteredName_host_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDistantObject
+      rootProxyForConnectionWithRegisteredName_host_usingNameServer_(
+          AVFAudio _lib,
+          NSString? name,
+          NSString? hostName,
+          NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_513(
+        _lib._class_NSConnection1,
+        _lib._sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr,
+        server?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection serviceConnectionWithName_rootObject_usingNameServer_(
+      AVFAudio _lib, NSString? name, NSObject root, NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_514(
+        _lib._class_NSConnection1,
+        _lib._sel_serviceConnectionWithName_rootObject_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        root._id,
+        server?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection serviceConnectionWithName_rootObject_(
+      AVFAudio _lib, NSString? name, NSObject root) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSConnection1,
+        _lib._sel_serviceConnectionWithName_rootObject_1,
+        name?._id ?? ffi.nullptr,
+        root._id);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get requestTimeout {
+    return _lib._objc_msgSend_149(_id, _lib._sel_requestTimeout1);
+  }
+
+  set requestTimeout(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setRequestTimeout_1, value);
+  }
+
+  double get replyTimeout {
+    return _lib._objc_msgSend_149(_id, _lib._sel_replyTimeout1);
+  }
+
+  set replyTimeout(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setReplyTimeout_1, value);
+  }
+
+  NSObject get rootObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_rootObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set rootObject(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setRootObject_1, value._id);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get independentConversationQueueing {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_independentConversationQueueing1);
+  }
+
+  set independentConversationQueueing(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setIndependentConversationQueueing_1, value);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  NSDistantObject? get rootProxy {
+    final _ret = _lib._objc_msgSend_515(_id, _lib._sel_rootProxy1);
+    return _ret.address == 0
+        ? null
+        : NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  void addRequestMode_(NSString? rmode) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_addRequestMode_1, rmode?._id ?? ffi.nullptr);
+  }
+
+  void removeRequestMode_(NSString? rmode) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeRequestMode_1, rmode?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get requestModes {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_requestModes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool registerName_(NSString? name) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_registerName_1, name?._id ?? ffi.nullptr);
+  }
+
+  bool registerName_withNameServer_(NSString? name, NSPortNameServer? server) {
+    return _lib._objc_msgSend_516(_id, _lib._sel_registerName_withNameServer_1,
+        name?._id ?? ffi.nullptr, server?._id ?? ffi.nullptr);
+  }
+
+  static NSConnection connectionWithReceivePort_sendPort_(
+      AVFAudio _lib, NSPort? receivePort, NSPort? sendPort) {
+    final _ret = _lib._objc_msgSend_517(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithReceivePort_sendPort_1,
+        receivePort?._id ?? ffi.nullptr,
+        sendPort?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject currentConversation(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSConnection1, _lib._sel_currentConversation1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSConnection initWithReceivePort_sendPort_(
+      NSPort? receivePort, NSPort? sendPort) {
+    final _ret = _lib._objc_msgSend_517(
+        _id,
+        _lib._sel_initWithReceivePort_sendPort_1,
+        receivePort?._id ?? ffi.nullptr,
+        sendPort?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort? get sendPort {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_sendPort1);
+    return _ret.address == 0
+        ? null
+        : NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort? get receivePort {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_receivePort1);
+    return _ret.address == 0
+        ? null
+        : NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enableMultipleThreads() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_enableMultipleThreads1);
+  }
+
+  bool get multipleThreadsEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_multipleThreadsEnabled1);
+  }
+
+  void addRunLoop_(NSRunLoop? runloop) {
+    return _lib._objc_msgSend_518(
+        _id, _lib._sel_addRunLoop_1, runloop?._id ?? ffi.nullptr);
+  }
+
+  void removeRunLoop_(NSRunLoop? runloop) {
+    return _lib._objc_msgSend_518(
+        _id, _lib._sel_removeRunLoop_1, runloop?._id ?? ffi.nullptr);
+  }
+
+  void runInNewThread() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_runInNewThread1);
+  }
+
+  NSArray? get remoteObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_remoteObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get localObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_localObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dispatchWithComponents_(NSArray? components) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_dispatchWithComponents_1,
+        components?._id ?? ffi.nullptr);
+  }
+
+  static NSConnection new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSConnection1, _lib._sel_new1);
+    return NSConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSConnection alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSConnection1, _lib._sel_alloc1);
+    return NSConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSConnection1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSConnection1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSConnection1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSConnection1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSConnection1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSConnection1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSConnection1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPortNameServer extends NSObject {
+  NSPortNameServer._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPortNameServer] that points to the same underlying object as [other].
+  static NSPortNameServer castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPortNameServer._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSPortNameServer] that wraps the given raw object pointer.
+  static NSPortNameServer castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPortNameServer._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPortNameServer].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPortNameServer1);
+  }
+
+  static NSPortNameServer systemDefaultPortNameServer(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_505(
+        _lib._class_NSPortNameServer1, _lib._sel_systemDefaultPortNameServer1);
+    return NSPortNameServer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort portForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_506(
+        _id, _lib._sel_portForName_1, name?._id ?? ffi.nullptr);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort portForName_host_(NSString? name, NSString? host) {
+    final _ret = _lib._objc_msgSend_507(_id, _lib._sel_portForName_host_1,
+        name?._id ?? ffi.nullptr, host?._id ?? ffi.nullptr);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool registerPort_name_(NSPort? port, NSString? name) {
+    return _lib._objc_msgSend_508(_id, _lib._sel_registerPort_name_1,
+        port?._id ?? ffi.nullptr, name?._id ?? ffi.nullptr);
+  }
+
+  bool removePortForName_(NSString? name) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_removePortForName_1, name?._id ?? ffi.nullptr);
+  }
+
+  static NSPortNameServer new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortNameServer1, _lib._sel_new1);
+    return NSPortNameServer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPortNameServer alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortNameServer1, _lib._sel_alloc1);
+    return NSPortNameServer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPortNameServer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPortNameServer1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortNameServer1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSPortNameServer1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPortNameServer1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDistantObject extends NSProxy {
+  NSDistantObject._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDistantObject] that points to the same underlying object as [other].
+  static NSDistantObject castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDistantObject._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDistantObject] that wraps the given raw object pointer.
+  static NSDistantObject castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDistantObject._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDistantObject].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDistantObject1);
+  }
+
+  static NSObject proxyWithTarget_connection_(
+      AVFAudio _lib, NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _lib._class_NSDistantObject1,
+        _lib._sel_proxyWithTarget_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithTarget_connection_(
+      NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _id,
+        _lib._sel_initWithTarget_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject proxyWithLocal_connection_(
+      AVFAudio _lib, NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _lib._class_NSDistantObject1,
+        _lib._sel_proxyWithLocal_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithLocal_connection_(
+      NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _id,
+        _lib._sel_initWithLocal_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setProtocolForProxy_(Protocol? proto) {
+    return _lib._objc_msgSend_511(
+        _id, _lib._sel_setProtocolForProxy_1, proto?._id ?? ffi.nullptr);
+  }
+
+  NSConnection? get connectionForProxy {
+    final _ret = _lib._objc_msgSend_504(_id, _lib._sel_connectionForProxy1);
+    return _ret.address == 0
+        ? null
+        : NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDistantObject1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool respondsToSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSDistantObject1,
+        _lib._sel_respondsToSelector_1, aSelector);
+  }
+}
+
+class NSProxy extends _ObjCWrapper {
+  NSProxy._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProxy] that points to the same underlying object as [other].
+  static NSProxy castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProxy._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProxy] that wraps the given raw object pointer.
+  static NSProxy castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProxy._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProxy].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProxy1);
+  }
+
+  static NSObject alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProxy1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject allocWithZone_(AVFAudio _lib, ffi.Pointer<NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSProxy1, _lib._sel_allocWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject class1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProxy1, _lib._sel_class1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void forwardInvocation_(NSInvocation? invocation) {
+    return _lib._objc_msgSend_372(
+        _id, _lib._sel_forwardInvocation_1, invocation?._id ?? ffi.nullptr);
+  }
+
+  NSMethodSignature methodSignatureForSelector_(ffi.Pointer<ObjCSel> sel) {
+    final _ret = _lib._objc_msgSend_373(
+        _id, _lib._sel_methodSignatureForSelector_1, sel);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dealloc() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dealloc1);
+  }
+
+  void finalize() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finalize1);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get debugDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_debugDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool respondsToSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSProxy1, _lib._sel_respondsToSelector_1, aSelector);
+  }
+
+  bool allowsWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsWeakReference1);
+  }
+
+  bool retainWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_retainWeakReference1);
+  }
+}
+
+class NSClassDescription extends NSObject {
+  NSClassDescription._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSClassDescription] that points to the same underlying object as [other].
+  static NSClassDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSClassDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSClassDescription] that wraps the given raw object pointer.
+  static NSClassDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSClassDescription._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSClassDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSClassDescription1);
+  }
+
+  static void registerClassDescription_forClass_(
+      AVFAudio _lib, NSClassDescription? description, NSObject aClass) {
+    return _lib._objc_msgSend_523(
+        _lib._class_NSClassDescription1,
+        _lib._sel_registerClassDescription_forClass_1,
+        description?._id ?? ffi.nullptr,
+        aClass._id);
+  }
+
+  static void invalidateClassDescriptionCache(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSClassDescription1,
+        _lib._sel_invalidateClassDescriptionCache1);
+  }
+
+  static NSClassDescription classDescriptionForClass_(
+      AVFAudio _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_524(_lib._class_NSClassDescription1,
+        _lib._sel_classDescriptionForClass_1, aClass._id);
+    return NSClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get attributeKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributeKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get toOneRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toOneRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get toManyRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toManyRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSString inverseForRelationshipKey_(NSString? relationshipKey) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_inverseForRelationshipKey_1,
+        relationshipKey?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSClassDescription new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSClassDescription1, _lib._sel_new1);
+    return NSClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSClassDescription alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSClassDescription1, _lib._sel_alloc1);
+    return NSClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSClassDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSClassDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSClassDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSClassDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSClassDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSClassDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSClassDescription1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptObjectSpecifier extends NSObject {
+  NSScriptObjectSpecifier._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptObjectSpecifier] that points to the same underlying object as [other].
+  static NSScriptObjectSpecifier castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptObjectSpecifier._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptObjectSpecifier] that wraps the given raw object pointer.
+  static NSScriptObjectSpecifier castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptObjectSpecifier._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptObjectSpecifier].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptObjectSpecifier1);
+  }
+
+  static NSScriptObjectSpecifier objectSpecifierWithDescriptor_(
+      AVFAudio _lib, NSAppleEventDescriptor? descriptor) {
+    final _ret = _lib._objc_msgSend_548(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_objectSpecifierWithDescriptor_1,
+        descriptor?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier initWithContainerSpecifier_key_(
+      NSScriptObjectSpecifier? container, NSString? property) {
+    final _ret = _lib._objc_msgSend_549(
+        _id,
+        _lib._sel_initWithContainerSpecifier_key_1,
+        container?._id ?? ffi.nullptr,
+        property?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier
+      initWithContainerClassDescription_containerSpecifier_key_(
+          NSScriptClassDescription? classDesc,
+          NSScriptObjectSpecifier? container,
+          NSString? property) {
+    final _ret = _lib._objc_msgSend_566(
+        _id,
+        _lib._sel_initWithContainerClassDescription_containerSpecifier_key_1,
+        classDesc?._id ?? ffi.nullptr,
+        container?._id ?? ffi.nullptr,
+        property?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier? get childSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_childSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set childSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setChildSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptObjectSpecifier? get containerSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_containerSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set containerSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setContainerSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get containerIsObjectBeingTested {
+    return _lib._objc_msgSend_12(_id, _lib._sel_containerIsObjectBeingTested1);
+  }
+
+  set containerIsObjectBeingTested(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setContainerIsObjectBeingTested_1, value);
+  }
+
+  bool get containerIsRangeContainerObject {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_containerIsRangeContainerObject1);
+  }
+
+  set containerIsRangeContainerObject(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setContainerIsRangeContainerObject_1, value);
+  }
+
+  NSString? get key {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_key1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set key(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setKey_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptClassDescription? get containerClassDescription {
+    final _ret =
+        _lib._objc_msgSend_552(_id, _lib._sel_containerClassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  set containerClassDescription(NSScriptClassDescription? value) {
+    _lib._objc_msgSend_567(_id, _lib._sel_setContainerClassDescription_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptClassDescription? get keyClassDescription {
+    final _ret = _lib._objc_msgSend_552(_id, _lib._sel_keyClassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<NSInteger> indicesOfObjectsByEvaluatingWithContainer_count_(
+      NSObject container, ffi.Pointer<NSInteger> count) {
+    return _lib._objc_msgSend_568(
+        _id,
+        _lib._sel_indicesOfObjectsByEvaluatingWithContainer_count_1,
+        container._id,
+        count);
+  }
+
+  NSObject objectsByEvaluatingWithContainers_(NSObject containers) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_objectsByEvaluatingWithContainers_1, containers._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get objectsByEvaluatingSpecifier {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_objectsByEvaluatingSpecifier1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get evaluationErrorNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_evaluationErrorNumber1);
+  }
+
+  set evaluationErrorNumber(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setEvaluationErrorNumber_1, value);
+  }
+
+  NSScriptObjectSpecifier? get evaluationErrorSpecifier {
+    final _ret =
+        _lib._objc_msgSend_556(_id, _lib._sel_evaluationErrorSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor? get descriptor {
+    final _ret = _lib._objc_msgSend_526(_id, _lib._sel_descriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSScriptObjectSpecifier new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_new1);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptObjectSpecifier alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_alloc1);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSAppleEventDescriptor extends NSObject {
+  NSAppleEventDescriptor._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAppleEventDescriptor] that points to the same underlying object as [other].
+  static NSAppleEventDescriptor castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAppleEventDescriptor._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAppleEventDescriptor] that wraps the given raw object pointer.
+  static NSAppleEventDescriptor castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAppleEventDescriptor._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAppleEventDescriptor].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAppleEventDescriptor1);
+  }
+
+  static NSAppleEventDescriptor nullDescriptor(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_nullDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDescriptorType_bytes_length_(
+      AVFAudio _lib,
+      int descriptorType,
+      ffi.Pointer<ffi.Void> bytes,
+      int byteCount) {
+    final _ret = _lib._objc_msgSend_527(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDescriptorType_bytes_length_1,
+        descriptorType,
+        bytes,
+        byteCount);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDescriptorType_data_(
+      AVFAudio _lib, int descriptorType, NSData? data) {
+    final _ret = _lib._objc_msgSend_528(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDescriptorType_data_1,
+        descriptorType,
+        data?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithBoolean_(
+      AVFAudio _lib, int boolean) {
+    final _ret = _lib._objc_msgSend_529(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithBoolean_1, boolean);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithEnumCode_(
+      AVFAudio _lib, int enumerator) {
+    final _ret = _lib._objc_msgSend_530(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithEnumCode_1, enumerator);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithInt32_(
+      AVFAudio _lib, int signedInt) {
+    final _ret = _lib._objc_msgSend_531(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithInt32_1, signedInt);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDouble_(
+      AVFAudio _lib, double doubleValue) {
+    final _ret = _lib._objc_msgSend_532(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDouble_1, doubleValue);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithTypeCode_(
+      AVFAudio _lib, int typeCode) {
+    final _ret = _lib._objc_msgSend_530(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithTypeCode_1, typeCode);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithString_(
+      AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_533(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithString_1, string?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDate_(
+      AVFAudio _lib, NSDate? date) {
+    final _ret = _lib._objc_msgSend_534(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDate_1, date?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithFileURL_(
+      AVFAudio _lib, NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_535(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithFileURL_1, fileURL?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor
+      appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_(
+          AVFAudio _lib,
+          int eventClass,
+          int eventID,
+          NSAppleEventDescriptor? targetDescriptor,
+          int returnID,
+          int transactionID) {
+    final _ret = _lib._objc_msgSend_536(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_1,
+        eventClass,
+        eventID,
+        targetDescriptor?._id ?? ffi.nullptr,
+        returnID,
+        transactionID);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor listDescriptor(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_listDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor recordDescriptor(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_recordDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor currentProcessDescriptor(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_526(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_currentProcessDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithProcessIdentifier_(
+      AVFAudio _lib, int processIdentifier) {
+    final _ret = _lib._objc_msgSend_531(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithProcessIdentifier_1, processIdentifier);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithBundleIdentifier_(
+      AVFAudio _lib, NSString? bundleIdentifier) {
+    final _ret = _lib._objc_msgSend_533(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithBundleIdentifier_1,
+        bundleIdentifier?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithApplicationURL_(
+      AVFAudio _lib, NSURL? applicationURL) {
+    final _ret = _lib._objc_msgSend_535(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithApplicationURL_1,
+        applicationURL?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initWithAEDescNoCopy_(ffi.Pointer<AEDesc> aeDesc) {
+    final _ret =
+        _lib._objc_msgSend_537(_id, _lib._sel_initWithAEDescNoCopy_1, aeDesc);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSAppleEventDescriptor initWithDescriptorType_bytes_length_(
+      int descriptorType, ffi.Pointer<ffi.Void> bytes, int byteCount) {
+    final _ret = _lib._objc_msgSend_538(
+        _id,
+        _lib._sel_initWithDescriptorType_bytes_length_1,
+        descriptorType,
+        bytes,
+        byteCount);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initWithDescriptorType_data_(
+      int descriptorType, NSData? data) {
+    final _ret = _lib._objc_msgSend_539(
+        _id,
+        _lib._sel_initWithDescriptorType_data_1,
+        descriptorType,
+        data?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor
+      initWithEventClass_eventID_targetDescriptor_returnID_transactionID_(
+          int eventClass,
+          int eventID,
+          NSAppleEventDescriptor? targetDescriptor,
+          int returnID,
+          int transactionID) {
+    final _ret = _lib._objc_msgSend_540(
+        _id,
+        _lib._sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_1,
+        eventClass,
+        eventID,
+        targetDescriptor?._id ?? ffi.nullptr,
+        returnID,
+        transactionID);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initListDescriptor() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initListDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initRecordDescriptor() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initRecordDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<AEDesc> get aeDesc {
+    return _lib._objc_msgSend_541(_id, _lib._sel_aeDesc1);
+  }
+
+  int get descriptorType {
+    return _lib._objc_msgSend_191(_id, _lib._sel_descriptorType1);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get booleanValue {
+    return _lib._objc_msgSend_210(_id, _lib._sel_booleanValue1);
+  }
+
+  int get enumCodeValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_enumCodeValue1);
+  }
+
+  int get int32Value {
+    return _lib._objc_msgSend_213(_id, _lib._sel_int32Value1);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  int get typeCodeValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_typeCodeValue1);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get dateValue {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_dateValue1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get fileURLValue {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_fileURLValue1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get eventClass {
+    return _lib._objc_msgSend_191(_id, _lib._sel_eventClass1);
+  }
+
+  int get eventID {
+    return _lib._objc_msgSend_191(_id, _lib._sel_eventID1);
+  }
+
+  int get returnID {
+    return _lib._objc_msgSend_211(_id, _lib._sel_returnID1);
+  }
+
+  int get transactionID {
+    return _lib._objc_msgSend_213(_id, _lib._sel_transactionID1);
+  }
+
+  void setParamDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(
+        _id,
+        _lib._sel_setParamDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr,
+        keyword);
+  }
+
+  NSAppleEventDescriptor paramDescriptorForKeyword_(int keyword) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_paramDescriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeParamDescriptorWithKeyword_(int keyword) {
+    return _lib._objc_msgSend_543(
+        _id, _lib._sel_removeParamDescriptorWithKeyword_1, keyword);
+  }
+
+  void setAttributeDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(
+        _id,
+        _lib._sel_setAttributeDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr,
+        keyword);
+  }
+
+  NSAppleEventDescriptor attributeDescriptorForKeyword_(int keyword) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_attributeDescriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor sendEventWithOptions_timeout_error_(int sendOptions,
+      double timeoutInSeconds, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_544(
+        _id,
+        _lib._sel_sendEventWithOptions_timeout_error_1,
+        sendOptions,
+        timeoutInSeconds,
+        error);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get isRecordDescriptor {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRecordDescriptor1);
+  }
+
+  int get numberOfItems {
+    return _lib._objc_msgSend_78(_id, _lib._sel_numberOfItems1);
+  }
+
+  void insertDescriptor_atIndex_(
+      NSAppleEventDescriptor? descriptor, int index) {
+    return _lib._objc_msgSend_545(_id, _lib._sel_insertDescriptor_atIndex_1,
+        descriptor?._id ?? ffi.nullptr, index);
+  }
+
+  NSAppleEventDescriptor descriptorAtIndex_(int index) {
+    final _ret =
+        _lib._objc_msgSend_546(_id, _lib._sel_descriptorAtIndex_1, index);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeDescriptorAtIndex_(int index) {
+    return _lib._objc_msgSend_374(
+        _id, _lib._sel_removeDescriptorAtIndex_1, index);
+  }
+
+  void setDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(_id, _lib._sel_setDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr, keyword);
+  }
+
+  NSAppleEventDescriptor descriptorForKeyword_(int keyword) {
+    final _ret =
+        _lib._objc_msgSend_530(_id, _lib._sel_descriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeDescriptorWithKeyword_(int keyword) {
+    return _lib._objc_msgSend_543(
+        _id, _lib._sel_removeDescriptorWithKeyword_1, keyword);
+  }
+
+  int keywordForDescriptorAtIndex_(int index) {
+    return _lib._objc_msgSend_547(
+        _id, _lib._sel_keywordForDescriptorAtIndex_1, index);
+  }
+
+  NSAppleEventDescriptor coerceToDescriptorType_(int descriptorType) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_coerceToDescriptorType_1, descriptorType);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_new1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSAppleEventDescriptor alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_alloc1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef DescType = ResType;
+typedef ResType = FourCharCode;
+typedef Boolean = ffi.UnsignedChar;
+typedef SInt32 = ffi.Int;
+typedef AEEventClass = FourCharCode;
+typedef AEEventID = FourCharCode;
+typedef AEReturnID = SInt16;
+typedef SInt16 = ffi.Short;
+typedef AETransactionID = SInt32;
+typedef pid_t = __darwin_pid_t;
+typedef __darwin_pid_t = __int32_t;
+typedef __int32_t = ffi.Int;
+
+@ffi.Packed(2)
+class AEDesc extends ffi.Struct {
+  @DescType()
+  external int descriptorType;
+
+  external AEDataStorage dataHandle;
+}
+
+typedef AEDataStorage = ffi.Pointer<AEDataStorageType>;
+typedef AEDataStorageType = ffi.Pointer<OpaqueAEDataStorageType>;
+
+class OpaqueAEDataStorageType extends ffi.Opaque {}
+
+typedef AEKeyword = FourCharCode;
+
+abstract class NSAppleEventSendOptions {
+  static const int NSAppleEventSendNoReply = 1;
+  static const int NSAppleEventSendQueueReply = 2;
+  static const int NSAppleEventSendWaitForReply = 3;
+  static const int NSAppleEventSendNeverInteract = 16;
+  static const int NSAppleEventSendCanInteract = 32;
+  static const int NSAppleEventSendAlwaysInteract = 48;
+  static const int NSAppleEventSendCanSwitchLayer = 64;
+  static const int NSAppleEventSendDontRecord = 4096;
+  static const int NSAppleEventSendDontExecute = 8192;
+  static const int NSAppleEventSendDontAnnotate = 65536;
+  static const int NSAppleEventSendDefaultOptions = 35;
+}
+
+class NSScriptClassDescription extends NSClassDescription {
+  NSScriptClassDescription._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptClassDescription] that points to the same underlying object as [other].
+  static NSScriptClassDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptClassDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptClassDescription] that wraps the given raw object pointer.
+  static NSScriptClassDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptClassDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptClassDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptClassDescription1);
+  }
+
+  static NSScriptClassDescription classDescriptionForClass_(
+      AVFAudio _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_550(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classDescriptionForClass_1, aClass._id);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription initWithSuiteName_className_dictionary_(
+      NSString? suiteName,
+      NSString? className,
+      NSDictionary? classDeclaration) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithSuiteName_className_dictionary_1,
+        suiteName?._id ?? ffi.nullptr,
+        className?._id ?? ffi.nullptr,
+        classDeclaration?._id ?? ffi.nullptr);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suiteName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suiteName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get className {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_className1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get implementationClassName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_implementationClassName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription? get superclassDescription {
+    final _ret = _lib._objc_msgSend_552(_id, _lib._sel_superclassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCode1);
+  }
+
+  bool matchesAppleEventCode_(int appleEventCode) {
+    return _lib._objc_msgSend_173(
+        _id, _lib._sel_matchesAppleEventCode_1, appleEventCode);
+  }
+
+  bool supportsCommand_(NSScriptCommandDescription? commandDescription) {
+    return _lib._objc_msgSend_562(_id, _lib._sel_supportsCommand_1,
+        commandDescription?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ObjCSel> selectorForCommand_(
+      NSScriptCommandDescription? commandDescription) {
+    return _lib._objc_msgSend_563(_id, _lib._sel_selectorForCommand_1,
+        commandDescription?._id ?? ffi.nullptr);
+  }
+
+  NSString typeForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_typeForKey_1, key?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription classDescriptionForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_564(
+        _id, _lib._sel_classDescriptionForKey_1, key?._id ?? ffi.nullptr);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  int appleEventCodeForKey_(NSString? key) {
+    return _lib._objc_msgSend_553(
+        _id, _lib._sel_appleEventCodeForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSString keyWithAppleEventCode_(int appleEventCode) {
+    final _ret = _lib._objc_msgSend_565(
+        _id, _lib._sel_keyWithAppleEventCode_1, appleEventCode);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get defaultSubcontainerAttributeKey {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_defaultSubcontainerAttributeKey1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isLocationRequiredToCreateForKey_(NSString? toManyRelationshipKey) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_isLocationRequiredToCreateForKey_1,
+        toManyRelationshipKey?._id ?? ffi.nullptr);
+  }
+
+  bool hasPropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasPropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool hasOrderedToManyRelationshipForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_hasOrderedToManyRelationshipForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  bool hasReadablePropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasReadablePropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool hasWritablePropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasWritablePropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool isReadOnlyKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isReadOnlyKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  static void registerClassDescription_forClass_(
+      AVFAudio _lib, NSClassDescription? description, NSObject aClass) {
+    return _lib._objc_msgSend_523(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_registerClassDescription_forClass_1,
+        description?._id ?? ffi.nullptr,
+        aClass._id);
+  }
+
+  static void invalidateClassDescriptionCache(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSScriptClassDescription1,
+        _lib._sel_invalidateClassDescriptionCache1);
+  }
+
+  static NSScriptClassDescription new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptClassDescription1, _lib._sel_new1);
+    return NSScriptClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptClassDescription alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptClassDescription1, _lib._sel_alloc1);
+    return NSScriptClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptClassDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptClassDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptCommandDescription extends NSObject {
+  NSScriptCommandDescription._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptCommandDescription] that points to the same underlying object as [other].
+  static NSScriptCommandDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptCommandDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptCommandDescription] that wraps the given raw object pointer.
+  static NSScriptCommandDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptCommandDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptCommandDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptCommandDescription1);
+  }
+
+  @override
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommandDescription initWithSuiteName_commandName_dictionary_(
+      NSString? suiteName,
+      NSString? commandName,
+      NSDictionary? commandDeclaration) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithSuiteName_commandName_dictionary_1,
+        suiteName?._id ?? ffi.nullptr,
+        commandName?._id ?? ffi.nullptr,
+        commandDeclaration?._id ?? ffi.nullptr);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSScriptCommandDescription initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSString? get suiteName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suiteName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get commandName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_commandName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventClassCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventClassCode1);
+  }
+
+  int get appleEventCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCode1);
+  }
+
+  NSString? get commandClassName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_commandClassName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get returnType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_returnType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventCodeForReturnType {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCodeForReturnType1);
+  }
+
+  NSArray? get argumentNames {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_argumentNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString typeForArgumentWithName_(NSString? argumentName) {
+    final _ret = _lib._objc_msgSend_64(_id, _lib._sel_typeForArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int appleEventCodeForArgumentWithName_(NSString? argumentName) {
+    return _lib._objc_msgSend_553(
+        _id,
+        _lib._sel_appleEventCodeForArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+  }
+
+  bool isOptionalArgumentWithName_(NSString? argumentName) {
+    return _lib._objc_msgSend_59(_id, _lib._sel_isOptionalArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+  }
+
+  NSScriptCommand createCommandInstance() {
+    final _ret = _lib._objc_msgSend_560(_id, _lib._sel_createCommandInstance1);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommand createCommandInstanceWithZone_(ffi.Pointer<NSZone> zone) {
+    final _ret = _lib._objc_msgSend_561(
+        _id, _lib._sel_createCommandInstanceWithZone_1, zone);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSScriptCommandDescription new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_new1);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSScriptCommandDescription alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_alloc1);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptCommand extends NSObject {
+  NSScriptCommand._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptCommand] that points to the same underlying object as [other].
+  static NSScriptCommand castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptCommand._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptCommand] that wraps the given raw object pointer.
+  static NSScriptCommand castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptCommand._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptCommand].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptCommand1);
+  }
+
+  NSScriptCommand initWithCommandDescription_(
+      NSScriptCommandDescription? commandDef) {
+    final _ret = _lib._objc_msgSend_554(_id,
+        _lib._sel_initWithCommandDescription_1, commandDef?._id ?? ffi.nullptr);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommand initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommandDescription? get commandDescription {
+    final _ret = _lib._objc_msgSend_555(_id, _lib._sel_commandDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptCommandDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get directParameter {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_directParameter1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set directParameter(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setDirectParameter_1, value._id);
+  }
+
+  NSScriptObjectSpecifier? get receiversSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_receiversSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set receiversSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setReceiversSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get evaluatedReceivers {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_evaluatedReceivers1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get arguments {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set arguments(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setArguments_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get evaluatedArguments {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_evaluatedArguments1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get wellFormed {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isWellFormed1);
+  }
+
+  NSObject performDefaultImplementation() {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_performDefaultImplementation1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject executeCommand() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_executeCommand1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get scriptErrorNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_scriptErrorNumber1);
+  }
+
+  set scriptErrorNumber(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setScriptErrorNumber_1, value);
+  }
+
+  NSAppleEventDescriptor? get scriptErrorOffendingObjectDescriptor {
+    final _ret = _lib._objc_msgSend_526(
+        _id, _lib._sel_scriptErrorOffendingObjectDescriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorOffendingObjectDescriptor(NSAppleEventDescriptor? value) {
+    _lib._objc_msgSend_559(
+        _id,
+        _lib._sel_setScriptErrorOffendingObjectDescriptor_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSAppleEventDescriptor? get scriptErrorExpectedTypeDescriptor {
+    final _ret = _lib._objc_msgSend_526(
+        _id, _lib._sel_scriptErrorExpectedTypeDescriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorExpectedTypeDescriptor(NSAppleEventDescriptor? value) {
+    _lib._objc_msgSend_559(
+        _id,
+        _lib._sel_setScriptErrorExpectedTypeDescriptor_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get scriptErrorString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scriptErrorString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorString(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setScriptErrorString_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSScriptCommand currentCommand(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_560(
+        _lib._class_NSScriptCommand1, _lib._sel_currentCommand1);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor? get appleEvent {
+    final _ret = _lib._objc_msgSend_526(_id, _lib._sel_appleEvent1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void suspendExecution() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_suspendExecution1);
+  }
+
+  void resumeExecutionWithResult_(NSObject result) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_resumeExecutionWithResult_1, result._id);
+  }
+
+  static NSScriptCommand new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSScriptCommand1, _lib._sel_new1);
+    return NSScriptCommand._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptCommand alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSScriptCommand1, _lib._sel_alloc1);
+    return NSScriptCommand._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptCommand1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptCommand1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptCommand1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptCommand1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommand1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSItemProvider extends NSObject {
+  NSItemProvider._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSItemProvider] that points to the same underlying object as [other].
+  static NSItemProvider castFrom<T extends _ObjCWrapper>(T other) {
+    return NSItemProvider._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSItemProvider] that wraps the given raw object pointer.
+  static NSItemProvider castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSItemProvider._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSItemProvider].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSItemProvider1);
+  }
+
+  @override
+  NSItemProvider init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerDataRepresentationForTypeIdentifier_visibility_loadHandler_(
+      NSString? typeIdentifier, int visibility, ObjCBlock18 loadHandler) {
+    return _lib._objc_msgSend_588(
+        _id,
+        _lib._sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        visibility,
+        loadHandler._id);
+  }
+
+  void
+      registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_(
+          NSString? typeIdentifier,
+          int fileOptions,
+          int visibility,
+          ObjCBlock20 loadHandler) {
+    return _lib._objc_msgSend_589(
+        _id,
+        _lib._sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        fileOptions,
+        visibility,
+        loadHandler._id);
+  }
+
+  NSArray? get registeredTypeIdentifiers {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_registeredTypeIdentifiers1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray registeredTypeIdentifiersWithFileOptions_(int fileOptions) {
+    final _ret = _lib._objc_msgSend_590(
+        _id, _lib._sel_registeredTypeIdentifiersWithFileOptions_1, fileOptions);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool hasItemConformingToTypeIdentifier_(NSString? typeIdentifier) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_hasItemConformingToTypeIdentifier_1,
+        typeIdentifier?._id ?? ffi.nullptr);
+  }
+
+  bool hasRepresentationConformingToTypeIdentifier_fileOptions_(
+      NSString? typeIdentifier, int fileOptions) {
+    return _lib._objc_msgSend_591(
+        _id,
+        _lib._sel_hasRepresentationConformingToTypeIdentifier_fileOptions_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        fileOptions);
+  }
+
+  NSProgress loadDataRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock19 completionHandler) {
+    final _ret = _lib._objc_msgSend_592(
+        _id,
+        _lib._sel_loadDataRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress loadFileRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock22 completionHandler) {
+    final _ret = _lib._objc_msgSend_593(
+        _id,
+        _lib._sel_loadFileRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock21 completionHandler) {
+    final _ret = _lib._objc_msgSend_594(
+        _id,
+        _lib._sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suggestedName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suggestedName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set suggestedName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSuggestedName_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSItemProvider initWithObject_(NSObject? object) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_initWithObject_1, object?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerObject_visibility_(NSObject? object, int visibility) {
+    return _lib._objc_msgSend_595(_id, _lib._sel_registerObject_visibility_1,
+        object?._id ?? ffi.nullptr, visibility);
+  }
+
+  void registerObjectOfClass_visibility_loadHandler_(
+      NSObject? aClass, int visibility, ObjCBlock23 loadHandler) {
+    return _lib._objc_msgSend_596(
+        _id,
+        _lib._sel_registerObjectOfClass_visibility_loadHandler_1,
+        aClass?._id ?? ffi.nullptr,
+        visibility,
+        loadHandler._id);
+  }
+
+  bool canLoadObjectOfClass_(NSObject? aClass) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_canLoadObjectOfClass_1, aClass?._id ?? ffi.nullptr);
+  }
+
+  NSProgress loadObjectOfClass_completionHandler_(
+      NSObject? aClass, ObjCBlock24 completionHandler) {
+    final _ret = _lib._objc_msgSend_597(
+        _id,
+        _lib._sel_loadObjectOfClass_completionHandler_1,
+        aClass?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSItemProvider initWithItem_typeIdentifier_(
+      NSObject? item, NSString? typeIdentifier) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_initWithItem_typeIdentifier_1,
+        item?._id ?? ffi.nullptr,
+        typeIdentifier?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSItemProvider initWithContentsOfURL_(NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, fileURL?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerItemForTypeIdentifier_loadHandler_(
+      NSString? typeIdentifier, NSItemProviderLoadHandler loadHandler) {
+    return _lib._objc_msgSend_598(
+        _id,
+        _lib._sel_registerItemForTypeIdentifier_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        loadHandler);
+  }
+
+  void loadItemForTypeIdentifier_options_completionHandler_(
+      NSString? typeIdentifier,
+      NSDictionary? options,
+      NSItemProviderCompletionHandler completionHandler) {
+    return _lib._objc_msgSend_599(
+        _id,
+        _lib._sel_loadItemForTypeIdentifier_options_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        completionHandler);
+  }
+
+  NSItemProviderLoadHandler get previewImageHandler {
+    return _lib._objc_msgSend_600(_id, _lib._sel_previewImageHandler1);
+  }
+
+  set previewImageHandler(NSItemProviderLoadHandler value) {
+    _lib._objc_msgSend_601(_id, _lib._sel_setPreviewImageHandler_1, value);
+  }
+
+  void loadPreviewImageWithOptions_completionHandler_(NSDictionary? options,
+      NSItemProviderCompletionHandler completionHandler) {
+    return _lib._objc_msgSend_602(
+        _id,
+        _lib._sel_loadPreviewImageWithOptions_completionHandler_1,
+        options?._id ?? ffi.nullptr,
+        completionHandler);
+  }
+
+  static NSItemProvider new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSItemProvider1, _lib._sel_new1);
+    return NSItemProvider._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSItemProvider alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSItemProvider1, _lib._sel_alloc1);
+    return NSItemProvider._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSItemProvider1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSItemProvider1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSItemProvider1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSItemProvider1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSItemProvider1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSItemProvider1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSItemProvider1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSItemProvider1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSItemProvider1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSItemProviderRepresentationVisibility {
+  static const int NSItemProviderRepresentationVisibilityAll = 0;
+  static const int NSItemProviderRepresentationVisibilityTeam = 1;
+  static const int NSItemProviderRepresentationVisibilityGroup = 2;
+  static const int NSItemProviderRepresentationVisibilityOwnProcess = 3;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock18_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock18_closureRegistry = <int, Function>{};
+int _ObjCBlock18_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock18_registerClosure(Function fn) {
+  final id = ++_ObjCBlock18_closureRegistryIndex;
+  _ObjCBlock18_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock18_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock18_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock18 extends _ObjCBlockBase {
+  ObjCBlock18._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock18.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock18_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock18.fromFunction(AVFAudio lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock18_closureTrampoline)
+                    .cast(),
+                _ObjCBlock18_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSProgress extends NSObject {
+  NSProgress._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProgress] that points to the same underlying object as [other].
+  static NSProgress castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProgress._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProgress] that wraps the given raw object pointer.
+  static NSProgress castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProgress._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProgress].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProgress1);
+  }
+
+  static NSProgress currentProgress(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_577(
+        _lib._class_NSProgress1, _lib._sel_currentProgress1);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress progressWithTotalUnitCount_(AVFAudio _lib, int unitCount) {
+    final _ret = _lib._objc_msgSend_578(_lib._class_NSProgress1,
+        _lib._sel_progressWithTotalUnitCount_1, unitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress discreteProgressWithTotalUnitCount_(
+      AVFAudio _lib, int unitCount) {
+    final _ret = _lib._objc_msgSend_578(_lib._class_NSProgress1,
+        _lib._sel_discreteProgressWithTotalUnitCount_1, unitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress progressWithTotalUnitCount_parent_pendingUnitCount_(
+      AVFAudio _lib,
+      int unitCount,
+      NSProgress? parent,
+      int portionOfParentTotalUnitCount) {
+    final _ret = _lib._objc_msgSend_579(
+        _lib._class_NSProgress1,
+        _lib._sel_progressWithTotalUnitCount_parent_pendingUnitCount_1,
+        unitCount,
+        parent?._id ?? ffi.nullptr,
+        portionOfParentTotalUnitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress initWithParent_userInfo_(NSProgress? parentProgressOrNil) {
+    final _ret = _lib._objc_msgSend_580(
+        _id,
+        _lib._sel_initWithParent_userInfo_1,
+        parentProgressOrNil?._id ?? ffi.nullptr);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  void becomeCurrentWithPendingUnitCount_(int unitCount) {
+    return _lib._objc_msgSend_581(
+        _id, _lib._sel_becomeCurrentWithPendingUnitCount_1, unitCount);
+  }
+
+  void performAsCurrentWithPendingUnitCount_usingBlock_(
+      int unitCount, ObjCBlock16 work) {
+    return _lib._objc_msgSend_582(
+        _id,
+        _lib._sel_performAsCurrentWithPendingUnitCount_usingBlock_1,
+        unitCount,
+        work._id);
+  }
+
+  void resignCurrent() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resignCurrent1);
+  }
+
+  void addChild_withPendingUnitCount_(NSProgress? child, int inUnitCount) {
+    return _lib._objc_msgSend_583(
+        _id,
+        _lib._sel_addChild_withPendingUnitCount_1,
+        child?._id ?? ffi.nullptr,
+        inUnitCount);
+  }
+
+  int get totalUnitCount {
+    return _lib._objc_msgSend_584(_id, _lib._sel_totalUnitCount1);
+  }
+
+  set totalUnitCount(int value) {
+    _lib._objc_msgSend_585(_id, _lib._sel_setTotalUnitCount_1, value);
+  }
+
+  int get completedUnitCount {
+    return _lib._objc_msgSend_584(_id, _lib._sel_completedUnitCount1);
+  }
+
+  set completedUnitCount(int value) {
+    _lib._objc_msgSend_585(_id, _lib._sel_setCompletedUnitCount_1, value);
+  }
+
+  NSString? get localizedDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localizedDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set localizedDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLocalizedDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get localizedAdditionalDescription {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedAdditionalDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set localizedAdditionalDescription(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setLocalizedAdditionalDescription_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get cancellable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancellable1);
+  }
+
+  set cancellable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setCancellable_1, value);
+  }
+
+  bool get pausable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isPausable1);
+  }
+
+  set pausable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setPausable_1, value);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  bool get paused {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isPaused1);
+  }
+
+  ObjCBlock16 get cancellationHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_cancellationHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set cancellationHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setCancellationHandler_1, value._id);
+  }
+
+  ObjCBlock16 get pausingHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_pausingHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set pausingHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setPausingHandler_1, value._id);
+  }
+
+  ObjCBlock16 get resumingHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_resumingHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set resumingHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setResumingHandler_1, value._id);
+  }
+
+  void setUserInfoObject_forKey_(
+      NSObject objectOrNil, NSProgressUserInfoKey key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setUserInfoObject_forKey_1, objectOrNil._id, key);
+  }
+
+  bool get indeterminate {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isIndeterminate1);
+  }
+
+  double get fractionCompleted {
+    return _lib._objc_msgSend_149(_id, _lib._sel_fractionCompleted1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void pause() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_pause1);
+  }
+
+  void resume() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resume1);
+  }
+
+  static NSProgress new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProgress1, _lib._sel_new1);
+    return NSProgress._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSProgress alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProgress1, _lib._sel_alloc1);
+    return NSProgress._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSProgress1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSProgress1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProgress1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProgress1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSProgress1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSProgress1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSProgress1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSProgress1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSProgress1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSProgressUserInfoKey = ffi.Pointer<ObjCObject>;
+void _ObjCBlock19_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock19_closureRegistry = <int, Function>{};
+int _ObjCBlock19_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock19_registerClosure(Function fn) {
+  final id = ++_ObjCBlock19_closureRegistryIndex;
+  _ObjCBlock19_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock19_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock19_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock19 extends _ObjCBlockBase {
+  ObjCBlock19._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock19.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock19_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock19.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock19_closureTrampoline)
+                    .cast(),
+                _ObjCBlock19_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSItemProviderFileOptions {
+  static const int NSItemProviderFileOptionOpenInPlace = 1;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock20_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock20_closureRegistry = <int, Function>{};
+int _ObjCBlock20_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock20_registerClosure(Function fn) {
+  final id = ++_ObjCBlock20_closureRegistryIndex;
+  _ObjCBlock20_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock20_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock20_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock20 extends _ObjCBlockBase {
+  ObjCBlock20._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock20.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock20_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock20.fromFunction(AVFAudio lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock20_closureTrampoline)
+                    .cast(),
+                _ObjCBlock20_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock21_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock21_closureRegistry = <int, Function>{};
+int _ObjCBlock21_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock21_registerClosure(Function fn) {
+  final id = ++_ObjCBlock21_closureRegistryIndex;
+  _ObjCBlock21_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock21_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock21_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock21 extends _ObjCBlockBase {
+  ObjCBlock21._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock21.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock21_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock21.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock21_closureTrampoline)
+                    .cast(),
+                _ObjCBlock21_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock22_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock22_closureRegistry = <int, Function>{};
+int _ObjCBlock22_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock22_registerClosure(Function fn) {
+  final id = ++_ObjCBlock22_closureRegistryIndex;
+  _ObjCBlock22_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock22_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock22_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock22 extends _ObjCBlockBase {
+  ObjCBlock22._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock22.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock22_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock22.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock22_closureTrampoline)
+                    .cast(),
+                _ObjCBlock22_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock23_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock23_closureRegistry = <int, Function>{};
+int _ObjCBlock23_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock23_registerClosure(Function fn) {
+  final id = ++_ObjCBlock23_closureRegistryIndex;
+  _ObjCBlock23_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock23_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock23_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock23 extends _ObjCBlockBase {
+  ObjCBlock23._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock23.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock23_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock23.fromFunction(AVFAudio lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock23_closureTrampoline)
+                    .cast(),
+                _ObjCBlock23_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock24_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock24_closureRegistry = <int, Function>{};
+int _ObjCBlock24_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock24_registerClosure(Function fn) {
+  final id = ++_ObjCBlock24_closureRegistryIndex;
+  _ObjCBlock24_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock24_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock24_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock24 extends _ObjCBlockBase {
+  ObjCBlock24._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock24.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock24_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock24.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock24_closureTrampoline)
+                    .cast(),
+                _ObjCBlock24_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSItemProviderLoadHandler = ffi.Pointer<_ObjCBlock>;
+void _ObjCBlock25_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    NSItemProviderCompletionHandler arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  NSItemProviderCompletionHandler arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              NSItemProviderCompletionHandler arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock25_closureRegistry = <int, Function>{};
+int _ObjCBlock25_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock25_registerClosure(Function fn) {
+  final id = ++_ObjCBlock25_closureRegistryIndex;
+  _ObjCBlock25_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock25_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    NSItemProviderCompletionHandler arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock25_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock25 extends _ObjCBlockBase {
+  ObjCBlock25._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock25.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      NSItemProviderCompletionHandler arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                NSItemProviderCompletionHandler arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock25_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock25.fromFunction(
+      AVFAudio lib,
+      void Function(NSItemProviderCompletionHandler arg0,
+              ffi.Pointer<ObjCObject> arg1, ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                NSItemProviderCompletionHandler arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock25_closureTrampoline)
+                    .cast(),
+                _ObjCBlock25_registerClosure(fn)),
+            lib);
+  void call(NSItemProviderCompletionHandler arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    NSItemProviderCompletionHandler arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                NSItemProviderCompletionHandler arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSItemProviderCompletionHandler = ffi.Pointer<_ObjCBlock>;
+
+class NSMutableString extends NSString {
+  NSMutableString._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableString] that points to the same underlying object as [other].
+  static NSMutableString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableString] that wraps the given raw object pointer.
+  static NSMutableString castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableString1);
+  }
+
+  void replaceCharactersInRange_withString_(NSRange range, NSString? aString) {
+    return _lib._objc_msgSend_603(
+        _id,
+        _lib._sel_replaceCharactersInRange_withString_1,
+        range,
+        aString?._id ?? ffi.nullptr);
+  }
+
+  void insertString_atIndex_(NSString? aString, int loc) {
+    return _lib._objc_msgSend_604(_id, _lib._sel_insertString_atIndex_1,
+        aString?._id ?? ffi.nullptr, loc);
+  }
+
+  void deleteCharactersInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(
+        _id, _lib._sel_deleteCharactersInRange_1, range);
+  }
+
+  void appendString_(NSString? aString) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_appendString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  void appendFormat_(NSString? format) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_appendFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  void setString_(NSString? aString) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  int replaceOccurrencesOfString_withString_options_range_(NSString? target,
+      NSString? replacement, int options, NSRange searchRange) {
+    return _lib._objc_msgSend_605(
+        _id,
+        _lib._sel_replaceOccurrencesOfString_withString_options_range_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr,
+        options,
+        searchRange);
+  }
+
+  bool applyTransform_reverse_range_updatedRange_(NSStringTransform transform,
+      bool reverse, NSRange range, NSRangePointer resultingRange) {
+    return _lib._objc_msgSend_606(
+        _id,
+        _lib._sel_applyTransform_reverse_range_updatedRange_1,
+        transform,
+        reverse,
+        range,
+        resultingRange);
+  }
+
+  NSMutableString initWithCapacity_(int capacity) {
+    final _ret =
+        _lib._objc_msgSend_607(_id, _lib._sel_initWithCapacity_1, capacity);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCapacity_(AVFAudio _lib, int capacity) {
+    final _ret = _lib._objc_msgSend_607(
+        _lib._class_NSMutableString1, _lib._sel_stringWithCapacity_1, capacity);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static ffi.Pointer<NSStringEncoding> getAvailableStringEncodings(
+      AVFAudio _lib) {
+    return _lib._objc_msgSend_318(
+        _lib._class_NSMutableString1, _lib._sel_availableStringEncodings1);
+  }
+
+  static NSString localizedNameOfStringEncoding_(AVFAudio _lib, int encoding) {
+    final _ret = _lib._objc_msgSend_293(_lib._class_NSMutableString1,
+        _lib._sel_localizedNameOfStringEncoding_1, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultCStringEncoding(AVFAudio _lib) {
+    return _lib._objc_msgSend_10(
+        _lib._class_NSMutableString1, _lib._sel_defaultCStringEncoding1);
+  }
+
+  static NSMutableString string(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_string1);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithString_1, string?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCharacters_length_(
+      AVFAudio _lib, ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCharacters_length_1, characters, length);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithUTF8String_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(_lib._class_NSMutableString1,
+        _lib._sel_stringWithUTF8String_1, nullTerminatedCString);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithFormat_(AVFAudio _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString localizedStringWithFormat_(
+      AVFAudio _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_localizedStringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCString_encoding_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> cString, int enc) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCString_encoding_1, cString, enc);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfURL_encoding_error_(AVFAudio _lib,
+      NSURL? url, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfFile_encoding_error_(AVFAudio _lib,
+      NSString? path, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfURL_usedEncoding_error_(
+      AVFAudio _lib,
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfFile_usedEncoding_error_(
+      AVFAudio _lib,
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int
+      stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_(
+          AVFAudio _lib,
+          NSData? data,
+          NSDictionary? opts,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+          ffi.Pointer<ffi.Bool> usedLossyConversion) {
+    return _lib._objc_msgSend_344(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1,
+        data?._id ?? ffi.nullptr,
+        opts?._id ?? ffi.nullptr,
+        string,
+        usedLossyConversion);
+  }
+
+  static NSObject stringWithContentsOfFile_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_length_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_(
+      AVFAudio _lib, ffi.Pointer<ffi.Char> bytes) {
+    final _ret = _lib._objc_msgSend_332(
+        _lib._class_NSMutableString1, _lib._sel_stringWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathWithComponents_(AVFAudio _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_350(_lib._class_NSMutableString1,
+        _lib._sel_pathWithComponents_1, components?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_new1);
+    return NSMutableString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableString alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_alloc1);
+    return NSMutableString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSNotification extends NSObject {
+  NSNotification._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNotification] that points to the same underlying object as [other].
+  static NSNotification castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNotification._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNotification] that wraps the given raw object pointer.
+  static NSNotification castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNotification._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNotification].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSNotification1);
+  }
+
+  NSNotificationName get name {
+    return _lib._objc_msgSend_20(_id, _lib._sel_name1);
+  }
+
+  NSObject get object {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_object1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNotification initWithName_object_userInfo_(
+      NSNotificationName name, NSObject object, NSDictionary? userInfo) {
+    final _ret = _lib._objc_msgSend_608(
+        _id,
+        _lib._sel_initWithName_object_userInfo_1,
+        name,
+        object._id,
+        userInfo?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNotification initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification notificationWithName_object_(
+      AVFAudio _lib, NSNotificationName aName, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_157(_lib._class_NSNotification1,
+        _lib._sel_notificationWithName_object_1, aName, anObject._id);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification notificationWithName_object_userInfo_(AVFAudio _lib,
+      NSNotificationName aName, NSObject anObject, NSDictionary? aUserInfo) {
+    final _ret = _lib._objc_msgSend_608(
+        _lib._class_NSNotification1,
+        _lib._sel_notificationWithName_object_userInfo_1,
+        aName,
+        anObject._id,
+        aUserInfo?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSNotification init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNotification1, _lib._sel_new1);
+    return NSNotification._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNotification alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNotification1, _lib._sel_alloc1);
+    return NSNotification._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNotification1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNotification1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSNotification1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNotification1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNotification1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNotification1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNotification1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNotification1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNotification1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSNotificationName = ffi.Pointer<ObjCObject>;
+
+class NSBundle extends NSObject {
+  NSBundle._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSBundle] that points to the same underlying object as [other].
+  static NSBundle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSBundle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSBundle] that wraps the given raw object pointer.
+  static NSBundle castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSBundle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSBundle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSBundle1);
+  }
+
+  static NSBundle? getMainBundle(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_609(_lib._class_NSBundle1, _lib._sel_mainBundle1);
+    return _ret.address == 0
+        ? null
+        : NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithPath_(AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSBundle1,
+        _lib._sel_bundleWithPath_1, path?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSBundle initWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithPath_1, path?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSBundle1,
+        _lib._sel_bundleWithURL_1, url?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSBundle initWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, url?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleForClass_(AVFAudio _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_610(
+        _lib._class_NSBundle1, _lib._sel_bundleForClass_1, aClass._id);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithIdentifier_(AVFAudio _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_611(_lib._class_NSBundle1,
+        _lib._sel_bundleWithIdentifier_1, identifier?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAllBundles(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_80(_lib._class_NSBundle1, _lib._sel_allBundles1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAllFrameworks(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_80(_lib._class_NSBundle1, _lib._sel_allFrameworks1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool load() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_load1);
+  }
+
+  bool get loaded {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLoaded1);
+  }
+
+  bool unload() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_unload1);
+  }
+
+  bool preflightAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_preflightAndReturnError_1, error);
+  }
+
+  bool loadAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_loadAndReturnError_1, error);
+  }
+
+  NSURL? get bundleURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_bundleURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get resourceURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_resourceURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get executableURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_executableURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForAuxiliaryExecutable_(NSString? executableName) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLForAuxiliaryExecutable_1,
+        executableName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get privateFrameworksURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_privateFrameworksURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get sharedFrameworksURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_sharedFrameworksURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get sharedSupportURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_sharedSupportURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get builtInPlugInsURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_builtInPlugInsURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get appStoreReceiptURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_appStoreReceiptURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get bundlePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_bundlePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get resourcePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_resourcePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get executablePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_executablePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForAuxiliaryExecutable_(NSString? executableName) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_pathForAuxiliaryExecutable_1,
+        executableName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get privateFrameworksPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_privateFrameworksPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sharedFrameworksPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sharedFrameworksPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sharedSupportPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sharedSupportPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get builtInPlugInsPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_builtInPlugInsPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLForResource_withExtension_subdirectory_inBundleWithURL_(
+      AVFAudio _lib,
+      NSString? name,
+      NSString? ext,
+      NSString? subpath,
+      NSURL? bundleURL) {
+    final _ret = _lib._objc_msgSend_612(
+        _lib._class_NSBundle1,
+        _lib._sel_URLForResource_withExtension_subdirectory_inBundleWithURL_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        bundleURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray URLsForResourcesWithExtension_subdirectory_inBundleWithURL_(
+      AVFAudio _lib, NSString? ext, NSString? subpath, NSURL? bundleURL) {
+    final _ret = _lib._objc_msgSend_613(
+        _lib._class_NSBundle1,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        bundleURL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_(NSString? name, NSString? ext) {
+    final _ret = _lib._objc_msgSend_614(
+        _id,
+        _lib._sel_URLForResource_withExtension_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_subdirectory_(
+      NSString? name, NSString? ext, NSString? subpath) {
+    final _ret = _lib._objc_msgSend_615(
+        _id,
+        _lib._sel_URLForResource_withExtension_subdirectory_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_subdirectory_localization_(NSString? name,
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_616(
+        _id,
+        _lib._sel_URLForResource_withExtension_subdirectory_localization_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForResourcesWithExtension_subdirectory_(
+      NSString? ext, NSString? subpath) {
+    final _ret = _lib._objc_msgSend_617(
+        _id,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForResourcesWithExtension_subdirectory_localization_(
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_618(
+        _id,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_localization_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathForResource_ofType_inDirectory_(
+      AVFAudio _lib, NSString? name, NSString? ext, NSString? bundlePath) {
+    final _ret = _lib._objc_msgSend_619(
+        _lib._class_NSBundle1,
+        _lib._sel_pathForResource_ofType_inDirectory_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        bundlePath?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray pathsForResourcesOfType_inDirectory_(
+      AVFAudio _lib, NSString? ext, NSString? bundlePath) {
+    final _ret = _lib._objc_msgSend_617(
+        _lib._class_NSBundle1,
+        _lib._sel_pathsForResourcesOfType_inDirectory_1,
+        ext?._id ?? ffi.nullptr,
+        bundlePath?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForResource_ofType_(NSString? name, NSString? ext) {
+    final _ret = _lib._objc_msgSend_324(_id, _lib._sel_pathForResource_ofType_1,
+        name?._id ?? ffi.nullptr, ext?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForResource_ofType_inDirectory_forLocalization_(NSString? name,
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_620(
+        _id,
+        _lib._sel_pathForResource_ofType_inDirectory_forLocalization_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray pathsForResourcesOfType_inDirectory_forLocalization_(
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_618(
+        _id,
+        _lib._sel_pathsForResourcesOfType_inDirectory_forLocalization_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForKey_value_table_(
+      NSString? key, NSString? value, NSString? tableName) {
+    final _ret = _lib._objc_msgSend_619(
+        _id,
+        _lib._sel_localizedStringForKey_value_table_1,
+        key?._id ?? ffi.nullptr,
+        value?._id ?? ffi.nullptr,
+        tableName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString localizedAttributedStringForKey_value_table_(
+      NSString? key, NSString? value, NSString? tableName) {
+    final _ret = _lib._objc_msgSend_641(
+        _id,
+        _lib._sel_localizedAttributedStringForKey_value_table_1,
+        key?._id ?? ffi.nullptr,
+        value?._id ?? ffi.nullptr,
+        tableName?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get bundleIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_bundleIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get infoDictionary {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_infoDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get localizedInfoDictionary {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_localizedInfoDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectForInfoDictionaryKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_objectForInfoDictionaryKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject classNamed_(NSString? className) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_classNamed_1, className?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get principalClass {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_principalClass1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get preferredLocalizations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_preferredLocalizations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get localizations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_localizations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get developmentLocalization {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_developmentLocalization1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray preferredLocalizationsFromArray_(
+      AVFAudio _lib, NSArray? localizationsArray) {
+    final _ret = _lib._objc_msgSend_63(
+        _lib._class_NSBundle1,
+        _lib._sel_preferredLocalizationsFromArray_1,
+        localizationsArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray preferredLocalizationsFromArray_forPreferences_(
+      AVFAudio _lib, NSArray? localizationsArray, NSArray? preferencesArray) {
+    final _ret = _lib._objc_msgSend_642(
+        _lib._class_NSBundle1,
+        _lib._sel_preferredLocalizationsFromArray_forPreferences_1,
+        localizationsArray?._id ?? ffi.nullptr,
+        preferencesArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get executableArchitectures {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_executableArchitectures1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setPreservationPriority_forTags_(double priority, NSSet? tags) {
+    return _lib._objc_msgSend_643(
+        _id,
+        _lib._sel_setPreservationPriority_forTags_1,
+        priority,
+        tags?._id ?? ffi.nullptr);
+  }
+
+  double preservationPriorityForTag_(NSString? tag) {
+    return _lib._objc_msgSend_269(
+        _id, _lib._sel_preservationPriorityForTag_1, tag?._id ?? ffi.nullptr);
+  }
+
+  static NSBundle new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSBundle1, _lib._sel_new1);
+    return NSBundle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSBundle alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSBundle1, _lib._sel_alloc1);
+    return NSBundle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSBundle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSBundle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSBundle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSBundle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSBundle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSBundle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSBundle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSBundle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSBundle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSAttributedString extends NSObject {
+  NSAttributedString._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAttributedString] that points to the same underlying object as [other].
+  static NSAttributedString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAttributedString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAttributedString] that wraps the given raw object pointer.
+  static NSAttributedString castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAttributedString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAttributedString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAttributedString1);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesAtIndex_effectiveRange_(
+      int location, NSRangePointer range) {
+    final _ret = _lib._objc_msgSend_621(
+        _id, _lib._sel_attributesAtIndex_effectiveRange_1, location, range);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  NSObject attribute_atIndex_effectiveRange_(
+      NSAttributedStringKey attrName, int location, NSRangePointer range) {
+    final _ret = _lib._objc_msgSend_622(
+        _id,
+        _lib._sel_attribute_atIndex_effectiveRange_1,
+        attrName,
+        location,
+        range);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedSubstringFromRange_(NSRange range) {
+    final _ret = _lib._objc_msgSend_623(
+        _id, _lib._sel_attributedSubstringFromRange_1, range);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesAtIndex_longestEffectiveRange_inRange_(
+      int location, NSRangePointer range, NSRange rangeLimit) {
+    final _ret = _lib._objc_msgSend_624(
+        _id,
+        _lib._sel_attributesAtIndex_longestEffectiveRange_inRange_1,
+        location,
+        range,
+        rangeLimit);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject attribute_atIndex_longestEffectiveRange_inRange_(
+      NSAttributedStringKey attrName,
+      int location,
+      NSRangePointer range,
+      NSRange rangeLimit) {
+    final _ret = _lib._objc_msgSend_625(
+        _id,
+        _lib._sel_attribute_atIndex_longestEffectiveRange_inRange_1,
+        attrName,
+        location,
+        range,
+        rangeLimit);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToAttributedString_(NSAttributedString? other) {
+    return _lib._objc_msgSend_626(
+        _id, _lib._sel_isEqualToAttributedString_1, other?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString initWithString_(NSString? str) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, str?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithString_attributes_(
+      NSString? str, NSDictionary? attrs) {
+    final _ret = _lib._objc_msgSend_352(
+        _id,
+        _lib._sel_initWithString_attributes_1,
+        str?._id ?? ffi.nullptr,
+        attrs?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithAttributedString_(NSAttributedString? attrStr) {
+    final _ret = _lib._objc_msgSend_627(
+        _id, _lib._sel_initWithAttributedString_1, attrStr?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateAttributesInRange_options_usingBlock_(
+      NSRange enumerationRange, int opts, ObjCBlock26 block) {
+    return _lib._objc_msgSend_628(
+        _id,
+        _lib._sel_enumerateAttributesInRange_options_usingBlock_1,
+        enumerationRange,
+        opts,
+        block._id);
+  }
+
+  void enumerateAttribute_inRange_options_usingBlock_(
+      NSAttributedStringKey attrName,
+      NSRange enumerationRange,
+      int opts,
+      ObjCBlock27 block) {
+    return _lib._objc_msgSend_629(
+        _id,
+        _lib._sel_enumerateAttribute_inRange_options_usingBlock_1,
+        attrName,
+        enumerationRange,
+        opts,
+        block._id);
+  }
+
+  NSAttributedString initWithContentsOfMarkdownFileAtURL_options_baseURL_error_(
+      NSURL? markdownFile,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_634(
+        _id,
+        _lib._sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_1,
+        markdownFile?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithMarkdown_options_baseURL_error_(
+      NSData? markdown,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_635(
+        _id,
+        _lib._sel_initWithMarkdown_options_baseURL_error_1,
+        markdown?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithMarkdownString_options_baseURL_error_(
+      NSString? markdownString,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_636(
+        _id,
+        _lib._sel_initWithMarkdownString_options_baseURL_error_1,
+        markdownString?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithFormat_options_locale_(
+      NSAttributedString? format, int options, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_637(
+        _id,
+        _lib._sel_initWithFormat_options_locale_1,
+        format?._id ?? ffi.nullptr,
+        options,
+        locale?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithFormat_options_locale_arguments_(
+      NSAttributedString? format,
+      int options,
+      NSLocale? locale,
+      ffi.Pointer<__va_list_tag> arguments) {
+    final _ret = _lib._objc_msgSend_638(
+        _id,
+        _lib._sel_initWithFormat_options_locale_arguments_1,
+        format?._id ?? ffi.nullptr,
+        options,
+        locale?._id ?? ffi.nullptr,
+        arguments);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString localizedAttributedStringWithFormat_(
+      AVFAudio _lib, NSAttributedString? format) {
+    final _ret = _lib._objc_msgSend_627(
+        _lib._class_NSAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_1,
+        format?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString localizedAttributedStringWithFormat_options_(
+      AVFAudio _lib, NSAttributedString? format, int options) {
+    final _ret = _lib._objc_msgSend_639(
+        _lib._class_NSAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_options_1,
+        format?._id ?? ffi.nullptr,
+        options);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedStringByInflectingString() {
+    final _ret = _lib._objc_msgSend_640(
+        _id, _lib._sel_attributedStringByInflectingString1);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSAttributedString1, _lib._sel_new1);
+    return NSAttributedString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSAttributedString alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSAttributedString1, _lib._sel_alloc1);
+    return NSAttributedString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSAttributedString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAttributedString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAttributedString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAttributedString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSAttributedString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSAttributedStringKey = ffi.Pointer<ObjCObject>;
+
+abstract class NSAttributedStringEnumerationOptions {
+  static const int NSAttributedStringEnumerationReverse = 2;
+  static const int
+      NSAttributedStringEnumerationLongestEffectiveRangeNotRequired = 1048576;
+}
+
+void _ObjCBlock26_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock26_closureRegistry = <int, Function>{};
+int _ObjCBlock26_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock26_registerClosure(Function fn) {
+  final id = ++_ObjCBlock26_closureRegistryIndex;
+  _ObjCBlock26_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock26_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock26_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock26 extends _ObjCBlockBase {
+  ObjCBlock26._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock26.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock26_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock26.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock26_closureTrampoline)
+                    .cast(),
+                _ObjCBlock26_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock27_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock27_closureRegistry = <int, Function>{};
+int _ObjCBlock27_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock27_registerClosure(Function fn) {
+  final id = ++_ObjCBlock27_closureRegistryIndex;
+  _ObjCBlock27_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock27_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock27_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock27 extends _ObjCBlockBase {
+  ObjCBlock27._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock27.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock27_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock27.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock27_closureTrampoline)
+                    .cast(),
+                _ObjCBlock27_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSAttributedStringMarkdownParsingOptions extends NSObject {
+  NSAttributedStringMarkdownParsingOptions._(
+      ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAttributedStringMarkdownParsingOptions] that points to the same underlying object as [other].
+  static NSAttributedStringMarkdownParsingOptions
+      castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAttributedStringMarkdownParsingOptions._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAttributedStringMarkdownParsingOptions] that wraps the given raw object pointer.
+  static NSAttributedStringMarkdownParsingOptions castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAttributedStringMarkdownParsingOptions._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAttributedStringMarkdownParsingOptions].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAttributedStringMarkdownParsingOptions1);
+  }
+
+  @override
+  NSAttributedStringMarkdownParsingOptions init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  bool get allowsExtendedAttributes {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExtendedAttributes1);
+  }
+
+  set allowsExtendedAttributes(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsExtendedAttributes_1, value);
+  }
+
+  int get interpretedSyntax {
+    return _lib._objc_msgSend_630(_id, _lib._sel_interpretedSyntax1);
+  }
+
+  set interpretedSyntax(int value) {
+    _lib._objc_msgSend_631(_id, _lib._sel_setInterpretedSyntax_1, value);
+  }
+
+  int get failurePolicy {
+    return _lib._objc_msgSend_632(_id, _lib._sel_failurePolicy1);
+  }
+
+  set failurePolicy(int value) {
+    _lib._objc_msgSend_633(_id, _lib._sel_setFailurePolicy_1, value);
+  }
+
+  NSString? get languageCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_languageCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set languageCode(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLanguageCode_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSAttributedStringMarkdownParsingOptions new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1, _lib._sel_new1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSAttributedStringMarkdownParsingOptions alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_alloc1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1,
+        aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSAttributedStringMarkdownInterpretedSyntax {
+  static const int NSAttributedStringMarkdownInterpretedSyntaxFull = 0;
+  static const int NSAttributedStringMarkdownInterpretedSyntaxInlineOnly = 1;
+  static const int
+      NSAttributedStringMarkdownInterpretedSyntaxInlineOnlyPreservingWhitespace =
+      2;
+}
+
+abstract class NSAttributedStringMarkdownParsingFailurePolicy {
+  static const int NSAttributedStringMarkdownParsingFailureReturnError = 0;
+  static const int
+      NSAttributedStringMarkdownParsingFailureReturnPartiallyParsedIfPossible =
+      1;
+}
+
+abstract class NSAttributedStringFormattingOptions {
+  static const int
+      NSAttributedStringFormattingInsertArgumentAttributesWithoutMerging = 1;
+  static const int NSAttributedStringFormattingApplyReplacementIndexAttribute =
+      2;
+}
+
+class NSMutableAttributedString extends NSAttributedString {
+  NSMutableAttributedString._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableAttributedString] that points to the same underlying object as [other].
+  static NSMutableAttributedString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableAttributedString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableAttributedString] that wraps the given raw object pointer.
+  static NSMutableAttributedString castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableAttributedString._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableAttributedString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableAttributedString1);
+  }
+
+  void replaceCharactersInRange_withString_(NSRange range, NSString? str) {
+    return _lib._objc_msgSend_603(
+        _id,
+        _lib._sel_replaceCharactersInRange_withString_1,
+        range,
+        str?._id ?? ffi.nullptr);
+  }
+
+  void setAttributes_range_(NSDictionary? attrs, NSRange range) {
+    return _lib._objc_msgSend_644(
+        _id, _lib._sel_setAttributes_range_1, attrs?._id ?? ffi.nullptr, range);
+  }
+
+  NSMutableString? get mutableString {
+    final _ret = _lib._objc_msgSend_645(_id, _lib._sel_mutableString1);
+    return _ret.address == 0
+        ? null
+        : NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addAttribute_value_range_(
+      NSAttributedStringKey name, NSObject value, NSRange range) {
+    return _lib._objc_msgSend_646(
+        _id, _lib._sel_addAttribute_value_range_1, name, value._id, range);
+  }
+
+  void addAttributes_range_(NSDictionary? attrs, NSRange range) {
+    return _lib._objc_msgSend_644(
+        _id, _lib._sel_addAttributes_range_1, attrs?._id ?? ffi.nullptr, range);
+  }
+
+  void removeAttribute_range_(NSAttributedStringKey name, NSRange range) {
+    return _lib._objc_msgSend_647(
+        _id, _lib._sel_removeAttribute_range_1, name, range);
+  }
+
+  void replaceCharactersInRange_withAttributedString_(
+      NSRange range, NSAttributedString? attrString) {
+    return _lib._objc_msgSend_648(
+        _id,
+        _lib._sel_replaceCharactersInRange_withAttributedString_1,
+        range,
+        attrString?._id ?? ffi.nullptr);
+  }
+
+  void insertAttributedString_atIndex_(
+      NSAttributedString? attrString, int loc) {
+    return _lib._objc_msgSend_649(
+        _id,
+        _lib._sel_insertAttributedString_atIndex_1,
+        attrString?._id ?? ffi.nullptr,
+        loc);
+  }
+
+  void appendAttributedString_(NSAttributedString? attrString) {
+    return _lib._objc_msgSend_650(_id, _lib._sel_appendAttributedString_1,
+        attrString?._id ?? ffi.nullptr);
+  }
+
+  void deleteCharactersInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(
+        _id, _lib._sel_deleteCharactersInRange_1, range);
+  }
+
+  void setAttributedString_(NSAttributedString? attrString) {
+    return _lib._objc_msgSend_650(
+        _id, _lib._sel_setAttributedString_1, attrString?._id ?? ffi.nullptr);
+  }
+
+  void beginEditing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_beginEditing1);
+  }
+
+  void endEditing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_endEditing1);
+  }
+
+  void appendLocalizedFormat_(NSAttributedString? format) {
+    return _lib._objc_msgSend_650(
+        _id, _lib._sel_appendLocalizedFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableAttributedString localizedAttributedStringWithFormat_(
+      AVFAudio _lib, NSAttributedString? format) {
+    final _ret = _lib._objc_msgSend_627(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_1,
+        format?._id ?? ffi.nullptr);
+    return NSMutableAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableAttributedString localizedAttributedStringWithFormat_options_(
+      AVFAudio _lib, NSAttributedString? format, int options) {
+    final _ret = _lib._objc_msgSend_639(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_options_1,
+        format?._id ?? ffi.nullptr,
+        options);
+    return NSMutableAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableAttributedString new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableAttributedString1, _lib._sel_new1);
+    return NSMutableAttributedString._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSMutableAttributedString alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableAttributedString1, _lib._sel_alloc1);
+    return NSMutableAttributedString._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableAttributedString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableAttributedString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableAttributedString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSMutableAttributedString1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDateFormatter extends NSFormatter {
+  NSDateFormatter._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDateFormatter] that points to the same underlying object as [other].
+  static NSDateFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDateFormatter._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDateFormatter] that wraps the given raw object pointer.
+  static NSDateFormatter castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDateFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDateFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDateFormatter1);
+  }
+
+  int get formattingContext {
+    return _lib._objc_msgSend_655(_id, _lib._sel_formattingContext1);
+  }
+
+  set formattingContext(int value) {
+    _lib._objc_msgSend_656(_id, _lib._sel_setFormattingContext_1, value);
+  }
+
+  bool getObjectValue_forString_range_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<NSRange> rangep,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_657(
+        _id,
+        _lib._sel_getObjectValue_forString_range_error_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        rangep,
+        error);
+  }
+
+  NSString stringFromDate_(NSDate? date) {
+    final _ret = _lib._objc_msgSend_161(
+        _id, _lib._sel_stringFromDate_1, date?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateFromString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_496(
+        _id, _lib._sel_dateFromString_1, string?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringFromDate_dateStyle_timeStyle_(
+      AVFAudio _lib, NSDate? date, int dstyle, int tstyle) {
+    final _ret = _lib._objc_msgSend_658(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_localizedStringFromDate_dateStyle_timeStyle_1,
+        date?._id ?? ffi.nullptr,
+        dstyle,
+        tstyle);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString dateFormatFromTemplate_options_locale_(
+      AVFAudio _lib, NSString? tmplate, int opts, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_659(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_dateFormatFromTemplate_options_locale_1,
+        tmplate?._id ?? ffi.nullptr,
+        opts,
+        locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultFormatterBehavior(AVFAudio _lib) {
+    return _lib._objc_msgSend_660(
+        _lib._class_NSDateFormatter1, _lib._sel_defaultFormatterBehavior1);
+  }
+
+  static void setDefaultFormatterBehavior(AVFAudio _lib, int value) {
+    _lib._objc_msgSend_661(_lib._class_NSDateFormatter1,
+        _lib._sel_setDefaultFormatterBehavior_1, value);
+  }
+
+  void setLocalizedDateFormatFromTemplate_(NSString? dateFormatTemplate) {
+    return _lib._objc_msgSend_186(
+        _id,
+        _lib._sel_setLocalizedDateFormatFromTemplate_1,
+        dateFormatTemplate?._id ?? ffi.nullptr);
+  }
+
+  NSString? get dateFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dateFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set dateFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setDateFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get dateStyle {
+    return _lib._objc_msgSend_662(_id, _lib._sel_dateStyle1);
+  }
+
+  set dateStyle(int value) {
+    _lib._objc_msgSend_663(_id, _lib._sel_setDateStyle_1, value);
+  }
+
+  int get timeStyle {
+    return _lib._objc_msgSend_662(_id, _lib._sel_timeStyle1);
+  }
+
+  set timeStyle(int value) {
+    _lib._objc_msgSend_663(_id, _lib._sel_setTimeStyle_1, value);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get generatesCalendarDates {
+    return _lib._objc_msgSend_12(_id, _lib._sel_generatesCalendarDates1);
+  }
+
+  set generatesCalendarDates(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setGeneratesCalendarDates_1, value);
+  }
+
+  int get formatterBehavior {
+    return _lib._objc_msgSend_660(_id, _lib._sel_formatterBehavior1);
+  }
+
+  set formatterBehavior(int value) {
+    _lib._objc_msgSend_661(_id, _lib._sel_setFormatterBehavior_1, value);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSCalendar? get calendar {
+    final _ret = _lib._objc_msgSend_665(_id, _lib._sel_calendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  set calendar(NSCalendar? value) {
+    _lib._objc_msgSend_671(
+        _id, _lib._sel_setCalendar_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get lenient {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLenient1);
+  }
+
+  set lenient(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLenient_1, value);
+  }
+
+  NSDate? get twoDigitStartDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_twoDigitStartDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set twoDigitStartDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setTwoDigitStartDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDate? get defaultDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_defaultDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set defaultDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setDefaultDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get eraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_eraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set eraSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setEraSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get monthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_monthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set monthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get weekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_weekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set weekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get AMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_AMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set AMSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setAMSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get PMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_PMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set PMSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPMSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get longEraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_longEraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set longEraSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setLongEraSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setVeryShortMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_standaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setStandaloneMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneMonthSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_veryShortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortStandaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setVeryShortStandaloneMonthSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setVeryShortWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortStandaloneWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(
+        _id, _lib._sel_veryShortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortStandaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id,
+        _lib._sel_setVeryShortStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get quarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_quarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set quarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setQuarterSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortQuarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortQuarterSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setStandaloneQuarterSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneQuarterSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSDate? get gregorianStartDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_gregorianStartDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set gregorianStartDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setGregorianStartDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get doesRelativeDateFormatting {
+    return _lib._objc_msgSend_12(_id, _lib._sel_doesRelativeDateFormatting1);
+  }
+
+  set doesRelativeDateFormatting(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setDoesRelativeDateFormatting_1, value);
+  }
+
+  NSObject initWithDateFormat_allowNaturalLanguage_(
+      NSString? format, bool flag) {
+    final _ret = _lib._objc_msgSend_29(
+        _id,
+        _lib._sel_initWithDateFormat_allowNaturalLanguage_1,
+        format?._id ?? ffi.nullptr,
+        flag);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool allowsNaturalLanguage() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsNaturalLanguage1);
+  }
+
+  static NSDateFormatter new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateFormatter1, _lib._sel_new1);
+    return NSDateFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDateFormatter alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateFormatter1, _lib._sel_alloc1);
+    return NSDateFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDateFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDateFormatter1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDateFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDateFormatter1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDateFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSFormatter extends NSObject {
+  NSFormatter._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFormatter] that points to the same underlying object as [other].
+  static NSFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFormatter._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFormatter] that wraps the given raw object pointer.
+  static NSFormatter castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFormatter1);
+  }
+
+  NSString stringForObjectValue_(NSObject obj) {
+    final _ret =
+        _lib._objc_msgSend_65(_id, _lib._sel_stringForObjectValue_1, obj._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedStringForObjectValue_withDefaultAttributes_(
+      NSObject obj, NSDictionary? attrs) {
+    final _ret = _lib._objc_msgSend_651(
+        _id,
+        _lib._sel_attributedStringForObjectValue_withDefaultAttributes_1,
+        obj._id,
+        attrs?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString editingStringForObjectValue_(NSObject obj) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_editingStringForObjectValue_1, obj._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getObjectValue_forString_errorDescription_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_652(
+        _id,
+        _lib._sel_getObjectValue_forString_errorDescription_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool isPartialStringValid_newEditingString_errorDescription_(
+      NSString? partialString,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> newString,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_653(
+        _id,
+        _lib._sel_isPartialStringValid_newEditingString_errorDescription_1,
+        partialString?._id ?? ffi.nullptr,
+        newString,
+        error);
+  }
+
+  bool
+      isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_(
+          ffi.Pointer<ffi.Pointer<ObjCObject>> partialStringPtr,
+          NSRangePointer proposedSelRangePtr,
+          NSString? origString,
+          NSRange origSelRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_654(
+        _id,
+        _lib._sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_1,
+        partialStringPtr,
+        proposedSelRangePtr,
+        origString?._id ?? ffi.nullptr,
+        origSelRange,
+        error);
+  }
+
+  static NSFormatter new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSFormatter1, _lib._sel_new1);
+    return NSFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFormatter alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFormatter1, _lib._sel_alloc1);
+    return NSFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFormatter1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFormatter1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSFormattingContext {
+  static const int NSFormattingContextUnknown = 0;
+  static const int NSFormattingContextDynamic = 1;
+  static const int NSFormattingContextStandalone = 2;
+  static const int NSFormattingContextListItem = 3;
+  static const int NSFormattingContextBeginningOfSentence = 4;
+  static const int NSFormattingContextMiddleOfSentence = 5;
+}
+
+abstract class NSDateFormatterStyle {
+  static const int NSDateFormatterNoStyle = 0;
+  static const int NSDateFormatterShortStyle = 1;
+  static const int NSDateFormatterMediumStyle = 2;
+  static const int NSDateFormatterLongStyle = 3;
+  static const int NSDateFormatterFullStyle = 4;
+}
+
+abstract class NSDateFormatterBehavior {
+  static const int NSDateFormatterBehaviorDefault = 0;
+  static const int NSDateFormatterBehavior10_0 = 1000;
+  static const int NSDateFormatterBehavior10_4 = 1040;
+}
+
+class NSCalendar extends NSObject {
+  NSCalendar._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCalendar] that points to the same underlying object as [other].
+  static NSCalendar castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCalendar._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCalendar] that wraps the given raw object pointer.
+  static NSCalendar castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCalendar._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCalendar].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSCalendar1);
+  }
+
+  static NSCalendar? getCurrentCalendar(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_665(
+        _lib._class_NSCalendar1, _lib._sel_currentCalendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendar? getAutoupdatingCurrentCalendar(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_665(
+        _lib._class_NSCalendar1, _lib._sel_autoupdatingCurrentCalendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendar calendarWithIdentifier_(
+      AVFAudio _lib, NSCalendarIdentifier calendarIdentifierConstant) {
+    final _ret = _lib._objc_msgSend_666(_lib._class_NSCalendar1,
+        _lib._sel_calendarWithIdentifier_1, calendarIdentifierConstant);
+    return NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSCalendar init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCalendarIdentifier_(NSCalendarIdentifier ident) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithCalendarIdentifier_1, ident);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarIdentifier get calendarIdentifier {
+    return _lib._objc_msgSend_20(_id, _lib._sel_calendarIdentifier1);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get firstWeekday {
+    return _lib._objc_msgSend_10(_id, _lib._sel_firstWeekday1);
+  }
+
+  set firstWeekday(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setFirstWeekday_1, value);
+  }
+
+  int get minimumDaysInFirstWeek {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumDaysInFirstWeek1);
+  }
+
+  set minimumDaysInFirstWeek(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumDaysInFirstWeek_1, value);
+  }
+
+  NSArray? get eraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_eraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get longEraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_longEraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get monthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_monthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_standaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_veryShortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get weekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_weekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortStandaloneWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(
+        _id, _lib._sel_veryShortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get quarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_quarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortQuarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get AMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_AMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get PMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_PMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange minimumRangeOfUnit_(int unit) {
+    return _lib._objc_msgSend_667(_id, _lib._sel_minimumRangeOfUnit_1, unit);
+  }
+
+  NSRange maximumRangeOfUnit_(int unit) {
+    return _lib._objc_msgSend_667(_id, _lib._sel_maximumRangeOfUnit_1, unit);
+  }
+
+  NSRange rangeOfUnit_inUnit_forDate_(int smaller, int larger, NSDate? date) {
+    return _lib._objc_msgSend_668(_id, _lib._sel_rangeOfUnit_inUnit_forDate_1,
+        smaller, larger, date?._id ?? ffi.nullptr);
+  }
+
+  int ordinalityOfUnit_inUnit_forDate_(int smaller, int larger, NSDate? date) {
+    return _lib._objc_msgSend_669(
+        _id,
+        _lib._sel_ordinalityOfUnit_inUnit_forDate_1,
+        smaller,
+        larger,
+        date?._id ?? ffi.nullptr);
+  }
+
+  bool rangeOfUnit_startDate_interval_forDate_(
+      int unit,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      NSDate? date) {
+    return _lib._objc_msgSend_670(
+        _id,
+        _lib._sel_rangeOfUnit_startDate_interval_forDate_1,
+        unit,
+        datep,
+        tip,
+        date?._id ?? ffi.nullptr);
+  }
+
+  NSDate dateFromComponents_(NSDateComponents? comps) {
+    final _ret = _lib._objc_msgSend_675(
+        _id, _lib._sel_dateFromComponents_1, comps?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents components_fromDate_(int unitFlags, NSDate? date) {
+    final _ret = _lib._objc_msgSend_676(_id, _lib._sel_components_fromDate_1,
+        unitFlags, date?._id ?? ffi.nullptr);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingComponents_toDate_options_(
+      NSDateComponents? comps, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_677(
+        _id,
+        _lib._sel_dateByAddingComponents_toDate_options_1,
+        comps?._id ?? ffi.nullptr,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents components_fromDate_toDate_options_(
+      int unitFlags, NSDate? startingDate, NSDate? resultDate, int opts) {
+    final _ret = _lib._objc_msgSend_678(
+        _id,
+        _lib._sel_components_fromDate_toDate_options_1,
+        unitFlags,
+        startingDate?._id ?? ffi.nullptr,
+        resultDate?._id ?? ffi.nullptr,
+        opts);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getEra_year_month_day_fromDate_(
+      ffi.Pointer<NSInteger> eraValuePointer,
+      ffi.Pointer<NSInteger> yearValuePointer,
+      ffi.Pointer<NSInteger> monthValuePointer,
+      ffi.Pointer<NSInteger> dayValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getEra_year_month_day_fromDate_1,
+        eraValuePointer,
+        yearValuePointer,
+        monthValuePointer,
+        dayValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  void getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_(
+      ffi.Pointer<NSInteger> eraValuePointer,
+      ffi.Pointer<NSInteger> yearValuePointer,
+      ffi.Pointer<NSInteger> weekValuePointer,
+      ffi.Pointer<NSInteger> weekdayValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_1,
+        eraValuePointer,
+        yearValuePointer,
+        weekValuePointer,
+        weekdayValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  void getHour_minute_second_nanosecond_fromDate_(
+      ffi.Pointer<NSInteger> hourValuePointer,
+      ffi.Pointer<NSInteger> minuteValuePointer,
+      ffi.Pointer<NSInteger> secondValuePointer,
+      ffi.Pointer<NSInteger> nanosecondValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getHour_minute_second_nanosecond_fromDate_1,
+        hourValuePointer,
+        minuteValuePointer,
+        secondValuePointer,
+        nanosecondValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  int component_fromDate_(int unit, NSDate? date) {
+    return _lib._objc_msgSend_680(
+        _id, _lib._sel_component_fromDate_1, unit, date?._id ?? ffi.nullptr);
+  }
+
+  NSDate dateWithEra_year_month_day_hour_minute_second_nanosecond_(
+      int eraValue,
+      int yearValue,
+      int monthValue,
+      int dayValue,
+      int hourValue,
+      int minuteValue,
+      int secondValue,
+      int nanosecondValue) {
+    final _ret = _lib._objc_msgSend_681(
+        _id,
+        _lib._sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_1,
+        eraValue,
+        yearValue,
+        monthValue,
+        dayValue,
+        hourValue,
+        minuteValue,
+        secondValue,
+        nanosecondValue);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate
+      dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_(
+          int eraValue,
+          int yearValue,
+          int weekValue,
+          int weekdayValue,
+          int hourValue,
+          int minuteValue,
+          int secondValue,
+          int nanosecondValue) {
+    final _ret = _lib._objc_msgSend_681(
+        _id,
+        _lib._sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_1,
+        eraValue,
+        yearValue,
+        weekValue,
+        weekdayValue,
+        hourValue,
+        minuteValue,
+        secondValue,
+        nanosecondValue);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate startOfDayForDate_(NSDate? date) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_startOfDayForDate_1, date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents componentsInTimeZone_fromDate_(
+      NSTimeZone? timezone, NSDate? date) {
+    final _ret = _lib._objc_msgSend_682(
+        _id,
+        _lib._sel_componentsInTimeZone_fromDate_1,
+        timezone?._id ?? ffi.nullptr,
+        date?._id ?? ffi.nullptr);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compareDate_toDate_toUnitGranularity_(
+      NSDate? date1, NSDate? date2, int unit) {
+    return _lib._objc_msgSend_683(
+        _id,
+        _lib._sel_compareDate_toDate_toUnitGranularity_1,
+        date1?._id ?? ffi.nullptr,
+        date2?._id ?? ffi.nullptr,
+        unit);
+  }
+
+  bool isDate_equalToDate_toUnitGranularity_(
+      NSDate? date1, NSDate? date2, int unit) {
+    return _lib._objc_msgSend_684(
+        _id,
+        _lib._sel_isDate_equalToDate_toUnitGranularity_1,
+        date1?._id ?? ffi.nullptr,
+        date2?._id ?? ffi.nullptr,
+        unit);
+  }
+
+  bool isDate_inSameDayAsDate_(NSDate? date1, NSDate? date2) {
+    return _lib._objc_msgSend_685(_id, _lib._sel_isDate_inSameDayAsDate_1,
+        date1?._id ?? ffi.nullptr, date2?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInToday_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInToday_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInYesterday_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInYesterday_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInTomorrow_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInTomorrow_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInWeekend_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInWeekend_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool rangeOfWeekendStartDate_interval_containingDate_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      NSDate? date) {
+    return _lib._objc_msgSend_686(
+        _id,
+        _lib._sel_rangeOfWeekendStartDate_interval_containingDate_1,
+        datep,
+        tip,
+        date?._id ?? ffi.nullptr);
+  }
+
+  bool nextWeekendStartDate_interval_options_afterDate_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      int options,
+      NSDate? date) {
+    return _lib._objc_msgSend_687(
+        _id,
+        _lib._sel_nextWeekendStartDate_interval_options_afterDate_1,
+        datep,
+        tip,
+        options,
+        date?._id ?? ffi.nullptr);
+  }
+
+  NSDateComponents components_fromDateComponents_toDateComponents_options_(
+      int unitFlags,
+      NSDateComponents? startingDateComp,
+      NSDateComponents? resultDateComp,
+      int options) {
+    final _ret = _lib._objc_msgSend_688(
+        _id,
+        _lib._sel_components_fromDateComponents_toDateComponents_options_1,
+        unitFlags,
+        startingDateComp?._id ?? ffi.nullptr,
+        resultDateComp?._id ?? ffi.nullptr,
+        options);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingUnit_value_toDate_options_(
+      int unit, int value, NSDate? date, int options) {
+    final _ret = _lib._objc_msgSend_689(
+        _id,
+        _lib._sel_dateByAddingUnit_value_toDate_options_1,
+        unit,
+        value,
+        date?._id ?? ffi.nullptr,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_(
+      NSDate? start, NSDateComponents? comps, int opts, ObjCBlock28 block) {
+    return _lib._objc_msgSend_690(
+        _id,
+        _lib._sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_1,
+        start?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  NSDate nextDateAfterDate_matchingComponents_options_(
+      NSDate? date, NSDateComponents? comps, int options) {
+    final _ret = _lib._objc_msgSend_691(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingComponents_options_1,
+        date?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate nextDateAfterDate_matchingUnit_value_options_(
+      NSDate? date, int unit, int value, int options) {
+    final _ret = _lib._objc_msgSend_692(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingUnit_value_options_1,
+        date?._id ?? ffi.nullptr,
+        unit,
+        value,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate nextDateAfterDate_matchingHour_minute_second_options_(NSDate? date,
+      int hourValue, int minuteValue, int secondValue, int options) {
+    final _ret = _lib._objc_msgSend_693(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingHour_minute_second_options_1,
+        date?._id ?? ffi.nullptr,
+        hourValue,
+        minuteValue,
+        secondValue,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateBySettingUnit_value_ofDate_options_(
+      int unit, int v, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_689(
+        _id,
+        _lib._sel_dateBySettingUnit_value_ofDate_options_1,
+        unit,
+        v,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateBySettingHour_minute_second_ofDate_options_(
+      int h, int m, int s, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_694(
+        _id,
+        _lib._sel_dateBySettingHour_minute_second_ofDate_options_1,
+        h,
+        m,
+        s,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool date_matchesComponents_(NSDate? date, NSDateComponents? components) {
+    return _lib._objc_msgSend_695(_id, _lib._sel_date_matchesComponents_1,
+        date?._id ?? ffi.nullptr, components?._id ?? ffi.nullptr);
+  }
+
+  static NSCalendar new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCalendar1, _lib._sel_new1);
+    return NSCalendar._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCalendar alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendar1, _lib._sel_alloc1);
+    return NSCalendar._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCalendar1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCalendar1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendar1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendar1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCalendar1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCalendar1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCalendar1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCalendar1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendar1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSCalendarIdentifier = ffi.Pointer<ObjCObject>;
+
+abstract class NSCalendarUnit {
+  static const int NSCalendarUnitEra = 2;
+  static const int NSCalendarUnitYear = 4;
+  static const int NSCalendarUnitMonth = 8;
+  static const int NSCalendarUnitDay = 16;
+  static const int NSCalendarUnitHour = 32;
+  static const int NSCalendarUnitMinute = 64;
+  static const int NSCalendarUnitSecond = 128;
+  static const int NSCalendarUnitWeekday = 512;
+  static const int NSCalendarUnitWeekdayOrdinal = 1024;
+  static const int NSCalendarUnitQuarter = 2048;
+  static const int NSCalendarUnitWeekOfMonth = 4096;
+  static const int NSCalendarUnitWeekOfYear = 8192;
+  static const int NSCalendarUnitYearForWeekOfYear = 16384;
+  static const int NSCalendarUnitNanosecond = 32768;
+  static const int NSCalendarUnitCalendar = 1048576;
+  static const int NSCalendarUnitTimeZone = 2097152;
+  static const int NSEraCalendarUnit = 2;
+  static const int NSYearCalendarUnit = 4;
+  static const int NSMonthCalendarUnit = 8;
+  static const int NSDayCalendarUnit = 16;
+  static const int NSHourCalendarUnit = 32;
+  static const int NSMinuteCalendarUnit = 64;
+  static const int NSSecondCalendarUnit = 128;
+  static const int NSWeekCalendarUnit = 256;
+  static const int NSWeekdayCalendarUnit = 512;
+  static const int NSWeekdayOrdinalCalendarUnit = 1024;
+  static const int NSQuarterCalendarUnit = 2048;
+  static const int NSWeekOfMonthCalendarUnit = 4096;
+  static const int NSWeekOfYearCalendarUnit = 8192;
+  static const int NSYearForWeekOfYearCalendarUnit = 16384;
+  static const int NSCalendarCalendarUnit = 1048576;
+  static const int NSTimeZoneCalendarUnit = 2097152;
+}
+
+class NSDateComponents extends NSObject {
+  NSDateComponents._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDateComponents] that points to the same underlying object as [other].
+  static NSDateComponents castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDateComponents._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDateComponents] that wraps the given raw object pointer.
+  static NSDateComponents castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDateComponents._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDateComponents].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDateComponents1);
+  }
+
+  NSCalendar? get calendar {
+    final _ret = _lib._objc_msgSend_665(_id, _lib._sel_calendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  set calendar(NSCalendar? value) {
+    _lib._objc_msgSend_671(
+        _id, _lib._sel_setCalendar_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get era {
+    return _lib._objc_msgSend_78(_id, _lib._sel_era1);
+  }
+
+  set era(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setEra_1, value);
+  }
+
+  int get year {
+    return _lib._objc_msgSend_78(_id, _lib._sel_year1);
+  }
+
+  set year(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setYear_1, value);
+  }
+
+  int get month {
+    return _lib._objc_msgSend_78(_id, _lib._sel_month1);
+  }
+
+  set month(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMonth_1, value);
+  }
+
+  int get day {
+    return _lib._objc_msgSend_78(_id, _lib._sel_day1);
+  }
+
+  set day(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setDay_1, value);
+  }
+
+  int get hour {
+    return _lib._objc_msgSend_78(_id, _lib._sel_hour1);
+  }
+
+  set hour(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setHour_1, value);
+  }
+
+  int get minute {
+    return _lib._objc_msgSend_78(_id, _lib._sel_minute1);
+  }
+
+  set minute(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMinute_1, value);
+  }
+
+  int get second {
+    return _lib._objc_msgSend_78(_id, _lib._sel_second1);
+  }
+
+  set second(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setSecond_1, value);
+  }
+
+  int get nanosecond {
+    return _lib._objc_msgSend_78(_id, _lib._sel_nanosecond1);
+  }
+
+  set nanosecond(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setNanosecond_1, value);
+  }
+
+  int get weekday {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekday1);
+  }
+
+  set weekday(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekday_1, value);
+  }
+
+  int get weekdayOrdinal {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekdayOrdinal1);
+  }
+
+  set weekdayOrdinal(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekdayOrdinal_1, value);
+  }
+
+  int get quarter {
+    return _lib._objc_msgSend_78(_id, _lib._sel_quarter1);
+  }
+
+  set quarter(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setQuarter_1, value);
+  }
+
+  int get weekOfMonth {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekOfMonth1);
+  }
+
+  set weekOfMonth(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekOfMonth_1, value);
+  }
+
+  int get weekOfYear {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekOfYear1);
+  }
+
+  set weekOfYear(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekOfYear_1, value);
+  }
+
+  int get yearForWeekOfYear {
+    return _lib._objc_msgSend_78(_id, _lib._sel_yearForWeekOfYear1);
+  }
+
+  set yearForWeekOfYear(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setYearForWeekOfYear_1, value);
+  }
+
+  bool get leapMonth {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLeapMonth1);
+  }
+
+  set leapMonth(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLeapMonth_1, value);
+  }
+
+  NSDate? get date {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_date1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int week() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_week1);
+  }
+
+  void setWeek_(int v) {
+    return _lib._objc_msgSend_374(_id, _lib._sel_setWeek_1, v);
+  }
+
+  void setValue_forComponent_(int value, int unit) {
+    return _lib._objc_msgSend_672(
+        _id, _lib._sel_setValue_forComponent_1, value, unit);
+  }
+
+  int valueForComponent_(int unit) {
+    return _lib._objc_msgSend_673(_id, _lib._sel_valueForComponent_1, unit);
+  }
+
+  bool get validDate {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValidDate1);
+  }
+
+  bool isValidDateInCalendar_(NSCalendar? calendar) {
+    return _lib._objc_msgSend_674(
+        _id, _lib._sel_isValidDateInCalendar_1, calendar?._id ?? ffi.nullptr);
+  }
+
+  static NSDateComponents new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateComponents1, _lib._sel_new1);
+    return NSDateComponents._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDateComponents alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateComponents1, _lib._sel_alloc1);
+    return NSDateComponents._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDateComponents1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDateComponents1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDateComponents1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDateComponents1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDateComponents1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDateComponents1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDateComponents1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDateComponents1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDateComponents1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSCalendarOptions {
+  static const int NSCalendarWrapComponents = 1;
+  static const int NSCalendarMatchStrictly = 2;
+  static const int NSCalendarSearchBackwards = 4;
+  static const int NSCalendarMatchPreviousTimePreservingSmallerUnits = 256;
+  static const int NSCalendarMatchNextTimePreservingSmallerUnits = 512;
+  static const int NSCalendarMatchNextTime = 1024;
+  static const int NSCalendarMatchFirst = 4096;
+  static const int NSCalendarMatchLast = 8192;
+}
+
+void _ObjCBlock28_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock28_closureRegistry = <int, Function>{};
+int _ObjCBlock28_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock28_registerClosure(Function fn) {
+  final id = ++_ObjCBlock28_closureRegistryIndex;
+  _ObjCBlock28_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock28_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock28_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock28 extends _ObjCBlockBase {
+  ObjCBlock28._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock28.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock28_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock28.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock28_closureTrampoline)
+                    .cast(),
+                _ObjCBlock28_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSNumberFormatter extends NSFormatter {
+  NSNumberFormatter._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNumberFormatter] that points to the same underlying object as [other].
+  static NSNumberFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNumberFormatter._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSNumberFormatter] that wraps the given raw object pointer.
+  static NSNumberFormatter castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNumberFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNumberFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSNumberFormatter1);
+  }
+
+  int get formattingContext {
+    return _lib._objc_msgSend_655(_id, _lib._sel_formattingContext1);
+  }
+
+  set formattingContext(int value) {
+    _lib._objc_msgSend_656(_id, _lib._sel_setFormattingContext_1, value);
+  }
+
+  bool getObjectValue_forString_range_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<NSRange> rangep,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_657(
+        _id,
+        _lib._sel_getObjectValue_forString_range_error_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        rangep,
+        error);
+  }
+
+  NSString stringFromNumber_(NSNumber? number) {
+    final _ret = _lib._objc_msgSend_697(
+        _id, _lib._sel_stringFromNumber_1, number?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber numberFromString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_698(
+        _id, _lib._sel_numberFromString_1, string?._id ?? ffi.nullptr);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringFromNumber_numberStyle_(
+      AVFAudio _lib, NSNumber? num, int nstyle) {
+    final _ret = _lib._objc_msgSend_699(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_localizedStringFromNumber_numberStyle_1,
+        num?._id ?? ffi.nullptr,
+        nstyle);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int defaultFormatterBehavior(AVFAudio _lib) {
+    return _lib._objc_msgSend_700(
+        _lib._class_NSNumberFormatter1, _lib._sel_defaultFormatterBehavior1);
+  }
+
+  static void setDefaultFormatterBehavior_(AVFAudio _lib, int behavior) {
+    return _lib._objc_msgSend_701(_lib._class_NSNumberFormatter1,
+        _lib._sel_setDefaultFormatterBehavior_1, behavior);
+  }
+
+  int get numberStyle {
+    return _lib._objc_msgSend_702(_id, _lib._sel_numberStyle1);
+  }
+
+  set numberStyle(int value) {
+    _lib._objc_msgSend_703(_id, _lib._sel_setNumberStyle_1, value);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get generatesDecimalNumbers {
+    return _lib._objc_msgSend_12(_id, _lib._sel_generatesDecimalNumbers1);
+  }
+
+  set generatesDecimalNumbers(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setGeneratesDecimalNumbers_1, value);
+  }
+
+  int get formatterBehavior {
+    return _lib._objc_msgSend_700(_id, _lib._sel_formatterBehavior1);
+  }
+
+  set formatterBehavior(int value) {
+    _lib._objc_msgSend_704(_id, _lib._sel_setFormatterBehavior_1, value);
+  }
+
+  NSString? get negativeFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNegativeValues {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNegativeValues1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNegativeValues(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForNegativeValues_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForPositiveValues {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForPositiveValues1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForPositiveValues(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForPositiveValues_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get allowsFloats {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsFloats1);
+  }
+
+  set allowsFloats(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsFloats_1, value);
+  }
+
+  NSString? get decimalSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_decimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set decimalSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setDecimalSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get alwaysShowsDecimalSeparator {
+    return _lib._objc_msgSend_12(_id, _lib._sel_alwaysShowsDecimalSeparator1);
+  }
+
+  set alwaysShowsDecimalSeparator(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAlwaysShowsDecimalSeparator_1, value);
+  }
+
+  NSString? get currencyDecimalSeparator {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_currencyDecimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyDecimalSeparator(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setCurrencyDecimalSeparator_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get usesGroupingSeparator {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesGroupingSeparator1);
+  }
+
+  set usesGroupingSeparator(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesGroupingSeparator_1, value);
+  }
+
+  NSString? get groupingSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_groupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set groupingSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setGroupingSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get zeroSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_zeroSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set zeroSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setZeroSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForZero {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForZero1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForZero(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setTextAttributesForZero_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get nilSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_nilSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set nilSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNilSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNil {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNil1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNil(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setTextAttributesForNil_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get notANumberSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_notANumberSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set notANumberSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNotANumberSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNotANumber {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNotANumber1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNotANumber(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForNotANumber_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveInfinitySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveInfinitySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveInfinitySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveInfinitySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForPositiveInfinity {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_textAttributesForPositiveInfinity1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForPositiveInfinity(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id,
+        _lib._sel_setTextAttributesForPositiveInfinity_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativeInfinitySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeInfinitySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeInfinitySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeInfinitySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNegativeInfinity {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_textAttributesForNegativeInfinity1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNegativeInfinity(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id,
+        _lib._sel_setTextAttributesForNegativeInfinity_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positivePrefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positivePrefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positivePrefix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositivePrefix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveSuffix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveSuffix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveSuffix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveSuffix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativePrefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativePrefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativePrefix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativePrefix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativeSuffix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeSuffix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeSuffix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeSuffix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencyCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencyCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyCode(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrencyCode_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrencySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get internationalCurrencySymbol {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_internationalCurrencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set internationalCurrencySymbol(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setInternationalCurrencySymbol_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get percentSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_percentSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set percentSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPercentSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get perMillSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_perMillSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set perMillSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPerMillSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get minusSign {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_minusSign1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set minusSign(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setMinusSign_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get plusSign {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_plusSign1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set plusSign(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPlusSign_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get exponentSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_exponentSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set exponentSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setExponentSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get groupingSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_groupingSize1);
+  }
+
+  set groupingSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setGroupingSize_1, value);
+  }
+
+  int get secondaryGroupingSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_secondaryGroupingSize1);
+  }
+
+  set secondaryGroupingSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setSecondaryGroupingSize_1, value);
+  }
+
+  NSNumber? get multiplier {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_multiplier1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set multiplier(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMultiplier_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get formatWidth {
+    return _lib._objc_msgSend_10(_id, _lib._sel_formatWidth1);
+  }
+
+  set formatWidth(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setFormatWidth_1, value);
+  }
+
+  NSString? get paddingCharacter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_paddingCharacter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set paddingCharacter(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPaddingCharacter_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get paddingPosition {
+    return _lib._objc_msgSend_706(_id, _lib._sel_paddingPosition1);
+  }
+
+  set paddingPosition(int value) {
+    _lib._objc_msgSend_707(_id, _lib._sel_setPaddingPosition_1, value);
+  }
+
+  int get roundingMode {
+    return _lib._objc_msgSend_708(_id, _lib._sel_roundingMode1);
+  }
+
+  set roundingMode(int value) {
+    _lib._objc_msgSend_709(_id, _lib._sel_setRoundingMode_1, value);
+  }
+
+  NSNumber? get roundingIncrement {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_roundingIncrement1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set roundingIncrement(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setRoundingIncrement_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get minimumIntegerDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumIntegerDigits1);
+  }
+
+  set minimumIntegerDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumIntegerDigits_1, value);
+  }
+
+  int get maximumIntegerDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumIntegerDigits1);
+  }
+
+  set maximumIntegerDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumIntegerDigits_1, value);
+  }
+
+  int get minimumFractionDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumFractionDigits1);
+  }
+
+  set minimumFractionDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumFractionDigits_1, value);
+  }
+
+  int get maximumFractionDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumFractionDigits1);
+  }
+
+  set maximumFractionDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumFractionDigits_1, value);
+  }
+
+  NSNumber? get minimum {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_minimum1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set minimum(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMinimum_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSNumber? get maximum {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_maximum1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set maximum(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMaximum_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencyGroupingSeparator {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_currencyGroupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyGroupingSeparator(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setCurrencyGroupingSeparator_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get lenient {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLenient1);
+  }
+
+  set lenient(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLenient_1, value);
+  }
+
+  bool get usesSignificantDigits {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesSignificantDigits1);
+  }
+
+  set usesSignificantDigits(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesSignificantDigits_1, value);
+  }
+
+  int get minimumSignificantDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumSignificantDigits1);
+  }
+
+  set minimumSignificantDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumSignificantDigits_1, value);
+  }
+
+  int get maximumSignificantDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumSignificantDigits1);
+  }
+
+  set maximumSignificantDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumSignificantDigits_1, value);
+  }
+
+  bool get partialStringValidationEnabled {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_isPartialStringValidationEnabled1);
+  }
+
+  set partialStringValidationEnabled(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setPartialStringValidationEnabled_1, value);
+  }
+
+  bool get hasThousandSeparators {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasThousandSeparators1);
+  }
+
+  set hasThousandSeparators(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHasThousandSeparators_1, value);
+  }
+
+  NSString? get thousandSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_thousandSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set thousandSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setThousandSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get localizesFormat {
+    return _lib._objc_msgSend_12(_id, _lib._sel_localizesFormat1);
+  }
+
+  set localizesFormat(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLocalizesFormat_1, value);
+  }
+
+  NSString? get format {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_format1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set format(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForZero {
+    final _ret =
+        _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForZero1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForZero(NSAttributedString? value) {
+    _lib._objc_msgSend_710(
+        _id, _lib._sel_setAttributedStringForZero_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForNil {
+    final _ret = _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForNil1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForNil(NSAttributedString? value) {
+    _lib._objc_msgSend_710(
+        _id, _lib._sel_setAttributedStringForNil_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForNotANumber {
+    final _ret =
+        _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForNotANumber1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForNotANumber(NSAttributedString? value) {
+    _lib._objc_msgSend_710(_id, _lib._sel_setAttributedStringForNotANumber_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSDecimalNumberHandler? get roundingBehavior {
+    final _ret = _lib._objc_msgSend_711(_id, _lib._sel_roundingBehavior1);
+    return _ret.address == 0
+        ? null
+        : NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  set roundingBehavior(NSDecimalNumberHandler? value) {
+    _lib._objc_msgSend_713(
+        _id, _lib._sel_setRoundingBehavior_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSNumberFormatter new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNumberFormatter1, _lib._sel_new1);
+    return NSNumberFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNumberFormatter alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNumberFormatter1, _lib._sel_alloc1);
+    return NSNumberFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNumberFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSNumberFormatter1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumberFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSNumberFormatter1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNumberFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSNumberFormatterStyle {
+  static const int NSNumberFormatterNoStyle = 0;
+  static const int NSNumberFormatterDecimalStyle = 1;
+  static const int NSNumberFormatterCurrencyStyle = 2;
+  static const int NSNumberFormatterPercentStyle = 3;
+  static const int NSNumberFormatterScientificStyle = 4;
+  static const int NSNumberFormatterSpellOutStyle = 5;
+  static const int NSNumberFormatterOrdinalStyle = 6;
+  static const int NSNumberFormatterCurrencyISOCodeStyle = 8;
+  static const int NSNumberFormatterCurrencyPluralStyle = 9;
+  static const int NSNumberFormatterCurrencyAccountingStyle = 10;
+}
+
+abstract class NSNumberFormatterBehavior {
+  static const int NSNumberFormatterBehaviorDefault = 0;
+  static const int NSNumberFormatterBehavior10_0 = 1000;
+  static const int NSNumberFormatterBehavior10_4 = 1040;
+}
+
+abstract class NSNumberFormatterPadPosition {
+  static const int NSNumberFormatterPadBeforePrefix = 0;
+  static const int NSNumberFormatterPadAfterPrefix = 1;
+  static const int NSNumberFormatterPadBeforeSuffix = 2;
+  static const int NSNumberFormatterPadAfterSuffix = 3;
+}
+
+abstract class NSNumberFormatterRoundingMode {
+  static const int NSNumberFormatterRoundCeiling = 0;
+  static const int NSNumberFormatterRoundFloor = 1;
+  static const int NSNumberFormatterRoundDown = 2;
+  static const int NSNumberFormatterRoundUp = 3;
+  static const int NSNumberFormatterRoundHalfEven = 4;
+  static const int NSNumberFormatterRoundHalfDown = 5;
+  static const int NSNumberFormatterRoundHalfUp = 6;
+}
+
+class NSDecimalNumberHandler extends NSObject {
+  NSDecimalNumberHandler._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDecimalNumberHandler] that points to the same underlying object as [other].
+  static NSDecimalNumberHandler castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDecimalNumberHandler._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDecimalNumberHandler] that wraps the given raw object pointer.
+  static NSDecimalNumberHandler castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDecimalNumberHandler._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDecimalNumberHandler].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDecimalNumberHandler1);
+  }
+
+  static NSDecimalNumberHandler? getDefaultDecimalNumberHandler(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_711(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_defaultDecimalNumberHandler1);
+    return _ret.address == 0
+        ? null
+        : NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDecimalNumberHandler
+      initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_(
+          int roundingMode,
+          int scale,
+          bool exact,
+          bool overflow,
+          bool underflow,
+          bool divideByZero) {
+    final _ret = _lib._objc_msgSend_712(
+        _id,
+        _lib._sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1,
+        roundingMode,
+        scale,
+        exact,
+        overflow,
+        underflow,
+        divideByZero);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDecimalNumberHandler
+      decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_(
+          AVFAudio _lib,
+          int roundingMode,
+          int scale,
+          bool exact,
+          bool overflow,
+          bool underflow,
+          bool divideByZero) {
+    final _ret = _lib._objc_msgSend_712(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1,
+        roundingMode,
+        scale,
+        exact,
+        overflow,
+        underflow,
+        divideByZero);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDecimalNumberHandler new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_new1);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDecimalNumberHandler alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_alloc1);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSRoundingMode {
+  static const int NSRoundPlain = 0;
+  static const int NSRoundDown = 1;
+  static const int NSRoundUp = 2;
+  static const int NSRoundBankers = 3;
+}
+
+class NSScanner extends NSObject {
+  NSScanner._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScanner] that points to the same underlying object as [other].
+  static NSScanner castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScanner._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSScanner] that wraps the given raw object pointer.
+  static NSScanner castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScanner._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScanner].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSScanner1);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get scanLocation {
+    return _lib._objc_msgSend_10(_id, _lib._sel_scanLocation1);
+  }
+
+  set scanLocation(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setScanLocation_1, value);
+  }
+
+  NSCharacterSet? get charactersToBeSkipped {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_charactersToBeSkipped1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  set charactersToBeSkipped(NSCharacterSet? value) {
+    _lib._objc_msgSend_714(
+        _id, _lib._sel_setCharactersToBeSkipped_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get caseSensitive {
+    return _lib._objc_msgSend_12(_id, _lib._sel_caseSensitive1);
+  }
+
+  set caseSensitive(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setCaseSensitive_1, value);
+  }
+
+  NSObject get locale {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_locale1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setLocale_1, value._id);
+  }
+
+  NSScanner initWithString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, string?._id ?? ffi.nullptr);
+    return NSScanner._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool scanInt_(ffi.Pointer<ffi.Int> result) {
+    return _lib._objc_msgSend_715(_id, _lib._sel_scanInt_1, result);
+  }
+
+  bool scanInteger_(ffi.Pointer<NSInteger> result) {
+    return _lib._objc_msgSend_716(_id, _lib._sel_scanInteger_1, result);
+  }
+
+  bool scanLongLong_(ffi.Pointer<ffi.LongLong> result) {
+    return _lib._objc_msgSend_717(_id, _lib._sel_scanLongLong_1, result);
+  }
+
+  bool scanUnsignedLongLong_(ffi.Pointer<ffi.UnsignedLongLong> result) {
+    return _lib._objc_msgSend_718(
+        _id, _lib._sel_scanUnsignedLongLong_1, result);
+  }
+
+  bool scanFloat_(ffi.Pointer<ffi.Float> result) {
+    return _lib._objc_msgSend_719(_id, _lib._sel_scanFloat_1, result);
+  }
+
+  bool scanDouble_(ffi.Pointer<ffi.Double> result) {
+    return _lib._objc_msgSend_720(_id, _lib._sel_scanDouble_1, result);
+  }
+
+  bool scanHexInt_(ffi.Pointer<ffi.UnsignedInt> result) {
+    return _lib._objc_msgSend_721(_id, _lib._sel_scanHexInt_1, result);
+  }
+
+  bool scanHexLongLong_(ffi.Pointer<ffi.UnsignedLongLong> result) {
+    return _lib._objc_msgSend_718(_id, _lib._sel_scanHexLongLong_1, result);
+  }
+
+  bool scanHexFloat_(ffi.Pointer<ffi.Float> result) {
+    return _lib._objc_msgSend_719(_id, _lib._sel_scanHexFloat_1, result);
+  }
+
+  bool scanHexDouble_(ffi.Pointer<ffi.Double> result) {
+    return _lib._objc_msgSend_720(_id, _lib._sel_scanHexDouble_1, result);
+  }
+
+  bool scanString_intoString_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_722(_id, _lib._sel_scanString_intoString_1,
+        string?._id ?? ffi.nullptr, result);
+  }
+
+  bool scanCharactersFromSet_intoString_(
+      NSCharacterSet? set, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_723(
+        _id,
+        _lib._sel_scanCharactersFromSet_intoString_1,
+        set?._id ?? ffi.nullptr,
+        result);
+  }
+
+  bool scanUpToString_intoString_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_722(_id, _lib._sel_scanUpToString_intoString_1,
+        string?._id ?? ffi.nullptr, result);
+  }
+
+  bool scanUpToCharactersFromSet_intoString_(
+      NSCharacterSet? set, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_723(
+        _id,
+        _lib._sel_scanUpToCharactersFromSet_intoString_1,
+        set?._id ?? ffi.nullptr,
+        result);
+  }
+
+  bool get atEnd {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAtEnd1);
+  }
+
+  static NSScanner scannerWithString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSScanner1,
+        _lib._sel_scannerWithString_1, string?._id ?? ffi.nullptr);
+    return NSScanner._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject localizedScannerWithString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSScanner1,
+        _lib._sel_localizedScannerWithString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool scanDecimal_(ffi.Pointer<NSDecimal> dcm) {
+    return _lib._objc_msgSend_724(_id, _lib._sel_scanDecimal_1, dcm);
+  }
+
+  static NSScanner new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScanner1, _lib._sel_new1);
+    return NSScanner._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScanner alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScanner1, _lib._sel_alloc1);
+    return NSScanner._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScanner1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScanner1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScanner1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScanner1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScanner1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScanner1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScanner1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSScanner1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScanner1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDecimal extends ffi.Opaque {}
+
+class NSException extends NSObject {
+  NSException._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSException] that points to the same underlying object as [other].
+  static NSException castFrom<T extends _ObjCWrapper>(T other) {
+    return NSException._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSException] that wraps the given raw object pointer.
+  static NSException castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSException._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSException].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSException1);
+  }
+
+  static NSException exceptionWithName_reason_userInfo_(AVFAudio _lib,
+      NSExceptionName name, NSString? reason, NSDictionary? userInfo) {
+    final _ret = _lib._objc_msgSend_725(
+        _lib._class_NSException1,
+        _lib._sel_exceptionWithName_reason_userInfo_1,
+        name,
+        reason?._id ?? ffi.nullptr,
+        userInfo?._id ?? ffi.nullptr);
+    return NSException._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSException initWithName_reason_userInfo_(
+      NSExceptionName aName, NSString? aReason, NSDictionary? aUserInfo) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithName_reason_userInfo_1,
+        aName,
+        aReason?._id ?? ffi.nullptr,
+        aUserInfo?._id ?? ffi.nullptr);
+    return NSException._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSExceptionName get name {
+    return _lib._objc_msgSend_20(_id, _lib._sel_name1);
+  }
+
+  NSString? get reason {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_reason1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get callStackReturnAddresses {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_callStackReturnAddresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get callStackSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_callStackSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void raise() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_raise1);
+  }
+
+  static void raise_format_(
+      AVFAudio _lib, NSExceptionName name, NSString? format) {
+    return _lib._objc_msgSend_483(_lib._class_NSException1,
+        _lib._sel_raise_format_1, name, format?._id ?? ffi.nullptr);
+  }
+
+  static void raise_format_arguments_(AVFAudio _lib, NSExceptionName name,
+      NSString? format, ffi.Pointer<__va_list_tag> argList) {
+    return _lib._objc_msgSend_726(
+        _lib._class_NSException1,
+        _lib._sel_raise_format_arguments_1,
+        name,
+        format?._id ?? ffi.nullptr,
+        argList);
+  }
+
+  static NSException new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSException1, _lib._sel_new1);
+    return NSException._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSException alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSException1, _lib._sel_alloc1);
+    return NSException._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSException1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSException1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSException1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSException1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSException1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSException1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSException1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSException1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSException1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSExceptionName = ffi.Pointer<ObjCObject>;
+
+class NSFileHandle extends NSObject {
+  NSFileHandle._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileHandle] that points to the same underlying object as [other].
+  static NSFileHandle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileHandle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileHandle] that wraps the given raw object pointer.
+  static NSFileHandle castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileHandle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileHandle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileHandle1);
+  }
+
+  NSData? get availableData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_availableData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileHandle initWithFileDescriptor_closeOnDealloc_(int fd, bool closeopt) {
+    final _ret = _lib._objc_msgSend_727(
+        _id, _lib._sel_initWithFileDescriptor_closeOnDealloc_1, fd, closeopt);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileHandle initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataToEndOfFileAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_728(
+        _id, _lib._sel_readDataToEndOfFileAndReturnError_1, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataUpToLength_error_(
+      int length, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_729(
+        _id, _lib._sel_readDataUpToLength_error_1, length, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeData_error_(
+      NSData? data, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_730(
+        _id, _lib._sel_writeData_error_1, data?._id ?? ffi.nullptr, error);
+  }
+
+  bool getOffset_error_(ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_731(
+        _id, _lib._sel_getOffset_error_1, offsetInFile, error);
+  }
+
+  bool seekToEndReturningOffset_error_(
+      ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_731(
+        _id, _lib._sel_seekToEndReturningOffset_error_1, offsetInFile, error);
+  }
+
+  bool seekToOffset_error_(
+      int offset, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_732(
+        _id, _lib._sel_seekToOffset_error_1, offset, error);
+  }
+
+  bool truncateAtOffset_error_(
+      int offset, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_732(
+        _id, _lib._sel_truncateAtOffset_error_1, offset, error);
+  }
+
+  bool synchronizeAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_synchronizeAndReturnError_1, error);
+  }
+
+  bool closeAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_closeAndReturnError_1, error);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardInput(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardInput1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardOutput(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardOutput1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardError(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardError1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithNullDevice(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithNullDevice1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForReadingAtPath_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForReadingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForWritingAtPath_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForWritingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForUpdatingAtPath_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForUpdatingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForReadingFromURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForReadingFromURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForWritingToURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForWritingToURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForUpdatingURL_error_(
+      AVFAudio _lib, NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForUpdatingURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  void readInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_readInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void readInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_readInBackgroundAndNotify1);
+  }
+
+  void readToEndOfFileInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_readToEndOfFileInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void readToEndOfFileInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_readToEndOfFileInBackgroundAndNotify1);
+  }
+
+  void acceptConnectionInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_acceptConnectionInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void acceptConnectionInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_acceptConnectionInBackgroundAndNotify1);
+  }
+
+  void waitForDataInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_waitForDataInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void waitForDataInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_waitForDataInBackgroundAndNotify1);
+  }
+
+  ObjCBlock29 get readabilityHandler {
+    final _ret = _lib._objc_msgSend_735(_id, _lib._sel_readabilityHandler1);
+    return ObjCBlock29._(_ret, _lib);
+  }
+
+  set readabilityHandler(ObjCBlock29 value) {
+    _lib._objc_msgSend_736(_id, _lib._sel_setReadabilityHandler_1, value._id);
+  }
+
+  ObjCBlock29 get writeabilityHandler {
+    final _ret = _lib._objc_msgSend_735(_id, _lib._sel_writeabilityHandler1);
+    return ObjCBlock29._(_ret, _lib);
+  }
+
+  set writeabilityHandler(ObjCBlock29 value) {
+    _lib._objc_msgSend_736(_id, _lib._sel_setWriteabilityHandler_1, value._id);
+  }
+
+  NSFileHandle initWithFileDescriptor_(int fd) {
+    final _ret =
+        _lib._objc_msgSend_737(_id, _lib._sel_initWithFileDescriptor_1, fd);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get fileDescriptor {
+    return _lib._objc_msgSend_213(_id, _lib._sel_fileDescriptor1);
+  }
+
+  NSData readDataToEndOfFile() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_readDataToEndOfFile1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataOfLength_(int length) {
+    final _ret =
+        _lib._objc_msgSend_315(_id, _lib._sel_readDataOfLength_1, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void writeData_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_writeData_1, data?._id ?? ffi.nullptr);
+  }
+
+  int get offsetInFile {
+    return _lib._objc_msgSend_148(_id, _lib._sel_offsetInFile1);
+  }
+
+  int seekToEndOfFile() {
+    return _lib._objc_msgSend_148(_id, _lib._sel_seekToEndOfFile1);
+  }
+
+  void seekToFileOffset_(int offset) {
+    return _lib._objc_msgSend_738(_id, _lib._sel_seekToFileOffset_1, offset);
+  }
+
+  void truncateFileAtOffset_(int offset) {
+    return _lib._objc_msgSend_738(
+        _id, _lib._sel_truncateFileAtOffset_1, offset);
+  }
+
+  void synchronizeFile() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_synchronizeFile1);
+  }
+
+  void closeFile() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeFile1);
+  }
+
+  static NSFileHandle new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileHandle1, _lib._sel_new1);
+    return NSFileHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileHandle alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileHandle1, _lib._sel_alloc1);
+    return NSFileHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileHandle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileHandle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileHandle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileHandle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileHandle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileHandle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileHandle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock29_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock29_closureRegistry = <int, Function>{};
+int _ObjCBlock29_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock29_registerClosure(Function fn) {
+  final id = ++_ObjCBlock29_closureRegistryIndex;
+  _ObjCBlock29_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock29_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock29_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock29 extends _ObjCBlockBase {
+  ObjCBlock29._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock29.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock29_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock29.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock29_closureTrampoline)
+                    .cast(),
+                _ObjCBlock29_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSHTTPCookieStorage extends NSObject {
+  NSHTTPCookieStorage._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHTTPCookieStorage] that points to the same underlying object as [other].
+  static NSHTTPCookieStorage castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHTTPCookieStorage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSHTTPCookieStorage] that wraps the given raw object pointer.
+  static NSHTTPCookieStorage castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHTTPCookieStorage._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHTTPCookieStorage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSHTTPCookieStorage1);
+  }
+
+  static NSHTTPCookieStorage? getSharedHTTPCookieStorage(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_739(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_sharedHTTPCookieStorage1);
+    return _ret.address == 0
+        ? null
+        : NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier_(
+      AVFAudio _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_740(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_sharedCookieStorageForGroupContainerIdentifier_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get cookies {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_cookies1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCookie_(NSHTTPCookie? cookie) {
+    return _lib._objc_msgSend_743(
+        _id, _lib._sel_setCookie_1, cookie?._id ?? ffi.nullptr);
+  }
+
+  void deleteCookie_(NSHTTPCookie? cookie) {
+    return _lib._objc_msgSend_743(
+        _id, _lib._sel_deleteCookie_1, cookie?._id ?? ffi.nullptr);
+  }
+
+  void removeCookiesSinceDate_(NSDate? date) {
+    return _lib._objc_msgSend_472(
+        _id, _lib._sel_removeCookiesSinceDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  NSArray cookiesForURL_(NSURL? URL) {
+    final _ret = _lib._objc_msgSend_120(
+        _id, _lib._sel_cookiesForURL_1, URL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCookies_forURL_mainDocumentURL_(
+      NSArray? cookies, NSURL? URL, NSURL? mainDocumentURL) {
+    return _lib._objc_msgSend_744(
+        _id,
+        _lib._sel_setCookies_forURL_mainDocumentURL_1,
+        cookies?._id ?? ffi.nullptr,
+        URL?._id ?? ffi.nullptr,
+        mainDocumentURL?._id ?? ffi.nullptr);
+  }
+
+  int get cookieAcceptPolicy {
+    return _lib._objc_msgSend_745(_id, _lib._sel_cookieAcceptPolicy1);
+  }
+
+  set cookieAcceptPolicy(int value) {
+    _lib._objc_msgSend_746(_id, _lib._sel_setCookieAcceptPolicy_1, value);
+  }
+
+  NSArray sortedCookiesUsingDescriptors_(NSArray? sortOrder) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedCookiesUsingDescriptors_1,
+        sortOrder?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void storeCookies_forTask_(NSArray? cookies, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_766(_id, _lib._sel_storeCookies_forTask_1,
+        cookies?._id ?? ffi.nullptr, task?._id ?? ffi.nullptr);
+  }
+
+  void getCookiesForTask_completionHandler_(
+      NSURLSessionTask? task, ObjCBlock30 completionHandler) {
+    return _lib._objc_msgSend_767(
+        _id,
+        _lib._sel_getCookiesForTask_completionHandler_1,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  static NSHTTPCookieStorage new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookieStorage1, _lib._sel_new1);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHTTPCookieStorage alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_alloc1);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSHTTPCookie extends NSObject {
+  NSHTTPCookie._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHTTPCookie] that points to the same underlying object as [other].
+  static NSHTTPCookie castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHTTPCookie._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSHTTPCookie] that wraps the given raw object pointer.
+  static NSHTTPCookie castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHTTPCookie._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHTTPCookie].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSHTTPCookie1);
+  }
+
+  NSHTTPCookie initWithProperties_(NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_143(
+        _id, _lib._sel_initWithProperties_1, properties?._id ?? ffi.nullptr);
+    return NSHTTPCookie._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHTTPCookie cookieWithProperties_(
+      AVFAudio _lib, NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_741(_lib._class_NSHTTPCookie1,
+        _lib._sel_cookieWithProperties_1, properties?._id ?? ffi.nullptr);
+    return NSHTTPCookie._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary requestHeaderFieldsWithCookies_(
+      AVFAudio _lib, NSArray? cookies) {
+    final _ret = _lib._objc_msgSend_443(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_requestHeaderFieldsWithCookies_1,
+        cookies?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray cookiesWithResponseHeaderFields_forURL_(
+      AVFAudio _lib, NSDictionary? headerFields, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_742(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_cookiesWithResponseHeaderFields_forURL_1,
+        headerFields?._id ?? ffi.nullptr,
+        URL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get properties {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_properties1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get version {
+    return _lib._objc_msgSend_10(_id, _lib._sel_version1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get value {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_value1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get expiresDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_expiresDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get sessionOnly {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSessionOnly1);
+  }
+
+  NSString? get domain {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get path {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_path1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get secure {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSecure1);
+  }
+
+  bool get HTTPOnly {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isHTTPOnly1);
+  }
+
+  NSString? get comment {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_comment1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get commentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_commentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get portList {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_portList1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSHTTPCookieStringPolicy get sameSitePolicy {
+    return _lib._objc_msgSend_20(_id, _lib._sel_sameSitePolicy1);
+  }
+
+  static NSHTTPCookie new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookie1, _lib._sel_new1);
+    return NSHTTPCookie._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHTTPCookie alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookie1, _lib._sel_alloc1);
+    return NSHTTPCookie._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHTTPCookie1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookie1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookie1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSHTTPCookie1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookie1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSHTTPCookieStringPolicy = ffi.Pointer<ObjCObject>;
+
+abstract class NSHTTPCookieAcceptPolicy {
+  static const int NSHTTPCookieAcceptPolicyAlways = 0;
+  static const int NSHTTPCookieAcceptPolicyNever = 1;
+  static const int NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain = 2;
+}
+
+class NSURLSessionTask extends NSObject {
+  NSURLSessionTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionTask] that points to the same underlying object as [other].
+  static NSURLSessionTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionTask] that wraps the given raw object pointer.
+  static NSURLSessionTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionTask1);
+  }
+
+  int get taskIdentifier {
+    return _lib._objc_msgSend_10(_id, _lib._sel_taskIdentifier1);
+  }
+
+  NSURLRequest? get originalRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_originalRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get currentRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_currentRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLResponse? get response {
+    final _ret = _lib._objc_msgSend_763(_id, _lib._sel_response1);
+    return _ret.address == 0
+        ? null
+        : NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSProgress? get progress {
+    final _ret = _lib._objc_msgSend_577(_id, _lib._sel_progress1);
+    return _ret.address == 0
+        ? null
+        : NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get earliestBeginDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_earliestBeginDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set earliestBeginDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setEarliestBeginDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get countOfBytesClientExpectsToSend {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesClientExpectsToSend1);
+  }
+
+  set countOfBytesClientExpectsToSend(int value) {
+    _lib._objc_msgSend_585(
+        _id, _lib._sel_setCountOfBytesClientExpectsToSend_1, value);
+  }
+
+  int get countOfBytesClientExpectsToReceive {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesClientExpectsToReceive1);
+  }
+
+  set countOfBytesClientExpectsToReceive(int value) {
+    _lib._objc_msgSend_585(
+        _id, _lib._sel_setCountOfBytesClientExpectsToReceive_1, value);
+  }
+
+  int get countOfBytesSent {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesSent1);
+  }
+
+  int get countOfBytesReceived {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesReceived1);
+  }
+
+  int get countOfBytesExpectedToSend {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesExpectedToSend1);
+  }
+
+  int get countOfBytesExpectedToReceive {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesExpectedToReceive1);
+  }
+
+  NSString? get taskDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_taskDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set taskDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setTaskDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  int get state {
+    return _lib._objc_msgSend_764(_id, _lib._sel_state1);
+  }
+
+  NSError? get error {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_error1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  void suspend() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_suspend1);
+  }
+
+  void resume() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resume1);
+  }
+
+  double get priority {
+    return _lib._objc_msgSend_215(_id, _lib._sel_priority1);
+  }
+
+  set priority(double value) {
+    _lib._objc_msgSend_765(_id, _lib._sel_setPriority_1, value);
+  }
+
+  bool get prefersIncrementalDelivery {
+    return _lib._objc_msgSend_12(_id, _lib._sel_prefersIncrementalDelivery1);
+  }
+
+  set prefersIncrementalDelivery(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setPrefersIncrementalDelivery_1, value);
+  }
+
+  @override
+  NSURLSessionTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionTask new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionTask1, _lib._sel_new1);
+    return NSURLSessionTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionTask alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionTask1, _lib._sel_alloc1);
+    return NSURLSessionTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLRequest extends NSObject {
+  NSURLRequest._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLRequest] that points to the same underlying object as [other].
+  static NSURLRequest castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLRequest._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLRequest] that wraps the given raw object pointer.
+  static NSURLRequest castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLRequest._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLRequest].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLRequest1);
+  }
+
+  static NSURLRequest requestWithURL_(AVFAudio _lib, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSURLRequest1,
+        _lib._sel_requestWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool getSupportsSecureCoding(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_supportsSecureCoding1);
+  }
+
+  static NSURLRequest requestWithURL_cachePolicy_timeoutInterval_(
+      AVFAudio _lib, NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _lib._class_NSURLRequest1,
+        _lib._sel_requestWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest initWithURL_(NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest initWithURL_cachePolicy_timeoutInterval_(
+      NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _id,
+        _lib._sel_initWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get cachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_cachePolicy1);
+  }
+
+  double get timeoutInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutInterval1);
+  }
+
+  NSURL? get mainDocumentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_mainDocumentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  bool get assumesHTTP3Capable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_assumesHTTP3Capable1);
+  }
+
+  int get attribution {
+    return _lib._objc_msgSend_750(_id, _lib._sel_attribution1);
+  }
+
+  NSString? get HTTPMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_HTTPMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get allHTTPHeaderFields {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allHTTPHeaderFields1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString valueForHTTPHeaderField_(NSString? field) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_valueForHTTPHeaderField_1, field?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get HTTPBody {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_HTTPBody1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream? get HTTPBodyStream {
+    final _ret = _lib._objc_msgSend_760(_id, _lib._sel_HTTPBodyStream1);
+    return _ret.address == 0
+        ? null
+        : NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get HTTPShouldHandleCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldHandleCookies1);
+  }
+
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  static NSURLRequest new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLRequest1, _lib._sel_new1);
+    return NSURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLRequest alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLRequest1, _lib._sel_alloc1);
+    return NSURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLRequest1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLRequest1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLRequest1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLRequest1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLRequest1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLRequestCachePolicy {
+  static const int NSURLRequestUseProtocolCachePolicy = 0;
+  static const int NSURLRequestReloadIgnoringLocalCacheData = 1;
+  static const int NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4;
+  static const int NSURLRequestReloadIgnoringCacheData = 1;
+  static const int NSURLRequestReturnCacheDataElseLoad = 2;
+  static const int NSURLRequestReturnCacheDataDontLoad = 3;
+  static const int NSURLRequestReloadRevalidatingCacheData = 5;
+}
+
+abstract class NSURLRequestNetworkServiceType {
+  static const int NSURLNetworkServiceTypeDefault = 0;
+  static const int NSURLNetworkServiceTypeVoIP = 1;
+  static const int NSURLNetworkServiceTypeVideo = 2;
+  static const int NSURLNetworkServiceTypeBackground = 3;
+  static const int NSURLNetworkServiceTypeVoice = 4;
+  static const int NSURLNetworkServiceTypeResponsiveData = 6;
+  static const int NSURLNetworkServiceTypeAVStreaming = 8;
+  static const int NSURLNetworkServiceTypeResponsiveAV = 9;
+  static const int NSURLNetworkServiceTypeCallSignaling = 11;
+}
+
+abstract class NSURLRequestAttribution {
+  static const int NSURLRequestAttributionDeveloper = 0;
+  static const int NSURLRequestAttributionUser = 1;
+}
+
+class NSInputStream extends NSStream {
+  NSInputStream._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInputStream] that points to the same underlying object as [other].
+  static NSInputStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInputStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSInputStream] that wraps the given raw object pointer.
+  static NSInputStream castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInputStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInputStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSInputStream1);
+  }
+
+  int read_maxLength_(ffi.Pointer<ffi.Uint8> buffer, int len) {
+    return _lib._objc_msgSend_752(_id, _lib._sel_read_maxLength_1, buffer, len);
+  }
+
+  bool getBuffer_length_(
+      ffi.Pointer<ffi.Pointer<ffi.Uint8>> buffer, ffi.Pointer<NSUInteger> len) {
+    return _lib._objc_msgSend_759(
+        _id, _lib._sel_getBuffer_length_1, buffer, len);
+  }
+
+  bool get hasBytesAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasBytesAvailable1);
+  }
+
+  NSInputStream initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream initWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, url?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream initWithFileAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithFileAtPath_1, path?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithData_(AVFAudio _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithData_1, data?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithFileAtPath_(
+      AVFAudio _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithFileAtPath_1, path?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithURL_(AVFAudio _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithURL_1, url?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSInputStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSInputStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      AVFAudio _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSInputStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSInputStream new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInputStream1, _lib._sel_new1);
+    return NSInputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInputStream alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInputStream1, _lib._sel_alloc1);
+    return NSInputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInputStream1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInputStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInputStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInputStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInputStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSInputStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInputStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSStream extends NSObject {
+  NSStream._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSStream] that points to the same underlying object as [other].
+  static NSStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSStream] that wraps the given raw object pointer.
+  static NSStream castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSStream1);
+  }
+
+  void open() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_open1);
+  }
+
+  void close() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_close1);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject propertyForKey_(NSStreamPropertyKey key) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_propertyForKey_1, key);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setProperty_forKey_(NSObject property, NSStreamPropertyKey key) {
+    return _lib._objc_msgSend_225(
+        _id, _lib._sel_setProperty_forKey_1, property._id, key);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  int get streamStatus {
+    return _lib._objc_msgSend_751(_id, _lib._sel_streamStatus1);
+  }
+
+  NSError? get streamError {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_streamError1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      AVFAudio _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSStream new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSStream1, _lib._sel_new1);
+    return NSStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSStream alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSStream1, _lib._sel_alloc1);
+    return NSStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSStream1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSStreamPropertyKey = ffi.Pointer<ObjCObject>;
+
+abstract class NSStreamStatus {
+  static const int NSStreamStatusNotOpen = 0;
+  static const int NSStreamStatusOpening = 1;
+  static const int NSStreamStatusOpen = 2;
+  static const int NSStreamStatusReading = 3;
+  static const int NSStreamStatusWriting = 4;
+  static const int NSStreamStatusAtEnd = 5;
+  static const int NSStreamStatusClosed = 6;
+  static const int NSStreamStatusError = 7;
+}
+
+class NSOutputStream extends NSStream {
+  NSOutputStream._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOutputStream] that points to the same underlying object as [other].
+  static NSOutputStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOutputStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOutputStream] that wraps the given raw object pointer.
+  static NSOutputStream castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOutputStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOutputStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSOutputStream1);
+  }
+
+  int write_maxLength_(ffi.Pointer<ffi.Uint8> buffer, int len) {
+    return _lib._objc_msgSend_752(
+        _id, _lib._sel_write_maxLength_1, buffer, len);
+  }
+
+  bool get hasSpaceAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasSpaceAvailable1);
+  }
+
+  NSOutputStream initToMemory() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initToMemory1);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initToBuffer_capacity_(
+      ffi.Pointer<ffi.Uint8> buffer, int capacity) {
+    final _ret = _lib._objc_msgSend_753(
+        _id, _lib._sel_initToBuffer_capacity_1, buffer, capacity);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initWithURL_append_(NSURL? url, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_231(_id, _lib._sel_initWithURL_append_1,
+        url?._id ?? ffi.nullptr, shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initToFileAtPath_append_(NSString? path, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_29(_id, _lib._sel_initToFileAtPath_append_1,
+        path?._id ?? ffi.nullptr, shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToMemory(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOutputStream1, _lib._sel_outputStreamToMemory1);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToBuffer_capacity_(
+      AVFAudio _lib, ffi.Pointer<ffi.Uint8> buffer, int capacity) {
+    final _ret = _lib._objc_msgSend_753(_lib._class_NSOutputStream1,
+        _lib._sel_outputStreamToBuffer_capacity_1, buffer, capacity);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToFileAtPath_append_(
+      AVFAudio _lib, NSString? path, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_29(
+        _lib._class_NSOutputStream1,
+        _lib._sel_outputStreamToFileAtPath_append_1,
+        path?._id ?? ffi.nullptr,
+        shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamWithURL_append_(
+      AVFAudio _lib, NSURL? url, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_231(
+        _lib._class_NSOutputStream1,
+        _lib._sel_outputStreamWithURL_append_1,
+        url?._id ?? ffi.nullptr,
+        shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      AVFAudio _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      AVFAudio _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSOutputStream new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOutputStream1, _lib._sel_new1);
+    return NSOutputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOutputStream alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOutputStream1, _lib._sel_alloc1);
+    return NSOutputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOutputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOutputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSOutputStream1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOutputStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOutputStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOutputStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOutputStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOutputStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOutputStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSHost extends NSObject {
+  NSHost._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHost] that points to the same underlying object as [other].
+  static NSHost castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHost._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSHost] that wraps the given raw object pointer.
+  static NSHost castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHost._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHost].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSHost1);
+  }
+
+  static NSHost currentHost(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_currentHost1);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHost hostWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSHost1,
+        _lib._sel_hostWithName_1, name?._id ?? ffi.nullptr);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHost hostWithAddress_(AVFAudio _lib, NSString? address) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSHost1,
+        _lib._sel_hostWithAddress_1, address?._id ?? ffi.nullptr);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToHost_(NSHost? aHost) {
+    return _lib._objc_msgSend_755(
+        _id, _lib._sel_isEqualToHost_1, aHost?._id ?? ffi.nullptr);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get names {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_names1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get address {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_address1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get addresses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_addresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localizedName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setHostCacheEnabled_(AVFAudio _lib, bool flag) {
+    return _lib._objc_msgSend_756(
+        _lib._class_NSHost1, _lib._sel_setHostCacheEnabled_1, flag);
+  }
+
+  static bool isHostCacheEnabled(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_isHostCacheEnabled1);
+  }
+
+  static void flushHostCache(AVFAudio _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSHost1, _lib._sel_flushHostCache1);
+  }
+
+  static NSHost new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_new1);
+    return NSHost._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHost alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_alloc1);
+    return NSHost._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHost1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHost1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHost1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHost1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHost1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSHost1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHost1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLResponse extends NSObject {
+  NSURLResponse._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLResponse] that points to the same underlying object as [other].
+  static NSURLResponse castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLResponse._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLResponse] that wraps the given raw object pointer.
+  static NSURLResponse castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLResponse._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLResponse].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLResponse1);
+  }
+
+  NSURLResponse initWithURL_MIMEType_expectedContentLength_textEncodingName_(
+      NSURL? URL, NSString? MIMEType, int length, NSString? name) {
+    final _ret = _lib._objc_msgSend_762(
+        _id,
+        _lib._sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_1,
+        URL?._id ?? ffi.nullptr,
+        MIMEType?._id ?? ffi.nullptr,
+        length,
+        name?._id ?? ffi.nullptr);
+    return NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get MIMEType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_MIMEType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get expectedContentLength {
+    return _lib._objc_msgSend_214(_id, _lib._sel_expectedContentLength1);
+  }
+
+  NSString? get textEncodingName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_textEncodingName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suggestedFilename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suggestedFilename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLResponse new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLResponse1, _lib._sel_new1);
+    return NSURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLResponse alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLResponse1, _lib._sel_alloc1);
+    return NSURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLResponse1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLResponse1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLResponse1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLResponse1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLResponse1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLResponse1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLResponse1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLSessionTaskState {
+  static const int NSURLSessionTaskStateRunning = 0;
+  static const int NSURLSessionTaskStateSuspended = 1;
+  static const int NSURLSessionTaskStateCanceling = 2;
+  static const int NSURLSessionTaskStateCompleted = 3;
+}
+
+void _ObjCBlock30_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock30_closureRegistry = <int, Function>{};
+int _ObjCBlock30_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock30_registerClosure(Function fn) {
+  final id = ++_ObjCBlock30_closureRegistryIndex;
+  _ObjCBlock30_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock30_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock30_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock30 extends _ObjCBlockBase {
+  ObjCBlock30._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock30.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock30_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock30.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock30_closureTrampoline)
+                    .cast(),
+                _ObjCBlock30_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSIndexPath extends NSObject {
+  NSIndexPath._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSIndexPath] that points to the same underlying object as [other].
+  static NSIndexPath castFrom<T extends _ObjCWrapper>(T other) {
+    return NSIndexPath._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSIndexPath] that wraps the given raw object pointer.
+  static NSIndexPath castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSIndexPath._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSIndexPath].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSIndexPath1);
+  }
+
+  static NSIndexPath indexPathWithIndex_(AVFAudio _lib, int index) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSIndexPath1, _lib._sel_indexPathWithIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexPath indexPathWithIndexes_length_(
+      AVFAudio _lib, ffi.Pointer<NSUInteger> indexes, int length) {
+    final _ret = _lib._objc_msgSend_768(_lib._class_NSIndexPath1,
+        _lib._sel_indexPathWithIndexes_length_1, indexes, length);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath initWithIndexes_length_(
+      ffi.Pointer<NSUInteger> indexes, int length) {
+    final _ret = _lib._objc_msgSend_768(
+        _id, _lib._sel_initWithIndexes_length_1, indexes, length);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath initWithIndex_(int index) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath indexPathByAddingIndex_(int index) {
+    final _ret =
+        _lib._objc_msgSend_769(_id, _lib._sel_indexPathByAddingIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath indexPathByRemovingLastIndex() {
+    final _ret =
+        _lib._objc_msgSend_770(_id, _lib._sel_indexPathByRemovingLastIndex1);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexAtPosition_(int position) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexAtPosition_1, position);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  void getIndexes_range_(
+      ffi.Pointer<NSUInteger> indexes, NSRange positionRange) {
+    return _lib._objc_msgSend_771(
+        _id, _lib._sel_getIndexes_range_1, indexes, positionRange);
+  }
+
+  int compare_(NSIndexPath? otherObject) {
+    return _lib._objc_msgSend_772(
+        _id, _lib._sel_compare_1, otherObject?._id ?? ffi.nullptr);
+  }
+
+  void getIndexes_(ffi.Pointer<NSUInteger> indexes) {
+    return _lib._objc_msgSend_773(_id, _lib._sel_getIndexes_1, indexes);
+  }
+
+  static NSIndexPath new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSIndexPath1, _lib._sel_new1);
+    return NSIndexPath._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSIndexPath alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexPath1, _lib._sel_alloc1);
+    return NSIndexPath._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSIndexPath1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSIndexPath1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexPath1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexPath1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSIndexPath1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSIndexPath1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSIndexPath1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSIndexPath1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSIndexPath1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSInflectionRule extends NSObject {
+  NSInflectionRule._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInflectionRule] that points to the same underlying object as [other].
+  static NSInflectionRule castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInflectionRule._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSInflectionRule] that wraps the given raw object pointer.
+  static NSInflectionRule castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInflectionRule._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInflectionRule].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSInflectionRule1);
+  }
+
+  @override
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInflectionRule? getAutomaticRule(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_774(
+        _lib._class_NSInflectionRule1, _lib._sel_automaticRule1);
+    return _ret.address == 0
+        ? null
+        : NSInflectionRule._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool canInflectLanguage_(AVFAudio _lib, NSString? language) {
+    return _lib._objc_msgSend_59(_lib._class_NSInflectionRule1,
+        _lib._sel_canInflectLanguage_1, language?._id ?? ffi.nullptr);
+  }
+
+  static bool getCanInflectPreferredLocalization(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSInflectionRule1,
+        _lib._sel_canInflectPreferredLocalization1);
+  }
+
+  static NSInflectionRule new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInflectionRule1, _lib._sel_new1);
+    return NSInflectionRule._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInflectionRule alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInflectionRule1, _lib._sel_alloc1);
+    return NSInflectionRule._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInflectionRule1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSInflectionRule1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInflectionRule1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSInflectionRule1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInflectionRule1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMorphology extends NSObject {
+  NSMorphology._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMorphology] that points to the same underlying object as [other].
+  static NSMorphology castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMorphology._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMorphology] that wraps the given raw object pointer.
+  static NSMorphology castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMorphology._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMorphology].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMorphology1);
+  }
+
+  int get grammaticalGender {
+    return _lib._objc_msgSend_775(_id, _lib._sel_grammaticalGender1);
+  }
+
+  set grammaticalGender(int value) {
+    _lib._objc_msgSend_776(_id, _lib._sel_setGrammaticalGender_1, value);
+  }
+
+  int get partOfSpeech {
+    return _lib._objc_msgSend_777(_id, _lib._sel_partOfSpeech1);
+  }
+
+  set partOfSpeech(int value) {
+    _lib._objc_msgSend_778(_id, _lib._sel_setPartOfSpeech_1, value);
+  }
+
+  int get number {
+    return _lib._objc_msgSend_779(_id, _lib._sel_number1);
+  }
+
+  set number(int value) {
+    _lib._objc_msgSend_780(_id, _lib._sel_setNumber_1, value);
+  }
+
+  NSMorphologyCustomPronoun customPronounForLanguage_(NSString? language) {
+    final _ret = _lib._objc_msgSend_781(_id,
+        _lib._sel_customPronounForLanguage_1, language?._id ?? ffi.nullptr);
+    return NSMorphologyCustomPronoun._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setCustomPronoun_forLanguage_error_(NSMorphologyCustomPronoun? features,
+      NSString? language, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_782(
+        _id,
+        _lib._sel_setCustomPronoun_forLanguage_error_1,
+        features?._id ?? ffi.nullptr,
+        language?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool get unspecified {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isUnspecified1);
+  }
+
+  static NSMorphology? getUserMorphology(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_783(
+        _lib._class_NSMorphology1, _lib._sel_userMorphology1);
+    return _ret.address == 0
+        ? null
+        : NSMorphology._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMorphology new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMorphology1, _lib._sel_new1);
+    return NSMorphology._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMorphology alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMorphology1, _lib._sel_alloc1);
+    return NSMorphology._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMorphology1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMorphology1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphology1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphology1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMorphology1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMorphology1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMorphology1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMorphology1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphology1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSGrammaticalGender {
+  static const int NSGrammaticalGenderNotSet = 0;
+  static const int NSGrammaticalGenderFeminine = 1;
+  static const int NSGrammaticalGenderMasculine = 2;
+  static const int NSGrammaticalGenderNeuter = 3;
+}
+
+abstract class NSGrammaticalPartOfSpeech {
+  static const int NSGrammaticalPartOfSpeechNotSet = 0;
+  static const int NSGrammaticalPartOfSpeechDeterminer = 1;
+  static const int NSGrammaticalPartOfSpeechPronoun = 2;
+  static const int NSGrammaticalPartOfSpeechLetter = 3;
+  static const int NSGrammaticalPartOfSpeechAdverb = 4;
+  static const int NSGrammaticalPartOfSpeechParticle = 5;
+  static const int NSGrammaticalPartOfSpeechAdjective = 6;
+  static const int NSGrammaticalPartOfSpeechAdposition = 7;
+  static const int NSGrammaticalPartOfSpeechVerb = 8;
+  static const int NSGrammaticalPartOfSpeechNoun = 9;
+  static const int NSGrammaticalPartOfSpeechConjunction = 10;
+  static const int NSGrammaticalPartOfSpeechNumeral = 11;
+  static const int NSGrammaticalPartOfSpeechInterjection = 12;
+  static const int NSGrammaticalPartOfSpeechPreposition = 13;
+  static const int NSGrammaticalPartOfSpeechAbbreviation = 14;
+}
+
+abstract class NSGrammaticalNumber {
+  static const int NSGrammaticalNumberNotSet = 0;
+  static const int NSGrammaticalNumberSingular = 1;
+  static const int NSGrammaticalNumberZero = 2;
+  static const int NSGrammaticalNumberPlural = 3;
+  static const int NSGrammaticalNumberPluralTwo = 4;
+  static const int NSGrammaticalNumberPluralFew = 5;
+  static const int NSGrammaticalNumberPluralMany = 6;
+}
+
+class NSMorphologyCustomPronoun extends NSObject {
+  NSMorphologyCustomPronoun._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMorphologyCustomPronoun] that points to the same underlying object as [other].
+  static NSMorphologyCustomPronoun castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMorphologyCustomPronoun._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMorphologyCustomPronoun] that wraps the given raw object pointer.
+  static NSMorphologyCustomPronoun castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMorphologyCustomPronoun._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMorphologyCustomPronoun].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMorphologyCustomPronoun1);
+  }
+
+  static bool isSupportedForLanguage_(AVFAudio _lib, NSString? language) {
+    return _lib._objc_msgSend_59(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_isSupportedForLanguage_1, language?._id ?? ffi.nullptr);
+  }
+
+  static NSArray requiredKeysForLanguage_(AVFAudio _lib, NSString? language) {
+    final _ret = _lib._objc_msgSend_119(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_requiredKeysForLanguage_1, language?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get subjectForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_subjectForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set subjectForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSubjectForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get objectForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_objectForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set objectForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setObjectForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get possessiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_possessiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set possessiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPossessiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get possessiveAdjectiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_possessiveAdjectiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set possessiveAdjectiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPossessiveAdjectiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get reflexiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_reflexiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set reflexiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setReflexiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSMorphologyCustomPronoun new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_new1);
+    return NSMorphologyCustomPronoun._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSMorphologyCustomPronoun alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_alloc1);
+    return NSMorphologyCustomPronoun._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperationQueue extends NSObject {
+  NSOperationQueue._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOperationQueue] that points to the same underlying object as [other].
+  static NSOperationQueue castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOperationQueue._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSOperationQueue] that wraps the given raw object pointer.
+  static NSOperationQueue castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOperationQueue._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOperationQueue].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSOperationQueue1);
+  }
+
+  NSProgress? get progress {
+    final _ret = _lib._objc_msgSend_577(_id, _lib._sel_progress1);
+    return _ret.address == 0
+        ? null
+        : NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addOperation_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_addOperation_1, op?._id ?? ffi.nullptr);
+  }
+
+  void addOperations_waitUntilFinished_(NSArray? ops, bool wait) {
+    return _lib._objc_msgSend_787(
+        _id,
+        _lib._sel_addOperations_waitUntilFinished_1,
+        ops?._id ?? ffi.nullptr,
+        wait);
+  }
+
+  void addOperationWithBlock_(ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_addOperationWithBlock_1, block._id);
+  }
+
+  void addBarrierBlock_(ObjCBlock16 barrier) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_addBarrierBlock_1, barrier._id);
+  }
+
+  int get maxConcurrentOperationCount {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maxConcurrentOperationCount1);
+  }
+
+  set maxConcurrentOperationCount(int value) {
+    _lib._objc_msgSend_558(
+        _id, _lib._sel_setMaxConcurrentOperationCount_1, value);
+  }
+
+  bool get suspended {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSuspended1);
+  }
+
+  set suspended(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setSuspended_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  dispatch_queue_t get underlyingQueue {
+    return _lib._objc_msgSend_788(_id, _lib._sel_underlyingQueue1);
+  }
+
+  set underlyingQueue(dispatch_queue_t value) {
+    _lib._objc_msgSend_789(_id, _lib._sel_setUnderlyingQueue_1, value);
+  }
+
+  void cancelAllOperations() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancelAllOperations1);
+  }
+
+  void waitUntilAllOperationsAreFinished() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_waitUntilAllOperationsAreFinished1);
+  }
+
+  static NSOperationQueue? getCurrentQueue(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_790(
+        _lib._class_NSOperationQueue1, _lib._sel_currentQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOperationQueue? getMainQueue(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_790(
+        _lib._class_NSOperationQueue1, _lib._sel_mainQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get operations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_operations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get operationCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_operationCount1);
+  }
+
+  static NSOperationQueue new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperationQueue1, _lib._sel_new1);
+    return NSOperationQueue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOperationQueue alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperationQueue1, _lib._sel_alloc1);
+    return NSOperationQueue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOperationQueue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSOperationQueue1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperationQueue1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSOperationQueue1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOperationQueue1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperation extends NSObject {
+  NSOperation._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOperation] that points to the same underlying object as [other].
+  static NSOperation castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOperation._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOperation] that wraps the given raw object pointer.
+  static NSOperation castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOperation._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOperation].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOperation1);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void main() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_main1);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  bool get executing {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExecuting1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  bool get concurrent {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isConcurrent1);
+  }
+
+  bool get asynchronous {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAsynchronous1);
+  }
+
+  bool get ready {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isReady1);
+  }
+
+  void addDependency_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_addDependency_1, op?._id ?? ffi.nullptr);
+  }
+
+  void removeDependency_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_removeDependency_1, op?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get dependencies {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_dependencies1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get queuePriority {
+    return _lib._objc_msgSend_785(_id, _lib._sel_queuePriority1);
+  }
+
+  set queuePriority(int value) {
+    _lib._objc_msgSend_786(_id, _lib._sel_setQueuePriority_1, value);
+  }
+
+  ObjCBlock16 get completionBlock {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_completionBlock1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set completionBlock(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setCompletionBlock_1, value._id);
+  }
+
+  void waitUntilFinished() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_waitUntilFinished1);
+  }
+
+  double get threadPriority {
+    return _lib._objc_msgSend_149(_id, _lib._sel_threadPriority1);
+  }
+
+  set threadPriority(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setThreadPriority_1, value);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSOperation new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSOperation1, _lib._sel_new1);
+    return NSOperation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOperation alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperation1, _lib._sel_alloc1);
+    return NSOperation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOperation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOperation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperation1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperation1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOperation1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOperation1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOperation1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOperation1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOperation1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSOperationQueuePriority {
+  static const int NSOperationQueuePriorityVeryLow = -8;
+  static const int NSOperationQueuePriorityLow = -4;
+  static const int NSOperationQueuePriorityNormal = 0;
+  static const int NSOperationQueuePriorityHigh = 4;
+  static const int NSOperationQueuePriorityVeryHigh = 8;
+}
+
+typedef dispatch_queue_t = ffi.Pointer<ObjCObject>;
+
+class NSPointerArray extends NSObject {
+  NSPointerArray._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPointerArray] that points to the same underlying object as [other].
+  static NSPointerArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPointerArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPointerArray] that wraps the given raw object pointer.
+  static NSPointerArray castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPointerArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPointerArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPointerArray1);
+  }
+
+  NSPointerArray initWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_791(_id, _lib._sel_initWithOptions_1, options);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPointerArray initWithPointerFunctions_(NSPointerFunctions? functions) {
+    final _ret = _lib._objc_msgSend_805(_id,
+        _lib._sel_initWithPointerFunctions_1, functions?._id ?? ffi.nullptr);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray pointerArrayWithOptions_(AVFAudio _lib, int options) {
+    final _ret = _lib._objc_msgSend_806(_lib._class_NSPointerArray1,
+        _lib._sel_pointerArrayWithOptions_1, options);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray pointerArrayWithPointerFunctions_(
+      AVFAudio _lib, NSPointerFunctions? functions) {
+    final _ret = _lib._objc_msgSend_807(
+        _lib._class_NSPointerArray1,
+        _lib._sel_pointerArrayWithPointerFunctions_1,
+        functions?._id ?? ffi.nullptr);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPointerFunctions? get pointerFunctions {
+    final _ret = _lib._objc_msgSend_808(_id, _lib._sel_pointerFunctions1);
+    return _ret.address == 0
+        ? null
+        : NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Void> pointerAtIndex_(int index) {
+    return _lib._objc_msgSend_809(_id, _lib._sel_pointerAtIndex_1, index);
+  }
+
+  void addPointer_(ffi.Pointer<ffi.Void> pointer) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_addPointer_1, pointer);
+  }
+
+  void removePointerAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removePointerAtIndex_1, index);
+  }
+
+  void insertPointer_atIndex_(ffi.Pointer<ffi.Void> item, int index) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_insertPointer_atIndex_1, item, index);
+  }
+
+  void replacePointerAtIndex_withPointer_(
+      int index, ffi.Pointer<ffi.Void> item) {
+    return _lib._objc_msgSend_810(
+        _id, _lib._sel_replacePointerAtIndex_withPointer_1, index, item);
+  }
+
+  void compact() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_compact1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  set count(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setCount_1, value);
+  }
+
+  static NSObject pointerArrayWithStrongObjects(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_pointerArrayWithStrongObjects1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject pointerArrayWithWeakObjects(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_pointerArrayWithWeakObjects1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray strongObjectsPointerArray(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_811(
+        _lib._class_NSPointerArray1, _lib._sel_strongObjectsPointerArray1);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray weakObjectsPointerArray(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_811(
+        _lib._class_NSPointerArray1, _lib._sel_weakObjectsPointerArray1);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerArray1, _lib._sel_new1);
+    return NSPointerArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPointerArray alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerArray1, _lib._sel_alloc1);
+    return NSPointerArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPointerArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPointerArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPointerArray1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPointerArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPointerArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPointerArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPointerArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPointerArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSPointerFunctionsOptions {
+  static const int NSPointerFunctionsStrongMemory = 0;
+  static const int NSPointerFunctionsZeroingWeakMemory = 1;
+  static const int NSPointerFunctionsOpaqueMemory = 2;
+  static const int NSPointerFunctionsMallocMemory = 3;
+  static const int NSPointerFunctionsMachVirtualMemory = 4;
+  static const int NSPointerFunctionsWeakMemory = 5;
+  static const int NSPointerFunctionsObjectPersonality = 0;
+  static const int NSPointerFunctionsOpaquePersonality = 256;
+  static const int NSPointerFunctionsObjectPointerPersonality = 512;
+  static const int NSPointerFunctionsCStringPersonality = 768;
+  static const int NSPointerFunctionsStructPersonality = 1024;
+  static const int NSPointerFunctionsIntegerPersonality = 1280;
+  static const int NSPointerFunctionsCopyIn = 65536;
+}
+
+class NSPointerFunctions extends NSObject {
+  NSPointerFunctions._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPointerFunctions] that points to the same underlying object as [other].
+  static NSPointerFunctions castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPointerFunctions._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSPointerFunctions] that wraps the given raw object pointer.
+  static NSPointerFunctions castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPointerFunctions._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPointerFunctions].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPointerFunctions1);
+  }
+
+  NSPointerFunctions initWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_791(_id, _lib._sel_initWithOptions_1, options);
+    return NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerFunctions pointerFunctionsWithOptions_(
+      AVFAudio _lib, int options) {
+    final _ret = _lib._objc_msgSend_792(_lib._class_NSPointerFunctions1,
+        _lib._sel_pointerFunctionsWithOptions_1, options);
+    return NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              NSUInteger Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get hashFunction {
+    return _lib._objc_msgSend_793(_id, _lib._sel_hashFunction1);
+  }
+
+  set hashFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_794(_id, _lib._sel_setHashFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get isEqualFunction {
+    return _lib._objc_msgSend_795(_id, _lib._sel_isEqualFunction1);
+  }
+
+  set isEqualFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_796(_id, _lib._sel_setIsEqualFunction_1, value);
+  }
+
+  ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+      get sizeFunction {
+    return _lib._objc_msgSend_797(_id, _lib._sel_sizeFunction1);
+  }
+
+  set sizeFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+          value) {
+    _lib._objc_msgSend_798(_id, _lib._sel_setSizeFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+      get descriptionFunction {
+    return _lib._objc_msgSend_799(_id, _lib._sel_descriptionFunction1);
+  }
+
+  set descriptionFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+          value) {
+    _lib._objc_msgSend_800(_id, _lib._sel_setDescriptionFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get relinquishFunction {
+    return _lib._objc_msgSend_801(_id, _lib._sel_relinquishFunction1);
+  }
+
+  set relinquishFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_802(_id, _lib._sel_setRelinquishFunction_1, value);
+  }
+
+  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+              ffi.Bool)>> get acquireFunction {
+    return _lib._objc_msgSend_803(_id, _lib._sel_acquireFunction1);
+  }
+
+  set acquireFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>
+          value) {
+    _lib._objc_msgSend_804(_id, _lib._sel_setAcquireFunction_1, value);
+  }
+
+  bool get usesStrongWriteBarrier {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesStrongWriteBarrier1);
+  }
+
+  set usesStrongWriteBarrier(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesStrongWriteBarrier_1, value);
+  }
+
+  bool get usesWeakReadAndWriteBarriers {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesWeakReadAndWriteBarriers1);
+  }
+
+  set usesWeakReadAndWriteBarriers(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setUsesWeakReadAndWriteBarriers_1, value);
+  }
+
+  static NSPointerFunctions new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerFunctions1, _lib._sel_new1);
+    return NSPointerFunctions._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPointerFunctions alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerFunctions1, _lib._sel_alloc1);
+    return NSPointerFunctions._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPointerFunctions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPointerFunctions1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPointerFunctions1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSPointerFunctions1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerFunctions1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSProcessInfo extends NSObject {
+  NSProcessInfo._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProcessInfo] that points to the same underlying object as [other].
+  static NSProcessInfo castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProcessInfo._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProcessInfo] that wraps the given raw object pointer.
+  static NSProcessInfo castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProcessInfo._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProcessInfo].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProcessInfo1);
+  }
+
+  static NSProcessInfo? getProcessInfo(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_812(
+        _lib._class_NSProcessInfo1, _lib._sel_processInfo1);
+    return _ret.address == 0
+        ? null
+        : NSProcessInfo._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get environment {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_environment1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get arguments {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get hostName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_hostName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get processName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_processName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set processName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setProcessName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get processIdentifier {
+    return _lib._objc_msgSend_213(_id, _lib._sel_processIdentifier1);
+  }
+
+  NSString? get globallyUniqueString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_globallyUniqueString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int operatingSystem() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_operatingSystem1);
+  }
+
+  NSString operatingSystemName() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_operatingSystemName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get operatingSystemVersionString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_operatingSystemVersionString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOperatingSystemVersion get operatingSystemVersion {
+    return _lib._objc_msgSend_813(_id, _lib._sel_operatingSystemVersion1);
+  }
+
+  int get processorCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_processorCount1);
+  }
+
+  int get activeProcessorCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_activeProcessorCount1);
+  }
+
+  int get physicalMemory {
+    return _lib._objc_msgSend_148(_id, _lib._sel_physicalMemory1);
+  }
+
+  bool isOperatingSystemAtLeastVersion_(NSOperatingSystemVersion version) {
+    return _lib._objc_msgSend_814(
+        _id, _lib._sel_isOperatingSystemAtLeastVersion_1, version);
+  }
+
+  double get systemUptime {
+    return _lib._objc_msgSend_149(_id, _lib._sel_systemUptime1);
+  }
+
+  void disableSuddenTermination() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_disableSuddenTermination1);
+  }
+
+  void enableSuddenTermination() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_enableSuddenTermination1);
+  }
+
+  void disableAutomaticTermination_(NSString? reason) {
+    return _lib._objc_msgSend_186(_id, _lib._sel_disableAutomaticTermination_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  void enableAutomaticTermination_(NSString? reason) {
+    return _lib._objc_msgSend_186(_id, _lib._sel_enableAutomaticTermination_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  bool get automaticTerminationSupportEnabled {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_automaticTerminationSupportEnabled1);
+  }
+
+  set automaticTerminationSupportEnabled(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAutomaticTerminationSupportEnabled_1, value);
+  }
+
+  NSObject beginActivityWithOptions_reason_(int options, NSString? reason) {
+    final _ret = _lib._objc_msgSend_815(
+        _id,
+        _lib._sel_beginActivityWithOptions_reason_1,
+        options,
+        reason?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void endActivity_(NSObject? activity) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_endActivity_1, activity?._id ?? ffi.nullptr);
+  }
+
+  void performActivityWithOptions_reason_usingBlock_(
+      int options, NSString? reason, ObjCBlock16 block) {
+    return _lib._objc_msgSend_816(
+        _id,
+        _lib._sel_performActivityWithOptions_reason_usingBlock_1,
+        options,
+        reason?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  void performExpiringActivityWithReason_usingBlock_(
+      NSString? reason, ObjCBlock31 block) {
+    return _lib._objc_msgSend_817(
+        _id,
+        _lib._sel_performExpiringActivityWithReason_usingBlock_1,
+        reason?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  NSString? get userName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_userName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get fullUserName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fullUserName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get thermalState {
+    return _lib._objc_msgSend_818(_id, _lib._sel_thermalState1);
+  }
+
+  bool get lowPowerModeEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLowPowerModeEnabled1);
+  }
+
+  bool get macCatalystApp {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isMacCatalystApp1);
+  }
+
+  bool get iOSAppOnMac {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isiOSAppOnMac1);
+  }
+
+  static NSProcessInfo new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProcessInfo1, _lib._sel_new1);
+    return NSProcessInfo._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSProcessInfo alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProcessInfo1, _lib._sel_alloc1);
+    return NSProcessInfo._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSProcessInfo1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProcessInfo1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProcessInfo1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSProcessInfo1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSProcessInfo1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperatingSystemVersion extends ffi.Struct {
+  @NSInteger()
+  external int majorVersion;
+
+  @NSInteger()
+  external int minorVersion;
+
+  @NSInteger()
+  external int patchVersion;
+}
+
+abstract class NSActivityOptions {
+  static const int NSActivityIdleDisplaySleepDisabled = 1099511627776;
+  static const int NSActivityIdleSystemSleepDisabled = 1048576;
+  static const int NSActivitySuddenTerminationDisabled = 16384;
+  static const int NSActivityAutomaticTerminationDisabled = 32768;
+  static const int NSActivityUserInitiated = 16777215;
+  static const int NSActivityUserInitiatedAllowingIdleSystemSleep = 15728639;
+  static const int NSActivityBackground = 255;
+  static const int NSActivityLatencyCritical = 1095216660480;
+}
+
+void _ObjCBlock31_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block, bool arg0) {
+  return block.ref.target
+      .cast<ffi.NativeFunction<ffi.Void Function(ffi.Bool arg0)>>()
+      .asFunction<void Function(bool arg0)>()(arg0);
+}
+
+final _ObjCBlock31_closureRegistry = <int, Function>{};
+int _ObjCBlock31_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock31_registerClosure(Function fn) {
+  final id = ++_ObjCBlock31_closureRegistryIndex;
+  _ObjCBlock31_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock31_closureTrampoline(ffi.Pointer<_ObjCBlock> block, bool arg0) {
+  return _ObjCBlock31_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock31 extends _ObjCBlockBase {
+  ObjCBlock31._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock31.fromFunctionPointer(AVFAudio lib,
+      ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Bool arg0)>> ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                            ffi.Bool arg0)>(_ObjCBlock31_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock31.fromFunction(AVFAudio lib, void Function(bool arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                            ffi.Bool arg0)>(_ObjCBlock31_closureTrampoline)
+                    .cast(),
+                _ObjCBlock31_registerClosure(fn)),
+            lib);
+  void call(bool arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block, ffi.Bool arg0)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block, bool arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSProcessInfoThermalState {
+  static const int NSProcessInfoThermalStateNominal = 0;
+  static const int NSProcessInfoThermalStateFair = 1;
+  static const int NSProcessInfoThermalStateSerious = 2;
+  static const int NSProcessInfoThermalStateCritical = 3;
+}
+
+class NSTextCheckingResult extends NSObject {
+  NSTextCheckingResult._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTextCheckingResult] that points to the same underlying object as [other].
+  static NSTextCheckingResult castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTextCheckingResult._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSTextCheckingResult] that wraps the given raw object pointer.
+  static NSTextCheckingResult castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTextCheckingResult._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTextCheckingResult].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSTextCheckingResult1);
+  }
+
+  int get resultType {
+    return _lib._objc_msgSend_819(_id, _lib._sel_resultType1);
+  }
+
+  NSRange get range {
+    return _lib._objc_msgSend_49(_id, _lib._sel_range1);
+  }
+
+  NSOrthography? get orthography {
+    final _ret = _lib._objc_msgSend_820(_id, _lib._sel_orthography1);
+    return _ret.address == 0
+        ? null
+        : NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get grammarDetails {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_grammarDetails1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get date {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_date1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get duration {
+    return _lib._objc_msgSend_149(_id, _lib._sel_duration1);
+  }
+
+  NSDictionary? get components {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_components1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get replacementString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_replacementString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get alternativeStrings {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_alternativeStrings1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRegularExpression? get regularExpression {
+    final _ret = _lib._objc_msgSend_832(_id, _lib._sel_regularExpression1);
+    return _ret.address == 0
+        ? null
+        : NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get phoneNumber {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_phoneNumber1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get numberOfRanges {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfRanges1);
+  }
+
+  NSRange rangeAtIndex_(int idx) {
+    return _lib._objc_msgSend_308(_id, _lib._sel_rangeAtIndex_1, idx);
+  }
+
+  NSRange rangeWithName_(NSString? name) {
+    return _lib._objc_msgSend_301(
+        _id, _lib._sel_rangeWithName_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSTextCheckingResult resultByAdjustingRangesWithOffset_(int offset) {
+    final _ret = _lib._objc_msgSend_833(
+        _id, _lib._sel_resultByAdjustingRangesWithOffset_1, offset);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get addressComponents {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_addressComponents1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult orthographyCheckingResultWithRange_orthography_(
+      AVFAudio _lib, NSRange range, NSOrthography? orthography) {
+    final _ret = _lib._objc_msgSend_834(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_orthographyCheckingResultWithRange_orthography_1,
+        range,
+        orthography?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult spellCheckingResultWithRange_(
+      AVFAudio _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_835(_lib._class_NSTextCheckingResult1,
+        _lib._sel_spellCheckingResultWithRange_1, range);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult grammarCheckingResultWithRange_details_(
+      AVFAudio _lib, NSRange range, NSArray? details) {
+    final _ret = _lib._objc_msgSend_836(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_grammarCheckingResultWithRange_details_1,
+        range,
+        details?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult dateCheckingResultWithRange_date_(
+      AVFAudio _lib, NSRange range, NSDate? date) {
+    final _ret = _lib._objc_msgSend_837(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dateCheckingResultWithRange_date_1,
+        range,
+        date?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      dateCheckingResultWithRange_date_timeZone_duration_(AVFAudio _lib,
+          NSRange range, NSDate? date, NSTimeZone? timeZone, double duration) {
+    final _ret = _lib._objc_msgSend_838(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dateCheckingResultWithRange_date_timeZone_duration_1,
+        range,
+        date?._id ?? ffi.nullptr,
+        timeZone?._id ?? ffi.nullptr,
+        duration);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult addressCheckingResultWithRange_components_(
+      AVFAudio _lib, NSRange range, NSDictionary? components) {
+    final _ret = _lib._objc_msgSend_839(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_addressCheckingResultWithRange_components_1,
+        range,
+        components?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult linkCheckingResultWithRange_URL_(
+      AVFAudio _lib, NSRange range, NSURL? url) {
+    final _ret = _lib._objc_msgSend_840(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_linkCheckingResultWithRange_URL_1,
+        range,
+        url?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult quoteCheckingResultWithRange_replacementString_(
+      AVFAudio _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_quoteCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult dashCheckingResultWithRange_replacementString_(
+      AVFAudio _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dashCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      replacementCheckingResultWithRange_replacementString_(
+          AVFAudio _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_replacementCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      correctionCheckingResultWithRange_replacementString_(
+          AVFAudio _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_correctionCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      correctionCheckingResultWithRange_replacementString_alternativeStrings_(
+          AVFAudio _lib,
+          NSRange range,
+          NSString? replacementString,
+          NSArray? alternativeStrings) {
+    final _ret = _lib._objc_msgSend_842(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_1,
+        range,
+        replacementString?._id ?? ffi.nullptr,
+        alternativeStrings?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      regularExpressionCheckingResultWithRanges_count_regularExpression_(
+          AVFAudio _lib,
+          NSRangePointer ranges,
+          int count,
+          NSRegularExpression? regularExpression) {
+    final _ret = _lib._objc_msgSend_843(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_regularExpressionCheckingResultWithRanges_count_regularExpression_1,
+        ranges,
+        count,
+        regularExpression?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult phoneNumberCheckingResultWithRange_phoneNumber_(
+      AVFAudio _lib, NSRange range, NSString? phoneNumber) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_phoneNumberCheckingResultWithRange_phoneNumber_1,
+        range,
+        phoneNumber?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      transitInformationCheckingResultWithRange_components_(
+          AVFAudio _lib, NSRange range, NSDictionary? components) {
+    final _ret = _lib._objc_msgSend_839(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_transitInformationCheckingResultWithRange_components_1,
+        range,
+        components?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSTextCheckingResult1, _lib._sel_new1);
+    return NSTextCheckingResult._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTextCheckingResult alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTextCheckingResult1, _lib._sel_alloc1);
+    return NSTextCheckingResult._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTextCheckingResult1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSTextCheckingResult1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTextCheckingResult1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSTextCheckingResult1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTextCheckingResult1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTextCheckingType {
+  static const int NSTextCheckingTypeOrthography = 1;
+  static const int NSTextCheckingTypeSpelling = 2;
+  static const int NSTextCheckingTypeGrammar = 4;
+  static const int NSTextCheckingTypeDate = 8;
+  static const int NSTextCheckingTypeAddress = 16;
+  static const int NSTextCheckingTypeLink = 32;
+  static const int NSTextCheckingTypeQuote = 64;
+  static const int NSTextCheckingTypeDash = 128;
+  static const int NSTextCheckingTypeReplacement = 256;
+  static const int NSTextCheckingTypeCorrection = 512;
+  static const int NSTextCheckingTypeRegularExpression = 1024;
+  static const int NSTextCheckingTypePhoneNumber = 2048;
+  static const int NSTextCheckingTypeTransitInformation = 4096;
+}
+
+class NSRegularExpression extends NSObject {
+  NSRegularExpression._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSRegularExpression] that points to the same underlying object as [other].
+  static NSRegularExpression castFrom<T extends _ObjCWrapper>(T other) {
+    return NSRegularExpression._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSRegularExpression] that wraps the given raw object pointer.
+  static NSRegularExpression castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSRegularExpression._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSRegularExpression].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSRegularExpression1);
+  }
+
+  static NSRegularExpression regularExpressionWithPattern_options_error_(
+      AVFAudio _lib,
+      NSString? pattern,
+      int options,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_821(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_regularExpressionWithPattern_options_error_1,
+        pattern?._id ?? ffi.nullptr,
+        options,
+        error);
+    return NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRegularExpression initWithPattern_options_error_(NSString? pattern,
+      int options, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_822(
+        _id,
+        _lib._sel_initWithPattern_options_error_1,
+        pattern?._id ?? ffi.nullptr,
+        options,
+        error);
+    return NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pattern {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pattern1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get options {
+    return _lib._objc_msgSend_823(_id, _lib._sel_options1);
+  }
+
+  int get numberOfCaptureGroups {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfCaptureGroups1);
+  }
+
+  static NSString escapedPatternForString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSRegularExpression1,
+        _lib._sel_escapedPatternForString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateMatchesInString_options_range_usingBlock_(
+      NSString? string, int options, NSRange range, ObjCBlock32 block) {
+    return _lib._objc_msgSend_824(
+        _id,
+        _lib._sel_enumerateMatchesInString_options_range_usingBlock_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        block._id);
+  }
+
+  NSArray matchesInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    final _ret = _lib._objc_msgSend_825(
+        _id,
+        _lib._sel_matchesInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int numberOfMatchesInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    return _lib._objc_msgSend_826(
+        _id,
+        _lib._sel_numberOfMatchesInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+  }
+
+  NSTextCheckingResult firstMatchInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    final _ret = _lib._objc_msgSend_827(
+        _id,
+        _lib._sel_firstMatchInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange rangeOfFirstMatchInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    return _lib._objc_msgSend_828(
+        _id,
+        _lib._sel_rangeOfFirstMatchInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+  }
+
+  NSString stringByReplacingMatchesInString_options_range_withTemplate_(
+      NSString? string, int options, NSRange range, NSString? templ) {
+    final _ret = _lib._objc_msgSend_829(
+        _id,
+        _lib._sel_stringByReplacingMatchesInString_options_range_withTemplate_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        templ?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int replaceMatchesInString_options_range_withTemplate_(
+      NSMutableString? string, int options, NSRange range, NSString? templ) {
+    return _lib._objc_msgSend_830(
+        _id,
+        _lib._sel_replaceMatchesInString_options_range_withTemplate_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        templ?._id ?? ffi.nullptr);
+  }
+
+  NSString replacementStringForResult_inString_offset_template_(
+      NSTextCheckingResult? result,
+      NSString? string,
+      int offset,
+      NSString? templ) {
+    final _ret = _lib._objc_msgSend_831(
+        _id,
+        _lib._sel_replacementStringForResult_inString_offset_template_1,
+        result?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr,
+        offset,
+        templ?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString escapedTemplateForString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSRegularExpression1,
+        _lib._sel_escapedTemplateForString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSRegularExpression new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSRegularExpression1, _lib._sel_new1);
+    return NSRegularExpression._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSRegularExpression alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRegularExpression1, _lib._sel_alloc1);
+    return NSRegularExpression._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSRegularExpression1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSRegularExpression1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRegularExpression1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSRegularExpression1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRegularExpression1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSRegularExpressionOptions {
+  static const int NSRegularExpressionCaseInsensitive = 1;
+  static const int NSRegularExpressionAllowCommentsAndWhitespace = 2;
+  static const int NSRegularExpressionIgnoreMetacharacters = 4;
+  static const int NSRegularExpressionDotMatchesLineSeparators = 8;
+  static const int NSRegularExpressionAnchorsMatchLines = 16;
+  static const int NSRegularExpressionUseUnixLineSeparators = 32;
+  static const int NSRegularExpressionUseUnicodeWordBoundaries = 64;
+}
+
+abstract class NSMatchingOptions {
+  static const int NSMatchingReportProgress = 1;
+  static const int NSMatchingReportCompletion = 2;
+  static const int NSMatchingAnchored = 4;
+  static const int NSMatchingWithTransparentBounds = 8;
+  static const int NSMatchingWithoutAnchoringBounds = 16;
+}
+
+void _ObjCBlock32_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Int32 arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock32_closureRegistry = <int, Function>{};
+int _ObjCBlock32_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock32_registerClosure(Function fn) {
+  final id = ++_ObjCBlock32_closureRegistryIndex;
+  _ObjCBlock32_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock32_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock32_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock32 extends _ObjCBlockBase {
+  ObjCBlock32._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock32.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Int32 arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Int32 arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock32_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock32.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Int32 arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock32_closureTrampoline)
+                    .cast(),
+                _ObjCBlock32_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Int32 arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSMatchingFlags {
+  static const int NSMatchingProgress = 1;
+  static const int NSMatchingCompleted = 2;
+  static const int NSMatchingHitEnd = 4;
+  static const int NSMatchingRequiredEnd = 8;
+  static const int NSMatchingInternalError = 16;
+}
+
+class NSURLCache extends NSObject {
+  NSURLCache._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCache] that points to the same underlying object as [other].
+  static NSURLCache castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCache._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCache] that wraps the given raw object pointer.
+  static NSURLCache castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCache._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCache].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLCache1);
+  }
+
+  static NSURLCache? getSharedURLCache(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_844(
+        _lib._class_NSURLCache1, _lib._sel_sharedURLCache1);
+    return _ret.address == 0
+        ? null
+        : NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setSharedURLCache(AVFAudio _lib, NSURLCache? value) {
+    _lib._objc_msgSend_845(_lib._class_NSURLCache1,
+        _lib._sel_setSharedURLCache_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCache initWithMemoryCapacity_diskCapacity_diskPath_(
+      int memoryCapacity, int diskCapacity, NSString? path) {
+    final _ret = _lib._objc_msgSend_846(
+        _id,
+        _lib._sel_initWithMemoryCapacity_diskCapacity_diskPath_1,
+        memoryCapacity,
+        diskCapacity,
+        path?._id ?? ffi.nullptr);
+    return NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLCache initWithMemoryCapacity_diskCapacity_directoryURL_(
+      int memoryCapacity, int diskCapacity, NSURL? directoryURL) {
+    final _ret = _lib._objc_msgSend_847(
+        _id,
+        _lib._sel_initWithMemoryCapacity_diskCapacity_directoryURL_1,
+        memoryCapacity,
+        diskCapacity,
+        directoryURL?._id ?? ffi.nullptr);
+    return NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse cachedResponseForRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_851(
+        _id, _lib._sel_cachedResponseForRequest_1, request?._id ?? ffi.nullptr);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  void storeCachedResponse_forRequest_(
+      NSCachedURLResponse? cachedResponse, NSURLRequest? request) {
+    return _lib._objc_msgSend_852(
+        _id,
+        _lib._sel_storeCachedResponse_forRequest_1,
+        cachedResponse?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  void removeCachedResponseForRequest_(NSURLRequest? request) {
+    return _lib._objc_msgSend_853(
+        _id,
+        _lib._sel_removeCachedResponseForRequest_1,
+        request?._id ?? ffi.nullptr);
+  }
+
+  void removeAllCachedResponses() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllCachedResponses1);
+  }
+
+  void removeCachedResponsesSinceDate_(NSDate? date) {
+    return _lib._objc_msgSend_472(_id,
+        _lib._sel_removeCachedResponsesSinceDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  int get memoryCapacity {
+    return _lib._objc_msgSend_10(_id, _lib._sel_memoryCapacity1);
+  }
+
+  set memoryCapacity(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMemoryCapacity_1, value);
+  }
+
+  int get diskCapacity {
+    return _lib._objc_msgSend_10(_id, _lib._sel_diskCapacity1);
+  }
+
+  set diskCapacity(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setDiskCapacity_1, value);
+  }
+
+  int get currentMemoryUsage {
+    return _lib._objc_msgSend_10(_id, _lib._sel_currentMemoryUsage1);
+  }
+
+  int get currentDiskUsage {
+    return _lib._objc_msgSend_10(_id, _lib._sel_currentDiskUsage1);
+  }
+
+  void storeCachedResponse_forDataTask_(
+      NSCachedURLResponse? cachedResponse, NSURLSessionDataTask? dataTask) {
+    return _lib._objc_msgSend_854(
+        _id,
+        _lib._sel_storeCachedResponse_forDataTask_1,
+        cachedResponse?._id ?? ffi.nullptr,
+        dataTask?._id ?? ffi.nullptr);
+  }
+
+  void getCachedResponseForDataTask_completionHandler_(
+      NSURLSessionDataTask? dataTask, ObjCBlock33 completionHandler) {
+    return _lib._objc_msgSend_855(
+        _id,
+        _lib._sel_getCachedResponseForDataTask_completionHandler_1,
+        dataTask?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void removeCachedResponseForDataTask_(NSURLSessionDataTask? dataTask) {
+    return _lib._objc_msgSend_856(
+        _id,
+        _lib._sel_removeCachedResponseForDataTask_1,
+        dataTask?._id ?? ffi.nullptr);
+  }
+
+  static NSURLCache new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLCache1, _lib._sel_new1);
+    return NSURLCache._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCache alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCache1, _lib._sel_alloc1);
+    return NSURLCache._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCache1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCache1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCache1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCache1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCache1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCache1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCache1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLCache1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCache1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSCachedURLResponse extends NSObject {
+  NSCachedURLResponse._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCachedURLResponse] that points to the same underlying object as [other].
+  static NSCachedURLResponse castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCachedURLResponse._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSCachedURLResponse] that wraps the given raw object pointer.
+  static NSCachedURLResponse castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCachedURLResponse._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCachedURLResponse].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCachedURLResponse1);
+  }
+
+  NSCachedURLResponse initWithResponse_data_(
+      NSURLResponse? response, NSData? data) {
+    final _ret = _lib._objc_msgSend_848(_id, _lib._sel_initWithResponse_data_1,
+        response?._id ?? ffi.nullptr, data?._id ?? ffi.nullptr);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse initWithResponse_data_userInfo_storagePolicy_(
+      NSURLResponse? response,
+      NSData? data,
+      NSDictionary? userInfo,
+      int storagePolicy) {
+    final _ret = _lib._objc_msgSend_849(
+        _id,
+        _lib._sel_initWithResponse_data_userInfo_storagePolicy_1,
+        response?._id ?? ffi.nullptr,
+        data?._id ?? ffi.nullptr,
+        userInfo?._id ?? ffi.nullptr,
+        storagePolicy);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLResponse? get response {
+    final _ret = _lib._objc_msgSend_763(_id, _lib._sel_response1);
+    return _ret.address == 0
+        ? null
+        : NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get storagePolicy {
+    return _lib._objc_msgSend_850(_id, _lib._sel_storagePolicy1);
+  }
+
+  static NSCachedURLResponse new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCachedURLResponse1, _lib._sel_new1);
+    return NSCachedURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCachedURLResponse alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCachedURLResponse1, _lib._sel_alloc1);
+    return NSCachedURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCachedURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCachedURLResponse1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCachedURLResponse1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSCachedURLResponse1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCachedURLResponse1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLCacheStoragePolicy {
+  static const int NSURLCacheStorageAllowed = 0;
+  static const int NSURLCacheStorageAllowedInMemoryOnly = 1;
+  static const int NSURLCacheStorageNotAllowed = 2;
+}
+
+class NSURLSessionDataTask extends NSURLSessionTask {
+  NSURLSessionDataTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionDataTask] that points to the same underlying object as [other].
+  static NSURLSessionDataTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionDataTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionDataTask] that wraps the given raw object pointer.
+  static NSURLSessionDataTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionDataTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionDataTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionDataTask1);
+  }
+
+  @override
+  NSURLSessionDataTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionDataTask new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionDataTask1, _lib._sel_new1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionDataTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_alloc1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock33_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock33_closureRegistry = <int, Function>{};
+int _ObjCBlock33_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock33_registerClosure(Function fn) {
+  final id = ++_ObjCBlock33_closureRegistryIndex;
+  _ObjCBlock33_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock33_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock33_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock33 extends _ObjCBlockBase {
+  ObjCBlock33._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock33.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock33_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock33.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock33_closureTrampoline)
+                    .cast(),
+                _ObjCBlock33_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLConnection extends NSObject {
+  NSURLConnection._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLConnection] that points to the same underlying object as [other].
+  static NSURLConnection castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLConnection._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLConnection] that wraps the given raw object pointer.
+  static NSURLConnection castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLConnection._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLConnection].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLConnection1);
+  }
+
+  NSURLConnection initWithRequest_delegate_startImmediately_(
+      NSURLRequest? request, NSObject delegate, bool startImmediately) {
+    final _ret = _lib._objc_msgSend_857(
+        _id,
+        _lib._sel_initWithRequest_delegate_startImmediately_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id,
+        startImmediately);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLConnection initWithRequest_delegate_(
+      NSURLRequest? request, NSObject delegate) {
+    final _ret = _lib._objc_msgSend_858(
+        _id,
+        _lib._sel_initWithRequest_delegate_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLConnection connectionWithRequest_delegate_(
+      AVFAudio _lib, NSURLRequest? request, NSObject delegate) {
+    final _ret = _lib._objc_msgSend_859(
+        _lib._class_NSURLConnection1,
+        _lib._sel_connectionWithRequest_delegate_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get originalRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_originalRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get currentRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_currentRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void unscheduleFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(
+        _id,
+        _lib._sel_unscheduleFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  void setDelegateQueue_(NSOperationQueue? queue) {
+    return _lib._objc_msgSend_860(
+        _id, _lib._sel_setDelegateQueue_1, queue?._id ?? ffi.nullptr);
+  }
+
+  static bool canHandleRequest_(AVFAudio _lib, NSURLRequest? request) {
+    return _lib._objc_msgSend_861(_lib._class_NSURLConnection1,
+        _lib._sel_canHandleRequest_1, request?._id ?? ffi.nullptr);
+  }
+
+  static NSData sendSynchronousRequest_returningResponse_error_(
+      AVFAudio _lib,
+      NSURLRequest? request,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> response,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_862(
+        _lib._class_NSURLConnection1,
+        _lib._sel_sendSynchronousRequest_returningResponse_error_1,
+        request?._id ?? ffi.nullptr,
+        response,
+        error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void sendAsynchronousRequest_queue_completionHandler_(AVFAudio _lib,
+      NSURLRequest? request, NSOperationQueue? queue, ObjCBlock34 handler) {
+    return _lib._objc_msgSend_863(
+        _lib._class_NSURLConnection1,
+        _lib._sel_sendAsynchronousRequest_queue_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        queue?._id ?? ffi.nullptr,
+        handler._id);
+  }
+
+  static NSURLConnection new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLConnection1, _lib._sel_new1);
+    return NSURLConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLConnection alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLConnection1, _lib._sel_alloc1);
+    return NSURLConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLConnection1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLConnection1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLConnection1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLConnection1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLConnection1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLConnection1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLConnection1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock34_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock34_closureRegistry = <int, Function>{};
+int _ObjCBlock34_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock34_registerClosure(Function fn) {
+  final id = ++_ObjCBlock34_closureRegistryIndex;
+  _ObjCBlock34_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock34_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock34_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock34 extends _ObjCBlockBase {
+  ObjCBlock34._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock34.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock34_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock34.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock34_closureTrampoline)
+                    .cast(),
+                _ObjCBlock34_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLCredential extends NSObject {
+  NSURLCredential._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCredential] that points to the same underlying object as [other].
+  static NSURLCredential castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCredential._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCredential] that wraps the given raw object pointer.
+  static NSURLCredential castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCredential._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCredential].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLCredential1);
+  }
+
+  int get persistence {
+    return _lib._objc_msgSend_864(_id, _lib._sel_persistence1);
+  }
+
+  NSURLCredential initWithUser_password_persistence_(
+      NSString? user, NSString? password, int persistence) {
+    final _ret = _lib._objc_msgSend_865(
+        _id,
+        _lib._sel_initWithUser_password_persistence_1,
+        user?._id ?? ffi.nullptr,
+        password?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialWithUser_password_persistence_(
+      AVFAudio _lib, NSString? user, NSString? password, int persistence) {
+    final _ret = _lib._objc_msgSend_866(
+        _lib._class_NSURLCredential1,
+        _lib._sel_credentialWithUser_password_persistence_1,
+        user?._id ?? ffi.nullptr,
+        password?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get user {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_user1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get password {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_password1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get hasPassword {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasPassword1);
+  }
+
+  NSURLCredential initWithIdentity_certificates_persistence_(
+      SecIdentityRef identity, NSArray? certArray, int persistence) {
+    final _ret = _lib._objc_msgSend_867(
+        _id,
+        _lib._sel_initWithIdentity_certificates_persistence_1,
+        identity,
+        certArray?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialWithIdentity_certificates_persistence_(
+      AVFAudio _lib,
+      SecIdentityRef identity,
+      NSArray? certArray,
+      int persistence) {
+    final _ret = _lib._objc_msgSend_868(
+        _lib._class_NSURLCredential1,
+        _lib._sel_credentialWithIdentity_certificates_persistence_1,
+        identity,
+        certArray?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  SecIdentityRef get identity {
+    return _lib._objc_msgSend_869(_id, _lib._sel_identity1);
+  }
+
+  NSArray? get certificates {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_certificates1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLCredential initWithTrust_(SecTrustRef trust) {
+    final _ret = _lib._objc_msgSend_870(_id, _lib._sel_initWithTrust_1, trust);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialForTrust_(AVFAudio _lib, SecTrustRef trust) {
+    final _ret = _lib._objc_msgSend_871(
+        _lib._class_NSURLCredential1, _lib._sel_credentialForTrust_1, trust);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCredential1, _lib._sel_new1);
+    return NSURLCredential._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCredential alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCredential1, _lib._sel_alloc1);
+    return NSURLCredential._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCredential1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCredential1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLCredential1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCredential1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCredential1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCredential1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCredential1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLCredential1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredential1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLCredentialPersistence {
+  static const int NSURLCredentialPersistenceNone = 0;
+  static const int NSURLCredentialPersistenceForSession = 1;
+  static const int NSURLCredentialPersistencePermanent = 2;
+  static const int NSURLCredentialPersistenceSynchronizable = 3;
+}
+
+typedef SecIdentityRef = ffi.Pointer<__SecIdentity>;
+
+class __SecIdentity extends ffi.Opaque {}
+
+typedef SecTrustRef = ffi.Pointer<__SecTrust>;
+
+class __SecTrust extends ffi.Opaque {}
+
+class NSURLProtectionSpace extends NSObject {
+  NSURLProtectionSpace._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLProtectionSpace] that points to the same underlying object as [other].
+  static NSURLProtectionSpace castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLProtectionSpace._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLProtectionSpace] that wraps the given raw object pointer.
+  static NSURLProtectionSpace castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLProtectionSpace._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLProtectionSpace].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLProtectionSpace1);
+  }
+
+  NSURLProtectionSpace initWithHost_port_protocol_realm_authenticationMethod_(
+      NSString? host,
+      int port,
+      NSString? protocol,
+      NSString? realm,
+      NSString? authenticationMethod) {
+    final _ret = _lib._objc_msgSend_872(
+        _id,
+        _lib._sel_initWithHost_port_protocol_realm_authenticationMethod_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        protocol?._id ?? ffi.nullptr,
+        realm?._id ?? ffi.nullptr,
+        authenticationMethod?._id ?? ffi.nullptr);
+    return NSURLProtectionSpace._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLProtectionSpace initWithProxyHost_port_type_realm_authenticationMethod_(
+      NSString? host,
+      int port,
+      NSString? type,
+      NSString? realm,
+      NSString? authenticationMethod) {
+    final _ret = _lib._objc_msgSend_872(
+        _id,
+        _lib._sel_initWithProxyHost_port_type_realm_authenticationMethod_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        type?._id ?? ffi.nullptr,
+        realm?._id ?? ffi.nullptr,
+        authenticationMethod?._id ?? ffi.nullptr);
+    return NSURLProtectionSpace._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get realm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_realm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get receivesCredentialSecurely {
+    return _lib._objc_msgSend_12(_id, _lib._sel_receivesCredentialSecurely1);
+  }
+
+  bool get isProxy {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isProxy1);
+  }
+
+  NSString? get host {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_host1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get port {
+    return _lib._objc_msgSend_78(_id, _lib._sel_port1);
+  }
+
+  NSString? get proxyType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_proxyType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get protocol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_protocol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get authenticationMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_authenticationMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get distinguishedNames {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_distinguishedNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  SecTrustRef get serverTrust {
+    return _lib._objc_msgSend_873(_id, _lib._sel_serverTrust1);
+  }
+
+  static NSURLProtectionSpace new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtectionSpace1, _lib._sel_new1);
+    return NSURLProtectionSpace._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLProtectionSpace alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_alloc1);
+    return NSURLProtectionSpace._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLCredentialStorage extends NSObject {
+  NSURLCredentialStorage._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCredentialStorage] that points to the same underlying object as [other].
+  static NSURLCredentialStorage castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCredentialStorage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCredentialStorage] that wraps the given raw object pointer.
+  static NSURLCredentialStorage castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCredentialStorage._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCredentialStorage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLCredentialStorage1);
+  }
+
+  static NSURLCredentialStorage? getSharedCredentialStorage(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_874(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_sharedCredentialStorage1);
+    return _ret.address == 0
+        ? null
+        : NSURLCredentialStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary credentialsForProtectionSpace_(NSURLProtectionSpace? space) {
+    final _ret = _lib._objc_msgSend_875(_id,
+        _lib._sel_credentialsForProtectionSpace_1, space?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get allCredentials {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allCredentials1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_setCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_options_(NSURLCredential? credential,
+      NSURLProtectionSpace? space, NSDictionary? options) {
+    return _lib._objc_msgSend_877(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_options_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr);
+  }
+
+  NSURLCredential defaultCredentialForProtectionSpace_(
+      NSURLProtectionSpace? space) {
+    final _ret = _lib._objc_msgSend_878(
+        _id,
+        _lib._sel_defaultCredentialForProtectionSpace_1,
+        space?._id ?? ffi.nullptr);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setDefaultCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_setDefaultCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void getCredentialsForProtectionSpace_task_completionHandler_(
+      NSURLProtectionSpace? protectionSpace,
+      NSURLSessionTask? task,
+      ObjCBlock35 completionHandler) {
+    return _lib._objc_msgSend_879(
+        _id,
+        _lib._sel_getCredentialsForProtectionSpace_task_completionHandler_1,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void setCredential_forProtectionSpace_task_(NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_880(
+        _id,
+        _lib._sel_setCredential_forProtectionSpace_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_options_task_(
+      NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace,
+      NSDictionary? options,
+      NSURLSessionTask? task) {
+    return _lib._objc_msgSend_881(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_options_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  void getDefaultCredentialForProtectionSpace_task_completionHandler_(
+      NSURLProtectionSpace? space,
+      NSURLSessionTask? task,
+      ObjCBlock36 completionHandler) {
+    return _lib._objc_msgSend_882(
+        _id,
+        _lib._sel_getDefaultCredentialForProtectionSpace_task_completionHandler_1,
+        space?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void setDefaultCredential_forProtectionSpace_task_(
+      NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace,
+      NSURLSessionTask? task) {
+    return _lib._objc_msgSend_880(
+        _id,
+        _lib._sel_setDefaultCredential_forProtectionSpace_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  static NSURLCredentialStorage new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_new1);
+    return NSURLCredentialStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCredentialStorage alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_alloc1);
+    return NSURLCredentialStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock35_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock35_closureRegistry = <int, Function>{};
+int _ObjCBlock35_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock35_registerClosure(Function fn) {
+  final id = ++_ObjCBlock35_closureRegistryIndex;
+  _ObjCBlock35_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock35_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock35_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock35 extends _ObjCBlockBase {
+  ObjCBlock35._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock35.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock35_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock35.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock35_closureTrampoline)
+                    .cast(),
+                _ObjCBlock35_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock36_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock36_closureRegistry = <int, Function>{};
+int _ObjCBlock36_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock36_registerClosure(Function fn) {
+  final id = ++_ObjCBlock36_closureRegistryIndex;
+  _ObjCBlock36_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock36_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock36_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock36 extends _ObjCBlockBase {
+  ObjCBlock36._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock36.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock36_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock36.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock36_closureTrampoline)
+                    .cast(),
+                _ObjCBlock36_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLProtocol extends NSObject {
+  NSURLProtocol._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLProtocol] that points to the same underlying object as [other].
+  static NSURLProtocol castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLProtocol._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLProtocol] that wraps the given raw object pointer.
+  static NSURLProtocol castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLProtocol._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLProtocol].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLProtocol1);
+  }
+
+  NSURLProtocol initWithRequest_cachedResponse_client_(NSURLRequest? request,
+      NSCachedURLResponse? cachedResponse, NSObject? client) {
+    final _ret = _lib._objc_msgSend_883(
+        _id,
+        _lib._sel_initWithRequest_cachedResponse_client_1,
+        request?._id ?? ffi.nullptr,
+        cachedResponse?._id ?? ffi.nullptr,
+        client?._id ?? ffi.nullptr);
+    return NSURLProtocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get client {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_client1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get request {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_request1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse? get cachedResponse {
+    final _ret = _lib._objc_msgSend_884(_id, _lib._sel_cachedResponse1);
+    return _ret.address == 0
+        ? null
+        : NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool canInitWithRequest_(AVFAudio _lib, NSURLRequest? request) {
+    return _lib._objc_msgSend_861(_lib._class_NSURLProtocol1,
+        _lib._sel_canInitWithRequest_1, request?._id ?? ffi.nullptr);
+  }
+
+  static NSURLRequest canonicalRequestForRequest_(
+      AVFAudio _lib, NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_885(_lib._class_NSURLProtocol1,
+        _lib._sel_canonicalRequestForRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool requestIsCacheEquivalent_toRequest_(
+      AVFAudio _lib, NSURLRequest? a, NSURLRequest? b) {
+    return _lib._objc_msgSend_886(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_requestIsCacheEquivalent_toRequest_1,
+        a?._id ?? ffi.nullptr,
+        b?._id ?? ffi.nullptr);
+  }
+
+  void startLoading() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startLoading1);
+  }
+
+  void stopLoading() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopLoading1);
+  }
+
+  static NSObject propertyForKey_inRequest_(
+      AVFAudio _lib, NSString? key, NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_887(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_propertyForKey_inRequest_1,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setProperty_forKey_inRequest_(AVFAudio _lib, NSObject value,
+      NSString? key, NSMutableURLRequest? request) {
+    return _lib._objc_msgSend_894(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_setProperty_forKey_inRequest_1,
+        value._id,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  static void removePropertyForKey_inRequest_(
+      AVFAudio _lib, NSString? key, NSMutableURLRequest? request) {
+    return _lib._objc_msgSend_895(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_removePropertyForKey_inRequest_1,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  static bool registerClass_(AVFAudio _lib, NSObject protocolClass) {
+    return _lib._objc_msgSend_0(_lib._class_NSURLProtocol1,
+        _lib._sel_registerClass_1, protocolClass._id);
+  }
+
+  static void unregisterClass_(AVFAudio _lib, NSObject protocolClass) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtocol1,
+        _lib._sel_unregisterClass_1, protocolClass._id);
+  }
+
+  static bool canInitWithTask_(AVFAudio _lib, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_896(_lib._class_NSURLProtocol1,
+        _lib._sel_canInitWithTask_1, task?._id ?? ffi.nullptr);
+  }
+
+  NSURLProtocol initWithTask_cachedResponse_client_(NSURLSessionTask? task,
+      NSCachedURLResponse? cachedResponse, NSObject? client) {
+    final _ret = _lib._objc_msgSend_897(
+        _id,
+        _lib._sel_initWithTask_cachedResponse_client_1,
+        task?._id ?? ffi.nullptr,
+        cachedResponse?._id ?? ffi.nullptr,
+        client?._id ?? ffi.nullptr);
+    return NSURLProtocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionTask? get task {
+    final _ret = _lib._objc_msgSend_898(_id, _lib._sel_task1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLProtocol new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtocol1, _lib._sel_new1);
+    return NSURLProtocol._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLProtocol alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtocol1, _lib._sel_alloc1);
+    return NSURLProtocol._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtocol1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtocol1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtocol1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLProtocol1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtocol1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableURLRequest extends NSURLRequest {
+  NSMutableURLRequest._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableURLRequest] that points to the same underlying object as [other].
+  static NSMutableURLRequest castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableURLRequest._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableURLRequest] that wraps the given raw object pointer.
+  static NSMutableURLRequest castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableURLRequest._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableURLRequest].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableURLRequest1);
+  }
+
+  @override
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URL(NSURL? value) {
+    _lib._objc_msgSend_888(_id, _lib._sel_setURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  int get cachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_cachePolicy1);
+  }
+
+  set cachePolicy(int value) {
+    _lib._objc_msgSend_889(_id, _lib._sel_setCachePolicy_1, value);
+  }
+
+  @override
+  double get timeoutInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutInterval1);
+  }
+
+  set timeoutInterval(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setTimeoutInterval_1, value);
+  }
+
+  @override
+  NSURL? get mainDocumentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_mainDocumentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set mainDocumentURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setMainDocumentURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  set networkServiceType(int value) {
+    _lib._objc_msgSend_890(_id, _lib._sel_setNetworkServiceType_1, value);
+  }
+
+  @override
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  set allowsCellularAccess(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsCellularAccess_1, value);
+  }
+
+  @override
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  set allowsExpensiveNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsExpensiveNetworkAccess_1, value);
+  }
+
+  @override
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  set allowsConstrainedNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsConstrainedNetworkAccess_1, value);
+  }
+
+  @override
+  bool get assumesHTTP3Capable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_assumesHTTP3Capable1);
+  }
+
+  set assumesHTTP3Capable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAssumesHTTP3Capable_1, value);
+  }
+
+  @override
+  int get attribution {
+    return _lib._objc_msgSend_750(_id, _lib._sel_attribution1);
+  }
+
+  set attribution(int value) {
+    _lib._objc_msgSend_891(_id, _lib._sel_setAttribution_1, value);
+  }
+
+  @override
+  NSString? get HTTPMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_HTTPMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPMethod(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setHTTPMethod_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSDictionary? get allHTTPHeaderFields {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allHTTPHeaderFields1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set allHTTPHeaderFields(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setAllHTTPHeaderFields_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setValue_forHTTPHeaderField_(NSString? value, NSString? field) {
+    return _lib._objc_msgSend_483(_id, _lib._sel_setValue_forHTTPHeaderField_1,
+        value?._id ?? ffi.nullptr, field?._id ?? ffi.nullptr);
+  }
+
+  void addValue_forHTTPHeaderField_(NSString? value, NSString? field) {
+    return _lib._objc_msgSend_483(_id, _lib._sel_addValue_forHTTPHeaderField_1,
+        value?._id ?? ffi.nullptr, field?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSData? get HTTPBody {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_HTTPBody1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPBody(NSData? value) {
+    _lib._objc_msgSend_892(
+        _id, _lib._sel_setHTTPBody_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSInputStream? get HTTPBodyStream {
+    final _ret = _lib._objc_msgSend_760(_id, _lib._sel_HTTPBodyStream1);
+    return _ret.address == 0
+        ? null
+        : NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPBodyStream(NSInputStream? value) {
+    _lib._objc_msgSend_893(
+        _id, _lib._sel_setHTTPBodyStream_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  bool get HTTPShouldHandleCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldHandleCookies1);
+  }
+
+  set HTTPShouldHandleCookies(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldHandleCookies_1, value);
+  }
+
+  @override
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  set HTTPShouldUsePipelining(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldUsePipelining_1, value);
+  }
+
+  static NSMutableURLRequest requestWithURL_(AVFAudio _lib, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableURLRequest1,
+        _lib._sel_requestWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSMutableURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool getSupportsSecureCoding(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableURLRequest1, _lib._sel_supportsSecureCoding1);
+  }
+
+  static NSMutableURLRequest requestWithURL_cachePolicy_timeoutInterval_(
+      AVFAudio _lib, NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_requestWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSMutableURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableURLRequest new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableURLRequest1, _lib._sel_new1);
+    return NSMutableURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableURLRequest alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableURLRequest1, _lib._sel_alloc1);
+    return NSMutableURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableURLRequest1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableURLRequest1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableURLRequest1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableURLRequest1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLParser extends NSObject {
+  NSXMLParser._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLParser] that points to the same underlying object as [other].
+  static NSXMLParser castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLParser._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLParser] that wraps the given raw object pointer.
+  static NSXMLParser castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLParser._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLParser].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLParser1);
+  }
+
+  NSXMLParser initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLParser initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLParser initWithStream_(NSInputStream? stream) {
+    final _ret = _lib._objc_msgSend_899(
+        _id, _lib._sel_initWithStream_1, stream?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get shouldProcessNamespaces {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldProcessNamespaces1);
+  }
+
+  set shouldProcessNamespaces(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setShouldProcessNamespaces_1, value);
+  }
+
+  bool get shouldReportNamespacePrefixes {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldReportNamespacePrefixes1);
+  }
+
+  set shouldReportNamespacePrefixes(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldReportNamespacePrefixes_1, value);
+  }
+
+  int get externalEntityResolvingPolicy {
+    return _lib._objc_msgSend_900(
+        _id, _lib._sel_externalEntityResolvingPolicy1);
+  }
+
+  set externalEntityResolvingPolicy(int value) {
+    _lib._objc_msgSend_901(
+        _id, _lib._sel_setExternalEntityResolvingPolicy_1, value);
+  }
+
+  NSSet? get allowedExternalEntityURLs {
+    final _ret =
+        _lib._objc_msgSend_280(_id, _lib._sel_allowedExternalEntityURLs1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  set allowedExternalEntityURLs(NSSet? value) {
+    _lib._objc_msgSend_902(_id, _lib._sel_setAllowedExternalEntityURLs_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool parse() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_parse1);
+  }
+
+  void abortParsing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_abortParsing1);
+  }
+
+  NSError? get parserError {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_parserError1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get shouldResolveExternalEntities {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldResolveExternalEntities1);
+  }
+
+  set shouldResolveExternalEntities(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldResolveExternalEntities_1, value);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get lineNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_lineNumber1);
+  }
+
+  int get columnNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_columnNumber1);
+  }
+
+  static NSXMLParser new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLParser1, _lib._sel_new1);
+    return NSXMLParser._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLParser alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLParser1, _lib._sel_alloc1);
+    return NSXMLParser._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLParser1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLParser1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLParser1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLParser1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLParser1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLParser1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLParser1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLParser1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLParser1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLParserExternalEntityResolvingPolicy {
+  static const int NSXMLParserResolveExternalEntitiesNever = 0;
+  static const int NSXMLParserResolveExternalEntitiesNoNetwork = 1;
+  static const int NSXMLParserResolveExternalEntitiesSameOriginOnly = 2;
+  static const int NSXMLParserResolveExternalEntitiesAlways = 3;
+}
+
+class NSFileWrapper extends NSObject {
+  NSFileWrapper._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileWrapper] that points to the same underlying object as [other].
+  static NSFileWrapper castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileWrapper._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileWrapper] that wraps the given raw object pointer.
+  static NSFileWrapper castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileWrapper._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileWrapper].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileWrapper1);
+  }
+
+  NSFileWrapper initWithURL_options_error_(
+      NSURL? url, int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_903(
+        _id,
+        _lib._sel_initWithURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        options,
+        outError);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initDirectoryWithFileWrappers_(
+      NSDictionary? childrenByPreferredName) {
+    final _ret = _lib._objc_msgSend_143(
+        _id,
+        _lib._sel_initDirectoryWithFileWrappers_1,
+        childrenByPreferredName?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initRegularFileWithContents_(NSData? contents) {
+    final _ret = _lib._objc_msgSend_242(_id,
+        _lib._sel_initRegularFileWithContents_1, contents?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initSymbolicLinkWithDestinationURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id,
+        _lib._sel_initSymbolicLinkWithDestinationURL_1,
+        url?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initWithSerializedRepresentation_(
+      NSData? serializeRepresentation) {
+    final _ret = _lib._objc_msgSend_242(
+        _id,
+        _lib._sel_initWithSerializedRepresentation_1,
+        serializeRepresentation?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get directory {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDirectory1);
+  }
+
+  bool get regularFile {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRegularFile1);
+  }
+
+  bool get symbolicLink {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSymbolicLink1);
+  }
+
+  NSString? get preferredFilename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_preferredFilename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set preferredFilename(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPreferredFilename_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get filename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_filename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set filename(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setFilename_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get fileAttributes {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_fileAttributes1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set fileAttributes(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setFileAttributes_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool matchesContentsOfURL_(NSURL? url) {
+    return _lib._objc_msgSend_229(
+        _id, _lib._sel_matchesContentsOfURL_1, url?._id ?? ffi.nullptr);
+  }
+
+  bool readFromURL_options_error_(
+      NSURL? url, int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_904(_id, _lib._sel_readFromURL_options_error_1,
+        url?._id ?? ffi.nullptr, options, outError);
+  }
+
+  bool writeToURL_options_originalContentsURL_error_(
+      NSURL? url,
+      int options,
+      NSURL? originalContentsURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_905(
+        _id,
+        _lib._sel_writeToURL_options_originalContentsURL_error_1,
+        url?._id ?? ffi.nullptr,
+        options,
+        originalContentsURL?._id ?? ffi.nullptr,
+        outError);
+  }
+
+  NSData? get serializedRepresentation {
+    final _ret =
+        _lib._objc_msgSend_39(_id, _lib._sel_serializedRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addFileWrapper_(NSFileWrapper? child) {
+    final _ret = _lib._objc_msgSend_906(
+        _id, _lib._sel_addFileWrapper_1, child?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addRegularFileWithContents_preferredFilename_(
+      NSData? data, NSString? fileName) {
+    final _ret = _lib._objc_msgSend_907(
+        _id,
+        _lib._sel_addRegularFileWithContents_preferredFilename_1,
+        data?._id ?? ffi.nullptr,
+        fileName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeFileWrapper_(NSFileWrapper? child) {
+    return _lib._objc_msgSend_908(
+        _id, _lib._sel_removeFileWrapper_1, child?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get fileWrappers {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_fileWrappers1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString keyForFileWrapper_(NSFileWrapper? child) {
+    final _ret = _lib._objc_msgSend_906(
+        _id, _lib._sel_keyForFileWrapper_1, child?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get regularFileContents {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_regularFileContents1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get symbolicLinkDestinationURL {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_symbolicLinkDestinationURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithPath_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initSymbolicLinkWithDestination_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_initSymbolicLinkWithDestination_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool needsToBeUpdatedFromPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_needsToBeUpdatedFromPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool updateFromPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_updateFromPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool writeToFile_atomically_updateFilenames_(
+      NSString? path, bool atomicFlag, bool updateFilenamesFlag) {
+    return _lib._objc_msgSend_909(
+        _id,
+        _lib._sel_writeToFile_atomically_updateFilenames_1,
+        path?._id ?? ffi.nullptr,
+        atomicFlag,
+        updateFilenamesFlag);
+  }
+
+  NSString addFileWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_addFileWithPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addSymbolicLinkWithDestination_preferredFilename_(
+      NSString? path, NSString? filename) {
+    final _ret = _lib._objc_msgSend_324(
+        _id,
+        _lib._sel_addSymbolicLinkWithDestination_preferredFilename_1,
+        path?._id ?? ffi.nullptr,
+        filename?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString symbolicLinkDestination() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_symbolicLinkDestination1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileWrapper new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileWrapper1, _lib._sel_new1);
+    return NSFileWrapper._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileWrapper alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileWrapper1, _lib._sel_alloc1);
+    return NSFileWrapper._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileWrapper1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileWrapper1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileWrapper1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileWrapper1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileWrapper1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSFileWrapperReadingOptions {
+  static const int NSFileWrapperReadingImmediate = 1;
+  static const int NSFileWrapperReadingWithoutMapping = 2;
+}
+
+abstract class NSFileWrapperWritingOptions {
+  static const int NSFileWrapperWritingAtomic = 1;
+  static const int NSFileWrapperWritingWithNameUpdating = 2;
+}
+
+class NSURLSession extends NSObject {
+  NSURLSession._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSession] that points to the same underlying object as [other].
+  static NSURLSession castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSession._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSession] that wraps the given raw object pointer.
+  static NSURLSession castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSession._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSession].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLSession1);
+  }
+
+  static NSURLSession? getSharedSession(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_910(
+        _lib._class_NSURLSession1, _lib._sel_sharedSession1);
+    return _ret.address == 0
+        ? null
+        : NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession sessionWithConfiguration_(
+      AVFAudio _lib, NSURLSessionConfiguration? configuration) {
+    final _ret = _lib._objc_msgSend_921(
+        _lib._class_NSURLSession1,
+        _lib._sel_sessionWithConfiguration_1,
+        configuration?._id ?? ffi.nullptr);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession sessionWithConfiguration_delegate_delegateQueue_(
+      AVFAudio _lib,
+      NSURLSessionConfiguration? configuration,
+      NSObject? delegate,
+      NSOperationQueue? queue) {
+    final _ret = _lib._objc_msgSend_922(
+        _lib._class_NSURLSession1,
+        _lib._sel_sessionWithConfiguration_delegate_delegateQueue_1,
+        configuration?._id ?? ffi.nullptr,
+        delegate?._id ?? ffi.nullptr,
+        queue?._id ?? ffi.nullptr);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOperationQueue? get delegateQueue {
+    final _ret = _lib._objc_msgSend_790(_id, _lib._sel_delegateQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionConfiguration? get configuration {
+    final _ret = _lib._objc_msgSend_911(_id, _lib._sel_configuration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sessionDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sessionDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set sessionDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSessionDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  void finishTasksAndInvalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finishTasksAndInvalidate1);
+  }
+
+  void invalidateAndCancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidateAndCancel1);
+  }
+
+  void resetWithCompletionHandler_(ObjCBlock16 completionHandler) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_resetWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void flushWithCompletionHandler_(ObjCBlock16 completionHandler) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_flushWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void getTasksWithCompletionHandler_(ObjCBlock37 completionHandler) {
+    return _lib._objc_msgSend_923(
+        _id, _lib._sel_getTasksWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void getAllTasksWithCompletionHandler_(ObjCBlock30 completionHandler) {
+    return _lib._objc_msgSend_924(_id,
+        _lib._sel_getAllTasksWithCompletionHandler_1, completionHandler._id);
+  }
+
+  NSURLSessionDataTask dataTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_925(
+        _id, _lib._sel_dataTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_926(
+        _id, _lib._sel_dataTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromFile_(
+      NSURLRequest? request, NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_927(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromFile_1,
+        request?._id ?? ffi.nullptr,
+        fileURL?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromData_(
+      NSURLRequest? request, NSData? bodyData) {
+    final _ret = _lib._objc_msgSend_928(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromData_1,
+        request?._id ?? ffi.nullptr,
+        bodyData?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithStreamedRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_929(_id,
+        _lib._sel_uploadTaskWithStreamedRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_931(
+        _id, _lib._sel_downloadTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_932(
+        _id, _lib._sel_downloadTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithResumeData_(NSData? resumeData) {
+    final _ret = _lib._objc_msgSend_933(_id,
+        _lib._sel_downloadTaskWithResumeData_1, resumeData?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionStreamTask streamTaskWithHostName_port_(
+      NSString? hostname, int port) {
+    final _ret = _lib._objc_msgSend_936(
+        _id,
+        _lib._sel_streamTaskWithHostName_port_1,
+        hostname?._id ?? ffi.nullptr,
+        port);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionStreamTask streamTaskWithNetService_(NSNetService? service) {
+    final _ret = _lib._objc_msgSend_942(
+        _id, _lib._sel_streamTaskWithNetService_1, service?._id ?? ffi.nullptr);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_949(
+        _id, _lib._sel_webSocketTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithURL_protocols_(
+      NSURL? url, NSArray? protocols) {
+    final _ret = _lib._objc_msgSend_950(
+        _id,
+        _lib._sel_webSocketTaskWithURL_protocols_1,
+        url?._id ?? ffi.nullptr,
+        protocols?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_951(
+        _id, _lib._sel_webSocketTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSession init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSession1, _lib._sel_new1);
+    return NSURLSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithRequest_completionHandler_(
+      NSURLRequest? request, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_952(
+        _id,
+        _lib._sel_dataTaskWithRequest_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithURL_completionHandler_(
+      NSURL? url, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_953(
+        _id,
+        _lib._sel_dataTaskWithURL_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromFile_completionHandler_(
+      NSURLRequest? request, NSURL? fileURL, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_954(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromFile_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        fileURL?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromData_completionHandler_(
+      NSURLRequest? request, NSData? bodyData, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_955(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromData_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        bodyData?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithRequest_completionHandler_(
+      NSURLRequest? request, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_956(
+        _id,
+        _lib._sel_downloadTaskWithRequest_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithURL_completionHandler_(
+      NSURL? url, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_957(
+        _id,
+        _lib._sel_downloadTaskWithURL_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithResumeData_completionHandler_(
+      NSData? resumeData, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_958(
+        _id,
+        _lib._sel_downloadTaskWithResumeData_completionHandler_1,
+        resumeData?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSession1, _lib._sel_alloc1);
+    return NSURLSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSession1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSession1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSession1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSession1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSession1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLSession1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSession1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionConfiguration extends NSObject {
+  NSURLSessionConfiguration._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionConfiguration] that points to the same underlying object as [other].
+  static NSURLSessionConfiguration castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionConfiguration._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionConfiguration] that wraps the given raw object pointer.
+  static NSURLSessionConfiguration castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionConfiguration._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionConfiguration].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionConfiguration1);
+  }
+
+  static NSURLSessionConfiguration? getDefaultSessionConfiguration(
+      AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_911(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_defaultSessionConfiguration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration? getEphemeralSessionConfiguration(
+      AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_911(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_ephemeralSessionConfiguration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration
+      backgroundSessionConfigurationWithIdentifier_(
+          AVFAudio _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_912(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_backgroundSessionConfigurationWithIdentifier_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get identifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_identifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get requestCachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_requestCachePolicy1);
+  }
+
+  set requestCachePolicy(int value) {
+    _lib._objc_msgSend_889(_id, _lib._sel_setRequestCachePolicy_1, value);
+  }
+
+  double get timeoutIntervalForRequest {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutIntervalForRequest1);
+  }
+
+  set timeoutIntervalForRequest(double value) {
+    _lib._objc_msgSend_474(
+        _id, _lib._sel_setTimeoutIntervalForRequest_1, value);
+  }
+
+  double get timeoutIntervalForResource {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutIntervalForResource1);
+  }
+
+  set timeoutIntervalForResource(double value) {
+    _lib._objc_msgSend_474(
+        _id, _lib._sel_setTimeoutIntervalForResource_1, value);
+  }
+
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  set networkServiceType(int value) {
+    _lib._objc_msgSend_890(_id, _lib._sel_setNetworkServiceType_1, value);
+  }
+
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  set allowsCellularAccess(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsCellularAccess_1, value);
+  }
+
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  set allowsExpensiveNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsExpensiveNetworkAccess_1, value);
+  }
+
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  set allowsConstrainedNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsConstrainedNetworkAccess_1, value);
+  }
+
+  bool get waitsForConnectivity {
+    return _lib._objc_msgSend_12(_id, _lib._sel_waitsForConnectivity1);
+  }
+
+  set waitsForConnectivity(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setWaitsForConnectivity_1, value);
+  }
+
+  bool get discretionary {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDiscretionary1);
+  }
+
+  set discretionary(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setDiscretionary_1, value);
+  }
+
+  NSString? get sharedContainerIdentifier {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_sharedContainerIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set sharedContainerIdentifier(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setSharedContainerIdentifier_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get sessionSendsLaunchEvents {
+    return _lib._objc_msgSend_12(_id, _lib._sel_sessionSendsLaunchEvents1);
+  }
+
+  set sessionSendsLaunchEvents(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setSessionSendsLaunchEvents_1, value);
+  }
+
+  NSDictionary? get connectionProxyDictionary {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_connectionProxyDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set connectionProxyDictionary(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setConnectionProxyDictionary_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  int get TLSMinimumSupportedProtocol {
+    return _lib._objc_msgSend_913(_id, _lib._sel_TLSMinimumSupportedProtocol1);
+  }
+
+  set TLSMinimumSupportedProtocol(int value) {
+    _lib._objc_msgSend_914(
+        _id, _lib._sel_setTLSMinimumSupportedProtocol_1, value);
+  }
+
+  int get TLSMaximumSupportedProtocol {
+    return _lib._objc_msgSend_913(_id, _lib._sel_TLSMaximumSupportedProtocol1);
+  }
+
+  set TLSMaximumSupportedProtocol(int value) {
+    _lib._objc_msgSend_914(
+        _id, _lib._sel_setTLSMaximumSupportedProtocol_1, value);
+  }
+
+  int get TLSMinimumSupportedProtocolVersion {
+    return _lib._objc_msgSend_915(
+        _id, _lib._sel_TLSMinimumSupportedProtocolVersion1);
+  }
+
+  set TLSMinimumSupportedProtocolVersion(int value) {
+    _lib._objc_msgSend_916(
+        _id, _lib._sel_setTLSMinimumSupportedProtocolVersion_1, value);
+  }
+
+  int get TLSMaximumSupportedProtocolVersion {
+    return _lib._objc_msgSend_915(
+        _id, _lib._sel_TLSMaximumSupportedProtocolVersion1);
+  }
+
+  set TLSMaximumSupportedProtocolVersion(int value) {
+    _lib._objc_msgSend_916(
+        _id, _lib._sel_setTLSMaximumSupportedProtocolVersion_1, value);
+  }
+
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  set HTTPShouldUsePipelining(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldUsePipelining_1, value);
+  }
+
+  bool get HTTPShouldSetCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldSetCookies1);
+  }
+
+  set HTTPShouldSetCookies(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldSetCookies_1, value);
+  }
+
+  int get HTTPCookieAcceptPolicy {
+    return _lib._objc_msgSend_745(_id, _lib._sel_HTTPCookieAcceptPolicy1);
+  }
+
+  set HTTPCookieAcceptPolicy(int value) {
+    _lib._objc_msgSend_746(_id, _lib._sel_setHTTPCookieAcceptPolicy_1, value);
+  }
+
+  NSDictionary? get HTTPAdditionalHeaders {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_HTTPAdditionalHeaders1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPAdditionalHeaders(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setHTTPAdditionalHeaders_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get HTTPMaximumConnectionsPerHost {
+    return _lib._objc_msgSend_78(_id, _lib._sel_HTTPMaximumConnectionsPerHost1);
+  }
+
+  set HTTPMaximumConnectionsPerHost(int value) {
+    _lib._objc_msgSend_558(
+        _id, _lib._sel_setHTTPMaximumConnectionsPerHost_1, value);
+  }
+
+  NSHTTPCookieStorage? get HTTPCookieStorage {
+    final _ret = _lib._objc_msgSend_739(_id, _lib._sel_HTTPCookieStorage1);
+    return _ret.address == 0
+        ? null
+        : NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPCookieStorage(NSHTTPCookieStorage? value) {
+    _lib._objc_msgSend_917(
+        _id, _lib._sel_setHTTPCookieStorage_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCredentialStorage? get URLCredentialStorage {
+    final _ret = _lib._objc_msgSend_874(_id, _lib._sel_URLCredentialStorage1);
+    return _ret.address == 0
+        ? null
+        : NSURLCredentialStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URLCredentialStorage(NSURLCredentialStorage? value) {
+    _lib._objc_msgSend_918(
+        _id, _lib._sel_setURLCredentialStorage_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCache? get URLCache {
+    final _ret = _lib._objc_msgSend_844(_id, _lib._sel_URLCache1);
+    return _ret.address == 0
+        ? null
+        : NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URLCache(NSURLCache? value) {
+    _lib._objc_msgSend_845(
+        _id, _lib._sel_setURLCache_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get shouldUseExtendedBackgroundIdleMode {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_shouldUseExtendedBackgroundIdleMode1);
+  }
+
+  set shouldUseExtendedBackgroundIdleMode(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldUseExtendedBackgroundIdleMode_1, value);
+  }
+
+  NSArray? get protocolClasses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_protocolClasses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set protocolClasses(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setProtocolClasses_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get multipathServiceType {
+    return _lib._objc_msgSend_919(_id, _lib._sel_multipathServiceType1);
+  }
+
+  set multipathServiceType(int value) {
+    _lib._objc_msgSend_920(_id, _lib._sel_setMultipathServiceType_1, value);
+  }
+
+  @override
+  NSURLSessionConfiguration init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_new1);
+    return NSURLSessionConfiguration._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionConfiguration backgroundSessionConfiguration_(
+      AVFAudio _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_912(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_backgroundSessionConfiguration_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_alloc1);
+    return NSURLSessionConfiguration._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class SSLProtocol {
+  static const int kSSLProtocolUnknown = 0;
+  static const int kTLSProtocol1 = 4;
+  static const int kTLSProtocol11 = 7;
+  static const int kTLSProtocol12 = 8;
+  static const int kDTLSProtocol1 = 9;
+  static const int kTLSProtocol13 = 10;
+  static const int kDTLSProtocol12 = 11;
+  static const int kTLSProtocolMaxSupported = 999;
+  static const int kSSLProtocol2 = 1;
+  static const int kSSLProtocol3 = 2;
+  static const int kSSLProtocol3Only = 3;
+  static const int kTLSProtocol1Only = 5;
+  static const int kSSLProtocolAll = 6;
+}
+
+abstract class tls_protocol_version_t {
+  static const int tls_protocol_version_TLSv10 = 769;
+  static const int tls_protocol_version_TLSv11 = 770;
+  static const int tls_protocol_version_TLSv12 = 771;
+  static const int tls_protocol_version_TLSv13 = 772;
+  static const int tls_protocol_version_DTLSv10 = -257;
+  static const int tls_protocol_version_DTLSv12 = -259;
+}
+
+abstract class NSURLSessionMultipathServiceType {
+  static const int NSURLSessionMultipathServiceTypeNone = 0;
+  static const int NSURLSessionMultipathServiceTypeHandover = 1;
+  static const int NSURLSessionMultipathServiceTypeInteractive = 2;
+  static const int NSURLSessionMultipathServiceTypeAggregate = 3;
+}
+
+void _ObjCBlock37_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock37_closureRegistry = <int, Function>{};
+int _ObjCBlock37_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock37_registerClosure(Function fn) {
+  final id = ++_ObjCBlock37_closureRegistryIndex;
+  _ObjCBlock37_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock37_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock37_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock37 extends _ObjCBlockBase {
+  ObjCBlock37._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock37.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock37_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock37.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock37_closureTrampoline)
+                    .cast(),
+                _ObjCBlock37_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLSessionUploadTask extends NSURLSessionDataTask {
+  NSURLSessionUploadTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionUploadTask] that points to the same underlying object as [other].
+  static NSURLSessionUploadTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionUploadTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionUploadTask] that wraps the given raw object pointer.
+  static NSURLSessionUploadTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionUploadTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionUploadTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionUploadTask1);
+  }
+
+  @override
+  NSURLSessionUploadTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionUploadTask new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_new1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionUploadTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_alloc1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionDownloadTask extends NSURLSessionTask {
+  NSURLSessionDownloadTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionDownloadTask] that points to the same underlying object as [other].
+  static NSURLSessionDownloadTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionDownloadTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionDownloadTask] that wraps the given raw object pointer.
+  static NSURLSessionDownloadTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionDownloadTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionDownloadTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionDownloadTask1);
+  }
+
+  void cancelByProducingResumeData_(ObjCBlock38 completionHandler) {
+    return _lib._objc_msgSend_930(
+        _id, _lib._sel_cancelByProducingResumeData_1, completionHandler._id);
+  }
+
+  @override
+  NSURLSessionDownloadTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionDownloadTask new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_new1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionDownloadTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_alloc1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock38_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock38_closureRegistry = <int, Function>{};
+int _ObjCBlock38_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock38_registerClosure(Function fn) {
+  final id = ++_ObjCBlock38_closureRegistryIndex;
+  _ObjCBlock38_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock38_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock38_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock38 extends _ObjCBlockBase {
+  ObjCBlock38._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock38.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock38_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock38.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock38_closureTrampoline)
+                    .cast(),
+                _ObjCBlock38_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLSessionStreamTask extends NSURLSessionTask {
+  NSURLSessionStreamTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionStreamTask] that points to the same underlying object as [other].
+  static NSURLSessionStreamTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionStreamTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionStreamTask] that wraps the given raw object pointer.
+  static NSURLSessionStreamTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionStreamTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionStreamTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionStreamTask1);
+  }
+
+  void readDataOfMinLength_maxLength_timeout_completionHandler_(int minBytes,
+      int maxBytes, double timeout, ObjCBlock39 completionHandler) {
+    return _lib._objc_msgSend_934(
+        _id,
+        _lib._sel_readDataOfMinLength_maxLength_timeout_completionHandler_1,
+        minBytes,
+        maxBytes,
+        timeout,
+        completionHandler._id);
+  }
+
+  void writeData_timeout_completionHandler_(
+      NSData? data, double timeout, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_935(
+        _id,
+        _lib._sel_writeData_timeout_completionHandler_1,
+        data?._id ?? ffi.nullptr,
+        timeout,
+        completionHandler._id);
+  }
+
+  void captureStreams() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_captureStreams1);
+  }
+
+  void closeWrite() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeWrite1);
+  }
+
+  void closeRead() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeRead1);
+  }
+
+  void startSecureConnection() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startSecureConnection1);
+  }
+
+  void stopSecureConnection() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopSecureConnection1);
+  }
+
+  @override
+  NSURLSessionStreamTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionStreamTask new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_new1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionStreamTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_alloc1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock39_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock39_closureRegistry = <int, Function>{};
+int _ObjCBlock39_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock39_registerClosure(Function fn) {
+  final id = ++_ObjCBlock39_closureRegistryIndex;
+  _ObjCBlock39_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock39_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock39_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock39 extends _ObjCBlockBase {
+  ObjCBlock39._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock39.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock39_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock39.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock39_closureTrampoline)
+                    .cast(),
+                _ObjCBlock39_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSNetService extends NSObject {
+  NSNetService._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNetService] that points to the same underlying object as [other].
+  static NSNetService castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNetService._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNetService] that wraps the given raw object pointer.
+  static NSNetService castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNetService._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNetService].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSNetService1);
+  }
+
+  NSNetService initWithDomain_type_name_port_(
+      NSString? domain, NSString? type, NSString? name, int port) {
+    final _ret = _lib._objc_msgSend_937(
+        _id,
+        _lib._sel_initWithDomain_type_name_port_1,
+        domain?._id ?? ffi.nullptr,
+        type?._id ?? ffi.nullptr,
+        name?._id ?? ffi.nullptr,
+        port);
+    return NSNetService._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNetService initWithDomain_type_name_(
+      NSString? domain, NSString? type, NSString? name) {
+    final _ret = _lib._objc_msgSend_26(
+        _id,
+        _lib._sel_initWithDomain_type_name_1,
+        domain?._id ?? ffi.nullptr,
+        type?._id ?? ffi.nullptr,
+        name?._id ?? ffi.nullptr);
+    return NSNetService._(_ret, _lib, retain: true, release: true);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get includesPeerToPeer {
+    return _lib._objc_msgSend_12(_id, _lib._sel_includesPeerToPeer1);
+  }
+
+  set includesPeerToPeer(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setIncludesPeerToPeer_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get type {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_type1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get domain {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get hostName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_hostName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get addresses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_addresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get port {
+    return _lib._objc_msgSend_78(_id, _lib._sel_port1);
+  }
+
+  void publish() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_publish1);
+  }
+
+  void publishWithOptions_(int options) {
+    return _lib._objc_msgSend_938(_id, _lib._sel_publishWithOptions_1, options);
+  }
+
+  void resolve() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resolve1);
+  }
+
+  void stop() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stop1);
+  }
+
+  static NSDictionary dictionaryFromTXTRecordData_(
+      AVFAudio _lib, NSData? txtData) {
+    final _ret = _lib._objc_msgSend_939(_lib._class_NSNetService1,
+        _lib._sel_dictionaryFromTXTRecordData_1, txtData?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataFromTXTRecordDictionary_(
+      AVFAudio _lib, NSDictionary? txtDictionary) {
+    final _ret = _lib._objc_msgSend_940(
+        _lib._class_NSNetService1,
+        _lib._sel_dataFromTXTRecordDictionary_1,
+        txtDictionary?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void resolveWithTimeout_(double timeout) {
+    return _lib._objc_msgSend_473(_id, _lib._sel_resolveWithTimeout_1, timeout);
+  }
+
+  bool getInputStream_outputStream_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_941(_id, _lib._sel_getInputStream_outputStream_1,
+        inputStream, outputStream);
+  }
+
+  bool setTXTRecordData_(NSData? recordData) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_setTXTRecordData_1, recordData?._id ?? ffi.nullptr);
+  }
+
+  NSData TXTRecordData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_TXTRecordData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void startMonitoring() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startMonitoring1);
+  }
+
+  void stopMonitoring() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopMonitoring1);
+  }
+
+  static NSNetService new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNetService1, _lib._sel_new1);
+    return NSNetService._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNetService alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNetService1, _lib._sel_alloc1);
+    return NSNetService._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNetService1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNetService1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNetService1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNetService1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNetService1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNetService1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNetService1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNetService1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNetService1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSNetServiceOptions {
+  static const int NSNetServiceNoAutoRename = 1;
+  static const int NSNetServiceListenForConnections = 2;
+}
+
+class NSURLSessionWebSocketTask extends NSURLSessionTask {
+  NSURLSessionWebSocketTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionWebSocketTask] that points to the same underlying object as [other].
+  static NSURLSessionWebSocketTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionWebSocketTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionWebSocketTask] that wraps the given raw object pointer.
+  static NSURLSessionWebSocketTask castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionWebSocketTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionWebSocketTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionWebSocketTask1);
+  }
+
+  void sendMessage_completionHandler_(
+      NSURLSessionWebSocketMessage? message, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_944(
+        _id,
+        _lib._sel_sendMessage_completionHandler_1,
+        message?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void receiveMessageWithCompletionHandler_(ObjCBlock40 completionHandler) {
+    return _lib._objc_msgSend_945(_id,
+        _lib._sel_receiveMessageWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void sendPingWithPongReceiveHandler_(ObjCBlock15 pongReceiveHandler) {
+    return _lib._objc_msgSend_946(_id,
+        _lib._sel_sendPingWithPongReceiveHandler_1, pongReceiveHandler._id);
+  }
+
+  void cancelWithCloseCode_reason_(int closeCode, NSData? reason) {
+    return _lib._objc_msgSend_947(_id, _lib._sel_cancelWithCloseCode_reason_1,
+        closeCode, reason?._id ?? ffi.nullptr);
+  }
+
+  int get maximumMessageSize {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maximumMessageSize1);
+  }
+
+  set maximumMessageSize(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMaximumMessageSize_1, value);
+  }
+
+  int get closeCode {
+    return _lib._objc_msgSend_948(_id, _lib._sel_closeCode1);
+  }
+
+  NSData? get closeReason {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_closeReason1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSessionWebSocketTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionWebSocketTask new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_new1);
+    return NSURLSessionWebSocketTask._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionWebSocketTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_alloc1);
+    return NSURLSessionWebSocketTask._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionWebSocketMessage extends NSObject {
+  NSURLSessionWebSocketMessage._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionWebSocketMessage] that points to the same underlying object as [other].
+  static NSURLSessionWebSocketMessage castFrom<T extends _ObjCWrapper>(
+      T other) {
+    return NSURLSessionWebSocketMessage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionWebSocketMessage] that wraps the given raw object pointer.
+  static NSURLSessionWebSocketMessage castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionWebSocketMessage._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionWebSocketMessage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionWebSocketMessage1);
+  }
+
+  NSURLSessionWebSocketMessage initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketMessage initWithString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, string?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  int get type {
+    return _lib._objc_msgSend_943(_id, _lib._sel_type1);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSessionWebSocketMessage init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  static NSURLSessionWebSocketMessage new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketMessage1, _lib._sel_new1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionWebSocketMessage alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketMessage1, _lib._sel_alloc1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLSessionWebSocketMessageType {
+  static const int NSURLSessionWebSocketMessageTypeData = 0;
+  static const int NSURLSessionWebSocketMessageTypeString = 1;
+}
+
+void _ObjCBlock40_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock40_closureRegistry = <int, Function>{};
+int _ObjCBlock40_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock40_registerClosure(Function fn) {
+  final id = ++_ObjCBlock40_closureRegistryIndex;
+  _ObjCBlock40_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock40_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock40_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock40 extends _ObjCBlockBase {
+  ObjCBlock40._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock40.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock40_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock40.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock40_closureTrampoline)
+                    .cast(),
+                _ObjCBlock40_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSURLSessionWebSocketCloseCode {
+  static const int NSURLSessionWebSocketCloseCodeInvalid = 0;
+  static const int NSURLSessionWebSocketCloseCodeNormalClosure = 1000;
+  static const int NSURLSessionWebSocketCloseCodeGoingAway = 1001;
+  static const int NSURLSessionWebSocketCloseCodeProtocolError = 1002;
+  static const int NSURLSessionWebSocketCloseCodeUnsupportedData = 1003;
+  static const int NSURLSessionWebSocketCloseCodeNoStatusReceived = 1005;
+  static const int NSURLSessionWebSocketCloseCodeAbnormalClosure = 1006;
+  static const int NSURLSessionWebSocketCloseCodeInvalidFramePayloadData = 1007;
+  static const int NSURLSessionWebSocketCloseCodePolicyViolation = 1008;
+  static const int NSURLSessionWebSocketCloseCodeMessageTooBig = 1009;
+  static const int NSURLSessionWebSocketCloseCodeMandatoryExtensionMissing =
+      1010;
+  static const int NSURLSessionWebSocketCloseCodeInternalServerError = 1011;
+  static const int NSURLSessionWebSocketCloseCodeTLSHandshakeFailure = 1015;
+}
+
+void _ObjCBlock41_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock41_closureRegistry = <int, Function>{};
+int _ObjCBlock41_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock41_registerClosure(Function fn) {
+  final id = ++_ObjCBlock41_closureRegistryIndex;
+  _ObjCBlock41_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock41_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock41_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock41 extends _ObjCBlockBase {
+  ObjCBlock41._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock41.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock41_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock41.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock41_closureTrampoline)
+                    .cast(),
+                _ObjCBlock41_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock42_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock42_closureRegistry = <int, Function>{};
+int _ObjCBlock42_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock42_registerClosure(Function fn) {
+  final id = ++_ObjCBlock42_closureRegistryIndex;
+  _ObjCBlock42_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock42_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock42_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock42 extends _ObjCBlockBase {
+  ObjCBlock42._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock42.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock42_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock42.fromFunction(
+      AVFAudio lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock42_closureTrampoline)
+                    .cast(),
+                _ObjCBlock42_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSProtocolChecker extends NSProxy {
+  NSProtocolChecker._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProtocolChecker] that points to the same underlying object as [other].
+  static NSProtocolChecker castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProtocolChecker._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSProtocolChecker] that wraps the given raw object pointer.
+  static NSProtocolChecker castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProtocolChecker._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProtocolChecker].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSProtocolChecker1);
+  }
+
+  Protocol? get protocol {
+    final _ret = _lib._objc_msgSend_959(_id, _lib._sel_protocol1);
+    return _ret.address == 0
+        ? null
+        : Protocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get target {
+    final _ret = _lib._objc_msgSend_788(_id, _lib._sel_target1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProtocolChecker protocolCheckerWithTarget_protocol_(
+      AVFAudio _lib, NSObject? anObject, Protocol? aProtocol) {
+    final _ret = _lib._objc_msgSend_960(
+        _lib._class_NSProtocolChecker1,
+        _lib._sel_protocolCheckerWithTarget_protocol_1,
+        anObject?._id ?? ffi.nullptr,
+        aProtocol?._id ?? ffi.nullptr);
+    return NSProtocolChecker._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProtocolChecker initWithTarget_protocol_(
+      NSObject? anObject, Protocol? aProtocol) {
+    final _ret = _lib._objc_msgSend_960(
+        _id,
+        _lib._sel_initWithTarget_protocol_1,
+        anObject?._id ?? ffi.nullptr,
+        aProtocol?._id ?? ffi.nullptr);
+    return NSProtocolChecker._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProtocolChecker1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool respondsToSelector_(
+      AVFAudio _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSProtocolChecker1,
+        _lib._sel_respondsToSelector_1, aSelector);
+  }
+}
+
+class NSTask extends NSObject {
+  NSTask._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTask] that points to the same underlying object as [other].
+  static NSTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTask._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTask] that wraps the given raw object pointer.
+  static NSTask castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTask1);
+  }
+
+  @override
+  NSTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get executableURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_executableURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set executableURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setExecutableURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get arguments {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set arguments(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setArguments_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get environment {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_environment1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set environment(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setEnvironment_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURL? get currentDirectoryURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_currentDirectoryURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currentDirectoryURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setCurrentDirectoryURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get standardInput {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardInput1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardInput(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardInput_1, value._id);
+  }
+
+  NSObject get standardOutput {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardOutput1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardOutput(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardOutput_1, value._id);
+  }
+
+  NSObject get standardError {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardError1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardError(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardError_1, value._id);
+  }
+
+  bool launchAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_launchAndReturnError_1, error);
+  }
+
+  void interrupt() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_interrupt1);
+  }
+
+  void terminate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_terminate1);
+  }
+
+  bool suspend() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_suspend1);
+  }
+
+  bool resume() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_resume1);
+  }
+
+  int get processIdentifier {
+    return _lib._objc_msgSend_213(_id, _lib._sel_processIdentifier1);
+  }
+
+  bool get running {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRunning1);
+  }
+
+  int get terminationStatus {
+    return _lib._objc_msgSend_213(_id, _lib._sel_terminationStatus1);
+  }
+
+  int get terminationReason {
+    return _lib._objc_msgSend_961(_id, _lib._sel_terminationReason1);
+  }
+
+  ObjCBlock43 get terminationHandler {
+    final _ret = _lib._objc_msgSend_962(_id, _lib._sel_terminationHandler1);
+    return ObjCBlock43._(_ret, _lib);
+  }
+
+  set terminationHandler(ObjCBlock43 value) {
+    _lib._objc_msgSend_963(_id, _lib._sel_setTerminationHandler_1, value._id);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  static NSTask
+      launchedTaskWithExecutableURL_arguments_error_terminationHandler_(
+          AVFAudio _lib,
+          NSURL? url,
+          NSArray? arguments,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+          ObjCBlock43 terminationHandler) {
+    final _ret = _lib._objc_msgSend_964(
+        _lib._class_NSTask1,
+        _lib._sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_1,
+        url?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error,
+        terminationHandler._id);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  void waitUntilExit() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_waitUntilExit1);
+  }
+
+  NSString? get launchPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_launchPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set launchPath(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLaunchPath_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currentDirectoryPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currentDirectoryPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currentDirectoryPath(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrentDirectoryPath_1, value?._id ?? ffi.nullptr);
+  }
+
+  void launch() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_launch1);
+  }
+
+  static NSTask launchedTaskWithLaunchPath_arguments_(
+      AVFAudio _lib, NSString? path, NSArray? arguments) {
+    final _ret = _lib._objc_msgSend_965(
+        _lib._class_NSTask1,
+        _lib._sel_launchedTaskWithLaunchPath_arguments_1,
+        path?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTask new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTask1, _lib._sel_new1);
+    return NSTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTask alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTask1, _lib._sel_alloc1);
+    return NSTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTask1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTask1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTaskTerminationReason {
+  static const int NSTaskTerminationReasonExit = 1;
+  static const int NSTaskTerminationReasonUncaughtSignal = 2;
+}
+
+void _ObjCBlock43_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock43_closureRegistry = <int, Function>{};
+int _ObjCBlock43_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock43_registerClosure(Function fn) {
+  final id = ++_ObjCBlock43_closureRegistryIndex;
+  _ObjCBlock43_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock43_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock43_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock43 extends _ObjCBlockBase {
+  ObjCBlock43._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock43.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock43_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock43.fromFunction(
+      AVFAudio lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock43_closureTrampoline)
+                    .cast(),
+                _ObjCBlock43_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSXMLElement extends NSXMLNode {
+  NSXMLElement._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLElement] that points to the same underlying object as [other].
+  static NSXMLElement castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLElement._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLElement] that wraps the given raw object pointer.
+  static NSXMLElement castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLElement._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLElement].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLElement1);
+  }
+
+  NSXMLElement initWithName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithName_1, name?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithName_URI_(NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(_id, _lib._sel_initWithName_URI_1,
+        name?._id ?? ffi.nullptr, URI?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithName_stringValue_(NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_initWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithXMLString_error_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_264(_id,
+        _lib._sel_initWithXMLString_error_1, string?._id ?? ffi.nullptr, error);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLElement initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray elementsForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_elementsForName_1, name?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray elementsForLocalName_URI_(NSString? localName, NSString? URI) {
+    final _ret = _lib._objc_msgSend_617(
+        _id,
+        _lib._sel_elementsForLocalName_URI_1,
+        localName?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addAttribute_(NSXMLNode? attribute) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addAttribute_1, attribute?._id ?? ffi.nullptr);
+  }
+
+  void removeAttributeForName_(NSString? name) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeAttributeForName_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get attributes {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributes(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setAttributes_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setAttributesWithDictionary_(NSDictionary? attributes) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_setAttributesWithDictionary_1,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  NSXMLNode attributeForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_attributeForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode attributeForLocalName_URI_(NSString? localName, NSString? URI) {
+    final _ret = _lib._objc_msgSend_1000(
+        _id,
+        _lib._sel_attributeForLocalName_URI_1,
+        localName?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addNamespace_(NSXMLNode? aNamespace) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addNamespace_1, aNamespace?._id ?? ffi.nullptr);
+  }
+
+  void removeNamespaceForPrefix_(NSString? name) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get namespaces {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_namespaces1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set namespaces(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setNamespaces_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSXMLNode namespaceForPrefix_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_namespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode resolveNamespaceForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_resolveNamespaceForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString resolvePrefixForNamespaceURI_(NSString? namespaceURI) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_resolvePrefixForNamespaceURI_1,
+        namespaceURI?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  void normalizeAdjacentTextNodesPreservingCDATA_(bool preserve) {
+    return _lib._objc_msgSend_756(
+        _id, _lib._sel_normalizeAdjacentTextNodesPreservingCDATA_1, preserve);
+  }
+
+  void setAttributesAsDictionary_(NSDictionary? attributes) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_setAttributesAsDictionary_1,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  static NSObject document(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      AVFAudio _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLElement1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      AVFAudio _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(
+      AVFAudio _lib, NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLElement1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLElement1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLElement1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLElement1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLElement new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_new1);
+    return NSXMLElement._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLElement alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_alloc1);
+    return NSXMLElement._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLElement1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLElement1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLElement1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLElement1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLElement1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLElement1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLElement1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLElement1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLElement1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLNode extends NSObject {
+  NSXMLNode._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLNode] that points to the same underlying object as [other].
+  static NSXMLNode castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLNode._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLNode] that wraps the given raw object pointer.
+  static NSXMLNode castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLNode._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLNode].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLNode1);
+  }
+
+  @override
+  NSXMLNode init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode initWithKind_(int kind) {
+    final _ret = _lib._objc_msgSend_966(_id, _lib._sel_initWithKind_1, kind);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject document(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      AVFAudio _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLNode1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      AVFAudio _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(
+      AVFAudio _lib, NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLNode1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get kind {
+    return _lib._objc_msgSend_970(_id, _lib._sel_kind1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get objectValue {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_objectValue1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set objectValue(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setObjectValue_1, value._id);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set stringValue(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setStringValue_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setStringValue_resolvingEntities_(NSString? string, bool resolve) {
+    return _lib._objc_msgSend_971(
+        _id,
+        _lib._sel_setStringValue_resolvingEntities_1,
+        string?._id ?? ffi.nullptr,
+        resolve);
+  }
+
+  int get index {
+    return _lib._objc_msgSend_10(_id, _lib._sel_index1);
+  }
+
+  int get level {
+    return _lib._objc_msgSend_10(_id, _lib._sel_level1);
+  }
+
+  NSXMLDocument? get rootDocument {
+    final _ret = _lib._objc_msgSend_994(_id, _lib._sel_rootDocument1);
+    return _ret.address == 0
+        ? null
+        : NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get parent {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_parent1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get childCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_childCount1);
+  }
+
+  NSArray? get children {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_children1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode childAtIndex_(int index) {
+    final _ret = _lib._objc_msgSend_996(_id, _lib._sel_childAtIndex_1, index);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get previousSibling {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_previousSibling1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get nextSibling {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_nextSibling1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get previousNode {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_previousNode1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get nextNode {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_nextNode1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  void detach() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_detach1);
+  }
+
+  NSString? get XPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_XPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get prefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_prefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get URI {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_URI1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URI(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setURI_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSString localNameForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLNode1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLNode1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLNode1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get XMLString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_XMLString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString XMLStringWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_997(_id, _lib._sel_XMLStringWithOptions_1, options);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString canonicalXMLStringPreservingComments_(bool comments) {
+    final _ret = _lib._objc_msgSend_998(
+        _id, _lib._sel_canonicalXMLStringPreservingComments_1, comments);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray nodesForXPath_error_(
+      NSString? xpath, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id, _lib._sel_nodesForXPath_error_1, xpath?._id ?? ffi.nullptr, error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForXQuery_constants_error_(NSString? xquery,
+      NSDictionary? constants, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_999(
+        _id,
+        _lib._sel_objectsForXQuery_constants_error_1,
+        xquery?._id ?? ffi.nullptr,
+        constants?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForXQuery_error_(
+      NSString? xquery, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(_id, _lib._sel_objectsForXQuery_error_1,
+        xquery?._id ?? ffi.nullptr, error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_new1);
+    return NSXMLNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLNode alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_alloc1);
+    return NSXMLNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLNode1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLNode1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLNode1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLNode1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLNode1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLNode1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLNode1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLNodeKind {
+  static const int NSXMLInvalidKind = 0;
+  static const int NSXMLDocumentKind = 1;
+  static const int NSXMLElementKind = 2;
+  static const int NSXMLAttributeKind = 3;
+  static const int NSXMLNamespaceKind = 4;
+  static const int NSXMLProcessingInstructionKind = 5;
+  static const int NSXMLCommentKind = 6;
+  static const int NSXMLTextKind = 7;
+  static const int NSXMLDTDKind = 8;
+  static const int NSXMLEntityDeclarationKind = 9;
+  static const int NSXMLAttributeDeclarationKind = 10;
+  static const int NSXMLElementDeclarationKind = 11;
+  static const int NSXMLNotationDeclarationKind = 12;
+}
+
+abstract class NSXMLNodeOptions {
+  static const int NSXMLNodeOptionsNone = 0;
+  static const int NSXMLNodeIsCDATA = 1;
+  static const int NSXMLNodeExpandEmptyElement = 2;
+  static const int NSXMLNodeCompactEmptyElement = 4;
+  static const int NSXMLNodeUseSingleQuotes = 8;
+  static const int NSXMLNodeUseDoubleQuotes = 16;
+  static const int NSXMLNodeNeverEscapeContents = 32;
+  static const int NSXMLDocumentTidyHTML = 512;
+  static const int NSXMLDocumentTidyXML = 1024;
+  static const int NSXMLDocumentValidate = 8192;
+  static const int NSXMLNodeLoadExternalEntitiesAlways = 16384;
+  static const int NSXMLNodeLoadExternalEntitiesSameOriginOnly = 32768;
+  static const int NSXMLNodeLoadExternalEntitiesNever = 524288;
+  static const int NSXMLDocumentXInclude = 65536;
+  static const int NSXMLNodePrettyPrint = 131072;
+  static const int NSXMLDocumentIncludeContentTypeDeclaration = 262144;
+  static const int NSXMLNodePreserveNamespaceOrder = 1048576;
+  static const int NSXMLNodePreserveAttributeOrder = 2097152;
+  static const int NSXMLNodePreserveEntities = 4194304;
+  static const int NSXMLNodePreservePrefixes = 8388608;
+  static const int NSXMLNodePreserveCDATA = 16777216;
+  static const int NSXMLNodePreserveWhitespace = 33554432;
+  static const int NSXMLNodePreserveDTD = 67108864;
+  static const int NSXMLNodePreserveCharacterReferences = 134217728;
+  static const int NSXMLNodePromoteSignificantWhitespace = 268435456;
+  static const int NSXMLNodePreserveEmptyElements = 6;
+  static const int NSXMLNodePreserveQuotes = 24;
+  static const int NSXMLNodePreserveAll = 4293918750;
+}
+
+class NSXMLDocument extends NSXMLNode {
+  NSXMLDocument._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDocument] that points to the same underlying object as [other].
+  static NSXMLDocument castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDocument._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDocument] that wraps the given raw object pointer.
+  static NSXMLDocument castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDocument._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDocument].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDocument1);
+  }
+
+  @override
+  NSXMLDocument init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithXMLString_options_error_(
+      NSString? string, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_972(
+        _id,
+        _lib._sel_initWithXMLString_options_error_1,
+        string?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithContentsOfURL_options_error_(
+      NSURL? url, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_973(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithData_options_error_(
+      NSData? data, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_974(
+        _id,
+        _lib._sel_initWithData_options_error_1,
+        data?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithRootElement_(NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(
+        _id, _lib._sel_initWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject replacementClassForClass_(AVFAudio _lib, NSObject cls) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSXMLDocument1,
+        _lib._sel_replacementClassForClass_1, cls._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get characterEncoding {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_characterEncoding1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set characterEncoding(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCharacterEncoding_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get version {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_version1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set version(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setVersion_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get standalone {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isStandalone1);
+  }
+
+  set standalone(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setStandalone_1, value);
+  }
+
+  int get documentContentKind {
+    return _lib._objc_msgSend_975(_id, _lib._sel_documentContentKind1);
+  }
+
+  set documentContentKind(int value) {
+    _lib._objc_msgSend_976(_id, _lib._sel_setDocumentContentKind_1, value);
+  }
+
+  NSString? get MIMEType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_MIMEType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set MIMEType(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setMIMEType_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSXMLDTD? get DTD {
+    final _ret = _lib._objc_msgSend_986(_id, _lib._sel_DTD1);
+    return _ret.address == 0
+        ? null
+        : NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  set DTD(NSXMLDTD? value) {
+    _lib._objc_msgSend_987(_id, _lib._sel_setDTD_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setRootElement_(NSXMLElement? root) {
+    return _lib._objc_msgSend_988(
+        _id, _lib._sel_setRootElement_1, root?._id ?? ffi.nullptr);
+  }
+
+  NSXMLElement rootElement() {
+    final _ret = _lib._objc_msgSend_989(_id, _lib._sel_rootElement1);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  NSData? get XMLData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_XMLData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData XMLDataWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_990(_id, _lib._sel_XMLDataWithOptions_1, options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLT_arguments_error_(NSData? xslt,
+      NSDictionary? arguments, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_991(
+        _id,
+        _lib._sel_objectByApplyingXSLT_arguments_error_1,
+        xslt?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLTString_arguments_error_(NSString? xslt,
+      NSDictionary? arguments, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_992(
+        _id,
+        _lib._sel_objectByApplyingXSLTString_arguments_error_1,
+        xslt?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLTAtURL_arguments_error_(NSURL? xsltURL,
+      NSDictionary? argument, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_993(
+        _id,
+        _lib._sel_objectByApplyingXSLTAtURL_arguments_error_1,
+        xsltURL?._id ?? ffi.nullptr,
+        argument?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool validateAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_validateAndReturnError_1, error);
+  }
+
+  static NSObject document(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      AVFAudio _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDocument1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      AVFAudio _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(
+      AVFAudio _lib, NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDocument1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDocument1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDocument1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDocument new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_new1);
+    return NSXMLDocument._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDocument alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_alloc1);
+    return NSXMLDocument._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDocument1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDocument1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDocument1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDocument1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDocument1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLDocumentContentKind {
+  static const int NSXMLDocumentXMLKind = 0;
+  static const int NSXMLDocumentXHTMLKind = 1;
+  static const int NSXMLDocumentHTMLKind = 2;
+  static const int NSXMLDocumentTextKind = 3;
+}
+
+class NSXMLDTD extends NSXMLNode {
+  NSXMLDTD._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDTD] that points to the same underlying object as [other].
+  static NSXMLDTD castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDTD._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDTD] that wraps the given raw object pointer.
+  static NSXMLDTD castFromPointer(AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDTD._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDTD].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDTD1);
+  }
+
+  @override
+  NSXMLDTD init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTD initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTD initWithContentsOfURL_options_error_(
+      NSURL? url, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_973(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTD initWithData_options_error_(
+      NSData? data, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_974(
+        _id,
+        _lib._sel_initWithData_options_error_1,
+        data?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set publicID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPublicID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set systemID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSystemID_1, value?._id ?? ffi.nullptr);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  NSXMLDTDNode entityDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_entityDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode notationDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_notationDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode elementDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_elementDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode attributeDeclarationForName_elementName_(
+      NSString? name, NSString? elementName) {
+    final _ret = _lib._objc_msgSend_985(
+        _id,
+        _lib._sel_attributeDeclarationForName_elementName_1,
+        name?._id ?? ffi.nullptr,
+        elementName?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTDNode predefinedEntityDeclarationForName_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_predefinedEntityDeclarationForName_1,
+        name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject document(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      AVFAudio _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDTD1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      AVFAudio _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(
+      AVFAudio _lib, NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTD1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTD1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDTD1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTD new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_new1);
+    return NSXMLDTD._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDTD alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_alloc1);
+    return NSXMLDTD._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDTD1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTD1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTD1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDTD1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDTD1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLDTDNode extends NSXMLNode {
+  NSXMLDTDNode._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDTDNode] that points to the same underlying object as [other].
+  static NSXMLDTDNode castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDTDNode._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDTDNode] that wraps the given raw object pointer.
+  static NSXMLDTDNode castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDTDNode._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDTDNode].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDTDNode1);
+  }
+
+  NSXMLDTDNode initWithXMLString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTDNode initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTDNode init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get DTDKind {
+    return _lib._objc_msgSend_981(_id, _lib._sel_DTDKind1);
+  }
+
+  set DTDKind(int value) {
+    _lib._objc_msgSend_982(_id, _lib._sel_setDTDKind_1, value);
+  }
+
+  bool get external1 {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExternal1);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set publicID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPublicID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set systemID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSystemID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get notationName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_notationName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set notationName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNotationName_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSObject document(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      AVFAudio _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDTDNode1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      AVFAudio _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(
+      AVFAudio _lib, NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      AVFAudio _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(AVFAudio _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(AVFAudio _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTDNode1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTDNode1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      AVFAudio _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDTDNode1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTDNode new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_new1);
+    return NSXMLDTDNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDTDNode alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_alloc1);
+    return NSXMLDTDNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDTDNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTDNode1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTDNode1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDTDNode1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDTDNode1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLDTDNodeKind {
+  static const int NSXMLEntityGeneralKind = 1;
+  static const int NSXMLEntityParsedKind = 2;
+  static const int NSXMLEntityUnparsedKind = 3;
+  static const int NSXMLEntityParameterKind = 4;
+  static const int NSXMLEntityPredefined = 5;
+  static const int NSXMLAttributeCDATAKind = 6;
+  static const int NSXMLAttributeIDKind = 7;
+  static const int NSXMLAttributeIDRefKind = 8;
+  static const int NSXMLAttributeIDRefsKind = 9;
+  static const int NSXMLAttributeEntityKind = 10;
+  static const int NSXMLAttributeEntitiesKind = 11;
+  static const int NSXMLAttributeNMTokenKind = 12;
+  static const int NSXMLAttributeNMTokensKind = 13;
+  static const int NSXMLAttributeEnumerationKind = 14;
+  static const int NSXMLAttributeNotationKind = 15;
+  static const int NSXMLElementDeclarationUndefinedKind = 16;
+  static const int NSXMLElementDeclarationEmptyKind = 17;
+  static const int NSXMLElementDeclarationAnyKind = 18;
+  static const int NSXMLElementDeclarationMixedKind = 19;
+  static const int NSXMLElementDeclarationElementKind = 20;
+}
+
+class AVAudioSession extends NSObject {
+  AVAudioSession._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioSession] that points to the same underlying object as [other].
+  static AVAudioSession castFrom<T extends _ObjCWrapper>(T other) {
+    return AVAudioSession._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioSession] that wraps the given raw object pointer.
+  static AVAudioSession castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioSession._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioSession].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_AVAudioSession1);
+  }
+
+  static AVAudioSession sharedInstance(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_1001(
+        _lib._class_AVAudioSession1, _lib._sel_sharedInstance1);
+    return AVAudioSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get availableCategories {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_availableCategories1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setCategory_error_(AVAudioSessionCategory category,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_398(
+        _id, _lib._sel_setCategory_error_1, category, outError);
+  }
+
+  bool setCategory_withOptions_error_(AVAudioSessionCategory category,
+      int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1002(_id,
+        _lib._sel_setCategory_withOptions_error_1, category, options, outError);
+  }
+
+  bool setCategory_mode_options_error_(
+      AVAudioSessionCategory category,
+      AVAudioSessionMode mode,
+      int options,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1003(
+        _id,
+        _lib._sel_setCategory_mode_options_error_1,
+        category,
+        mode,
+        options,
+        outError);
+  }
+
+  bool setCategory_mode_routeSharingPolicy_options_error_(
+      AVAudioSessionCategory category,
+      AVAudioSessionMode mode,
+      int policy,
+      int options,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1004(
+        _id,
+        _lib._sel_setCategory_mode_routeSharingPolicy_options_error_1,
+        category,
+        mode,
+        policy,
+        options,
+        outError);
+  }
+
+  AVAudioSessionCategory get category {
+    return _lib._objc_msgSend_20(_id, _lib._sel_category1);
+  }
+
+  int get categoryOptions {
+    return _lib._objc_msgSend_1005(_id, _lib._sel_categoryOptions1);
+  }
+
+  int get routeSharingPolicy {
+    return _lib._objc_msgSend_1006(_id, _lib._sel_routeSharingPolicy1);
+  }
+
+  NSArray? get availableModes {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_availableModes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setMode_error_(
+      AVAudioSessionMode mode, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_398(
+        _id, _lib._sel_setMode_error_1, mode, outError);
+  }
+
+  AVAudioSessionMode get mode {
+    return _lib._objc_msgSend_20(_id, _lib._sel_mode1);
+  }
+
+  bool setAllowHapticsAndSystemSoundsDuringRecording_error_(
+      bool inValue, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1007(
+        _id,
+        _lib._sel_setAllowHapticsAndSystemSoundsDuringRecording_error_1,
+        inValue,
+        outError);
+  }
+
+  bool get allowHapticsAndSystemSoundsDuringRecording {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowHapticsAndSystemSoundsDuringRecording1);
+  }
+
+  int get recordPermission {
+    return _lib._objc_msgSend_1008(_id, _lib._sel_recordPermission1);
+  }
+
+  void requestRecordPermission_(ObjCBlock31 response) {
+    return _lib._objc_msgSend_1009(
+        _id, _lib._sel_requestRecordPermission_1, response._id);
+  }
+
+  bool overrideOutputAudioPort_error_(
+      int portOverride, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1010(
+        _id, _lib._sel_overrideOutputAudioPort_error_1, portOverride, outError);
+  }
+
+  bool setPreferredInput_error_(AVAudioSessionPortDescription? inPort,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1013(_id, _lib._sel_setPreferredInput_error_1,
+        inPort?._id ?? ffi.nullptr, outError);
+  }
+
+  AVAudioSessionPortDescription? get preferredInput {
+    final _ret = _lib._objc_msgSend_1014(_id, _lib._sel_preferredInput1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionPortDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  bool setPrefersNoInterruptionsFromSystemAlerts_error_(
+      bool inValue, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1007(
+        _id,
+        _lib._sel_setPrefersNoInterruptionsFromSystemAlerts_error_1,
+        inValue,
+        outError);
+  }
+
+  bool get prefersNoInterruptionsFromSystemAlerts {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_prefersNoInterruptionsFromSystemAlerts1);
+  }
+
+  bool setActive_error_(
+      bool active, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1007(
+        _id, _lib._sel_setActive_error_1, active, outError);
+  }
+
+  bool setActive_withOptions_error_(
+      bool active, int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1015(_id, _lib._sel_setActive_withOptions_error_1,
+        active, options, outError);
+  }
+
+  void activateWithOptions_completionHandler_(
+      int options, ObjCBlock44 handler) {
+    return _lib._objc_msgSend_1016(
+        _id,
+        _lib._sel_activateWithOptions_completionHandler_1,
+        options,
+        handler._id);
+  }
+
+  bool setPreferredSampleRate_error_(
+      double sampleRate, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1017(
+        _id, _lib._sel_setPreferredSampleRate_error_1, sampleRate, outError);
+  }
+
+  double get preferredSampleRate {
+    return _lib._objc_msgSend_149(_id, _lib._sel_preferredSampleRate1);
+  }
+
+  bool setPreferredIOBufferDuration_error_(
+      double duration, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1017(_id,
+        _lib._sel_setPreferredIOBufferDuration_error_1, duration, outError);
+  }
+
+  double get preferredIOBufferDuration {
+    return _lib._objc_msgSend_149(_id, _lib._sel_preferredIOBufferDuration1);
+  }
+
+  bool setPreferredInputNumberOfChannels_error_(
+      int count, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1018(_id,
+        _lib._sel_setPreferredInputNumberOfChannels_error_1, count, outError);
+  }
+
+  int get preferredInputNumberOfChannels {
+    return _lib._objc_msgSend_78(
+        _id, _lib._sel_preferredInputNumberOfChannels1);
+  }
+
+  bool setPreferredOutputNumberOfChannels_error_(
+      int count, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1018(_id,
+        _lib._sel_setPreferredOutputNumberOfChannels_error_1, count, outError);
+  }
+
+  int get preferredOutputNumberOfChannels {
+    return _lib._objc_msgSend_78(
+        _id, _lib._sel_preferredOutputNumberOfChannels1);
+  }
+
+  bool setPreferredInputOrientation_error_(
+      int orientation, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1019(_id,
+        _lib._sel_setPreferredInputOrientation_error_1, orientation, outError);
+  }
+
+  int get preferredInputOrientation {
+    return _lib._objc_msgSend_1020(_id, _lib._sel_preferredInputOrientation1);
+  }
+
+  int get inputOrientation {
+    return _lib._objc_msgSend_1020(_id, _lib._sel_inputOrientation1);
+  }
+
+  int get maximumInputNumberOfChannels {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maximumInputNumberOfChannels1);
+  }
+
+  int get maximumOutputNumberOfChannels {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maximumOutputNumberOfChannels1);
+  }
+
+  bool setInputGain_error_(
+      double gain, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1021(
+        _id, _lib._sel_setInputGain_error_1, gain, outError);
+  }
+
+  double get inputGain {
+    return _lib._objc_msgSend_215(_id, _lib._sel_inputGain1);
+  }
+
+  bool get inputGainSettable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isInputGainSettable1);
+  }
+
+  bool get inputAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isInputAvailable1);
+  }
+
+  NSArray? get inputDataSources {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_inputDataSources1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionDataSourceDescription? get inputDataSource {
+    final _ret = _lib._objc_msgSend_1011(_id, _lib._sel_inputDataSource1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionDataSourceDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  bool setInputDataSource_error_(
+      AVAudioSessionDataSourceDescription? dataSource,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1012(_id, _lib._sel_setInputDataSource_error_1,
+        dataSource?._id ?? ffi.nullptr, outError);
+  }
+
+  NSArray? get outputDataSources {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_outputDataSources1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionDataSourceDescription? get outputDataSource {
+    final _ret = _lib._objc_msgSend_1011(_id, _lib._sel_outputDataSource1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionDataSourceDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  bool setOutputDataSource_error_(
+      AVAudioSessionDataSourceDescription? dataSource,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1012(_id, _lib._sel_setOutputDataSource_error_1,
+        dataSource?._id ?? ffi.nullptr, outError);
+  }
+
+  double get sampleRate {
+    return _lib._objc_msgSend_149(_id, _lib._sel_sampleRate1);
+  }
+
+  int get inputNumberOfChannels {
+    return _lib._objc_msgSend_78(_id, _lib._sel_inputNumberOfChannels1);
+  }
+
+  int get outputNumberOfChannels {
+    return _lib._objc_msgSend_78(_id, _lib._sel_outputNumberOfChannels1);
+  }
+
+  double get inputLatency {
+    return _lib._objc_msgSend_149(_id, _lib._sel_inputLatency1);
+  }
+
+  double get outputLatency {
+    return _lib._objc_msgSend_149(_id, _lib._sel_outputLatency1);
+  }
+
+  double get IOBufferDuration {
+    return _lib._objc_msgSend_149(_id, _lib._sel_IOBufferDuration1);
+  }
+
+  bool get otherAudioPlaying {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isOtherAudioPlaying1);
+  }
+
+  bool get secondaryAudioShouldBeSilencedHint {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_secondaryAudioShouldBeSilencedHint1);
+  }
+
+  double get outputVolume {
+    return _lib._objc_msgSend_215(_id, _lib._sel_outputVolume1);
+  }
+
+  int get promptStyle {
+    return _lib._objc_msgSend_1022(_id, _lib._sel_promptStyle1);
+  }
+
+  NSArray? get availableInputs {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_availableInputs1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionRouteDescription? get currentRoute {
+    final _ret = _lib._objc_msgSend_1023(_id, _lib._sel_currentRoute1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionRouteDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  bool setAggregatedIOPreference_error_(
+      int inIOType, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1024(
+        _id, _lib._sel_setAggregatedIOPreference_error_1, inIOType, outError);
+  }
+
+  bool setSupportsMultichannelContent_error_(
+      bool inValue, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1007(_id,
+        _lib._sel_setSupportsMultichannelContent_error_1, inValue, outError);
+  }
+
+  bool get supportsMultichannelContent {
+    return _lib._objc_msgSend_12(_id, _lib._sel_supportsMultichannelContent1);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  AVAudioSession init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return AVAudioSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setActive_withFlags_error_(
+      bool active, int flags, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1025(
+        _id, _lib._sel_setActive_withFlags_error_1, active, flags, outError);
+  }
+
+  bool get inputIsAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_inputIsAvailable1);
+  }
+
+  double get currentHardwareSampleRate {
+    return _lib._objc_msgSend_149(_id, _lib._sel_currentHardwareSampleRate1);
+  }
+
+  int get currentHardwareInputNumberOfChannels {
+    return _lib._objc_msgSend_78(
+        _id, _lib._sel_currentHardwareInputNumberOfChannels1);
+  }
+
+  int get currentHardwareOutputNumberOfChannels {
+    return _lib._objc_msgSend_78(
+        _id, _lib._sel_currentHardwareOutputNumberOfChannels1);
+  }
+
+  bool setPreferredHardwareSampleRate_error_(
+      double sampleRate, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1017(_id,
+        _lib._sel_setPreferredHardwareSampleRate_error_1, sampleRate, outError);
+  }
+
+  double get preferredHardwareSampleRate {
+    return _lib._objc_msgSend_149(_id, _lib._sel_preferredHardwareSampleRate1);
+  }
+
+  static AVAudioSession new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioSession1, _lib._sel_new1);
+    return AVAudioSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  static AVAudioSession alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioSession1, _lib._sel_alloc1);
+    return AVAudioSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioSession1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioSession1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioSession1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioSession1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioSession1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioSession1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSession1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef AVAudioSessionCategory = ffi.Pointer<ObjCObject>;
+
+abstract class AVAudioSessionCategoryOptions {
+  static const int AVAudioSessionCategoryOptionMixWithOthers = 1;
+  static const int AVAudioSessionCategoryOptionDuckOthers = 2;
+  static const int AVAudioSessionCategoryOptionAllowBluetooth = 4;
+  static const int AVAudioSessionCategoryOptionDefaultToSpeaker = 8;
+  static const int
+      AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers = 17;
+  static const int AVAudioSessionCategoryOptionAllowBluetoothA2DP = 32;
+  static const int AVAudioSessionCategoryOptionAllowAirPlay = 64;
+  static const int
+      AVAudioSessionCategoryOptionOverrideMutedMicrophoneInterruption = 128;
+}
+
+typedef AVAudioSessionMode = ffi.Pointer<ObjCObject>;
+
+abstract class AVAudioSessionRouteSharingPolicy {
+  static const int AVAudioSessionRouteSharingPolicyDefault = 0;
+  static const int AVAudioSessionRouteSharingPolicyLongFormAudio = 1;
+  static const int AVAudioSessionRouteSharingPolicyLongForm = 1;
+  static const int AVAudioSessionRouteSharingPolicyIndependent = 2;
+  static const int AVAudioSessionRouteSharingPolicyLongFormVideo = 3;
+}
+
+abstract class AVAudioSessionRecordPermission {
+  static const int AVAudioSessionRecordPermissionUndetermined = 1970168948;
+  static const int AVAudioSessionRecordPermissionDenied = 1684369017;
+  static const int AVAudioSessionRecordPermissionGranted = 1735552628;
+}
+
+abstract class AVAudioSessionPortOverride {
+  static const int AVAudioSessionPortOverrideNone = 0;
+  static const int AVAudioSessionPortOverrideSpeaker = 1936747378;
+}
+
+class AVAudioSessionPortDescription extends NSObject {
+  AVAudioSessionPortDescription._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioSessionPortDescription] that points to the same underlying object as [other].
+  static AVAudioSessionPortDescription castFrom<T extends _ObjCWrapper>(
+      T other) {
+    return AVAudioSessionPortDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioSessionPortDescription] that wraps the given raw object pointer.
+  static AVAudioSessionPortDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioSessionPortDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioSessionPortDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_AVAudioSessionPortDescription1);
+  }
+
+  AVAudioSessionPort get portType {
+    return _lib._objc_msgSend_20(_id, _lib._sel_portType1);
+  }
+
+  NSString? get portName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_portName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get UID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_UID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get hasHardwareVoiceCallProcessing {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_hasHardwareVoiceCallProcessing1);
+  }
+
+  bool get spatialAudioEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSpatialAudioEnabled1);
+  }
+
+  NSArray? get channels {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_channels1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get dataSources {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_dataSources1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionDataSourceDescription? get selectedDataSource {
+    final _ret = _lib._objc_msgSend_1011(_id, _lib._sel_selectedDataSource1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionDataSourceDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  AVAudioSessionDataSourceDescription? get preferredDataSource {
+    final _ret = _lib._objc_msgSend_1011(_id, _lib._sel_preferredDataSource1);
+    return _ret.address == 0
+        ? null
+        : AVAudioSessionDataSourceDescription._(_ret, _lib,
+            retain: true, release: true);
+  }
+
+  bool setPreferredDataSource_error_(
+      AVAudioSessionDataSourceDescription? dataSource,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_1012(
+        _id,
+        _lib._sel_setPreferredDataSource_error_1,
+        dataSource?._id ?? ffi.nullptr,
+        outError);
+  }
+
+  static AVAudioSessionPortDescription new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionPortDescription1, _lib._sel_new1);
+    return AVAudioSessionPortDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static AVAudioSessionPortDescription alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionPortDescription1, _lib._sel_alloc1);
+    return AVAudioSessionPortDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionPortDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef AVAudioSessionPort = ffi.Pointer<ObjCObject>;
+
+class AVAudioSessionDataSourceDescription extends NSObject {
+  AVAudioSessionDataSourceDescription._(
+      ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioSessionDataSourceDescription] that points to the same underlying object as [other].
+  static AVAudioSessionDataSourceDescription castFrom<T extends _ObjCWrapper>(
+      T other) {
+    return AVAudioSessionDataSourceDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioSessionDataSourceDescription] that wraps the given raw object pointer.
+  static AVAudioSessionDataSourceDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioSessionDataSourceDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioSessionDataSourceDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_AVAudioSessionDataSourceDescription1);
+  }
+
+  NSNumber? get dataSourceID {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_dataSourceID1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get dataSourceName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dataSourceName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionLocation get location {
+    return _lib._objc_msgSend_20(_id, _lib._sel_location1);
+  }
+
+  AVAudioSessionOrientation get orientation {
+    return _lib._objc_msgSend_20(_id, _lib._sel_orientation1);
+  }
+
+  NSArray? get supportedPolarPatterns {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_supportedPolarPatterns1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioSessionPolarPattern get selectedPolarPattern {
+    return _lib._objc_msgSend_20(_id, _lib._sel_selectedPolarPattern1);
+  }
+
+  AVAudioSessionPolarPattern get preferredPolarPattern {
+    return _lib._objc_msgSend_20(_id, _lib._sel_preferredPolarPattern1);
+  }
+
+  bool setPreferredPolarPattern_error_(AVAudioSessionPolarPattern pattern,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_398(
+        _id, _lib._sel_setPreferredPolarPattern_error_1, pattern, outError);
+  }
+
+  static AVAudioSessionDataSourceDescription new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionDataSourceDescription1, _lib._sel_new1);
+    return AVAudioSessionDataSourceDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static AVAudioSessionDataSourceDescription alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionDataSourceDescription1, _lib._sel_alloc1);
+    return AVAudioSessionDataSourceDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1,
+        aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionDataSourceDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef AVAudioSessionLocation = ffi.Pointer<ObjCObject>;
+typedef AVAudioSessionOrientation = ffi.Pointer<ObjCObject>;
+typedef AVAudioSessionPolarPattern = ffi.Pointer<ObjCObject>;
+
+abstract class AVAudioSessionSetActiveOptions {
+  static const int AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation = 1;
+}
+
+abstract class AVAudioSessionActivationOptions {
+  static const int AVAudioSessionActivationOptionNone = 0;
+}
+
+void _ObjCBlock44_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, bool arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Bool arg0, ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(bool arg0, ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock44_closureRegistry = <int, Function>{};
+int _ObjCBlock44_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock44_registerClosure(Function fn) {
+  final id = ++_ObjCBlock44_closureRegistryIndex;
+  _ObjCBlock44_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock44_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, bool arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock44_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock44 extends _ObjCBlockBase {
+  ObjCBlock44._(ffi.Pointer<_ObjCBlock> id, AVFAudio lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock44.fromFunctionPointer(
+      AVFAudio lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Bool arg0, ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Bool arg0, ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock44_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock44.fromFunction(
+      AVFAudio lib, void Function(bool arg0, ffi.Pointer<ObjCObject> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Bool arg0, ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock44_closureTrampoline)
+                    .cast(),
+                _ObjCBlock44_registerClosure(fn)),
+            lib);
+  void call(bool arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block, ffi.Bool arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block, bool arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class AVAudioStereoOrientation {
+  static const int AVAudioStereoOrientationNone = 0;
+  static const int AVAudioStereoOrientationPortrait = 1;
+  static const int AVAudioStereoOrientationPortraitUpsideDown = 2;
+  static const int AVAudioStereoOrientationLandscapeRight = 3;
+  static const int AVAudioStereoOrientationLandscapeLeft = 4;
+}
+
+abstract class AVAudioSessionPromptStyle {
+  static const int AVAudioSessionPromptStyleNone = 1852796517;
+  static const int AVAudioSessionPromptStyleShort = 1936224884;
+  static const int AVAudioSessionPromptStyleNormal = 1852992876;
+}
+
+class AVAudioSessionRouteDescription extends NSObject {
+  AVAudioSessionRouteDescription._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioSessionRouteDescription] that points to the same underlying object as [other].
+  static AVAudioSessionRouteDescription castFrom<T extends _ObjCWrapper>(
+      T other) {
+    return AVAudioSessionRouteDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioSessionRouteDescription] that wraps the given raw object pointer.
+  static AVAudioSessionRouteDescription castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioSessionRouteDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioSessionRouteDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_AVAudioSessionRouteDescription1);
+  }
+
+  NSArray? get inputs {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_inputs1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get outputs {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_outputs1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static AVAudioSessionRouteDescription new1(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionRouteDescription1, _lib._sel_new1);
+    return AVAudioSessionRouteDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static AVAudioSessionRouteDescription alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionRouteDescription1, _lib._sel_alloc1);
+    return AVAudioSessionRouteDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioSessionRouteDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class AVAudioSessionIOType {
+  static const int AVAudioSessionIOTypeNotSpecified = 0;
+  static const int AVAudioSessionIOTypeAggregated = 1;
+}
+
+class AVAudioPlayer extends NSObject {
+  AVAudioPlayer._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioPlayer] that points to the same underlying object as [other].
+  static AVAudioPlayer castFrom<T extends _ObjCWrapper>(T other) {
+    return AVAudioPlayer._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioPlayer] that wraps the given raw object pointer.
+  static AVAudioPlayer castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioPlayer._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioPlayer].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_AVAudioPlayer1);
+  }
+
+  AVAudioPlayer initWithContentsOfURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_734(
+        _id,
+        _lib._sel_initWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        outError);
+    return AVAudioPlayer._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioPlayer initWithData_error_(
+      NSData? data, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_1026(_id, _lib._sel_initWithData_error_1,
+        data?._id ?? ffi.nullptr, outError);
+    return AVAudioPlayer._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioPlayer initWithContentsOfURL_fileTypeHint_error_(NSURL? url,
+      NSString? utiString, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_1027(
+        _id,
+        _lib._sel_initWithContentsOfURL_fileTypeHint_error_1,
+        url?._id ?? ffi.nullptr,
+        utiString?._id ?? ffi.nullptr,
+        outError);
+    return AVAudioPlayer._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioPlayer initWithData_fileTypeHint_error_(NSData? data,
+      NSString? utiString, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_1028(
+        _id,
+        _lib._sel_initWithData_fileTypeHint_error_1,
+        data?._id ?? ffi.nullptr,
+        utiString?._id ?? ffi.nullptr,
+        outError);
+    return AVAudioPlayer._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool prepareToPlay() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_prepareToPlay1);
+  }
+
+  bool play() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_play1);
+  }
+
+  bool playAtTime_(double time) {
+    return _lib._objc_msgSend_1029(_id, _lib._sel_playAtTime_1, time);
+  }
+
+  void pause() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_pause1);
+  }
+
+  void stop() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stop1);
+  }
+
+  bool get playing {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isPlaying1);
+  }
+
+  int get numberOfChannels {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfChannels1);
+  }
+
+  double get duration {
+    return _lib._objc_msgSend_149(_id, _lib._sel_duration1);
+  }
+
+  NSString? get currentDevice {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currentDevice1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currentDevice(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrentDevice_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURL? get url {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_url1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get pan {
+    return _lib._objc_msgSend_215(_id, _lib._sel_pan1);
+  }
+
+  set pan(double value) {
+    _lib._objc_msgSend_765(_id, _lib._sel_setPan_1, value);
+  }
+
+  double get volume {
+    return _lib._objc_msgSend_215(_id, _lib._sel_volume1);
+  }
+
+  set volume(double value) {
+    _lib._objc_msgSend_765(_id, _lib._sel_setVolume_1, value);
+  }
+
+  void setVolume_fadeDuration_(double volume, double duration) {
+    return _lib._objc_msgSend_1030(
+        _id, _lib._sel_setVolume_fadeDuration_1, volume, duration);
+  }
+
+  bool get enableRate {
+    return _lib._objc_msgSend_12(_id, _lib._sel_enableRate1);
+  }
+
+  set enableRate(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setEnableRate_1, value);
+  }
+
+  double get rate {
+    return _lib._objc_msgSend_215(_id, _lib._sel_rate1);
+  }
+
+  set rate(double value) {
+    _lib._objc_msgSend_765(_id, _lib._sel_setRate_1, value);
+  }
+
+  double get currentTime {
+    return _lib._objc_msgSend_149(_id, _lib._sel_currentTime1);
+  }
+
+  set currentTime(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setCurrentTime_1, value);
+  }
+
+  double get deviceCurrentTime {
+    return _lib._objc_msgSend_149(_id, _lib._sel_deviceCurrentTime1);
+  }
+
+  int get numberOfLoops {
+    return _lib._objc_msgSend_78(_id, _lib._sel_numberOfLoops1);
+  }
+
+  set numberOfLoops(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setNumberOfLoops_1, value);
+  }
+
+  NSDictionary? get settings {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_settings1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat? get format {
+    final _ret = _lib._objc_msgSend_1046(_id, _lib._sel_format1);
+    return _ret.address == 0
+        ? null
+        : AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get meteringEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isMeteringEnabled1);
+  }
+
+  set meteringEnabled(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setMeteringEnabled_1, value);
+  }
+
+  void updateMeters() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_updateMeters1);
+  }
+
+  double peakPowerForChannel_(int channelNumber) {
+    return _lib._objc_msgSend_1047(
+        _id, _lib._sel_peakPowerForChannel_1, channelNumber);
+  }
+
+  double averagePowerForChannel_(int channelNumber) {
+    return _lib._objc_msgSend_1047(
+        _id, _lib._sel_averagePowerForChannel_1, channelNumber);
+  }
+
+  NSArray? get channelAssignments {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_channelAssignments1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set channelAssignments(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setChannelAssignments_1, value?._id ?? ffi.nullptr);
+  }
+
+  static AVAudioPlayer new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioPlayer1, _lib._sel_new1);
+    return AVAudioPlayer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static AVAudioPlayer alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioPlayer1, _lib._sel_alloc1);
+    return AVAudioPlayer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioPlayer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioPlayer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioPlayer1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioPlayer1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioPlayer1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioPlayer1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioPlayer1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioPlayer1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioPlayer1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class AVAudioFormat extends NSObject {
+  AVAudioFormat._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioFormat] that points to the same underlying object as [other].
+  static AVAudioFormat castFrom<T extends _ObjCWrapper>(T other) {
+    return AVAudioFormat._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioFormat] that wraps the given raw object pointer.
+  static AVAudioFormat castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioFormat._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioFormat].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_AVAudioFormat1);
+  }
+
+  AVAudioFormat initWithStreamDescription_(
+      ffi.Pointer<AudioStreamBasicDescription> asbd) {
+    final _ret = _lib._objc_msgSend_1031(
+        _id, _lib._sel_initWithStreamDescription_1, asbd);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initWithStreamDescription_channelLayout_(
+      ffi.Pointer<AudioStreamBasicDescription> asbd,
+      AVAudioChannelLayout? layout) {
+    final _ret = _lib._objc_msgSend_1036(
+        _id,
+        _lib._sel_initWithStreamDescription_channelLayout_1,
+        asbd,
+        layout?._id ?? ffi.nullptr);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initStandardFormatWithSampleRate_channels_(
+      double sampleRate, int channels) {
+    final _ret = _lib._objc_msgSend_1037(
+        _id,
+        _lib._sel_initStandardFormatWithSampleRate_channels_1,
+        sampleRate,
+        channels);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initStandardFormatWithSampleRate_channelLayout_(
+      double sampleRate, AVAudioChannelLayout? layout) {
+    final _ret = _lib._objc_msgSend_1038(
+        _id,
+        _lib._sel_initStandardFormatWithSampleRate_channelLayout_1,
+        sampleRate,
+        layout?._id ?? ffi.nullptr);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initWithCommonFormat_sampleRate_channels_interleaved_(
+      int format, double sampleRate, int channels, bool interleaved) {
+    final _ret = _lib._objc_msgSend_1039(
+        _id,
+        _lib._sel_initWithCommonFormat_sampleRate_channels_interleaved_1,
+        format,
+        sampleRate,
+        channels,
+        interleaved);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initWithCommonFormat_sampleRate_interleaved_channelLayout_(
+      int format,
+      double sampleRate,
+      bool interleaved,
+      AVAudioChannelLayout? layout) {
+    final _ret = _lib._objc_msgSend_1040(
+        _id,
+        _lib._sel_initWithCommonFormat_sampleRate_interleaved_channelLayout_1,
+        format,
+        sampleRate,
+        interleaved,
+        layout?._id ?? ffi.nullptr);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initWithSettings_(NSDictionary? settings) {
+    final _ret = _lib._objc_msgSend_143(
+        _id, _lib._sel_initWithSettings_1, settings?._id ?? ffi.nullptr);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioFormat initWithCMAudioFormatDescription_(
+      CMAudioFormatDescriptionRef formatDescription) {
+    final _ret = _lib._objc_msgSend_1041(
+        _id, _lib._sel_initWithCMAudioFormatDescription_1, formatDescription);
+    return AVAudioFormat._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqual_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isEqual_1, object._id);
+  }
+
+  bool get standard {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isStandard1);
+  }
+
+  int get commonFormat {
+    return _lib._objc_msgSend_1042(_id, _lib._sel_commonFormat1);
+  }
+
+  int get channelCount {
+    return _lib._objc_msgSend_1035(_id, _lib._sel_channelCount1);
+  }
+
+  double get sampleRate {
+    return _lib._objc_msgSend_149(_id, _lib._sel_sampleRate1);
+  }
+
+  bool get interleaved {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isInterleaved1);
+  }
+
+  ffi.Pointer<AudioStreamBasicDescription> get streamDescription {
+    return _lib._objc_msgSend_1043(_id, _lib._sel_streamDescription1);
+  }
+
+  AVAudioChannelLayout? get channelLayout {
+    final _ret = _lib._objc_msgSend_1044(_id, _lib._sel_channelLayout1);
+    return _ret.address == 0
+        ? null
+        : AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get magicCookie {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_magicCookie1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  set magicCookie(NSData? value) {
+    _lib._objc_msgSend_892(
+        _id, _lib._sel_setMagicCookie_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get settings {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_settings1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  CMAudioFormatDescriptionRef get formatDescription {
+    return _lib._objc_msgSend_1045(_id, _lib._sel_formatDescription1);
+  }
+
+  static AVAudioFormat new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioFormat1, _lib._sel_new1);
+    return AVAudioFormat._(_ret, _lib, retain: false, release: true);
+  }
+
+  static AVAudioFormat alloc(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioFormat1, _lib._sel_alloc1);
+    return AVAudioFormat._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioFormat1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioFormat1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioFormat1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioFormat1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioFormat1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioFormat1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioFormat1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_AVAudioFormat1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioFormat1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class AudioStreamBasicDescription extends ffi.Struct {
+  @Float64()
+  external double mSampleRate;
+
+  @AudioFormatID()
+  external int mFormatID;
+
+  @AudioFormatFlags()
+  external int mFormatFlags;
+
+  @UInt32()
+  external int mBytesPerPacket;
+
+  @UInt32()
+  external int mFramesPerPacket;
+
+  @UInt32()
+  external int mBytesPerFrame;
+
+  @UInt32()
+  external int mChannelsPerFrame;
+
+  @UInt32()
+  external int mBitsPerChannel;
+
+  @UInt32()
+  external int mReserved;
+}
+
+typedef Float64 = ffi.Double;
+typedef AudioFormatID = UInt32;
+typedef AudioFormatFlags = UInt32;
+
+class AVAudioChannelLayout extends NSObject {
+  AVAudioChannelLayout._(ffi.Pointer<ObjCObject> id, AVFAudio lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [AVAudioChannelLayout] that points to the same underlying object as [other].
+  static AVAudioChannelLayout castFrom<T extends _ObjCWrapper>(T other) {
+    return AVAudioChannelLayout._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [AVAudioChannelLayout] that wraps the given raw object pointer.
+  static AVAudioChannelLayout castFromPointer(
+      AVFAudio lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return AVAudioChannelLayout._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [AVAudioChannelLayout].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_AVAudioChannelLayout1);
+  }
+
+  @override
+  AVAudioChannelLayout init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioChannelLayout initWithLayoutTag_(int layoutTag) {
+    final _ret =
+        _lib._objc_msgSend_1032(_id, _lib._sel_initWithLayoutTag_1, layoutTag);
+    return AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  AVAudioChannelLayout initWithLayout_(ffi.Pointer<AudioChannelLayout> layout) {
+    final _ret =
+        _lib._objc_msgSend_1033(_id, _lib._sel_initWithLayout_1, layout);
+    return AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqual_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isEqual_1, object._id);
+  }
+
+  static AVAudioChannelLayout layoutWithLayoutTag_(
+      AVFAudio _lib, int layoutTag) {
+    final _ret = _lib._objc_msgSend_1032(_lib._class_AVAudioChannelLayout1,
+        _lib._sel_layoutWithLayoutTag_1, layoutTag);
+    return AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  static AVAudioChannelLayout layoutWithLayout_(
+      AVFAudio _lib, ffi.Pointer<AudioChannelLayout> layout) {
+    final _ret = _lib._objc_msgSend_1033(_lib._class_AVAudioChannelLayout1,
+        _lib._sel_layoutWithLayout_1, layout);
+    return AVAudioChannelLayout._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get layoutTag {
+    return _lib._objc_msgSend_191(_id, _lib._sel_layoutTag1);
+  }
+
+  ffi.Pointer<AudioChannelLayout> get layout {
+    return _lib._objc_msgSend_1034(_id, _lib._sel_layout1);
+  }
+
+  int get channelCount {
+    return _lib._objc_msgSend_1035(_id, _lib._sel_channelCount1);
+  }
+
+  static AVAudioChannelLayout new1(AVFAudio _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_AVAudioChannelLayout1, _lib._sel_new1);
+    return AVAudioChannelLayout._(_ret, _lib, retain: false, release: true);
+  }
+
+  static AVAudioChannelLayout alloc(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioChannelLayout1, _lib._sel_alloc1);
+    return AVAudioChannelLayout._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      AVFAudio _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_AVAudioChannelLayout1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      AVFAudio _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_AVAudioChannelLayout1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(_lib._class_AVAudioChannelLayout1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(AVFAudio _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_AVAudioChannelLayout1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      AVFAudio _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_AVAudioChannelLayout1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      AVFAudio _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_AVAudioChannelLayout1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      AVFAudio _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_AVAudioChannelLayout1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_AVAudioChannelLayout1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(AVFAudio _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_AVAudioChannelLayout1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef AudioChannelLayoutTag = UInt32;
+
+class AudioChannelLayout extends ffi.Struct {
+  @AudioChannelLayoutTag()
+  external int mChannelLayoutTag;
+
+  @ffi.Int32()
+  external int mChannelBitmap;
+
+  @UInt32()
+  external int mNumberChannelDescriptions;
+
+  @ffi.Array.multi([1])
+  external ffi.Array<AudioChannelDescription> mChannelDescriptions;
+}
+
+abstract class AudioChannelBitmap {
+  static const int kAudioChannelBit_Left = 1;
+  static const int kAudioChannelBit_Right = 2;
+  static const int kAudioChannelBit_Center = 4;
+  static const int kAudioChannelBit_LFEScreen = 8;
+  static const int kAudioChannelBit_LeftSurround = 16;
+  static const int kAudioChannelBit_RightSurround = 32;
+  static const int kAudioChannelBit_LeftCenter = 64;
+  static const int kAudioChannelBit_RightCenter = 128;
+  static const int kAudioChannelBit_CenterSurround = 256;
+  static const int kAudioChannelBit_LeftSurroundDirect = 512;
+  static const int kAudioChannelBit_RightSurroundDirect = 1024;
+  static const int kAudioChannelBit_TopCenterSurround = 2048;
+  static const int kAudioChannelBit_VerticalHeightLeft = 4096;
+  static const int kAudioChannelBit_VerticalHeightCenter = 8192;
+  static const int kAudioChannelBit_VerticalHeightRight = 16384;
+  static const int kAudioChannelBit_TopBackLeft = 32768;
+  static const int kAudioChannelBit_TopBackCenter = 65536;
+  static const int kAudioChannelBit_TopBackRight = 131072;
+  static const int kAudioChannelBit_LeftTopFront = 4096;
+  static const int kAudioChannelBit_CenterTopFront = 8192;
+  static const int kAudioChannelBit_RightTopFront = 16384;
+  static const int kAudioChannelBit_LeftTopMiddle = 2097152;
+  static const int kAudioChannelBit_CenterTopMiddle = 2048;
+  static const int kAudioChannelBit_RightTopMiddle = 8388608;
+  static const int kAudioChannelBit_LeftTopRear = 16777216;
+  static const int kAudioChannelBit_CenterTopRear = 33554432;
+  static const int kAudioChannelBit_RightTopRear = 67108864;
+}
+
+class AudioChannelDescription extends ffi.Struct {
+  @AudioChannelLabel()
+  external int mChannelLabel;
+
+  @ffi.Int32()
+  external int mChannelFlags;
+
+  @ffi.Array.multi([3])
+  external ffi.Array<Float32> mCoordinates;
+}
+
+typedef AudioChannelLabel = UInt32;
+
+abstract class AudioChannelFlags {
+  static const int kAudioChannelFlags_AllOff = 0;
+  static const int kAudioChannelFlags_RectangularCoordinates = 1;
+  static const int kAudioChannelFlags_SphericalCoordinates = 2;
+  static const int kAudioChannelFlags_Meters = 4;
+}
+
+typedef Float32 = ffi.Float;
+typedef AVAudioChannelCount = ffi.Uint32;
+
+abstract class AVAudioCommonFormat {
+  static const int AVAudioOtherFormat = 0;
+  static const int AVAudioPCMFormatFloat32 = 1;
+  static const int AVAudioPCMFormatFloat64 = 2;
+  static const int AVAudioPCMFormatInt16 = 3;
+  static const int AVAudioPCMFormatInt32 = 4;
+}
+
+typedef CMAudioFormatDescriptionRef = CMFormatDescriptionRef;
+typedef CMFormatDescriptionRef = ffi.Pointer<opaqueCMFormatDescription>;
+
+class opaqueCMFormatDescription extends ffi.Opaque {}
diff --git a/example/objective_c/config.yaml b/example/objective_c/config.yaml
new file mode 100644
index 0000000..94764ca
--- /dev/null
+++ b/example/objective_c/config.yaml
@@ -0,0 +1,13 @@
+name: AVFAudio
+description: Bindings for AVFAudio.
+language: objc
+output: 'avf_audio_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - 'AVAudioPlayer'
+headers:
+  entry-points:
+    - '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioPlayer.h'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field, return_of_invalid_type, void_checks, annotate_overrides, no_leading_underscores_for_local_identifiers, library_private_types_in_public_api
diff --git a/example/objective_c/play_audio.dart b/example/objective_c/play_audio.dart
new file mode 100644
index 0000000..05708c6
--- /dev/null
+++ b/example/objective_c/play_audio.dart
@@ -0,0 +1,29 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+import 'avf_audio_bindings.dart';
+
+const _dylibPath =
+    '/System/Library/Frameworks/AVFAudio.framework/Versions/Current/AVFAudio';
+
+void main(List<String> args) async {
+  final lib = AVFAudio(DynamicLibrary.open(_dylibPath));
+  for (final file in args) {
+    final fileStr = NSString(lib, file);
+    print('Loading $fileStr');
+    final fileUrl = NSURL.fileURLWithPath_(lib, fileStr);
+    final player =
+        AVAudioPlayer.alloc(lib).initWithContentsOfURL_error_(fileUrl, nullptr);
+    final durationSeconds = player.duration.ceil();
+    print('$durationSeconds sec');
+    final status = player.play();
+    if (status) {
+      print('Playing...');
+      await Future<void>.delayed(Duration(seconds: durationSeconds));
+    } else {
+      print('Failed to play audio.');
+    }
+  }
+}
diff --git a/example/objective_c/pubspec.yaml b/example/objective_c/pubspec.yaml
new file mode 100644
index 0000000..33b0c31
--- /dev/null
+++ b/example/objective_c/pubspec.yaml
@@ -0,0 +1,15 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: objective_c_example
+
+environment:
+  sdk: '>=2.17.0 <4.0.0'
+
+dependencies:
+  ffi: ^2.0.1
+dev_dependencies:
+  ffigen:
+    path: '../../'
+  lints: ^2.0.0
diff --git a/example/objective_c/test.mp3 b/example/objective_c/test.mp3
new file mode 100644
index 0000000..077b618
--- /dev/null
+++ b/example/objective_c/test.mp3
Binary files differ
diff --git a/example/shared_bindings/.gitignore b/example/shared_bindings/.gitignore
new file mode 100644
index 0000000..1b05164
--- /dev/null
+++ b/example/shared_bindings/.gitignore
@@ -0,0 +1,11 @@
+# Files and directories created by pub.
+.dart_tool/
+.packages
+# Remove the following pattern if you wish to check in your lock file.
+pubspec.lock
+
+# Conventional directory for build outputs.
+build/
+
+# Directory created by dartdoc.
+doc/api/
diff --git a/example/shared_bindings/README.md b/example/shared_bindings/README.md
new file mode 100644
index 0000000..6a81fdd
--- /dev/null
+++ b/example/shared_bindings/README.md
@@ -0,0 +1,10 @@
+# Shared bindings
+
+An example to showcase how bindings can share types
+with other bindings.
+
+## Generating bindings
+At the root of this example (`example/shared_bindings`), run -
+```
+dart run generate.dart
+```
diff --git a/example/shared_bindings/ffigen_configs/a.yaml b/example/shared_bindings/ffigen_configs/a.yaml
new file mode 100644
index 0000000..55a720e
--- /dev/null
+++ b/example/shared_bindings/ffigen_configs/a.yaml
@@ -0,0 +1,12 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: NativeLibraryA
+description: Bindings to `headers/a.h`.
+output: '../lib/generated/a_gen.dart'
+headers:
+  entry-points:
+    - '../headers/a.h'
+preamble: |
+  // ignore_for_file: non_constant_identifier_names, camel_case_types
diff --git a/example/shared_bindings/ffigen_configs/a_shared_base.yaml b/example/shared_bindings/ffigen_configs/a_shared_base.yaml
new file mode 100644
index 0000000..0adcc20
--- /dev/null
+++ b/example/shared_bindings/ffigen_configs/a_shared_base.yaml
@@ -0,0 +1,16 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: NativeLibraryASharedB
+description: Bindings to `headers/a.h` with shared definitions from `headers/base.h`.
+output: '../lib/generated/a_shared_b_gen.dart'
+headers:
+  entry-points:
+    - '../headers/a.h'
+import:
+  symbol-files:
+    # Both package Uri and file paths are supported here.
+    - 'package:shared_bindings/generated/base_symbols.yaml'
+preamble: |
+  // ignore_for_file: non_constant_identifier_names, camel_case_types
diff --git a/example/shared_bindings/ffigen_configs/base.yaml b/example/shared_bindings/ffigen_configs/base.yaml
new file mode 100644
index 0000000..474d0f9
--- /dev/null
+++ b/example/shared_bindings/ffigen_configs/base.yaml
@@ -0,0 +1,17 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: NativeLibraryBase
+description: Bindings to `headers/base.h`.
+output:
+  bindings: '../lib/generated/base_gen.dart'
+  symbol-file:
+    # Although file paths are supported here, prefer Package Uri's here.
+    output: 'package:shared_bindings/generated/base_symbols.yaml'
+    import-path: 'package:shared_bindings/generated/base_gen.dart'
+headers:
+  entry-points:
+    - '../headers/base.h'
+preamble: |
+  // ignore_for_file: non_constant_identifier_names, camel_case_types
diff --git a/example/shared_bindings/generate.dart b/example/shared_bindings/generate.dart
new file mode 100644
index 0000000..8e565cf
--- /dev/null
+++ b/example/shared_bindings/generate.dart
@@ -0,0 +1,32 @@
+import 'dart:io';
+
+import 'package:cli_util/cli_util.dart';
+import 'package:path/path.dart' as p;
+
+ProcessResult runFfigenForConfig(String sdkPath, String configPath) {
+  return Process.runSync(
+    p.join(sdkPath, 'bin', 'dart'),
+    [
+      'run',
+      'ffigen',
+      '--config=$configPath',
+    ],
+    runInShell: Platform.isWindows,
+  );
+}
+
+void main() {
+  final sdkPath = getSdkPath();
+  final configPaths = [
+    'ffigen_configs/base.yaml',
+    'ffigen_configs/a.yaml',
+    'ffigen_configs/a_shared_base.yaml'
+  ];
+  for (final configPath in configPaths) {
+    final res = runFfigenForConfig(sdkPath, configPath);
+    print(res.stdout.toString());
+    if (res.exitCode != 0) {
+      throw Exception("Some error occurred: ${res.stderr.toString()}");
+    }
+  }
+}
diff --git a/example/shared_bindings/headers/a.h b/example/shared_bindings/headers/a.h
new file mode 100644
index 0000000..ef3bbea
--- /dev/null
+++ b/example/shared_bindings/headers/a.h
@@ -0,0 +1,21 @@
+
+#include "base.h"
+
+struct A_Struct1{
+    int a;
+};
+
+union A_Union1{
+    int a;
+};
+
+enum A_Enum{
+    A_ENUM_1,
+    A_ENUM_2,
+};
+
+#define A_MACRO_1 1;
+
+void a_func1();
+
+void a_func2(struct BaseStruct2 s, union BaseUnion2 u, BaseTypedef2 t);
diff --git a/example/shared_bindings/headers/base.h b/example/shared_bindings/headers/base.h
new file mode 100644
index 0000000..345cac6
--- /dev/null
+++ b/example/shared_bindings/headers/base.h
@@ -0,0 +1,31 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+struct BaseStruct1{
+    int a;
+};
+
+union BaseUnion1{
+    int a;
+};
+
+struct BaseStruct2{
+    int a;
+};
+
+union BaseUnion2{
+    int a;
+};
+
+typedef struct BaseStruct1 BaseTypedef1;
+typedef struct BaseStruct2 BaseTypedef2;
+
+enum BaseEnum{
+    BASE_ENUM_1,
+    BASE_ENUM_2,
+};
+
+#define BASE_MACRO_1 1;
+
+void base_func1(BaseTypedef1 t1, BaseTypedef2 t2);
diff --git a/example/shared_bindings/lib/generated/a_gen.dart b/example/shared_bindings/lib/generated/a_gen.dart
new file mode 100644
index 0000000..6cd4f8a
--- /dev/null
+++ b/example/shared_bindings/lib/generated/a_gen.dart
@@ -0,0 +1,113 @@
+// ignore_for_file: non_constant_identifier_names, camel_case_types
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Bindings to `headers/a.h`.
+class NativeLibraryA {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  NativeLibraryA(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  NativeLibraryA.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void base_func1(
+    BaseTypedef1 t1,
+    BaseTypedef2 t2,
+  ) {
+    return _base_func1(
+      t1,
+      t2,
+    );
+  }
+
+  late final _base_func1Ptr = _lookup<
+          ffi.NativeFunction<ffi.Void Function(BaseTypedef1, BaseTypedef2)>>(
+      'base_func1');
+  late final _base_func1 =
+      _base_func1Ptr.asFunction<void Function(BaseTypedef1, BaseTypedef2)>();
+
+  void a_func1() {
+    return _a_func1();
+  }
+
+  late final _a_func1Ptr =
+      _lookup<ffi.NativeFunction<ffi.Void Function()>>('a_func1');
+  late final _a_func1 = _a_func1Ptr.asFunction<void Function()>();
+
+  void a_func2(
+    BaseStruct2 s,
+    BaseUnion2 u,
+    BaseTypedef2 t,
+  ) {
+    return _a_func2(
+      s,
+      u,
+      t,
+    );
+  }
+
+  late final _a_func2Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(BaseStruct2, BaseUnion2, BaseTypedef2)>>('a_func2');
+  late final _a_func2 = _a_func2Ptr
+      .asFunction<void Function(BaseStruct2, BaseUnion2, BaseTypedef2)>();
+}
+
+class BaseStruct1 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseUnion1 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseStruct2 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseUnion2 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+abstract class BaseEnum {
+  static const int BASE_ENUM_1 = 0;
+  static const int BASE_ENUM_2 = 1;
+}
+
+typedef BaseTypedef1 = BaseStruct1;
+typedef BaseTypedef2 = BaseStruct2;
+
+class A_Struct1 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class A_Union1 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+abstract class A_Enum {
+  static const int A_ENUM_1 = 0;
+  static const int A_ENUM_2 = 1;
+}
+
+const int BASE_MACRO_1 = 1;
+
+const int A_MACRO_1 = 1;
diff --git a/example/shared_bindings/lib/generated/a_shared_b_gen.dart b/example/shared_bindings/lib/generated/a_shared_b_gen.dart
new file mode 100644
index 0000000..1346bec
--- /dev/null
+++ b/example/shared_bindings/lib/generated/a_shared_b_gen.dart
@@ -0,0 +1,71 @@
+// ignore_for_file: non_constant_identifier_names, camel_case_types
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+import 'package:shared_bindings/generated/base_gen.dart' as imp1;
+
+/// Bindings to `headers/a.h` with shared definitions from `headers/base.h`.
+class NativeLibraryASharedB {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  NativeLibraryASharedB(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  NativeLibraryASharedB.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void a_func1() {
+    return _a_func1();
+  }
+
+  late final _a_func1Ptr =
+      _lookup<ffi.NativeFunction<ffi.Void Function()>>('a_func1');
+  late final _a_func1 = _a_func1Ptr.asFunction<void Function()>();
+
+  void a_func2(
+    imp1.BaseStruct2 s,
+    imp1.BaseUnion2 u,
+    imp1.BaseTypedef2 t,
+  ) {
+    return _a_func2(
+      s,
+      u,
+      t,
+    );
+  }
+
+  late final _a_func2Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(imp1.BaseStruct2, imp1.BaseUnion2,
+              imp1.BaseTypedef2)>>('a_func2');
+  late final _a_func2 = _a_func2Ptr.asFunction<
+      void Function(imp1.BaseStruct2, imp1.BaseUnion2, imp1.BaseTypedef2)>();
+}
+
+class A_Struct1 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class A_Union1 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+abstract class A_Enum {
+  static const int A_ENUM_1 = 0;
+  static const int A_ENUM_2 = 1;
+}
+
+const int BASE_MACRO_1 = 1;
+
+const int A_MACRO_1 = 1;
diff --git a/example/shared_bindings/lib/generated/base_gen.dart b/example/shared_bindings/lib/generated/base_gen.dart
new file mode 100644
index 0000000..b31c2e8
--- /dev/null
+++ b/example/shared_bindings/lib/generated/base_gen.dart
@@ -0,0 +1,70 @@
+// ignore_for_file: non_constant_identifier_names, camel_case_types
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Bindings to `headers/base.h`.
+class NativeLibraryBase {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  NativeLibraryBase(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  NativeLibraryBase.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void base_func1(
+    BaseTypedef1 t1,
+    BaseTypedef2 t2,
+  ) {
+    return _base_func1(
+      t1,
+      t2,
+    );
+  }
+
+  late final _base_func1Ptr = _lookup<
+          ffi.NativeFunction<ffi.Void Function(BaseTypedef1, BaseTypedef2)>>(
+      'base_func1');
+  late final _base_func1 =
+      _base_func1Ptr.asFunction<void Function(BaseTypedef1, BaseTypedef2)>();
+}
+
+class BaseStruct1 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseUnion1 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseStruct2 extends ffi.Struct {
+  @ffi.Int()
+  external int a;
+}
+
+class BaseUnion2 extends ffi.Union {
+  @ffi.Int()
+  external int a;
+}
+
+abstract class BaseEnum {
+  static const int BASE_ENUM_1 = 0;
+  static const int BASE_ENUM_2 = 1;
+}
+
+typedef BaseTypedef1 = BaseStruct1;
+typedef BaseTypedef2 = BaseStruct2;
+
+const int BASE_MACRO_1 = 1;
diff --git a/example/shared_bindings/lib/generated/base_symbols.yaml b/example/shared_bindings/lib/generated/base_symbols.yaml
new file mode 100644
index 0000000..ad455fa
--- /dev/null
+++ b/example/shared_bindings/lib/generated/base_symbols.yaml
@@ -0,0 +1,22 @@
+format_version: 1.0.0
+files:
+  package:shared_bindings/generated/base_gen.dart:
+    used-config:
+      ffi-native: false
+    symbols:
+      c:@E@BaseEnum:
+        name: BaseEnum
+      c:@F@base_func1:
+        name: base_func1
+      c:@S@BaseStruct1:
+        name: BaseStruct1
+      c:@S@BaseStruct2:
+        name: BaseStruct2
+      c:@U@BaseUnion1:
+        name: BaseUnion1
+      c:@U@BaseUnion2:
+        name: BaseUnion2
+      c:base.h@T@BaseTypedef1:
+        name: BaseTypedef1
+      c:base.h@T@BaseTypedef2:
+        name: BaseTypedef2
diff --git a/example/shared_bindings/pubspec.yaml b/example/shared_bindings/pubspec.yaml
new file mode 100644
index 0000000..fbe942e
--- /dev/null
+++ b/example/shared_bindings/pubspec.yaml
@@ -0,0 +1,18 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: shared_bindings
+
+environment:
+  sdk: '>=2.17.0 <4.0.0'
+
+dependencies:
+  cli_util: ^0.4.0
+  ffi: ^2.0.1
+  path: ^1.8.0
+
+dev_dependencies:
+  ffigen:
+    path: '../../'
+  lints: ^2.0.1
diff --git a/example/simple/README.md b/example/simple/README.md
index 026ae9f..81d9569 100644
--- a/example/simple/README.md
+++ b/example/simple/README.md
@@ -5,6 +5,6 @@
 ## Generating bindings
 At the root of this example (`example/simple`), run -
 ```
-dart run ffigen
+dart run ffigen --config config.yaml
 ```
 This will generate bindings in a file: [generated_bindings.dart](./generated_bindings.dart).
diff --git a/example/simple/config.yaml b/example/simple/config.yaml
new file mode 100644
index 0000000..82ed925
--- /dev/null
+++ b/example/simple/config.yaml
@@ -0,0 +1,6 @@
+name: NativeLibrary
+description: Bindings to `headers/example.h`.
+output: 'generated_bindings.dart'
+headers:
+  entry-points:
+    - 'headers/example.h'
\ No newline at end of file
diff --git a/example/simple/generated_bindings.dart b/example/simple/generated_bindings.dart
index 6685438..71f0414 100644
--- a/example/simple/generated_bindings.dart
+++ b/example/simple/generated_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Bindings to `headers/example.h`.
@@ -31,13 +32,12 @@
   }
 
   late final _sumPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32, ffi.Int32)>>(
-          'sum');
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>('sum');
   late final _sum = _sumPtr.asFunction<int Function(int, int)>();
 
   /// Subtracts 2 integers.
   int subtract(
-    ffi.Pointer<ffi.Int32> a,
+    ffi.Pointer<ffi.Int> a,
     int b,
   ) {
     return _subtract(
@@ -47,13 +47,13 @@
   }
 
   late final _subtractPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int32>, ffi.Int32)>>('subtract');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Int>, ffi.Int)>>(
+      'subtract');
   late final _subtract =
-      _subtractPtr.asFunction<int Function(ffi.Pointer<ffi.Int32>, int)>();
+      _subtractPtr.asFunction<int Function(ffi.Pointer<ffi.Int>, int)>();
 
   /// Multiplies 2 integers, returns pointer to an integer,.
-  ffi.Pointer<ffi.Int32> multiply(
+  ffi.Pointer<ffi.Int> multiply(
     int a,
     int b,
   ) {
@@ -64,10 +64,10 @@
   }
 
   late final _multiplyPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Pointer<ffi.Int32> Function(ffi.Int32, ffi.Int32)>>('multiply');
+          ffi.NativeFunction<ffi.Pointer<ffi.Int> Function(ffi.Int, ffi.Int)>>(
+      'multiply');
   late final _multiply =
-      _multiplyPtr.asFunction<ffi.Pointer<ffi.Int32> Function(int, int)>();
+      _multiplyPtr.asFunction<ffi.Pointer<ffi.Int> Function(int, int)>();
 
   /// Divides 2 integers, returns pointer to a float.
   ffi.Pointer<ffi.Float> divide(
@@ -82,26 +82,26 @@
 
   late final _dividePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Float> Function(ffi.Int32, ffi.Int32)>>('divide');
+          ffi.Pointer<ffi.Float> Function(ffi.Int, ffi.Int)>>('divide');
   late final _divide =
       _dividePtr.asFunction<ffi.Pointer<ffi.Float> Function(int, int)>();
 
   /// Divides 2 floats, returns a pointer to double.
-  ffi.Pointer<ffi.Double> dividePercision(
+  ffi.Pointer<ffi.Double> dividePrecision(
     ffi.Pointer<ffi.Float> a,
     ffi.Pointer<ffi.Float> b,
   ) {
-    return _dividePercision(
+    return _dividePrecision(
       a,
       b,
     );
   }
 
-  late final _dividePercisionPtr = _lookup<
+  late final _dividePrecisionPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Double> Function(ffi.Pointer<ffi.Float>,
-              ffi.Pointer<ffi.Float>)>>('dividePercision');
-  late final _dividePercision = _dividePercisionPtr.asFunction<
+              ffi.Pointer<ffi.Float>)>>('dividePrecision');
+  late final _dividePrecision = _dividePrecisionPtr.asFunction<
       ffi.Pointer<ffi.Double> Function(
           ffi.Pointer<ffi.Float>, ffi.Pointer<ffi.Float>)>();
 }
diff --git a/example/simple/headers/example.h b/example/simple/headers/example.h
index 0f936ee..40c6b9e 100644
--- a/example/simple/headers/example.h
+++ b/example/simple/headers/example.h
@@ -15,4 +15,4 @@
 float *divide(int a, int b);
 
 /** Divides 2 floats, returns a pointer to double. */
-double *dividePercision(float *a, float *b);
+double *dividePrecision(float *a, float *b);
diff --git a/example/simple/pubspec.yaml b/example/simple/pubspec.yaml
index e419d1c..d59f53e 100644
--- a/example/simple/pubspec.yaml
+++ b/example/simple/pubspec.yaml
@@ -5,17 +5,12 @@
 name: simple_example
 
 environment:
-  sdk: '>=2.12.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
+dependencies:
+  ffi: ^2.0.1
 dev_dependencies:
   ffigen:
     path: '../../'
-  lints: ^1.0.1
+  lints: ^2.0.1
 
-ffigen:
-  name: NativeLibrary
-  description: Bindings to `headers/example.h`.
-  output: 'generated_bindings.dart'
-  headers:
-    entry-points:
-      - 'headers/example.h'
diff --git a/example/swift/README.md b/example/swift/README.md
new file mode 100644
index 0000000..d53778e
--- /dev/null
+++ b/example/swift/README.md
@@ -0,0 +1,72 @@
+# Swift example
+
+This example shows how to use ffigen to interact with Swift libraries.
+
+Swift APIs can be made compatible with Objective-C, using the `@objc`
+annotation. Then you can use the `swiftc` tool to build a dylib for the library
+using `-emit-library`, and generate an Objective-C wrapper header using
+`-emit-objc-header-path filename.h`:
+
+```shell
+swiftc -c swift_api.swift               \
+    -module-name swift_module           \
+    -emit-objc-header-path swift_api.h  \
+    -emit-library -o libswiftapi.dylib
+```
+
+This should generate libswiftapi.dylib and swift_api.h.
+For more information about Objective-C / Swift interoperability, see the
+[Apple documentation](https://developer.apple.com/documentation/swift/importing-swift-into-objective-c).
+
+Once you have an Objective-C wrapper header, ffigen can parse it like
+any other header:
+
+```shell
+dart run ffigen --config config.yaml
+```
+
+This will generate [swift_api_bindings.dart](./swift_api_bindings.dart),
+using the config in the ffigen section of the pubspec.yaml.
+
+Finally, you can run the example using this command:
+
+```shell
+dart run example.dart
+```
+
+## Config notes
+
+Ffigen only sees the Objective-C wrapper header, swift_api.h. So you
+need to set the language to objc, and set the entry-point to the header:
+
+```yaml
+language: objc
+headers:
+  entry-points:
+    - 'swift_api.h'
+```
+
+Swift classes become Objective-C interfaces, so include them like this:
+
+```yaml
+objc-interfaces:
+  include:
+    - 'SwiftClass'
+```
+
+There is one extra option you need to set when wrapping a Swift library.
+When `swiftc` compiles the library, it gives the Objective-C interface
+a module prefix. Internally, our `SwiftClass` is actually registered
+as `swift_module.SwiftClass`. So you need to tell ffigen about this prefix,
+so it loads the correct class from the dylib:
+
+```yaml
+objc-interfaces:
+  include:
+    - 'SwiftClass'
+  module:
+    'SwiftClass': 'swift_module'
+```
+
+The module prefix is whatever you passed to `swiftc` in the
+`-module-name` flag.
diff --git a/example/swift/config.yaml b/example/swift/config.yaml
new file mode 100644
index 0000000..e1a8322
--- /dev/null
+++ b/example/swift/config.yaml
@@ -0,0 +1,19 @@
+name: SwiftLibrary
+description: Bindings for swift_api.
+language: objc
+output: 'swift_api_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - 'SwiftClass'
+  module:
+    'SwiftClass': 'swift_module'
+headers:
+  entry-points:
+    - 'swift_api.h'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names
+  // ignore_for_file: unused_element, unused_field, return_of_invalid_type
+  // ignore_for_file: void_checks, annotate_overrides
+  // ignore_for_file: no_leading_underscores_for_local_identifiers
+  // ignore_for_file: library_private_types_in_public_api
\ No newline at end of file
diff --git a/example/swift/example.dart b/example/swift/example.dart
new file mode 100644
index 0000000..0e6d928
--- /dev/null
+++ b/example/swift/example.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+import 'swift_api_bindings.dart';
+
+void main() {
+  // TODO(#443): Add a test for this.
+  final lib = SwiftLibrary(DynamicLibrary.open('libswiftapi.dylib'));
+  final object = SwiftClass.new1(lib);
+  print(object.sayHello());
+  print('field = ${object.someField}');
+  object.someField = 456;
+  print('field = ${object.someField}');
+}
diff --git a/example/swift/pubspec.yaml b/example/swift/pubspec.yaml
new file mode 100644
index 0000000..d00ffa9
--- /dev/null
+++ b/example/swift/pubspec.yaml
@@ -0,0 +1,15 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: swift_example
+
+environment:
+  sdk: '>=2.17.0 <4.0.0'
+
+dependencies:
+  ffi: ^2.0.1
+dev_dependencies:
+  ffigen:
+    path: '../../'
+  lints: ^2.0.0
diff --git a/example/swift/swift_api.h b/example/swift/swift_api.h
new file mode 100644
index 0000000..0928c49
--- /dev/null
+++ b/example/swift/swift_api.h
@@ -0,0 +1,268 @@
+// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
+#ifndef SWIFT_MODULE_SWIFT_H
+#define SWIFT_MODULE_SWIFT_H
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include(<swift/objc-prologue.h>)
+# include <swift/objc-prologue.h>
+#endif
+
+#pragma clang diagnostic ignored "-Wduplicate-method-match"
+#pragma clang diagnostic ignored "-Wauto-import"
+#if defined(__OBJC__)
+#include <Foundation/Foundation.h>
+#endif
+#if defined(__cplusplus)
+#include <cstdint>
+#include <cstddef>
+#include <cstdbool>
+#else
+#include <stdint.h>
+#include <stddef.h>
+#include <stdbool.h>
+#endif
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include(<uchar.h>)
+#  include <uchar.h>
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+#  define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+#  define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+#  define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+#  define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if defined(__OBJC__)
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#endif
+#if !defined(SWIFT_EXTERN)
+# if defined(__cplusplus)
+#  define SWIFT_EXTERN extern "C"
+# else
+#  define SWIFT_EXTERN extern
+# endif
+#endif
+#if !defined(SWIFT_CALL)
+# define SWIFT_CALL __attribute__((swiftcall))
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT noexcept
+#endif
+#else
+#if !defined(SWIFT_NOEXCEPT)
+# define SWIFT_NOEXCEPT 
+#endif
+#endif
+#if defined(__cplusplus)
+#if !defined(SWIFT_CXX_INT_DEFINED)
+#define SWIFT_CXX_INT_DEFINED
+namespace swift {
+using Int = ptrdiff_t;
+using UInt = size_t;
+}
+#endif
+#endif
+#if defined(__OBJC__)
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import ObjectiveC;
+#endif
+
+#endif
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="swift_module",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+#if defined(__OBJC__)
+@class NSString;
+
+SWIFT_CLASS("_TtC12swift_module10SwiftClass")
+@interface SwiftClass : NSObject
+- (NSString * _Nonnull)sayHello SWIFT_WARN_UNUSED_RESULT;
+@property (nonatomic) NSInteger someField;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+#endif
+#if defined(__cplusplus)
+#endif
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
+#endif
diff --git a/example/swift/swift_api.swift b/example/swift/swift_api.swift
new file mode 100644
index 0000000..a978226
--- /dev/null
+++ b/example/swift/swift_api.swift
@@ -0,0 +1,13 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import Foundation
+
+@objc public class SwiftClass: NSObject {
+  @objc public func sayHello() -> String {
+    return "Hello from Swift!";
+  }
+
+  @objc public var someField = 123;
+}
diff --git a/example/swift/swift_api_bindings.dart b/example/swift/swift_api_bindings.dart
new file mode 100644
index 0000000..383944f
--- /dev/null
+++ b/example/swift/swift_api_bindings.dart
@@ -0,0 +1,64750 @@
+// ignore_for_file: camel_case_types, non_constant_identifier_names
+// ignore_for_file: unused_element, unused_field, return_of_invalid_type
+// ignore_for_file: void_checks, annotate_overrides
+// ignore_for_file: no_leading_underscores_for_local_identifiers
+// ignore_for_file: library_private_types_in_public_api
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+import 'package:ffi/ffi.dart' as pkg_ffi;
+
+/// Bindings for swift_api.
+class SwiftLibrary {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  SwiftLibrary(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  SwiftLibrary.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  ffi.Pointer<ObjCSel> _registerName1(String name) {
+    final cstr = name.toNativeUtf8();
+    final sel = _sel_registerName(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    return sel;
+  }
+
+  ffi.Pointer<ObjCSel> _sel_registerName(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __sel_registerName(
+      str,
+    );
+  }
+
+  late final __sel_registerNamePtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ffi.Char>)>>('sel_registerName');
+  late final __sel_registerName = __sel_registerNamePtr
+      .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _getClass1(String name) {
+    final cstr = name.toNativeUtf8();
+    final clazz = _objc_getClass(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    if (clazz == ffi.nullptr) {
+      throw Exception('Failed to load Objective-C class: $name');
+    }
+    return clazz;
+  }
+
+  ffi.Pointer<ObjCObject> _objc_getClass(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __objc_getClass(
+      str,
+    );
+  }
+
+  late final __objc_getClassPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ffi.Char>)>>('objc_getClass');
+  late final __objc_getClass = __objc_getClassPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _objc_retain(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_retain(
+      value,
+    );
+  }
+
+  late final __objc_retainPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>)>>('objc_retain');
+  late final __objc_retain = __objc_retainPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>)>();
+
+  void _objc_release(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_release(
+      value,
+    );
+  }
+
+  late final __objc_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject>)>>(
+          'objc_release');
+  late final __objc_release =
+      __objc_releasePtr.asFunction<void Function(ffi.Pointer<ObjCObject>)>();
+
+  late final _objc_releaseFinalizer2 =
+      ffi.NativeFinalizer(__objc_releasePtr.cast());
+  late final _class_NSObject1 = _getClass1("NSObject");
+  late final _sel_load1 = _registerName1("load");
+  void _objc_msgSend_1(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initialize1 = _registerName1("initialize");
+  late final _sel_init1 = _registerName1("init");
+  instancetype _objc_msgSend_2(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_2(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_2Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_new1 = _registerName1("new");
+  late final _sel_allocWithZone_1 = _registerName1("allocWithZone:");
+  instancetype _objc_msgSend_3(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_NSZone> zone,
+  ) {
+    return __objc_msgSend_3(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_3Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_NSZone>)>();
+
+  late final _sel_alloc1 = _registerName1("alloc");
+  late final _sel_dealloc1 = _registerName1("dealloc");
+  late final _sel_finalize1 = _registerName1("finalize");
+  late final _sel_copy1 = _registerName1("copy");
+  late final _sel_mutableCopy1 = _registerName1("mutableCopy");
+  late final _sel_copyWithZone_1 = _registerName1("copyWithZone:");
+  late final _sel_mutableCopyWithZone_1 =
+      _registerName1("mutableCopyWithZone:");
+  late final _sel_instancesRespondToSelector_1 =
+      _registerName1("instancesRespondToSelector:");
+  bool _objc_msgSend_4(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_4(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_4Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  bool _objc_msgSend_0(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> clazz,
+  ) {
+    return __objc_msgSend_0(
+      obj,
+      sel,
+      clazz,
+    );
+  }
+
+  late final __objc_msgSend_0Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isKindOfClass_1 = _registerName1("isKindOfClass:");
+  late final _class_Protocol1 = _getClass1("Protocol");
+  late final _sel_conformsToProtocol_1 = _registerName1("conformsToProtocol:");
+  bool _objc_msgSend_5(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> protocol,
+  ) {
+    return __objc_msgSend_5(
+      obj,
+      sel,
+      protocol,
+    );
+  }
+
+  late final __objc_msgSend_5Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodForSelector_1 = _registerName1("methodForSelector:");
+  IMP _objc_msgSend_6(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_6(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_6Ptr = _lookup<
+      ffi.NativeFunction<
+          IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction<
+      IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodForSelector_1 =
+      _registerName1("instanceMethodForSelector:");
+  late final _sel_doesNotRecognizeSelector_1 =
+      _registerName1("doesNotRecognizeSelector:");
+  void _objc_msgSend_7(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_7(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_7Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_forwardingTargetForSelector_1 =
+      _registerName1("forwardingTargetForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_8(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_8(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_8Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSInvocation1 = _getClass1("NSInvocation");
+  late final _class_NSMethodSignature1 = _getClass1("NSMethodSignature");
+  late final _sel_signatureWithObjCTypes_1 =
+      _registerName1("signatureWithObjCTypes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_9(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_9(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_9Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_numberOfArguments1 = _registerName1("numberOfArguments");
+  int _objc_msgSend_10(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_10(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_10Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getArgumentTypeAtIndex_1 =
+      _registerName1("getArgumentTypeAtIndex:");
+  ffi.Pointer<ffi.Char> _objc_msgSend_11(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int idx,
+  ) {
+    return __objc_msgSend_11(
+      obj,
+      sel,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_11Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_frameLength1 = _registerName1("frameLength");
+  late final _sel_isOneway1 = _registerName1("isOneway");
+  bool _objc_msgSend_12(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_12(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_12Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnType1 = _registerName1("methodReturnType");
+  ffi.Pointer<ffi.Char> _objc_msgSend_13(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_13(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_13Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnLength1 = _registerName1("methodReturnLength");
+  late final _sel_cancelPreviousPerformRequestsWithTarget_selector_object_1 =
+      _registerName1(
+          "cancelPreviousPerformRequestsWithTarget:selector:object:");
+  void _objc_msgSend_14(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+  ) {
+    return __objc_msgSend_14(
+      obj,
+      sel,
+      aTarget,
+      aSelector,
+      anArgument,
+    );
+  }
+
+  late final __objc_msgSend_14Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cancelPreviousPerformRequestsWithTarget_1 =
+      _registerName1("cancelPreviousPerformRequestsWithTarget:");
+  void _objc_msgSend_15(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+  ) {
+    return __objc_msgSend_15(
+      obj,
+      sel,
+      aTarget,
+    );
+  }
+
+  late final __objc_msgSend_15Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_accessInstanceVariablesDirectly1 =
+      _registerName1("accessInstanceVariablesDirectly");
+  late final _sel_useStoredAccessor1 = _registerName1("useStoredAccessor");
+  late final _class_NSSet1 = _getClass1("NSSet");
+  late final _sel_count1 = _registerName1("count");
+  late final _sel_member_1 = _registerName1("member:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_16(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+  ) {
+    return __objc_msgSend_16(
+      obj,
+      sel,
+      object,
+    );
+  }
+
+  late final __objc_msgSend_16Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSEnumerator1 = _getClass1("NSEnumerator");
+  late final _sel_nextObject1 = _registerName1("nextObject");
+  late final _class_NSString1 = _getClass1("NSString");
+  late final _sel_length1 = _registerName1("length");
+  late final _sel_characterAtIndex_1 = _registerName1("characterAtIndex:");
+  int _objc_msgSend_17(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_17(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_17Ptr = _lookup<
+      ffi.NativeFunction<
+          unichar Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSCoder1 = _getClass1("NSCoder");
+  late final _sel_encodeValueOfObjCType_at_1 =
+      _registerName1("encodeValueOfObjCType:at:");
+  void _objc_msgSend_18(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> addr,
+  ) {
+    return __objc_msgSend_18(
+      obj,
+      sel,
+      type,
+      addr,
+    );
+  }
+
+  late final __objc_msgSend_18Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>();
+
+  late final _class_NSData1 = _getClass1("NSData");
+  late final _sel_bytes1 = _registerName1("bytes");
+  ffi.Pointer<ffi.Void> _objc_msgSend_19(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_19(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_19Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_description1 = _registerName1("description");
+  ffi.Pointer<ObjCObject> _objc_msgSend_20(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_20(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_20Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getBytes_length_1 = _registerName1("getBytes:length:");
+  void _objc_msgSend_21(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int length,
+  ) {
+    return __objc_msgSend_21(
+      obj,
+      sel,
+      buffer,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_21Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_getBytes_range_1 = _registerName1("getBytes:range:");
+  void _objc_msgSend_22(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_22(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_22Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, NSRange)>();
+
+  late final _sel_isEqualToData_1 = _registerName1("isEqualToData:");
+  bool _objc_msgSend_23(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_23(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_23Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_subdataWithRange_1 = _registerName1("subdataWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_24(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_24(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_24Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_writeToFile_atomically_1 =
+      _registerName1("writeToFile:atomically:");
+  bool _objc_msgSend_25(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+  ) {
+    return __objc_msgSend_25(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+    );
+  }
+
+  late final __objc_msgSend_25Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _class_NSURL1 = _getClass1("NSURL");
+  late final _sel_initWithScheme_host_path_1 =
+      _registerName1("initWithScheme:host:path:");
+  instancetype _objc_msgSend_26(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> scheme,
+    ffi.Pointer<ObjCObject> host,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_26(
+      obj,
+      sel,
+      scheme,
+      host,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_26Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_27(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_27(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_27Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:relativeToURL:");
+  instancetype _objc_msgSend_28(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_28(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_28Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_28 = __objc_msgSend_28Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_1 =
+      _registerName1("initFileURLWithPath:isDirectory:");
+  instancetype _objc_msgSend_29(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_29(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_29Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_29 = __objc_msgSend_29Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initFileURLWithPath_1 =
+      _registerName1("initFileURLWithPath:");
+  instancetype _objc_msgSend_30(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_30(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_30Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_30 = __objc_msgSend_30Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("fileURLWithPath:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_31(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_31(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_31Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_31 = __objc_msgSend_31Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_relativeToURL_1 =
+      _registerName1("fileURLWithPath:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_32(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_32(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_32Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_32 = __objc_msgSend_32Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_1 =
+      _registerName1("fileURLWithPath:isDirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_33(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_33(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_33Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_33 = __objc_msgSend_33Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_fileURLWithPath_1 = _registerName1("fileURLWithPath:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_34(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_34(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_34Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_34 = __objc_msgSend_34Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "initFileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_35(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_35(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_35Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_35 = __objc_msgSend_35Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "fileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_36(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_36(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_36Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_36 = __objc_msgSend_36Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithString_1 = _registerName1("initWithString:");
+  late final _sel_initWithString_relativeToURL_1 =
+      _registerName1("initWithString:relativeToURL:");
+  late final _sel_URLWithString_1 = _registerName1("URLWithString:");
+  late final _sel_URLWithString_relativeToURL_1 =
+      _registerName1("URLWithString:relativeToURL:");
+  late final _sel_initWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initWithDataRepresentation:relativeToURL:");
+  instancetype _objc_msgSend_37(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_37(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_37Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_37 = __objc_msgSend_37Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("URLWithDataRepresentation:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_38(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_38(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_38Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_38 = __objc_msgSend_38Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initAbsoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initAbsoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_absoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("absoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_dataRepresentation1 = _registerName1("dataRepresentation");
+  ffi.Pointer<ObjCObject> _objc_msgSend_39(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_39(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_39Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_39 = __objc_msgSend_39Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteString1 = _registerName1("absoluteString");
+  late final _sel_relativeString1 = _registerName1("relativeString");
+  late final _sel_baseURL1 = _registerName1("baseURL");
+  ffi.Pointer<ObjCObject> _objc_msgSend_40(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_40(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_40Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_40 = __objc_msgSend_40Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteURL1 = _registerName1("absoluteURL");
+  late final _sel_scheme1 = _registerName1("scheme");
+  late final _sel_resourceSpecifier1 = _registerName1("resourceSpecifier");
+  late final _sel_host1 = _registerName1("host");
+  late final _class_NSNumber1 = _getClass1("NSNumber");
+  late final _class_NSValue1 = _getClass1("NSValue");
+  late final _sel_getValue_size_1 = _registerName1("getValue:size:");
+  late final _sel_objCType1 = _registerName1("objCType");
+  late final _sel_initWithBytes_objCType_1 =
+      _registerName1("initWithBytes:objCType:");
+  instancetype _objc_msgSend_41(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_41(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_41Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_41 = __objc_msgSend_41Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithCoder_1 = _registerName1("initWithCoder:");
+  instancetype _objc_msgSend_42(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> coder,
+  ) {
+    return __objc_msgSend_42(
+      obj,
+      sel,
+      coder,
+    );
+  }
+
+  late final __objc_msgSend_42Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_42 = __objc_msgSend_42Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueWithBytes_objCType_1 =
+      _registerName1("valueWithBytes:objCType:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_43(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_43(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_43Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_43 = __objc_msgSend_43Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_value_withObjCType_1 = _registerName1("value:withObjCType:");
+  late final _sel_valueWithNonretainedObject_1 =
+      _registerName1("valueWithNonretainedObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_44(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_44(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_44Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_44 = __objc_msgSend_44Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_nonretainedObjectValue1 =
+      _registerName1("nonretainedObjectValue");
+  late final _sel_valueWithPointer_1 = _registerName1("valueWithPointer:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_45(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> pointer,
+  ) {
+    return __objc_msgSend_45(
+      obj,
+      sel,
+      pointer,
+    );
+  }
+
+  late final __objc_msgSend_45Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_45 = __objc_msgSend_45Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_pointerValue1 = _registerName1("pointerValue");
+  late final _sel_isEqualToValue_1 = _registerName1("isEqualToValue:");
+  bool _objc_msgSend_46(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_46(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_46Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_46 = __objc_msgSend_46Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getValue_1 = _registerName1("getValue:");
+  void _objc_msgSend_47(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __objc_msgSend_47(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_47Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_47 = __objc_msgSend_47Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_valueWithRange_1 = _registerName1("valueWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_48(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_48(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_48Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_48 = __objc_msgSend_48Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_rangeValue1 = _registerName1("rangeValue");
+  NSRange _objc_msgSend_49(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_49(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_49Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_49 = __objc_msgSend_49Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_valueWithPoint_1 = _registerName1("valueWithPoint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_50(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_50(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_50Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_50 = __objc_msgSend_50Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_valueWithSize_1 = _registerName1("valueWithSize:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_51(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_51(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_51Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_51 = __objc_msgSend_51Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_valueWithRect_1 = _registerName1("valueWithRect:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_52(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_52(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_52Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_52 = __objc_msgSend_52Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_valueWithEdgeInsets_1 =
+      _registerName1("valueWithEdgeInsets:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_53(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSEdgeInsets insets,
+  ) {
+    return __objc_msgSend_53(
+      obj,
+      sel,
+      insets,
+    );
+  }
+
+  late final __objc_msgSend_53Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSEdgeInsets)>>('objc_msgSend');
+  late final __objc_msgSend_53 = __objc_msgSend_53Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSEdgeInsets)>();
+
+  late final _sel_pointValue1 = _registerName1("pointValue");
+  NSPoint _objc_msgSend_54(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_54(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_54Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_54 = __objc_msgSend_54Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sizeValue1 = _registerName1("sizeValue");
+  NSSize _objc_msgSend_55(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_55(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_55Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_55 = __objc_msgSend_55Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_rectValue1 = _registerName1("rectValue");
+  NSRect _objc_msgSend_56(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_56(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_56Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_56 = __objc_msgSend_56Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_edgeInsetsValue1 = _registerName1("edgeInsetsValue");
+  NSEdgeInsets _objc_msgSend_57(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_57(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_57Ptr = _lookup<
+      ffi.NativeFunction<
+          NSEdgeInsets Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_57 = __objc_msgSend_57Ptr.asFunction<
+      NSEdgeInsets Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_keyPathsForValuesAffectingValueForKey_1 =
+      _registerName1("keyPathsForValuesAffectingValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_58(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_58(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_58Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_58 = __objc_msgSend_58Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_automaticallyNotifiesObserversForKey_1 =
+      _registerName1("automaticallyNotifiesObserversForKey:");
+  bool _objc_msgSend_59(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_59(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_59Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_59 = __objc_msgSend_59Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSArray1 = _getClass1("NSArray");
+  late final _sel_objectAtIndex_1 = _registerName1("objectAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_60(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_60(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_60Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_60 = __objc_msgSend_60Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithObjects_count_1 =
+      _registerName1("initWithObjects:count:");
+  instancetype _objc_msgSend_61(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int cnt,
+  ) {
+    return __objc_msgSend_61(
+      obj,
+      sel,
+      objects,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_61Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_61 = __objc_msgSend_61Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_arrayByAddingObject_1 =
+      _registerName1("arrayByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_62(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_62(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_62Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_62 = __objc_msgSend_62Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayByAddingObjectsFromArray_1 =
+      _registerName1("arrayByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_63(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_63(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_63Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_63 = __objc_msgSend_63Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_componentsJoinedByString_1 =
+      _registerName1("componentsJoinedByString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_64(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_64(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_64Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_64 = __objc_msgSend_64Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsObject_1 = _registerName1("containsObject:");
+  late final _sel_descriptionWithLocale_1 =
+      _registerName1("descriptionWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_65(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_65(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_65Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_65 = __objc_msgSend_65Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithLocale_indent_1 =
+      _registerName1("descriptionWithLocale:indent:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_66(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+    int level,
+  ) {
+    return __objc_msgSend_66(
+      obj,
+      sel,
+      locale,
+      level,
+    );
+  }
+
+  late final __objc_msgSend_66Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_66 = __objc_msgSend_66Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_firstObjectCommonWithArray_1 =
+      _registerName1("firstObjectCommonWithArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_67(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_67(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_67Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_67 = __objc_msgSend_67Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getObjects_range_1 = _registerName1("getObjects:range:");
+  void _objc_msgSend_68(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    NSRange range,
+  ) {
+    return __objc_msgSend_68(
+      obj,
+      sel,
+      objects,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_68Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_68 = __objc_msgSend_68Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>();
+
+  late final _sel_indexOfObject_1 = _registerName1("indexOfObject:");
+  int _objc_msgSend_69(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_69(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_69Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_69 = __objc_msgSend_69Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_indexOfObject_inRange_1 =
+      _registerName1("indexOfObject:inRange:");
+  int _objc_msgSend_70(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    NSRange range,
+  ) {
+    return __objc_msgSend_70(
+      obj,
+      sel,
+      anObject,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_70Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_70 = __objc_msgSend_70Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_indexOfObjectIdenticalTo_1 =
+      _registerName1("indexOfObjectIdenticalTo:");
+  late final _sel_indexOfObjectIdenticalTo_inRange_1 =
+      _registerName1("indexOfObjectIdenticalTo:inRange:");
+  late final _sel_isEqualToArray_1 = _registerName1("isEqualToArray:");
+  bool _objc_msgSend_71(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_71(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_71Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_71 = __objc_msgSend_71Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstObject1 = _registerName1("firstObject");
+  late final _sel_lastObject1 = _registerName1("lastObject");
+  late final _sel_objectEnumerator1 = _registerName1("objectEnumerator");
+  ffi.Pointer<ObjCObject> _objc_msgSend_72(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_72(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_72Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_72 = __objc_msgSend_72Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_reverseObjectEnumerator1 =
+      _registerName1("reverseObjectEnumerator");
+  late final _sel_sortedArrayHint1 = _registerName1("sortedArrayHint");
+  late final _sel_sortedArrayUsingFunction_context_1 =
+      _registerName1("sortedArrayUsingFunction:context:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_73(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_73(
+      obj,
+      sel,
+      comparator,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_73Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_73 = __objc_msgSend_73Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_sortedArrayUsingFunction_context_hint_1 =
+      _registerName1("sortedArrayUsingFunction:context:hint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_74(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+    ffi.Pointer<ObjCObject> hint,
+  ) {
+    return __objc_msgSend_74(
+      obj,
+      sel,
+      comparator,
+      context,
+      hint,
+    );
+  }
+
+  late final __objc_msgSend_74Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_74 = __objc_msgSend_74Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingSelector_1 =
+      _registerName1("sortedArrayUsingSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_75(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> comparator,
+  ) {
+    return __objc_msgSend_75(
+      obj,
+      sel,
+      comparator,
+    );
+  }
+
+  late final __objc_msgSend_75Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_75 = __objc_msgSend_75Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_subarrayWithRange_1 = _registerName1("subarrayWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_76(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_76(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_76Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_76 = __objc_msgSend_76Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _class_NSError1 = _getClass1("NSError");
+  late final _sel_initWithDomain_code_userInfo_1 =
+      _registerName1("initWithDomain:code:userInfo:");
+  instancetype _objc_msgSend_77(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSErrorDomain domain,
+    int code,
+  ) {
+    return __objc_msgSend_77(
+      obj,
+      sel,
+      domain,
+      code,
+    );
+  }
+
+  late final __objc_msgSend_77Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSErrorDomain, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_77 = __objc_msgSend_77Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSErrorDomain, int)>();
+
+  late final _sel_errorWithDomain_code_userInfo_1 =
+      _registerName1("errorWithDomain:code:userInfo:");
+  late final _sel_domain1 = _registerName1("domain");
+  late final _sel_code1 = _registerName1("code");
+  int _objc_msgSend_78(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_78(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_78Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_78 = __objc_msgSend_78Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setKeys_triggerChangeNotificationsForDependentKey_1 =
+      _registerName1("setKeys:triggerChangeNotificationsForDependentKey:");
+  void _objc_msgSend_79(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> dependentKey,
+  ) {
+    return __objc_msgSend_79(
+      obj,
+      sel,
+      keys,
+      dependentKey,
+    );
+  }
+
+  late final __objc_msgSend_79Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_79 = __objc_msgSend_79Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classFallbacksForKeyedArchiver1 =
+      _registerName1("classFallbacksForKeyedArchiver");
+  ffi.Pointer<ObjCObject> _objc_msgSend_80(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_80(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_80Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_80 = __objc_msgSend_80Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_classForKeyedUnarchiver1 =
+      _registerName1("classForKeyedUnarchiver");
+  late final _sel_writeToURL_error_1 = _registerName1("writeToURL:error:");
+  bool _objc_msgSend_81(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_81(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_81Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_81 = __objc_msgSend_81Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_makeObjectsPerformSelector_1 =
+      _registerName1("makeObjectsPerformSelector:");
+  late final _sel_makeObjectsPerformSelector_withObject_1 =
+      _registerName1("makeObjectsPerformSelector:withObject:");
+  void _objc_msgSend_82(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_82(
+      obj,
+      sel,
+      aSelector,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_82Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_82 = __objc_msgSend_82Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSIndexSet1 = _getClass1("NSIndexSet");
+  late final _sel_indexSet1 = _registerName1("indexSet");
+  late final _sel_indexSetWithIndex_1 = _registerName1("indexSetWithIndex:");
+  late final _sel_indexSetWithIndexesInRange_1 =
+      _registerName1("indexSetWithIndexesInRange:");
+  instancetype _objc_msgSend_83(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_83(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_83Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_83 = __objc_msgSend_83Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_initWithIndexesInRange_1 =
+      _registerName1("initWithIndexesInRange:");
+  late final _sel_initWithIndexSet_1 = _registerName1("initWithIndexSet:");
+  instancetype _objc_msgSend_84(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_84(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_84Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_84 = __objc_msgSend_84Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithIndex_1 = _registerName1("initWithIndex:");
+  late final _sel_isEqualToIndexSet_1 = _registerName1("isEqualToIndexSet:");
+  bool _objc_msgSend_85(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_85(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_85Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_85 = __objc_msgSend_85Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstIndex1 = _registerName1("firstIndex");
+  late final _sel_lastIndex1 = _registerName1("lastIndex");
+  late final _sel_indexGreaterThanIndex_1 =
+      _registerName1("indexGreaterThanIndex:");
+  int _objc_msgSend_86(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_86(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_86Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_86 = __objc_msgSend_86Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_indexLessThanIndex_1 = _registerName1("indexLessThanIndex:");
+  late final _sel_indexGreaterThanOrEqualToIndex_1 =
+      _registerName1("indexGreaterThanOrEqualToIndex:");
+  late final _sel_indexLessThanOrEqualToIndex_1 =
+      _registerName1("indexLessThanOrEqualToIndex:");
+  late final _sel_getIndexes_maxCount_inIndexRange_1 =
+      _registerName1("getIndexes:maxCount:inIndexRange:");
+  int _objc_msgSend_87(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexBuffer,
+    int bufferSize,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_87(
+      obj,
+      sel,
+      indexBuffer,
+      bufferSize,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_87Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_87 = __objc_msgSend_87Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int, NSRangePointer)>();
+
+  late final _sel_countOfIndexesInRange_1 =
+      _registerName1("countOfIndexesInRange:");
+  int _objc_msgSend_88(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_88(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_88Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_88 = __objc_msgSend_88Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndex_1 = _registerName1("containsIndex:");
+  bool _objc_msgSend_89(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_89(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_89Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_89 = __objc_msgSend_89Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_containsIndexesInRange_1 =
+      _registerName1("containsIndexesInRange:");
+  bool _objc_msgSend_90(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_90(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_90Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_90 = __objc_msgSend_90Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndexes_1 = _registerName1("containsIndexes:");
+  late final _sel_intersectsIndexesInRange_1 =
+      _registerName1("intersectsIndexesInRange:");
+  ffi.Pointer<_ObjCBlockDesc> _newBlockDesc1() {
+    final d =
+        pkg_ffi.calloc.allocate<_ObjCBlockDesc>(ffi.sizeOf<_ObjCBlockDesc>());
+    d.ref.size = ffi.sizeOf<_ObjCBlock>();
+    return d;
+  }
+
+  late final _objc_block_desc1 = _newBlockDesc1();
+  late final _objc_concrete_global_block1 =
+      _lookup<ffi.Void>('_NSConcreteGlobalBlock');
+  ffi.Pointer<_ObjCBlock> _newBlock1(
+      ffi.Pointer<ffi.Void> invoke, ffi.Pointer<ffi.Void> target) {
+    final b = pkg_ffi.calloc.allocate<_ObjCBlock>(ffi.sizeOf<_ObjCBlock>());
+    b.ref.isa = _objc_concrete_global_block1;
+    b.ref.invoke = invoke;
+    b.ref.target = target;
+    b.ref.descriptor = _objc_block_desc1;
+    final copy = _Block_copy(b.cast()).cast<_ObjCBlock>();
+    pkg_ffi.calloc.free(b);
+    return copy;
+  }
+
+  ffi.Pointer<ffi.Void> _Block_copy(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_copy(
+      value,
+    );
+  }
+
+  late final __Block_copyPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>)>>('_Block_copy');
+  late final __Block_copy = __Block_copyPtr
+      .asFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>();
+
+  void _Block_release(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_release(
+      value,
+    );
+  }
+
+  late final __Block_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
+          '_Block_release');
+  late final __Block_release =
+      __Block_releasePtr.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
+
+  late final _objc_releaseFinalizer11 =
+      ffi.NativeFinalizer(__Block_releasePtr.cast());
+  late final _sel_enumerateIndexesUsingBlock_1 =
+      _registerName1("enumerateIndexesUsingBlock:");
+  void _objc_msgSend_91(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_91(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_91Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_91 = __objc_msgSend_91Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesWithOptions_usingBlock_1 =
+      _registerName1("enumerateIndexesWithOptions:usingBlock:");
+  void _objc_msgSend_92(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_92(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_92Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_92 = __objc_msgSend_92Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesInRange_options_usingBlock_1 =
+      _registerName1("enumerateIndexesInRange:options:usingBlock:");
+  void _objc_msgSend_93(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_93(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_93Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_93 = __objc_msgSend_93Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexPassingTest_1 = _registerName1("indexPassingTest:");
+  int _objc_msgSend_94(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_94(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_94Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_94 = __objc_msgSend_94Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexWithOptions_passingTest_1 =
+      _registerName1("indexWithOptions:passingTest:");
+  int _objc_msgSend_95(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_95(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_95Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_95 = __objc_msgSend_95Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexInRange_options_passingTest_1 =
+      _registerName1("indexInRange:options:passingTest:");
+  int _objc_msgSend_96(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_96(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_96Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_96 = __objc_msgSend_96Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesPassingTest_1 = _registerName1("indexesPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_97(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_97(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_97Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_97 = __objc_msgSend_97Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesWithOptions_passingTest_1 =
+      _registerName1("indexesWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_98(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_98(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_98Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_98 = __objc_msgSend_98Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesInRange_options_passingTest_1 =
+      _registerName1("indexesInRange:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_99(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_99(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_99Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_99 = __objc_msgSend_99Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesUsingBlock_1 =
+      _registerName1("enumerateRangesUsingBlock:");
+  void _objc_msgSend_100(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_100(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_100Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_100 = __objc_msgSend_100Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesWithOptions_usingBlock_1 =
+      _registerName1("enumerateRangesWithOptions:usingBlock:");
+  void _objc_msgSend_101(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_101(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_101Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_101 = __objc_msgSend_101Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesInRange_options_usingBlock_1 =
+      _registerName1("enumerateRangesInRange:options:usingBlock:");
+  void _objc_msgSend_102(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_102(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_102Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_102 = __objc_msgSend_102Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsAtIndexes_1 = _registerName1("objectsAtIndexes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_103(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_103(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_103Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_103 = __objc_msgSend_103Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectAtIndexedSubscript_1 =
+      _registerName1("objectAtIndexedSubscript:");
+  late final _sel_enumerateObjectsUsingBlock_1 =
+      _registerName1("enumerateObjectsUsingBlock:");
+  void _objc_msgSend_104(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_104(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_104Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_104 = __objc_msgSend_104Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_105(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_105(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_105Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_105 = __objc_msgSend_105Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsAtIndexes_options_usingBlock_1 =
+      _registerName1("enumerateObjectsAtIndexes:options:usingBlock:");
+  void _objc_msgSend_106(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_106(
+      obj,
+      sel,
+      s,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_106Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_106 = __objc_msgSend_106Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectPassingTest_1 =
+      _registerName1("indexOfObjectPassingTest:");
+  int _objc_msgSend_107(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_107(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_107Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_107 = __objc_msgSend_107Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectWithOptions_passingTest_1 =
+      _registerName1("indexOfObjectWithOptions:passingTest:");
+  int _objc_msgSend_108(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_108(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_108Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_108 = __objc_msgSend_108Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectAtIndexes_options_passingTest_1 =
+      _registerName1("indexOfObjectAtIndexes:options:passingTest:");
+  int _objc_msgSend_109(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_109(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_109Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_109 = __objc_msgSend_109Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsPassingTest_1 =
+      _registerName1("indexesOfObjectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_110(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_110(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_110Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_110 = __objc_msgSend_110Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsWithOptions_passingTest_1 =
+      _registerName1("indexesOfObjectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_111(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_111(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_111Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_111 = __objc_msgSend_111Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsAtIndexes_options_passingTest_1 =
+      _registerName1("indexesOfObjectsAtIndexes:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_112(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_112(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_112Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_112 = __objc_msgSend_112Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_sortedArrayUsingComparator_1 =
+      _registerName1("sortedArrayUsingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_113(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_113(
+      obj,
+      sel,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_113Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_113 = __objc_msgSend_113Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSComparator)>();
+
+  late final _sel_sortedArrayWithOptions_usingComparator_1 =
+      _registerName1("sortedArrayWithOptions:usingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_114(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_114(
+      obj,
+      sel,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_114Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_114 = __objc_msgSend_114Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, NSComparator)>();
+
+  late final _sel_indexOfObject_inSortedRange_options_usingComparator_1 =
+      _registerName1("indexOfObject:inSortedRange:options:usingComparator:");
+  int _objc_msgSend_115(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> obj1,
+    NSRange r,
+    int opts,
+    NSComparator cmp,
+  ) {
+    return __objc_msgSend_115(
+      obj,
+      sel,
+      obj1,
+      r,
+      opts,
+      cmp,
+    );
+  }
+
+  late final __objc_msgSend_115Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSRange,
+              ffi.Int32,
+              NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_115 = __objc_msgSend_115Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, int, NSComparator)>();
+
+  late final _sel_array1 = _registerName1("array");
+  late final _sel_arrayWithObject_1 = _registerName1("arrayWithObject:");
+  late final _sel_arrayWithObjects_count_1 =
+      _registerName1("arrayWithObjects:count:");
+  late final _sel_arrayWithObjects_1 = _registerName1("arrayWithObjects:");
+  late final _sel_arrayWithArray_1 = _registerName1("arrayWithArray:");
+  late final _sel_initWithObjects_1 = _registerName1("initWithObjects:");
+  late final _sel_initWithArray_1 = _registerName1("initWithArray:");
+  late final _sel_initWithArray_copyItems_1 =
+      _registerName1("initWithArray:copyItems:");
+  instancetype _objc_msgSend_116(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> array,
+    bool flag,
+  ) {
+    return __objc_msgSend_116(
+      obj,
+      sel,
+      array,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_116Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_116 = __objc_msgSend_116Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithContentsOfURL_error_1 =
+      _registerName1("initWithContentsOfURL:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_117(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_117(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_117Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_117 = __objc_msgSend_117Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfURL_error_1 =
+      _registerName1("arrayWithContentsOfURL:error:");
+  late final _sel_getObjects_1 = _registerName1("getObjects:");
+  void _objc_msgSend_118(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+  ) {
+    return __objc_msgSend_118(
+      obj,
+      sel,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_118Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_118 = __objc_msgSend_118Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfFile_1 =
+      _registerName1("arrayWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_119(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_119(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_119Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_119 = __objc_msgSend_119Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayWithContentsOfURL_1 =
+      _registerName1("arrayWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_120(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_120(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_120Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_120 = __objc_msgSend_120Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithContentsOfFile_1 =
+      _registerName1("initWithContentsOfFile:");
+  late final _sel_initWithContentsOfURL_1 =
+      _registerName1("initWithContentsOfURL:");
+  late final _sel_writeToURL_atomically_1 =
+      _registerName1("writeToURL:atomically:");
+  bool _objc_msgSend_121(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool atomically,
+  ) {
+    return __objc_msgSend_121(
+      obj,
+      sel,
+      url,
+      atomically,
+    );
+  }
+
+  late final __objc_msgSend_121Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_121 = __objc_msgSend_121Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_pathsMatchingExtensions_1 =
+      _registerName1("pathsMatchingExtensions:");
+  late final _sel_valueForKey_1 = _registerName1("valueForKey:");
+  late final _sel_setValue_forKey_1 = _registerName1("setValue:forKey:");
+  void _objc_msgSend_122(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_122(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_122Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_122 = __objc_msgSend_122Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_toObjectsAtIndexes_forKeyPath_options_context_1 =
+      _registerName1(
+          "addObserver:toObjectsAtIndexes:forKeyPath:options:context:");
+  void _objc_msgSend_123(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_123(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_123Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_123 = __objc_msgSend_123Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_context_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:context:");
+  void _objc_msgSend_124(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_124(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_124Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_124 = __objc_msgSend_124Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:");
+  void _objc_msgSend_125(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_125(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_125Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_125 = __objc_msgSend_125Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_forKeyPath_options_context_1 =
+      _registerName1("addObserver:forKeyPath:options:context:");
+  void _objc_msgSend_126(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_126(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_126Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_126 = __objc_msgSend_126Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_context_1 =
+      _registerName1("removeObserver:forKeyPath:context:");
+  void _objc_msgSend_127(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_127(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_127Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_127 = __objc_msgSend_127Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_1 =
+      _registerName1("removeObserver:forKeyPath:");
+  void _objc_msgSend_128(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_128(
+      obj,
+      sel,
+      observer,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_128Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_128 = __objc_msgSend_128Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingDescriptors_1 =
+      _registerName1("sortedArrayUsingDescriptors:");
+  late final _class_NSPredicate1 = _getClass1("NSPredicate");
+  late final _sel_predicateWithFormat_argumentArray_1 =
+      _registerName1("predicateWithFormat:argumentArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_129(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<ObjCObject> arguments,
+  ) {
+    return __objc_msgSend_129(
+      obj,
+      sel,
+      predicateFormat,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_129Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_129 = __objc_msgSend_129Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_1 =
+      _registerName1("predicateWithFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_130(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+  ) {
+    return __objc_msgSend_130(
+      obj,
+      sel,
+      predicateFormat,
+    );
+  }
+
+  late final __objc_msgSend_130Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_130 = __objc_msgSend_130Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_arguments_1 =
+      _registerName1("predicateWithFormat:arguments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_131(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_131(
+      obj,
+      sel,
+      predicateFormat,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_131Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_131 = __objc_msgSend_131Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_predicateFromMetadataQueryString_1 =
+      _registerName1("predicateFromMetadataQueryString:");
+  late final _sel_predicateWithValue_1 = _registerName1("predicateWithValue:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_132(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_132(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_132Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_132 = __objc_msgSend_132Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _class_NSDictionary1 = _getClass1("NSDictionary");
+  late final _sel_objectForKey_1 = _registerName1("objectForKey:");
+  late final _sel_keyEnumerator1 = _registerName1("keyEnumerator");
+  late final _sel_initWithObjects_forKeys_count_1 =
+      _registerName1("initWithObjects:forKeys:count:");
+  instancetype _objc_msgSend_133(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int cnt,
+  ) {
+    return __objc_msgSend_133(
+      obj,
+      sel,
+      objects,
+      keys,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_133Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_133 = __objc_msgSend_133Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_allKeys1 = _registerName1("allKeys");
+  late final _sel_allKeysForObject_1 = _registerName1("allKeysForObject:");
+  late final _sel_allValues1 = _registerName1("allValues");
+  late final _sel_descriptionInStringsFileFormat1 =
+      _registerName1("descriptionInStringsFileFormat");
+  late final _sel_isEqualToDictionary_1 =
+      _registerName1("isEqualToDictionary:");
+  bool _objc_msgSend_134(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+  ) {
+    return __objc_msgSend_134(
+      obj,
+      sel,
+      otherDictionary,
+    );
+  }
+
+  late final __objc_msgSend_134Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_134 = __objc_msgSend_134Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectsForKeys_notFoundMarker_1 =
+      _registerName1("objectsForKeys:notFoundMarker:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_135(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> marker,
+  ) {
+    return __objc_msgSend_135(
+      obj,
+      sel,
+      keys,
+      marker,
+    );
+  }
+
+  late final __objc_msgSend_135Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_135 = __objc_msgSend_135Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_keysSortedByValueUsingSelector_1 =
+      _registerName1("keysSortedByValueUsingSelector:");
+  late final _sel_getObjects_andKeys_count_1 =
+      _registerName1("getObjects:andKeys:count:");
+  void _objc_msgSend_136(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int count,
+  ) {
+    return __objc_msgSend_136(
+      obj,
+      sel,
+      objects,
+      keys,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_136Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_136 = __objc_msgSend_136Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_objectForKeyedSubscript_1 =
+      _registerName1("objectForKeyedSubscript:");
+  late final _sel_enumerateKeysAndObjectsUsingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsUsingBlock:");
+  void _objc_msgSend_137(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_137(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_137Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_137 = __objc_msgSend_137Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateKeysAndObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_138(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_138(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_138Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_138 = __objc_msgSend_138Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_keysSortedByValueUsingComparator_1 =
+      _registerName1("keysSortedByValueUsingComparator:");
+  late final _sel_keysSortedByValueWithOptions_usingComparator_1 =
+      _registerName1("keysSortedByValueWithOptions:usingComparator:");
+  late final _sel_getObjects_andKeys_1 = _registerName1("getObjects:andKeys:");
+  void _objc_msgSend_139(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+  ) {
+    return __objc_msgSend_139(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_139Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_139 = __objc_msgSend_139Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfFile_1 =
+      _registerName1("dictionaryWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_140(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_140(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_140Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_140 = __objc_msgSend_140Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_1 =
+      _registerName1("dictionaryWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_141(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_141(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_141Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_141 = __objc_msgSend_141Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionary1 = _registerName1("dictionary");
+  late final _sel_dictionaryWithObject_forKey_1 =
+      _registerName1("dictionaryWithObject:forKey:");
+  instancetype _objc_msgSend_142(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_142(
+      obj,
+      sel,
+      object,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_142Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_142 = __objc_msgSend_142Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_count_1 =
+      _registerName1("dictionaryWithObjects:forKeys:count:");
+  late final _sel_dictionaryWithObjectsAndKeys_1 =
+      _registerName1("dictionaryWithObjectsAndKeys:");
+  late final _sel_dictionaryWithDictionary_1 =
+      _registerName1("dictionaryWithDictionary:");
+  instancetype _objc_msgSend_143(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_143(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_143Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_143 = __objc_msgSend_143Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_1 =
+      _registerName1("dictionaryWithObjects:forKeys:");
+  instancetype _objc_msgSend_144(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objects,
+    ffi.Pointer<ObjCObject> keys,
+  ) {
+    return __objc_msgSend_144(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_144Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_144 = __objc_msgSend_144Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithObjectsAndKeys_1 =
+      _registerName1("initWithObjectsAndKeys:");
+  late final _sel_initWithDictionary_1 = _registerName1("initWithDictionary:");
+  late final _sel_initWithDictionary_copyItems_1 =
+      _registerName1("initWithDictionary:copyItems:");
+  instancetype _objc_msgSend_145(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+    bool flag,
+  ) {
+    return __objc_msgSend_145(
+      obj,
+      sel,
+      otherDictionary,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_145Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_145 = __objc_msgSend_145Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithObjects_forKeys_1 =
+      _registerName1("initWithObjects:forKeys:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_146(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_146(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_146Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_146 = __objc_msgSend_146Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_error_1 =
+      _registerName1("dictionaryWithContentsOfURL:error:");
+  late final _sel_sharedKeySetForKeys_1 =
+      _registerName1("sharedKeySetForKeys:");
+  late final _sel_countByEnumeratingWithState_objects_count_1 =
+      _registerName1("countByEnumeratingWithState:objects:count:");
+  int _objc_msgSend_147(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSFastEnumerationState> state,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> buffer,
+    int len,
+  ) {
+    return __objc_msgSend_147(
+      obj,
+      sel,
+      state,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_147Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSFastEnumerationState>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_147 = __objc_msgSend_147Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSFastEnumerationState>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_fileSize1 = _registerName1("fileSize");
+  int _objc_msgSend_148(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_148(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_148Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedLongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_148 = __objc_msgSend_148Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSDate1 = _getClass1("NSDate");
+  late final _sel_timeIntervalSinceReferenceDate1 =
+      _registerName1("timeIntervalSinceReferenceDate");
+  double _objc_msgSend_149(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_149(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_149Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_149 = __objc_msgSend_149Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("initWithTimeIntervalSinceReferenceDate:");
+  instancetype _objc_msgSend_150(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+  ) {
+    return __objc_msgSend_150(
+      obj,
+      sel,
+      ti,
+    );
+  }
+
+  late final __objc_msgSend_150Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_150 = __objc_msgSend_150Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_timeIntervalSinceDate_1 =
+      _registerName1("timeIntervalSinceDate:");
+  double _objc_msgSend_151(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_151(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_151Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_151 = __objc_msgSend_151Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeIntervalSinceNow1 =
+      _registerName1("timeIntervalSinceNow");
+  late final _sel_timeIntervalSince19701 =
+      _registerName1("timeIntervalSince1970");
+  late final _sel_addTimeInterval_1 = _registerName1("addTimeInterval:");
+  late final _sel_dateByAddingTimeInterval_1 =
+      _registerName1("dateByAddingTimeInterval:");
+  late final _sel_earlierDate_1 = _registerName1("earlierDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_152(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_152(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_152Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_152 = __objc_msgSend_152Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_laterDate_1 = _registerName1("laterDate:");
+  late final _sel_compare_1 = _registerName1("compare:");
+  int _objc_msgSend_153(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_153(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_153Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_153 = __objc_msgSend_153Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToDate_1 = _registerName1("isEqualToDate:");
+  bool _objc_msgSend_154(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDate,
+  ) {
+    return __objc_msgSend_154(
+      obj,
+      sel,
+      otherDate,
+    );
+  }
+
+  late final __objc_msgSend_154Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_154 = __objc_msgSend_154Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_date1 = _registerName1("date");
+  late final _sel_dateWithTimeIntervalSinceNow_1 =
+      _registerName1("dateWithTimeIntervalSinceNow:");
+  late final _sel_dateWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("dateWithTimeIntervalSinceReferenceDate:");
+  late final _sel_dateWithTimeIntervalSince1970_1 =
+      _registerName1("dateWithTimeIntervalSince1970:");
+  late final _sel_dateWithTimeInterval_sinceDate_1 =
+      _registerName1("dateWithTimeInterval:sinceDate:");
+  instancetype _objc_msgSend_155(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double secsToBeAdded,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_155(
+      obj,
+      sel,
+      secsToBeAdded,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_155Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_155 = __objc_msgSend_155Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          double, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_distantFuture1 = _registerName1("distantFuture");
+  ffi.Pointer<ObjCObject> _objc_msgSend_156(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_156(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_156Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_156 = __objc_msgSend_156Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_distantPast1 = _registerName1("distantPast");
+  late final _sel_now1 = _registerName1("now");
+  late final _sel_initWithTimeIntervalSinceNow_1 =
+      _registerName1("initWithTimeIntervalSinceNow:");
+  late final _sel_initWithTimeIntervalSince1970_1 =
+      _registerName1("initWithTimeIntervalSince1970:");
+  late final _sel_initWithTimeInterval_sinceDate_1 =
+      _registerName1("initWithTimeInterval:sinceDate:");
+  late final _sel_dateWithNaturalLanguageString_locale_1 =
+      _registerName1("dateWithNaturalLanguageString:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_157(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_157(
+      obj,
+      sel,
+      string,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_157Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_157 = __objc_msgSend_157Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithNaturalLanguageString_1 =
+      _registerName1("dateWithNaturalLanguageString:");
+  late final _sel_dateWithString_1 = _registerName1("dateWithString:");
+  late final _class_NSCalendarDate1 = _getClass1("NSCalendarDate");
+  late final _sel_calendarDate1 = _registerName1("calendarDate");
+  late final _sel_dateWithString_calendarFormat_locale_1 =
+      _registerName1("dateWithString:calendarFormat:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_158(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_158(
+      obj,
+      sel,
+      description,
+      format,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_158Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_158 = __objc_msgSend_158Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithString_calendarFormat_1 =
+      _registerName1("dateWithString:calendarFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_159(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_159(
+      obj,
+      sel,
+      description,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_159Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_159 = __objc_msgSend_159Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSTimeZone1 = _getClass1("NSTimeZone");
+  late final _sel_name1 = _registerName1("name");
+  late final _sel_data1 = _registerName1("data");
+  late final _sel_secondsFromGMTForDate_1 =
+      _registerName1("secondsFromGMTForDate:");
+  int _objc_msgSend_160(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_160(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_160Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_160 = __objc_msgSend_160Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_abbreviationForDate_1 =
+      _registerName1("abbreviationForDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_161(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_161(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_161Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_161 = __objc_msgSend_161Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isDaylightSavingTimeForDate_1 =
+      _registerName1("isDaylightSavingTimeForDate:");
+  late final _sel_daylightSavingTimeOffsetForDate_1 =
+      _registerName1("daylightSavingTimeOffsetForDate:");
+  late final _sel_nextDaylightSavingTimeTransitionAfterDate_1 =
+      _registerName1("nextDaylightSavingTimeTransitionAfterDate:");
+  late final _sel_systemTimeZone1 = _registerName1("systemTimeZone");
+  ffi.Pointer<ObjCObject> _objc_msgSend_162(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_162(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_162Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_162 = __objc_msgSend_162Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_resetSystemTimeZone1 = _registerName1("resetSystemTimeZone");
+  late final _sel_defaultTimeZone1 = _registerName1("defaultTimeZone");
+  late final _sel_setDefaultTimeZone_1 = _registerName1("setDefaultTimeZone:");
+  void _objc_msgSend_163(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_163(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_163Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_163 = __objc_msgSend_163Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_localTimeZone1 = _registerName1("localTimeZone");
+  late final _sel_knownTimeZoneNames1 = _registerName1("knownTimeZoneNames");
+  late final _sel_abbreviationDictionary1 =
+      _registerName1("abbreviationDictionary");
+  ffi.Pointer<ObjCObject> _objc_msgSend_164(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_164(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_164Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_164 = __objc_msgSend_164Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAbbreviationDictionary_1 =
+      _registerName1("setAbbreviationDictionary:");
+  void _objc_msgSend_165(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_165(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_165Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_165 = __objc_msgSend_165Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneDataVersion1 = _registerName1("timeZoneDataVersion");
+  late final _sel_secondsFromGMT1 = _registerName1("secondsFromGMT");
+  late final _sel_abbreviation1 = _registerName1("abbreviation");
+  late final _sel_isDaylightSavingTime1 =
+      _registerName1("isDaylightSavingTime");
+  late final _sel_daylightSavingTimeOffset1 =
+      _registerName1("daylightSavingTimeOffset");
+  late final _sel_nextDaylightSavingTimeTransition1 =
+      _registerName1("nextDaylightSavingTimeTransition");
+  late final _sel_isEqualToTimeZone_1 = _registerName1("isEqualToTimeZone:");
+  bool _objc_msgSend_166(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_166(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_166Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_166 = __objc_msgSend_166Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSLocale1 = _getClass1("NSLocale");
+  late final _sel_displayNameForKey_value_1 =
+      _registerName1("displayNameForKey:value:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_167(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSLocaleKey key,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_167(
+      obj,
+      sel,
+      key,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_167Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSLocaleKey,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_167 = __objc_msgSend_167Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSLocaleKey, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithLocaleIdentifier_1 =
+      _registerName1("initWithLocaleIdentifier:");
+  late final _sel_localeIdentifier1 = _registerName1("localeIdentifier");
+  late final _sel_localizedStringForLocaleIdentifier_1 =
+      _registerName1("localizedStringForLocaleIdentifier:");
+  late final _sel_languageCode1 = _registerName1("languageCode");
+  late final _sel_localizedStringForLanguageCode_1 =
+      _registerName1("localizedStringForLanguageCode:");
+  late final _sel_countryCode1 = _registerName1("countryCode");
+  late final _sel_localizedStringForCountryCode_1 =
+      _registerName1("localizedStringForCountryCode:");
+  late final _sel_scriptCode1 = _registerName1("scriptCode");
+  late final _sel_localizedStringForScriptCode_1 =
+      _registerName1("localizedStringForScriptCode:");
+  late final _sel_variantCode1 = _registerName1("variantCode");
+  late final _sel_localizedStringForVariantCode_1 =
+      _registerName1("localizedStringForVariantCode:");
+  late final _class_NSCharacterSet1 = _getClass1("NSCharacterSet");
+  late final _sel_controlCharacterSet1 = _registerName1("controlCharacterSet");
+  ffi.Pointer<ObjCObject> _objc_msgSend_168(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_168(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_168Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_168 = __objc_msgSend_168Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_whitespaceCharacterSet1 =
+      _registerName1("whitespaceCharacterSet");
+  late final _sel_whitespaceAndNewlineCharacterSet1 =
+      _registerName1("whitespaceAndNewlineCharacterSet");
+  late final _sel_decimalDigitCharacterSet1 =
+      _registerName1("decimalDigitCharacterSet");
+  late final _sel_letterCharacterSet1 = _registerName1("letterCharacterSet");
+  late final _sel_lowercaseLetterCharacterSet1 =
+      _registerName1("lowercaseLetterCharacterSet");
+  late final _sel_uppercaseLetterCharacterSet1 =
+      _registerName1("uppercaseLetterCharacterSet");
+  late final _sel_nonBaseCharacterSet1 = _registerName1("nonBaseCharacterSet");
+  late final _sel_alphanumericCharacterSet1 =
+      _registerName1("alphanumericCharacterSet");
+  late final _sel_decomposableCharacterSet1 =
+      _registerName1("decomposableCharacterSet");
+  late final _sel_illegalCharacterSet1 = _registerName1("illegalCharacterSet");
+  late final _sel_punctuationCharacterSet1 =
+      _registerName1("punctuationCharacterSet");
+  late final _sel_capitalizedLetterCharacterSet1 =
+      _registerName1("capitalizedLetterCharacterSet");
+  late final _sel_symbolCharacterSet1 = _registerName1("symbolCharacterSet");
+  late final _sel_newlineCharacterSet1 = _registerName1("newlineCharacterSet");
+  late final _sel_characterSetWithRange_1 =
+      _registerName1("characterSetWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_169(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange aRange,
+  ) {
+    return __objc_msgSend_169(
+      obj,
+      sel,
+      aRange,
+    );
+  }
+
+  late final __objc_msgSend_169Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_169 = __objc_msgSend_169Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_characterSetWithCharactersInString_1 =
+      _registerName1("characterSetWithCharactersInString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_170(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aString,
+  ) {
+    return __objc_msgSend_170(
+      obj,
+      sel,
+      aString,
+    );
+  }
+
+  late final __objc_msgSend_170Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_170 = __objc_msgSend_170Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithBitmapRepresentation_1 =
+      _registerName1("characterSetWithBitmapRepresentation:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_171(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_171(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_171Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_171 = __objc_msgSend_171Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithContentsOfFile_1 =
+      _registerName1("characterSetWithContentsOfFile:");
+  late final _sel_characterIsMember_1 = _registerName1("characterIsMember:");
+  bool _objc_msgSend_172(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aCharacter,
+  ) {
+    return __objc_msgSend_172(
+      obj,
+      sel,
+      aCharacter,
+    );
+  }
+
+  late final __objc_msgSend_172Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              unichar)>>('objc_msgSend');
+  late final __objc_msgSend_172 = __objc_msgSend_172Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_bitmapRepresentation1 =
+      _registerName1("bitmapRepresentation");
+  late final _sel_invertedSet1 = _registerName1("invertedSet");
+  late final _sel_longCharacterIsMember_1 =
+      _registerName1("longCharacterIsMember:");
+  bool _objc_msgSend_173(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int theLongChar,
+  ) {
+    return __objc_msgSend_173(
+      obj,
+      sel,
+      theLongChar,
+    );
+  }
+
+  late final __objc_msgSend_173Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              UTF32Char)>>('objc_msgSend');
+  late final __objc_msgSend_173 = __objc_msgSend_173Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isSupersetOfSet_1 = _registerName1("isSupersetOfSet:");
+  bool _objc_msgSend_174(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> theOtherSet,
+  ) {
+    return __objc_msgSend_174(
+      obj,
+      sel,
+      theOtherSet,
+    );
+  }
+
+  late final __objc_msgSend_174Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_174 = __objc_msgSend_174Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_hasMemberInPlane_1 = _registerName1("hasMemberInPlane:");
+  bool _objc_msgSend_175(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int thePlane,
+  ) {
+    return __objc_msgSend_175(
+      obj,
+      sel,
+      thePlane,
+    );
+  }
+
+  late final __objc_msgSend_175Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Uint8)>>('objc_msgSend');
+  late final __objc_msgSend_175 = __objc_msgSend_175Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_URLUserAllowedCharacterSet1 =
+      _registerName1("URLUserAllowedCharacterSet");
+  late final _sel_URLPasswordAllowedCharacterSet1 =
+      _registerName1("URLPasswordAllowedCharacterSet");
+  late final _sel_URLHostAllowedCharacterSet1 =
+      _registerName1("URLHostAllowedCharacterSet");
+  late final _sel_URLPathAllowedCharacterSet1 =
+      _registerName1("URLPathAllowedCharacterSet");
+  late final _sel_URLQueryAllowedCharacterSet1 =
+      _registerName1("URLQueryAllowedCharacterSet");
+  late final _sel_URLFragmentAllowedCharacterSet1 =
+      _registerName1("URLFragmentAllowedCharacterSet");
+  late final _sel_exemplarCharacterSet1 =
+      _registerName1("exemplarCharacterSet");
+  late final _sel_calendarIdentifier1 = _registerName1("calendarIdentifier");
+  late final _sel_localizedStringForCalendarIdentifier_1 =
+      _registerName1("localizedStringForCalendarIdentifier:");
+  late final _sel_collationIdentifier1 = _registerName1("collationIdentifier");
+  late final _sel_localizedStringForCollationIdentifier_1 =
+      _registerName1("localizedStringForCollationIdentifier:");
+  late final _sel_usesMetricSystem1 = _registerName1("usesMetricSystem");
+  late final _sel_decimalSeparator1 = _registerName1("decimalSeparator");
+  late final _sel_groupingSeparator1 = _registerName1("groupingSeparator");
+  late final _sel_currencySymbol1 = _registerName1("currencySymbol");
+  late final _sel_currencyCode1 = _registerName1("currencyCode");
+  late final _sel_localizedStringForCurrencyCode_1 =
+      _registerName1("localizedStringForCurrencyCode:");
+  late final _sel_collatorIdentifier1 = _registerName1("collatorIdentifier");
+  late final _sel_localizedStringForCollatorIdentifier_1 =
+      _registerName1("localizedStringForCollatorIdentifier:");
+  late final _sel_quotationBeginDelimiter1 =
+      _registerName1("quotationBeginDelimiter");
+  late final _sel_quotationEndDelimiter1 =
+      _registerName1("quotationEndDelimiter");
+  late final _sel_alternateQuotationBeginDelimiter1 =
+      _registerName1("alternateQuotationBeginDelimiter");
+  late final _sel_alternateQuotationEndDelimiter1 =
+      _registerName1("alternateQuotationEndDelimiter");
+  late final _sel_autoupdatingCurrentLocale1 =
+      _registerName1("autoupdatingCurrentLocale");
+  ffi.Pointer<ObjCObject> _objc_msgSend_176(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_176(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_176Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_176 = __objc_msgSend_176Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_currentLocale1 = _registerName1("currentLocale");
+  late final _sel_systemLocale1 = _registerName1("systemLocale");
+  late final _sel_localeWithLocaleIdentifier_1 =
+      _registerName1("localeWithLocaleIdentifier:");
+  late final _sel_availableLocaleIdentifiers1 =
+      _registerName1("availableLocaleIdentifiers");
+  late final _sel_ISOLanguageCodes1 = _registerName1("ISOLanguageCodes");
+  late final _sel_ISOCountryCodes1 = _registerName1("ISOCountryCodes");
+  late final _sel_ISOCurrencyCodes1 = _registerName1("ISOCurrencyCodes");
+  late final _sel_commonISOCurrencyCodes1 =
+      _registerName1("commonISOCurrencyCodes");
+  late final _sel_preferredLanguages1 = _registerName1("preferredLanguages");
+  late final _sel_componentsFromLocaleIdentifier_1 =
+      _registerName1("componentsFromLocaleIdentifier:");
+  late final _sel_localeIdentifierFromComponents_1 =
+      _registerName1("localeIdentifierFromComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_177(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_177(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_177Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_177 = __objc_msgSend_177Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_canonicalLocaleIdentifierFromString_1 =
+      _registerName1("canonicalLocaleIdentifierFromString:");
+  late final _sel_canonicalLanguageIdentifierFromString_1 =
+      _registerName1("canonicalLanguageIdentifierFromString:");
+  late final _sel_localeIdentifierFromWindowsLocaleCode_1 =
+      _registerName1("localeIdentifierFromWindowsLocaleCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_178(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int lcid,
+  ) {
+    return __objc_msgSend_178(
+      obj,
+      sel,
+      lcid,
+    );
+  }
+
+  late final __objc_msgSend_178Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Uint32)>>('objc_msgSend');
+  late final __objc_msgSend_178 = __objc_msgSend_178Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_windowsLocaleCodeFromLocaleIdentifier_1 =
+      _registerName1("windowsLocaleCodeFromLocaleIdentifier:");
+  int _objc_msgSend_179(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localeIdentifier,
+  ) {
+    return __objc_msgSend_179(
+      obj,
+      sel,
+      localeIdentifier,
+    );
+  }
+
+  late final __objc_msgSend_179Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Uint32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_179 = __objc_msgSend_179Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterDirectionForLanguage_1 =
+      _registerName1("characterDirectionForLanguage:");
+  int _objc_msgSend_180(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> isoLangCode,
+  ) {
+    return __objc_msgSend_180(
+      obj,
+      sel,
+      isoLangCode,
+    );
+  }
+
+  late final __objc_msgSend_180Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_180 = __objc_msgSend_180Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lineDirectionForLanguage_1 =
+      _registerName1("lineDirectionForLanguage:");
+  late final _sel_localizedName_locale_1 =
+      _registerName1("localizedName:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_181(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int style,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_181(
+      obj,
+      sel,
+      style,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_181Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_181 = __objc_msgSend_181Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneWithName_1 = _registerName1("timeZoneWithName:");
+  late final _sel_timeZoneWithName_data_1 =
+      _registerName1("timeZoneWithName:data:");
+  instancetype _objc_msgSend_182(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> tzName,
+    ffi.Pointer<ObjCObject> aData,
+  ) {
+    return __objc_msgSend_182(
+      obj,
+      sel,
+      tzName,
+      aData,
+    );
+  }
+
+  late final __objc_msgSend_182Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_182 = __objc_msgSend_182Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithName_1 = _registerName1("initWithName:");
+  late final _sel_initWithName_data_1 = _registerName1("initWithName:data:");
+  late final _sel_timeZoneForSecondsFromGMT_1 =
+      _registerName1("timeZoneForSecondsFromGMT:");
+  instancetype _objc_msgSend_183(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int seconds,
+  ) {
+    return __objc_msgSend_183(
+      obj,
+      sel,
+      seconds,
+    );
+  }
+
+  late final __objc_msgSend_183Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_183 = __objc_msgSend_183Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_timeZoneWithAbbreviation_1 =
+      _registerName1("timeZoneWithAbbreviation:");
+  late final _sel_dateWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("dateWithYear:month:day:hour:minute:second:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_184(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_184(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_184Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_184 = __objc_msgSend_184Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          int,
+          int,
+          int,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateByAddingYears_months_days_hours_minutes_seconds_1 =
+      _registerName1("dateByAddingYears:months:days:hours:minutes:seconds:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_185(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+  ) {
+    return __objc_msgSend_185(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+    );
+  }
+
+  late final __objc_msgSend_185Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_185 = __objc_msgSend_185Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, int, int, int)>();
+
+  late final _sel_dayOfCommonEra1 = _registerName1("dayOfCommonEra");
+  late final _sel_dayOfMonth1 = _registerName1("dayOfMonth");
+  late final _sel_dayOfWeek1 = _registerName1("dayOfWeek");
+  late final _sel_dayOfYear1 = _registerName1("dayOfYear");
+  late final _sel_hourOfDay1 = _registerName1("hourOfDay");
+  late final _sel_minuteOfHour1 = _registerName1("minuteOfHour");
+  late final _sel_monthOfYear1 = _registerName1("monthOfYear");
+  late final _sel_secondOfMinute1 = _registerName1("secondOfMinute");
+  late final _sel_yearOfCommonEra1 = _registerName1("yearOfCommonEra");
+  late final _sel_calendarFormat1 = _registerName1("calendarFormat");
+  late final _sel_descriptionWithCalendarFormat_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:locale:");
+  late final _sel_descriptionWithCalendarFormat_1 =
+      _registerName1("descriptionWithCalendarFormat:");
+  late final _sel_timeZone1 = _registerName1("timeZone");
+  late final _sel_initWithString_calendarFormat_locale_1 =
+      _registerName1("initWithString:calendarFormat:locale:");
+  late final _sel_initWithString_calendarFormat_1 =
+      _registerName1("initWithString:calendarFormat:");
+  late final _sel_initWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("initWithYear:month:day:hour:minute:second:timeZone:");
+  late final _sel_setCalendarFormat_1 = _registerName1("setCalendarFormat:");
+  void _objc_msgSend_186(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_186(
+      obj,
+      sel,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_186Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_186 = __objc_msgSend_186Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setTimeZone_1 = _registerName1("setTimeZone:");
+  void _objc_msgSend_187(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_187(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_187Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_187 = __objc_msgSend_187Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_years_months_days_hours_minutes_seconds_sinceDate_1 =
+      _registerName1("years:months:days:hours:minutes:seconds:sinceDate:");
+  void _objc_msgSend_188(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> yp,
+    ffi.Pointer<NSInteger> mop,
+    ffi.Pointer<NSInteger> dp,
+    ffi.Pointer<NSInteger> hp,
+    ffi.Pointer<NSInteger> mip,
+    ffi.Pointer<NSInteger> sp,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_188(
+      obj,
+      sel,
+      yp,
+      mop,
+      dp,
+      hp,
+      mip,
+      sp,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_188Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_188 = __objc_msgSend_188Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithCalendarFormat_timeZone_1 =
+      _registerName1("dateWithCalendarFormat:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_189(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_189(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_189Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_189 = __objc_msgSend_189Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithCalendarFormat_timeZone_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:timeZone:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_190(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_190(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_190Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_190 = __objc_msgSend_190Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileModificationDate1 =
+      _registerName1("fileModificationDate");
+  late final _sel_fileType1 = _registerName1("fileType");
+  late final _sel_filePosixPermissions1 =
+      _registerName1("filePosixPermissions");
+  late final _sel_fileOwnerAccountName1 =
+      _registerName1("fileOwnerAccountName");
+  late final _sel_fileGroupOwnerAccountName1 =
+      _registerName1("fileGroupOwnerAccountName");
+  late final _sel_fileSystemNumber1 = _registerName1("fileSystemNumber");
+  late final _sel_fileSystemFileNumber1 =
+      _registerName1("fileSystemFileNumber");
+  late final _sel_fileExtensionHidden1 = _registerName1("fileExtensionHidden");
+  late final _sel_fileHFSCreatorCode1 = _registerName1("fileHFSCreatorCode");
+  int _objc_msgSend_191(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_191(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_191Ptr = _lookup<
+      ffi.NativeFunction<
+          OSType Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_191 = __objc_msgSend_191Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileHFSTypeCode1 = _registerName1("fileHFSTypeCode");
+  late final _sel_fileIsImmutable1 = _registerName1("fileIsImmutable");
+  late final _sel_fileIsAppendOnly1 = _registerName1("fileIsAppendOnly");
+  late final _sel_fileCreationDate1 = _registerName1("fileCreationDate");
+  late final _sel_fileOwnerAccountID1 = _registerName1("fileOwnerAccountID");
+  ffi.Pointer<ObjCObject> _objc_msgSend_192(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_192(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_192Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_192 = __objc_msgSend_192Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileGroupOwnerAccountID1 =
+      _registerName1("fileGroupOwnerAccountID");
+  late final _sel_predicateWithBlock_1 = _registerName1("predicateWithBlock:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_193(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_193(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_193Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_193 = __objc_msgSend_193Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_predicateFormat1 = _registerName1("predicateFormat");
+  late final _sel_predicateWithSubstitutionVariables_1 =
+      _registerName1("predicateWithSubstitutionVariables:");
+  late final _sel_evaluateWithObject_1 = _registerName1("evaluateWithObject:");
+  late final _sel_evaluateWithObject_substitutionVariables_1 =
+      _registerName1("evaluateWithObject:substitutionVariables:");
+  bool _objc_msgSend_194(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> bindings,
+  ) {
+    return __objc_msgSend_194(
+      obj,
+      sel,
+      object,
+      bindings,
+    );
+  }
+
+  late final __objc_msgSend_194Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_194 = __objc_msgSend_194Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allowEvaluation1 = _registerName1("allowEvaluation");
+  late final _sel_filteredArrayUsingPredicate_1 =
+      _registerName1("filteredArrayUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_195(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_195(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_195Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_195 = __objc_msgSend_195Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithChar_1 = _registerName1("initWithChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_196(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_196(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_196Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Char)>>('objc_msgSend');
+  late final __objc_msgSend_196 = __objc_msgSend_196Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedChar_1 =
+      _registerName1("initWithUnsignedChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_197(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_197(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_197Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedChar)>>('objc_msgSend');
+  late final __objc_msgSend_197 = __objc_msgSend_197Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithShort_1 = _registerName1("initWithShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_198(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_198(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_198Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Short)>>('objc_msgSend');
+  late final __objc_msgSend_198 = __objc_msgSend_198Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedShort_1 =
+      _registerName1("initWithUnsignedShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_199(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_199(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_199Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedShort)>>('objc_msgSend');
+  late final __objc_msgSend_199 = __objc_msgSend_199Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithInt_1 = _registerName1("initWithInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_200(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_200(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_200Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_200 = __objc_msgSend_200Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedInt_1 =
+      _registerName1("initWithUnsignedInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_201(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_201(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_201Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedInt)>>('objc_msgSend');
+  late final __objc_msgSend_201 = __objc_msgSend_201Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLong_1 = _registerName1("initWithLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_202(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_202(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_202Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Long)>>('objc_msgSend');
+  late final __objc_msgSend_202 = __objc_msgSend_202Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLong_1 =
+      _registerName1("initWithUnsignedLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_203(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_203(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_203Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLong)>>('objc_msgSend');
+  late final __objc_msgSend_203 = __objc_msgSend_203Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLongLong_1 = _registerName1("initWithLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_204(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_204(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_204Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.LongLong)>>('objc_msgSend');
+  late final __objc_msgSend_204 = __objc_msgSend_204Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLongLong_1 =
+      _registerName1("initWithUnsignedLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_205(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_205(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_205Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLongLong)>>('objc_msgSend');
+  late final __objc_msgSend_205 = __objc_msgSend_205Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithFloat_1 = _registerName1("initWithFloat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_206(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_206(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_206Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Float)>>('objc_msgSend');
+  late final __objc_msgSend_206 = __objc_msgSend_206Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithDouble_1 = _registerName1("initWithDouble:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_207(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_207(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_207Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_207 = __objc_msgSend_207Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithBool_1 = _registerName1("initWithBool:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_208(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_208(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_208Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_208 = __objc_msgSend_208Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_initWithInteger_1 = _registerName1("initWithInteger:");
+  late final _sel_initWithUnsignedInteger_1 =
+      _registerName1("initWithUnsignedInteger:");
+  late final _sel_charValue1 = _registerName1("charValue");
+  int _objc_msgSend_209(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_209(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_209Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Char Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_209 = __objc_msgSend_209Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedCharValue1 = _registerName1("unsignedCharValue");
+  int _objc_msgSend_210(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_210(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_210Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedChar Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_210 = __objc_msgSend_210Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_shortValue1 = _registerName1("shortValue");
+  int _objc_msgSend_211(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_211(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_211Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Short Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_211 = __objc_msgSend_211Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedShortValue1 = _registerName1("unsignedShortValue");
+  int _objc_msgSend_212(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_212(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_212Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedShort Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_212 = __objc_msgSend_212Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_intValue1 = _registerName1("intValue");
+  int _objc_msgSend_213(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_213(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_213Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_213 = __objc_msgSend_213Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedIntValue1 = _registerName1("unsignedIntValue");
+  late final _sel_longValue1 = _registerName1("longValue");
+  late final _sel_unsignedLongValue1 = _registerName1("unsignedLongValue");
+  late final _sel_longLongValue1 = _registerName1("longLongValue");
+  int _objc_msgSend_214(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_214(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_214Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.LongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_214 = __objc_msgSend_214Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedLongLongValue1 =
+      _registerName1("unsignedLongLongValue");
+  late final _sel_floatValue1 = _registerName1("floatValue");
+  double _objc_msgSend_215(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_215(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_215Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_215 = __objc_msgSend_215Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_doubleValue1 = _registerName1("doubleValue");
+  late final _sel_boolValue1 = _registerName1("boolValue");
+  late final _sel_integerValue1 = _registerName1("integerValue");
+  late final _sel_unsignedIntegerValue1 =
+      _registerName1("unsignedIntegerValue");
+  late final _sel_stringValue1 = _registerName1("stringValue");
+  int _objc_msgSend_216(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherNumber,
+  ) {
+    return __objc_msgSend_216(
+      obj,
+      sel,
+      otherNumber,
+    );
+  }
+
+  late final __objc_msgSend_216Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_216 = __objc_msgSend_216Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToNumber_1 = _registerName1("isEqualToNumber:");
+  bool _objc_msgSend_217(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> number,
+  ) {
+    return __objc_msgSend_217(
+      obj,
+      sel,
+      number,
+    );
+  }
+
+  late final __objc_msgSend_217Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_217 = __objc_msgSend_217Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_numberWithChar_1 = _registerName1("numberWithChar:");
+  late final _sel_numberWithUnsignedChar_1 =
+      _registerName1("numberWithUnsignedChar:");
+  late final _sel_numberWithShort_1 = _registerName1("numberWithShort:");
+  late final _sel_numberWithUnsignedShort_1 =
+      _registerName1("numberWithUnsignedShort:");
+  late final _sel_numberWithInt_1 = _registerName1("numberWithInt:");
+  late final _sel_numberWithUnsignedInt_1 =
+      _registerName1("numberWithUnsignedInt:");
+  late final _sel_numberWithLong_1 = _registerName1("numberWithLong:");
+  late final _sel_numberWithUnsignedLong_1 =
+      _registerName1("numberWithUnsignedLong:");
+  late final _sel_numberWithLongLong_1 = _registerName1("numberWithLongLong:");
+  late final _sel_numberWithUnsignedLongLong_1 =
+      _registerName1("numberWithUnsignedLongLong:");
+  late final _sel_numberWithFloat_1 = _registerName1("numberWithFloat:");
+  late final _sel_numberWithDouble_1 = _registerName1("numberWithDouble:");
+  late final _sel_numberWithBool_1 = _registerName1("numberWithBool:");
+  late final _sel_numberWithInteger_1 = _registerName1("numberWithInteger:");
+  late final _sel_numberWithUnsignedInteger_1 =
+      _registerName1("numberWithUnsignedInteger:");
+  late final _sel_port1 = _registerName1("port");
+  late final _sel_user1 = _registerName1("user");
+  late final _sel_password1 = _registerName1("password");
+  late final _sel_path1 = _registerName1("path");
+  late final _sel_fragment1 = _registerName1("fragment");
+  late final _sel_parameterString1 = _registerName1("parameterString");
+  late final _sel_query1 = _registerName1("query");
+  late final _sel_relativePath1 = _registerName1("relativePath");
+  late final _sel_hasDirectoryPath1 = _registerName1("hasDirectoryPath");
+  late final _sel_getFileSystemRepresentation_maxLength_1 =
+      _registerName1("getFileSystemRepresentation:maxLength:");
+  bool _objc_msgSend_218(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferLength,
+  ) {
+    return __objc_msgSend_218(
+      obj,
+      sel,
+      buffer,
+      maxBufferLength,
+    );
+  }
+
+  late final __objc_msgSend_218Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_218 = __objc_msgSend_218Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_fileSystemRepresentation1 =
+      _registerName1("fileSystemRepresentation");
+  late final _sel_isFileURL1 = _registerName1("isFileURL");
+  late final _sel_standardizedURL1 = _registerName1("standardizedURL");
+  late final _sel_checkResourceIsReachableAndReturnError_1 =
+      _registerName1("checkResourceIsReachableAndReturnError:");
+  bool _objc_msgSend_219(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_219(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_219Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_219 = __objc_msgSend_219Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isFileReferenceURL1 = _registerName1("isFileReferenceURL");
+  late final _sel_fileReferenceURL1 = _registerName1("fileReferenceURL");
+  late final _sel_filePathURL1 = _registerName1("filePathURL");
+  late final _sel_getResourceValue_forKey_error_1 =
+      _registerName1("getResourceValue:forKey:error:");
+  bool _objc_msgSend_220(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+    NSURLResourceKey key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_220(
+      obj,
+      sel,
+      value,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_220Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSURLResourceKey,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_220 = __objc_msgSend_220Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          NSURLResourceKey,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getPromisedItemResourceValue_forKey_error_1 =
+      _registerName1("getPromisedItemResourceValue:forKey:error:");
+  late final _sel_promisedItemResourceValuesForKeys_error_1 =
+      _registerName1("promisedItemResourceValuesForKeys:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_221(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_221(
+      obj,
+      sel,
+      keys,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_221Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_221 = __objc_msgSend_221Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_checkPromisedItemIsReachableAndReturnError_1 =
+      _registerName1("checkPromisedItemIsReachableAndReturnError:");
+  late final _sel_fileURLWithPathComponents_1 =
+      _registerName1("fileURLWithPathComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_222(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_222(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_222Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_222 = __objc_msgSend_222Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathComponents1 = _registerName1("pathComponents");
+  late final _sel_lastPathComponent1 = _registerName1("lastPathComponent");
+  late final _sel_pathExtension1 = _registerName1("pathExtension");
+  late final _sel_URLByAppendingPathComponent_1 =
+      _registerName1("URLByAppendingPathComponent:");
+  late final _sel_URLByAppendingPathComponent_isDirectory_1 =
+      _registerName1("URLByAppendingPathComponent:isDirectory:");
+  late final _sel_URLByDeletingLastPathComponent1 =
+      _registerName1("URLByDeletingLastPathComponent");
+  late final _sel_URLByAppendingPathExtension_1 =
+      _registerName1("URLByAppendingPathExtension:");
+  late final _sel_URLByDeletingPathExtension1 =
+      _registerName1("URLByDeletingPathExtension");
+  late final _sel_URLByStandardizingPath1 =
+      _registerName1("URLByStandardizingPath");
+  late final _sel_URLByResolvingSymlinksInPath1 =
+      _registerName1("URLByResolvingSymlinksInPath");
+  late final _sel_resourceDataUsingCache_1 =
+      _registerName1("resourceDataUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_223(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_223(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_223Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_223 = __objc_msgSend_223Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_loadResourceDataNotifyingClient_usingCache_1 =
+      _registerName1("loadResourceDataNotifyingClient:usingCache:");
+  void _objc_msgSend_224(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> client,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_224(
+      obj,
+      sel,
+      client,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_224Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_224 = __objc_msgSend_224Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKey_1 = _registerName1("propertyForKey:");
+  late final _sel_setResourceData_1 = _registerName1("setResourceData:");
+  late final _sel_setProperty_forKey_1 = _registerName1("setProperty:forKey:");
+  bool _objc_msgSend_225(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> property,
+    ffi.Pointer<ObjCObject> propertyKey,
+  ) {
+    return __objc_msgSend_225(
+      obj,
+      sel,
+      property,
+      propertyKey,
+    );
+  }
+
+  late final __objc_msgSend_225Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_225 = __objc_msgSend_225Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLHandle1 = _getClass1("NSURLHandle");
+  late final _sel_registerURLHandleClass_1 =
+      _registerName1("registerURLHandleClass:");
+  late final _sel_URLHandleClassForURL_1 =
+      _registerName1("URLHandleClassForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_226(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_226(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_226Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_226 = __objc_msgSend_226Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_status1 = _registerName1("status");
+  int _objc_msgSend_227(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_227(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_227Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_227 = __objc_msgSend_227Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failureReason1 = _registerName1("failureReason");
+  late final _sel_addClient_1 = _registerName1("addClient:");
+  late final _sel_removeClient_1 = _registerName1("removeClient:");
+  late final _sel_loadInBackground1 = _registerName1("loadInBackground");
+  late final _sel_cancelLoadInBackground1 =
+      _registerName1("cancelLoadInBackground");
+  late final _sel_resourceData1 = _registerName1("resourceData");
+  late final _sel_availableResourceData1 =
+      _registerName1("availableResourceData");
+  late final _sel_expectedResourceDataSize1 =
+      _registerName1("expectedResourceDataSize");
+  late final _sel_flushCachedData1 = _registerName1("flushCachedData");
+  late final _sel_backgroundLoadDidFailWithReason_1 =
+      _registerName1("backgroundLoadDidFailWithReason:");
+  late final _sel_didLoadBytes_loadComplete_1 =
+      _registerName1("didLoadBytes:loadComplete:");
+  void _objc_msgSend_228(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> newBytes,
+    bool yorn,
+  ) {
+    return __objc_msgSend_228(
+      obj,
+      sel,
+      newBytes,
+      yorn,
+    );
+  }
+
+  late final __objc_msgSend_228Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_228 = __objc_msgSend_228Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_canInitWithURL_1 = _registerName1("canInitWithURL:");
+  bool _objc_msgSend_229(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_229(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_229Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_229 = __objc_msgSend_229Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cachedHandleForURL_1 = _registerName1("cachedHandleForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_230(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_230(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_230Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_230 = __objc_msgSend_230Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithURL_cached_1 = _registerName1("initWithURL:cached:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_231(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+    bool willCache,
+  ) {
+    return __objc_msgSend_231(
+      obj,
+      sel,
+      anURL,
+      willCache,
+    );
+  }
+
+  late final __objc_msgSend_231Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_231 = __objc_msgSend_231Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKeyIfAvailable_1 =
+      _registerName1("propertyForKeyIfAvailable:");
+  late final _sel_writeProperty_forKey_1 =
+      _registerName1("writeProperty:forKey:");
+  late final _sel_writeData_1 = _registerName1("writeData:");
+  late final _sel_loadInForeground1 = _registerName1("loadInForeground");
+  late final _sel_beginLoadInBackground1 =
+      _registerName1("beginLoadInBackground");
+  late final _sel_endLoadInBackground1 = _registerName1("endLoadInBackground");
+  late final _sel_URLHandleUsingCache_1 =
+      _registerName1("URLHandleUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_232(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_232(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_232Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_232 = __objc_msgSend_232Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_writeToFile_options_error_1 =
+      _registerName1("writeToFile:options:error:");
+  bool _objc_msgSend_233(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_233(
+      obj,
+      sel,
+      path,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_233Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_233 = __objc_msgSend_233Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToURL_options_error_1 =
+      _registerName1("writeToURL:options:error:");
+  bool _objc_msgSend_234(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_234(
+      obj,
+      sel,
+      url,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_234Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_234 = __objc_msgSend_234Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_rangeOfData_options_range_1 =
+      _registerName1("rangeOfData:options:range:");
+  NSRange _objc_msgSend_235(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataToFind,
+    int mask,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_235(
+      obj,
+      sel,
+      dataToFind,
+      mask,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_235Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_235 = __objc_msgSend_235Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_enumerateByteRangesUsingBlock_1 =
+      _registerName1("enumerateByteRangesUsingBlock:");
+  void _objc_msgSend_236(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_236(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_236Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_236 = __objc_msgSend_236Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataWithBytes_length_1 =
+      _registerName1("dataWithBytes:length:");
+  instancetype _objc_msgSend_237(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+  ) {
+    return __objc_msgSend_237(
+      obj,
+      sel,
+      bytes,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_237Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_237 = __objc_msgSend_237Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_dataWithBytesNoCopy_length_1 =
+      _registerName1("dataWithBytesNoCopy:length:");
+  late final _sel_dataWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("dataWithBytesNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_238(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    bool b,
+  ) {
+    return __objc_msgSend_238(
+      obj,
+      sel,
+      bytes,
+      length,
+      b,
+    );
+  }
+
+  late final __objc_msgSend_238Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_238 = __objc_msgSend_238Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, bool)>();
+
+  late final _sel_dataWithContentsOfFile_options_error_1 =
+      _registerName1("dataWithContentsOfFile:options:error:");
+  instancetype _objc_msgSend_239(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_239(
+      obj,
+      sel,
+      path,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_239Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_239 = __objc_msgSend_239Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfURL_options_error_1 =
+      _registerName1("dataWithContentsOfURL:options:error:");
+  instancetype _objc_msgSend_240(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_240(
+      obj,
+      sel,
+      url,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_240Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_240 = __objc_msgSend_240Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfFile_1 =
+      _registerName1("dataWithContentsOfFile:");
+  late final _sel_dataWithContentsOfURL_1 =
+      _registerName1("dataWithContentsOfURL:");
+  late final _sel_initWithBytes_length_1 =
+      _registerName1("initWithBytes:length:");
+  late final _sel_initWithBytesNoCopy_length_1 =
+      _registerName1("initWithBytesNoCopy:length:");
+  late final _sel_initWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:freeWhenDone:");
+  late final _sel_initWithBytesNoCopy_length_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_241(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_241(
+      obj,
+      sel,
+      bytes,
+      length,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_241Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_241 = __objc_msgSend_241Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithContentsOfFile_options_error_1 =
+      _registerName1("initWithContentsOfFile:options:error:");
+  late final _sel_initWithContentsOfURL_options_error_1 =
+      _registerName1("initWithContentsOfURL:options:error:");
+  late final _sel_initWithData_1 = _registerName1("initWithData:");
+  instancetype _objc_msgSend_242(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_242(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_242Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_242 = __objc_msgSend_242Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataWithData_1 = _registerName1("dataWithData:");
+  late final _sel_initWithBase64EncodedString_options_1 =
+      _registerName1("initWithBase64EncodedString:options:");
+  instancetype _objc_msgSend_243(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64String,
+    int options,
+  ) {
+    return __objc_msgSend_243(
+      obj,
+      sel,
+      base64String,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_243Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_243 = __objc_msgSend_243Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedStringWithOptions_1 =
+      _registerName1("base64EncodedStringWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_244(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_244(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_244Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_244 = __objc_msgSend_244Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithBase64EncodedData_options_1 =
+      _registerName1("initWithBase64EncodedData:options:");
+  instancetype _objc_msgSend_245(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64Data,
+    int options,
+  ) {
+    return __objc_msgSend_245(
+      obj,
+      sel,
+      base64Data,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_245Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_245 = __objc_msgSend_245Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedDataWithOptions_1 =
+      _registerName1("base64EncodedDataWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_246(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_246(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_246Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_246 = __objc_msgSend_246Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_decompressedDataUsingAlgorithm_error_1 =
+      _registerName1("decompressedDataUsingAlgorithm:error:");
+  instancetype _objc_msgSend_247(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int algorithm,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_247(
+      obj,
+      sel,
+      algorithm,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_247Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_247 = __objc_msgSend_247Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_compressedDataUsingAlgorithm_error_1 =
+      _registerName1("compressedDataUsingAlgorithm:error:");
+  late final _sel_getBytes_1 = _registerName1("getBytes:");
+  late final _sel_dataWithContentsOfMappedFile_1 =
+      _registerName1("dataWithContentsOfMappedFile:");
+  late final _sel_initWithContentsOfMappedFile_1 =
+      _registerName1("initWithContentsOfMappedFile:");
+  late final _sel_initWithBase64Encoding_1 =
+      _registerName1("initWithBase64Encoding:");
+  late final _sel_base64Encoding1 = _registerName1("base64Encoding");
+  late final _sel_encodeDataObject_1 = _registerName1("encodeDataObject:");
+  void _objc_msgSend_248(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_248(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_248Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_248 = __objc_msgSend_248Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDataObject1 = _registerName1("decodeDataObject");
+  late final _sel_decodeValueOfObjCType_at_size_1 =
+      _registerName1("decodeValueOfObjCType:at:size:");
+  void _objc_msgSend_249(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> data,
+    int size,
+  ) {
+    return __objc_msgSend_249(
+      obj,
+      sel,
+      type,
+      data,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_249Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_249 = __objc_msgSend_249Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_versionForClassName_1 =
+      _registerName1("versionForClassName:");
+  int _objc_msgSend_250(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> className,
+  ) {
+    return __objc_msgSend_250(
+      obj,
+      sel,
+      className,
+    );
+  }
+
+  late final __objc_msgSend_250Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_250 = __objc_msgSend_250Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeObject_1 = _registerName1("encodeObject:");
+  late final _sel_encodeRootObject_1 = _registerName1("encodeRootObject:");
+  late final _sel_encodeBycopyObject_1 = _registerName1("encodeBycopyObject:");
+  late final _sel_encodeByrefObject_1 = _registerName1("encodeByrefObject:");
+  late final _sel_encodeConditionalObject_1 =
+      _registerName1("encodeConditionalObject:");
+  late final _sel_encodeValuesOfObjCTypes_1 =
+      _registerName1("encodeValuesOfObjCTypes:");
+  void _objc_msgSend_251(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_251(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_251Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_251 = __objc_msgSend_251Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_encodeArrayOfObjCType_count_at_1 =
+      _registerName1("encodeArrayOfObjCType:count:at:");
+  void _objc_msgSend_252(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    int count,
+    ffi.Pointer<ffi.Void> array,
+  ) {
+    return __objc_msgSend_252(
+      obj,
+      sel,
+      type,
+      count,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_252Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_252 = __objc_msgSend_252Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_encodeBytes_length_1 = _registerName1("encodeBytes:length:");
+  late final _sel_decodeObject1 = _registerName1("decodeObject");
+  late final _sel_decodeTopLevelObjectAndReturnError_1 =
+      _registerName1("decodeTopLevelObjectAndReturnError:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_253(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_253(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_253Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_253 = __objc_msgSend_253Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeValuesOfObjCTypes_1 =
+      _registerName1("decodeValuesOfObjCTypes:");
+  late final _sel_decodeArrayOfObjCType_count_at_1 =
+      _registerName1("decodeArrayOfObjCType:count:at:");
+  late final _sel_decodeBytesWithReturnedLength_1 =
+      _registerName1("decodeBytesWithReturnedLength:");
+  ffi.Pointer<ffi.Void> _objc_msgSend_254(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_254(
+      obj,
+      sel,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_254Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_254 = __objc_msgSend_254Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodePropertyList_1 = _registerName1("encodePropertyList:");
+  late final _sel_decodePropertyList1 = _registerName1("decodePropertyList");
+  late final _sel_setObjectZone_1 = _registerName1("setObjectZone:");
+  void _objc_msgSend_255(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSZone> zone,
+  ) {
+    return __objc_msgSend_255(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_255Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_255 = __objc_msgSend_255Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSZone>)>();
+
+  late final _sel_objectZone1 = _registerName1("objectZone");
+  ffi.Pointer<NSZone> _objc_msgSend_256(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_256(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_256Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSZone> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_256 = __objc_msgSend_256Ptr.asFunction<
+      ffi.Pointer<NSZone> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_systemVersion1 = _registerName1("systemVersion");
+  late final _sel_allowsKeyedCoding1 = _registerName1("allowsKeyedCoding");
+  late final _sel_encodeObject_forKey_1 =
+      _registerName1("encodeObject:forKey:");
+  late final _sel_encodeConditionalObject_forKey_1 =
+      _registerName1("encodeConditionalObject:forKey:");
+  late final _sel_encodeBool_forKey_1 = _registerName1("encodeBool:forKey:");
+  void _objc_msgSend_257(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_257(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_257Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_257 = __objc_msgSend_257Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt_forKey_1 = _registerName1("encodeInt:forKey:");
+  void _objc_msgSend_258(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_258(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_258Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_258 = __objc_msgSend_258Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt32_forKey_1 = _registerName1("encodeInt32:forKey:");
+  void _objc_msgSend_259(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_259(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_259Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_259 = __objc_msgSend_259Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt64_forKey_1 = _registerName1("encodeInt64:forKey:");
+  void _objc_msgSend_260(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_260(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_260Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_260 = __objc_msgSend_260Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeFloat_forKey_1 = _registerName1("encodeFloat:forKey:");
+  void _objc_msgSend_261(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_261(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_261Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_261 = __objc_msgSend_261Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeDouble_forKey_1 =
+      _registerName1("encodeDouble:forKey:");
+  void _objc_msgSend_262(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_262(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_262Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_262 = __objc_msgSend_262Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeBytes_length_forKey_1 =
+      _registerName1("encodeBytes:length:forKey:");
+  void _objc_msgSend_263(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> bytes,
+    int length,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_263(
+      obj,
+      sel,
+      bytes,
+      length,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_263Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_263 = __objc_msgSend_263Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsValueForKey_1 =
+      _registerName1("containsValueForKey:");
+  late final _sel_decodeObjectForKey_1 = _registerName1("decodeObjectForKey:");
+  late final _sel_decodeTopLevelObjectForKey_error_1 =
+      _registerName1("decodeTopLevelObjectForKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_264(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_264(
+      obj,
+      sel,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_264Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_264 = __objc_msgSend_264Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeBoolForKey_1 = _registerName1("decodeBoolForKey:");
+  late final _sel_decodeIntForKey_1 = _registerName1("decodeIntForKey:");
+  int _objc_msgSend_265(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_265(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_265Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_265 = __objc_msgSend_265Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt32ForKey_1 = _registerName1("decodeInt32ForKey:");
+  int _objc_msgSend_266(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_266(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_266Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_266 = __objc_msgSend_266Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt64ForKey_1 = _registerName1("decodeInt64ForKey:");
+  int _objc_msgSend_267(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_267(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_267Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int64 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_267 = __objc_msgSend_267Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeFloatForKey_1 = _registerName1("decodeFloatForKey:");
+  double _objc_msgSend_268(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_268(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_268Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_268 = __objc_msgSend_268Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDoubleForKey_1 = _registerName1("decodeDoubleForKey:");
+  double _objc_msgSend_269(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_269(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_269Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_269 = __objc_msgSend_269Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeBytesForKey_returnedLength_1 =
+      _registerName1("decodeBytesForKey:returnedLength:");
+  ffi.Pointer<ffi.Uint8> _objc_msgSend_270(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_270(
+      obj,
+      sel,
+      key,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_270Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Uint8> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_270 = __objc_msgSend_270Ptr.asFunction<
+      ffi.Pointer<ffi.Uint8> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodeInteger_forKey_1 =
+      _registerName1("encodeInteger:forKey:");
+  void _objc_msgSend_271(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_271(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_271Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_271 = __objc_msgSend_271Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeIntegerForKey_1 =
+      _registerName1("decodeIntegerForKey:");
+  late final _sel_requiresSecureCoding1 =
+      _registerName1("requiresSecureCoding");
+  late final _sel_decodeObjectOfClass_forKey_1 =
+      _registerName1("decodeObjectOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_272(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_272(
+      obj,
+      sel,
+      aClass,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_272Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_272 = __objc_msgSend_272Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClass_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClass:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_273(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_273(
+      obj,
+      sel,
+      aClass,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_273Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_273 = __objc_msgSend_273Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClass_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_274(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_274(
+      obj,
+      sel,
+      cls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_274Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_274 = __objc_msgSend_274Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_1 =
+      _registerName1("decodeDictionaryWithKeysOfClass:objectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_275(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyCls,
+    ffi.Pointer<ObjCObject> objectCls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_275(
+      obj,
+      sel,
+      keyCls,
+      objectCls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_275Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_275 = __objc_msgSend_275Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeObjectOfClasses_forKey_1 =
+      _registerName1("decodeObjectOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_276(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_276(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_276Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_276 = __objc_msgSend_276Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClasses_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClasses:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_277(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_277(
+      obj,
+      sel,
+      classes,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_277Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_277 = __objc_msgSend_277Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClasses_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_278(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_278(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_278Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_278 = __objc_msgSend_278Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_1 =
+      _registerName1(
+          "decodeDictionaryWithKeysOfClasses:objectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_279(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyClasses,
+    ffi.Pointer<ObjCObject> objectClasses,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_279(
+      obj,
+      sel,
+      keyClasses,
+      objectClasses,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_279Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_279 = __objc_msgSend_279Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePropertyListForKey_1 =
+      _registerName1("decodePropertyListForKey:");
+  late final _sel_allowedClasses1 = _registerName1("allowedClasses");
+  ffi.Pointer<ObjCObject> _objc_msgSend_280(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_280(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_280Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_280 = __objc_msgSend_280Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failWithError_1 = _registerName1("failWithError:");
+  void _objc_msgSend_281(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+  ) {
+    return __objc_msgSend_281(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_281Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_281 = __objc_msgSend_281Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodingFailurePolicy1 =
+      _registerName1("decodingFailurePolicy");
+  int _objc_msgSend_282(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_282(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_282Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_282 = __objc_msgSend_282Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_error1 = _registerName1("error");
+  ffi.Pointer<ObjCObject> _objc_msgSend_283(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_283(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_283Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_283 = __objc_msgSend_283Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_encodeNXObject_1 = _registerName1("encodeNXObject:");
+  late final _sel_decodeNXObject1 = _registerName1("decodeNXObject");
+  late final _sel_decodeValueOfObjCType_at_1 =
+      _registerName1("decodeValueOfObjCType:at:");
+  late final _sel_encodePoint_1 = _registerName1("encodePoint:");
+  void _objc_msgSend_284(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_284(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_284Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_284 = __objc_msgSend_284Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_decodePoint1 = _registerName1("decodePoint");
+  late final _sel_encodeSize_1 = _registerName1("encodeSize:");
+  void _objc_msgSend_285(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_285(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_285Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_285 = __objc_msgSend_285Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_decodeSize1 = _registerName1("decodeSize");
+  late final _sel_encodeRect_1 = _registerName1("encodeRect:");
+  void _objc_msgSend_286(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_286(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_286Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_286 = __objc_msgSend_286Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_decodeRect1 = _registerName1("decodeRect");
+  late final _sel_encodePoint_forKey_1 = _registerName1("encodePoint:forKey:");
+  void _objc_msgSend_287(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_287(
+      obj,
+      sel,
+      point,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_287Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_287 = __objc_msgSend_287Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeSize_forKey_1 = _registerName1("encodeSize:forKey:");
+  void _objc_msgSend_288(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_288(
+      obj,
+      sel,
+      size,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_288Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_288 = __objc_msgSend_288Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeRect_forKey_1 = _registerName1("encodeRect:forKey:");
+  void _objc_msgSend_289(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_289(
+      obj,
+      sel,
+      rect,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_289Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_289 = __objc_msgSend_289Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePointForKey_1 = _registerName1("decodePointForKey:");
+  NSPoint _objc_msgSend_290(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_290(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_290Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_290 = __objc_msgSend_290Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeSizeForKey_1 = _registerName1("decodeSizeForKey:");
+  NSSize _objc_msgSend_291(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_291(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_291Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_291 = __objc_msgSend_291Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeRectForKey_1 = _registerName1("decodeRectForKey:");
+  NSRect _objc_msgSend_292(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_292(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_292Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_292 = __objc_msgSend_292Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_substringFromIndex_1 = _registerName1("substringFromIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_293(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int from,
+  ) {
+    return __objc_msgSend_293(
+      obj,
+      sel,
+      from,
+    );
+  }
+
+  late final __objc_msgSend_293Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_293 = __objc_msgSend_293Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_substringToIndex_1 = _registerName1("substringToIndex:");
+  late final _sel_substringWithRange_1 = _registerName1("substringWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_294(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_294(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_294Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_294 = __objc_msgSend_294Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_getCharacters_range_1 =
+      _registerName1("getCharacters:range:");
+  void _objc_msgSend_295(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_295(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_295Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_295 = __objc_msgSend_295Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, NSRange)>();
+
+  int _objc_msgSend_296(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_296(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_296Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_296 = __objc_msgSend_296Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_compare_options_1 = _registerName1("compare:options:");
+  int _objc_msgSend_297(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+  ) {
+    return __objc_msgSend_297(
+      obj,
+      sel,
+      string,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_297Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_297 = __objc_msgSend_297Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_compare_options_range_1 =
+      _registerName1("compare:options:range:");
+  int _objc_msgSend_298(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+  ) {
+    return __objc_msgSend_298(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+    );
+  }
+
+  late final __objc_msgSend_298Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_298 = __objc_msgSend_298Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_compare_options_range_locale_1 =
+      _registerName1("compare:options:range:locale:");
+  int _objc_msgSend_299(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_299(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_299Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_299 = __objc_msgSend_299Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_caseInsensitiveCompare_1 =
+      _registerName1("caseInsensitiveCompare:");
+  late final _sel_localizedCompare_1 = _registerName1("localizedCompare:");
+  late final _sel_localizedCaseInsensitiveCompare_1 =
+      _registerName1("localizedCaseInsensitiveCompare:");
+  late final _sel_localizedStandardCompare_1 =
+      _registerName1("localizedStandardCompare:");
+  late final _sel_isEqualToString_1 = _registerName1("isEqualToString:");
+  late final _sel_hasPrefix_1 = _registerName1("hasPrefix:");
+  late final _sel_hasSuffix_1 = _registerName1("hasSuffix:");
+  late final _sel_commonPrefixWithString_options_1 =
+      _registerName1("commonPrefixWithString:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_300(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+    int mask,
+  ) {
+    return __objc_msgSend_300(
+      obj,
+      sel,
+      str,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_300Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_300 = __objc_msgSend_300Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_containsString_1 = _registerName1("containsString:");
+  late final _sel_localizedCaseInsensitiveContainsString_1 =
+      _registerName1("localizedCaseInsensitiveContainsString:");
+  late final _sel_localizedStandardContainsString_1 =
+      _registerName1("localizedStandardContainsString:");
+  late final _sel_localizedStandardRangeOfString_1 =
+      _registerName1("localizedStandardRangeOfString:");
+  NSRange _objc_msgSend_301(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+  ) {
+    return __objc_msgSend_301(
+      obj,
+      sel,
+      str,
+    );
+  }
+
+  late final __objc_msgSend_301Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_301 = __objc_msgSend_301Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfString_1 = _registerName1("rangeOfString:");
+  late final _sel_rangeOfString_options_1 =
+      _registerName1("rangeOfString:options:");
+  NSRange _objc_msgSend_302(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+  ) {
+    return __objc_msgSend_302(
+      obj,
+      sel,
+      searchString,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_302Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_302 = __objc_msgSend_302Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfString_options_range_1 =
+      _registerName1("rangeOfString:options:range:");
+  NSRange _objc_msgSend_303(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_303(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_303Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_303 = __objc_msgSend_303Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfString_options_range_locale_1 =
+      _registerName1("rangeOfString:options:range:locale:");
+  NSRange _objc_msgSend_304(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_304(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_304Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_304 = __objc_msgSend_304Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_1 =
+      _registerName1("rangeOfCharacterFromSet:");
+  NSRange _objc_msgSend_305(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+  ) {
+    return __objc_msgSend_305(
+      obj,
+      sel,
+      searchSet,
+    );
+  }
+
+  late final __objc_msgSend_305Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_305 = __objc_msgSend_305Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_1 =
+      _registerName1("rangeOfCharacterFromSet:options:");
+  NSRange _objc_msgSend_306(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+  ) {
+    return __objc_msgSend_306(
+      obj,
+      sel,
+      searchSet,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_306Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_306 = __objc_msgSend_306Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_range_1 =
+      _registerName1("rangeOfCharacterFromSet:options:range:");
+  NSRange _objc_msgSend_307(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_307(
+      obj,
+      sel,
+      searchSet,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_307Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_307 = __objc_msgSend_307Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfComposedCharacterSequenceAtIndex_1 =
+      _registerName1("rangeOfComposedCharacterSequenceAtIndex:");
+  NSRange _objc_msgSend_308(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_308(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_308Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_308 = __objc_msgSend_308Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_rangeOfComposedCharacterSequencesForRange_1 =
+      _registerName1("rangeOfComposedCharacterSequencesForRange:");
+  NSRange _objc_msgSend_309(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_309(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_309Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_309 = __objc_msgSend_309Ptr.asFunction<
+      NSRange Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_stringByAppendingString_1 =
+      _registerName1("stringByAppendingString:");
+  late final _sel_stringByAppendingFormat_1 =
+      _registerName1("stringByAppendingFormat:");
+  late final _sel_uppercaseString1 = _registerName1("uppercaseString");
+  late final _sel_lowercaseString1 = _registerName1("lowercaseString");
+  late final _sel_capitalizedString1 = _registerName1("capitalizedString");
+  late final _sel_localizedUppercaseString1 =
+      _registerName1("localizedUppercaseString");
+  late final _sel_localizedLowercaseString1 =
+      _registerName1("localizedLowercaseString");
+  late final _sel_localizedCapitalizedString1 =
+      _registerName1("localizedCapitalizedString");
+  late final _sel_uppercaseStringWithLocale_1 =
+      _registerName1("uppercaseStringWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_310(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_310(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_310Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_310 = __objc_msgSend_310Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lowercaseStringWithLocale_1 =
+      _registerName1("lowercaseStringWithLocale:");
+  late final _sel_capitalizedStringWithLocale_1 =
+      _registerName1("capitalizedStringWithLocale:");
+  late final _sel_getLineStart_end_contentsEnd_forRange_1 =
+      _registerName1("getLineStart:end:contentsEnd:forRange:");
+  void _objc_msgSend_311(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> startPtr,
+    ffi.Pointer<NSUInteger> lineEndPtr,
+    ffi.Pointer<NSUInteger> contentsEndPtr,
+    NSRange range,
+  ) {
+    return __objc_msgSend_311(
+      obj,
+      sel,
+      startPtr,
+      lineEndPtr,
+      contentsEndPtr,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_311Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_311 = __objc_msgSend_311Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          NSRange)>();
+
+  late final _sel_lineRangeForRange_1 = _registerName1("lineRangeForRange:");
+  late final _sel_getParagraphStart_end_contentsEnd_forRange_1 =
+      _registerName1("getParagraphStart:end:contentsEnd:forRange:");
+  late final _sel_paragraphRangeForRange_1 =
+      _registerName1("paragraphRangeForRange:");
+  late final _sel_enumerateSubstringsInRange_options_usingBlock_1 =
+      _registerName1("enumerateSubstringsInRange:options:usingBlock:");
+  void _objc_msgSend_312(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_312(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_312Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_312 = __objc_msgSend_312Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateLinesUsingBlock_1 =
+      _registerName1("enumerateLinesUsingBlock:");
+  void _objc_msgSend_313(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_313(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_313Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_313 = __objc_msgSend_313Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_UTF8String1 = _registerName1("UTF8String");
+  late final _sel_fastestEncoding1 = _registerName1("fastestEncoding");
+  late final _sel_smallestEncoding1 = _registerName1("smallestEncoding");
+  late final _sel_dataUsingEncoding_allowLossyConversion_1 =
+      _registerName1("dataUsingEncoding:allowLossyConversion:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_314(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+    bool lossy,
+  ) {
+    return __objc_msgSend_314(
+      obj,
+      sel,
+      encoding,
+      lossy,
+    );
+  }
+
+  late final __objc_msgSend_314Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_314 = __objc_msgSend_314Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, bool)>();
+
+  late final _sel_dataUsingEncoding_1 = _registerName1("dataUsingEncoding:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_315(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+  ) {
+    return __objc_msgSend_315(
+      obj,
+      sel,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_315Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_315 = __objc_msgSend_315Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_canBeConvertedToEncoding_1 =
+      _registerName1("canBeConvertedToEncoding:");
+  late final _sel_cStringUsingEncoding_1 =
+      _registerName1("cStringUsingEncoding:");
+  late final _sel_getCString_maxLength_encoding_1 =
+      _registerName1("getCString:maxLength:encoding:");
+  bool _objc_msgSend_316(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferCount,
+    int encoding,
+  ) {
+    return __objc_msgSend_316(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_316Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_316 = __objc_msgSend_316Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, int)>();
+
+  late final _sel_getBytes_maxLength_usedLength_encoding_options_range_remainingRange_1 =
+      _registerName1(
+          "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:");
+  bool _objc_msgSend_317(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int maxBufferCount,
+    ffi.Pointer<NSUInteger> usedBufferCount,
+    int encoding,
+    int options,
+    NSRange range,
+    NSRangePointer leftover,
+  ) {
+    return __objc_msgSend_317(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      usedBufferCount,
+      encoding,
+      options,
+      range,
+      leftover,
+    );
+  }
+
+  late final __objc_msgSend_317Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<NSUInteger>,
+              NSStringEncoding,
+              ffi.Int32,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_317 = __objc_msgSend_317Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          int,
+          ffi.Pointer<NSUInteger>,
+          int,
+          int,
+          NSRange,
+          NSRangePointer)>();
+
+  late final _sel_maximumLengthOfBytesUsingEncoding_1 =
+      _registerName1("maximumLengthOfBytesUsingEncoding:");
+  late final _sel_lengthOfBytesUsingEncoding_1 =
+      _registerName1("lengthOfBytesUsingEncoding:");
+  late final _sel_availableStringEncodings1 =
+      _registerName1("availableStringEncodings");
+  ffi.Pointer<NSStringEncoding> _objc_msgSend_318(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_318(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_318Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSStringEncoding> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_318 = __objc_msgSend_318Ptr.asFunction<
+      ffi.Pointer<NSStringEncoding> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_localizedNameOfStringEncoding_1 =
+      _registerName1("localizedNameOfStringEncoding:");
+  late final _sel_defaultCStringEncoding1 =
+      _registerName1("defaultCStringEncoding");
+  late final _sel_decomposedStringWithCanonicalMapping1 =
+      _registerName1("decomposedStringWithCanonicalMapping");
+  late final _sel_precomposedStringWithCanonicalMapping1 =
+      _registerName1("precomposedStringWithCanonicalMapping");
+  late final _sel_decomposedStringWithCompatibilityMapping1 =
+      _registerName1("decomposedStringWithCompatibilityMapping");
+  late final _sel_precomposedStringWithCompatibilityMapping1 =
+      _registerName1("precomposedStringWithCompatibilityMapping");
+  late final _sel_componentsSeparatedByString_1 =
+      _registerName1("componentsSeparatedByString:");
+  late final _sel_componentsSeparatedByCharactersInSet_1 =
+      _registerName1("componentsSeparatedByCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_319(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_319(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_319Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_319 = __objc_msgSend_319Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByTrimmingCharactersInSet_1 =
+      _registerName1("stringByTrimmingCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_320(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_320(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_320Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_320 = __objc_msgSend_320Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByPaddingToLength_withString_startingAtIndex_1 =
+      _registerName1("stringByPaddingToLength:withString:startingAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_321(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int newLength,
+    ffi.Pointer<ObjCObject> padString,
+    int padIndex,
+  ) {
+    return __objc_msgSend_321(
+      obj,
+      sel,
+      newLength,
+      padString,
+      padIndex,
+    );
+  }
+
+  late final __objc_msgSend_321Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_321 = __objc_msgSend_321Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_stringByFoldingWithOptions_locale_1 =
+      _registerName1("stringByFoldingWithOptions:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_322(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_322(
+      obj,
+      sel,
+      options,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_322Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_322 = __objc_msgSend_322Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_options_range_1 =
+      _registerName1(
+          "stringByReplacingOccurrencesOfString:withString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_323(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+    int options,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_323(
+      obj,
+      sel,
+      target,
+      replacement,
+      options,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_323Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_323 = __objc_msgSend_323Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          NSRange)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_1 =
+      _registerName1("stringByReplacingOccurrencesOfString:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_324(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_324(
+      obj,
+      sel,
+      target,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_324Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_324 = __objc_msgSend_324Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingCharactersInRange_withString_1 =
+      _registerName1("stringByReplacingCharactersInRange:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_325(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_325(
+      obj,
+      sel,
+      range,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_325Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_325 = __objc_msgSend_325Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByApplyingTransform_reverse_1 =
+      _registerName1("stringByApplyingTransform:reverse:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_326(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSStringTransform transform,
+    bool reverse,
+  ) {
+    return __objc_msgSend_326(
+      obj,
+      sel,
+      transform,
+      reverse,
+    );
+  }
+
+  late final __objc_msgSend_326Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringTransform,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_326 = __objc_msgSend_326Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSStringTransform, bool)>();
+
+  late final _sel_writeToURL_atomically_encoding_error_1 =
+      _registerName1("writeToURL:atomically:encoding:error:");
+  bool _objc_msgSend_327(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_327(
+      obj,
+      sel,
+      url,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_327Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_327 = __objc_msgSend_327Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToFile_atomically_encoding_error_1 =
+      _registerName1("writeToFile:atomically:encoding:error:");
+  bool _objc_msgSend_328(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_328(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_328Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_328 = __objc_msgSend_328Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_hash1 = _registerName1("hash");
+  late final _sel_initWithCharactersNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCharactersNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_329(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_329(
+      obj,
+      sel,
+      characters,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_329Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_329 = __objc_msgSend_329Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, bool)>();
+
+  late final _sel_initWithCharactersNoCopy_length_deallocator_1 =
+      _registerName1("initWithCharactersNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_330(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> chars,
+    int len,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_330(
+      obj,
+      sel,
+      chars,
+      len,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_330Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_330 = __objc_msgSend_330Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithCharacters_length_1 =
+      _registerName1("initWithCharacters:length:");
+  instancetype _objc_msgSend_331(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+  ) {
+    return __objc_msgSend_331(
+      obj,
+      sel,
+      characters,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_331Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_331 = __objc_msgSend_331Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int)>();
+
+  late final _sel_initWithUTF8String_1 = _registerName1("initWithUTF8String:");
+  instancetype _objc_msgSend_332(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+  ) {
+    return __objc_msgSend_332(
+      obj,
+      sel,
+      nullTerminatedCString,
+    );
+  }
+
+  late final __objc_msgSend_332Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_332 = __objc_msgSend_332Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithFormat_1 = _registerName1("initWithFormat:");
+  late final _sel_initWithFormat_arguments_1 =
+      _registerName1("initWithFormat:arguments:");
+  instancetype _objc_msgSend_333(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_333(
+      obj,
+      sel,
+      format,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_333Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_333 = __objc_msgSend_333Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithFormat_locale_1 =
+      _registerName1("initWithFormat:locale:");
+  late final _sel_initWithFormat_locale_arguments_1 =
+      _registerName1("initWithFormat:locale:arguments:");
+  instancetype _objc_msgSend_334(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_334(
+      obj,
+      sel,
+      format,
+      locale,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_334Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_334 = __objc_msgSend_334Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithData_encoding_1 =
+      _registerName1("initWithData:encoding:");
+  instancetype _objc_msgSend_335(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    int encoding,
+  ) {
+    return __objc_msgSend_335(
+      obj,
+      sel,
+      data,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_335Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_335 = __objc_msgSend_335Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_initWithBytes_length_encoding_1 =
+      _registerName1("initWithBytes:length:encoding:");
+  instancetype _objc_msgSend_336(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+  ) {
+    return __objc_msgSend_336(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_336Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_336 = __objc_msgSend_336Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:freeWhenDone:");
+  instancetype _objc_msgSend_337(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_337(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_337Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_337 = __objc_msgSend_337Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, bool)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:deallocator:");
+  instancetype _objc_msgSend_338(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_338(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_338Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_338 = __objc_msgSend_338Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_string1 = _registerName1("string");
+  late final _sel_stringWithString_1 = _registerName1("stringWithString:");
+  late final _sel_stringWithCharacters_length_1 =
+      _registerName1("stringWithCharacters:length:");
+  late final _sel_stringWithUTF8String_1 =
+      _registerName1("stringWithUTF8String:");
+  late final _sel_stringWithFormat_1 = _registerName1("stringWithFormat:");
+  late final _sel_localizedStringWithFormat_1 =
+      _registerName1("localizedStringWithFormat:");
+  late final _sel_initWithCString_encoding_1 =
+      _registerName1("initWithCString:encoding:");
+  instancetype _objc_msgSend_339(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+    int encoding,
+  ) {
+    return __objc_msgSend_339(
+      obj,
+      sel,
+      nullTerminatedCString,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_339Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_339 = __objc_msgSend_339Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_stringWithCString_encoding_1 =
+      _registerName1("stringWithCString:encoding:");
+  late final _sel_initWithContentsOfURL_encoding_error_1 =
+      _registerName1("initWithContentsOfURL:encoding:error:");
+  instancetype _objc_msgSend_340(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_340(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_340Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_340 = __objc_msgSend_340Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_encoding_error_1 =
+      _registerName1("initWithContentsOfFile:encoding:error:");
+  instancetype _objc_msgSend_341(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_341(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_341Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_341 = __objc_msgSend_341Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_encoding_error_1 =
+      _registerName1("stringWithContentsOfURL:encoding:error:");
+  late final _sel_stringWithContentsOfFile_encoding_error_1 =
+      _registerName1("stringWithContentsOfFile:encoding:error:");
+  late final _sel_initWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfURL:usedEncoding:error:");
+  instancetype _objc_msgSend_342(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_342(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_342Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_342 = __objc_msgSend_342Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfFile:usedEncoding:error:");
+  instancetype _objc_msgSend_343(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_343(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_343Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_343 = __objc_msgSend_343Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfURL:usedEncoding:error:");
+  late final _sel_stringWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfFile:usedEncoding:error:");
+  late final _sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1 =
+      _registerName1(
+          "stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:");
+  int _objc_msgSend_344(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> opts,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+    ffi.Pointer<ffi.Bool> usedLossyConversion,
+  ) {
+    return __objc_msgSend_344(
+      obj,
+      sel,
+      data,
+      opts,
+      string,
+      usedLossyConversion,
+    );
+  }
+
+  late final __objc_msgSend_344Ptr = _lookup<
+      ffi.NativeFunction<
+          NSStringEncoding Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Bool>)>>('objc_msgSend');
+  late final __objc_msgSend_344 = __objc_msgSend_344Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Bool>)>();
+
+  late final _sel_propertyList1 = _registerName1("propertyList");
+  late final _sel_propertyListFromStringsFileFormat1 =
+      _registerName1("propertyListFromStringsFileFormat");
+  late final _sel_cString1 = _registerName1("cString");
+  late final _sel_lossyCString1 = _registerName1("lossyCString");
+  late final _sel_cStringLength1 = _registerName1("cStringLength");
+  late final _sel_getCString_1 = _registerName1("getCString:");
+  late final _sel_getCString_maxLength_1 =
+      _registerName1("getCString:maxLength:");
+  void _objc_msgSend_345(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+  ) {
+    return __objc_msgSend_345(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+    );
+  }
+
+  late final __objc_msgSend_345Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_345 = __objc_msgSend_345Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_getCString_maxLength_range_remainingRange_1 =
+      _registerName1("getCString:maxLength:range:remainingRange:");
+  void _objc_msgSend_346(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+    NSRange aRange,
+    NSRangePointer leftoverRange,
+  ) {
+    return __objc_msgSend_346(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+      aRange,
+      leftoverRange,
+    );
+  }
+
+  late final __objc_msgSend_346Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_346 = __objc_msgSend_346Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, NSRange, NSRangePointer)>();
+
+  late final _sel_stringWithContentsOfFile_1 =
+      _registerName1("stringWithContentsOfFile:");
+  late final _sel_stringWithContentsOfURL_1 =
+      _registerName1("stringWithContentsOfURL:");
+  late final _sel_initWithCStringNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCStringNoCopy:length:freeWhenDone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_347(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_347(
+      obj,
+      sel,
+      bytes,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_347Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_347 = __objc_msgSend_347Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>, int, bool)>();
+
+  late final _sel_initWithCString_length_1 =
+      _registerName1("initWithCString:length:");
+  late final _sel_initWithCString_1 = _registerName1("initWithCString:");
+  late final _sel_stringWithCString_length_1 =
+      _registerName1("stringWithCString:length:");
+  late final _sel_stringWithCString_1 = _registerName1("stringWithCString:");
+  late final _sel_getCharacters_1 = _registerName1("getCharacters:");
+  void _objc_msgSend_348(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+  ) {
+    return __objc_msgSend_348(
+      obj,
+      sel,
+      buffer,
+    );
+  }
+
+  late final __objc_msgSend_348Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>)>>('objc_msgSend');
+  late final __objc_msgSend_348 = __objc_msgSend_348Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>)>();
+
+  late final _sel_variantFittingPresentationWidth_1 =
+      _registerName1("variantFittingPresentationWidth:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_349(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int width,
+  ) {
+    return __objc_msgSend_349(
+      obj,
+      sel,
+      width,
+    );
+  }
+
+  late final __objc_msgSend_349Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_349 = __objc_msgSend_349Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_pathWithComponents_1 = _registerName1("pathWithComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_350(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_350(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_350Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_350 = __objc_msgSend_350Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isAbsolutePath1 = _registerName1("isAbsolutePath");
+  late final _sel_stringByDeletingLastPathComponent1 =
+      _registerName1("stringByDeletingLastPathComponent");
+  late final _sel_stringByAppendingPathComponent_1 =
+      _registerName1("stringByAppendingPathComponent:");
+  late final _sel_stringByDeletingPathExtension1 =
+      _registerName1("stringByDeletingPathExtension");
+  late final _sel_stringByAppendingPathExtension_1 =
+      _registerName1("stringByAppendingPathExtension:");
+  late final _sel_stringByAbbreviatingWithTildeInPath1 =
+      _registerName1("stringByAbbreviatingWithTildeInPath");
+  late final _sel_stringByExpandingTildeInPath1 =
+      _registerName1("stringByExpandingTildeInPath");
+  late final _sel_stringByStandardizingPath1 =
+      _registerName1("stringByStandardizingPath");
+  late final _sel_stringByResolvingSymlinksInPath1 =
+      _registerName1("stringByResolvingSymlinksInPath");
+  late final _sel_stringsByAppendingPaths_1 =
+      _registerName1("stringsByAppendingPaths:");
+  late final _sel_completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_1 =
+      _registerName1(
+          "completePathIntoString:caseSensitive:matchesIntoArray:filterTypes:");
+  int _objc_msgSend_351(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputName,
+    bool flag,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputArray,
+    ffi.Pointer<ObjCObject> filterTypes,
+  ) {
+    return __objc_msgSend_351(
+      obj,
+      sel,
+      outputName,
+      flag,
+      outputArray,
+      filterTypes,
+    );
+  }
+
+  late final __objc_msgSend_351Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_351 = __objc_msgSend_351Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByAddingPercentEncodingWithAllowedCharacters_1 =
+      _registerName1("stringByAddingPercentEncodingWithAllowedCharacters:");
+  late final _sel_stringByRemovingPercentEncoding1 =
+      _registerName1("stringByRemovingPercentEncoding");
+  late final _sel_stringByAddingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByAddingPercentEscapesUsingEncoding:");
+  late final _sel_stringByReplacingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByReplacingPercentEscapesUsingEncoding:");
+  late final _class_NSOrthography1 = _getClass1("NSOrthography");
+  late final _sel_dominantScript1 = _registerName1("dominantScript");
+  late final _sel_languageMap1 = _registerName1("languageMap");
+  late final _sel_initWithDominantScript_languageMap_1 =
+      _registerName1("initWithDominantScript:languageMap:");
+  instancetype _objc_msgSend_352(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> script,
+    ffi.Pointer<ObjCObject> map,
+  ) {
+    return __objc_msgSend_352(
+      obj,
+      sel,
+      script,
+      map,
+    );
+  }
+
+  late final __objc_msgSend_352Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_352 = __objc_msgSend_352Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_languagesForScript_1 = _registerName1("languagesForScript:");
+  late final _sel_dominantLanguageForScript_1 =
+      _registerName1("dominantLanguageForScript:");
+  late final _sel_dominantLanguage1 = _registerName1("dominantLanguage");
+  late final _sel_allScripts1 = _registerName1("allScripts");
+  late final _sel_allLanguages1 = _registerName1("allLanguages");
+  late final _sel_defaultOrthographyForLanguage_1 =
+      _registerName1("defaultOrthographyForLanguage:");
+  late final _sel_orthographyWithDominantScript_languageMap_1 =
+      _registerName1("orthographyWithDominantScript:languageMap:");
+  late final _sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1 =
+      _registerName1(
+          "linguisticTagsInRange:scheme:options:orthography:tokenRanges:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_353(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges,
+  ) {
+    return __objc_msgSend_353(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      tokenRanges,
+    );
+  }
+
+  late final __objc_msgSend_353Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_353 = __objc_msgSend_353Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1 =
+      _registerName1(
+          "enumerateLinguisticTagsInRange:scheme:options:orthography:usingBlock:");
+  void _objc_msgSend_354(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_354(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_354Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_354 = __objc_msgSend_354Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_allObjects1 = _registerName1("allObjects");
+  late final _sel_anyObject1 = _registerName1("anyObject");
+  late final _sel_intersectsSet_1 = _registerName1("intersectsSet:");
+  bool _objc_msgSend_355(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherSet,
+  ) {
+    return __objc_msgSend_355(
+      obj,
+      sel,
+      otherSet,
+    );
+  }
+
+  late final __objc_msgSend_355Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_355 = __objc_msgSend_355Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToSet_1 = _registerName1("isEqualToSet:");
+  late final _sel_isSubsetOfSet_1 = _registerName1("isSubsetOfSet:");
+  late final _sel_setByAddingObject_1 = _registerName1("setByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_356(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_356(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_356Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_356 = __objc_msgSend_356Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromSet_1 =
+      _registerName1("setByAddingObjectsFromSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_357(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_357(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_357Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_357 = __objc_msgSend_357Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromArray_1 =
+      _registerName1("setByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_358(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_358(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_358Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_358 = __objc_msgSend_358Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  void _objc_msgSend_359(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_359(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_359Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_359 = __objc_msgSend_359Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  void _objc_msgSend_360(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_360(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_360Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_360 = __objc_msgSend_360Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsPassingTest_1 = _registerName1("objectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_361(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_361(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_361Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_361 = __objc_msgSend_361Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsWithOptions_passingTest_1 =
+      _registerName1("objectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_362(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_362(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_362Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_362 = __objc_msgSend_362Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_set1 = _registerName1("set");
+  late final _sel_setWithObject_1 = _registerName1("setWithObject:");
+  late final _sel_setWithObjects_count_1 =
+      _registerName1("setWithObjects:count:");
+  late final _sel_setWithObjects_1 = _registerName1("setWithObjects:");
+  late final _sel_setWithSet_1 = _registerName1("setWithSet:");
+  instancetype _objc_msgSend_363(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_363(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_363Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_363 = __objc_msgSend_363Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setWithArray_1 = _registerName1("setWithArray:");
+  late final _sel_initWithSet_1 = _registerName1("initWithSet:");
+  late final _sel_initWithSet_copyItems_1 =
+      _registerName1("initWithSet:copyItems:");
+  instancetype _objc_msgSend_364(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    bool flag,
+  ) {
+    return __objc_msgSend_364(
+      obj,
+      sel,
+      set1,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_364Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_364 = __objc_msgSend_364Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_filteredSetUsingPredicate_1 =
+      _registerName1("filteredSetUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_365(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_365(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_365Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_365 = __objc_msgSend_365Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_invocationWithMethodSignature_1 =
+      _registerName1("invocationWithMethodSignature:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_366(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sig,
+  ) {
+    return __objc_msgSend_366(
+      obj,
+      sel,
+      sig,
+    );
+  }
+
+  late final __objc_msgSend_366Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_366 = __objc_msgSend_366Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignature1 = _registerName1("methodSignature");
+  ffi.Pointer<ObjCObject> _objc_msgSend_367(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_367(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_367Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_367 = __objc_msgSend_367Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_retainArguments1 = _registerName1("retainArguments");
+  late final _sel_argumentsRetained1 = _registerName1("argumentsRetained");
+  late final _sel_target1 = _registerName1("target");
+  late final _sel_setTarget_1 = _registerName1("setTarget:");
+  void _objc_msgSend_368(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_368(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_368Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_368 = __objc_msgSend_368Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_selector1 = _registerName1("selector");
+  ffi.Pointer<ObjCSel> _objc_msgSend_369(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_369(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_369Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_369 = __objc_msgSend_369Ptr.asFunction<
+      ffi.Pointer<ObjCSel> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSelector_1 = _registerName1("setSelector:");
+  void _objc_msgSend_370(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> value,
+  ) {
+    return __objc_msgSend_370(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_370Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_370 = __objc_msgSend_370Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getReturnValue_1 = _registerName1("getReturnValue:");
+  late final _sel_setReturnValue_1 = _registerName1("setReturnValue:");
+  late final _sel_getArgument_atIndex_1 =
+      _registerName1("getArgument:atIndex:");
+  void _objc_msgSend_371(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> argumentLocation,
+    int idx,
+  ) {
+    return __objc_msgSend_371(
+      obj,
+      sel,
+      argumentLocation,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_371Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_371 = __objc_msgSend_371Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_setArgument_atIndex_1 =
+      _registerName1("setArgument:atIndex:");
+  late final _sel_invoke1 = _registerName1("invoke");
+  late final _sel_invokeWithTarget_1 = _registerName1("invokeWithTarget:");
+  late final _sel_forwardInvocation_1 = _registerName1("forwardInvocation:");
+  void _objc_msgSend_372(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anInvocation,
+  ) {
+    return __objc_msgSend_372(
+      obj,
+      sel,
+      anInvocation,
+    );
+  }
+
+  late final __objc_msgSend_372Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_372 = __objc_msgSend_372Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignatureForSelector_1 =
+      _registerName1("methodSignatureForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_373(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_373(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_373Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_373 = __objc_msgSend_373Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodSignatureForSelector_1 =
+      _registerName1("instanceMethodSignatureForSelector:");
+  late final _sel_allowsWeakReference1 = _registerName1("allowsWeakReference");
+  late final _sel_retainWeakReference1 = _registerName1("retainWeakReference");
+  late final _sel_isSubclassOfClass_1 = _registerName1("isSubclassOfClass:");
+  late final _sel_resolveClassMethod_1 = _registerName1("resolveClassMethod:");
+  late final _sel_resolveInstanceMethod_1 =
+      _registerName1("resolveInstanceMethod:");
+  late final _sel_superclass1 = _registerName1("superclass");
+  late final _sel_class1 = _registerName1("class");
+  late final _sel_debugDescription1 = _registerName1("debugDescription");
+  late final _sel_version1 = _registerName1("version");
+  late final _sel_setVersion_1 = _registerName1("setVersion:");
+  void _objc_msgSend_374(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aVersion,
+  ) {
+    return __objc_msgSend_374(
+      obj,
+      sel,
+      aVersion,
+    );
+  }
+
+  late final __objc_msgSend_374Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_374 = __objc_msgSend_374Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_classForCoder1 = _registerName1("classForCoder");
+  late final _sel_replacementObjectForCoder_1 =
+      _registerName1("replacementObjectForCoder:");
+  late final _sel_awakeAfterUsingCoder_1 =
+      _registerName1("awakeAfterUsingCoder:");
+  late final _sel_poseAsClass_1 = _registerName1("poseAsClass:");
+  late final _sel_autoContentAccessingProxy1 =
+      _registerName1("autoContentAccessingProxy");
+  late final _sel_attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_1 =
+      _registerName1(
+          "attemptRecoveryFromError:optionIndex:delegate:didRecoverSelector:contextInfo:");
+  void _objc_msgSend_375(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+    int recoveryOptionIndex,
+    ffi.Pointer<ObjCObject> delegate,
+    ffi.Pointer<ObjCSel> didRecoverSelector,
+    ffi.Pointer<ffi.Void> contextInfo,
+  ) {
+    return __objc_msgSend_375(
+      obj,
+      sel,
+      error,
+      recoveryOptionIndex,
+      delegate,
+      didRecoverSelector,
+      contextInfo,
+    );
+  }
+
+  late final __objc_msgSend_375Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_375 = __objc_msgSend_375Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_attemptRecoveryFromError_optionIndex_1 =
+      _registerName1("attemptRecoveryFromError:optionIndex:");
+  bool _objc_msgSend_376(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+    int recoveryOptionIndex,
+  ) {
+    return __objc_msgSend_376(
+      obj,
+      sel,
+      error,
+      recoveryOptionIndex,
+    );
+  }
+
+  late final __objc_msgSend_376Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_376 = __objc_msgSend_376Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_performSelector_withObject_afterDelay_inModes_1 =
+      _registerName1("performSelector:withObject:afterDelay:inModes:");
+  void _objc_msgSend_377(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+    double delay,
+    ffi.Pointer<ObjCObject> modes,
+  ) {
+    return __objc_msgSend_377(
+      obj,
+      sel,
+      aSelector,
+      anArgument,
+      delay,
+      modes,
+    );
+  }
+
+  late final __objc_msgSend_377Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_377 = __objc_msgSend_377Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelector_withObject_afterDelay_1 =
+      _registerName1("performSelector:withObject:afterDelay:");
+  void _objc_msgSend_378(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+    double delay,
+  ) {
+    return __objc_msgSend_378(
+      obj,
+      sel,
+      aSelector,
+      anArgument,
+      delay,
+    );
+  }
+
+  late final __objc_msgSend_378Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_378 = __objc_msgSend_378Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, double)>();
+
+  late final _sel_URL_resourceDataDidBecomeAvailable_1 =
+      _registerName1("URL:resourceDataDidBecomeAvailable:");
+  void _objc_msgSend_379(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+    ffi.Pointer<ObjCObject> newBytes,
+  ) {
+    return __objc_msgSend_379(
+      obj,
+      sel,
+      sender,
+      newBytes,
+    );
+  }
+
+  late final __objc_msgSend_379Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_379 = __objc_msgSend_379Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLResourceDidFinishLoading_1 =
+      _registerName1("URLResourceDidFinishLoading:");
+  void _objc_msgSend_380(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+  ) {
+    return __objc_msgSend_380(
+      obj,
+      sel,
+      sender,
+    );
+  }
+
+  late final __objc_msgSend_380Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_380 = __objc_msgSend_380Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLResourceDidCancelLoading_1 =
+      _registerName1("URLResourceDidCancelLoading:");
+  late final _sel_URL_resourceDidFailLoadingWithReason_1 =
+      _registerName1("URL:resourceDidFailLoadingWithReason:");
+  void _objc_msgSend_381(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sender,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_381(
+      obj,
+      sel,
+      sender,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_381Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_381 = __objc_msgSend_381Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSFileManager1 = _getClass1("NSFileManager");
+  late final _sel_defaultManager1 = _registerName1("defaultManager");
+  ffi.Pointer<ObjCObject> _objc_msgSend_382(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_382(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_382Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_382 = __objc_msgSend_382Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_1 =
+      _registerName1(
+          "mountedVolumeURLsIncludingResourceValuesForKeys:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_383(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> propertyKeys,
+    int options,
+  ) {
+    return __objc_msgSend_383(
+      obj,
+      sel,
+      propertyKeys,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_383Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_383 = __objc_msgSend_383Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_unmountVolumeAtURL_options_completionHandler_1 =
+      _registerName1("unmountVolumeAtURL:options:completionHandler:");
+  void _objc_msgSend_384(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int mask,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_384(
+      obj,
+      sel,
+      url,
+      mask,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_384Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_384 = __objc_msgSend_384Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_1 =
+      _registerName1(
+          "contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_385(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> keys,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_385(
+      obj,
+      sel,
+      url,
+      keys,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_385Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_385 = __objc_msgSend_385Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_URLsForDirectory_inDomains_1 =
+      _registerName1("URLsForDirectory:inDomains:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_386(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int directory,
+    int domainMask,
+  ) {
+    return __objc_msgSend_386(
+      obj,
+      sel,
+      directory,
+      domainMask,
+    );
+  }
+
+  late final __objc_msgSend_386Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_386 = __objc_msgSend_386Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_URLForDirectory_inDomain_appropriateForURL_create_error_1 =
+      _registerName1(
+          "URLForDirectory:inDomain:appropriateForURL:create:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_387(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int directory,
+    int domain,
+    ffi.Pointer<ObjCObject> url,
+    bool shouldCreate,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_387(
+      obj,
+      sel,
+      directory,
+      domain,
+      url,
+      shouldCreate,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_387Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_387 = __objc_msgSend_387Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_1 =
+      _registerName1("getRelationship:ofDirectoryAtURL:toItemAtURL:error:");
+  bool _objc_msgSend_388(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int32> outRelationship,
+    ffi.Pointer<ObjCObject> directoryURL,
+    ffi.Pointer<ObjCObject> otherURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_388(
+      obj,
+      sel,
+      outRelationship,
+      directoryURL,
+      otherURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_388Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_388 = __objc_msgSend_388Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int32>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_1 =
+      _registerName1("getRelationship:ofDirectory:inDomain:toItemAtURL:error:");
+  bool _objc_msgSend_389(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int32> outRelationship,
+    int directory,
+    int domainMask,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_389(
+      obj,
+      sel,
+      outRelationship,
+      directory,
+      domainMask,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_389Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int32>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_389 = __objc_msgSend_389Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int32>,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_1 =
+      _registerName1(
+          "createDirectoryAtURL:withIntermediateDirectories:attributes:error:");
+  bool _objc_msgSend_390(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool createIntermediates,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_390(
+      obj,
+      sel,
+      url,
+      createIntermediates,
+      attributes,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_390Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_390 = __objc_msgSend_390Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createSymbolicLinkAtURL_withDestinationURL_error_1 =
+      _registerName1("createSymbolicLinkAtURL:withDestinationURL:error:");
+  bool _objc_msgSend_391(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> destURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_391(
+      obj,
+      sel,
+      url,
+      destURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_391Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_391 = __objc_msgSend_391Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_delegate1 = _registerName1("delegate");
+  late final _sel_setDelegate_1 = _registerName1("setDelegate:");
+  late final _sel_setAttributes_ofItemAtPath_error_1 =
+      _registerName1("setAttributes:ofItemAtPath:error:");
+  bool _objc_msgSend_392(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_392(
+      obj,
+      sel,
+      attributes,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_392Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_392 = __objc_msgSend_392Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_1 =
+      _registerName1(
+          "createDirectoryAtPath:withIntermediateDirectories:attributes:error:");
+  bool _objc_msgSend_393(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool createIntermediates,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_393(
+      obj,
+      sel,
+      path,
+      createIntermediates,
+      attributes,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_393Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_393 = __objc_msgSend_393Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_contentsOfDirectoryAtPath_error_1 =
+      _registerName1("contentsOfDirectoryAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_394(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_394(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_394Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_394 = __objc_msgSend_394Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_subpathsOfDirectoryAtPath_error_1 =
+      _registerName1("subpathsOfDirectoryAtPath:error:");
+  late final _sel_attributesOfItemAtPath_error_1 =
+      _registerName1("attributesOfItemAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_395(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_395(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_395Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_395 = __objc_msgSend_395Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_attributesOfFileSystemForPath_error_1 =
+      _registerName1("attributesOfFileSystemForPath:error:");
+  late final _sel_createSymbolicLinkAtPath_withDestinationPath_error_1 =
+      _registerName1("createSymbolicLinkAtPath:withDestinationPath:error:");
+  bool _objc_msgSend_396(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> destPath,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_396(
+      obj,
+      sel,
+      path,
+      destPath,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_396Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_396 = __objc_msgSend_396Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_destinationOfSymbolicLinkAtPath_error_1 =
+      _registerName1("destinationOfSymbolicLinkAtPath:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_397(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_397(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_397Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_397 = __objc_msgSend_397Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_copyItemAtPath_toPath_error_1 =
+      _registerName1("copyItemAtPath:toPath:error:");
+  late final _sel_moveItemAtPath_toPath_error_1 =
+      _registerName1("moveItemAtPath:toPath:error:");
+  late final _sel_linkItemAtPath_toPath_error_1 =
+      _registerName1("linkItemAtPath:toPath:error:");
+  late final _sel_removeItemAtPath_error_1 =
+      _registerName1("removeItemAtPath:error:");
+  bool _objc_msgSend_398(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_398(
+      obj,
+      sel,
+      path,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_398Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_398 = __objc_msgSend_398Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_copyItemAtURL_toURL_error_1 =
+      _registerName1("copyItemAtURL:toURL:error:");
+  late final _sel_moveItemAtURL_toURL_error_1 =
+      _registerName1("moveItemAtURL:toURL:error:");
+  late final _sel_linkItemAtURL_toURL_error_1 =
+      _registerName1("linkItemAtURL:toURL:error:");
+  late final _sel_removeItemAtURL_error_1 =
+      _registerName1("removeItemAtURL:error:");
+  late final _sel_trashItemAtURL_resultingItemURL_error_1 =
+      _registerName1("trashItemAtURL:resultingItemURL:error:");
+  bool _objc_msgSend_399(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outResultingURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_399(
+      obj,
+      sel,
+      url,
+      outResultingURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_399Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_399 = __objc_msgSend_399Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_fileAttributesAtPath_traverseLink_1 =
+      _registerName1("fileAttributesAtPath:traverseLink:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_400(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool yorn,
+  ) {
+    return __objc_msgSend_400(
+      obj,
+      sel,
+      path,
+      yorn,
+    );
+  }
+
+  late final __objc_msgSend_400Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_400 = __objc_msgSend_400Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_changeFileAttributes_atPath_1 =
+      _registerName1("changeFileAttributes:atPath:");
+  bool _objc_msgSend_401(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attributes,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_401(
+      obj,
+      sel,
+      attributes,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_401Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_401 = __objc_msgSend_401Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_directoryContentsAtPath_1 =
+      _registerName1("directoryContentsAtPath:");
+  late final _sel_fileSystemAttributesAtPath_1 =
+      _registerName1("fileSystemAttributesAtPath:");
+  late final _sel_pathContentOfSymbolicLinkAtPath_1 =
+      _registerName1("pathContentOfSymbolicLinkAtPath:");
+  late final _sel_createSymbolicLinkAtPath_pathContent_1 =
+      _registerName1("createSymbolicLinkAtPath:pathContent:");
+  bool _objc_msgSend_402(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> otherpath,
+  ) {
+    return __objc_msgSend_402(
+      obj,
+      sel,
+      path,
+      otherpath,
+    );
+  }
+
+  late final __objc_msgSend_402Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_402 = __objc_msgSend_402Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_createDirectoryAtPath_attributes_1 =
+      _registerName1("createDirectoryAtPath:attributes:");
+  bool _objc_msgSend_403(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> attributes,
+  ) {
+    return __objc_msgSend_403(
+      obj,
+      sel,
+      path,
+      attributes,
+    );
+  }
+
+  late final __objc_msgSend_403Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_403 = __objc_msgSend_403Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_linkPath_toPath_handler_1 =
+      _registerName1("linkPath:toPath:handler:");
+  bool _objc_msgSend_404(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> src,
+    ffi.Pointer<ObjCObject> dest,
+    ffi.Pointer<ObjCObject> handler,
+  ) {
+    return __objc_msgSend_404(
+      obj,
+      sel,
+      src,
+      dest,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_404Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_404 = __objc_msgSend_404Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_copyPath_toPath_handler_1 =
+      _registerName1("copyPath:toPath:handler:");
+  late final _sel_movePath_toPath_handler_1 =
+      _registerName1("movePath:toPath:handler:");
+  late final _sel_removeFileAtPath_handler_1 =
+      _registerName1("removeFileAtPath:handler:");
+  bool _objc_msgSend_405(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> handler,
+  ) {
+    return __objc_msgSend_405(
+      obj,
+      sel,
+      path,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_405Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_405 = __objc_msgSend_405Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_currentDirectoryPath1 =
+      _registerName1("currentDirectoryPath");
+  late final _sel_changeCurrentDirectoryPath_1 =
+      _registerName1("changeCurrentDirectoryPath:");
+  late final _sel_fileExistsAtPath_1 = _registerName1("fileExistsAtPath:");
+  late final _sel_fileExistsAtPath_isDirectory_1 =
+      _registerName1("fileExistsAtPath:isDirectory:");
+  bool _objc_msgSend_406(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ffi.Bool> isDirectory,
+  ) {
+    return __objc_msgSend_406(
+      obj,
+      sel,
+      path,
+      isDirectory,
+    );
+  }
+
+  late final __objc_msgSend_406Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Bool>)>>('objc_msgSend');
+  late final __objc_msgSend_406 = __objc_msgSend_406Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Bool>)>();
+
+  late final _sel_isReadableFileAtPath_1 =
+      _registerName1("isReadableFileAtPath:");
+  late final _sel_isWritableFileAtPath_1 =
+      _registerName1("isWritableFileAtPath:");
+  late final _sel_isExecutableFileAtPath_1 =
+      _registerName1("isExecutableFileAtPath:");
+  late final _sel_isDeletableFileAtPath_1 =
+      _registerName1("isDeletableFileAtPath:");
+  late final _sel_contentsEqualAtPath_andPath_1 =
+      _registerName1("contentsEqualAtPath:andPath:");
+  late final _sel_displayNameAtPath_1 = _registerName1("displayNameAtPath:");
+  late final _sel_componentsToDisplayForPath_1 =
+      _registerName1("componentsToDisplayForPath:");
+  late final _sel_homeDirectoryForCurrentUser1 =
+      _registerName1("homeDirectoryForCurrentUser");
+  late final _sel_temporaryDirectory1 = _registerName1("temporaryDirectory");
+  late final _sel_homeDirectoryForUser_1 =
+      _registerName1("homeDirectoryForUser:");
+  late final _sel_fileManager_shouldProceedAfterError_1 =
+      _registerName1("fileManager:shouldProceedAfterError:");
+  bool _objc_msgSend_407(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fm,
+    ffi.Pointer<ObjCObject> errorInfo,
+  ) {
+    return __objc_msgSend_407(
+      obj,
+      sel,
+      fm,
+      errorInfo,
+    );
+  }
+
+  late final __objc_msgSend_407Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_407 = __objc_msgSend_407Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileManager_willProcessPath_1 =
+      _registerName1("fileManager:willProcessPath:");
+  void _objc_msgSend_408(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fm,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_408(
+      obj,
+      sel,
+      fm,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_408Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_408 = __objc_msgSend_408Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_validateValue_forKey_error_1 =
+      _registerName1("validateValue:forKey:error:");
+  late final _class_NSMutableArray1 = _getClass1("NSMutableArray");
+  late final _sel_addObject_1 = _registerName1("addObject:");
+  late final _sel_insertObject_atIndex_1 =
+      _registerName1("insertObject:atIndex:");
+  void _objc_msgSend_409(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    int index,
+  ) {
+    return __objc_msgSend_409(
+      obj,
+      sel,
+      anObject,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_409Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_409 = __objc_msgSend_409Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_removeLastObject1 = _registerName1("removeLastObject");
+  late final _sel_removeObjectAtIndex_1 =
+      _registerName1("removeObjectAtIndex:");
+  void _objc_msgSend_410(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_410(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_410Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_410 = __objc_msgSend_410Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_replaceObjectAtIndex_withObject_1 =
+      _registerName1("replaceObjectAtIndex:withObject:");
+  void _objc_msgSend_411(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_411(
+      obj,
+      sel,
+      index,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_411Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_411 = __objc_msgSend_411Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithCapacity_1 = _registerName1("initWithCapacity:");
+  late final _sel_addObjectsFromArray_1 =
+      _registerName1("addObjectsFromArray:");
+  void _objc_msgSend_412(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_412(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_412Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_412 = __objc_msgSend_412Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_exchangeObjectAtIndex_withObjectAtIndex_1 =
+      _registerName1("exchangeObjectAtIndex:withObjectAtIndex:");
+  void _objc_msgSend_413(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int idx1,
+    int idx2,
+  ) {
+    return __objc_msgSend_413(
+      obj,
+      sel,
+      idx1,
+      idx2,
+    );
+  }
+
+  late final __objc_msgSend_413Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_413 = __objc_msgSend_413Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_removeAllObjects1 = _registerName1("removeAllObjects");
+  late final _sel_removeObject_inRange_1 =
+      _registerName1("removeObject:inRange:");
+  void _objc_msgSend_414(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    NSRange range,
+  ) {
+    return __objc_msgSend_414(
+      obj,
+      sel,
+      anObject,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_414Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_414 = __objc_msgSend_414Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_removeObject_1 = _registerName1("removeObject:");
+  late final _sel_removeObjectIdenticalTo_inRange_1 =
+      _registerName1("removeObjectIdenticalTo:inRange:");
+  late final _sel_removeObjectIdenticalTo_1 =
+      _registerName1("removeObjectIdenticalTo:");
+  late final _sel_removeObjectsFromIndices_numIndices_1 =
+      _registerName1("removeObjectsFromIndices:numIndices:");
+  void _objc_msgSend_415(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indices,
+    int cnt,
+  ) {
+    return __objc_msgSend_415(
+      obj,
+      sel,
+      indices,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_415Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_415 = __objc_msgSend_415Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int)>();
+
+  late final _sel_removeObjectsInArray_1 =
+      _registerName1("removeObjectsInArray:");
+  late final _sel_removeObjectsInRange_1 =
+      _registerName1("removeObjectsInRange:");
+  void _objc_msgSend_416(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_416(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_416Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_416 = __objc_msgSend_416Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_replaceObjectsInRange_withObjectsFromArray_range_1 =
+      _registerName1("replaceObjectsInRange:withObjectsFromArray:range:");
+  void _objc_msgSend_417(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> otherArray,
+    NSRange otherRange,
+  ) {
+    return __objc_msgSend_417(
+      obj,
+      sel,
+      range,
+      otherArray,
+      otherRange,
+    );
+  }
+
+  late final __objc_msgSend_417Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_417 = __objc_msgSend_417Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_replaceObjectsInRange_withObjectsFromArray_1 =
+      _registerName1("replaceObjectsInRange:withObjectsFromArray:");
+  void _objc_msgSend_418(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_418(
+      obj,
+      sel,
+      range,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_418Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_418 = __objc_msgSend_418Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setArray_1 = _registerName1("setArray:");
+  late final _sel_sortUsingFunction_context_1 =
+      _registerName1("sortUsingFunction:context:");
+  void _objc_msgSend_419(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        compare,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_419(
+      obj,
+      sel,
+      compare,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_419Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_419 = __objc_msgSend_419Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_sortUsingSelector_1 = _registerName1("sortUsingSelector:");
+  late final _sel_insertObjects_atIndexes_1 =
+      _registerName1("insertObjects:atIndexes:");
+  void _objc_msgSend_420(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objects,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_420(
+      obj,
+      sel,
+      objects,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_420Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_420 = __objc_msgSend_420Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeObjectsAtIndexes_1 =
+      _registerName1("removeObjectsAtIndexes:");
+  void _objc_msgSend_421(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_421(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_421Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_421 = __objc_msgSend_421Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceObjectsAtIndexes_withObjects_1 =
+      _registerName1("replaceObjectsAtIndexes:withObjects:");
+  void _objc_msgSend_422(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> objects,
+  ) {
+    return __objc_msgSend_422(
+      obj,
+      sel,
+      indexes,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_422Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_422 = __objc_msgSend_422Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setObject_atIndexedSubscript_1 =
+      _registerName1("setObject:atIndexedSubscript:");
+  late final _sel_sortUsingComparator_1 =
+      _registerName1("sortUsingComparator:");
+  void _objc_msgSend_423(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_423(
+      obj,
+      sel,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_423Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_423 = __objc_msgSend_423Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSComparator)>();
+
+  late final _sel_sortWithOptions_usingComparator_1 =
+      _registerName1("sortWithOptions:usingComparator:");
+  void _objc_msgSend_424(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_424(
+      obj,
+      sel,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_424Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_424 = __objc_msgSend_424Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, NSComparator)>();
+
+  late final _sel_arrayWithCapacity_1 = _registerName1("arrayWithCapacity:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_425(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_425(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_425Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_425 = __objc_msgSend_425Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_426(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_426(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_426Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_426 = __objc_msgSend_426Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_applyDifference_1 = _registerName1("applyDifference:");
+  late final _sel_sortUsingDescriptors_1 =
+      _registerName1("sortUsingDescriptors:");
+  late final _sel_filterUsingPredicate_1 =
+      _registerName1("filterUsingPredicate:");
+  void _objc_msgSend_427(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_427(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_427Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_427 = __objc_msgSend_427Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_mutableArrayValueForKey_1 =
+      _registerName1("mutableArrayValueForKey:");
+  late final _class_NSMutableOrderedSet1 = _getClass1("NSMutableOrderedSet");
+  late final _class_NSOrderedSet1 = _getClass1("NSOrderedSet");
+  late final _sel_isEqualToOrderedSet_1 =
+      _registerName1("isEqualToOrderedSet:");
+  bool _objc_msgSend_428(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_428(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_428Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_428 = __objc_msgSend_428Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_intersectsOrderedSet_1 =
+      _registerName1("intersectsOrderedSet:");
+  late final _sel_isSubsetOfOrderedSet_1 =
+      _registerName1("isSubsetOfOrderedSet:");
+  late final _sel_reversedOrderedSet1 = _registerName1("reversedOrderedSet");
+  ffi.Pointer<ObjCObject> _objc_msgSend_429(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_429(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_429Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_429 = __objc_msgSend_429Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_orderedSet1 = _registerName1("orderedSet");
+  late final _sel_orderedSetWithObject_1 =
+      _registerName1("orderedSetWithObject:");
+  late final _sel_orderedSetWithObjects_count_1 =
+      _registerName1("orderedSetWithObjects:count:");
+  late final _sel_orderedSetWithObjects_1 =
+      _registerName1("orderedSetWithObjects:");
+  late final _sel_orderedSetWithOrderedSet_1 =
+      _registerName1("orderedSetWithOrderedSet:");
+  instancetype _objc_msgSend_430(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_430(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_430Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_430 = __objc_msgSend_430Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_orderedSetWithOrderedSet_range_copyItems_1 =
+      _registerName1("orderedSetWithOrderedSet:range:copyItems:");
+  instancetype _objc_msgSend_431(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    NSRange range,
+    bool flag,
+  ) {
+    return __objc_msgSend_431(
+      obj,
+      sel,
+      set1,
+      range,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_431Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_431 = __objc_msgSend_431Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, bool)>();
+
+  late final _sel_orderedSetWithArray_1 =
+      _registerName1("orderedSetWithArray:");
+  late final _sel_orderedSetWithArray_range_copyItems_1 =
+      _registerName1("orderedSetWithArray:range:copyItems:");
+  instancetype _objc_msgSend_432(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> array,
+    NSRange range,
+    bool flag,
+  ) {
+    return __objc_msgSend_432(
+      obj,
+      sel,
+      array,
+      range,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_432Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_432 = __objc_msgSend_432Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, bool)>();
+
+  late final _sel_orderedSetWithSet_1 = _registerName1("orderedSetWithSet:");
+  late final _sel_orderedSetWithSet_copyItems_1 =
+      _registerName1("orderedSetWithSet:copyItems:");
+  late final _sel_initWithObject_1 = _registerName1("initWithObject:");
+  late final _sel_initWithOrderedSet_1 = _registerName1("initWithOrderedSet:");
+  late final _sel_initWithOrderedSet_copyItems_1 =
+      _registerName1("initWithOrderedSet:copyItems:");
+  instancetype _objc_msgSend_433(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    bool flag,
+  ) {
+    return __objc_msgSend_433(
+      obj,
+      sel,
+      set1,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_433Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_433 = __objc_msgSend_433Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithOrderedSet_range_copyItems_1 =
+      _registerName1("initWithOrderedSet:range:copyItems:");
+  late final _sel_initWithArray_range_copyItems_1 =
+      _registerName1("initWithArray:range:copyItems:");
+  late final _sel_filteredOrderedSetUsingPredicate_1 =
+      _registerName1("filteredOrderedSetUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_434(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> p,
+  ) {
+    return __objc_msgSend_434(
+      obj,
+      sel,
+      p,
+    );
+  }
+
+  late final __objc_msgSend_434Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_434 = __objc_msgSend_434Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObjects_count_1 = _registerName1("addObjects:count:");
+  void _objc_msgSend_435(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int count,
+  ) {
+    return __objc_msgSend_435(
+      obj,
+      sel,
+      objects,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_435Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_435 = __objc_msgSend_435Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_moveObjectsAtIndexes_toIndex_1 =
+      _registerName1("moveObjectsAtIndexes:toIndex:");
+  void _objc_msgSend_436(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+    int idx,
+  ) {
+    return __objc_msgSend_436(
+      obj,
+      sel,
+      indexes,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_436Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_436 = __objc_msgSend_436Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_setObject_atIndex_1 = _registerName1("setObject:atIndex:");
+  late final _sel_replaceObjectsInRange_withObjects_count_1 =
+      _registerName1("replaceObjectsInRange:withObjects:count:");
+  void _objc_msgSend_437(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int count,
+  ) {
+    return __objc_msgSend_437(
+      obj,
+      sel,
+      range,
+      objects,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_437Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_437 = __objc_msgSend_437Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_intersectOrderedSet_1 =
+      _registerName1("intersectOrderedSet:");
+  void _objc_msgSend_438(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_438(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_438Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_438 = __objc_msgSend_438Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_minusOrderedSet_1 = _registerName1("minusOrderedSet:");
+  late final _sel_unionOrderedSet_1 = _registerName1("unionOrderedSet:");
+  late final _sel_intersectSet_1 = _registerName1("intersectSet:");
+  void _objc_msgSend_439(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_439(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_439Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_439 = __objc_msgSend_439Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_minusSet_1 = _registerName1("minusSet:");
+  late final _sel_unionSet_1 = _registerName1("unionSet:");
+  late final _sel_sortRange_options_usingComparator_1 =
+      _registerName1("sortRange:options:usingComparator:");
+  void _objc_msgSend_440(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_440(
+      obj,
+      sel,
+      range,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_440Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_440 = __objc_msgSend_440Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          NSComparator)>();
+
+  late final _sel_orderedSetWithCapacity_1 =
+      _registerName1("orderedSetWithCapacity:");
+  late final _sel_mutableOrderedSetValueForKey_1 =
+      _registerName1("mutableOrderedSetValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_441(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_441(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_441Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_441 = __objc_msgSend_441Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSMutableSet1 = _getClass1("NSMutableSet");
+  late final _sel_setSet_1 = _registerName1("setSet:");
+  late final _sel_setWithCapacity_1 = _registerName1("setWithCapacity:");
+  late final _sel_mutableSetValueForKey_1 =
+      _registerName1("mutableSetValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_442(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_442(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_442Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_442 = __objc_msgSend_442Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueForKeyPath_1 = _registerName1("valueForKeyPath:");
+  late final _sel_setValue_forKeyPath_1 =
+      _registerName1("setValue:forKeyPath:");
+  late final _sel_validateValue_forKeyPath_error_1 =
+      _registerName1("validateValue:forKeyPath:error:");
+  late final _sel_mutableArrayValueForKeyPath_1 =
+      _registerName1("mutableArrayValueForKeyPath:");
+  late final _sel_mutableOrderedSetValueForKeyPath_1 =
+      _registerName1("mutableOrderedSetValueForKeyPath:");
+  late final _sel_mutableSetValueForKeyPath_1 =
+      _registerName1("mutableSetValueForKeyPath:");
+  late final _sel_valueForUndefinedKey_1 =
+      _registerName1("valueForUndefinedKey:");
+  late final _sel_setValue_forUndefinedKey_1 =
+      _registerName1("setValue:forUndefinedKey:");
+  late final _sel_setNilValueForKey_1 = _registerName1("setNilValueForKey:");
+  late final _sel_dictionaryWithValuesForKeys_1 =
+      _registerName1("dictionaryWithValuesForKeys:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_443(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+  ) {
+    return __objc_msgSend_443(
+      obj,
+      sel,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_443Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_443 = __objc_msgSend_443Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setValuesForKeysWithDictionary_1 =
+      _registerName1("setValuesForKeysWithDictionary:");
+  void _objc_msgSend_444(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyedValues,
+  ) {
+    return __objc_msgSend_444(
+      obj,
+      sel,
+      keyedValues,
+    );
+  }
+
+  late final __objc_msgSend_444Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_444 = __objc_msgSend_444Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_storedValueForKey_1 = _registerName1("storedValueForKey:");
+  late final _sel_takeStoredValue_forKey_1 =
+      _registerName1("takeStoredValue:forKey:");
+  late final _sel_takeValue_forKey_1 = _registerName1("takeValue:forKey:");
+  late final _sel_takeValue_forKeyPath_1 =
+      _registerName1("takeValue:forKeyPath:");
+  late final _sel_handleQueryWithUnboundKey_1 =
+      _registerName1("handleQueryWithUnboundKey:");
+  late final _sel_handleTakeValue_forUnboundKey_1 =
+      _registerName1("handleTakeValue:forUnboundKey:");
+  late final _sel_unableToSetNilForKey_1 =
+      _registerName1("unableToSetNilForKey:");
+  late final _sel_valuesForKeys_1 = _registerName1("valuesForKeys:");
+  late final _sel_takeValuesFromDictionary_1 =
+      _registerName1("takeValuesFromDictionary:");
+  late final _sel_observeValueForKeyPath_ofObject_change_context_1 =
+      _registerName1("observeValueForKeyPath:ofObject:change:context:");
+  void _objc_msgSend_445(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> change,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_445(
+      obj,
+      sel,
+      keyPath,
+      object,
+      change,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_445Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_445 = __objc_msgSend_445Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_willChangeValueForKey_1 =
+      _registerName1("willChangeValueForKey:");
+  late final _sel_didChangeValueForKey_1 =
+      _registerName1("didChangeValueForKey:");
+  late final _sel_willChange_valuesAtIndexes_forKey_1 =
+      _registerName1("willChange:valuesAtIndexes:forKey:");
+  void _objc_msgSend_446(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int changeKind,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_446(
+      obj,
+      sel,
+      changeKind,
+      indexes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_446Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_446 = __objc_msgSend_446Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_didChange_valuesAtIndexes_forKey_1 =
+      _registerName1("didChange:valuesAtIndexes:forKey:");
+  late final _sel_willChangeValueForKey_withSetMutation_usingObjects_1 =
+      _registerName1("willChangeValueForKey:withSetMutation:usingObjects:");
+  void _objc_msgSend_447(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    int mutationKind,
+    ffi.Pointer<ObjCObject> objects,
+  ) {
+    return __objc_msgSend_447(
+      obj,
+      sel,
+      key,
+      mutationKind,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_447Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_447 = __objc_msgSend_447Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_didChangeValueForKey_withSetMutation_usingObjects_1 =
+      _registerName1("didChangeValueForKey:withSetMutation:usingObjects:");
+  late final _sel_observationInfo1 = _registerName1("observationInfo");
+  late final _sel_setObservationInfo_1 = _registerName1("setObservationInfo:");
+  void _objc_msgSend_448(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __objc_msgSend_448(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_448Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_448 = __objc_msgSend_448Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_classForKeyedArchiver1 =
+      _registerName1("classForKeyedArchiver");
+  late final _class_NSKeyedArchiver1 = _getClass1("NSKeyedArchiver");
+  late final _sel_initRequiringSecureCoding_1 =
+      _registerName1("initRequiringSecureCoding:");
+  instancetype _objc_msgSend_449(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool requiresSecureCoding,
+  ) {
+    return __objc_msgSend_449(
+      obj,
+      sel,
+      requiresSecureCoding,
+    );
+  }
+
+  late final __objc_msgSend_449Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_449 = __objc_msgSend_449Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_archivedDataWithRootObject_requiringSecureCoding_error_1 =
+      _registerName1("archivedDataWithRootObject:requiringSecureCoding:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_450(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    bool requiresSecureCoding,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_450(
+      obj,
+      sel,
+      object,
+      requiresSecureCoding,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_450Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_450 = __objc_msgSend_450Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _class_NSMutableData1 = _getClass1("NSMutableData");
+  late final _sel_mutableBytes1 = _registerName1("mutableBytes");
+  late final _sel_setLength_1 = _registerName1("setLength:");
+  void _objc_msgSend_451(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_451(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_451Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_451 = __objc_msgSend_451Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_appendBytes_length_1 = _registerName1("appendBytes:length:");
+  late final _sel_appendData_1 = _registerName1("appendData:");
+  late final _sel_increaseLengthBy_1 = _registerName1("increaseLengthBy:");
+  late final _sel_replaceBytesInRange_withBytes_1 =
+      _registerName1("replaceBytesInRange:withBytes:");
+  void _objc_msgSend_452(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Void> bytes,
+  ) {
+    return __objc_msgSend_452(
+      obj,
+      sel,
+      range,
+      bytes,
+    );
+  }
+
+  late final __objc_msgSend_452Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_452 = __objc_msgSend_452Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_resetBytesInRange_1 = _registerName1("resetBytesInRange:");
+  late final _sel_setData_1 = _registerName1("setData:");
+  late final _sel_replaceBytesInRange_withBytes_length_1 =
+      _registerName1("replaceBytesInRange:withBytes:length:");
+  void _objc_msgSend_453(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ffi.Void> replacementBytes,
+    int replacementLength,
+  ) {
+    return __objc_msgSend_453(
+      obj,
+      sel,
+      range,
+      replacementBytes,
+      replacementLength,
+    );
+  }
+
+  late final __objc_msgSend_453Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_453 = __objc_msgSend_453Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_dataWithCapacity_1 = _registerName1("dataWithCapacity:");
+  late final _sel_dataWithLength_1 = _registerName1("dataWithLength:");
+  late final _sel_initWithLength_1 = _registerName1("initWithLength:");
+  late final _sel_decompressUsingAlgorithm_error_1 =
+      _registerName1("decompressUsingAlgorithm:error:");
+  bool _objc_msgSend_454(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int algorithm,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_454(
+      obj,
+      sel,
+      algorithm,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_454Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_454 = __objc_msgSend_454Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_compressUsingAlgorithm_error_1 =
+      _registerName1("compressUsingAlgorithm:error:");
+  late final _sel_initForWritingWithMutableData_1 =
+      _registerName1("initForWritingWithMutableData:");
+  instancetype _objc_msgSend_455(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_455(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_455Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_455 = __objc_msgSend_455Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_archivedDataWithRootObject_1 =
+      _registerName1("archivedDataWithRootObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_456(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> rootObject,
+  ) {
+    return __objc_msgSend_456(
+      obj,
+      sel,
+      rootObject,
+    );
+  }
+
+  late final __objc_msgSend_456Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_456 = __objc_msgSend_456Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_archiveRootObject_toFile_1 =
+      _registerName1("archiveRootObject:toFile:");
+  late final _sel_outputFormat1 = _registerName1("outputFormat");
+  int _objc_msgSend_457(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_457(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_457Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_457 = __objc_msgSend_457Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setOutputFormat_1 = _registerName1("setOutputFormat:");
+  void _objc_msgSend_458(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_458(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_458Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_458 = __objc_msgSend_458Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_encodedData1 = _registerName1("encodedData");
+  late final _sel_finishEncoding1 = _registerName1("finishEncoding");
+  late final _sel_setClassName_forClass_1 =
+      _registerName1("setClassName:forClass:");
+  void _objc_msgSend_459(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> codedName,
+    ffi.Pointer<ObjCObject> cls,
+  ) {
+    return __objc_msgSend_459(
+      obj,
+      sel,
+      codedName,
+      cls,
+    );
+  }
+
+  late final __objc_msgSend_459Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_459 = __objc_msgSend_459Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classNameForClass_1 = _registerName1("classNameForClass:");
+  late final _sel_setRequiresSecureCoding_1 =
+      _registerName1("setRequiresSecureCoding:");
+  void _objc_msgSend_460(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_460(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_460Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_460 = __objc_msgSend_460Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_replacementObjectForKeyedArchiver_1 =
+      _registerName1("replacementObjectForKeyedArchiver:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_461(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> archiver,
+  ) {
+    return __objc_msgSend_461(
+      obj,
+      sel,
+      archiver,
+    );
+  }
+
+  late final __objc_msgSend_461Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_461 = __objc_msgSend_461Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelectorOnMainThread_withObject_waitUntilDone_modes_1 =
+      _registerName1(
+          "performSelectorOnMainThread:withObject:waitUntilDone:modes:");
+  void _objc_msgSend_462(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+    ffi.Pointer<ObjCObject> array,
+  ) {
+    return __objc_msgSend_462(
+      obj,
+      sel,
+      aSelector,
+      arg,
+      wait,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_462Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_462 = __objc_msgSend_462Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelectorOnMainThread_withObject_waitUntilDone_1 =
+      _registerName1("performSelectorOnMainThread:withObject:waitUntilDone:");
+  void _objc_msgSend_463(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+  ) {
+    return __objc_msgSend_463(
+      obj,
+      sel,
+      aSelector,
+      arg,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_463Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_463 = __objc_msgSend_463Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _class_NSThread1 = _getClass1("NSThread");
+  late final _sel_currentThread1 = _registerName1("currentThread");
+  ffi.Pointer<ObjCObject> _objc_msgSend_464(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_464(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_464Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_464 = __objc_msgSend_464Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_detachNewThreadWithBlock_1 =
+      _registerName1("detachNewThreadWithBlock:");
+  void _objc_msgSend_465(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_465(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_465Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_465 = __objc_msgSend_465Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_detachNewThreadSelector_toTarget_withObject_1 =
+      _registerName1("detachNewThreadSelector:toTarget:withObject:");
+  void _objc_msgSend_466(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> selector,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_466(
+      obj,
+      sel,
+      selector,
+      target,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_466Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_466 = __objc_msgSend_466Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isMultiThreaded1 = _registerName1("isMultiThreaded");
+  late final _class_NSMutableDictionary1 = _getClass1("NSMutableDictionary");
+  late final _sel_removeObjectForKey_1 = _registerName1("removeObjectForKey:");
+  late final _sel_setObject_forKey_1 = _registerName1("setObject:forKey:");
+  void _objc_msgSend_467(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    ffi.Pointer<ObjCObject> aKey,
+  ) {
+    return __objc_msgSend_467(
+      obj,
+      sel,
+      anObject,
+      aKey,
+    );
+  }
+
+  late final __objc_msgSend_467Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_467 = __objc_msgSend_467Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addEntriesFromDictionary_1 =
+      _registerName1("addEntriesFromDictionary:");
+  late final _sel_removeObjectsForKeys_1 =
+      _registerName1("removeObjectsForKeys:");
+  late final _sel_setDictionary_1 = _registerName1("setDictionary:");
+  late final _sel_setObject_forKeyedSubscript_1 =
+      _registerName1("setObject:forKeyedSubscript:");
+  late final _sel_dictionaryWithCapacity_1 =
+      _registerName1("dictionaryWithCapacity:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_468(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_468(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_468Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_468 = __objc_msgSend_468Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_469(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_469(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_469Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_469 = __objc_msgSend_469Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithSharedKeySet_1 =
+      _registerName1("dictionaryWithSharedKeySet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_470(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyset,
+  ) {
+    return __objc_msgSend_470(
+      obj,
+      sel,
+      keyset,
+    );
+  }
+
+  late final __objc_msgSend_470Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_470 = __objc_msgSend_470Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_threadDictionary1 = _registerName1("threadDictionary");
+  ffi.Pointer<ObjCObject> _objc_msgSend_471(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_471(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_471Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_471 = __objc_msgSend_471Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sleepUntilDate_1 = _registerName1("sleepUntilDate:");
+  void _objc_msgSend_472(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_472(
+      obj,
+      sel,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_472Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_472 = __objc_msgSend_472Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sleepForTimeInterval_1 =
+      _registerName1("sleepForTimeInterval:");
+  void _objc_msgSend_473(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+  ) {
+    return __objc_msgSend_473(
+      obj,
+      sel,
+      ti,
+    );
+  }
+
+  late final __objc_msgSend_473Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_473 = __objc_msgSend_473Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_exit1 = _registerName1("exit");
+  late final _sel_threadPriority1 = _registerName1("threadPriority");
+  late final _sel_setThreadPriority_1 = _registerName1("setThreadPriority:");
+  void _objc_msgSend_474(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_474(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_474Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_474 = __objc_msgSend_474Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_qualityOfService1 = _registerName1("qualityOfService");
+  int _objc_msgSend_475(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_475(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_475Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_475 = __objc_msgSend_475Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setQualityOfService_1 =
+      _registerName1("setQualityOfService:");
+  void _objc_msgSend_476(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_476(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_476Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_476 = __objc_msgSend_476Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_callStackReturnAddresses1 =
+      _registerName1("callStackReturnAddresses");
+  late final _sel_callStackSymbols1 = _registerName1("callStackSymbols");
+  late final _sel_setName_1 = _registerName1("setName:");
+  void _objc_msgSend_477(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_477(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_477Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_477 = __objc_msgSend_477Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stackSize1 = _registerName1("stackSize");
+  late final _sel_setStackSize_1 = _registerName1("setStackSize:");
+  late final _sel_isMainThread1 = _registerName1("isMainThread");
+  late final _sel_mainThread1 = _registerName1("mainThread");
+  late final _sel_initWithTarget_selector_object_1 =
+      _registerName1("initWithTarget:selector:object:");
+  instancetype _objc_msgSend_478(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCSel> selector,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_478(
+      obj,
+      sel,
+      target,
+      selector,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_478Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_478 = __objc_msgSend_478Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithBlock_1 = _registerName1("initWithBlock:");
+  instancetype _objc_msgSend_479(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_479(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_479Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_479 = __objc_msgSend_479Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_isExecuting1 = _registerName1("isExecuting");
+  late final _sel_isFinished1 = _registerName1("isFinished");
+  late final _sel_isCancelled1 = _registerName1("isCancelled");
+  late final _sel_cancel1 = _registerName1("cancel");
+  late final _sel_start1 = _registerName1("start");
+  late final _sel_main1 = _registerName1("main");
+  late final _sel_performSelector_onThread_withObject_waitUntilDone_modes_1 =
+      _registerName1(
+          "performSelector:onThread:withObject:waitUntilDone:modes:");
+  void _objc_msgSend_480(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> thr,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+    ffi.Pointer<ObjCObject> array,
+  ) {
+    return __objc_msgSend_480(
+      obj,
+      sel,
+      aSelector,
+      thr,
+      arg,
+      wait,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_480Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_480 = __objc_msgSend_480Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_performSelector_onThread_withObject_waitUntilDone_1 =
+      _registerName1("performSelector:onThread:withObject:waitUntilDone:");
+  void _objc_msgSend_481(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> thr,
+    ffi.Pointer<ObjCObject> arg,
+    bool wait,
+  ) {
+    return __objc_msgSend_481(
+      obj,
+      sel,
+      aSelector,
+      thr,
+      arg,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_481Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_481 = __objc_msgSend_481Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_performSelectorInBackground_withObject_1 =
+      _registerName1("performSelectorInBackground:withObject:");
+  late final _sel_classForArchiver1 = _registerName1("classForArchiver");
+  late final _class_NSArchiver1 = _getClass1("NSArchiver");
+  late final _sel_archiverData1 = _registerName1("archiverData");
+  ffi.Pointer<ObjCObject> _objc_msgSend_482(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_482(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_482Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_482 = __objc_msgSend_482Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_encodeClassName_intoClassName_1 =
+      _registerName1("encodeClassName:intoClassName:");
+  void _objc_msgSend_483(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> trueName,
+    ffi.Pointer<ObjCObject> inArchiveName,
+  ) {
+    return __objc_msgSend_483(
+      obj,
+      sel,
+      trueName,
+      inArchiveName,
+    );
+  }
+
+  late final __objc_msgSend_483Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_483 = __objc_msgSend_483Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classNameEncodedForTrueClassName_1 =
+      _registerName1("classNameEncodedForTrueClassName:");
+  late final _sel_replaceObject_withObject_1 =
+      _registerName1("replaceObject:withObject:");
+  late final _sel_replacementObjectForArchiver_1 =
+      _registerName1("replacementObjectForArchiver:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_484(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> archiver,
+  ) {
+    return __objc_msgSend_484(
+      obj,
+      sel,
+      archiver,
+    );
+  }
+
+  late final __objc_msgSend_484Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_484 = __objc_msgSend_484Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classForPortCoder1 = _registerName1("classForPortCoder");
+  late final _class_NSPortCoder1 = _getClass1("NSPortCoder");
+  late final _sel_isBycopy1 = _registerName1("isBycopy");
+  late final _sel_isByref1 = _registerName1("isByref");
+  late final _class_NSPort1 = _getClass1("NSPort");
+  ffi.Pointer<ObjCObject> _objc_msgSend_485(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_485(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_485Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_485 = __objc_msgSend_485Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_invalidate1 = _registerName1("invalidate");
+  late final _sel_isValid1 = _registerName1("isValid");
+  late final _class_NSRunLoop1 = _getClass1("NSRunLoop");
+  late final _sel_currentRunLoop1 = _registerName1("currentRunLoop");
+  ffi.Pointer<ObjCObject> _objc_msgSend_486(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_486(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_486Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_486 = __objc_msgSend_486Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mainRunLoop1 = _registerName1("mainRunLoop");
+  late final _sel_currentMode1 = _registerName1("currentMode");
+  late final _sel_getCFRunLoop1 = _registerName1("getCFRunLoop");
+  CFRunLoopRef _objc_msgSend_487(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_487(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_487Ptr = _lookup<
+      ffi.NativeFunction<
+          CFRunLoopRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_487 = __objc_msgSend_487Ptr.asFunction<
+      CFRunLoopRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSTimer1 = _getClass1("NSTimer");
+  late final _sel_timerWithTimeInterval_invocation_repeats_1 =
+      _registerName1("timerWithTimeInterval:invocation:repeats:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_488(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+    ffi.Pointer<ObjCObject> invocation,
+    bool yesOrNo,
+  ) {
+    return __objc_msgSend_488(
+      obj,
+      sel,
+      ti,
+      invocation,
+      yesOrNo,
+    );
+  }
+
+  late final __objc_msgSend_488Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_488 = __objc_msgSend_488Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, double, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_invocation_repeats_1 =
+      _registerName1("scheduledTimerWithTimeInterval:invocation:repeats:");
+  late final _sel_timerWithTimeInterval_target_selector_userInfo_repeats_1 =
+      _registerName1("timerWithTimeInterval:target:selector:userInfo:repeats:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_489(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+    ffi.Pointer<ObjCObject> aTarget,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> userInfo,
+    bool yesOrNo,
+  ) {
+    return __objc_msgSend_489(
+      obj,
+      sel,
+      ti,
+      aTarget,
+      aSelector,
+      userInfo,
+      yesOrNo,
+    );
+  }
+
+  late final __objc_msgSend_489Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_489 = __objc_msgSend_489Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          double,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_1 =
+      _registerName1(
+          "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:");
+  late final _sel_timerWithTimeInterval_repeats_block_1 =
+      _registerName1("timerWithTimeInterval:repeats:block:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_490(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double interval,
+    bool repeats,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_490(
+      obj,
+      sel,
+      interval,
+      repeats,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_490Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSTimeInterval,
+              ffi.Bool,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_490 = __objc_msgSend_490Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, double, bool, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_scheduledTimerWithTimeInterval_repeats_block_1 =
+      _registerName1("scheduledTimerWithTimeInterval:repeats:block:");
+  late final _sel_initWithFireDate_interval_repeats_block_1 =
+      _registerName1("initWithFireDate:interval:repeats:block:");
+  instancetype _objc_msgSend_491(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    double interval,
+    bool repeats,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_491(
+      obj,
+      sel,
+      date,
+      interval,
+      repeats,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_491Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Bool,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_491 = __objc_msgSend_491Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, double, bool, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithFireDate_interval_target_selector_userInfo_repeats_1 =
+      _registerName1(
+          "initWithFireDate:interval:target:selector:userInfo:repeats:");
+  instancetype _objc_msgSend_492(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    double ti,
+    ffi.Pointer<ObjCObject> t,
+    ffi.Pointer<ObjCSel> s,
+    ffi.Pointer<ObjCObject> ui,
+    bool rep,
+  ) {
+    return __objc_msgSend_492(
+      obj,
+      sel,
+      date,
+      ti,
+      t,
+      s,
+      ui,
+      rep,
+    );
+  }
+
+  late final __objc_msgSend_492Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_492 = __objc_msgSend_492Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          double,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool)>();
+
+  late final _sel_fire1 = _registerName1("fire");
+  late final _sel_fireDate1 = _registerName1("fireDate");
+  late final _sel_setFireDate_1 = _registerName1("setFireDate:");
+  void _objc_msgSend_493(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_493(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_493Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_493 = __objc_msgSend_493Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeInterval1 = _registerName1("timeInterval");
+  late final _sel_tolerance1 = _registerName1("tolerance");
+  late final _sel_setTolerance_1 = _registerName1("setTolerance:");
+  late final _sel_userInfo1 = _registerName1("userInfo");
+  late final _sel_addTimer_forMode_1 = _registerName1("addTimer:forMode:");
+  void _objc_msgSend_494(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> timer,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_494(
+      obj,
+      sel,
+      timer,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_494Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_494 = __objc_msgSend_494Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_addPort_forMode_1 = _registerName1("addPort:forMode:");
+  void _objc_msgSend_495(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aPort,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_495(
+      obj,
+      sel,
+      aPort,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_495Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_495 = __objc_msgSend_495Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removePort_forMode_1 = _registerName1("removePort:forMode:");
+  late final _sel_limitDateForMode_1 = _registerName1("limitDateForMode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_496(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_496(
+      obj,
+      sel,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_496Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_496 = __objc_msgSend_496Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRunLoopMode)>();
+
+  late final _sel_acceptInputForMode_beforeDate_1 =
+      _registerName1("acceptInputForMode:beforeDate:");
+  void _objc_msgSend_497(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+    ffi.Pointer<ObjCObject> limitDate,
+  ) {
+    return __objc_msgSend_497(
+      obj,
+      sel,
+      mode,
+      limitDate,
+    );
+  }
+
+  late final __objc_msgSend_497Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRunLoopMode, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_497 = __objc_msgSend_497Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSRunLoopMode, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_run1 = _registerName1("run");
+  late final _sel_runUntilDate_1 = _registerName1("runUntilDate:");
+  late final _sel_runMode_beforeDate_1 = _registerName1("runMode:beforeDate:");
+  bool _objc_msgSend_498(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRunLoopMode mode,
+    ffi.Pointer<ObjCObject> limitDate,
+  ) {
+    return __objc_msgSend_498(
+      obj,
+      sel,
+      mode,
+      limitDate,
+    );
+  }
+
+  late final __objc_msgSend_498Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRunLoopMode, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_498 = __objc_msgSend_498Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSRunLoopMode, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_configureAsServer1 = _registerName1("configureAsServer");
+  late final _sel_performInModes_block_1 =
+      _registerName1("performInModes:block:");
+  void _objc_msgSend_499(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> modes,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_499(
+      obj,
+      sel,
+      modes,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_499Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_499 = __objc_msgSend_499Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_performBlock_1 = _registerName1("performBlock:");
+  late final _sel_performSelector_target_argument_order_modes_1 =
+      _registerName1("performSelector:target:argument:order:modes:");
+  void _objc_msgSend_500(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> arg,
+    int order,
+    ffi.Pointer<ObjCObject> modes,
+  ) {
+    return __objc_msgSend_500(
+      obj,
+      sel,
+      aSelector,
+      target,
+      arg,
+      order,
+      modes,
+    );
+  }
+
+  late final __objc_msgSend_500Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_500 = __objc_msgSend_500Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cancelPerformSelector_target_argument_1 =
+      _registerName1("cancelPerformSelector:target:argument:");
+  late final _sel_cancelPerformSelectorsWithTarget_1 =
+      _registerName1("cancelPerformSelectorsWithTarget:");
+  late final _sel_scheduleInRunLoop_forMode_1 =
+      _registerName1("scheduleInRunLoop:forMode:");
+  void _objc_msgSend_501(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> runLoop,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_501(
+      obj,
+      sel,
+      runLoop,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_501Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_501 = __objc_msgSend_501Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removeFromRunLoop_forMode_1 =
+      _registerName1("removeFromRunLoop:forMode:");
+  late final _sel_reservedSpaceLength1 = _registerName1("reservedSpaceLength");
+  late final _sel_sendBeforeDate_components_from_reserved_1 =
+      _registerName1("sendBeforeDate:components:from:reserved:");
+  bool _objc_msgSend_502(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> limitDate,
+    ffi.Pointer<ObjCObject> components,
+    ffi.Pointer<ObjCObject> receivePort,
+    int headerSpaceReserved,
+  ) {
+    return __objc_msgSend_502(
+      obj,
+      sel,
+      limitDate,
+      components,
+      receivePort,
+      headerSpaceReserved,
+    );
+  }
+
+  late final __objc_msgSend_502Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_502 = __objc_msgSend_502Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_sendBeforeDate_msgid_components_from_reserved_1 =
+      _registerName1("sendBeforeDate:msgid:components:from:reserved:");
+  bool _objc_msgSend_503(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> limitDate,
+    int msgID,
+    ffi.Pointer<ObjCObject> components,
+    ffi.Pointer<ObjCObject> receivePort,
+    int headerSpaceReserved,
+  ) {
+    return __objc_msgSend_503(
+      obj,
+      sel,
+      limitDate,
+      msgID,
+      components,
+      receivePort,
+      headerSpaceReserved,
+    );
+  }
+
+  late final __objc_msgSend_503Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_503 = __objc_msgSend_503Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _class_NSConnection1 = _getClass1("NSConnection");
+  late final _sel_statistics1 = _registerName1("statistics");
+  late final _sel_allConnections1 = _registerName1("allConnections");
+  late final _sel_defaultConnection1 = _registerName1("defaultConnection");
+  ffi.Pointer<ObjCObject> _objc_msgSend_504(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_504(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_504Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_504 = __objc_msgSend_504Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_connectionWithRegisteredName_host_1 =
+      _registerName1("connectionWithRegisteredName:host:");
+  late final _class_NSPortNameServer1 = _getClass1("NSPortNameServer");
+  late final _sel_systemDefaultPortNameServer1 =
+      _registerName1("systemDefaultPortNameServer");
+  ffi.Pointer<ObjCObject> _objc_msgSend_505(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_505(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_505Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_505 = __objc_msgSend_505Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_portForName_1 = _registerName1("portForName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_506(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_506(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_506Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_506 = __objc_msgSend_506Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_portForName_host_1 = _registerName1("portForName:host:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_507(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> host,
+  ) {
+    return __objc_msgSend_507(
+      obj,
+      sel,
+      name,
+      host,
+    );
+  }
+
+  late final __objc_msgSend_507Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_507 = __objc_msgSend_507Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_registerPort_name_1 = _registerName1("registerPort:name:");
+  bool _objc_msgSend_508(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> port,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_508(
+      obj,
+      sel,
+      port,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_508Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_508 = __objc_msgSend_508Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removePortForName_1 = _registerName1("removePortForName:");
+  late final _sel_connectionWithRegisteredName_host_usingNameServer_1 =
+      _registerName1("connectionWithRegisteredName:host:usingNameServer:");
+  instancetype _objc_msgSend_509(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_509(
+      obj,
+      sel,
+      name,
+      hostName,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_509Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_509 = __objc_msgSend_509Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSDistantObject1 = _getClass1("NSDistantObject");
+  late final _class_NSProxy1 = _getClass1("NSProxy");
+  late final _sel_respondsToSelector_1 = _registerName1("respondsToSelector:");
+  late final _sel_proxyWithTarget_connection_1 =
+      _registerName1("proxyWithTarget:connection:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_510(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> connection,
+  ) {
+    return __objc_msgSend_510(
+      obj,
+      sel,
+      target,
+      connection,
+    );
+  }
+
+  late final __objc_msgSend_510Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_510 = __objc_msgSend_510Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTarget_connection_1 =
+      _registerName1("initWithTarget:connection:");
+  late final _sel_proxyWithLocal_connection_1 =
+      _registerName1("proxyWithLocal:connection:");
+  late final _sel_initWithLocal_connection_1 =
+      _registerName1("initWithLocal:connection:");
+  late final _sel_setProtocolForProxy_1 =
+      _registerName1("setProtocolForProxy:");
+  void _objc_msgSend_511(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> proto,
+  ) {
+    return __objc_msgSend_511(
+      obj,
+      sel,
+      proto,
+    );
+  }
+
+  late final __objc_msgSend_511Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_511 = __objc_msgSend_511Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionForProxy1 = _registerName1("connectionForProxy");
+  late final _sel_rootProxyForConnectionWithRegisteredName_host_1 =
+      _registerName1("rootProxyForConnectionWithRegisteredName:host:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_512(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+  ) {
+    return __objc_msgSend_512(
+      obj,
+      sel,
+      name,
+      hostName,
+    );
+  }
+
+  late final __objc_msgSend_512Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_512 = __objc_msgSend_512Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_1 =
+      _registerName1(
+          "rootProxyForConnectionWithRegisteredName:host:usingNameServer:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_513(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> hostName,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_513(
+      obj,
+      sel,
+      name,
+      hostName,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_513Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_513 = __objc_msgSend_513Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_serviceConnectionWithName_rootObject_usingNameServer_1 =
+      _registerName1("serviceConnectionWithName:rootObject:usingNameServer:");
+  instancetype _objc_msgSend_514(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> root,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_514(
+      obj,
+      sel,
+      name,
+      root,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_514Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_514 = __objc_msgSend_514Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_serviceConnectionWithName_rootObject_1 =
+      _registerName1("serviceConnectionWithName:rootObject:");
+  late final _sel_requestTimeout1 = _registerName1("requestTimeout");
+  late final _sel_setRequestTimeout_1 = _registerName1("setRequestTimeout:");
+  late final _sel_replyTimeout1 = _registerName1("replyTimeout");
+  late final _sel_setReplyTimeout_1 = _registerName1("setReplyTimeout:");
+  late final _sel_rootObject1 = _registerName1("rootObject");
+  late final _sel_setRootObject_1 = _registerName1("setRootObject:");
+  late final _sel_independentConversationQueueing1 =
+      _registerName1("independentConversationQueueing");
+  late final _sel_setIndependentConversationQueueing_1 =
+      _registerName1("setIndependentConversationQueueing:");
+  late final _sel_rootProxy1 = _registerName1("rootProxy");
+  ffi.Pointer<ObjCObject> _objc_msgSend_515(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_515(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_515Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_515 = __objc_msgSend_515Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_addRequestMode_1 = _registerName1("addRequestMode:");
+  late final _sel_removeRequestMode_1 = _registerName1("removeRequestMode:");
+  late final _sel_requestModes1 = _registerName1("requestModes");
+  late final _sel_registerName_1 = _registerName1("registerName:");
+  late final _sel_registerName_withNameServer_1 =
+      _registerName1("registerName:withNameServer:");
+  bool _objc_msgSend_516(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> server,
+  ) {
+    return __objc_msgSend_516(
+      obj,
+      sel,
+      name,
+      server,
+    );
+  }
+
+  late final __objc_msgSend_516Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_516 = __objc_msgSend_516Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionWithReceivePort_sendPort_1 =
+      _registerName1("connectionWithReceivePort:sendPort:");
+  instancetype _objc_msgSend_517(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> receivePort,
+    ffi.Pointer<ObjCObject> sendPort,
+  ) {
+    return __objc_msgSend_517(
+      obj,
+      sel,
+      receivePort,
+      sendPort,
+    );
+  }
+
+  late final __objc_msgSend_517Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_517 = __objc_msgSend_517Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_currentConversation1 = _registerName1("currentConversation");
+  late final _sel_initWithReceivePort_sendPort_1 =
+      _registerName1("initWithReceivePort:sendPort:");
+  late final _sel_sendPort1 = _registerName1("sendPort");
+  late final _sel_receivePort1 = _registerName1("receivePort");
+  late final _sel_enableMultipleThreads1 =
+      _registerName1("enableMultipleThreads");
+  late final _sel_multipleThreadsEnabled1 =
+      _registerName1("multipleThreadsEnabled");
+  late final _sel_addRunLoop_1 = _registerName1("addRunLoop:");
+  void _objc_msgSend_518(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> runloop,
+  ) {
+    return __objc_msgSend_518(
+      obj,
+      sel,
+      runloop,
+    );
+  }
+
+  late final __objc_msgSend_518Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_518 = __objc_msgSend_518Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeRunLoop_1 = _registerName1("removeRunLoop:");
+  late final _sel_runInNewThread1 = _registerName1("runInNewThread");
+  late final _sel_remoteObjects1 = _registerName1("remoteObjects");
+  late final _sel_localObjects1 = _registerName1("localObjects");
+  late final _sel_dispatchWithComponents_1 =
+      _registerName1("dispatchWithComponents:");
+  late final _sel_addConnection_toRunLoop_forMode_1 =
+      _registerName1("addConnection:toRunLoop:forMode:");
+  void _objc_msgSend_519(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> conn,
+    ffi.Pointer<ObjCObject> runLoop,
+    NSRunLoopMode mode,
+  ) {
+    return __objc_msgSend_519(
+      obj,
+      sel,
+      conn,
+      runLoop,
+      mode,
+    );
+  }
+
+  late final __objc_msgSend_519Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSRunLoopMode)>>('objc_msgSend');
+  late final __objc_msgSend_519 = __objc_msgSend_519Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, NSRunLoopMode)>();
+
+  late final _sel_removeConnection_fromRunLoop_forMode_1 =
+      _registerName1("removeConnection:fromRunLoop:forMode:");
+  late final _sel_encodePortObject_1 = _registerName1("encodePortObject:");
+  void _objc_msgSend_520(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aport,
+  ) {
+    return __objc_msgSend_520(
+      obj,
+      sel,
+      aport,
+    );
+  }
+
+  late final __objc_msgSend_520Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_520 = __objc_msgSend_520Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePortObject1 = _registerName1("decodePortObject");
+  late final _sel_connection1 = _registerName1("connection");
+  late final _sel_portCoderWithReceivePort_sendPort_components_1 =
+      _registerName1("portCoderWithReceivePort:sendPort:components:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_521(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> rcvPort,
+    ffi.Pointer<ObjCObject> sndPort,
+    ffi.Pointer<ObjCObject> comps,
+  ) {
+    return __objc_msgSend_521(
+      obj,
+      sel,
+      rcvPort,
+      sndPort,
+      comps,
+    );
+  }
+
+  late final __objc_msgSend_521Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_521 = __objc_msgSend_521Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithReceivePort_sendPort_components_1 =
+      _registerName1("initWithReceivePort:sendPort:components:");
+  late final _sel_dispatch1 = _registerName1("dispatch");
+  late final _sel_replacementObjectForPortCoder_1 =
+      _registerName1("replacementObjectForPortCoder:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_522(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> coder,
+  ) {
+    return __objc_msgSend_522(
+      obj,
+      sel,
+      coder,
+    );
+  }
+
+  late final __objc_msgSend_522Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_522 = __objc_msgSend_522Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSClassDescription1 = _getClass1("NSClassDescription");
+  late final _sel_registerClassDescription_forClass_1 =
+      _registerName1("registerClassDescription:forClass:");
+  void _objc_msgSend_523(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_523(
+      obj,
+      sel,
+      description,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_523Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_523 = __objc_msgSend_523Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_invalidateClassDescriptionCache1 =
+      _registerName1("invalidateClassDescriptionCache");
+  late final _sel_classDescriptionForClass_1 =
+      _registerName1("classDescriptionForClass:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_524(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_524(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_524Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_524 = __objc_msgSend_524Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributeKeys1 = _registerName1("attributeKeys");
+  late final _sel_toOneRelationshipKeys1 =
+      _registerName1("toOneRelationshipKeys");
+  late final _sel_toManyRelationshipKeys1 =
+      _registerName1("toManyRelationshipKeys");
+  late final _sel_inverseForRelationshipKey_1 =
+      _registerName1("inverseForRelationshipKey:");
+  late final _sel_classDescription1 = _registerName1("classDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_525(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_525(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_525Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_525 = __objc_msgSend_525Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSScriptObjectSpecifier1 =
+      _getClass1("NSScriptObjectSpecifier");
+  late final _class_NSAppleEventDescriptor1 =
+      _getClass1("NSAppleEventDescriptor");
+  late final _sel_nullDescriptor1 = _registerName1("nullDescriptor");
+  ffi.Pointer<ObjCObject> _objc_msgSend_526(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_526(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_526Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_526 = __objc_msgSend_526Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_descriptorWithDescriptorType_bytes_length_1 =
+      _registerName1("descriptorWithDescriptorType:bytes:length:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_527(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ffi.Void> bytes,
+    int byteCount,
+  ) {
+    return __objc_msgSend_527(
+      obj,
+      sel,
+      descriptorType,
+      bytes,
+      byteCount,
+    );
+  }
+
+  late final __objc_msgSend_527Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              DescType,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_527 = __objc_msgSend_527Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_descriptorWithDescriptorType_data_1 =
+      _registerName1("descriptorWithDescriptorType:data:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_528(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_528(
+      obj,
+      sel,
+      descriptorType,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_528Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              DescType,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_528 = __objc_msgSend_528Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithBoolean_1 =
+      _registerName1("descriptorWithBoolean:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_529(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int boolean,
+  ) {
+    return __objc_msgSend_529(
+      obj,
+      sel,
+      boolean,
+    );
+  }
+
+  late final __objc_msgSend_529Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, Boolean)>>('objc_msgSend');
+  late final __objc_msgSend_529 = __objc_msgSend_529Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithEnumCode_1 =
+      _registerName1("descriptorWithEnumCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_530(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int enumerator,
+  ) {
+    return __objc_msgSend_530(
+      obj,
+      sel,
+      enumerator,
+    );
+  }
+
+  late final __objc_msgSend_530Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, OSType)>>('objc_msgSend');
+  late final __objc_msgSend_530 = __objc_msgSend_530Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithInt32_1 =
+      _registerName1("descriptorWithInt32:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_531(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int signedInt,
+  ) {
+    return __objc_msgSend_531(
+      obj,
+      sel,
+      signedInt,
+    );
+  }
+
+  late final __objc_msgSend_531Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, SInt32)>>('objc_msgSend');
+  late final __objc_msgSend_531 = __objc_msgSend_531Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_descriptorWithDouble_1 =
+      _registerName1("descriptorWithDouble:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_532(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double doubleValue,
+  ) {
+    return __objc_msgSend_532(
+      obj,
+      sel,
+      doubleValue,
+    );
+  }
+
+  late final __objc_msgSend_532Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_532 = __objc_msgSend_532Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_descriptorWithTypeCode_1 =
+      _registerName1("descriptorWithTypeCode:");
+  late final _sel_descriptorWithString_1 =
+      _registerName1("descriptorWithString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_533(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_533(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_533Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_533 = __objc_msgSend_533Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithDate_1 = _registerName1("descriptorWithDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_534(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_534(
+      obj,
+      sel,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_534Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_534 = __objc_msgSend_534Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptorWithFileURL_1 =
+      _registerName1("descriptorWithFileURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_535(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> fileURL,
+  ) {
+    return __objc_msgSend_535(
+      obj,
+      sel,
+      fileURL,
+    );
+  }
+
+  late final __objc_msgSend_535Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_535 = __objc_msgSend_535Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_1 =
+      _registerName1(
+          "appleEventWithEventClass:eventID:targetDescriptor:returnID:transactionID:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_536(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eventClass,
+    int eventID,
+    ffi.Pointer<ObjCObject> targetDescriptor,
+    int returnID,
+    int transactionID,
+  ) {
+    return __objc_msgSend_536(
+      obj,
+      sel,
+      eventClass,
+      eventID,
+      targetDescriptor,
+      returnID,
+      transactionID,
+    );
+  }
+
+  late final __objc_msgSend_536Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AEEventClass,
+              AEEventID,
+              ffi.Pointer<ObjCObject>,
+              AEReturnID,
+              AETransactionID)>>('objc_msgSend');
+  late final __objc_msgSend_536 = __objc_msgSend_536Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_listDescriptor1 = _registerName1("listDescriptor");
+  late final _sel_recordDescriptor1 = _registerName1("recordDescriptor");
+  late final _sel_currentProcessDescriptor1 =
+      _registerName1("currentProcessDescriptor");
+  late final _sel_descriptorWithProcessIdentifier_1 =
+      _registerName1("descriptorWithProcessIdentifier:");
+  late final _sel_descriptorWithBundleIdentifier_1 =
+      _registerName1("descriptorWithBundleIdentifier:");
+  late final _sel_descriptorWithApplicationURL_1 =
+      _registerName1("descriptorWithApplicationURL:");
+  late final _sel_initWithAEDescNoCopy_1 =
+      _registerName1("initWithAEDescNoCopy:");
+  instancetype _objc_msgSend_537(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<AEDesc> aeDesc,
+  ) {
+    return __objc_msgSend_537(
+      obj,
+      sel,
+      aeDesc,
+    );
+  }
+
+  late final __objc_msgSend_537Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<AEDesc>)>>('objc_msgSend');
+  late final __objc_msgSend_537 = __objc_msgSend_537Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<AEDesc>)>();
+
+  late final _sel_initWithDescriptorType_bytes_length_1 =
+      _registerName1("initWithDescriptorType:bytes:length:");
+  instancetype _objc_msgSend_538(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ffi.Void> bytes,
+    int byteCount,
+  ) {
+    return __objc_msgSend_538(
+      obj,
+      sel,
+      descriptorType,
+      bytes,
+      byteCount,
+    );
+  }
+
+  late final __objc_msgSend_538Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              DescType, ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_538 = __objc_msgSend_538Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_initWithDescriptorType_data_1 =
+      _registerName1("initWithDescriptorType:data:");
+  instancetype _objc_msgSend_539(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int descriptorType,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_539(
+      obj,
+      sel,
+      descriptorType,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_539Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              DescType, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_539 = __objc_msgSend_539Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_1 =
+      _registerName1(
+          "initWithEventClass:eventID:targetDescriptor:returnID:transactionID:");
+  instancetype _objc_msgSend_540(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eventClass,
+    int eventID,
+    ffi.Pointer<ObjCObject> targetDescriptor,
+    int returnID,
+    int transactionID,
+  ) {
+    return __objc_msgSend_540(
+      obj,
+      sel,
+      eventClass,
+      eventID,
+      targetDescriptor,
+      returnID,
+      transactionID,
+    );
+  }
+
+  late final __objc_msgSend_540Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              AEEventClass,
+              AEEventID,
+              ffi.Pointer<ObjCObject>,
+              AEReturnID,
+              AETransactionID)>>('objc_msgSend');
+  late final __objc_msgSend_540 = __objc_msgSend_540Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_initListDescriptor1 = _registerName1("initListDescriptor");
+  late final _sel_initRecordDescriptor1 =
+      _registerName1("initRecordDescriptor");
+  late final _sel_aeDesc1 = _registerName1("aeDesc");
+  ffi.Pointer<AEDesc> _objc_msgSend_541(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_541(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_541Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<AEDesc> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_541 = __objc_msgSend_541Ptr.asFunction<
+      ffi.Pointer<AEDesc> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_descriptorType1 = _registerName1("descriptorType");
+  late final _sel_booleanValue1 = _registerName1("booleanValue");
+  late final _sel_enumCodeValue1 = _registerName1("enumCodeValue");
+  late final _sel_int32Value1 = _registerName1("int32Value");
+  late final _sel_typeCodeValue1 = _registerName1("typeCodeValue");
+  late final _sel_dateValue1 = _registerName1("dateValue");
+  late final _sel_fileURLValue1 = _registerName1("fileURLValue");
+  late final _sel_eventClass1 = _registerName1("eventClass");
+  late final _sel_eventID1 = _registerName1("eventID");
+  late final _sel_returnID1 = _registerName1("returnID");
+  late final _sel_transactionID1 = _registerName1("transactionID");
+  late final _sel_setParamDescriptor_forKeyword_1 =
+      _registerName1("setParamDescriptor:forKeyword:");
+  void _objc_msgSend_542(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+    int keyword,
+  ) {
+    return __objc_msgSend_542(
+      obj,
+      sel,
+      descriptor,
+      keyword,
+    );
+  }
+
+  late final __objc_msgSend_542Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, AEKeyword)>>('objc_msgSend');
+  late final __objc_msgSend_542 = __objc_msgSend_542Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_paramDescriptorForKeyword_1 =
+      _registerName1("paramDescriptorForKeyword:");
+  late final _sel_removeParamDescriptorWithKeyword_1 =
+      _registerName1("removeParamDescriptorWithKeyword:");
+  void _objc_msgSend_543(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int keyword,
+  ) {
+    return __objc_msgSend_543(
+      obj,
+      sel,
+      keyword,
+    );
+  }
+
+  late final __objc_msgSend_543Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              AEKeyword)>>('objc_msgSend');
+  late final __objc_msgSend_543 = __objc_msgSend_543Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setAttributeDescriptor_forKeyword_1 =
+      _registerName1("setAttributeDescriptor:forKeyword:");
+  late final _sel_attributeDescriptorForKeyword_1 =
+      _registerName1("attributeDescriptorForKeyword:");
+  late final _sel_sendEventWithOptions_timeout_error_1 =
+      _registerName1("sendEventWithOptions:timeout:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_544(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int sendOptions,
+    double timeoutInSeconds,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_544(
+      obj,
+      sel,
+      sendOptions,
+      timeoutInSeconds,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_544Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              NSTimeInterval,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_544 = __objc_msgSend_544Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          double,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isRecordDescriptor1 = _registerName1("isRecordDescriptor");
+  late final _sel_numberOfItems1 = _registerName1("numberOfItems");
+  late final _sel_insertDescriptor_atIndex_1 =
+      _registerName1("insertDescriptor:atIndex:");
+  void _objc_msgSend_545(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+    int index,
+  ) {
+    return __objc_msgSend_545(
+      obj,
+      sel,
+      descriptor,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_545Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_545 = __objc_msgSend_545Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_descriptorAtIndex_1 = _registerName1("descriptorAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_546(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_546(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_546Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_546 = __objc_msgSend_546Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_removeDescriptorAtIndex_1 =
+      _registerName1("removeDescriptorAtIndex:");
+  late final _sel_setDescriptor_forKeyword_1 =
+      _registerName1("setDescriptor:forKeyword:");
+  late final _sel_descriptorForKeyword_1 =
+      _registerName1("descriptorForKeyword:");
+  late final _sel_removeDescriptorWithKeyword_1 =
+      _registerName1("removeDescriptorWithKeyword:");
+  late final _sel_keywordForDescriptorAtIndex_1 =
+      _registerName1("keywordForDescriptorAtIndex:");
+  int _objc_msgSend_547(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_547(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_547Ptr = _lookup<
+      ffi.NativeFunction<
+          AEKeyword Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_547 = __objc_msgSend_547Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_coerceToDescriptorType_1 =
+      _registerName1("coerceToDescriptorType:");
+  late final _sel_objectSpecifierWithDescriptor_1 =
+      _registerName1("objectSpecifierWithDescriptor:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_548(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> descriptor,
+  ) {
+    return __objc_msgSend_548(
+      obj,
+      sel,
+      descriptor,
+    );
+  }
+
+  late final __objc_msgSend_548Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_548 = __objc_msgSend_548Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithContainerSpecifier_key_1 =
+      _registerName1("initWithContainerSpecifier:key:");
+  instancetype _objc_msgSend_549(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<ObjCObject> property,
+  ) {
+    return __objc_msgSend_549(
+      obj,
+      sel,
+      container,
+      property,
+    );
+  }
+
+  late final __objc_msgSend_549Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_549 = __objc_msgSend_549Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSScriptClassDescription1 =
+      _getClass1("NSScriptClassDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_550(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_550(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_550Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_550 = __objc_msgSend_550Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithSuiteName_className_dictionary_1 =
+      _registerName1("initWithSuiteName:className:dictionary:");
+  instancetype _objc_msgSend_551(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> suiteName,
+    ffi.Pointer<ObjCObject> className,
+    ffi.Pointer<ObjCObject> classDeclaration,
+  ) {
+    return __objc_msgSend_551(
+      obj,
+      sel,
+      suiteName,
+      className,
+      classDeclaration,
+    );
+  }
+
+  late final __objc_msgSend_551Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_551 = __objc_msgSend_551Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_suiteName1 = _registerName1("suiteName");
+  late final _sel_className1 = _registerName1("className");
+  late final _sel_implementationClassName1 =
+      _registerName1("implementationClassName");
+  late final _sel_superclassDescription1 =
+      _registerName1("superclassDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_552(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_552(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_552Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_552 = __objc_msgSend_552Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_appleEventCode1 = _registerName1("appleEventCode");
+  late final _sel_matchesAppleEventCode_1 =
+      _registerName1("matchesAppleEventCode:");
+  late final _class_NSScriptCommandDescription1 =
+      _getClass1("NSScriptCommandDescription");
+  late final _sel_initWithSuiteName_commandName_dictionary_1 =
+      _registerName1("initWithSuiteName:commandName:dictionary:");
+  late final _sel_commandName1 = _registerName1("commandName");
+  late final _sel_appleEventClassCode1 = _registerName1("appleEventClassCode");
+  late final _sel_commandClassName1 = _registerName1("commandClassName");
+  late final _sel_returnType1 = _registerName1("returnType");
+  late final _sel_appleEventCodeForReturnType1 =
+      _registerName1("appleEventCodeForReturnType");
+  late final _sel_argumentNames1 = _registerName1("argumentNames");
+  late final _sel_typeForArgumentWithName_1 =
+      _registerName1("typeForArgumentWithName:");
+  late final _sel_appleEventCodeForArgumentWithName_1 =
+      _registerName1("appleEventCodeForArgumentWithName:");
+  int _objc_msgSend_553(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> argumentName,
+  ) {
+    return __objc_msgSend_553(
+      obj,
+      sel,
+      argumentName,
+    );
+  }
+
+  late final __objc_msgSend_553Ptr = _lookup<
+      ffi.NativeFunction<
+          FourCharCode Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_553 = __objc_msgSend_553Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isOptionalArgumentWithName_1 =
+      _registerName1("isOptionalArgumentWithName:");
+  late final _class_NSScriptCommand1 = _getClass1("NSScriptCommand");
+  late final _sel_initWithCommandDescription_1 =
+      _registerName1("initWithCommandDescription:");
+  instancetype _objc_msgSend_554(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDef,
+  ) {
+    return __objc_msgSend_554(
+      obj,
+      sel,
+      commandDef,
+    );
+  }
+
+  late final __objc_msgSend_554Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_554 = __objc_msgSend_554Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_commandDescription1 = _registerName1("commandDescription");
+  ffi.Pointer<ObjCObject> _objc_msgSend_555(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_555(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_555Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_555 = __objc_msgSend_555Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_directParameter1 = _registerName1("directParameter");
+  late final _sel_setDirectParameter_1 = _registerName1("setDirectParameter:");
+  late final _sel_receiversSpecifier1 = _registerName1("receiversSpecifier");
+  ffi.Pointer<ObjCObject> _objc_msgSend_556(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_556(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_556Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_556 = __objc_msgSend_556Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setReceiversSpecifier_1 =
+      _registerName1("setReceiversSpecifier:");
+  void _objc_msgSend_557(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_557(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_557Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_557 = __objc_msgSend_557Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_evaluatedReceivers1 = _registerName1("evaluatedReceivers");
+  late final _sel_arguments1 = _registerName1("arguments");
+  late final _sel_setArguments_1 = _registerName1("setArguments:");
+  late final _sel_evaluatedArguments1 = _registerName1("evaluatedArguments");
+  late final _sel_isWellFormed1 = _registerName1("isWellFormed");
+  late final _sel_performDefaultImplementation1 =
+      _registerName1("performDefaultImplementation");
+  late final _sel_executeCommand1 = _registerName1("executeCommand");
+  late final _sel_scriptErrorNumber1 = _registerName1("scriptErrorNumber");
+  late final _sel_setScriptErrorNumber_1 =
+      _registerName1("setScriptErrorNumber:");
+  void _objc_msgSend_558(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_558(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_558Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_558 = __objc_msgSend_558Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_scriptErrorOffendingObjectDescriptor1 =
+      _registerName1("scriptErrorOffendingObjectDescriptor");
+  late final _sel_setScriptErrorOffendingObjectDescriptor_1 =
+      _registerName1("setScriptErrorOffendingObjectDescriptor:");
+  void _objc_msgSend_559(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_559(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_559Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_559 = __objc_msgSend_559Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_scriptErrorExpectedTypeDescriptor1 =
+      _registerName1("scriptErrorExpectedTypeDescriptor");
+  late final _sel_setScriptErrorExpectedTypeDescriptor_1 =
+      _registerName1("setScriptErrorExpectedTypeDescriptor:");
+  late final _sel_scriptErrorString1 = _registerName1("scriptErrorString");
+  late final _sel_setScriptErrorString_1 =
+      _registerName1("setScriptErrorString:");
+  late final _sel_currentCommand1 = _registerName1("currentCommand");
+  ffi.Pointer<ObjCObject> _objc_msgSend_560(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_560(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_560Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_560 = __objc_msgSend_560Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_appleEvent1 = _registerName1("appleEvent");
+  late final _sel_suspendExecution1 = _registerName1("suspendExecution");
+  late final _sel_resumeExecutionWithResult_1 =
+      _registerName1("resumeExecutionWithResult:");
+  late final _sel_createCommandInstance1 =
+      _registerName1("createCommandInstance");
+  late final _sel_createCommandInstanceWithZone_1 =
+      _registerName1("createCommandInstanceWithZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_561(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSZone> zone,
+  ) {
+    return __objc_msgSend_561(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_561Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_561 = __objc_msgSend_561Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<NSZone>)>();
+
+  late final _sel_supportsCommand_1 = _registerName1("supportsCommand:");
+  bool _objc_msgSend_562(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDescription,
+  ) {
+    return __objc_msgSend_562(
+      obj,
+      sel,
+      commandDescription,
+    );
+  }
+
+  late final __objc_msgSend_562Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_562 = __objc_msgSend_562Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_selectorForCommand_1 = _registerName1("selectorForCommand:");
+  ffi.Pointer<ObjCSel> _objc_msgSend_563(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> commandDescription,
+  ) {
+    return __objc_msgSend_563(
+      obj,
+      sel,
+      commandDescription,
+    );
+  }
+
+  late final __objc_msgSend_563Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_563 = __objc_msgSend_563Ptr.asFunction<
+      ffi.Pointer<ObjCSel> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_typeForKey_1 = _registerName1("typeForKey:");
+  late final _sel_classDescriptionForKey_1 =
+      _registerName1("classDescriptionForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_564(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_564(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_564Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_564 = __objc_msgSend_564Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_appleEventCodeForKey_1 =
+      _registerName1("appleEventCodeForKey:");
+  late final _sel_keyWithAppleEventCode_1 =
+      _registerName1("keyWithAppleEventCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_565(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int appleEventCode,
+  ) {
+    return __objc_msgSend_565(
+      obj,
+      sel,
+      appleEventCode,
+    );
+  }
+
+  late final __objc_msgSend_565Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, FourCharCode)>>('objc_msgSend');
+  late final __objc_msgSend_565 = __objc_msgSend_565Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_defaultSubcontainerAttributeKey1 =
+      _registerName1("defaultSubcontainerAttributeKey");
+  late final _sel_isLocationRequiredToCreateForKey_1 =
+      _registerName1("isLocationRequiredToCreateForKey:");
+  late final _sel_hasPropertyForKey_1 = _registerName1("hasPropertyForKey:");
+  late final _sel_hasOrderedToManyRelationshipForKey_1 =
+      _registerName1("hasOrderedToManyRelationshipForKey:");
+  late final _sel_hasReadablePropertyForKey_1 =
+      _registerName1("hasReadablePropertyForKey:");
+  late final _sel_hasWritablePropertyForKey_1 =
+      _registerName1("hasWritablePropertyForKey:");
+  late final _sel_isReadOnlyKey_1 = _registerName1("isReadOnlyKey:");
+  late final _sel_initWithContainerClassDescription_containerSpecifier_key_1 =
+      _registerName1(
+          "initWithContainerClassDescription:containerSpecifier:key:");
+  instancetype _objc_msgSend_566(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classDesc,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<ObjCObject> property,
+  ) {
+    return __objc_msgSend_566(
+      obj,
+      sel,
+      classDesc,
+      container,
+      property,
+    );
+  }
+
+  late final __objc_msgSend_566Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_566 = __objc_msgSend_566Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_childSpecifier1 = _registerName1("childSpecifier");
+  late final _sel_setChildSpecifier_1 = _registerName1("setChildSpecifier:");
+  late final _sel_containerSpecifier1 = _registerName1("containerSpecifier");
+  late final _sel_setContainerSpecifier_1 =
+      _registerName1("setContainerSpecifier:");
+  late final _sel_containerIsObjectBeingTested1 =
+      _registerName1("containerIsObjectBeingTested");
+  late final _sel_setContainerIsObjectBeingTested_1 =
+      _registerName1("setContainerIsObjectBeingTested:");
+  late final _sel_containerIsRangeContainerObject1 =
+      _registerName1("containerIsRangeContainerObject");
+  late final _sel_setContainerIsRangeContainerObject_1 =
+      _registerName1("setContainerIsRangeContainerObject:");
+  late final _sel_key1 = _registerName1("key");
+  late final _sel_setKey_1 = _registerName1("setKey:");
+  late final _sel_containerClassDescription1 =
+      _registerName1("containerClassDescription");
+  late final _sel_setContainerClassDescription_1 =
+      _registerName1("setContainerClassDescription:");
+  void _objc_msgSend_567(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_567(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_567Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_567 = __objc_msgSend_567Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_keyClassDescription1 = _registerName1("keyClassDescription");
+  late final _sel_indicesOfObjectsByEvaluatingWithContainer_count_1 =
+      _registerName1("indicesOfObjectsByEvaluatingWithContainer:count:");
+  ffi.Pointer<NSInteger> _objc_msgSend_568(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> container,
+    ffi.Pointer<NSInteger> count,
+  ) {
+    return __objc_msgSend_568(
+      obj,
+      sel,
+      container,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_568Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSInteger> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_568 = __objc_msgSend_568Ptr.asFunction<
+      ffi.Pointer<NSInteger> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSInteger>)>();
+
+  late final _sel_objectsByEvaluatingWithContainers_1 =
+      _registerName1("objectsByEvaluatingWithContainers:");
+  late final _sel_objectsByEvaluatingSpecifier1 =
+      _registerName1("objectsByEvaluatingSpecifier");
+  late final _sel_evaluationErrorNumber1 =
+      _registerName1("evaluationErrorNumber");
+  late final _sel_setEvaluationErrorNumber_1 =
+      _registerName1("setEvaluationErrorNumber:");
+  late final _sel_evaluationErrorSpecifier1 =
+      _registerName1("evaluationErrorSpecifier");
+  late final _sel_descriptor1 = _registerName1("descriptor");
+  late final _sel_scriptingValueForSpecifier_1 =
+      _registerName1("scriptingValueForSpecifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_569(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objectSpecifier,
+  ) {
+    return __objc_msgSend_569(
+      obj,
+      sel,
+      objectSpecifier,
+    );
+  }
+
+  late final __objc_msgSend_569Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_569 = __objc_msgSend_569Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_scriptingProperties1 = _registerName1("scriptingProperties");
+  late final _sel_setScriptingProperties_1 =
+      _registerName1("setScriptingProperties:");
+  late final _sel_copyScriptingValue_forKey_withProperties_1 =
+      _registerName1("copyScriptingValue:forKey:withProperties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_570(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_570(
+      obj,
+      sel,
+      value,
+      key,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_570Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_570 = __objc_msgSend_570Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_1 =
+      _registerName1(
+          "newScriptingObjectOfClass:forValueForKey:withContentsValue:properties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_571(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objectClass,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> contentsValue,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_571(
+      obj,
+      sel,
+      objectClass,
+      key,
+      contentsValue,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_571Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_571 = __objc_msgSend_571Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classCode1 = _registerName1("classCode");
+  late final _sel_valueAtIndex_inPropertyWithKey_1 =
+      _registerName1("valueAtIndex:inPropertyWithKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_572(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_572(
+      obj,
+      sel,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_572Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_572 = __objc_msgSend_572Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueWithName_inPropertyWithKey_1 =
+      _registerName1("valueWithName:inPropertyWithKey:");
+  late final _sel_valueWithUniqueID_inPropertyWithKey_1 =
+      _registerName1("valueWithUniqueID:inPropertyWithKey:");
+  late final _sel_insertValue_atIndex_inPropertyWithKey_1 =
+      _registerName1("insertValue:atIndex:inPropertyWithKey:");
+  void _objc_msgSend_573(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_573(
+      obj,
+      sel,
+      value,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_573Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_573 = __objc_msgSend_573Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeValueAtIndex_fromPropertyWithKey_1 =
+      _registerName1("removeValueAtIndex:fromPropertyWithKey:");
+  void _objc_msgSend_574(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_574(
+      obj,
+      sel,
+      index,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_574Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_574 = __objc_msgSend_574Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceValueAtIndex_inPropertyWithKey_withValue_1 =
+      _registerName1("replaceValueAtIndex:inPropertyWithKey:withValue:");
+  void _objc_msgSend_575(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_575(
+      obj,
+      sel,
+      index,
+      key,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_575Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_575 = __objc_msgSend_575Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertValue_inPropertyWithKey_1 =
+      _registerName1("insertValue:inPropertyWithKey:");
+  late final _sel_coerceValue_forKey_1 = _registerName1("coerceValue:forKey:");
+  late final _sel_objectSpecifier1 = _registerName1("objectSpecifier");
+  late final _sel_indicesOfObjectsByEvaluatingObjectSpecifier_1 =
+      _registerName1("indicesOfObjectsByEvaluatingObjectSpecifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_576(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> specifier,
+  ) {
+    return __objc_msgSend_576(
+      obj,
+      sel,
+      specifier,
+    );
+  }
+
+  late final __objc_msgSend_576Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_576 = __objc_msgSend_576Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualTo_1 = _registerName1("isEqualTo:");
+  late final _sel_isLessThanOrEqualTo_1 =
+      _registerName1("isLessThanOrEqualTo:");
+  late final _sel_isLessThan_1 = _registerName1("isLessThan:");
+  late final _sel_isGreaterThanOrEqualTo_1 =
+      _registerName1("isGreaterThanOrEqualTo:");
+  late final _sel_isGreaterThan_1 = _registerName1("isGreaterThan:");
+  late final _sel_isNotEqualTo_1 = _registerName1("isNotEqualTo:");
+  late final _sel_doesContain_1 = _registerName1("doesContain:");
+  late final _sel_isLike_1 = _registerName1("isLike:");
+  late final _sel_isCaseInsensitiveLike_1 =
+      _registerName1("isCaseInsensitiveLike:");
+  late final _sel_scriptingIsEqualTo_1 = _registerName1("scriptingIsEqualTo:");
+  late final _sel_scriptingIsLessThanOrEqualTo_1 =
+      _registerName1("scriptingIsLessThanOrEqualTo:");
+  late final _sel_scriptingIsLessThan_1 =
+      _registerName1("scriptingIsLessThan:");
+  late final _sel_scriptingIsGreaterThanOrEqualTo_1 =
+      _registerName1("scriptingIsGreaterThanOrEqualTo:");
+  late final _sel_scriptingIsGreaterThan_1 =
+      _registerName1("scriptingIsGreaterThan:");
+  late final _sel_scriptingBeginsWith_1 =
+      _registerName1("scriptingBeginsWith:");
+  late final _sel_scriptingEndsWith_1 = _registerName1("scriptingEndsWith:");
+  late final _sel_scriptingContains_1 = _registerName1("scriptingContains:");
+  late final _class_NSItemProvider1 = _getClass1("NSItemProvider");
+  late final _class_NSProgress1 = _getClass1("NSProgress");
+  late final _sel_currentProgress1 = _registerName1("currentProgress");
+  ffi.Pointer<ObjCObject> _objc_msgSend_577(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_577(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_577Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_577 = __objc_msgSend_577Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_progressWithTotalUnitCount_1 =
+      _registerName1("progressWithTotalUnitCount:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_578(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+  ) {
+    return __objc_msgSend_578(
+      obj,
+      sel,
+      unitCount,
+    );
+  }
+
+  late final __objc_msgSend_578Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_578 = __objc_msgSend_578Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_discreteProgressWithTotalUnitCount_1 =
+      _registerName1("discreteProgressWithTotalUnitCount:");
+  late final _sel_progressWithTotalUnitCount_parent_pendingUnitCount_1 =
+      _registerName1("progressWithTotalUnitCount:parent:pendingUnitCount:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_579(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+    ffi.Pointer<ObjCObject> parent,
+    int portionOfParentTotalUnitCount,
+  ) {
+    return __objc_msgSend_579(
+      obj,
+      sel,
+      unitCount,
+      parent,
+      portionOfParentTotalUnitCount,
+    );
+  }
+
+  late final __objc_msgSend_579Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int64,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_579 = __objc_msgSend_579Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_initWithParent_userInfo_1 =
+      _registerName1("initWithParent:userInfo:");
+  instancetype _objc_msgSend_580(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> parentProgressOrNil,
+  ) {
+    return __objc_msgSend_580(
+      obj,
+      sel,
+      parentProgressOrNil,
+    );
+  }
+
+  late final __objc_msgSend_580Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_580 = __objc_msgSend_580Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_becomeCurrentWithPendingUnitCount_1 =
+      _registerName1("becomeCurrentWithPendingUnitCount:");
+  void _objc_msgSend_581(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+  ) {
+    return __objc_msgSend_581(
+      obj,
+      sel,
+      unitCount,
+    );
+  }
+
+  late final __objc_msgSend_581Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_581 = __objc_msgSend_581Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_performAsCurrentWithPendingUnitCount_usingBlock_1 =
+      _registerName1("performAsCurrentWithPendingUnitCount:usingBlock:");
+  void _objc_msgSend_582(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitCount,
+    ffi.Pointer<_ObjCBlock> work,
+  ) {
+    return __objc_msgSend_582(
+      obj,
+      sel,
+      unitCount,
+      work,
+    );
+  }
+
+  late final __objc_msgSend_582Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_582 = __objc_msgSend_582Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_resignCurrent1 = _registerName1("resignCurrent");
+  late final _sel_addChild_withPendingUnitCount_1 =
+      _registerName1("addChild:withPendingUnitCount:");
+  void _objc_msgSend_583(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+    int inUnitCount,
+  ) {
+    return __objc_msgSend_583(
+      obj,
+      sel,
+      child,
+      inUnitCount,
+    );
+  }
+
+  late final __objc_msgSend_583Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_583 = __objc_msgSend_583Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_totalUnitCount1 = _registerName1("totalUnitCount");
+  int _objc_msgSend_584(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_584(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_584Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int64 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_584 = __objc_msgSend_584Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTotalUnitCount_1 = _registerName1("setTotalUnitCount:");
+  void _objc_msgSend_585(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_585(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_585Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64)>>('objc_msgSend');
+  late final __objc_msgSend_585 = __objc_msgSend_585Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_completedUnitCount1 = _registerName1("completedUnitCount");
+  late final _sel_setCompletedUnitCount_1 =
+      _registerName1("setCompletedUnitCount:");
+  late final _sel_localizedDescription1 =
+      _registerName1("localizedDescription");
+  late final _sel_setLocalizedDescription_1 =
+      _registerName1("setLocalizedDescription:");
+  late final _sel_localizedAdditionalDescription1 =
+      _registerName1("localizedAdditionalDescription");
+  late final _sel_setLocalizedAdditionalDescription_1 =
+      _registerName1("setLocalizedAdditionalDescription:");
+  late final _sel_isCancellable1 = _registerName1("isCancellable");
+  late final _sel_setCancellable_1 = _registerName1("setCancellable:");
+  late final _sel_isPausable1 = _registerName1("isPausable");
+  late final _sel_setPausable_1 = _registerName1("setPausable:");
+  late final _sel_isPaused1 = _registerName1("isPaused");
+  late final _sel_cancellationHandler1 = _registerName1("cancellationHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_586(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_586(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_586Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_586 = __objc_msgSend_586Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setCancellationHandler_1 =
+      _registerName1("setCancellationHandler:");
+  void _objc_msgSend_587(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_587(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_587Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_587 = __objc_msgSend_587Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_pausingHandler1 = _registerName1("pausingHandler");
+  late final _sel_setPausingHandler_1 = _registerName1("setPausingHandler:");
+  late final _sel_resumingHandler1 = _registerName1("resumingHandler");
+  late final _sel_setResumingHandler_1 = _registerName1("setResumingHandler:");
+  late final _sel_setUserInfoObject_forKey_1 =
+      _registerName1("setUserInfoObject:forKey:");
+  late final _sel_isIndeterminate1 = _registerName1("isIndeterminate");
+  late final _sel_fractionCompleted1 = _registerName1("fractionCompleted");
+  late final _sel_pause1 = _registerName1("pause");
+  late final _sel_resume1 = _registerName1("resume");
+  late final _sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler_1 =
+      _registerName1(
+          "registerDataRepresentationForTypeIdentifier:visibility:loadHandler:");
+  void _objc_msgSend_588(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_588(
+      obj,
+      sel,
+      typeIdentifier,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_588Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_588 = __objc_msgSend_588Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_1 =
+      _registerName1(
+          "registerFileRepresentationForTypeIdentifier:fileOptions:visibility:loadHandler:");
+  void _objc_msgSend_589(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int fileOptions,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_589(
+      obj,
+      sel,
+      typeIdentifier,
+      fileOptions,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_589Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_589 = __objc_msgSend_589Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_registeredTypeIdentifiers1 =
+      _registerName1("registeredTypeIdentifiers");
+  late final _sel_registeredTypeIdentifiersWithFileOptions_1 =
+      _registerName1("registeredTypeIdentifiersWithFileOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_590(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fileOptions,
+  ) {
+    return __objc_msgSend_590(
+      obj,
+      sel,
+      fileOptions,
+    );
+  }
+
+  late final __objc_msgSend_590Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_590 = __objc_msgSend_590Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_hasItemConformingToTypeIdentifier_1 =
+      _registerName1("hasItemConformingToTypeIdentifier:");
+  late final _sel_hasRepresentationConformingToTypeIdentifier_fileOptions_1 =
+      _registerName1(
+          "hasRepresentationConformingToTypeIdentifier:fileOptions:");
+  bool _objc_msgSend_591(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    int fileOptions,
+  ) {
+    return __objc_msgSend_591(
+      obj,
+      sel,
+      typeIdentifier,
+      fileOptions,
+    );
+  }
+
+  late final __objc_msgSend_591Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_591 = __objc_msgSend_591Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_loadDataRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadDataRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_592(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_592(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_592Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_592 = __objc_msgSend_592Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_loadFileRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadFileRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_593(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_593(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_593Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_593 = __objc_msgSend_593Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_1 =
+      _registerName1(
+          "loadInPlaceFileRepresentationForTypeIdentifier:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_594(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_594(
+      obj,
+      sel,
+      typeIdentifier,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_594Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_594 = __objc_msgSend_594Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_suggestedName1 = _registerName1("suggestedName");
+  late final _sel_setSuggestedName_1 = _registerName1("setSuggestedName:");
+  late final _sel_registerObject_visibility_1 =
+      _registerName1("registerObject:visibility:");
+  void _objc_msgSend_595(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    int visibility,
+  ) {
+    return __objc_msgSend_595(
+      obj,
+      sel,
+      object,
+      visibility,
+    );
+  }
+
+  late final __objc_msgSend_595Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_595 = __objc_msgSend_595Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_registerObjectOfClass_visibility_loadHandler_1 =
+      _registerName1("registerObjectOfClass:visibility:loadHandler:");
+  void _objc_msgSend_596(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    int visibility,
+    ffi.Pointer<_ObjCBlock> loadHandler,
+  ) {
+    return __objc_msgSend_596(
+      obj,
+      sel,
+      aClass,
+      visibility,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_596Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_596 = __objc_msgSend_596Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_canLoadObjectOfClass_1 =
+      _registerName1("canLoadObjectOfClass:");
+  late final _sel_loadObjectOfClass_completionHandler_1 =
+      _registerName1("loadObjectOfClass:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_597(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_597(
+      obj,
+      sel,
+      aClass,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_597Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_597 = __objc_msgSend_597Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithItem_typeIdentifier_1 =
+      _registerName1("initWithItem:typeIdentifier:");
+  late final _sel_registerItemForTypeIdentifier_loadHandler_1 =
+      _registerName1("registerItemForTypeIdentifier:loadHandler:");
+  void _objc_msgSend_598(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    NSItemProviderLoadHandler loadHandler,
+  ) {
+    return __objc_msgSend_598(
+      obj,
+      sel,
+      typeIdentifier,
+      loadHandler,
+    );
+  }
+
+  late final __objc_msgSend_598Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderLoadHandler)>>('objc_msgSend');
+  late final __objc_msgSend_598 = __objc_msgSend_598Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSItemProviderLoadHandler)>();
+
+  late final _sel_loadItemForTypeIdentifier_options_completionHandler_1 =
+      _registerName1("loadItemForTypeIdentifier:options:completionHandler:");
+  void _objc_msgSend_599(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> typeIdentifier,
+    ffi.Pointer<ObjCObject> options,
+    NSItemProviderCompletionHandler completionHandler,
+  ) {
+    return __objc_msgSend_599(
+      obj,
+      sel,
+      typeIdentifier,
+      options,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_599Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderCompletionHandler)>>('objc_msgSend');
+  late final __objc_msgSend_599 = __objc_msgSend_599Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          NSItemProviderCompletionHandler)>();
+
+  late final _sel_previewImageHandler1 = _registerName1("previewImageHandler");
+  NSItemProviderLoadHandler _objc_msgSend_600(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_600(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_600Ptr = _lookup<
+      ffi.NativeFunction<
+          NSItemProviderLoadHandler Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_600 = __objc_msgSend_600Ptr.asFunction<
+      NSItemProviderLoadHandler Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPreviewImageHandler_1 =
+      _registerName1("setPreviewImageHandler:");
+  void _objc_msgSend_601(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSItemProviderLoadHandler value,
+  ) {
+    return __objc_msgSend_601(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_601Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSItemProviderLoadHandler)>>('objc_msgSend');
+  late final __objc_msgSend_601 = __objc_msgSend_601Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSItemProviderLoadHandler)>();
+
+  late final _sel_loadPreviewImageWithOptions_completionHandler_1 =
+      _registerName1("loadPreviewImageWithOptions:completionHandler:");
+  void _objc_msgSend_602(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> options,
+    NSItemProviderCompletionHandler completionHandler,
+  ) {
+    return __objc_msgSend_602(
+      obj,
+      sel,
+      options,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_602Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSItemProviderCompletionHandler)>>('objc_msgSend');
+  late final __objc_msgSend_602 = __objc_msgSend_602Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSItemProviderCompletionHandler)>();
+
+  late final _class_NSMutableString1 = _getClass1("NSMutableString");
+  late final _sel_replaceCharactersInRange_withString_1 =
+      _registerName1("replaceCharactersInRange:withString:");
+  void _objc_msgSend_603(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> aString,
+  ) {
+    return __objc_msgSend_603(
+      obj,
+      sel,
+      range,
+      aString,
+    );
+  }
+
+  late final __objc_msgSend_603Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_603 = __objc_msgSend_603Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertString_atIndex_1 =
+      _registerName1("insertString:atIndex:");
+  void _objc_msgSend_604(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aString,
+    int loc,
+  ) {
+    return __objc_msgSend_604(
+      obj,
+      sel,
+      aString,
+      loc,
+    );
+  }
+
+  late final __objc_msgSend_604Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_604 = __objc_msgSend_604Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_deleteCharactersInRange_1 =
+      _registerName1("deleteCharactersInRange:");
+  late final _sel_appendString_1 = _registerName1("appendString:");
+  late final _sel_appendFormat_1 = _registerName1("appendFormat:");
+  late final _sel_setString_1 = _registerName1("setString:");
+  late final _sel_replaceOccurrencesOfString_withString_options_range_1 =
+      _registerName1("replaceOccurrencesOfString:withString:options:range:");
+  int _objc_msgSend_605(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+    int options,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_605(
+      obj,
+      sel,
+      target,
+      replacement,
+      options,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_605Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_605 = __objc_msgSend_605Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_applyTransform_reverse_range_updatedRange_1 =
+      _registerName1("applyTransform:reverse:range:updatedRange:");
+  bool _objc_msgSend_606(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSStringTransform transform,
+    bool reverse,
+    NSRange range,
+    NSRangePointer resultingRange,
+  ) {
+    return __objc_msgSend_606(
+      obj,
+      sel,
+      transform,
+      reverse,
+      range,
+      resultingRange,
+    );
+  }
+
+  late final __objc_msgSend_606Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringTransform,
+              ffi.Bool,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_606 = __objc_msgSend_606Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSStringTransform, bool, NSRange, NSRangePointer)>();
+
+  ffi.Pointer<ObjCObject> _objc_msgSend_607(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int capacity,
+  ) {
+    return __objc_msgSend_607(
+      obj,
+      sel,
+      capacity,
+    );
+  }
+
+  late final __objc_msgSend_607Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_607 = __objc_msgSend_607Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_stringWithCapacity_1 = _registerName1("stringWithCapacity:");
+  late final _class_NSNotification1 = _getClass1("NSNotification");
+  late final _sel_object1 = _registerName1("object");
+  late final _sel_initWithName_object_userInfo_1 =
+      _registerName1("initWithName:object:userInfo:");
+  instancetype _objc_msgSend_608(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSNotificationName name,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> userInfo,
+  ) {
+    return __objc_msgSend_608(
+      obj,
+      sel,
+      name,
+      object,
+      userInfo,
+    );
+  }
+
+  late final __objc_msgSend_608Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSNotificationName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_608 = __objc_msgSend_608Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSNotificationName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_notificationWithName_object_1 =
+      _registerName1("notificationWithName:object:");
+  late final _sel_notificationWithName_object_userInfo_1 =
+      _registerName1("notificationWithName:object:userInfo:");
+  late final _class_NSBundle1 = _getClass1("NSBundle");
+  late final _sel_mainBundle1 = _registerName1("mainBundle");
+  ffi.Pointer<ObjCObject> _objc_msgSend_609(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_609(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_609Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_609 = __objc_msgSend_609Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_bundleWithPath_1 = _registerName1("bundleWithPath:");
+  late final _sel_initWithPath_1 = _registerName1("initWithPath:");
+  late final _sel_bundleWithURL_1 = _registerName1("bundleWithURL:");
+  late final _sel_initWithURL_1 = _registerName1("initWithURL:");
+  late final _sel_bundleForClass_1 = _registerName1("bundleForClass:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_610(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+  ) {
+    return __objc_msgSend_610(
+      obj,
+      sel,
+      aClass,
+    );
+  }
+
+  late final __objc_msgSend_610Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_610 = __objc_msgSend_610Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_bundleWithIdentifier_1 =
+      _registerName1("bundleWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_611(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_611(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_611Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_611 = __objc_msgSend_611Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allBundles1 = _registerName1("allBundles");
+  late final _sel_allFrameworks1 = _registerName1("allFrameworks");
+  late final _sel_isLoaded1 = _registerName1("isLoaded");
+  late final _sel_unload1 = _registerName1("unload");
+  late final _sel_preflightAndReturnError_1 =
+      _registerName1("preflightAndReturnError:");
+  late final _sel_loadAndReturnError_1 = _registerName1("loadAndReturnError:");
+  late final _sel_bundleURL1 = _registerName1("bundleURL");
+  late final _sel_resourceURL1 = _registerName1("resourceURL");
+  late final _sel_executableURL1 = _registerName1("executableURL");
+  late final _sel_URLForAuxiliaryExecutable_1 =
+      _registerName1("URLForAuxiliaryExecutable:");
+  late final _sel_privateFrameworksURL1 =
+      _registerName1("privateFrameworksURL");
+  late final _sel_sharedFrameworksURL1 = _registerName1("sharedFrameworksURL");
+  late final _sel_sharedSupportURL1 = _registerName1("sharedSupportURL");
+  late final _sel_builtInPlugInsURL1 = _registerName1("builtInPlugInsURL");
+  late final _sel_appStoreReceiptURL1 = _registerName1("appStoreReceiptURL");
+  late final _sel_bundlePath1 = _registerName1("bundlePath");
+  late final _sel_resourcePath1 = _registerName1("resourcePath");
+  late final _sel_executablePath1 = _registerName1("executablePath");
+  late final _sel_pathForAuxiliaryExecutable_1 =
+      _registerName1("pathForAuxiliaryExecutable:");
+  late final _sel_privateFrameworksPath1 =
+      _registerName1("privateFrameworksPath");
+  late final _sel_sharedFrameworksPath1 =
+      _registerName1("sharedFrameworksPath");
+  late final _sel_sharedSupportPath1 = _registerName1("sharedSupportPath");
+  late final _sel_builtInPlugInsPath1 = _registerName1("builtInPlugInsPath");
+  late final _sel_URLForResource_withExtension_subdirectory_inBundleWithURL_1 =
+      _registerName1(
+          "URLForResource:withExtension:subdirectory:inBundleWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_612(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> bundleURL,
+  ) {
+    return __objc_msgSend_612(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      bundleURL,
+    );
+  }
+
+  late final __objc_msgSend_612Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_612 = __objc_msgSend_612Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_1 =
+      _registerName1(
+          "URLsForResourcesWithExtension:subdirectory:inBundleWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_613(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> bundleURL,
+  ) {
+    return __objc_msgSend_613(
+      obj,
+      sel,
+      ext,
+      subpath,
+      bundleURL,
+    );
+  }
+
+  late final __objc_msgSend_613Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_613 = __objc_msgSend_613Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_1 =
+      _registerName1("URLForResource:withExtension:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_614(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+  ) {
+    return __objc_msgSend_614(
+      obj,
+      sel,
+      name,
+      ext,
+    );
+  }
+
+  late final __objc_msgSend_614Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_614 = __objc_msgSend_614Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_subdirectory_1 =
+      _registerName1("URLForResource:withExtension:subdirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_615(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+  ) {
+    return __objc_msgSend_615(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+    );
+  }
+
+  late final __objc_msgSend_615Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_615 = __objc_msgSend_615Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLForResource_withExtension_subdirectory_localization_1 =
+      _registerName1("URLForResource:withExtension:subdirectory:localization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_616(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_616(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_616Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_616 = __objc_msgSend_616Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_1 =
+      _registerName1("URLsForResourcesWithExtension:subdirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_617(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+  ) {
+    return __objc_msgSend_617(
+      obj,
+      sel,
+      ext,
+      subpath,
+    );
+  }
+
+  late final __objc_msgSend_617Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_617 = __objc_msgSend_617Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLsForResourcesWithExtension_subdirectory_localization_1 =
+      _registerName1(
+          "URLsForResourcesWithExtension:subdirectory:localization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_618(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_618(
+      obj,
+      sel,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_618Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_618 = __objc_msgSend_618Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathForResource_ofType_inDirectory_1 =
+      _registerName1("pathForResource:ofType:inDirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_619(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> bundlePath,
+  ) {
+    return __objc_msgSend_619(
+      obj,
+      sel,
+      name,
+      ext,
+      bundlePath,
+    );
+  }
+
+  late final __objc_msgSend_619Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_619 = __objc_msgSend_619Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathsForResourcesOfType_inDirectory_1 =
+      _registerName1("pathsForResourcesOfType:inDirectory:");
+  late final _sel_pathForResource_ofType_1 =
+      _registerName1("pathForResource:ofType:");
+  late final _sel_pathForResource_ofType_inDirectory_forLocalization_1 =
+      _registerName1("pathForResource:ofType:inDirectory:forLocalization:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_620(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> ext,
+    ffi.Pointer<ObjCObject> subpath,
+    ffi.Pointer<ObjCObject> localizationName,
+  ) {
+    return __objc_msgSend_620(
+      obj,
+      sel,
+      name,
+      ext,
+      subpath,
+      localizationName,
+    );
+  }
+
+  late final __objc_msgSend_620Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_620 = __objc_msgSend_620Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathsForResourcesOfType_inDirectory_forLocalization_1 =
+      _registerName1("pathsForResourcesOfType:inDirectory:forLocalization:");
+  late final _sel_localizedStringForKey_value_table_1 =
+      _registerName1("localizedStringForKey:value:table:");
+  late final _class_NSAttributedString1 = _getClass1("NSAttributedString");
+  late final _sel_attributesAtIndex_effectiveRange_1 =
+      _registerName1("attributesAtIndex:effectiveRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_621(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int location,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_621(
+      obj,
+      sel,
+      location,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_621Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_621 = __objc_msgSend_621Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, NSRangePointer)>();
+
+  late final _sel_attribute_atIndex_effectiveRange_1 =
+      _registerName1("attribute:atIndex:effectiveRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_622(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    int location,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_622(
+      obj,
+      sel,
+      attrName,
+      location,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_622Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_622 = __objc_msgSend_622Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSAttributedStringKey, int, NSRangePointer)>();
+
+  late final _sel_attributedSubstringFromRange_1 =
+      _registerName1("attributedSubstringFromRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_623(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_623(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_623Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_623 = __objc_msgSend_623Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_attributesAtIndex_longestEffectiveRange_inRange_1 =
+      _registerName1("attributesAtIndex:longestEffectiveRange:inRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_624(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int location,
+    NSRangePointer range,
+    NSRange rangeLimit,
+  ) {
+    return __objc_msgSend_624(
+      obj,
+      sel,
+      location,
+      range,
+      rangeLimit,
+    );
+  }
+
+  late final __objc_msgSend_624Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSRangePointer,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_624 = __objc_msgSend_624Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, NSRangePointer, NSRange)>();
+
+  late final _sel_attribute_atIndex_longestEffectiveRange_inRange_1 =
+      _registerName1("attribute:atIndex:longestEffectiveRange:inRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_625(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    int location,
+    NSRangePointer range,
+    NSRange rangeLimit,
+  ) {
+    return __objc_msgSend_625(
+      obj,
+      sel,
+      attrName,
+      location,
+      range,
+      rangeLimit,
+    );
+  }
+
+  late final __objc_msgSend_625Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSUInteger,
+              NSRangePointer,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_625 = __objc_msgSend_625Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey,
+          int,
+          NSRangePointer,
+          NSRange)>();
+
+  late final _sel_isEqualToAttributedString_1 =
+      _registerName1("isEqualToAttributedString:");
+  bool _objc_msgSend_626(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_626(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_626Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_626 = __objc_msgSend_626Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithString_attributes_1 =
+      _registerName1("initWithString:attributes:");
+  late final _sel_initWithAttributedString_1 =
+      _registerName1("initWithAttributedString:");
+  instancetype _objc_msgSend_627(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrStr,
+  ) {
+    return __objc_msgSend_627(
+      obj,
+      sel,
+      attrStr,
+    );
+  }
+
+  late final __objc_msgSend_627Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_627 = __objc_msgSend_627Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_enumerateAttributesInRange_options_usingBlock_1 =
+      _registerName1("enumerateAttributesInRange:options:usingBlock:");
+  void _objc_msgSend_628(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange enumerationRange,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_628(
+      obj,
+      sel,
+      enumerationRange,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_628Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_628 = __objc_msgSend_628Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateAttribute_inRange_options_usingBlock_1 =
+      _registerName1("enumerateAttribute:inRange:options:usingBlock:");
+  void _objc_msgSend_629(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey attrName,
+    NSRange enumerationRange,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_629(
+      obj,
+      sel,
+      attrName,
+      enumerationRange,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_629Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              NSRange,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_629 = __objc_msgSend_629Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, NSRange, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSAttributedStringMarkdownParsingOptions1 =
+      _getClass1("NSAttributedStringMarkdownParsingOptions");
+  late final _sel_allowsExtendedAttributes1 =
+      _registerName1("allowsExtendedAttributes");
+  late final _sel_setAllowsExtendedAttributes_1 =
+      _registerName1("setAllowsExtendedAttributes:");
+  late final _sel_interpretedSyntax1 = _registerName1("interpretedSyntax");
+  int _objc_msgSend_630(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_630(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_630Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_630 = __objc_msgSend_630Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setInterpretedSyntax_1 =
+      _registerName1("setInterpretedSyntax:");
+  void _objc_msgSend_631(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_631(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_631Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_631 = __objc_msgSend_631Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_failurePolicy1 = _registerName1("failurePolicy");
+  int _objc_msgSend_632(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_632(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_632Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_632 = __objc_msgSend_632Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setFailurePolicy_1 = _registerName1("setFailurePolicy:");
+  void _objc_msgSend_633(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_633(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_633Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_633 = __objc_msgSend_633Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setLanguageCode_1 = _registerName1("setLanguageCode:");
+  late final _sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_1 =
+      _registerName1(
+          "initWithContentsOfMarkdownFileAtURL:options:baseURL:error:");
+  instancetype _objc_msgSend_634(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdownFile,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_634(
+      obj,
+      sel,
+      markdownFile,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_634Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_634 = __objc_msgSend_634Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithMarkdown_options_baseURL_error_1 =
+      _registerName1("initWithMarkdown:options:baseURL:error:");
+  instancetype _objc_msgSend_635(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdown,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_635(
+      obj,
+      sel,
+      markdown,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_635Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_635 = __objc_msgSend_635Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithMarkdownString_options_baseURL_error_1 =
+      _registerName1("initWithMarkdownString:options:baseURL:error:");
+  instancetype _objc_msgSend_636(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> markdownString,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> baseURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_636(
+      obj,
+      sel,
+      markdownString,
+      options,
+      baseURL,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_636Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_636 = __objc_msgSend_636Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithFormat_options_locale_1 =
+      _registerName1("initWithFormat:options:locale:");
+  instancetype _objc_msgSend_637(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_637(
+      obj,
+      sel,
+      format,
+      options,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_637Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_637 = __objc_msgSend_637Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithFormat_options_locale_arguments_1 =
+      _registerName1("initWithFormat:options:locale:arguments:");
+  instancetype _objc_msgSend_638(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+    ffi.Pointer<__va_list_tag> arguments,
+  ) {
+    return __objc_msgSend_638(
+      obj,
+      sel,
+      format,
+      options,
+      locale,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_638Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_638 = __objc_msgSend_638Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_localizedAttributedStringWithFormat_1 =
+      _registerName1("localizedAttributedStringWithFormat:");
+  late final _sel_localizedAttributedStringWithFormat_options_1 =
+      _registerName1("localizedAttributedStringWithFormat:options:");
+  instancetype _objc_msgSend_639(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    int options,
+  ) {
+    return __objc_msgSend_639(
+      obj,
+      sel,
+      format,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_639Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_639 = __objc_msgSend_639Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_attributedStringByInflectingString1 =
+      _registerName1("attributedStringByInflectingString");
+  ffi.Pointer<ObjCObject> _objc_msgSend_640(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_640(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_640Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_640 = __objc_msgSend_640Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_localizedAttributedStringForKey_value_table_1 =
+      _registerName1("localizedAttributedStringForKey:value:table:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_641(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> tableName,
+  ) {
+    return __objc_msgSend_641(
+      obj,
+      sel,
+      key,
+      value,
+      tableName,
+    );
+  }
+
+  late final __objc_msgSend_641Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_641 = __objc_msgSend_641Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_bundleIdentifier1 = _registerName1("bundleIdentifier");
+  late final _sel_infoDictionary1 = _registerName1("infoDictionary");
+  late final _sel_localizedInfoDictionary1 =
+      _registerName1("localizedInfoDictionary");
+  late final _sel_objectForInfoDictionaryKey_1 =
+      _registerName1("objectForInfoDictionaryKey:");
+  late final _sel_classNamed_1 = _registerName1("classNamed:");
+  late final _sel_principalClass1 = _registerName1("principalClass");
+  late final _sel_preferredLocalizations1 =
+      _registerName1("preferredLocalizations");
+  late final _sel_localizations1 = _registerName1("localizations");
+  late final _sel_developmentLocalization1 =
+      _registerName1("developmentLocalization");
+  late final _sel_preferredLocalizationsFromArray_1 =
+      _registerName1("preferredLocalizationsFromArray:");
+  late final _sel_preferredLocalizationsFromArray_forPreferences_1 =
+      _registerName1("preferredLocalizationsFromArray:forPreferences:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_642(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localizationsArray,
+    ffi.Pointer<ObjCObject> preferencesArray,
+  ) {
+    return __objc_msgSend_642(
+      obj,
+      sel,
+      localizationsArray,
+      preferencesArray,
+    );
+  }
+
+  late final __objc_msgSend_642Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_642 = __objc_msgSend_642Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_executableArchitectures1 =
+      _registerName1("executableArchitectures");
+  late final _sel_setPreservationPriority_forTags_1 =
+      _registerName1("setPreservationPriority:forTags:");
+  void _objc_msgSend_643(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double priority,
+    ffi.Pointer<ObjCObject> tags,
+  ) {
+    return __objc_msgSend_643(
+      obj,
+      sel,
+      priority,
+      tags,
+    );
+  }
+
+  late final __objc_msgSend_643Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_643 = __objc_msgSend_643Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_preservationPriorityForTag_1 =
+      _registerName1("preservationPriorityForTag:");
+  late final _class_NSMutableAttributedString1 =
+      _getClass1("NSMutableAttributedString");
+  late final _sel_setAttributes_range_1 =
+      _registerName1("setAttributes:range:");
+  void _objc_msgSend_644(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrs,
+    NSRange range,
+  ) {
+    return __objc_msgSend_644(
+      obj,
+      sel,
+      attrs,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_644Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_644 = __objc_msgSend_644Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_mutableString1 = _registerName1("mutableString");
+  ffi.Pointer<ObjCObject> _objc_msgSend_645(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_645(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_645Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_645 = __objc_msgSend_645Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_addAttribute_value_range_1 =
+      _registerName1("addAttribute:value:range:");
+  void _objc_msgSend_646(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey name,
+    ffi.Pointer<ObjCObject> value,
+    NSRange range,
+  ) {
+    return __objc_msgSend_646(
+      obj,
+      sel,
+      name,
+      value,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_646Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey,
+              ffi.Pointer<ObjCObject>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_646 = __objc_msgSend_646Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_addAttributes_range_1 =
+      _registerName1("addAttributes:range:");
+  late final _sel_removeAttribute_range_1 =
+      _registerName1("removeAttribute:range:");
+  void _objc_msgSend_647(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSAttributedStringKey name,
+    NSRange range,
+  ) {
+    return __objc_msgSend_647(
+      obj,
+      sel,
+      name,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_647Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSAttributedStringKey, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_647 = __objc_msgSend_647Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSAttributedStringKey, NSRange)>();
+
+  late final _sel_replaceCharactersInRange_withAttributedString_1 =
+      _registerName1("replaceCharactersInRange:withAttributedString:");
+  void _objc_msgSend_648(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> attrString,
+  ) {
+    return __objc_msgSend_648(
+      obj,
+      sel,
+      range,
+      attrString,
+    );
+  }
+
+  late final __objc_msgSend_648Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_648 = __objc_msgSend_648Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_insertAttributedString_atIndex_1 =
+      _registerName1("insertAttributedString:atIndex:");
+  void _objc_msgSend_649(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrString,
+    int loc,
+  ) {
+    return __objc_msgSend_649(
+      obj,
+      sel,
+      attrString,
+      loc,
+    );
+  }
+
+  late final __objc_msgSend_649Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_649 = __objc_msgSend_649Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_appendAttributedString_1 =
+      _registerName1("appendAttributedString:");
+  void _objc_msgSend_650(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> attrString,
+  ) {
+    return __objc_msgSend_650(
+      obj,
+      sel,
+      attrString,
+    );
+  }
+
+  late final __objc_msgSend_650Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_650 = __objc_msgSend_650Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setAttributedString_1 =
+      _registerName1("setAttributedString:");
+  late final _sel_beginEditing1 = _registerName1("beginEditing");
+  late final _sel_endEditing1 = _registerName1("endEditing");
+  late final _sel_appendLocalizedFormat_1 =
+      _registerName1("appendLocalizedFormat:");
+  late final _class_NSDateFormatter1 = _getClass1("NSDateFormatter");
+  late final _class_NSFormatter1 = _getClass1("NSFormatter");
+  late final _sel_stringForObjectValue_1 =
+      _registerName1("stringForObjectValue:");
+  late final _sel_attributedStringForObjectValue_withDefaultAttributes_1 =
+      _registerName1("attributedStringForObjectValue:withDefaultAttributes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_651(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> obj1,
+    ffi.Pointer<ObjCObject> attrs,
+  ) {
+    return __objc_msgSend_651(
+      obj,
+      sel,
+      obj1,
+      attrs,
+    );
+  }
+
+  late final __objc_msgSend_651Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_651 = __objc_msgSend_651Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_editingStringForObjectValue_1 =
+      _registerName1("editingStringForObjectValue:");
+  late final _sel_getObjectValue_forString_errorDescription_1 =
+      _registerName1("getObjectValue:forString:errorDescription:");
+  bool _objc_msgSend_652(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> obj1,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_652(
+      obj,
+      sel,
+      obj1,
+      string,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_652Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_652 = __objc_msgSend_652Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isPartialStringValid_newEditingString_errorDescription_1 =
+      _registerName1("isPartialStringValid:newEditingString:errorDescription:");
+  bool _objc_msgSend_653(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> partialString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> newString,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_653(
+      obj,
+      sel,
+      partialString,
+      newString,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_653Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_653 = __objc_msgSend_653Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_1 =
+      _registerName1(
+          "isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:");
+  bool _objc_msgSend_654(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> partialStringPtr,
+    NSRangePointer proposedSelRangePtr,
+    ffi.Pointer<ObjCObject> origString,
+    NSRange origSelRange,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_654(
+      obj,
+      sel,
+      partialStringPtr,
+      proposedSelRangePtr,
+      origString,
+      origSelRange,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_654Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSRangePointer,
+              ffi.Pointer<ObjCObject>,
+              NSRange,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_654 = __objc_msgSend_654Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          NSRangePointer,
+          ffi.Pointer<ObjCObject>,
+          NSRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_formattingContext1 = _registerName1("formattingContext");
+  int _objc_msgSend_655(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_655(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_655Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_655 = __objc_msgSend_655Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setFormattingContext_1 =
+      _registerName1("setFormattingContext:");
+  void _objc_msgSend_656(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_656(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_656Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_656 = __objc_msgSend_656Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_getObjectValue_forString_range_error_1 =
+      _registerName1("getObjectValue:forString:range:error:");
+  bool _objc_msgSend_657(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> obj1,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<NSRange> rangep,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_657(
+      obj,
+      sel,
+      obj1,
+      string,
+      rangep,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_657Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSRange>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_657 = __objc_msgSend_657Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSRange>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringFromDate_1 = _registerName1("stringFromDate:");
+  late final _sel_dateFromString_1 = _registerName1("dateFromString:");
+  late final _sel_localizedStringFromDate_dateStyle_timeStyle_1 =
+      _registerName1("localizedStringFromDate:dateStyle:timeStyle:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_658(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int dstyle,
+    int tstyle,
+  ) {
+    return __objc_msgSend_658(
+      obj,
+      sel,
+      date,
+      dstyle,
+      tstyle,
+    );
+  }
+
+  late final __objc_msgSend_658Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_658 = __objc_msgSend_658Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int)>();
+
+  late final _sel_dateFormatFromTemplate_options_locale_1 =
+      _registerName1("dateFormatFromTemplate:options:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_659(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> tmplate,
+    int opts,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_659(
+      obj,
+      sel,
+      tmplate,
+      opts,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_659Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_659 = __objc_msgSend_659Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_defaultFormatterBehavior1 =
+      _registerName1("defaultFormatterBehavior");
+  int _objc_msgSend_660(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_660(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_660Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_660 = __objc_msgSend_660Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDefaultFormatterBehavior_1 =
+      _registerName1("setDefaultFormatterBehavior:");
+  void _objc_msgSend_661(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_661(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_661Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_661 = __objc_msgSend_661Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setLocalizedDateFormatFromTemplate_1 =
+      _registerName1("setLocalizedDateFormatFromTemplate:");
+  late final _sel_dateFormat1 = _registerName1("dateFormat");
+  late final _sel_setDateFormat_1 = _registerName1("setDateFormat:");
+  late final _sel_dateStyle1 = _registerName1("dateStyle");
+  int _objc_msgSend_662(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_662(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_662Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_662 = __objc_msgSend_662Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDateStyle_1 = _registerName1("setDateStyle:");
+  void _objc_msgSend_663(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_663(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_663Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_663 = __objc_msgSend_663Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_timeStyle1 = _registerName1("timeStyle");
+  late final _sel_setTimeStyle_1 = _registerName1("setTimeStyle:");
+  late final _sel_locale1 = _registerName1("locale");
+  late final _sel_setLocale_1 = _registerName1("setLocale:");
+  void _objc_msgSend_664(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_664(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_664Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_664 = __objc_msgSend_664Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_generatesCalendarDates1 =
+      _registerName1("generatesCalendarDates");
+  late final _sel_setGeneratesCalendarDates_1 =
+      _registerName1("setGeneratesCalendarDates:");
+  late final _sel_formatterBehavior1 = _registerName1("formatterBehavior");
+  late final _sel_setFormatterBehavior_1 =
+      _registerName1("setFormatterBehavior:");
+  late final _class_NSCalendar1 = _getClass1("NSCalendar");
+  late final _sel_currentCalendar1 = _registerName1("currentCalendar");
+  ffi.Pointer<ObjCObject> _objc_msgSend_665(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_665(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_665Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_665 = __objc_msgSend_665Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_autoupdatingCurrentCalendar1 =
+      _registerName1("autoupdatingCurrentCalendar");
+  late final _sel_calendarWithIdentifier_1 =
+      _registerName1("calendarWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_666(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSCalendarIdentifier calendarIdentifierConstant,
+  ) {
+    return __objc_msgSend_666(
+      obj,
+      sel,
+      calendarIdentifierConstant,
+    );
+  }
+
+  late final __objc_msgSend_666Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSCalendarIdentifier)>>('objc_msgSend');
+  late final __objc_msgSend_666 = __objc_msgSend_666Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSCalendarIdentifier)>();
+
+  late final _sel_initWithCalendarIdentifier_1 =
+      _registerName1("initWithCalendarIdentifier:");
+  late final _sel_firstWeekday1 = _registerName1("firstWeekday");
+  late final _sel_setFirstWeekday_1 = _registerName1("setFirstWeekday:");
+  late final _sel_minimumDaysInFirstWeek1 =
+      _registerName1("minimumDaysInFirstWeek");
+  late final _sel_setMinimumDaysInFirstWeek_1 =
+      _registerName1("setMinimumDaysInFirstWeek:");
+  late final _sel_eraSymbols1 = _registerName1("eraSymbols");
+  late final _sel_longEraSymbols1 = _registerName1("longEraSymbols");
+  late final _sel_monthSymbols1 = _registerName1("monthSymbols");
+  late final _sel_shortMonthSymbols1 = _registerName1("shortMonthSymbols");
+  late final _sel_veryShortMonthSymbols1 =
+      _registerName1("veryShortMonthSymbols");
+  late final _sel_standaloneMonthSymbols1 =
+      _registerName1("standaloneMonthSymbols");
+  late final _sel_shortStandaloneMonthSymbols1 =
+      _registerName1("shortStandaloneMonthSymbols");
+  late final _sel_veryShortStandaloneMonthSymbols1 =
+      _registerName1("veryShortStandaloneMonthSymbols");
+  late final _sel_weekdaySymbols1 = _registerName1("weekdaySymbols");
+  late final _sel_shortWeekdaySymbols1 = _registerName1("shortWeekdaySymbols");
+  late final _sel_veryShortWeekdaySymbols1 =
+      _registerName1("veryShortWeekdaySymbols");
+  late final _sel_standaloneWeekdaySymbols1 =
+      _registerName1("standaloneWeekdaySymbols");
+  late final _sel_shortStandaloneWeekdaySymbols1 =
+      _registerName1("shortStandaloneWeekdaySymbols");
+  late final _sel_veryShortStandaloneWeekdaySymbols1 =
+      _registerName1("veryShortStandaloneWeekdaySymbols");
+  late final _sel_quarterSymbols1 = _registerName1("quarterSymbols");
+  late final _sel_shortQuarterSymbols1 = _registerName1("shortQuarterSymbols");
+  late final _sel_standaloneQuarterSymbols1 =
+      _registerName1("standaloneQuarterSymbols");
+  late final _sel_shortStandaloneQuarterSymbols1 =
+      _registerName1("shortStandaloneQuarterSymbols");
+  late final _sel_AMSymbol1 = _registerName1("AMSymbol");
+  late final _sel_PMSymbol1 = _registerName1("PMSymbol");
+  late final _sel_minimumRangeOfUnit_1 = _registerName1("minimumRangeOfUnit:");
+  NSRange _objc_msgSend_667(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+  ) {
+    return __objc_msgSend_667(
+      obj,
+      sel,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_667Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_667 = __objc_msgSend_667Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_maximumRangeOfUnit_1 = _registerName1("maximumRangeOfUnit:");
+  late final _sel_rangeOfUnit_inUnit_forDate_1 =
+      _registerName1("rangeOfUnit:inUnit:forDate:");
+  NSRange _objc_msgSend_668(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int smaller,
+    int larger,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_668(
+      obj,
+      sel,
+      smaller,
+      larger,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_668Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_668 = __objc_msgSend_668Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_ordinalityOfUnit_inUnit_forDate_1 =
+      _registerName1("ordinalityOfUnit:inUnit:forDate:");
+  int _objc_msgSend_669(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int smaller,
+    int larger,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_669(
+      obj,
+      sel,
+      smaller,
+      larger,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_669Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_669 = __objc_msgSend_669Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfUnit_startDate_interval_forDate_1 =
+      _registerName1("rangeOfUnit:startDate:interval:forDate:");
+  bool _objc_msgSend_670(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_670(
+      obj,
+      sel,
+      unit,
+      datep,
+      tip,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_670Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_670 = __objc_msgSend_670Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSDateComponents1 = _getClass1("NSDateComponents");
+  late final _sel_calendar1 = _registerName1("calendar");
+  late final _sel_setCalendar_1 = _registerName1("setCalendar:");
+  void _objc_msgSend_671(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_671(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_671Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_671 = __objc_msgSend_671Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_era1 = _registerName1("era");
+  late final _sel_setEra_1 = _registerName1("setEra:");
+  late final _sel_year1 = _registerName1("year");
+  late final _sel_setYear_1 = _registerName1("setYear:");
+  late final _sel_month1 = _registerName1("month");
+  late final _sel_setMonth_1 = _registerName1("setMonth:");
+  late final _sel_day1 = _registerName1("day");
+  late final _sel_setDay_1 = _registerName1("setDay:");
+  late final _sel_hour1 = _registerName1("hour");
+  late final _sel_setHour_1 = _registerName1("setHour:");
+  late final _sel_minute1 = _registerName1("minute");
+  late final _sel_setMinute_1 = _registerName1("setMinute:");
+  late final _sel_second1 = _registerName1("second");
+  late final _sel_setSecond_1 = _registerName1("setSecond:");
+  late final _sel_nanosecond1 = _registerName1("nanosecond");
+  late final _sel_setNanosecond_1 = _registerName1("setNanosecond:");
+  late final _sel_weekday1 = _registerName1("weekday");
+  late final _sel_setWeekday_1 = _registerName1("setWeekday:");
+  late final _sel_weekdayOrdinal1 = _registerName1("weekdayOrdinal");
+  late final _sel_setWeekdayOrdinal_1 = _registerName1("setWeekdayOrdinal:");
+  late final _sel_quarter1 = _registerName1("quarter");
+  late final _sel_setQuarter_1 = _registerName1("setQuarter:");
+  late final _sel_weekOfMonth1 = _registerName1("weekOfMonth");
+  late final _sel_setWeekOfMonth_1 = _registerName1("setWeekOfMonth:");
+  late final _sel_weekOfYear1 = _registerName1("weekOfYear");
+  late final _sel_setWeekOfYear_1 = _registerName1("setWeekOfYear:");
+  late final _sel_yearForWeekOfYear1 = _registerName1("yearForWeekOfYear");
+  late final _sel_setYearForWeekOfYear_1 =
+      _registerName1("setYearForWeekOfYear:");
+  late final _sel_isLeapMonth1 = _registerName1("isLeapMonth");
+  late final _sel_setLeapMonth_1 = _registerName1("setLeapMonth:");
+  late final _sel_week1 = _registerName1("week");
+  late final _sel_setWeek_1 = _registerName1("setWeek:");
+  late final _sel_setValue_forComponent_1 =
+      _registerName1("setValue:forComponent:");
+  void _objc_msgSend_672(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    int unit,
+  ) {
+    return __objc_msgSend_672(
+      obj,
+      sel,
+      value,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_672Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_672 = __objc_msgSend_672Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_valueForComponent_1 = _registerName1("valueForComponent:");
+  int _objc_msgSend_673(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+  ) {
+    return __objc_msgSend_673(
+      obj,
+      sel,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_673Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_673 = __objc_msgSend_673Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isValidDate1 = _registerName1("isValidDate");
+  late final _sel_isValidDateInCalendar_1 =
+      _registerName1("isValidDateInCalendar:");
+  bool _objc_msgSend_674(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> calendar,
+  ) {
+    return __objc_msgSend_674(
+      obj,
+      sel,
+      calendar,
+    );
+  }
+
+  late final __objc_msgSend_674Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_674 = __objc_msgSend_674Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateFromComponents_1 = _registerName1("dateFromComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_675(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> comps,
+  ) {
+    return __objc_msgSend_675(
+      obj,
+      sel,
+      comps,
+    );
+  }
+
+  late final __objc_msgSend_675Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_675 = __objc_msgSend_675Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_components_fromDate_1 =
+      _registerName1("components:fromDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_676(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_676(
+      obj,
+      sel,
+      unitFlags,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_676Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_676 = __objc_msgSend_676Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateByAddingComponents_toDate_options_1 =
+      _registerName1("dateByAddingComponents:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_677(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> comps,
+    ffi.Pointer<ObjCObject> date,
+    int opts,
+  ) {
+    return __objc_msgSend_677(
+      obj,
+      sel,
+      comps,
+      date,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_677Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_677 = __objc_msgSend_677Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_components_fromDate_toDate_options_1 =
+      _registerName1("components:fromDate:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_678(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> startingDate,
+    ffi.Pointer<ObjCObject> resultDate,
+    int opts,
+  ) {
+    return __objc_msgSend_678(
+      obj,
+      sel,
+      unitFlags,
+      startingDate,
+      resultDate,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_678Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_678 = __objc_msgSend_678Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_getEra_year_month_day_fromDate_1 =
+      _registerName1("getEra:year:month:day:fromDate:");
+  void _objc_msgSend_679(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> eraValuePointer,
+    ffi.Pointer<NSInteger> yearValuePointer,
+    ffi.Pointer<NSInteger> monthValuePointer,
+    ffi.Pointer<NSInteger> dayValuePointer,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_679(
+      obj,
+      sel,
+      eraValuePointer,
+      yearValuePointer,
+      monthValuePointer,
+      dayValuePointer,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_679Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_679 = __objc_msgSend_679Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_1 =
+      _registerName1("getEra:yearForWeekOfYear:weekOfYear:weekday:fromDate:");
+  late final _sel_getHour_minute_second_nanosecond_fromDate_1 =
+      _registerName1("getHour:minute:second:nanosecond:fromDate:");
+  late final _sel_component_fromDate_1 = _registerName1("component:fromDate:");
+  int _objc_msgSend_680(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_680(
+      obj,
+      sel,
+      unit,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_680Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_680 = __objc_msgSend_680Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_1 =
+      _registerName1(
+          "dateWithEra:year:month:day:hour:minute:second:nanosecond:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_681(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int eraValue,
+    int yearValue,
+    int monthValue,
+    int dayValue,
+    int hourValue,
+    int minuteValue,
+    int secondValue,
+    int nanosecondValue,
+  ) {
+    return __objc_msgSend_681(
+      obj,
+      sel,
+      eraValue,
+      yearValue,
+      monthValue,
+      dayValue,
+      hourValue,
+      minuteValue,
+      secondValue,
+      nanosecondValue,
+    );
+  }
+
+  late final __objc_msgSend_681Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_681 = __objc_msgSend_681Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, int, int, int, int, int)>();
+
+  late final _sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_1 =
+      _registerName1(
+          "dateWithEra:yearForWeekOfYear:weekOfYear:weekday:hour:minute:second:nanosecond:");
+  late final _sel_startOfDayForDate_1 = _registerName1("startOfDayForDate:");
+  late final _sel_componentsInTimeZone_fromDate_1 =
+      _registerName1("componentsInTimeZone:fromDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_682(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> timezone,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_682(
+      obj,
+      sel,
+      timezone,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_682Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_682 = __objc_msgSend_682Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_compareDate_toDate_toUnitGranularity_1 =
+      _registerName1("compareDate:toDate:toUnitGranularity:");
+  int _objc_msgSend_683(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+    int unit,
+  ) {
+    return __objc_msgSend_683(
+      obj,
+      sel,
+      date1,
+      date2,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_683Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_683 = __objc_msgSend_683Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_isDate_equalToDate_toUnitGranularity_1 =
+      _registerName1("isDate:equalToDate:toUnitGranularity:");
+  bool _objc_msgSend_684(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+    int unit,
+  ) {
+    return __objc_msgSend_684(
+      obj,
+      sel,
+      date1,
+      date2,
+      unit,
+    );
+  }
+
+  late final __objc_msgSend_684Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_684 = __objc_msgSend_684Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_isDate_inSameDayAsDate_1 =
+      _registerName1("isDate:inSameDayAsDate:");
+  bool _objc_msgSend_685(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date1,
+    ffi.Pointer<ObjCObject> date2,
+  ) {
+    return __objc_msgSend_685(
+      obj,
+      sel,
+      date1,
+      date2,
+    );
+  }
+
+  late final __objc_msgSend_685Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_685 = __objc_msgSend_685Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isDateInToday_1 = _registerName1("isDateInToday:");
+  late final _sel_isDateInYesterday_1 = _registerName1("isDateInYesterday:");
+  late final _sel_isDateInTomorrow_1 = _registerName1("isDateInTomorrow:");
+  late final _sel_isDateInWeekend_1 = _registerName1("isDateInWeekend:");
+  late final _sel_rangeOfWeekendStartDate_interval_containingDate_1 =
+      _registerName1("rangeOfWeekendStartDate:interval:containingDate:");
+  bool _objc_msgSend_686(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_686(
+      obj,
+      sel,
+      datep,
+      tip,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_686Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_686 = __objc_msgSend_686Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_nextWeekendStartDate_interval_options_afterDate_1 =
+      _registerName1("nextWeekendStartDate:interval:options:afterDate:");
+  bool _objc_msgSend_687(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+    ffi.Pointer<NSTimeInterval> tip,
+    int options,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_687(
+      obj,
+      sel,
+      datep,
+      tip,
+      options,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_687Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<NSTimeInterval>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_687 = __objc_msgSend_687Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<NSTimeInterval>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_components_fromDateComponents_toDateComponents_options_1 =
+      _registerName1("components:fromDateComponents:toDateComponents:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_688(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unitFlags,
+    ffi.Pointer<ObjCObject> startingDateComp,
+    ffi.Pointer<ObjCObject> resultDateComp,
+    int options,
+  ) {
+    return __objc_msgSend_688(
+      obj,
+      sel,
+      unitFlags,
+      startingDateComp,
+      resultDateComp,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_688Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_688 = __objc_msgSend_688Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_dateByAddingUnit_value_toDate_options_1 =
+      _registerName1("dateByAddingUnit:value:toDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_689(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int unit,
+    int value,
+    ffi.Pointer<ObjCObject> date,
+    int options,
+  ) {
+    return __objc_msgSend_689(
+      obj,
+      sel,
+      unit,
+      value,
+      date,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_689Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_689 = __objc_msgSend_689Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_1 =
+      _registerName1(
+          "enumerateDatesStartingAfterDate:matchingComponents:options:usingBlock:");
+  void _objc_msgSend_690(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> start,
+    ffi.Pointer<ObjCObject> comps,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_690(
+      obj,
+      sel,
+      start,
+      comps,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_690Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_690 = __objc_msgSend_690Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_nextDateAfterDate_matchingComponents_options_1 =
+      _registerName1("nextDateAfterDate:matchingComponents:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_691(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> comps,
+    int options,
+  ) {
+    return __objc_msgSend_691(
+      obj,
+      sel,
+      date,
+      comps,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_691Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_691 = __objc_msgSend_691Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_nextDateAfterDate_matchingUnit_value_options_1 =
+      _registerName1("nextDateAfterDate:matchingUnit:value:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_692(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int unit,
+    int value,
+    int options,
+  ) {
+    return __objc_msgSend_692(
+      obj,
+      sel,
+      date,
+      unit,
+      value,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_692Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSInteger,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_692 = __objc_msgSend_692Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int, int)>();
+
+  late final _sel_nextDateAfterDate_matchingHour_minute_second_options_1 =
+      _registerName1("nextDateAfterDate:matchingHour:minute:second:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_693(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    int hourValue,
+    int minuteValue,
+    int secondValue,
+    int options,
+  ) {
+    return __objc_msgSend_693(
+      obj,
+      sel,
+      date,
+      hourValue,
+      minuteValue,
+      secondValue,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_693Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_693 = __objc_msgSend_693Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, int, int, int)>();
+
+  late final _sel_dateBySettingUnit_value_ofDate_options_1 =
+      _registerName1("dateBySettingUnit:value:ofDate:options:");
+  late final _sel_dateBySettingHour_minute_second_ofDate_options_1 =
+      _registerName1("dateBySettingHour:minute:second:ofDate:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_694(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int h,
+    int m,
+    int s,
+    ffi.Pointer<ObjCObject> date,
+    int opts,
+  ) {
+    return __objc_msgSend_694(
+      obj,
+      sel,
+      h,
+      m,
+      s,
+      date,
+      opts,
+    );
+  }
+
+  late final __objc_msgSend_694Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_694 = __objc_msgSend_694Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_date_matchesComponents_1 =
+      _registerName1("date:matchesComponents:");
+  bool _objc_msgSend_695(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_695(
+      obj,
+      sel,
+      date,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_695Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_695 = __objc_msgSend_695Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isLenient1 = _registerName1("isLenient");
+  late final _sel_setLenient_1 = _registerName1("setLenient:");
+  late final _sel_twoDigitStartDate1 = _registerName1("twoDigitStartDate");
+  late final _sel_setTwoDigitStartDate_1 =
+      _registerName1("setTwoDigitStartDate:");
+  late final _sel_defaultDate1 = _registerName1("defaultDate");
+  late final _sel_setDefaultDate_1 = _registerName1("setDefaultDate:");
+  late final _sel_setEraSymbols_1 = _registerName1("setEraSymbols:");
+  void _objc_msgSend_696(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_696(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_696Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_696 = __objc_msgSend_696Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setMonthSymbols_1 = _registerName1("setMonthSymbols:");
+  late final _sel_setShortMonthSymbols_1 =
+      _registerName1("setShortMonthSymbols:");
+  late final _sel_setWeekdaySymbols_1 = _registerName1("setWeekdaySymbols:");
+  late final _sel_setShortWeekdaySymbols_1 =
+      _registerName1("setShortWeekdaySymbols:");
+  late final _sel_setAMSymbol_1 = _registerName1("setAMSymbol:");
+  late final _sel_setPMSymbol_1 = _registerName1("setPMSymbol:");
+  late final _sel_setLongEraSymbols_1 = _registerName1("setLongEraSymbols:");
+  late final _sel_setVeryShortMonthSymbols_1 =
+      _registerName1("setVeryShortMonthSymbols:");
+  late final _sel_setStandaloneMonthSymbols_1 =
+      _registerName1("setStandaloneMonthSymbols:");
+  late final _sel_setShortStandaloneMonthSymbols_1 =
+      _registerName1("setShortStandaloneMonthSymbols:");
+  late final _sel_setVeryShortStandaloneMonthSymbols_1 =
+      _registerName1("setVeryShortStandaloneMonthSymbols:");
+  late final _sel_setVeryShortWeekdaySymbols_1 =
+      _registerName1("setVeryShortWeekdaySymbols:");
+  late final _sel_setStandaloneWeekdaySymbols_1 =
+      _registerName1("setStandaloneWeekdaySymbols:");
+  late final _sel_setShortStandaloneWeekdaySymbols_1 =
+      _registerName1("setShortStandaloneWeekdaySymbols:");
+  late final _sel_setVeryShortStandaloneWeekdaySymbols_1 =
+      _registerName1("setVeryShortStandaloneWeekdaySymbols:");
+  late final _sel_setQuarterSymbols_1 = _registerName1("setQuarterSymbols:");
+  late final _sel_setShortQuarterSymbols_1 =
+      _registerName1("setShortQuarterSymbols:");
+  late final _sel_setStandaloneQuarterSymbols_1 =
+      _registerName1("setStandaloneQuarterSymbols:");
+  late final _sel_setShortStandaloneQuarterSymbols_1 =
+      _registerName1("setShortStandaloneQuarterSymbols:");
+  late final _sel_gregorianStartDate1 = _registerName1("gregorianStartDate");
+  late final _sel_setGregorianStartDate_1 =
+      _registerName1("setGregorianStartDate:");
+  late final _sel_doesRelativeDateFormatting1 =
+      _registerName1("doesRelativeDateFormatting");
+  late final _sel_setDoesRelativeDateFormatting_1 =
+      _registerName1("setDoesRelativeDateFormatting:");
+  late final _sel_initWithDateFormat_allowNaturalLanguage_1 =
+      _registerName1("initWithDateFormat:allowNaturalLanguage:");
+  late final _sel_allowsNaturalLanguage1 =
+      _registerName1("allowsNaturalLanguage");
+  late final _class_NSNumberFormatter1 = _getClass1("NSNumberFormatter");
+  late final _sel_stringFromNumber_1 = _registerName1("stringFromNumber:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_697(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> number,
+  ) {
+    return __objc_msgSend_697(
+      obj,
+      sel,
+      number,
+    );
+  }
+
+  late final __objc_msgSend_697Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_697 = __objc_msgSend_697Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_numberFromString_1 = _registerName1("numberFromString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_698(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_698(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_698Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_698 = __objc_msgSend_698Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_localizedStringFromNumber_numberStyle_1 =
+      _registerName1("localizedStringFromNumber:numberStyle:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_699(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> num,
+    int nstyle,
+  ) {
+    return __objc_msgSend_699(
+      obj,
+      sel,
+      num,
+      nstyle,
+    );
+  }
+
+  late final __objc_msgSend_699Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_699 = __objc_msgSend_699Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  int _objc_msgSend_700(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_700(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_700Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_700 = __objc_msgSend_700Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  void _objc_msgSend_701(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int behavior,
+  ) {
+    return __objc_msgSend_701(
+      obj,
+      sel,
+      behavior,
+    );
+  }
+
+  late final __objc_msgSend_701Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_701 = __objc_msgSend_701Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_numberStyle1 = _registerName1("numberStyle");
+  int _objc_msgSend_702(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_702(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_702Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_702 = __objc_msgSend_702Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setNumberStyle_1 = _registerName1("setNumberStyle:");
+  void _objc_msgSend_703(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_703(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_703Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_703 = __objc_msgSend_703Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_generatesDecimalNumbers1 =
+      _registerName1("generatesDecimalNumbers");
+  late final _sel_setGeneratesDecimalNumbers_1 =
+      _registerName1("setGeneratesDecimalNumbers:");
+  void _objc_msgSend_704(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_704(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_704Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_704 = __objc_msgSend_704Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_negativeFormat1 = _registerName1("negativeFormat");
+  late final _sel_setNegativeFormat_1 = _registerName1("setNegativeFormat:");
+  late final _sel_textAttributesForNegativeValues1 =
+      _registerName1("textAttributesForNegativeValues");
+  late final _sel_setTextAttributesForNegativeValues_1 =
+      _registerName1("setTextAttributesForNegativeValues:");
+  late final _sel_positiveFormat1 = _registerName1("positiveFormat");
+  late final _sel_setPositiveFormat_1 = _registerName1("setPositiveFormat:");
+  late final _sel_textAttributesForPositiveValues1 =
+      _registerName1("textAttributesForPositiveValues");
+  late final _sel_setTextAttributesForPositiveValues_1 =
+      _registerName1("setTextAttributesForPositiveValues:");
+  late final _sel_allowsFloats1 = _registerName1("allowsFloats");
+  late final _sel_setAllowsFloats_1 = _registerName1("setAllowsFloats:");
+  late final _sel_setDecimalSeparator_1 =
+      _registerName1("setDecimalSeparator:");
+  late final _sel_alwaysShowsDecimalSeparator1 =
+      _registerName1("alwaysShowsDecimalSeparator");
+  late final _sel_setAlwaysShowsDecimalSeparator_1 =
+      _registerName1("setAlwaysShowsDecimalSeparator:");
+  late final _sel_currencyDecimalSeparator1 =
+      _registerName1("currencyDecimalSeparator");
+  late final _sel_setCurrencyDecimalSeparator_1 =
+      _registerName1("setCurrencyDecimalSeparator:");
+  late final _sel_usesGroupingSeparator1 =
+      _registerName1("usesGroupingSeparator");
+  late final _sel_setUsesGroupingSeparator_1 =
+      _registerName1("setUsesGroupingSeparator:");
+  late final _sel_setGroupingSeparator_1 =
+      _registerName1("setGroupingSeparator:");
+  late final _sel_zeroSymbol1 = _registerName1("zeroSymbol");
+  late final _sel_setZeroSymbol_1 = _registerName1("setZeroSymbol:");
+  late final _sel_textAttributesForZero1 =
+      _registerName1("textAttributesForZero");
+  late final _sel_setTextAttributesForZero_1 =
+      _registerName1("setTextAttributesForZero:");
+  late final _sel_nilSymbol1 = _registerName1("nilSymbol");
+  late final _sel_setNilSymbol_1 = _registerName1("setNilSymbol:");
+  late final _sel_textAttributesForNil1 =
+      _registerName1("textAttributesForNil");
+  late final _sel_setTextAttributesForNil_1 =
+      _registerName1("setTextAttributesForNil:");
+  late final _sel_notANumberSymbol1 = _registerName1("notANumberSymbol");
+  late final _sel_setNotANumberSymbol_1 =
+      _registerName1("setNotANumberSymbol:");
+  late final _sel_textAttributesForNotANumber1 =
+      _registerName1("textAttributesForNotANumber");
+  late final _sel_setTextAttributesForNotANumber_1 =
+      _registerName1("setTextAttributesForNotANumber:");
+  late final _sel_positiveInfinitySymbol1 =
+      _registerName1("positiveInfinitySymbol");
+  late final _sel_setPositiveInfinitySymbol_1 =
+      _registerName1("setPositiveInfinitySymbol:");
+  late final _sel_textAttributesForPositiveInfinity1 =
+      _registerName1("textAttributesForPositiveInfinity");
+  late final _sel_setTextAttributesForPositiveInfinity_1 =
+      _registerName1("setTextAttributesForPositiveInfinity:");
+  late final _sel_negativeInfinitySymbol1 =
+      _registerName1("negativeInfinitySymbol");
+  late final _sel_setNegativeInfinitySymbol_1 =
+      _registerName1("setNegativeInfinitySymbol:");
+  late final _sel_textAttributesForNegativeInfinity1 =
+      _registerName1("textAttributesForNegativeInfinity");
+  late final _sel_setTextAttributesForNegativeInfinity_1 =
+      _registerName1("setTextAttributesForNegativeInfinity:");
+  late final _sel_positivePrefix1 = _registerName1("positivePrefix");
+  late final _sel_setPositivePrefix_1 = _registerName1("setPositivePrefix:");
+  late final _sel_positiveSuffix1 = _registerName1("positiveSuffix");
+  late final _sel_setPositiveSuffix_1 = _registerName1("setPositiveSuffix:");
+  late final _sel_negativePrefix1 = _registerName1("negativePrefix");
+  late final _sel_setNegativePrefix_1 = _registerName1("setNegativePrefix:");
+  late final _sel_negativeSuffix1 = _registerName1("negativeSuffix");
+  late final _sel_setNegativeSuffix_1 = _registerName1("setNegativeSuffix:");
+  late final _sel_setCurrencyCode_1 = _registerName1("setCurrencyCode:");
+  late final _sel_setCurrencySymbol_1 = _registerName1("setCurrencySymbol:");
+  late final _sel_internationalCurrencySymbol1 =
+      _registerName1("internationalCurrencySymbol");
+  late final _sel_setInternationalCurrencySymbol_1 =
+      _registerName1("setInternationalCurrencySymbol:");
+  late final _sel_percentSymbol1 = _registerName1("percentSymbol");
+  late final _sel_setPercentSymbol_1 = _registerName1("setPercentSymbol:");
+  late final _sel_perMillSymbol1 = _registerName1("perMillSymbol");
+  late final _sel_setPerMillSymbol_1 = _registerName1("setPerMillSymbol:");
+  late final _sel_minusSign1 = _registerName1("minusSign");
+  late final _sel_setMinusSign_1 = _registerName1("setMinusSign:");
+  late final _sel_plusSign1 = _registerName1("plusSign");
+  late final _sel_setPlusSign_1 = _registerName1("setPlusSign:");
+  late final _sel_exponentSymbol1 = _registerName1("exponentSymbol");
+  late final _sel_setExponentSymbol_1 = _registerName1("setExponentSymbol:");
+  late final _sel_groupingSize1 = _registerName1("groupingSize");
+  late final _sel_setGroupingSize_1 = _registerName1("setGroupingSize:");
+  late final _sel_secondaryGroupingSize1 =
+      _registerName1("secondaryGroupingSize");
+  late final _sel_setSecondaryGroupingSize_1 =
+      _registerName1("setSecondaryGroupingSize:");
+  late final _sel_multiplier1 = _registerName1("multiplier");
+  late final _sel_setMultiplier_1 = _registerName1("setMultiplier:");
+  void _objc_msgSend_705(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_705(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_705Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_705 = __objc_msgSend_705Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_formatWidth1 = _registerName1("formatWidth");
+  late final _sel_setFormatWidth_1 = _registerName1("setFormatWidth:");
+  late final _sel_paddingCharacter1 = _registerName1("paddingCharacter");
+  late final _sel_setPaddingCharacter_1 =
+      _registerName1("setPaddingCharacter:");
+  late final _sel_paddingPosition1 = _registerName1("paddingPosition");
+  int _objc_msgSend_706(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_706(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_706Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_706 = __objc_msgSend_706Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPaddingPosition_1 = _registerName1("setPaddingPosition:");
+  void _objc_msgSend_707(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_707(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_707Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_707 = __objc_msgSend_707Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_roundingMode1 = _registerName1("roundingMode");
+  int _objc_msgSend_708(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_708(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_708Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_708 = __objc_msgSend_708Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setRoundingMode_1 = _registerName1("setRoundingMode:");
+  void _objc_msgSend_709(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_709(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_709Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_709 = __objc_msgSend_709Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_roundingIncrement1 = _registerName1("roundingIncrement");
+  late final _sel_setRoundingIncrement_1 =
+      _registerName1("setRoundingIncrement:");
+  late final _sel_minimumIntegerDigits1 =
+      _registerName1("minimumIntegerDigits");
+  late final _sel_setMinimumIntegerDigits_1 =
+      _registerName1("setMinimumIntegerDigits:");
+  late final _sel_maximumIntegerDigits1 =
+      _registerName1("maximumIntegerDigits");
+  late final _sel_setMaximumIntegerDigits_1 =
+      _registerName1("setMaximumIntegerDigits:");
+  late final _sel_minimumFractionDigits1 =
+      _registerName1("minimumFractionDigits");
+  late final _sel_setMinimumFractionDigits_1 =
+      _registerName1("setMinimumFractionDigits:");
+  late final _sel_maximumFractionDigits1 =
+      _registerName1("maximumFractionDigits");
+  late final _sel_setMaximumFractionDigits_1 =
+      _registerName1("setMaximumFractionDigits:");
+  late final _sel_minimum1 = _registerName1("minimum");
+  late final _sel_setMinimum_1 = _registerName1("setMinimum:");
+  late final _sel_maximum1 = _registerName1("maximum");
+  late final _sel_setMaximum_1 = _registerName1("setMaximum:");
+  late final _sel_currencyGroupingSeparator1 =
+      _registerName1("currencyGroupingSeparator");
+  late final _sel_setCurrencyGroupingSeparator_1 =
+      _registerName1("setCurrencyGroupingSeparator:");
+  late final _sel_usesSignificantDigits1 =
+      _registerName1("usesSignificantDigits");
+  late final _sel_setUsesSignificantDigits_1 =
+      _registerName1("setUsesSignificantDigits:");
+  late final _sel_minimumSignificantDigits1 =
+      _registerName1("minimumSignificantDigits");
+  late final _sel_setMinimumSignificantDigits_1 =
+      _registerName1("setMinimumSignificantDigits:");
+  late final _sel_maximumSignificantDigits1 =
+      _registerName1("maximumSignificantDigits");
+  late final _sel_setMaximumSignificantDigits_1 =
+      _registerName1("setMaximumSignificantDigits:");
+  late final _sel_isPartialStringValidationEnabled1 =
+      _registerName1("isPartialStringValidationEnabled");
+  late final _sel_setPartialStringValidationEnabled_1 =
+      _registerName1("setPartialStringValidationEnabled:");
+  late final _sel_hasThousandSeparators1 =
+      _registerName1("hasThousandSeparators");
+  late final _sel_setHasThousandSeparators_1 =
+      _registerName1("setHasThousandSeparators:");
+  late final _sel_thousandSeparator1 = _registerName1("thousandSeparator");
+  late final _sel_setThousandSeparator_1 =
+      _registerName1("setThousandSeparator:");
+  late final _sel_localizesFormat1 = _registerName1("localizesFormat");
+  late final _sel_setLocalizesFormat_1 = _registerName1("setLocalizesFormat:");
+  late final _sel_format1 = _registerName1("format");
+  late final _sel_setFormat_1 = _registerName1("setFormat:");
+  late final _sel_attributedStringForZero1 =
+      _registerName1("attributedStringForZero");
+  late final _sel_setAttributedStringForZero_1 =
+      _registerName1("setAttributedStringForZero:");
+  void _objc_msgSend_710(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_710(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_710Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_710 = __objc_msgSend_710Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributedStringForNil1 =
+      _registerName1("attributedStringForNil");
+  late final _sel_setAttributedStringForNil_1 =
+      _registerName1("setAttributedStringForNil:");
+  late final _sel_attributedStringForNotANumber1 =
+      _registerName1("attributedStringForNotANumber");
+  late final _sel_setAttributedStringForNotANumber_1 =
+      _registerName1("setAttributedStringForNotANumber:");
+  late final _class_NSDecimalNumberHandler1 =
+      _getClass1("NSDecimalNumberHandler");
+  late final _sel_defaultDecimalNumberHandler1 =
+      _registerName1("defaultDecimalNumberHandler");
+  ffi.Pointer<ObjCObject> _objc_msgSend_711(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_711(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_711Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_711 = __objc_msgSend_711Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1 =
+      _registerName1(
+          "initWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:");
+  instancetype _objc_msgSend_712(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int roundingMode,
+    int scale,
+    bool exact,
+    bool overflow,
+    bool underflow,
+    bool divideByZero,
+  ) {
+    return __objc_msgSend_712(
+      obj,
+      sel,
+      roundingMode,
+      scale,
+      exact,
+      overflow,
+      underflow,
+      divideByZero,
+    );
+  }
+
+  late final __objc_msgSend_712Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Short,
+              ffi.Bool,
+              ffi.Bool,
+              ffi.Bool,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_712 = __objc_msgSend_712Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, bool, bool, bool, bool)>();
+
+  late final _sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1 =
+      _registerName1(
+          "decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:");
+  late final _sel_roundingBehavior1 = _registerName1("roundingBehavior");
+  late final _sel_setRoundingBehavior_1 =
+      _registerName1("setRoundingBehavior:");
+  void _objc_msgSend_713(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_713(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_713Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_713 = __objc_msgSend_713Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSScanner1 = _getClass1("NSScanner");
+  late final _sel_scanLocation1 = _registerName1("scanLocation");
+  late final _sel_setScanLocation_1 = _registerName1("setScanLocation:");
+  late final _sel_charactersToBeSkipped1 =
+      _registerName1("charactersToBeSkipped");
+  late final _sel_setCharactersToBeSkipped_1 =
+      _registerName1("setCharactersToBeSkipped:");
+  void _objc_msgSend_714(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_714(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_714Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_714 = __objc_msgSend_714Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_caseSensitive1 = _registerName1("caseSensitive");
+  late final _sel_setCaseSensitive_1 = _registerName1("setCaseSensitive:");
+  late final _sel_scanInt_1 = _registerName1("scanInt:");
+  bool _objc_msgSend_715(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Int> result,
+  ) {
+    return __objc_msgSend_715(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_715Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Int>)>>('objc_msgSend');
+  late final __objc_msgSend_715 = __objc_msgSend_715Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Int>)>();
+
+  late final _sel_scanInteger_1 = _registerName1("scanInteger:");
+  bool _objc_msgSend_716(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> result,
+  ) {
+    return __objc_msgSend_716(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_716Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_716 = __objc_msgSend_716Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>)>();
+
+  late final _sel_scanLongLong_1 = _registerName1("scanLongLong:");
+  bool _objc_msgSend_717(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.LongLong> result,
+  ) {
+    return __objc_msgSend_717(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_717Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.LongLong>)>>('objc_msgSend');
+  late final __objc_msgSend_717 = __objc_msgSend_717Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.LongLong>)>();
+
+  late final _sel_scanUnsignedLongLong_1 =
+      _registerName1("scanUnsignedLongLong:");
+  bool _objc_msgSend_718(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedLongLong> result,
+  ) {
+    return __objc_msgSend_718(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_718Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedLongLong>)>>('objc_msgSend');
+  late final __objc_msgSend_718 = __objc_msgSend_718Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedLongLong>)>();
+
+  late final _sel_scanFloat_1 = _registerName1("scanFloat:");
+  bool _objc_msgSend_719(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Float> result,
+  ) {
+    return __objc_msgSend_719(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_719Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Float>)>>('objc_msgSend');
+  late final __objc_msgSend_719 = __objc_msgSend_719Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Float>)>();
+
+  late final _sel_scanDouble_1 = _registerName1("scanDouble:");
+  bool _objc_msgSend_720(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Double> result,
+  ) {
+    return __objc_msgSend_720(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_720Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Double>)>>('objc_msgSend');
+  late final __objc_msgSend_720 = __objc_msgSend_720Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Double>)>();
+
+  late final _sel_scanHexInt_1 = _registerName1("scanHexInt:");
+  bool _objc_msgSend_721(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedInt> result,
+  ) {
+    return __objc_msgSend_721(
+      obj,
+      sel,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_721Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('objc_msgSend');
+  late final __objc_msgSend_721 = __objc_msgSend_721Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedInt>)>();
+
+  late final _sel_scanHexLongLong_1 = _registerName1("scanHexLongLong:");
+  late final _sel_scanHexFloat_1 = _registerName1("scanHexFloat:");
+  late final _sel_scanHexDouble_1 = _registerName1("scanHexDouble:");
+  late final _sel_scanString_intoString_1 =
+      _registerName1("scanString:intoString:");
+  bool _objc_msgSend_722(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> result,
+  ) {
+    return __objc_msgSend_722(
+      obj,
+      sel,
+      string,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_722Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_722 = __objc_msgSend_722Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_scanCharactersFromSet_intoString_1 =
+      _registerName1("scanCharactersFromSet:intoString:");
+  bool _objc_msgSend_723(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> result,
+  ) {
+    return __objc_msgSend_723(
+      obj,
+      sel,
+      set1,
+      result,
+    );
+  }
+
+  late final __objc_msgSend_723Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_723 = __objc_msgSend_723Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_scanUpToString_intoString_1 =
+      _registerName1("scanUpToString:intoString:");
+  late final _sel_scanUpToCharactersFromSet_intoString_1 =
+      _registerName1("scanUpToCharactersFromSet:intoString:");
+  late final _sel_isAtEnd1 = _registerName1("isAtEnd");
+  late final _sel_scannerWithString_1 = _registerName1("scannerWithString:");
+  late final _sel_localizedScannerWithString_1 =
+      _registerName1("localizedScannerWithString:");
+  late final _sel_scanDecimal_1 = _registerName1("scanDecimal:");
+  bool _objc_msgSend_724(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSDecimal> dcm,
+  ) {
+    return __objc_msgSend_724(
+      obj,
+      sel,
+      dcm,
+    );
+  }
+
+  late final __objc_msgSend_724Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSDecimal>)>>('objc_msgSend');
+  late final __objc_msgSend_724 = __objc_msgSend_724Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSDecimal>)>();
+
+  late final _class_NSException1 = _getClass1("NSException");
+  late final _sel_exceptionWithName_reason_userInfo_1 =
+      _registerName1("exceptionWithName:reason:userInfo:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_725(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSExceptionName name,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<ObjCObject> userInfo,
+  ) {
+    return __objc_msgSend_725(
+      obj,
+      sel,
+      name,
+      reason,
+      userInfo,
+    );
+  }
+
+  late final __objc_msgSend_725Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSExceptionName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_725 = __objc_msgSend_725Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSExceptionName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithName_reason_userInfo_1 =
+      _registerName1("initWithName:reason:userInfo:");
+  late final _sel_reason1 = _registerName1("reason");
+  late final _sel_raise1 = _registerName1("raise");
+  late final _sel_raise_format_1 = _registerName1("raise:format:");
+  late final _sel_raise_format_arguments_1 =
+      _registerName1("raise:format:arguments:");
+  void _objc_msgSend_726(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSExceptionName name,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_726(
+      obj,
+      sel,
+      name,
+      format,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_726Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSExceptionName,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_726 = __objc_msgSend_726Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSExceptionName,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _class_NSFileHandle1 = _getClass1("NSFileHandle");
+  late final _sel_availableData1 = _registerName1("availableData");
+  late final _sel_initWithFileDescriptor_closeOnDealloc_1 =
+      _registerName1("initWithFileDescriptor:closeOnDealloc:");
+  instancetype _objc_msgSend_727(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fd,
+    bool closeopt,
+  ) {
+    return __objc_msgSend_727(
+      obj,
+      sel,
+      fd,
+      closeopt,
+    );
+  }
+
+  late final __objc_msgSend_727Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_727 = __objc_msgSend_727Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, bool)>();
+
+  late final _sel_readDataToEndOfFileAndReturnError_1 =
+      _registerName1("readDataToEndOfFileAndReturnError:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_728(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_728(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_728Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_728 = __objc_msgSend_728Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_readDataUpToLength_error_1 =
+      _registerName1("readDataUpToLength:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_729(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int length,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_729(
+      obj,
+      sel,
+      length,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_729Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_729 = __objc_msgSend_729Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeData_error_1 = _registerName1("writeData:error:");
+  bool _objc_msgSend_730(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_730(
+      obj,
+      sel,
+      data,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_730Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_730 = __objc_msgSend_730Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getOffset_error_1 = _registerName1("getOffset:error:");
+  bool _objc_msgSend_731(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_731(
+      obj,
+      sel,
+      offsetInFile,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_731Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.UnsignedLongLong>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_731 = __objc_msgSend_731Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.UnsignedLongLong>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_seekToEndReturningOffset_error_1 =
+      _registerName1("seekToEndReturningOffset:error:");
+  late final _sel_seekToOffset_error_1 = _registerName1("seekToOffset:error:");
+  bool _objc_msgSend_732(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_732(
+      obj,
+      sel,
+      offset,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_732Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.UnsignedLongLong,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_732 = __objc_msgSend_732Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_truncateAtOffset_error_1 =
+      _registerName1("truncateAtOffset:error:");
+  late final _sel_synchronizeAndReturnError_1 =
+      _registerName1("synchronizeAndReturnError:");
+  late final _sel_closeAndReturnError_1 =
+      _registerName1("closeAndReturnError:");
+  late final _sel_fileHandleWithStandardInput1 =
+      _registerName1("fileHandleWithStandardInput");
+  ffi.Pointer<ObjCObject> _objc_msgSend_733(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_733(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_733Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_733 = __objc_msgSend_733Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileHandleWithStandardOutput1 =
+      _registerName1("fileHandleWithStandardOutput");
+  late final _sel_fileHandleWithStandardError1 =
+      _registerName1("fileHandleWithStandardError");
+  late final _sel_fileHandleWithNullDevice1 =
+      _registerName1("fileHandleWithNullDevice");
+  late final _sel_fileHandleForReadingAtPath_1 =
+      _registerName1("fileHandleForReadingAtPath:");
+  late final _sel_fileHandleForWritingAtPath_1 =
+      _registerName1("fileHandleForWritingAtPath:");
+  late final _sel_fileHandleForUpdatingAtPath_1 =
+      _registerName1("fileHandleForUpdatingAtPath:");
+  late final _sel_fileHandleForReadingFromURL_error_1 =
+      _registerName1("fileHandleForReadingFromURL:error:");
+  instancetype _objc_msgSend_734(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_734(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_734Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_734 = __objc_msgSend_734Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_fileHandleForWritingToURL_error_1 =
+      _registerName1("fileHandleForWritingToURL:error:");
+  late final _sel_fileHandleForUpdatingURL_error_1 =
+      _registerName1("fileHandleForUpdatingURL:error:");
+  late final _sel_readInBackgroundAndNotifyForModes_1 =
+      _registerName1("readInBackgroundAndNotifyForModes:");
+  late final _sel_readInBackgroundAndNotify1 =
+      _registerName1("readInBackgroundAndNotify");
+  late final _sel_readToEndOfFileInBackgroundAndNotifyForModes_1 =
+      _registerName1("readToEndOfFileInBackgroundAndNotifyForModes:");
+  late final _sel_readToEndOfFileInBackgroundAndNotify1 =
+      _registerName1("readToEndOfFileInBackgroundAndNotify");
+  late final _sel_acceptConnectionInBackgroundAndNotifyForModes_1 =
+      _registerName1("acceptConnectionInBackgroundAndNotifyForModes:");
+  late final _sel_acceptConnectionInBackgroundAndNotify1 =
+      _registerName1("acceptConnectionInBackgroundAndNotify");
+  late final _sel_waitForDataInBackgroundAndNotifyForModes_1 =
+      _registerName1("waitForDataInBackgroundAndNotifyForModes:");
+  late final _sel_waitForDataInBackgroundAndNotify1 =
+      _registerName1("waitForDataInBackgroundAndNotify");
+  late final _sel_readabilityHandler1 = _registerName1("readabilityHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_735(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_735(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_735Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_735 = __objc_msgSend_735Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setReadabilityHandler_1 =
+      _registerName1("setReadabilityHandler:");
+  void _objc_msgSend_736(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_736(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_736Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_736 = __objc_msgSend_736Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_writeabilityHandler1 = _registerName1("writeabilityHandler");
+  late final _sel_setWriteabilityHandler_1 =
+      _registerName1("setWriteabilityHandler:");
+  late final _sel_initWithFileDescriptor_1 =
+      _registerName1("initWithFileDescriptor:");
+  instancetype _objc_msgSend_737(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int fd,
+  ) {
+    return __objc_msgSend_737(
+      obj,
+      sel,
+      fd,
+    );
+  }
+
+  late final __objc_msgSend_737Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_737 = __objc_msgSend_737Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_fileDescriptor1 = _registerName1("fileDescriptor");
+  late final _sel_readDataToEndOfFile1 = _registerName1("readDataToEndOfFile");
+  late final _sel_readDataOfLength_1 = _registerName1("readDataOfLength:");
+  late final _sel_offsetInFile1 = _registerName1("offsetInFile");
+  late final _sel_seekToEndOfFile1 = _registerName1("seekToEndOfFile");
+  late final _sel_seekToFileOffset_1 = _registerName1("seekToFileOffset:");
+  void _objc_msgSend_738(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+  ) {
+    return __objc_msgSend_738(
+      obj,
+      sel,
+      offset,
+    );
+  }
+
+  late final __objc_msgSend_738Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.UnsignedLongLong)>>('objc_msgSend');
+  late final __objc_msgSend_738 = __objc_msgSend_738Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_truncateFileAtOffset_1 =
+      _registerName1("truncateFileAtOffset:");
+  late final _sel_synchronizeFile1 = _registerName1("synchronizeFile");
+  late final _sel_closeFile1 = _registerName1("closeFile");
+  late final _class_NSHTTPCookieStorage1 = _getClass1("NSHTTPCookieStorage");
+  late final _sel_sharedHTTPCookieStorage1 =
+      _registerName1("sharedHTTPCookieStorage");
+  ffi.Pointer<ObjCObject> _objc_msgSend_739(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_739(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_739Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_739 = __objc_msgSend_739Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sharedCookieStorageForGroupContainerIdentifier_1 =
+      _registerName1("sharedCookieStorageForGroupContainerIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_740(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_740(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_740Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_740 = __objc_msgSend_740Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cookies1 = _registerName1("cookies");
+  late final _class_NSHTTPCookie1 = _getClass1("NSHTTPCookie");
+  late final _sel_initWithProperties_1 = _registerName1("initWithProperties:");
+  late final _sel_cookieWithProperties_1 =
+      _registerName1("cookieWithProperties:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_741(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> properties,
+  ) {
+    return __objc_msgSend_741(
+      obj,
+      sel,
+      properties,
+    );
+  }
+
+  late final __objc_msgSend_741Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_741 = __objc_msgSend_741Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_requestHeaderFieldsWithCookies_1 =
+      _registerName1("requestHeaderFieldsWithCookies:");
+  late final _sel_cookiesWithResponseHeaderFields_forURL_1 =
+      _registerName1("cookiesWithResponseHeaderFields:forURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_742(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> headerFields,
+    ffi.Pointer<ObjCObject> URL,
+  ) {
+    return __objc_msgSend_742(
+      obj,
+      sel,
+      headerFields,
+      URL,
+    );
+  }
+
+  late final __objc_msgSend_742Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_742 = __objc_msgSend_742Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_properties1 = _registerName1("properties");
+  late final _sel_value1 = _registerName1("value");
+  late final _sel_expiresDate1 = _registerName1("expiresDate");
+  late final _sel_isSessionOnly1 = _registerName1("isSessionOnly");
+  late final _sel_isSecure1 = _registerName1("isSecure");
+  late final _sel_isHTTPOnly1 = _registerName1("isHTTPOnly");
+  late final _sel_comment1 = _registerName1("comment");
+  late final _sel_commentURL1 = _registerName1("commentURL");
+  late final _sel_portList1 = _registerName1("portList");
+  late final _sel_sameSitePolicy1 = _registerName1("sameSitePolicy");
+  late final _sel_setCookie_1 = _registerName1("setCookie:");
+  void _objc_msgSend_743(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookie,
+  ) {
+    return __objc_msgSend_743(
+      obj,
+      sel,
+      cookie,
+    );
+  }
+
+  late final __objc_msgSend_743Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_743 = __objc_msgSend_743Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_deleteCookie_1 = _registerName1("deleteCookie:");
+  late final _sel_removeCookiesSinceDate_1 =
+      _registerName1("removeCookiesSinceDate:");
+  late final _sel_cookiesForURL_1 = _registerName1("cookiesForURL:");
+  late final _sel_setCookies_forURL_mainDocumentURL_1 =
+      _registerName1("setCookies:forURL:mainDocumentURL:");
+  void _objc_msgSend_744(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookies,
+    ffi.Pointer<ObjCObject> URL,
+    ffi.Pointer<ObjCObject> mainDocumentURL,
+  ) {
+    return __objc_msgSend_744(
+      obj,
+      sel,
+      cookies,
+      URL,
+      mainDocumentURL,
+    );
+  }
+
+  late final __objc_msgSend_744Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_744 = __objc_msgSend_744Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cookieAcceptPolicy1 = _registerName1("cookieAcceptPolicy");
+  int _objc_msgSend_745(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_745(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_745Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_745 = __objc_msgSend_745Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setCookieAcceptPolicy_1 =
+      _registerName1("setCookieAcceptPolicy:");
+  void _objc_msgSend_746(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_746(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_746Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_746 = __objc_msgSend_746Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_sortedCookiesUsingDescriptors_1 =
+      _registerName1("sortedCookiesUsingDescriptors:");
+  late final _class_NSURLSessionTask1 = _getClass1("NSURLSessionTask");
+  late final _sel_taskIdentifier1 = _registerName1("taskIdentifier");
+  late final _class_NSURLRequest1 = _getClass1("NSURLRequest");
+  late final _sel_requestWithURL_1 = _registerName1("requestWithURL:");
+  late final _sel_supportsSecureCoding1 =
+      _registerName1("supportsSecureCoding");
+  late final _sel_requestWithURL_cachePolicy_timeoutInterval_1 =
+      _registerName1("requestWithURL:cachePolicy:timeoutInterval:");
+  instancetype _objc_msgSend_747(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> URL,
+    int cachePolicy,
+    double timeoutInterval,
+  ) {
+    return __objc_msgSend_747(
+      obj,
+      sel,
+      URL,
+      cachePolicy,
+      timeoutInterval,
+    );
+  }
+
+  late final __objc_msgSend_747Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_747 = __objc_msgSend_747Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, double)>();
+
+  late final _sel_initWithURL_cachePolicy_timeoutInterval_1 =
+      _registerName1("initWithURL:cachePolicy:timeoutInterval:");
+  late final _sel_URL1 = _registerName1("URL");
+  late final _sel_cachePolicy1 = _registerName1("cachePolicy");
+  int _objc_msgSend_748(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_748(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_748Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_748 = __objc_msgSend_748Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_timeoutInterval1 = _registerName1("timeoutInterval");
+  late final _sel_mainDocumentURL1 = _registerName1("mainDocumentURL");
+  late final _sel_networkServiceType1 = _registerName1("networkServiceType");
+  int _objc_msgSend_749(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_749(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_749Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_749 = __objc_msgSend_749Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_allowsCellularAccess1 =
+      _registerName1("allowsCellularAccess");
+  late final _sel_allowsExpensiveNetworkAccess1 =
+      _registerName1("allowsExpensiveNetworkAccess");
+  late final _sel_allowsConstrainedNetworkAccess1 =
+      _registerName1("allowsConstrainedNetworkAccess");
+  late final _sel_assumesHTTP3Capable1 = _registerName1("assumesHTTP3Capable");
+  late final _sel_attribution1 = _registerName1("attribution");
+  int _objc_msgSend_750(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_750(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_750Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_750 = __objc_msgSend_750Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_HTTPMethod1 = _registerName1("HTTPMethod");
+  late final _sel_allHTTPHeaderFields1 = _registerName1("allHTTPHeaderFields");
+  late final _sel_valueForHTTPHeaderField_1 =
+      _registerName1("valueForHTTPHeaderField:");
+  late final _sel_HTTPBody1 = _registerName1("HTTPBody");
+  late final _class_NSInputStream1 = _getClass1("NSInputStream");
+  late final _class_NSStream1 = _getClass1("NSStream");
+  late final _sel_open1 = _registerName1("open");
+  late final _sel_close1 = _registerName1("close");
+  late final _sel_streamStatus1 = _registerName1("streamStatus");
+  int _objc_msgSend_751(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_751(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_751Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_751 = __objc_msgSend_751Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_streamError1 = _registerName1("streamError");
+  late final _class_NSOutputStream1 = _getClass1("NSOutputStream");
+  late final _sel_write_maxLength_1 = _registerName1("write:maxLength:");
+  int _objc_msgSend_752(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> buffer,
+    int len,
+  ) {
+    return __objc_msgSend_752(
+      obj,
+      sel,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_752Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_752 = __objc_msgSend_752Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int)>();
+
+  late final _sel_hasSpaceAvailable1 = _registerName1("hasSpaceAvailable");
+  late final _sel_initToMemory1 = _registerName1("initToMemory");
+  late final _sel_initToBuffer_capacity_1 =
+      _registerName1("initToBuffer:capacity:");
+  instancetype _objc_msgSend_753(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> buffer,
+    int capacity,
+  ) {
+    return __objc_msgSend_753(
+      obj,
+      sel,
+      buffer,
+      capacity,
+    );
+  }
+
+  late final __objc_msgSend_753Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_753 = __objc_msgSend_753Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int)>();
+
+  late final _sel_initWithURL_append_1 = _registerName1("initWithURL:append:");
+  late final _sel_initToFileAtPath_append_1 =
+      _registerName1("initToFileAtPath:append:");
+  late final _sel_outputStreamToMemory1 =
+      _registerName1("outputStreamToMemory");
+  late final _sel_outputStreamToBuffer_capacity_1 =
+      _registerName1("outputStreamToBuffer:capacity:");
+  late final _sel_outputStreamToFileAtPath_append_1 =
+      _registerName1("outputStreamToFileAtPath:append:");
+  late final _sel_outputStreamWithURL_append_1 =
+      _registerName1("outputStreamWithURL:append:");
+  late final _sel_getStreamsToHostWithName_port_inputStream_outputStream_1 =
+      _registerName1("getStreamsToHostWithName:port:inputStream:outputStream:");
+  void _objc_msgSend_754(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> hostname,
+    int port,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_754(
+      obj,
+      sel,
+      hostname,
+      port,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_754Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_754 = __objc_msgSend_754Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _class_NSHost1 = _getClass1("NSHost");
+  late final _sel_currentHost1 = _registerName1("currentHost");
+  late final _sel_hostWithName_1 = _registerName1("hostWithName:");
+  late final _sel_hostWithAddress_1 = _registerName1("hostWithAddress:");
+  late final _sel_isEqualToHost_1 = _registerName1("isEqualToHost:");
+  bool _objc_msgSend_755(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aHost,
+  ) {
+    return __objc_msgSend_755(
+      obj,
+      sel,
+      aHost,
+    );
+  }
+
+  late final __objc_msgSend_755Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_755 = __objc_msgSend_755Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_names1 = _registerName1("names");
+  late final _sel_address1 = _registerName1("address");
+  late final _sel_addresses1 = _registerName1("addresses");
+  late final _sel_localizedName1 = _registerName1("localizedName");
+  late final _sel_setHostCacheEnabled_1 =
+      _registerName1("setHostCacheEnabled:");
+  void _objc_msgSend_756(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool flag,
+  ) {
+    return __objc_msgSend_756(
+      obj,
+      sel,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_756Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_756 = __objc_msgSend_756Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_isHostCacheEnabled1 = _registerName1("isHostCacheEnabled");
+  late final _sel_flushHostCache1 = _registerName1("flushHostCache");
+  late final _sel_getStreamsToHost_port_inputStream_outputStream_1 =
+      _registerName1("getStreamsToHost:port:inputStream:outputStream:");
+  void _objc_msgSend_757(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> host,
+    int port,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_757(
+      obj,
+      sel,
+      host,
+      port,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_757Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_757 = __objc_msgSend_757Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1 =
+      _registerName1("getBoundStreamsWithBufferSize:inputStream:outputStream:");
+  void _objc_msgSend_758(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int bufferSize,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_758(
+      obj,
+      sel,
+      bufferSize,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_758Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_758 = __objc_msgSend_758Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_read_maxLength_1 = _registerName1("read:maxLength:");
+  late final _sel_getBuffer_length_1 = _registerName1("getBuffer:length:");
+  bool _objc_msgSend_759(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ffi.Uint8>> buffer,
+    ffi.Pointer<NSUInteger> len,
+  ) {
+    return __objc_msgSend_759(
+      obj,
+      sel,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_759Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ffi.Uint8>>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_759 = __objc_msgSend_759Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ffi.Uint8>>, ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_hasBytesAvailable1 = _registerName1("hasBytesAvailable");
+  late final _sel_initWithFileAtPath_1 = _registerName1("initWithFileAtPath:");
+  late final _sel_inputStreamWithData_1 =
+      _registerName1("inputStreamWithData:");
+  late final _sel_inputStreamWithFileAtPath_1 =
+      _registerName1("inputStreamWithFileAtPath:");
+  late final _sel_inputStreamWithURL_1 = _registerName1("inputStreamWithURL:");
+  late final _sel_HTTPBodyStream1 = _registerName1("HTTPBodyStream");
+  ffi.Pointer<ObjCObject> _objc_msgSend_760(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_760(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_760Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_760 = __objc_msgSend_760Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_HTTPShouldHandleCookies1 =
+      _registerName1("HTTPShouldHandleCookies");
+  late final _sel_HTTPShouldUsePipelining1 =
+      _registerName1("HTTPShouldUsePipelining");
+  late final _sel_originalRequest1 = _registerName1("originalRequest");
+  ffi.Pointer<ObjCObject> _objc_msgSend_761(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_761(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_761Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_761 = __objc_msgSend_761Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_currentRequest1 = _registerName1("currentRequest");
+  late final _class_NSURLResponse1 = _getClass1("NSURLResponse");
+  late final _sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_1 =
+      _registerName1(
+          "initWithURL:MIMEType:expectedContentLength:textEncodingName:");
+  instancetype _objc_msgSend_762(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> URL,
+    ffi.Pointer<ObjCObject> MIMEType,
+    int length,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_762(
+      obj,
+      sel,
+      URL,
+      MIMEType,
+      length,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_762Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_762 = __objc_msgSend_762Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_MIMEType1 = _registerName1("MIMEType");
+  late final _sel_expectedContentLength1 =
+      _registerName1("expectedContentLength");
+  late final _sel_textEncodingName1 = _registerName1("textEncodingName");
+  late final _sel_suggestedFilename1 = _registerName1("suggestedFilename");
+  late final _sel_response1 = _registerName1("response");
+  ffi.Pointer<ObjCObject> _objc_msgSend_763(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_763(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_763Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_763 = __objc_msgSend_763Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_progress1 = _registerName1("progress");
+  late final _sel_earliestBeginDate1 = _registerName1("earliestBeginDate");
+  late final _sel_setEarliestBeginDate_1 =
+      _registerName1("setEarliestBeginDate:");
+  late final _sel_countOfBytesClientExpectsToSend1 =
+      _registerName1("countOfBytesClientExpectsToSend");
+  late final _sel_setCountOfBytesClientExpectsToSend_1 =
+      _registerName1("setCountOfBytesClientExpectsToSend:");
+  late final _sel_countOfBytesClientExpectsToReceive1 =
+      _registerName1("countOfBytesClientExpectsToReceive");
+  late final _sel_setCountOfBytesClientExpectsToReceive_1 =
+      _registerName1("setCountOfBytesClientExpectsToReceive:");
+  late final _sel_countOfBytesSent1 = _registerName1("countOfBytesSent");
+  late final _sel_countOfBytesReceived1 =
+      _registerName1("countOfBytesReceived");
+  late final _sel_countOfBytesExpectedToSend1 =
+      _registerName1("countOfBytesExpectedToSend");
+  late final _sel_countOfBytesExpectedToReceive1 =
+      _registerName1("countOfBytesExpectedToReceive");
+  late final _sel_taskDescription1 = _registerName1("taskDescription");
+  late final _sel_setTaskDescription_1 = _registerName1("setTaskDescription:");
+  late final _sel_state1 = _registerName1("state");
+  int _objc_msgSend_764(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_764(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_764Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_764 = __objc_msgSend_764Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_suspend1 = _registerName1("suspend");
+  late final _sel_priority1 = _registerName1("priority");
+  late final _sel_setPriority_1 = _registerName1("setPriority:");
+  void _objc_msgSend_765(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_765(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_765Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float)>>('objc_msgSend');
+  late final __objc_msgSend_765 = __objc_msgSend_765Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_prefersIncrementalDelivery1 =
+      _registerName1("prefersIncrementalDelivery");
+  late final _sel_setPrefersIncrementalDelivery_1 =
+      _registerName1("setPrefersIncrementalDelivery:");
+  late final _sel_storeCookies_forTask_1 =
+      _registerName1("storeCookies:forTask:");
+  void _objc_msgSend_766(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cookies,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_766(
+      obj,
+      sel,
+      cookies,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_766Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_766 = __objc_msgSend_766Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getCookiesForTask_completionHandler_1 =
+      _registerName1("getCookiesForTask:completionHandler:");
+  void _objc_msgSend_767(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_767(
+      obj,
+      sel,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_767Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_767 = __objc_msgSend_767Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSIndexPath1 = _getClass1("NSIndexPath");
+  late final _sel_indexPathWithIndex_1 = _registerName1("indexPathWithIndex:");
+  late final _sel_indexPathWithIndexes_length_1 =
+      _registerName1("indexPathWithIndexes:length:");
+  instancetype _objc_msgSend_768(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+    int length,
+  ) {
+    return __objc_msgSend_768(
+      obj,
+      sel,
+      indexes,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_768Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_768 = __objc_msgSend_768Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int)>();
+
+  late final _sel_initWithIndexes_length_1 =
+      _registerName1("initWithIndexes:length:");
+  late final _sel_indexPathByAddingIndex_1 =
+      _registerName1("indexPathByAddingIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_769(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_769(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_769Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_769 = __objc_msgSend_769Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_indexPathByRemovingLastIndex1 =
+      _registerName1("indexPathByRemovingLastIndex");
+  ffi.Pointer<ObjCObject> _objc_msgSend_770(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_770(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_770Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_770 = __objc_msgSend_770Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_indexAtPosition_1 = _registerName1("indexAtPosition:");
+  late final _sel_getIndexes_range_1 = _registerName1("getIndexes:range:");
+  void _objc_msgSend_771(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+    NSRange positionRange,
+  ) {
+    return __objc_msgSend_771(
+      obj,
+      sel,
+      indexes,
+      positionRange,
+    );
+  }
+
+  late final __objc_msgSend_771Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_771 = __objc_msgSend_771Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, NSRange)>();
+
+  int _objc_msgSend_772(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherObject,
+  ) {
+    return __objc_msgSend_772(
+      obj,
+      sel,
+      otherObject,
+    );
+  }
+
+  late final __objc_msgSend_772Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_772 = __objc_msgSend_772Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getIndexes_1 = _registerName1("getIndexes:");
+  void _objc_msgSend_773(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexes,
+  ) {
+    return __objc_msgSend_773(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_773Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_773 = __objc_msgSend_773Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>)>();
+
+  late final _class_NSInflectionRule1 = _getClass1("NSInflectionRule");
+  late final _sel_automaticRule1 = _registerName1("automaticRule");
+  ffi.Pointer<ObjCObject> _objc_msgSend_774(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_774(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_774Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_774 = __objc_msgSend_774Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_canInflectLanguage_1 = _registerName1("canInflectLanguage:");
+  late final _sel_canInflectPreferredLocalization1 =
+      _registerName1("canInflectPreferredLocalization");
+  late final _class_NSMorphology1 = _getClass1("NSMorphology");
+  late final _sel_grammaticalGender1 = _registerName1("grammaticalGender");
+  int _objc_msgSend_775(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_775(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_775Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_775 = __objc_msgSend_775Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setGrammaticalGender_1 =
+      _registerName1("setGrammaticalGender:");
+  void _objc_msgSend_776(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_776(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_776Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_776 = __objc_msgSend_776Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_partOfSpeech1 = _registerName1("partOfSpeech");
+  int _objc_msgSend_777(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_777(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_777Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_777 = __objc_msgSend_777Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setPartOfSpeech_1 = _registerName1("setPartOfSpeech:");
+  void _objc_msgSend_778(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_778(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_778Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_778 = __objc_msgSend_778Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_number1 = _registerName1("number");
+  int _objc_msgSend_779(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_779(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_779Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_779 = __objc_msgSend_779Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setNumber_1 = _registerName1("setNumber:");
+  void _objc_msgSend_780(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_780(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_780Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_780 = __objc_msgSend_780Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSMorphologyCustomPronoun1 =
+      _getClass1("NSMorphologyCustomPronoun");
+  late final _sel_isSupportedForLanguage_1 =
+      _registerName1("isSupportedForLanguage:");
+  late final _sel_requiredKeysForLanguage_1 =
+      _registerName1("requiredKeysForLanguage:");
+  late final _sel_subjectForm1 = _registerName1("subjectForm");
+  late final _sel_setSubjectForm_1 = _registerName1("setSubjectForm:");
+  late final _sel_objectForm1 = _registerName1("objectForm");
+  late final _sel_setObjectForm_1 = _registerName1("setObjectForm:");
+  late final _sel_possessiveForm1 = _registerName1("possessiveForm");
+  late final _sel_setPossessiveForm_1 = _registerName1("setPossessiveForm:");
+  late final _sel_possessiveAdjectiveForm1 =
+      _registerName1("possessiveAdjectiveForm");
+  late final _sel_setPossessiveAdjectiveForm_1 =
+      _registerName1("setPossessiveAdjectiveForm:");
+  late final _sel_reflexiveForm1 = _registerName1("reflexiveForm");
+  late final _sel_setReflexiveForm_1 = _registerName1("setReflexiveForm:");
+  late final _sel_customPronounForLanguage_1 =
+      _registerName1("customPronounForLanguage:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_781(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> language,
+  ) {
+    return __objc_msgSend_781(
+      obj,
+      sel,
+      language,
+    );
+  }
+
+  late final __objc_msgSend_781Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_781 = __objc_msgSend_781Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setCustomPronoun_forLanguage_error_1 =
+      _registerName1("setCustomPronoun:forLanguage:error:");
+  bool _objc_msgSend_782(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> features,
+    ffi.Pointer<ObjCObject> language,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_782(
+      obj,
+      sel,
+      features,
+      language,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_782Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_782 = __objc_msgSend_782Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isUnspecified1 = _registerName1("isUnspecified");
+  late final _sel_userMorphology1 = _registerName1("userMorphology");
+  ffi.Pointer<ObjCObject> _objc_msgSend_783(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_783(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_783Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_783 = __objc_msgSend_783Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSOperationQueue1 = _getClass1("NSOperationQueue");
+  late final _class_NSOperation1 = _getClass1("NSOperation");
+  late final _sel_isConcurrent1 = _registerName1("isConcurrent");
+  late final _sel_isAsynchronous1 = _registerName1("isAsynchronous");
+  late final _sel_isReady1 = _registerName1("isReady");
+  late final _sel_addDependency_1 = _registerName1("addDependency:");
+  void _objc_msgSend_784(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> op,
+  ) {
+    return __objc_msgSend_784(
+      obj,
+      sel,
+      op,
+    );
+  }
+
+  late final __objc_msgSend_784Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_784 = __objc_msgSend_784Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeDependency_1 = _registerName1("removeDependency:");
+  late final _sel_dependencies1 = _registerName1("dependencies");
+  late final _sel_queuePriority1 = _registerName1("queuePriority");
+  int _objc_msgSend_785(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_785(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_785Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_785 = __objc_msgSend_785Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setQueuePriority_1 = _registerName1("setQueuePriority:");
+  void _objc_msgSend_786(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_786(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_786Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_786 = __objc_msgSend_786Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_completionBlock1 = _registerName1("completionBlock");
+  late final _sel_setCompletionBlock_1 = _registerName1("setCompletionBlock:");
+  late final _sel_waitUntilFinished1 = _registerName1("waitUntilFinished");
+  late final _sel_addOperation_1 = _registerName1("addOperation:");
+  late final _sel_addOperations_waitUntilFinished_1 =
+      _registerName1("addOperations:waitUntilFinished:");
+  void _objc_msgSend_787(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> ops,
+    bool wait,
+  ) {
+    return __objc_msgSend_787(
+      obj,
+      sel,
+      ops,
+      wait,
+    );
+  }
+
+  late final __objc_msgSend_787Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_787 = __objc_msgSend_787Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_addOperationWithBlock_1 =
+      _registerName1("addOperationWithBlock:");
+  late final _sel_addBarrierBlock_1 = _registerName1("addBarrierBlock:");
+  late final _sel_maxConcurrentOperationCount1 =
+      _registerName1("maxConcurrentOperationCount");
+  late final _sel_setMaxConcurrentOperationCount_1 =
+      _registerName1("setMaxConcurrentOperationCount:");
+  late final _sel_isSuspended1 = _registerName1("isSuspended");
+  late final _sel_setSuspended_1 = _registerName1("setSuspended:");
+  late final _sel_underlyingQueue1 = _registerName1("underlyingQueue");
+  dispatch_queue_t _objc_msgSend_788(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_788(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_788Ptr = _lookup<
+      ffi.NativeFunction<
+          dispatch_queue_t Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_788 = __objc_msgSend_788Ptr.asFunction<
+      dispatch_queue_t Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setUnderlyingQueue_1 = _registerName1("setUnderlyingQueue:");
+  void _objc_msgSend_789(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    dispatch_queue_t value,
+  ) {
+    return __objc_msgSend_789(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_789Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              dispatch_queue_t)>>('objc_msgSend');
+  late final __objc_msgSend_789 = __objc_msgSend_789Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, dispatch_queue_t)>();
+
+  late final _sel_cancelAllOperations1 = _registerName1("cancelAllOperations");
+  late final _sel_waitUntilAllOperationsAreFinished1 =
+      _registerName1("waitUntilAllOperationsAreFinished");
+  late final _sel_currentQueue1 = _registerName1("currentQueue");
+  ffi.Pointer<ObjCObject> _objc_msgSend_790(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_790(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_790Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_790 = __objc_msgSend_790Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_mainQueue1 = _registerName1("mainQueue");
+  late final _sel_operations1 = _registerName1("operations");
+  late final _sel_operationCount1 = _registerName1("operationCount");
+  late final _class_NSPointerArray1 = _getClass1("NSPointerArray");
+  late final _sel_initWithOptions_1 = _registerName1("initWithOptions:");
+  instancetype _objc_msgSend_791(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_791(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_791Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_791 = __objc_msgSend_791Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSPointerFunctions1 = _getClass1("NSPointerFunctions");
+  late final _sel_pointerFunctionsWithOptions_1 =
+      _registerName1("pointerFunctionsWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_792(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_792(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_792Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_792 = __objc_msgSend_792Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_hashFunction1 = _registerName1("hashFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              NSUInteger Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_793(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_793(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_793Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_793 = __objc_msgSend_793Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setHashFunction_1 = _registerName1("setHashFunction:");
+  void _objc_msgSend_794(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSUInteger Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_794(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_794Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_794 = __objc_msgSend_794Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_isEqualFunction1 = _registerName1("isEqualFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_795(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_795(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_795Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Bool Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_795 = __objc_msgSend_795Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setIsEqualFunction_1 = _registerName1("setIsEqualFunction:");
+  void _objc_msgSend_796(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_796(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_796Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Bool Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_796 = __objc_msgSend_796Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_sizeFunction1 = _registerName1("sizeFunction");
+  ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+      _objc_msgSend_797(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_797(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_797Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_797 = __objc_msgSend_797Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSizeFunction_1 = _registerName1("setSizeFunction:");
+  void _objc_msgSend_798(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+        value,
+  ) {
+    return __objc_msgSend_798(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_798Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(
+                          ffi.Pointer<ffi.Void>)>>)>>('objc_msgSend');
+  late final __objc_msgSend_798 = __objc_msgSend_798Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>();
+
+  late final _sel_descriptionFunction1 = _registerName1("descriptionFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+      _objc_msgSend_799(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_799(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_799Ptr =
+      _lookup<
+              ffi.NativeFunction<
+                  ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Pointer<ObjCObject> Function(
+                                  ffi.Pointer<ffi.Void>)>>
+                      Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+          'objc_msgSend');
+  late final __objc_msgSend_799 = __objc_msgSend_799Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDescriptionFunction_1 =
+      _registerName1("setDescriptionFunction:");
+  void _objc_msgSend_800(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+        value,
+  ) {
+    return __objc_msgSend_800(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_800Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      ffi.Pointer<ObjCObject> Function(
+                          ffi.Pointer<ffi.Void>)>>)>>('objc_msgSend');
+  late final __objc_msgSend_800 = __objc_msgSend_800Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>)>();
+
+  late final _sel_relinquishFunction1 = _registerName1("relinquishFunction");
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      _objc_msgSend_801(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_801(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_801Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Void Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>
+                  Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_801 = __objc_msgSend_801Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setRelinquishFunction_1 =
+      _registerName1("setRelinquishFunction:");
+  void _objc_msgSend_802(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+        value,
+  ) {
+    return __objc_msgSend_802(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_802Ptr = _lookup<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject>,
+                  ffi.Pointer<ObjCSel>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          ffi.Void Function(
+                              ffi.Pointer<ffi.Void>,
+                              ffi.Pointer<
+                                  ffi.NativeFunction<
+                                      NSUInteger Function(
+                                          ffi.Pointer<ffi.Void>)>>)>>)>>(
+      'objc_msgSend');
+  late final __objc_msgSend_802 = __objc_msgSend_802Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(
+                                  ffi.Pointer<ffi.Void>)>>)>>)>();
+
+  late final _sel_acquireFunction1 = _registerName1("acquireFunction");
+  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+              ffi.Bool)>> _objc_msgSend_803(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_803(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_803Ptr =
+      _lookup<
+              ffi.NativeFunction<
+                  ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Pointer<ffi.Void> Function(
+                                  ffi.Pointer<ffi.Void>,
+                                  ffi.Pointer<
+                                      ffi.NativeFunction<
+                                          NSUInteger Function(
+                                              ffi.Pointer<ffi.Void>)>>,
+                                  ffi.Bool)>>
+                      Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>(
+          'objc_msgSend');
+  late final __objc_msgSend_803 = __objc_msgSend_803Ptr.asFunction<
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>
+          Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAcquireFunction_1 = _registerName1("setAcquireFunction:");
+  void _objc_msgSend_804(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                ffi.Pointer<ffi.Void> Function(
+                    ffi.Pointer<ffi.Void>,
+                    ffi.Pointer<
+                        ffi.NativeFunction<
+                            NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                    ffi.Bool)>>
+        value,
+  ) {
+    return __objc_msgSend_804(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_804Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      ffi.Pointer<ffi.Void> Function(
+                          ffi.Pointer<ffi.Void>,
+                          ffi.Pointer<
+                              ffi.NativeFunction<
+                                  NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                          ffi.Bool)>>)>>('objc_msgSend');
+  late final __objc_msgSend_804 = __objc_msgSend_804Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>)>();
+
+  late final _sel_usesStrongWriteBarrier1 =
+      _registerName1("usesStrongWriteBarrier");
+  late final _sel_setUsesStrongWriteBarrier_1 =
+      _registerName1("setUsesStrongWriteBarrier:");
+  late final _sel_usesWeakReadAndWriteBarriers1 =
+      _registerName1("usesWeakReadAndWriteBarriers");
+  late final _sel_setUsesWeakReadAndWriteBarriers_1 =
+      _registerName1("setUsesWeakReadAndWriteBarriers:");
+  late final _sel_initWithPointerFunctions_1 =
+      _registerName1("initWithPointerFunctions:");
+  instancetype _objc_msgSend_805(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> functions,
+  ) {
+    return __objc_msgSend_805(
+      obj,
+      sel,
+      functions,
+    );
+  }
+
+  late final __objc_msgSend_805Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_805 = __objc_msgSend_805Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pointerArrayWithOptions_1 =
+      _registerName1("pointerArrayWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_806(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_806(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_806Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_806 = __objc_msgSend_806Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_pointerArrayWithPointerFunctions_1 =
+      _registerName1("pointerArrayWithPointerFunctions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_807(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> functions,
+  ) {
+    return __objc_msgSend_807(
+      obj,
+      sel,
+      functions,
+    );
+  }
+
+  late final __objc_msgSend_807Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_807 = __objc_msgSend_807Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pointerFunctions1 = _registerName1("pointerFunctions");
+  ffi.Pointer<ObjCObject> _objc_msgSend_808(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_808(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_808Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_808 = __objc_msgSend_808Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_pointerAtIndex_1 = _registerName1("pointerAtIndex:");
+  ffi.Pointer<ffi.Void> _objc_msgSend_809(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_809(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_809Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_809 = __objc_msgSend_809Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_addPointer_1 = _registerName1("addPointer:");
+  late final _sel_removePointerAtIndex_1 =
+      _registerName1("removePointerAtIndex:");
+  late final _sel_insertPointer_atIndex_1 =
+      _registerName1("insertPointer:atIndex:");
+  late final _sel_replacePointerAtIndex_withPointer_1 =
+      _registerName1("replacePointerAtIndex:withPointer:");
+  void _objc_msgSend_810(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ffi.Void> item,
+  ) {
+    return __objc_msgSend_810(
+      obj,
+      sel,
+      index,
+      item,
+    );
+  }
+
+  late final __objc_msgSend_810Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_810 = __objc_msgSend_810Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_compact1 = _registerName1("compact");
+  late final _sel_setCount_1 = _registerName1("setCount:");
+  late final _sel_pointerArrayWithStrongObjects1 =
+      _registerName1("pointerArrayWithStrongObjects");
+  late final _sel_pointerArrayWithWeakObjects1 =
+      _registerName1("pointerArrayWithWeakObjects");
+  late final _sel_strongObjectsPointerArray1 =
+      _registerName1("strongObjectsPointerArray");
+  ffi.Pointer<ObjCObject> _objc_msgSend_811(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_811(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_811Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_811 = __objc_msgSend_811Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_weakObjectsPointerArray1 =
+      _registerName1("weakObjectsPointerArray");
+  late final _class_NSProcessInfo1 = _getClass1("NSProcessInfo");
+  late final _sel_processInfo1 = _registerName1("processInfo");
+  ffi.Pointer<ObjCObject> _objc_msgSend_812(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_812(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_812Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_812 = __objc_msgSend_812Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_environment1 = _registerName1("environment");
+  late final _sel_hostName1 = _registerName1("hostName");
+  late final _sel_processName1 = _registerName1("processName");
+  late final _sel_setProcessName_1 = _registerName1("setProcessName:");
+  late final _sel_processIdentifier1 = _registerName1("processIdentifier");
+  late final _sel_globallyUniqueString1 =
+      _registerName1("globallyUniqueString");
+  late final _sel_operatingSystem1 = _registerName1("operatingSystem");
+  late final _sel_operatingSystemName1 = _registerName1("operatingSystemName");
+  late final _sel_operatingSystemVersionString1 =
+      _registerName1("operatingSystemVersionString");
+  late final _sel_operatingSystemVersion1 =
+      _registerName1("operatingSystemVersion");
+  NSOperatingSystemVersion _objc_msgSend_813(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_813(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_813Ptr = _lookup<
+      ffi.NativeFunction<
+          NSOperatingSystemVersion Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_813 = __objc_msgSend_813Ptr.asFunction<
+      NSOperatingSystemVersion Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_processorCount1 = _registerName1("processorCount");
+  late final _sel_activeProcessorCount1 =
+      _registerName1("activeProcessorCount");
+  late final _sel_physicalMemory1 = _registerName1("physicalMemory");
+  late final _sel_isOperatingSystemAtLeastVersion_1 =
+      _registerName1("isOperatingSystemAtLeastVersion:");
+  bool _objc_msgSend_814(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSOperatingSystemVersion version,
+  ) {
+    return __objc_msgSend_814(
+      obj,
+      sel,
+      version,
+    );
+  }
+
+  late final __objc_msgSend_814Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSOperatingSystemVersion)>>('objc_msgSend');
+  late final __objc_msgSend_814 = __objc_msgSend_814Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          NSOperatingSystemVersion)>();
+
+  late final _sel_systemUptime1 = _registerName1("systemUptime");
+  late final _sel_disableSuddenTermination1 =
+      _registerName1("disableSuddenTermination");
+  late final _sel_enableSuddenTermination1 =
+      _registerName1("enableSuddenTermination");
+  late final _sel_disableAutomaticTermination_1 =
+      _registerName1("disableAutomaticTermination:");
+  late final _sel_enableAutomaticTermination_1 =
+      _registerName1("enableAutomaticTermination:");
+  late final _sel_automaticTerminationSupportEnabled1 =
+      _registerName1("automaticTerminationSupportEnabled");
+  late final _sel_setAutomaticTerminationSupportEnabled_1 =
+      _registerName1("setAutomaticTerminationSupportEnabled:");
+  late final _sel_beginActivityWithOptions_reason_1 =
+      _registerName1("beginActivityWithOptions:reason:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_815(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_815(
+      obj,
+      sel,
+      options,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_815Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_815 = __objc_msgSend_815Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_endActivity_1 = _registerName1("endActivity:");
+  late final _sel_performActivityWithOptions_reason_usingBlock_1 =
+      _registerName1("performActivityWithOptions:reason:usingBlock:");
+  void _objc_msgSend_816(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_816(
+      obj,
+      sel,
+      options,
+      reason,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_816Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_816 = __objc_msgSend_816Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_performExpiringActivityWithReason_usingBlock_1 =
+      _registerName1("performExpiringActivityWithReason:usingBlock:");
+  void _objc_msgSend_817(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> reason,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_817(
+      obj,
+      sel,
+      reason,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_817Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_817 = __objc_msgSend_817Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_userName1 = _registerName1("userName");
+  late final _sel_fullUserName1 = _registerName1("fullUserName");
+  late final _sel_thermalState1 = _registerName1("thermalState");
+  int _objc_msgSend_818(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_818(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_818Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_818 = __objc_msgSend_818Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_isLowPowerModeEnabled1 =
+      _registerName1("isLowPowerModeEnabled");
+  late final _sel_isMacCatalystApp1 = _registerName1("isMacCatalystApp");
+  late final _sel_isiOSAppOnMac1 = _registerName1("isiOSAppOnMac");
+  late final _class_NSTextCheckingResult1 = _getClass1("NSTextCheckingResult");
+  late final _sel_resultType1 = _registerName1("resultType");
+  int _objc_msgSend_819(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_819(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_819Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_819 = __objc_msgSend_819Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_range1 = _registerName1("range");
+  late final _sel_orthography1 = _registerName1("orthography");
+  ffi.Pointer<ObjCObject> _objc_msgSend_820(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_820(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_820Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_820 = __objc_msgSend_820Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_grammarDetails1 = _registerName1("grammarDetails");
+  late final _sel_duration1 = _registerName1("duration");
+  late final _sel_components1 = _registerName1("components");
+  late final _sel_replacementString1 = _registerName1("replacementString");
+  late final _sel_alternativeStrings1 = _registerName1("alternativeStrings");
+  late final _class_NSRegularExpression1 = _getClass1("NSRegularExpression");
+  late final _sel_regularExpressionWithPattern_options_error_1 =
+      _registerName1("regularExpressionWithPattern:options:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_821(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> pattern,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_821(
+      obj,
+      sel,
+      pattern,
+      options,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_821Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_821 = __objc_msgSend_821Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithPattern_options_error_1 =
+      _registerName1("initWithPattern:options:error:");
+  instancetype _objc_msgSend_822(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> pattern,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_822(
+      obj,
+      sel,
+      pattern,
+      options,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_822Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_822 = __objc_msgSend_822Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_pattern1 = _registerName1("pattern");
+  late final _sel_options1 = _registerName1("options");
+  int _objc_msgSend_823(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_823(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_823Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_823 = __objc_msgSend_823Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_numberOfCaptureGroups1 =
+      _registerName1("numberOfCaptureGroups");
+  late final _sel_escapedPatternForString_1 =
+      _registerName1("escapedPatternForString:");
+  late final _sel_enumerateMatchesInString_options_range_usingBlock_1 =
+      _registerName1("enumerateMatchesInString:options:range:usingBlock:");
+  void _objc_msgSend_824(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_824(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_824Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_824 = __objc_msgSend_824Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_matchesInString_options_range_1 =
+      _registerName1("matchesInString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_825(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_825(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_825Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_825 = __objc_msgSend_825Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_numberOfMatchesInString_options_range_1 =
+      _registerName1("numberOfMatchesInString:options:range:");
+  int _objc_msgSend_826(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_826(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_826Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_826 = __objc_msgSend_826Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_firstMatchInString_options_range_1 =
+      _registerName1("firstMatchInString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_827(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_827(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_827Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_827 = __objc_msgSend_827Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfFirstMatchInString_options_range_1 =
+      _registerName1("rangeOfFirstMatchInString:options:range:");
+  NSRange _objc_msgSend_828(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+  ) {
+    return __objc_msgSend_828(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_828Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_828 = __objc_msgSend_828Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_stringByReplacingMatchesInString_options_range_withTemplate_1 =
+      _registerName1(
+          "stringByReplacingMatchesInString:options:range:withTemplate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_829(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_829(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_829Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_829 = __objc_msgSend_829Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          NSRange,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceMatchesInString_options_range_withTemplate_1 =
+      _registerName1("replaceMatchesInString:options:range:withTemplate:");
+  int _objc_msgSend_830(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int options,
+    NSRange range,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_830(
+      obj,
+      sel,
+      string,
+      options,
+      range,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_830Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_830 = __objc_msgSend_830Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replacementStringForResult_inString_offset_template_1 =
+      _registerName1("replacementStringForResult:inString:offset:template:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_831(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> result,
+    ffi.Pointer<ObjCObject> string,
+    int offset,
+    ffi.Pointer<ObjCObject> templ,
+  ) {
+    return __objc_msgSend_831(
+      obj,
+      sel,
+      result,
+      string,
+      offset,
+      templ,
+    );
+  }
+
+  late final __objc_msgSend_831Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_831 = __objc_msgSend_831Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_escapedTemplateForString_1 =
+      _registerName1("escapedTemplateForString:");
+  late final _sel_regularExpression1 = _registerName1("regularExpression");
+  ffi.Pointer<ObjCObject> _objc_msgSend_832(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_832(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_832Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_832 = __objc_msgSend_832Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_phoneNumber1 = _registerName1("phoneNumber");
+  late final _sel_numberOfRanges1 = _registerName1("numberOfRanges");
+  late final _sel_rangeAtIndex_1 = _registerName1("rangeAtIndex:");
+  late final _sel_rangeWithName_1 = _registerName1("rangeWithName:");
+  late final _sel_resultByAdjustingRangesWithOffset_1 =
+      _registerName1("resultByAdjustingRangesWithOffset:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_833(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int offset,
+  ) {
+    return __objc_msgSend_833(
+      obj,
+      sel,
+      offset,
+    );
+  }
+
+  late final __objc_msgSend_833Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_833 = __objc_msgSend_833Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_addressComponents1 = _registerName1("addressComponents");
+  late final _sel_orthographyCheckingResultWithRange_orthography_1 =
+      _registerName1("orthographyCheckingResultWithRange:orthography:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_834(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> orthography,
+  ) {
+    return __objc_msgSend_834(
+      obj,
+      sel,
+      range,
+      orthography,
+    );
+  }
+
+  late final __objc_msgSend_834Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_834 = __objc_msgSend_834Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_spellCheckingResultWithRange_1 =
+      _registerName1("spellCheckingResultWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_835(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_835(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_835Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_835 = __objc_msgSend_835Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_grammarCheckingResultWithRange_details_1 =
+      _registerName1("grammarCheckingResultWithRange:details:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_836(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> details,
+  ) {
+    return __objc_msgSend_836(
+      obj,
+      sel,
+      range,
+      details,
+    );
+  }
+
+  late final __objc_msgSend_836Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_836 = __objc_msgSend_836Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateCheckingResultWithRange_date_1 =
+      _registerName1("dateCheckingResultWithRange:date:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_837(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_837(
+      obj,
+      sel,
+      range,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_837Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_837 = __objc_msgSend_837Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateCheckingResultWithRange_date_timeZone_duration_1 =
+      _registerName1("dateCheckingResultWithRange:date:timeZone:duration:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_838(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> date,
+    ffi.Pointer<ObjCObject> timeZone,
+    double duration,
+  ) {
+    return __objc_msgSend_838(
+      obj,
+      sel,
+      range,
+      date,
+      timeZone,
+      duration,
+    );
+  }
+
+  late final __objc_msgSend_838Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_838 = __objc_msgSend_838Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          double)>();
+
+  late final _sel_addressCheckingResultWithRange_components_1 =
+      _registerName1("addressCheckingResultWithRange:components:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_839(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_839(
+      obj,
+      sel,
+      range,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_839Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_839 = __objc_msgSend_839Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_linkCheckingResultWithRange_URL_1 =
+      _registerName1("linkCheckingResultWithRange:URL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_840(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_840(
+      obj,
+      sel,
+      range,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_840Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_840 = __objc_msgSend_840Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_quoteCheckingResultWithRange_replacementString_1 =
+      _registerName1("quoteCheckingResultWithRange:replacementString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_841(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacementString,
+  ) {
+    return __objc_msgSend_841(
+      obj,
+      sel,
+      range,
+      replacementString,
+    );
+  }
+
+  late final __objc_msgSend_841Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_841 = __objc_msgSend_841Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dashCheckingResultWithRange_replacementString_1 =
+      _registerName1("dashCheckingResultWithRange:replacementString:");
+  late final _sel_replacementCheckingResultWithRange_replacementString_1 =
+      _registerName1("replacementCheckingResultWithRange:replacementString:");
+  late final _sel_correctionCheckingResultWithRange_replacementString_1 =
+      _registerName1("correctionCheckingResultWithRange:replacementString:");
+  late final _sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_1 =
+      _registerName1(
+          "correctionCheckingResultWithRange:replacementString:alternativeStrings:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_842(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacementString,
+    ffi.Pointer<ObjCObject> alternativeStrings,
+  ) {
+    return __objc_msgSend_842(
+      obj,
+      sel,
+      range,
+      replacementString,
+      alternativeStrings,
+    );
+  }
+
+  late final __objc_msgSend_842Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_842 = __objc_msgSend_842Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_regularExpressionCheckingResultWithRanges_count_regularExpression_1 =
+      _registerName1(
+          "regularExpressionCheckingResultWithRanges:count:regularExpression:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_843(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRangePointer ranges,
+    int count,
+    ffi.Pointer<ObjCObject> regularExpression,
+  ) {
+    return __objc_msgSend_843(
+      obj,
+      sel,
+      ranges,
+      count,
+      regularExpression,
+    );
+  }
+
+  late final __objc_msgSend_843Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRangePointer,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_843 = __objc_msgSend_843Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRangePointer,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_phoneNumberCheckingResultWithRange_phoneNumber_1 =
+      _registerName1("phoneNumberCheckingResultWithRange:phoneNumber:");
+  late final _sel_transitInformationCheckingResultWithRange_components_1 =
+      _registerName1("transitInformationCheckingResultWithRange:components:");
+  late final _class_NSURLCache1 = _getClass1("NSURLCache");
+  late final _sel_sharedURLCache1 = _registerName1("sharedURLCache");
+  ffi.Pointer<ObjCObject> _objc_msgSend_844(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_844(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_844Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_844 = __objc_msgSend_844Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSharedURLCache_1 = _registerName1("setSharedURLCache:");
+  void _objc_msgSend_845(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_845(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_845Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_845 = __objc_msgSend_845Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithMemoryCapacity_diskCapacity_diskPath_1 =
+      _registerName1("initWithMemoryCapacity:diskCapacity:diskPath:");
+  instancetype _objc_msgSend_846(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int memoryCapacity,
+    int diskCapacity,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_846(
+      obj,
+      sel,
+      memoryCapacity,
+      diskCapacity,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_846Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_846 = __objc_msgSend_846Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithMemoryCapacity_diskCapacity_directoryURL_1 =
+      _registerName1("initWithMemoryCapacity:diskCapacity:directoryURL:");
+  instancetype _objc_msgSend_847(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int memoryCapacity,
+    int diskCapacity,
+    ffi.Pointer<ObjCObject> directoryURL,
+  ) {
+    return __objc_msgSend_847(
+      obj,
+      sel,
+      memoryCapacity,
+      diskCapacity,
+      directoryURL,
+    );
+  }
+
+  late final __objc_msgSend_847Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_847 = __objc_msgSend_847Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          int, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSCachedURLResponse1 = _getClass1("NSCachedURLResponse");
+  late final _sel_initWithResponse_data_1 =
+      _registerName1("initWithResponse:data:");
+  instancetype _objc_msgSend_848(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> response,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_848(
+      obj,
+      sel,
+      response,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_848Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_848 = __objc_msgSend_848Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithResponse_data_userInfo_storagePolicy_1 =
+      _registerName1("initWithResponse:data:userInfo:storagePolicy:");
+  instancetype _objc_msgSend_849(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> response,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> userInfo,
+    int storagePolicy,
+  ) {
+    return __objc_msgSend_849(
+      obj,
+      sel,
+      response,
+      data,
+      userInfo,
+      storagePolicy,
+    );
+  }
+
+  late final __objc_msgSend_849Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_849 = __objc_msgSend_849Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_storagePolicy1 = _registerName1("storagePolicy");
+  int _objc_msgSend_850(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_850(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_850Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_850 = __objc_msgSend_850Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_cachedResponseForRequest_1 =
+      _registerName1("cachedResponseForRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_851(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_851(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_851Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_851 = __objc_msgSend_851Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_storeCachedResponse_forRequest_1 =
+      _registerName1("storeCachedResponse:forRequest:");
+  void _objc_msgSend_852(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_852(
+      obj,
+      sel,
+      cachedResponse,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_852Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_852 = __objc_msgSend_852Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCachedResponseForRequest_1 =
+      _registerName1("removeCachedResponseForRequest:");
+  void _objc_msgSend_853(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_853(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_853Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_853 = __objc_msgSend_853Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeAllCachedResponses1 =
+      _registerName1("removeAllCachedResponses");
+  late final _sel_removeCachedResponsesSinceDate_1 =
+      _registerName1("removeCachedResponsesSinceDate:");
+  late final _sel_memoryCapacity1 = _registerName1("memoryCapacity");
+  late final _sel_setMemoryCapacity_1 = _registerName1("setMemoryCapacity:");
+  late final _sel_diskCapacity1 = _registerName1("diskCapacity");
+  late final _sel_setDiskCapacity_1 = _registerName1("setDiskCapacity:");
+  late final _sel_currentMemoryUsage1 = _registerName1("currentMemoryUsage");
+  late final _sel_currentDiskUsage1 = _registerName1("currentDiskUsage");
+  late final _class_NSURLSessionDataTask1 = _getClass1("NSURLSessionDataTask");
+  late final _sel_storeCachedResponse_forDataTask_1 =
+      _registerName1("storeCachedResponse:forDataTask:");
+  void _objc_msgSend_854(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> dataTask,
+  ) {
+    return __objc_msgSend_854(
+      obj,
+      sel,
+      cachedResponse,
+      dataTask,
+    );
+  }
+
+  late final __objc_msgSend_854Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_854 = __objc_msgSend_854Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getCachedResponseForDataTask_completionHandler_1 =
+      _registerName1("getCachedResponseForDataTask:completionHandler:");
+  void _objc_msgSend_855(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataTask,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_855(
+      obj,
+      sel,
+      dataTask,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_855Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_855 = __objc_msgSend_855Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_removeCachedResponseForDataTask_1 =
+      _registerName1("removeCachedResponseForDataTask:");
+  void _objc_msgSend_856(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataTask,
+  ) {
+    return __objc_msgSend_856(
+      obj,
+      sel,
+      dataTask,
+    );
+  }
+
+  late final __objc_msgSend_856Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_856 = __objc_msgSend_856Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLConnection1 = _getClass1("NSURLConnection");
+  late final _sel_initWithRequest_delegate_startImmediately_1 =
+      _registerName1("initWithRequest:delegate:startImmediately:");
+  instancetype _objc_msgSend_857(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+    bool startImmediately,
+  ) {
+    return __objc_msgSend_857(
+      obj,
+      sel,
+      request,
+      delegate,
+      startImmediately,
+    );
+  }
+
+  late final __objc_msgSend_857Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_857 = __objc_msgSend_857Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithRequest_delegate_1 =
+      _registerName1("initWithRequest:delegate:");
+  instancetype _objc_msgSend_858(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+  ) {
+    return __objc_msgSend_858(
+      obj,
+      sel,
+      request,
+      delegate,
+    );
+  }
+
+  late final __objc_msgSend_858Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_858 = __objc_msgSend_858Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_connectionWithRequest_delegate_1 =
+      _registerName1("connectionWithRequest:delegate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_859(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> delegate,
+  ) {
+    return __objc_msgSend_859(
+      obj,
+      sel,
+      request,
+      delegate,
+    );
+  }
+
+  late final __objc_msgSend_859Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_859 = __objc_msgSend_859Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_unscheduleFromRunLoop_forMode_1 =
+      _registerName1("unscheduleFromRunLoop:forMode:");
+  late final _sel_setDelegateQueue_1 = _registerName1("setDelegateQueue:");
+  void _objc_msgSend_860(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> queue,
+  ) {
+    return __objc_msgSend_860(
+      obj,
+      sel,
+      queue,
+    );
+  }
+
+  late final __objc_msgSend_860Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_860 = __objc_msgSend_860Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_canHandleRequest_1 = _registerName1("canHandleRequest:");
+  bool _objc_msgSend_861(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_861(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_861Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_861 = __objc_msgSend_861Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sendSynchronousRequest_returningResponse_error_1 =
+      _registerName1("sendSynchronousRequest:returningResponse:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_862(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> response,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_862(
+      obj,
+      sel,
+      request,
+      response,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_862Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_862 = __objc_msgSend_862Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_sendAsynchronousRequest_queue_completionHandler_1 =
+      _registerName1("sendAsynchronousRequest:queue:completionHandler:");
+  void _objc_msgSend_863(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> queue,
+    ffi.Pointer<_ObjCBlock> handler,
+  ) {
+    return __objc_msgSend_863(
+      obj,
+      sel,
+      request,
+      queue,
+      handler,
+    );
+  }
+
+  late final __objc_msgSend_863Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_863 = __objc_msgSend_863Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSURLCredential1 = _getClass1("NSURLCredential");
+  late final _sel_persistence1 = _registerName1("persistence");
+  int _objc_msgSend_864(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_864(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_864Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_864 = __objc_msgSend_864Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithUser_password_persistence_1 =
+      _registerName1("initWithUser:password:persistence:");
+  instancetype _objc_msgSend_865(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> user,
+    ffi.Pointer<ObjCObject> password,
+    int persistence,
+  ) {
+    return __objc_msgSend_865(
+      obj,
+      sel,
+      user,
+      password,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_865Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_865 = __objc_msgSend_865Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_credentialWithUser_password_persistence_1 =
+      _registerName1("credentialWithUser:password:persistence:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_866(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> user,
+    ffi.Pointer<ObjCObject> password,
+    int persistence,
+  ) {
+    return __objc_msgSend_866(
+      obj,
+      sel,
+      user,
+      password,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_866Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_866 = __objc_msgSend_866Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_hasPassword1 = _registerName1("hasPassword");
+  late final _sel_initWithIdentity_certificates_persistence_1 =
+      _registerName1("initWithIdentity:certificates:persistence:");
+  instancetype _objc_msgSend_867(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecIdentityRef identity,
+    ffi.Pointer<ObjCObject> certArray,
+    int persistence,
+  ) {
+    return __objc_msgSend_867(
+      obj,
+      sel,
+      identity,
+      certArray,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_867Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              SecIdentityRef,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_867 = __objc_msgSend_867Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          SecIdentityRef, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_credentialWithIdentity_certificates_persistence_1 =
+      _registerName1("credentialWithIdentity:certificates:persistence:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_868(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecIdentityRef identity,
+    ffi.Pointer<ObjCObject> certArray,
+    int persistence,
+  ) {
+    return __objc_msgSend_868(
+      obj,
+      sel,
+      identity,
+      certArray,
+      persistence,
+    );
+  }
+
+  late final __objc_msgSend_868Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              SecIdentityRef,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_868 = __objc_msgSend_868Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          SecIdentityRef,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_identity1 = _registerName1("identity");
+  SecIdentityRef _objc_msgSend_869(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_869(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_869Ptr = _lookup<
+      ffi.NativeFunction<
+          SecIdentityRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_869 = __objc_msgSend_869Ptr.asFunction<
+      SecIdentityRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_certificates1 = _registerName1("certificates");
+  late final _sel_initWithTrust_1 = _registerName1("initWithTrust:");
+  instancetype _objc_msgSend_870(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecTrustRef trust,
+  ) {
+    return __objc_msgSend_870(
+      obj,
+      sel,
+      trust,
+    );
+  }
+
+  late final __objc_msgSend_870Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              SecTrustRef)>>('objc_msgSend');
+  late final __objc_msgSend_870 = __objc_msgSend_870Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, SecTrustRef)>();
+
+  late final _sel_credentialForTrust_1 = _registerName1("credentialForTrust:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_871(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    SecTrustRef trust,
+  ) {
+    return __objc_msgSend_871(
+      obj,
+      sel,
+      trust,
+    );
+  }
+
+  late final __objc_msgSend_871Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, SecTrustRef)>>('objc_msgSend');
+  late final __objc_msgSend_871 = __objc_msgSend_871Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, SecTrustRef)>();
+
+  late final _class_NSURLProtectionSpace1 = _getClass1("NSURLProtectionSpace");
+  late final _sel_initWithHost_port_protocol_realm_authenticationMethod_1 =
+      _registerName1("initWithHost:port:protocol:realm:authenticationMethod:");
+  instancetype _objc_msgSend_872(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> host,
+    int port,
+    ffi.Pointer<ObjCObject> protocol,
+    ffi.Pointer<ObjCObject> realm,
+    ffi.Pointer<ObjCObject> authenticationMethod,
+  ) {
+    return __objc_msgSend_872(
+      obj,
+      sel,
+      host,
+      port,
+      protocol,
+      realm,
+      authenticationMethod,
+    );
+  }
+
+  late final __objc_msgSend_872Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_872 = __objc_msgSend_872Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithProxyHost_port_type_realm_authenticationMethod_1 =
+      _registerName1("initWithProxyHost:port:type:realm:authenticationMethod:");
+  late final _sel_realm1 = _registerName1("realm");
+  late final _sel_receivesCredentialSecurely1 =
+      _registerName1("receivesCredentialSecurely");
+  late final _sel_isProxy1 = _registerName1("isProxy");
+  late final _sel_proxyType1 = _registerName1("proxyType");
+  late final _sel_protocol1 = _registerName1("protocol");
+  late final _sel_authenticationMethod1 =
+      _registerName1("authenticationMethod");
+  late final _sel_distinguishedNames1 = _registerName1("distinguishedNames");
+  late final _sel_serverTrust1 = _registerName1("serverTrust");
+  SecTrustRef _objc_msgSend_873(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_873(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_873Ptr = _lookup<
+      ffi.NativeFunction<
+          SecTrustRef Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_873 = __objc_msgSend_873Ptr.asFunction<
+      SecTrustRef Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSURLCredentialStorage1 =
+      _getClass1("NSURLCredentialStorage");
+  late final _sel_sharedCredentialStorage1 =
+      _registerName1("sharedCredentialStorage");
+  ffi.Pointer<ObjCObject> _objc_msgSend_874(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_874(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_874Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_874 = __objc_msgSend_874Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_credentialsForProtectionSpace_1 =
+      _registerName1("credentialsForProtectionSpace:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_875(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_875(
+      obj,
+      sel,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_875Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_875 = __objc_msgSend_875Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allCredentials1 = _registerName1("allCredentials");
+  late final _sel_setCredential_forProtectionSpace_1 =
+      _registerName1("setCredential:forProtectionSpace:");
+  void _objc_msgSend_876(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_876(
+      obj,
+      sel,
+      credential,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_876Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_876 = __objc_msgSend_876Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCredential_forProtectionSpace_1 =
+      _registerName1("removeCredential:forProtectionSpace:");
+  late final _sel_removeCredential_forProtectionSpace_options_1 =
+      _registerName1("removeCredential:forProtectionSpace:options:");
+  void _objc_msgSend_877(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> space,
+    ffi.Pointer<ObjCObject> options,
+  ) {
+    return __objc_msgSend_877(
+      obj,
+      sel,
+      credential,
+      space,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_877Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_877 = __objc_msgSend_877Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_defaultCredentialForProtectionSpace_1 =
+      _registerName1("defaultCredentialForProtectionSpace:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_878(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+  ) {
+    return __objc_msgSend_878(
+      obj,
+      sel,
+      space,
+    );
+  }
+
+  late final __objc_msgSend_878Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_878 = __objc_msgSend_878Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setDefaultCredential_forProtectionSpace_1 =
+      _registerName1("setDefaultCredential:forProtectionSpace:");
+  late final _sel_getCredentialsForProtectionSpace_task_completionHandler_1 =
+      _registerName1(
+          "getCredentialsForProtectionSpace:task:completionHandler:");
+  void _objc_msgSend_879(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_879(
+      obj,
+      sel,
+      protectionSpace,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_879Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_879 = __objc_msgSend_879Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_setCredential_forProtectionSpace_task_1 =
+      _registerName1("setCredential:forProtectionSpace:task:");
+  void _objc_msgSend_880(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_880(
+      obj,
+      sel,
+      credential,
+      protectionSpace,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_880Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_880 = __objc_msgSend_880Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeCredential_forProtectionSpace_options_task_1 =
+      _registerName1("removeCredential:forProtectionSpace:options:task:");
+  void _objc_msgSend_881(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> credential,
+    ffi.Pointer<ObjCObject> protectionSpace,
+    ffi.Pointer<ObjCObject> options,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_881(
+      obj,
+      sel,
+      credential,
+      protectionSpace,
+      options,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_881Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_881 = __objc_msgSend_881Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getDefaultCredentialForProtectionSpace_task_completionHandler_1 =
+      _registerName1(
+          "getDefaultCredentialForProtectionSpace:task:completionHandler:");
+  void _objc_msgSend_882(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> space,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_882(
+      obj,
+      sel,
+      space,
+      task,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_882Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_882 = __objc_msgSend_882Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_setDefaultCredential_forProtectionSpace_task_1 =
+      _registerName1("setDefaultCredential:forProtectionSpace:task:");
+  late final _class_NSURLProtocol1 = _getClass1("NSURLProtocol");
+  late final _sel_initWithRequest_cachedResponse_client_1 =
+      _registerName1("initWithRequest:cachedResponse:client:");
+  instancetype _objc_msgSend_883(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> client,
+  ) {
+    return __objc_msgSend_883(
+      obj,
+      sel,
+      request,
+      cachedResponse,
+      client,
+    );
+  }
+
+  late final __objc_msgSend_883Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_883 = __objc_msgSend_883Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_client1 = _registerName1("client");
+  late final _sel_request1 = _registerName1("request");
+  late final _sel_cachedResponse1 = _registerName1("cachedResponse");
+  ffi.Pointer<ObjCObject> _objc_msgSend_884(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_884(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_884Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_884 = __objc_msgSend_884Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_canInitWithRequest_1 = _registerName1("canInitWithRequest:");
+  late final _sel_canonicalRequestForRequest_1 =
+      _registerName1("canonicalRequestForRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_885(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_885(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_885Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_885 = __objc_msgSend_885Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_requestIsCacheEquivalent_toRequest_1 =
+      _registerName1("requestIsCacheEquivalent:toRequest:");
+  bool _objc_msgSend_886(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> a,
+    ffi.Pointer<ObjCObject> b,
+  ) {
+    return __objc_msgSend_886(
+      obj,
+      sel,
+      a,
+      b,
+    );
+  }
+
+  late final __objc_msgSend_886Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_886 = __objc_msgSend_886Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_startLoading1 = _registerName1("startLoading");
+  late final _sel_stopLoading1 = _registerName1("stopLoading");
+  late final _sel_propertyForKey_inRequest_1 =
+      _registerName1("propertyForKey:inRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_887(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_887(
+      obj,
+      sel,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_887Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_887 = __objc_msgSend_887Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSMutableURLRequest1 = _getClass1("NSMutableURLRequest");
+  late final _sel_setURL_1 = _registerName1("setURL:");
+  void _objc_msgSend_888(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_888(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_888Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_888 = __objc_msgSend_888Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setCachePolicy_1 = _registerName1("setCachePolicy:");
+  void _objc_msgSend_889(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_889(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_889Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_889 = __objc_msgSend_889Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setTimeoutInterval_1 = _registerName1("setTimeoutInterval:");
+  late final _sel_setMainDocumentURL_1 = _registerName1("setMainDocumentURL:");
+  late final _sel_setNetworkServiceType_1 =
+      _registerName1("setNetworkServiceType:");
+  void _objc_msgSend_890(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_890(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_890Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_890 = __objc_msgSend_890Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setAllowsCellularAccess_1 =
+      _registerName1("setAllowsCellularAccess:");
+  late final _sel_setAllowsExpensiveNetworkAccess_1 =
+      _registerName1("setAllowsExpensiveNetworkAccess:");
+  late final _sel_setAllowsConstrainedNetworkAccess_1 =
+      _registerName1("setAllowsConstrainedNetworkAccess:");
+  late final _sel_setAssumesHTTP3Capable_1 =
+      _registerName1("setAssumesHTTP3Capable:");
+  late final _sel_setAttribution_1 = _registerName1("setAttribution:");
+  void _objc_msgSend_891(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_891(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_891Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_891 = __objc_msgSend_891Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setHTTPMethod_1 = _registerName1("setHTTPMethod:");
+  late final _sel_setAllHTTPHeaderFields_1 =
+      _registerName1("setAllHTTPHeaderFields:");
+  late final _sel_setValue_forHTTPHeaderField_1 =
+      _registerName1("setValue:forHTTPHeaderField:");
+  late final _sel_addValue_forHTTPHeaderField_1 =
+      _registerName1("addValue:forHTTPHeaderField:");
+  late final _sel_setHTTPBody_1 = _registerName1("setHTTPBody:");
+  void _objc_msgSend_892(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_892(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_892Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_892 = __objc_msgSend_892Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setHTTPBodyStream_1 = _registerName1("setHTTPBodyStream:");
+  void _objc_msgSend_893(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_893(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_893Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_893 = __objc_msgSend_893Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setHTTPShouldHandleCookies_1 =
+      _registerName1("setHTTPShouldHandleCookies:");
+  late final _sel_setHTTPShouldUsePipelining_1 =
+      _registerName1("setHTTPShouldUsePipelining:");
+  late final _sel_setProperty_forKey_inRequest_1 =
+      _registerName1("setProperty:forKey:inRequest:");
+  void _objc_msgSend_894(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_894(
+      obj,
+      sel,
+      value,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_894Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_894 = __objc_msgSend_894Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removePropertyForKey_inRequest_1 =
+      _registerName1("removePropertyForKey:inRequest:");
+  void _objc_msgSend_895(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_895(
+      obj,
+      sel,
+      key,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_895Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_895 = __objc_msgSend_895Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_registerClass_1 = _registerName1("registerClass:");
+  late final _sel_unregisterClass_1 = _registerName1("unregisterClass:");
+  late final _sel_canInitWithTask_1 = _registerName1("canInitWithTask:");
+  bool _objc_msgSend_896(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+  ) {
+    return __objc_msgSend_896(
+      obj,
+      sel,
+      task,
+    );
+  }
+
+  late final __objc_msgSend_896Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_896 = __objc_msgSend_896Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTask_cachedResponse_client_1 =
+      _registerName1("initWithTask:cachedResponse:client:");
+  instancetype _objc_msgSend_897(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> task,
+    ffi.Pointer<ObjCObject> cachedResponse,
+    ffi.Pointer<ObjCObject> client,
+  ) {
+    return __objc_msgSend_897(
+      obj,
+      sel,
+      task,
+      cachedResponse,
+      client,
+    );
+  }
+
+  late final __objc_msgSend_897Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_897 = __objc_msgSend_897Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_task1 = _registerName1("task");
+  ffi.Pointer<ObjCObject> _objc_msgSend_898(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_898(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_898Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_898 = __objc_msgSend_898Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSXMLParser1 = _getClass1("NSXMLParser");
+  late final _sel_initWithStream_1 = _registerName1("initWithStream:");
+  instancetype _objc_msgSend_899(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> stream,
+  ) {
+    return __objc_msgSend_899(
+      obj,
+      sel,
+      stream,
+    );
+  }
+
+  late final __objc_msgSend_899Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_899 = __objc_msgSend_899Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_shouldProcessNamespaces1 =
+      _registerName1("shouldProcessNamespaces");
+  late final _sel_setShouldProcessNamespaces_1 =
+      _registerName1("setShouldProcessNamespaces:");
+  late final _sel_shouldReportNamespacePrefixes1 =
+      _registerName1("shouldReportNamespacePrefixes");
+  late final _sel_setShouldReportNamespacePrefixes_1 =
+      _registerName1("setShouldReportNamespacePrefixes:");
+  late final _sel_externalEntityResolvingPolicy1 =
+      _registerName1("externalEntityResolvingPolicy");
+  int _objc_msgSend_900(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_900(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_900Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_900 = __objc_msgSend_900Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setExternalEntityResolvingPolicy_1 =
+      _registerName1("setExternalEntityResolvingPolicy:");
+  void _objc_msgSend_901(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_901(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_901Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_901 = __objc_msgSend_901Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_allowedExternalEntityURLs1 =
+      _registerName1("allowedExternalEntityURLs");
+  late final _sel_setAllowedExternalEntityURLs_1 =
+      _registerName1("setAllowedExternalEntityURLs:");
+  void _objc_msgSend_902(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_902(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_902Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_902 = __objc_msgSend_902Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_parse1 = _registerName1("parse");
+  late final _sel_abortParsing1 = _registerName1("abortParsing");
+  late final _sel_parserError1 = _registerName1("parserError");
+  late final _sel_shouldResolveExternalEntities1 =
+      _registerName1("shouldResolveExternalEntities");
+  late final _sel_setShouldResolveExternalEntities_1 =
+      _registerName1("setShouldResolveExternalEntities:");
+  late final _sel_publicID1 = _registerName1("publicID");
+  late final _sel_systemID1 = _registerName1("systemID");
+  late final _sel_lineNumber1 = _registerName1("lineNumber");
+  late final _sel_columnNumber1 = _registerName1("columnNumber");
+  late final _class_NSFileWrapper1 = _getClass1("NSFileWrapper");
+  late final _sel_initWithURL_options_error_1 =
+      _registerName1("initWithURL:options:error:");
+  instancetype _objc_msgSend_903(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_903(
+      obj,
+      sel,
+      url,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_903Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_903 = __objc_msgSend_903Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initDirectoryWithFileWrappers_1 =
+      _registerName1("initDirectoryWithFileWrappers:");
+  late final _sel_initRegularFileWithContents_1 =
+      _registerName1("initRegularFileWithContents:");
+  late final _sel_initSymbolicLinkWithDestinationURL_1 =
+      _registerName1("initSymbolicLinkWithDestinationURL:");
+  late final _sel_initWithSerializedRepresentation_1 =
+      _registerName1("initWithSerializedRepresentation:");
+  late final _sel_isDirectory1 = _registerName1("isDirectory");
+  late final _sel_isRegularFile1 = _registerName1("isRegularFile");
+  late final _sel_isSymbolicLink1 = _registerName1("isSymbolicLink");
+  late final _sel_preferredFilename1 = _registerName1("preferredFilename");
+  late final _sel_setPreferredFilename_1 =
+      _registerName1("setPreferredFilename:");
+  late final _sel_filename1 = _registerName1("filename");
+  late final _sel_setFilename_1 = _registerName1("setFilename:");
+  late final _sel_fileAttributes1 = _registerName1("fileAttributes");
+  late final _sel_setFileAttributes_1 = _registerName1("setFileAttributes:");
+  late final _sel_matchesContentsOfURL_1 =
+      _registerName1("matchesContentsOfURL:");
+  late final _sel_readFromURL_options_error_1 =
+      _registerName1("readFromURL:options:error:");
+  bool _objc_msgSend_904(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_904(
+      obj,
+      sel,
+      url,
+      options,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_904Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_904 = __objc_msgSend_904Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToURL_options_originalContentsURL_error_1 =
+      _registerName1("writeToURL:options:originalContentsURL:error:");
+  bool _objc_msgSend_905(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int options,
+    ffi.Pointer<ObjCObject> originalContentsURL,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outError,
+  ) {
+    return __objc_msgSend_905(
+      obj,
+      sel,
+      url,
+      options,
+      originalContentsURL,
+      outError,
+    );
+  }
+
+  late final __objc_msgSend_905Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_905 = __objc_msgSend_905Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_serializedRepresentation1 =
+      _registerName1("serializedRepresentation");
+  late final _sel_addFileWrapper_1 = _registerName1("addFileWrapper:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_906(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_906(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_906Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_906 = __objc_msgSend_906Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addRegularFileWithContents_preferredFilename_1 =
+      _registerName1("addRegularFileWithContents:preferredFilename:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_907(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> fileName,
+  ) {
+    return __objc_msgSend_907(
+      obj,
+      sel,
+      data,
+      fileName,
+    );
+  }
+
+  late final __objc_msgSend_907Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_907 = __objc_msgSend_907Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_removeFileWrapper_1 = _registerName1("removeFileWrapper:");
+  void _objc_msgSend_908(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_908(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_908Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_908 = __objc_msgSend_908Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileWrappers1 = _registerName1("fileWrappers");
+  late final _sel_keyForFileWrapper_1 = _registerName1("keyForFileWrapper:");
+  late final _sel_regularFileContents1 = _registerName1("regularFileContents");
+  late final _sel_symbolicLinkDestinationURL1 =
+      _registerName1("symbolicLinkDestinationURL");
+  late final _sel_initSymbolicLinkWithDestination_1 =
+      _registerName1("initSymbolicLinkWithDestination:");
+  late final _sel_needsToBeUpdatedFromPath_1 =
+      _registerName1("needsToBeUpdatedFromPath:");
+  late final _sel_updateFromPath_1 = _registerName1("updateFromPath:");
+  late final _sel_writeToFile_atomically_updateFilenames_1 =
+      _registerName1("writeToFile:atomically:updateFilenames:");
+  bool _objc_msgSend_909(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool atomicFlag,
+    bool updateFilenamesFlag,
+  ) {
+    return __objc_msgSend_909(
+      obj,
+      sel,
+      path,
+      atomicFlag,
+      updateFilenamesFlag,
+    );
+  }
+
+  late final __objc_msgSend_909Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_909 = __objc_msgSend_909Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool, bool)>();
+
+  late final _sel_addFileWithPath_1 = _registerName1("addFileWithPath:");
+  late final _sel_addSymbolicLinkWithDestination_preferredFilename_1 =
+      _registerName1("addSymbolicLinkWithDestination:preferredFilename:");
+  late final _sel_symbolicLinkDestination1 =
+      _registerName1("symbolicLinkDestination");
+  late final _class_NSURLSession1 = _getClass1("NSURLSession");
+  late final _sel_sharedSession1 = _registerName1("sharedSession");
+  ffi.Pointer<ObjCObject> _objc_msgSend_910(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_910(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_910Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_910 = __objc_msgSend_910Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSURLSessionConfiguration1 =
+      _getClass1("NSURLSessionConfiguration");
+  late final _sel_defaultSessionConfiguration1 =
+      _registerName1("defaultSessionConfiguration");
+  ffi.Pointer<ObjCObject> _objc_msgSend_911(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_911(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_911Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_911 = __objc_msgSend_911Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_ephemeralSessionConfiguration1 =
+      _registerName1("ephemeralSessionConfiguration");
+  late final _sel_backgroundSessionConfigurationWithIdentifier_1 =
+      _registerName1("backgroundSessionConfigurationWithIdentifier:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_912(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> identifier,
+  ) {
+    return __objc_msgSend_912(
+      obj,
+      sel,
+      identifier,
+    );
+  }
+
+  late final __objc_msgSend_912Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_912 = __objc_msgSend_912Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_identifier1 = _registerName1("identifier");
+  late final _sel_requestCachePolicy1 = _registerName1("requestCachePolicy");
+  late final _sel_setRequestCachePolicy_1 =
+      _registerName1("setRequestCachePolicy:");
+  late final _sel_timeoutIntervalForRequest1 =
+      _registerName1("timeoutIntervalForRequest");
+  late final _sel_setTimeoutIntervalForRequest_1 =
+      _registerName1("setTimeoutIntervalForRequest:");
+  late final _sel_timeoutIntervalForResource1 =
+      _registerName1("timeoutIntervalForResource");
+  late final _sel_setTimeoutIntervalForResource_1 =
+      _registerName1("setTimeoutIntervalForResource:");
+  late final _sel_waitsForConnectivity1 =
+      _registerName1("waitsForConnectivity");
+  late final _sel_setWaitsForConnectivity_1 =
+      _registerName1("setWaitsForConnectivity:");
+  late final _sel_isDiscretionary1 = _registerName1("isDiscretionary");
+  late final _sel_setDiscretionary_1 = _registerName1("setDiscretionary:");
+  late final _sel_sharedContainerIdentifier1 =
+      _registerName1("sharedContainerIdentifier");
+  late final _sel_setSharedContainerIdentifier_1 =
+      _registerName1("setSharedContainerIdentifier:");
+  late final _sel_sessionSendsLaunchEvents1 =
+      _registerName1("sessionSendsLaunchEvents");
+  late final _sel_setSessionSendsLaunchEvents_1 =
+      _registerName1("setSessionSendsLaunchEvents:");
+  late final _sel_connectionProxyDictionary1 =
+      _registerName1("connectionProxyDictionary");
+  late final _sel_setConnectionProxyDictionary_1 =
+      _registerName1("setConnectionProxyDictionary:");
+  late final _sel_TLSMinimumSupportedProtocol1 =
+      _registerName1("TLSMinimumSupportedProtocol");
+  int _objc_msgSend_913(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_913(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_913Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_913 = __objc_msgSend_913Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTLSMinimumSupportedProtocol_1 =
+      _registerName1("setTLSMinimumSupportedProtocol:");
+  void _objc_msgSend_914(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_914(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_914Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_914 = __objc_msgSend_914Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_TLSMaximumSupportedProtocol1 =
+      _registerName1("TLSMaximumSupportedProtocol");
+  late final _sel_setTLSMaximumSupportedProtocol_1 =
+      _registerName1("setTLSMaximumSupportedProtocol:");
+  late final _sel_TLSMinimumSupportedProtocolVersion1 =
+      _registerName1("TLSMinimumSupportedProtocolVersion");
+  int _objc_msgSend_915(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_915(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_915Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_915 = __objc_msgSend_915Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTLSMinimumSupportedProtocolVersion_1 =
+      _registerName1("setTLSMinimumSupportedProtocolVersion:");
+  void _objc_msgSend_916(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_916(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_916Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_916 = __objc_msgSend_916Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_TLSMaximumSupportedProtocolVersion1 =
+      _registerName1("TLSMaximumSupportedProtocolVersion");
+  late final _sel_setTLSMaximumSupportedProtocolVersion_1 =
+      _registerName1("setTLSMaximumSupportedProtocolVersion:");
+  late final _sel_HTTPShouldSetCookies1 =
+      _registerName1("HTTPShouldSetCookies");
+  late final _sel_setHTTPShouldSetCookies_1 =
+      _registerName1("setHTTPShouldSetCookies:");
+  late final _sel_HTTPCookieAcceptPolicy1 =
+      _registerName1("HTTPCookieAcceptPolicy");
+  late final _sel_setHTTPCookieAcceptPolicy_1 =
+      _registerName1("setHTTPCookieAcceptPolicy:");
+  late final _sel_HTTPAdditionalHeaders1 =
+      _registerName1("HTTPAdditionalHeaders");
+  late final _sel_setHTTPAdditionalHeaders_1 =
+      _registerName1("setHTTPAdditionalHeaders:");
+  late final _sel_HTTPMaximumConnectionsPerHost1 =
+      _registerName1("HTTPMaximumConnectionsPerHost");
+  late final _sel_setHTTPMaximumConnectionsPerHost_1 =
+      _registerName1("setHTTPMaximumConnectionsPerHost:");
+  late final _sel_HTTPCookieStorage1 = _registerName1("HTTPCookieStorage");
+  late final _sel_setHTTPCookieStorage_1 =
+      _registerName1("setHTTPCookieStorage:");
+  void _objc_msgSend_917(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_917(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_917Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_917 = __objc_msgSend_917Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLCredentialStorage1 =
+      _registerName1("URLCredentialStorage");
+  late final _sel_setURLCredentialStorage_1 =
+      _registerName1("setURLCredentialStorage:");
+  void _objc_msgSend_918(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_918(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_918Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_918 = __objc_msgSend_918Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLCache1 = _registerName1("URLCache");
+  late final _sel_setURLCache_1 = _registerName1("setURLCache:");
+  late final _sel_shouldUseExtendedBackgroundIdleMode1 =
+      _registerName1("shouldUseExtendedBackgroundIdleMode");
+  late final _sel_setShouldUseExtendedBackgroundIdleMode_1 =
+      _registerName1("setShouldUseExtendedBackgroundIdleMode:");
+  late final _sel_protocolClasses1 = _registerName1("protocolClasses");
+  late final _sel_setProtocolClasses_1 = _registerName1("setProtocolClasses:");
+  late final _sel_multipathServiceType1 =
+      _registerName1("multipathServiceType");
+  int _objc_msgSend_919(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_919(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_919Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_919 = __objc_msgSend_919Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setMultipathServiceType_1 =
+      _registerName1("setMultipathServiceType:");
+  void _objc_msgSend_920(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_920(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_920Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_920 = __objc_msgSend_920Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_backgroundSessionConfiguration_1 =
+      _registerName1("backgroundSessionConfiguration:");
+  late final _sel_sessionWithConfiguration_1 =
+      _registerName1("sessionWithConfiguration:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_921(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> configuration,
+  ) {
+    return __objc_msgSend_921(
+      obj,
+      sel,
+      configuration,
+    );
+  }
+
+  late final __objc_msgSend_921Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_921 = __objc_msgSend_921Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sessionWithConfiguration_delegate_delegateQueue_1 =
+      _registerName1("sessionWithConfiguration:delegate:delegateQueue:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_922(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> configuration,
+    ffi.Pointer<ObjCObject> delegate,
+    ffi.Pointer<ObjCObject> queue,
+  ) {
+    return __objc_msgSend_922(
+      obj,
+      sel,
+      configuration,
+      delegate,
+      queue,
+    );
+  }
+
+  late final __objc_msgSend_922Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_922 = __objc_msgSend_922Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_delegateQueue1 = _registerName1("delegateQueue");
+  late final _sel_configuration1 = _registerName1("configuration");
+  late final _sel_sessionDescription1 = _registerName1("sessionDescription");
+  late final _sel_setSessionDescription_1 =
+      _registerName1("setSessionDescription:");
+  late final _sel_finishTasksAndInvalidate1 =
+      _registerName1("finishTasksAndInvalidate");
+  late final _sel_invalidateAndCancel1 = _registerName1("invalidateAndCancel");
+  late final _sel_resetWithCompletionHandler_1 =
+      _registerName1("resetWithCompletionHandler:");
+  late final _sel_flushWithCompletionHandler_1 =
+      _registerName1("flushWithCompletionHandler:");
+  late final _sel_getTasksWithCompletionHandler_1 =
+      _registerName1("getTasksWithCompletionHandler:");
+  void _objc_msgSend_923(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_923(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_923Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_923 = __objc_msgSend_923Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_getAllTasksWithCompletionHandler_1 =
+      _registerName1("getAllTasksWithCompletionHandler:");
+  void _objc_msgSend_924(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_924(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_924Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_924 = __objc_msgSend_924Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataTaskWithRequest_1 =
+      _registerName1("dataTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_925(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_925(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_925Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_925 = __objc_msgSend_925Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataTaskWithURL_1 = _registerName1("dataTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_926(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_926(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_926Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_926 = __objc_msgSend_926Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionUploadTask1 =
+      _getClass1("NSURLSessionUploadTask");
+  late final _sel_uploadTaskWithRequest_fromFile_1 =
+      _registerName1("uploadTaskWithRequest:fromFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_927(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> fileURL,
+  ) {
+    return __objc_msgSend_927(
+      obj,
+      sel,
+      request,
+      fileURL,
+    );
+  }
+
+  late final __objc_msgSend_927Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_927 = __objc_msgSend_927Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_uploadTaskWithRequest_fromData_1 =
+      _registerName1("uploadTaskWithRequest:fromData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_928(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> bodyData,
+  ) {
+    return __objc_msgSend_928(
+      obj,
+      sel,
+      request,
+      bodyData,
+    );
+  }
+
+  late final __objc_msgSend_928Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_928 = __objc_msgSend_928Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_uploadTaskWithStreamedRequest_1 =
+      _registerName1("uploadTaskWithStreamedRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_929(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_929(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_929Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_929 = __objc_msgSend_929Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionDownloadTask1 =
+      _getClass1("NSURLSessionDownloadTask");
+  late final _sel_cancelByProducingResumeData_1 =
+      _registerName1("cancelByProducingResumeData:");
+  void _objc_msgSend_930(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_930(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_930Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_930 = __objc_msgSend_930Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithRequest_1 =
+      _registerName1("downloadTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_931(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_931(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_931Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_931 = __objc_msgSend_931Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_downloadTaskWithURL_1 =
+      _registerName1("downloadTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_932(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_932(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_932Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_932 = __objc_msgSend_932Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_downloadTaskWithResumeData_1 =
+      _registerName1("downloadTaskWithResumeData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_933(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> resumeData,
+  ) {
+    return __objc_msgSend_933(
+      obj,
+      sel,
+      resumeData,
+    );
+  }
+
+  late final __objc_msgSend_933Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_933 = __objc_msgSend_933Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionStreamTask1 =
+      _getClass1("NSURLSessionStreamTask");
+  late final _sel_readDataOfMinLength_maxLength_timeout_completionHandler_1 =
+      _registerName1(
+          "readDataOfMinLength:maxLength:timeout:completionHandler:");
+  void _objc_msgSend_934(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int minBytes,
+    int maxBytes,
+    double timeout,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_934(
+      obj,
+      sel,
+      minBytes,
+      maxBytes,
+      timeout,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_934Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              NSUInteger,
+              NSTimeInterval,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_934 = __objc_msgSend_934Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int,
+          double, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_writeData_timeout_completionHandler_1 =
+      _registerName1("writeData:timeout:completionHandler:");
+  void _objc_msgSend_935(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    double timeout,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_935(
+      obj,
+      sel,
+      data,
+      timeout,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_935Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSTimeInterval,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_935 = __objc_msgSend_935Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, double, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_captureStreams1 = _registerName1("captureStreams");
+  late final _sel_closeWrite1 = _registerName1("closeWrite");
+  late final _sel_closeRead1 = _registerName1("closeRead");
+  late final _sel_startSecureConnection1 =
+      _registerName1("startSecureConnection");
+  late final _sel_stopSecureConnection1 =
+      _registerName1("stopSecureConnection");
+  late final _sel_streamTaskWithHostName_port_1 =
+      _registerName1("streamTaskWithHostName:port:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_936(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> hostname,
+    int port,
+  ) {
+    return __objc_msgSend_936(
+      obj,
+      sel,
+      hostname,
+      port,
+    );
+  }
+
+  late final __objc_msgSend_936Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_936 = __objc_msgSend_936Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _class_NSNetService1 = _getClass1("NSNetService");
+  late final _sel_initWithDomain_type_name_port_1 =
+      _registerName1("initWithDomain:type:name:port:");
+  instancetype _objc_msgSend_937(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> domain,
+    ffi.Pointer<ObjCObject> type,
+    ffi.Pointer<ObjCObject> name,
+    int port,
+  ) {
+    return __objc_msgSend_937(
+      obj,
+      sel,
+      domain,
+      type,
+      name,
+      port,
+    );
+  }
+
+  late final __objc_msgSend_937Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_937 = __objc_msgSend_937Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int)>();
+
+  late final _sel_initWithDomain_type_name_1 =
+      _registerName1("initWithDomain:type:name:");
+  late final _sel_includesPeerToPeer1 = _registerName1("includesPeerToPeer");
+  late final _sel_setIncludesPeerToPeer_1 =
+      _registerName1("setIncludesPeerToPeer:");
+  late final _sel_type1 = _registerName1("type");
+  late final _sel_publish1 = _registerName1("publish");
+  late final _sel_publishWithOptions_1 = _registerName1("publishWithOptions:");
+  void _objc_msgSend_938(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_938(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_938Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_938 = __objc_msgSend_938Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_resolve1 = _registerName1("resolve");
+  late final _sel_stop1 = _registerName1("stop");
+  late final _sel_dictionaryFromTXTRecordData_1 =
+      _registerName1("dictionaryFromTXTRecordData:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_939(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> txtData,
+  ) {
+    return __objc_msgSend_939(
+      obj,
+      sel,
+      txtData,
+    );
+  }
+
+  late final __objc_msgSend_939Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_939 = __objc_msgSend_939Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataFromTXTRecordDictionary_1 =
+      _registerName1("dataFromTXTRecordDictionary:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_940(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> txtDictionary,
+  ) {
+    return __objc_msgSend_940(
+      obj,
+      sel,
+      txtDictionary,
+    );
+  }
+
+  late final __objc_msgSend_940Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_940 = __objc_msgSend_940Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_resolveWithTimeout_1 = _registerName1("resolveWithTimeout:");
+  late final _sel_getInputStream_outputStream_1 =
+      _registerName1("getInputStream:outputStream:");
+  bool _objc_msgSend_941(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream,
+  ) {
+    return __objc_msgSend_941(
+      obj,
+      sel,
+      inputStream,
+      outputStream,
+    );
+  }
+
+  late final __objc_msgSend_941Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_941 = __objc_msgSend_941Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_setTXTRecordData_1 = _registerName1("setTXTRecordData:");
+  late final _sel_TXTRecordData1 = _registerName1("TXTRecordData");
+  late final _sel_startMonitoring1 = _registerName1("startMonitoring");
+  late final _sel_stopMonitoring1 = _registerName1("stopMonitoring");
+  late final _sel_streamTaskWithNetService_1 =
+      _registerName1("streamTaskWithNetService:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_942(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> service,
+  ) {
+    return __objc_msgSend_942(
+      obj,
+      sel,
+      service,
+    );
+  }
+
+  late final __objc_msgSend_942Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_942 = __objc_msgSend_942Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLSessionWebSocketTask1 =
+      _getClass1("NSURLSessionWebSocketTask");
+  late final _class_NSURLSessionWebSocketMessage1 =
+      _getClass1("NSURLSessionWebSocketMessage");
+  int _objc_msgSend_943(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_943(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_943Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_943 = __objc_msgSend_943Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sendMessage_completionHandler_1 =
+      _registerName1("sendMessage:completionHandler:");
+  void _objc_msgSend_944(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> message,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_944(
+      obj,
+      sel,
+      message,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_944Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_944 = __objc_msgSend_944Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_receiveMessageWithCompletionHandler_1 =
+      _registerName1("receiveMessageWithCompletionHandler:");
+  void _objc_msgSend_945(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_945(
+      obj,
+      sel,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_945Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_945 = __objc_msgSend_945Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_sendPingWithPongReceiveHandler_1 =
+      _registerName1("sendPingWithPongReceiveHandler:");
+  void _objc_msgSend_946(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> pongReceiveHandler,
+  ) {
+    return __objc_msgSend_946(
+      obj,
+      sel,
+      pongReceiveHandler,
+    );
+  }
+
+  late final __objc_msgSend_946Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_946 = __objc_msgSend_946Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_cancelWithCloseCode_reason_1 =
+      _registerName1("cancelWithCloseCode:reason:");
+  void _objc_msgSend_947(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int closeCode,
+    ffi.Pointer<ObjCObject> reason,
+  ) {
+    return __objc_msgSend_947(
+      obj,
+      sel,
+      closeCode,
+      reason,
+    );
+  }
+
+  late final __objc_msgSend_947Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_947 = __objc_msgSend_947Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_maximumMessageSize1 = _registerName1("maximumMessageSize");
+  late final _sel_setMaximumMessageSize_1 =
+      _registerName1("setMaximumMessageSize:");
+  late final _sel_closeCode1 = _registerName1("closeCode");
+  int _objc_msgSend_948(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_948(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_948Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_948 = __objc_msgSend_948Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_closeReason1 = _registerName1("closeReason");
+  late final _sel_webSocketTaskWithURL_1 =
+      _registerName1("webSocketTaskWithURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_949(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_949(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_949Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_949 = __objc_msgSend_949Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_webSocketTaskWithURL_protocols_1 =
+      _registerName1("webSocketTaskWithURL:protocols:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_950(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> protocols,
+  ) {
+    return __objc_msgSend_950(
+      obj,
+      sel,
+      url,
+      protocols,
+    );
+  }
+
+  late final __objc_msgSend_950Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_950 = __objc_msgSend_950Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_webSocketTaskWithRequest_1 =
+      _registerName1("webSocketTaskWithRequest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_951(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+  ) {
+    return __objc_msgSend_951(
+      obj,
+      sel,
+      request,
+    );
+  }
+
+  late final __objc_msgSend_951Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_951 = __objc_msgSend_951Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataTaskWithRequest_completionHandler_1 =
+      _registerName1("dataTaskWithRequest:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_952(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_952(
+      obj,
+      sel,
+      request,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_952Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_952 = __objc_msgSend_952Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataTaskWithURL_completionHandler_1 =
+      _registerName1("dataTaskWithURL:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_953(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_953(
+      obj,
+      sel,
+      url,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_953Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_953 = __objc_msgSend_953Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_uploadTaskWithRequest_fromFile_completionHandler_1 =
+      _registerName1("uploadTaskWithRequest:fromFile:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_954(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> fileURL,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_954(
+      obj,
+      sel,
+      request,
+      fileURL,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_954Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_954 = __objc_msgSend_954Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_uploadTaskWithRequest_fromData_completionHandler_1 =
+      _registerName1("uploadTaskWithRequest:fromData:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_955(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<ObjCObject> bodyData,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_955(
+      obj,
+      sel,
+      request,
+      bodyData,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_955Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_955 = __objc_msgSend_955Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithRequest_completionHandler_1 =
+      _registerName1("downloadTaskWithRequest:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_956(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> request,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_956(
+      obj,
+      sel,
+      request,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_956Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_956 = __objc_msgSend_956Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithURL_completionHandler_1 =
+      _registerName1("downloadTaskWithURL:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_957(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_957(
+      obj,
+      sel,
+      url,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_957Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_957 = __objc_msgSend_957Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_downloadTaskWithResumeData_completionHandler_1 =
+      _registerName1("downloadTaskWithResumeData:completionHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_958(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> resumeData,
+    ffi.Pointer<_ObjCBlock> completionHandler,
+  ) {
+    return __objc_msgSend_958(
+      obj,
+      sel,
+      resumeData,
+      completionHandler,
+    );
+  }
+
+  late final __objc_msgSend_958Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_958 = __objc_msgSend_958Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _class_NSProtocolChecker1 = _getClass1("NSProtocolChecker");
+  ffi.Pointer<ObjCObject> _objc_msgSend_959(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_959(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_959Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_959 = __objc_msgSend_959Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_protocolCheckerWithTarget_protocol_1 =
+      _registerName1("protocolCheckerWithTarget:protocol:");
+  instancetype _objc_msgSend_960(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    ffi.Pointer<ObjCObject> aProtocol,
+  ) {
+    return __objc_msgSend_960(
+      obj,
+      sel,
+      anObject,
+      aProtocol,
+    );
+  }
+
+  late final __objc_msgSend_960Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_960 = __objc_msgSend_960Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithTarget_protocol_1 =
+      _registerName1("initWithTarget:protocol:");
+  late final _class_NSTask1 = _getClass1("NSTask");
+  late final _sel_setExecutableURL_1 = _registerName1("setExecutableURL:");
+  late final _sel_setEnvironment_1 = _registerName1("setEnvironment:");
+  late final _sel_currentDirectoryURL1 = _registerName1("currentDirectoryURL");
+  late final _sel_setCurrentDirectoryURL_1 =
+      _registerName1("setCurrentDirectoryURL:");
+  late final _sel_standardInput1 = _registerName1("standardInput");
+  late final _sel_setStandardInput_1 = _registerName1("setStandardInput:");
+  late final _sel_standardOutput1 = _registerName1("standardOutput");
+  late final _sel_setStandardOutput_1 = _registerName1("setStandardOutput:");
+  late final _sel_standardError1 = _registerName1("standardError");
+  late final _sel_setStandardError_1 = _registerName1("setStandardError:");
+  late final _sel_launchAndReturnError_1 =
+      _registerName1("launchAndReturnError:");
+  late final _sel_interrupt1 = _registerName1("interrupt");
+  late final _sel_terminate1 = _registerName1("terminate");
+  late final _sel_isRunning1 = _registerName1("isRunning");
+  late final _sel_terminationStatus1 = _registerName1("terminationStatus");
+  late final _sel_terminationReason1 = _registerName1("terminationReason");
+  int _objc_msgSend_961(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_961(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_961Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_961 = __objc_msgSend_961Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_terminationHandler1 = _registerName1("terminationHandler");
+  ffi.Pointer<_ObjCBlock> _objc_msgSend_962(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_962(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_962Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<_ObjCBlock> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_962 = __objc_msgSend_962Ptr.asFunction<
+      ffi.Pointer<_ObjCBlock> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setTerminationHandler_1 =
+      _registerName1("setTerminationHandler:");
+  void _objc_msgSend_963(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> value,
+  ) {
+    return __objc_msgSend_963(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_963Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_963 = __objc_msgSend_963Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_1 =
+      _registerName1(
+          "launchedTaskWithExecutableURL:arguments:error:terminationHandler:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_964(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+    ffi.Pointer<_ObjCBlock> terminationHandler,
+  ) {
+    return __objc_msgSend_964(
+      obj,
+      sel,
+      url,
+      arguments,
+      error,
+      terminationHandler,
+    );
+  }
+
+  late final __objc_msgSend_964Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_964 = __objc_msgSend_964Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_waitUntilExit1 = _registerName1("waitUntilExit");
+  late final _sel_launchPath1 = _registerName1("launchPath");
+  late final _sel_setLaunchPath_1 = _registerName1("setLaunchPath:");
+  late final _sel_setCurrentDirectoryPath_1 =
+      _registerName1("setCurrentDirectoryPath:");
+  late final _sel_launch1 = _registerName1("launch");
+  late final _sel_launchedTaskWithLaunchPath_arguments_1 =
+      _registerName1("launchedTaskWithLaunchPath:arguments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_965(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> arguments,
+  ) {
+    return __objc_msgSend_965(
+      obj,
+      sel,
+      path,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_965Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_965 = __objc_msgSend_965Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSXMLElement1 = _getClass1("NSXMLElement");
+  late final _class_NSXMLNode1 = _getClass1("NSXMLNode");
+  late final _sel_initWithKind_1 = _registerName1("initWithKind:");
+  instancetype _objc_msgSend_966(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int kind,
+  ) {
+    return __objc_msgSend_966(
+      obj,
+      sel,
+      kind,
+    );
+  }
+
+  late final __objc_msgSend_966Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_966 = __objc_msgSend_966Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithKind_options_1 =
+      _registerName1("initWithKind:options:");
+  instancetype _objc_msgSend_967(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int kind,
+    int options,
+  ) {
+    return __objc_msgSend_967(
+      obj,
+      sel,
+      kind,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_967Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_967 = __objc_msgSend_967Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, int)>();
+
+  late final _sel_document1 = _registerName1("document");
+  late final _sel_documentWithRootElement_1 =
+      _registerName1("documentWithRootElement:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_968(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> element,
+  ) {
+    return __objc_msgSend_968(
+      obj,
+      sel,
+      element,
+    );
+  }
+
+  late final __objc_msgSend_968Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_968 = __objc_msgSend_968Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_elementWithName_1 = _registerName1("elementWithName:");
+  late final _sel_elementWithName_URI_1 =
+      _registerName1("elementWithName:URI:");
+  late final _sel_elementWithName_stringValue_1 =
+      _registerName1("elementWithName:stringValue:");
+  late final _sel_elementWithName_children_attributes_1 =
+      _registerName1("elementWithName:children:attributes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_969(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> children,
+    ffi.Pointer<ObjCObject> attributes,
+  ) {
+    return __objc_msgSend_969(
+      obj,
+      sel,
+      name,
+      children,
+      attributes,
+    );
+  }
+
+  late final __objc_msgSend_969Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_969 = __objc_msgSend_969Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_attributeWithName_stringValue_1 =
+      _registerName1("attributeWithName:stringValue:");
+  late final _sel_attributeWithName_URI_stringValue_1 =
+      _registerName1("attributeWithName:URI:stringValue:");
+  late final _sel_namespaceWithName_stringValue_1 =
+      _registerName1("namespaceWithName:stringValue:");
+  late final _sel_processingInstructionWithName_stringValue_1 =
+      _registerName1("processingInstructionWithName:stringValue:");
+  late final _sel_commentWithStringValue_1 =
+      _registerName1("commentWithStringValue:");
+  late final _sel_textWithStringValue_1 =
+      _registerName1("textWithStringValue:");
+  late final _sel_DTDNodeWithXMLString_1 =
+      _registerName1("DTDNodeWithXMLString:");
+  late final _sel_kind1 = _registerName1("kind");
+  int _objc_msgSend_970(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_970(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_970Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_970 = __objc_msgSend_970Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_objectValue1 = _registerName1("objectValue");
+  late final _sel_setObjectValue_1 = _registerName1("setObjectValue:");
+  late final _sel_setStringValue_1 = _registerName1("setStringValue:");
+  late final _sel_setStringValue_resolvingEntities_1 =
+      _registerName1("setStringValue:resolvingEntities:");
+  void _objc_msgSend_971(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    bool resolve,
+  ) {
+    return __objc_msgSend_971(
+      obj,
+      sel,
+      string,
+      resolve,
+    );
+  }
+
+  late final __objc_msgSend_971Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_971 = __objc_msgSend_971Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_index1 = _registerName1("index");
+  late final _sel_level1 = _registerName1("level");
+  late final _class_NSXMLDocument1 = _getClass1("NSXMLDocument");
+  late final _sel_initWithXMLString_options_error_1 =
+      _registerName1("initWithXMLString:options:error:");
+  instancetype _objc_msgSend_972(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_972(
+      obj,
+      sel,
+      string,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_972Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_972 = __objc_msgSend_972Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  instancetype _objc_msgSend_973(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_973(
+      obj,
+      sel,
+      url,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_973Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_973 = __objc_msgSend_973Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithData_options_error_1 =
+      _registerName1("initWithData:options:error:");
+  instancetype _objc_msgSend_974(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    int mask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_974(
+      obj,
+      sel,
+      data,
+      mask,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_974Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_974 = __objc_msgSend_974Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithRootElement_1 =
+      _registerName1("initWithRootElement:");
+  late final _sel_replacementClassForClass_1 =
+      _registerName1("replacementClassForClass:");
+  late final _sel_characterEncoding1 = _registerName1("characterEncoding");
+  late final _sel_setCharacterEncoding_1 =
+      _registerName1("setCharacterEncoding:");
+  late final _sel_isStandalone1 = _registerName1("isStandalone");
+  late final _sel_setStandalone_1 = _registerName1("setStandalone:");
+  late final _sel_documentContentKind1 = _registerName1("documentContentKind");
+  int _objc_msgSend_975(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_975(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_975Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_975 = __objc_msgSend_975Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDocumentContentKind_1 =
+      _registerName1("setDocumentContentKind:");
+  void _objc_msgSend_976(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_976(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_976Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_976 = __objc_msgSend_976Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_setMIMEType_1 = _registerName1("setMIMEType:");
+  late final _class_NSXMLDTD1 = _getClass1("NSXMLDTD");
+  late final _sel_setPublicID_1 = _registerName1("setPublicID:");
+  late final _sel_setSystemID_1 = _registerName1("setSystemID:");
+  late final _sel_insertChild_atIndex_1 =
+      _registerName1("insertChild:atIndex:");
+  void _objc_msgSend_977(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+    int index,
+  ) {
+    return __objc_msgSend_977(
+      obj,
+      sel,
+      child,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_977Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_977 = __objc_msgSend_977Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_insertChildren_atIndex_1 =
+      _registerName1("insertChildren:atIndex:");
+  void _objc_msgSend_978(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> children,
+    int index,
+  ) {
+    return __objc_msgSend_978(
+      obj,
+      sel,
+      children,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_978Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_978 = __objc_msgSend_978Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_removeChildAtIndex_1 = _registerName1("removeChildAtIndex:");
+  late final _sel_setChildren_1 = _registerName1("setChildren:");
+  late final _sel_addChild_1 = _registerName1("addChild:");
+  void _objc_msgSend_979(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> child,
+  ) {
+    return __objc_msgSend_979(
+      obj,
+      sel,
+      child,
+    );
+  }
+
+  late final __objc_msgSend_979Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_979 = __objc_msgSend_979Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_replaceChildAtIndex_withNode_1 =
+      _registerName1("replaceChildAtIndex:withNode:");
+  void _objc_msgSend_980(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+    ffi.Pointer<ObjCObject> node,
+  ) {
+    return __objc_msgSend_980(
+      obj,
+      sel,
+      index,
+      node,
+    );
+  }
+
+  late final __objc_msgSend_980Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_980 = __objc_msgSend_980Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSXMLDTDNode1 = _getClass1("NSXMLDTDNode");
+  late final _sel_initWithXMLString_1 = _registerName1("initWithXMLString:");
+  late final _sel_DTDKind1 = _registerName1("DTDKind");
+  int _objc_msgSend_981(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_981(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_981Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_981 = __objc_msgSend_981Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDTDKind_1 = _registerName1("setDTDKind:");
+  void _objc_msgSend_982(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_982(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_982Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_982 = __objc_msgSend_982Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isExternal1 = _registerName1("isExternal");
+  late final _sel_notationName1 = _registerName1("notationName");
+  late final _sel_setNotationName_1 = _registerName1("setNotationName:");
+  late final _sel_localNameForName_1 = _registerName1("localNameForName:");
+  late final _sel_prefixForName_1 = _registerName1("prefixForName:");
+  late final _sel_predefinedNamespaceForPrefix_1 =
+      _registerName1("predefinedNamespaceForPrefix:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_983(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_983(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_983Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_983 = __objc_msgSend_983Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_entityDeclarationForName_1 =
+      _registerName1("entityDeclarationForName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_984(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+  ) {
+    return __objc_msgSend_984(
+      obj,
+      sel,
+      name,
+    );
+  }
+
+  late final __objc_msgSend_984Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_984 = __objc_msgSend_984Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_notationDeclarationForName_1 =
+      _registerName1("notationDeclarationForName:");
+  late final _sel_elementDeclarationForName_1 =
+      _registerName1("elementDeclarationForName:");
+  late final _sel_attributeDeclarationForName_elementName_1 =
+      _registerName1("attributeDeclarationForName:elementName:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_985(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> name,
+    ffi.Pointer<ObjCObject> elementName,
+  ) {
+    return __objc_msgSend_985(
+      obj,
+      sel,
+      name,
+      elementName,
+    );
+  }
+
+  late final __objc_msgSend_985Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_985 = __objc_msgSend_985Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predefinedEntityDeclarationForName_1 =
+      _registerName1("predefinedEntityDeclarationForName:");
+  late final _sel_DTD1 = _registerName1("DTD");
+  ffi.Pointer<ObjCObject> _objc_msgSend_986(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_986(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_986Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_986 = __objc_msgSend_986Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setDTD_1 = _registerName1("setDTD:");
+  void _objc_msgSend_987(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_987(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_987Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_987 = __objc_msgSend_987Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setRootElement_1 = _registerName1("setRootElement:");
+  void _objc_msgSend_988(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> root,
+  ) {
+    return __objc_msgSend_988(
+      obj,
+      sel,
+      root,
+    );
+  }
+
+  late final __objc_msgSend_988Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_988 = __objc_msgSend_988Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rootElement1 = _registerName1("rootElement");
+  ffi.Pointer<ObjCObject> _objc_msgSend_989(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_989(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_989Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_989 = __objc_msgSend_989Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_XMLData1 = _registerName1("XMLData");
+  late final _sel_XMLDataWithOptions_1 = _registerName1("XMLDataWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_990(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_990(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_990Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_990 = __objc_msgSend_990Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_objectByApplyingXSLT_arguments_error_1 =
+      _registerName1("objectByApplyingXSLT:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_991(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xslt,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_991(
+      obj,
+      sel,
+      xslt,
+      arguments,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_991Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_991 = __objc_msgSend_991Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectByApplyingXSLTString_arguments_error_1 =
+      _registerName1("objectByApplyingXSLTString:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_992(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xslt,
+    ffi.Pointer<ObjCObject> arguments,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_992(
+      obj,
+      sel,
+      xslt,
+      arguments,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_992Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_992 = __objc_msgSend_992Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectByApplyingXSLTAtURL_arguments_error_1 =
+      _registerName1("objectByApplyingXSLTAtURL:arguments:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_993(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xsltURL,
+    ffi.Pointer<ObjCObject> argument,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_993(
+      obj,
+      sel,
+      xsltURL,
+      argument,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_993Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_993 = __objc_msgSend_993Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_validateAndReturnError_1 =
+      _registerName1("validateAndReturnError:");
+  late final _sel_rootDocument1 = _registerName1("rootDocument");
+  ffi.Pointer<ObjCObject> _objc_msgSend_994(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_994(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_994Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_994 = __objc_msgSend_994Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_parent1 = _registerName1("parent");
+  ffi.Pointer<ObjCObject> _objc_msgSend_995(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_995(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_995Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_995 = __objc_msgSend_995Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_childCount1 = _registerName1("childCount");
+  late final _sel_children1 = _registerName1("children");
+  late final _sel_childAtIndex_1 = _registerName1("childAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_996(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_996(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_996Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_996 = __objc_msgSend_996Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_previousSibling1 = _registerName1("previousSibling");
+  late final _sel_nextSibling1 = _registerName1("nextSibling");
+  late final _sel_previousNode1 = _registerName1("previousNode");
+  late final _sel_nextNode1 = _registerName1("nextNode");
+  late final _sel_detach1 = _registerName1("detach");
+  late final _sel_XPath1 = _registerName1("XPath");
+  late final _sel_localName1 = _registerName1("localName");
+  late final _sel_prefix1 = _registerName1("prefix");
+  late final _sel_URI1 = _registerName1("URI");
+  late final _sel_setURI_1 = _registerName1("setURI:");
+  late final _sel_XMLString1 = _registerName1("XMLString");
+  late final _sel_XMLStringWithOptions_1 =
+      _registerName1("XMLStringWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_997(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_997(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_997Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_997 = __objc_msgSend_997Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_canonicalXMLStringPreservingComments_1 =
+      _registerName1("canonicalXMLStringPreservingComments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_998(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool comments,
+  ) {
+    return __objc_msgSend_998(
+      obj,
+      sel,
+      comments,
+    );
+  }
+
+  late final __objc_msgSend_998Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_998 = __objc_msgSend_998Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_nodesForXPath_error_1 =
+      _registerName1("nodesForXPath:error:");
+  late final _sel_objectsForXQuery_constants_error_1 =
+      _registerName1("objectsForXQuery:constants:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_999(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> xquery,
+    ffi.Pointer<ObjCObject> constants,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_999(
+      obj,
+      sel,
+      xquery,
+      constants,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_999Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_999 = __objc_msgSend_999Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_objectsForXQuery_error_1 =
+      _registerName1("objectsForXQuery:error:");
+  late final _sel_initWithName_URI_1 = _registerName1("initWithName:URI:");
+  late final _sel_initWithName_stringValue_1 =
+      _registerName1("initWithName:stringValue:");
+  late final _sel_initWithXMLString_error_1 =
+      _registerName1("initWithXMLString:error:");
+  late final _sel_elementsForName_1 = _registerName1("elementsForName:");
+  late final _sel_elementsForLocalName_URI_1 =
+      _registerName1("elementsForLocalName:URI:");
+  late final _sel_addAttribute_1 = _registerName1("addAttribute:");
+  late final _sel_removeAttributeForName_1 =
+      _registerName1("removeAttributeForName:");
+  late final _sel_attributes1 = _registerName1("attributes");
+  late final _sel_setAttributes_1 = _registerName1("setAttributes:");
+  late final _sel_setAttributesWithDictionary_1 =
+      _registerName1("setAttributesWithDictionary:");
+  late final _sel_attributeForName_1 = _registerName1("attributeForName:");
+  late final _sel_attributeForLocalName_URI_1 =
+      _registerName1("attributeForLocalName:URI:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_1000(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localName,
+    ffi.Pointer<ObjCObject> URI,
+  ) {
+    return __objc_msgSend_1000(
+      obj,
+      sel,
+      localName,
+      URI,
+    );
+  }
+
+  late final __objc_msgSend_1000Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_1000 = __objc_msgSend_1000Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addNamespace_1 = _registerName1("addNamespace:");
+  late final _sel_removeNamespaceForPrefix_1 =
+      _registerName1("removeNamespaceForPrefix:");
+  late final _sel_namespaces1 = _registerName1("namespaces");
+  late final _sel_setNamespaces_1 = _registerName1("setNamespaces:");
+  late final _sel_namespaceForPrefix_1 = _registerName1("namespaceForPrefix:");
+  late final _sel_resolveNamespaceForName_1 =
+      _registerName1("resolveNamespaceForName:");
+  late final _sel_resolvePrefixForNamespaceURI_1 =
+      _registerName1("resolvePrefixForNamespaceURI:");
+  late final _sel_normalizeAdjacentTextNodesPreservingCDATA_1 =
+      _registerName1("normalizeAdjacentTextNodesPreservingCDATA:");
+  late final _sel_setAttributesAsDictionary_1 =
+      _registerName1("setAttributesAsDictionary:");
+  late final _class_SwiftClass1 = _getClass1("swift_module.SwiftClass");
+  late final _sel_sayHello1 = _registerName1("sayHello");
+  late final _sel_someField1 = _registerName1("someField");
+  late final _sel_setSomeField_1 = _registerName1("setSomeField:");
+}
+
+class _ObjCWrapper implements ffi.Finalizable {
+  final ffi.Pointer<ObjCObject> _id;
+  final SwiftLibrary _lib;
+  bool _pendingRelease;
+
+  _ObjCWrapper._(this._id, this._lib,
+      {bool retain = false, bool release = false})
+      : _pendingRelease = release {
+    if (retain) {
+      _lib._objc_retain(_id.cast());
+    }
+    if (release) {
+      _lib._objc_releaseFinalizer2.attach(this, _id.cast(), detach: this);
+    }
+  }
+
+  /// Releases the reference to the underlying ObjC object held by this wrapper.
+  /// Throws a StateError if this wrapper doesn't currently hold a reference.
+  void release() {
+    if (_pendingRelease) {
+      _pendingRelease = false;
+      _lib._objc_release(_id.cast());
+      _lib._objc_releaseFinalizer2.detach(this);
+    } else {
+      throw StateError(
+          'Released an ObjC object that was unowned or already released.');
+    }
+  }
+
+  @override
+  bool operator ==(Object other) {
+    return other is _ObjCWrapper && _id == other._id;
+  }
+
+  @override
+  int get hashCode => _id.hashCode;
+}
+
+class NSObject extends _ObjCWrapper {
+  NSObject._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSObject] that points to the same underlying object as [other].
+  static NSObject castFrom<T extends _ObjCWrapper>(T other) {
+    return NSObject._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSObject] that wraps the given raw object pointer.
+  static NSObject castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSObject._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSObject].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSObject1);
+  }
+
+  static void load(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSObject1, _lib._sel_load1);
+  }
+
+  static void initialize(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSObject1, _lib._sel_initialize1);
+  }
+
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_new1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject allocWithZone_(SwiftLibrary _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_allocWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  void dealloc() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dealloc1);
+  }
+
+  void finalize() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finalize1);
+  }
+
+  NSObject copy() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_copy1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject mutableCopy() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_mutableCopy1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject copyWithZone_(SwiftLibrary _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_copyWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject mutableCopyWithZone_(
+      SwiftLibrary _lib, ffi.Pointer<_NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSObject1, _lib._sel_mutableCopyWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool instancesRespondToSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSObject1,
+        _lib._sel_instancesRespondToSelector_1, aSelector);
+  }
+
+  static bool conformsToProtocol_(SwiftLibrary _lib, Protocol? protocol) {
+    return _lib._objc_msgSend_5(_lib._class_NSObject1,
+        _lib._sel_conformsToProtocol_1, protocol?._id ?? ffi.nullptr);
+  }
+
+  IMP methodForSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_6(_id, _lib._sel_methodForSelector_1, aSelector);
+  }
+
+  static IMP instanceMethodForSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_6(_lib._class_NSObject1,
+        _lib._sel_instanceMethodForSelector_1, aSelector);
+  }
+
+  void doesNotRecognizeSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_doesNotRecognizeSelector_1, aSelector);
+  }
+
+  NSObject forwardingTargetForSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_8(
+        _id, _lib._sel_forwardingTargetForSelector_1, aSelector);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void forwardInvocation_(NSInvocation? anInvocation) {
+    return _lib._objc_msgSend_372(
+        _id, _lib._sel_forwardInvocation_1, anInvocation?._id ?? ffi.nullptr);
+  }
+
+  NSMethodSignature methodSignatureForSelector_(
+      ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_373(
+        _id, _lib._sel_methodSignatureForSelector_1, aSelector);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMethodSignature instanceMethodSignatureForSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    final _ret = _lib._objc_msgSend_373(_lib._class_NSObject1,
+        _lib._sel_instanceMethodSignatureForSelector_1, aSelector);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool allowsWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsWeakReference1);
+  }
+
+  bool retainWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_retainWeakReference1);
+  }
+
+  static bool isSubclassOfClass_(SwiftLibrary _lib, NSObject aClass) {
+    return _lib._objc_msgSend_0(
+        _lib._class_NSObject1, _lib._sel_isSubclassOfClass_1, aClass._id);
+  }
+
+  static bool resolveClassMethod_(SwiftLibrary _lib, ffi.Pointer<ObjCSel> sel) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSObject1, _lib._sel_resolveClassMethod_1, sel);
+  }
+
+  static bool resolveInstanceMethod_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> sel) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSObject1, _lib._sel_resolveInstanceMethod_1, sel);
+  }
+
+  static int hash(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_10(_lib._class_NSObject1, _lib._sel_hash1);
+  }
+
+  static NSObject superclass(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_superclass1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject class1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSObject1, _lib._sel_class1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString description(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_20(_lib._class_NSObject1, _lib._sel_description1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString debugDescription(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_20(
+        _lib._class_NSObject1, _lib._sel_debugDescription1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int version(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_78(_lib._class_NSObject1, _lib._sel_version1);
+  }
+
+  static void setVersion_(SwiftLibrary _lib, int aVersion) {
+    return _lib._objc_msgSend_374(
+        _lib._class_NSObject1, _lib._sel_setVersion_1, aVersion);
+  }
+
+  NSObject get classForCoder {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForCoder1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_replacementObjectForCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject awakeAfterUsingCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_awakeAfterUsingCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void poseAsClass_(SwiftLibrary _lib, NSObject aClass) {
+    return _lib._objc_msgSend_15(
+        _lib._class_NSObject1, _lib._sel_poseAsClass_1, aClass._id);
+  }
+
+  NSObject get autoContentAccessingProxy {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_autoContentAccessingProxy1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void
+      attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_(
+          NSError? error,
+          int recoveryOptionIndex,
+          NSObject delegate,
+          ffi.Pointer<ObjCSel> didRecoverSelector,
+          ffi.Pointer<ffi.Void> contextInfo) {
+    return _lib._objc_msgSend_375(
+        _id,
+        _lib._sel_attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_1,
+        error?._id ?? ffi.nullptr,
+        recoveryOptionIndex,
+        delegate._id,
+        didRecoverSelector,
+        contextInfo);
+  }
+
+  bool attemptRecoveryFromError_optionIndex_(
+      NSError? error, int recoveryOptionIndex) {
+    return _lib._objc_msgSend_376(
+        _id,
+        _lib._sel_attemptRecoveryFromError_optionIndex_1,
+        error?._id ?? ffi.nullptr,
+        recoveryOptionIndex);
+  }
+
+  void performSelector_withObject_afterDelay_inModes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument,
+      double delay,
+      NSArray? modes) {
+    return _lib._objc_msgSend_377(
+        _id,
+        _lib._sel_performSelector_withObject_afterDelay_inModes_1,
+        aSelector,
+        anArgument._id,
+        delay,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void performSelector_withObject_afterDelay_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject anArgument, double delay) {
+    return _lib._objc_msgSend_378(
+        _id,
+        _lib._sel_performSelector_withObject_afterDelay_1,
+        aSelector,
+        anArgument._id,
+        delay);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSObject1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSObject1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  void URL_resourceDataDidBecomeAvailable_(NSURL? sender, NSData? newBytes) {
+    return _lib._objc_msgSend_379(
+        _id,
+        _lib._sel_URL_resourceDataDidBecomeAvailable_1,
+        sender?._id ?? ffi.nullptr,
+        newBytes?._id ?? ffi.nullptr);
+  }
+
+  void URLResourceDidFinishLoading_(NSURL? sender) {
+    return _lib._objc_msgSend_380(_id, _lib._sel_URLResourceDidFinishLoading_1,
+        sender?._id ?? ffi.nullptr);
+  }
+
+  void URLResourceDidCancelLoading_(NSURL? sender) {
+    return _lib._objc_msgSend_380(_id, _lib._sel_URLResourceDidCancelLoading_1,
+        sender?._id ?? ffi.nullptr);
+  }
+
+  void URL_resourceDidFailLoadingWithReason_(NSURL? sender, NSString? reason) {
+    return _lib._objc_msgSend_381(
+        _id,
+        _lib._sel_URL_resourceDidFailLoadingWithReason_1,
+        sender?._id ?? ffi.nullptr,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  bool fileManager_shouldProceedAfterError_(
+      NSFileManager? fm, NSDictionary? errorInfo) {
+    return _lib._objc_msgSend_407(
+        _id,
+        _lib._sel_fileManager_shouldProceedAfterError_1,
+        fm?._id ?? ffi.nullptr,
+        errorInfo?._id ?? ffi.nullptr);
+  }
+
+  void fileManager_willProcessPath_(NSFileManager? fm, NSString? path) {
+    return _lib._objc_msgSend_408(_id, _lib._sel_fileManager_willProcessPath_1,
+        fm?._id ?? ffi.nullptr, path?._id ?? ffi.nullptr);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSObject1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  bool validateValue_forKey_error_(ffi.Pointer<ffi.Pointer<ObjCObject>> ioValue,
+      NSString? inKey, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_220(_id, _lib._sel_validateValue_forKey_error_1,
+        ioValue, inKey?._id ?? ffi.nullptr, outError);
+  }
+
+  NSMutableArray mutableArrayValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_425(
+        _id, _lib._sel_mutableArrayValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet mutableOrderedSetValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_441(
+        _id, _lib._sel_mutableOrderedSetValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet mutableSetValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_442(
+        _id, _lib._sel_mutableSetValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKeyPath_(NSObject value, NSString? keyPath) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_setValue_forKeyPath_1,
+        value._id, keyPath?._id ?? ffi.nullptr);
+  }
+
+  bool validateValue_forKeyPath_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> ioValue,
+      NSString? inKeyPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_220(
+        _id,
+        _lib._sel_validateValue_forKeyPath_error_1,
+        ioValue,
+        inKeyPath?._id ?? ffi.nullptr,
+        outError);
+  }
+
+  NSMutableArray mutableArrayValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_425(_id,
+        _lib._sel_mutableArrayValueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet mutableOrderedSetValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_441(
+        _id,
+        _lib._sel_mutableOrderedSetValueForKeyPath_1,
+        keyPath?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet mutableSetValueForKeyPath_(NSString? keyPath) {
+    final _ret = _lib._objc_msgSend_442(_id,
+        _lib._sel_mutableSetValueForKeyPath_1, keyPath?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueForUndefinedKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForUndefinedKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forUndefinedKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_setValue_forUndefinedKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void setNilValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setNilValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary dictionaryWithValuesForKeys_(NSArray? keys) {
+    final _ret = _lib._objc_msgSend_443(
+        _id, _lib._sel_dictionaryWithValuesForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValuesForKeysWithDictionary_(NSDictionary? keyedValues) {
+    return _lib._objc_msgSend_444(
+        _id,
+        _lib._sel_setValuesForKeysWithDictionary_1,
+        keyedValues?._id ?? ffi.nullptr);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSObject1, _lib._sel_useStoredAccessor1);
+  }
+
+  NSObject storedValueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_storedValueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void takeStoredValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_takeStoredValue_forKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void takeValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_takeValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void takeValue_forKeyPath_(NSObject value, NSString? keyPath) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_takeValue_forKeyPath_1,
+        value._id, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSObject handleQueryWithUnboundKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_handleQueryWithUnboundKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void handleTakeValue_forUnboundKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_handleTakeValue_forUnboundKey_1,
+        value._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void unableToSetNilForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_unableToSetNilForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary valuesForKeys_(NSArray? keys) {
+    final _ret = _lib._objc_msgSend_443(
+        _id, _lib._sel_valuesForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void takeValuesFromDictionary_(NSDictionary? properties) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_takeValuesFromDictionary_1,
+        properties?._id ?? ffi.nullptr);
+  }
+
+  void observeValueForKeyPath_ofObject_change_context_(NSString? keyPath,
+      NSObject object, NSDictionary? change, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_445(
+        _id,
+        _lib._sel_observeValueForKeyPath_ofObject_change_context_1,
+        keyPath?._id ?? ffi.nullptr,
+        object._id,
+        change?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  void willChangeValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_willChangeValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  void didChangeValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_didChangeValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  void willChange_valuesAtIndexes_forKey_(
+      int changeKind, NSIndexSet? indexes, NSString? key) {
+    return _lib._objc_msgSend_446(
+        _id,
+        _lib._sel_willChange_valuesAtIndexes_forKey_1,
+        changeKind,
+        indexes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void didChange_valuesAtIndexes_forKey_(
+      int changeKind, NSIndexSet? indexes, NSString? key) {
+    return _lib._objc_msgSend_446(
+        _id,
+        _lib._sel_didChange_valuesAtIndexes_forKey_1,
+        changeKind,
+        indexes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void willChangeValueForKey_withSetMutation_usingObjects_(
+      NSString? key, int mutationKind, NSSet? objects) {
+    return _lib._objc_msgSend_447(
+        _id,
+        _lib._sel_willChangeValueForKey_withSetMutation_usingObjects_1,
+        key?._id ?? ffi.nullptr,
+        mutationKind,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void didChangeValueForKey_withSetMutation_usingObjects_(
+      NSString? key, int mutationKind, NSSet? objects) {
+    return _lib._objc_msgSend_447(
+        _id,
+        _lib._sel_didChangeValueForKey_withSetMutation_usingObjects_1,
+        key?._id ?? ffi.nullptr,
+        mutationKind,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSObject1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSObject1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Void> get observationInfo {
+    return _lib._objc_msgSend_19(_id, _lib._sel_observationInfo1);
+  }
+
+  set observationInfo(ffi.Pointer<ffi.Void> value) {
+    _lib._objc_msgSend_448(_id, _lib._sel_setObservationInfo_1, value);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSObject1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  NSObject get classForKeyedArchiver {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForKeyedArchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForKeyedArchiver_(NSKeyedArchiver? archiver) {
+    final _ret = _lib._objc_msgSend_461(
+        _id,
+        _lib._sel_replacementObjectForKeyedArchiver_1,
+        archiver?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSObject1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSObject1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void performSelectorOnMainThread_withObject_waitUntilDone_modes_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg, bool wait, NSArray? array) {
+    return _lib._objc_msgSend_462(
+        _id,
+        _lib._sel_performSelectorOnMainThread_withObject_waitUntilDone_modes_1,
+        aSelector,
+        arg._id,
+        wait,
+        array?._id ?? ffi.nullptr);
+  }
+
+  void performSelectorOnMainThread_withObject_waitUntilDone_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg, bool wait) {
+    return _lib._objc_msgSend_463(
+        _id,
+        _lib._sel_performSelectorOnMainThread_withObject_waitUntilDone_1,
+        aSelector,
+        arg._id,
+        wait);
+  }
+
+  void performSelector_onThread_withObject_waitUntilDone_modes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSThread? thr,
+      NSObject arg,
+      bool wait,
+      NSArray? array) {
+    return _lib._objc_msgSend_480(
+        _id,
+        _lib._sel_performSelector_onThread_withObject_waitUntilDone_modes_1,
+        aSelector,
+        thr?._id ?? ffi.nullptr,
+        arg._id,
+        wait,
+        array?._id ?? ffi.nullptr);
+  }
+
+  void performSelector_onThread_withObject_waitUntilDone_(
+      ffi.Pointer<ObjCSel> aSelector, NSThread? thr, NSObject arg, bool wait) {
+    return _lib._objc_msgSend_481(
+        _id,
+        _lib._sel_performSelector_onThread_withObject_waitUntilDone_1,
+        aSelector,
+        thr?._id ?? ffi.nullptr,
+        arg._id,
+        wait);
+  }
+
+  void performSelectorInBackground_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject arg) {
+    return _lib._objc_msgSend_82(_id,
+        _lib._sel_performSelectorInBackground_withObject_1, aSelector, arg._id);
+  }
+
+  NSObject get classForArchiver {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForArchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForArchiver_(NSArchiver? archiver) {
+    final _ret = _lib._objc_msgSend_484(_id,
+        _lib._sel_replacementObjectForArchiver_1, archiver?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get classForPortCoder {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_classForPortCoder1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject replacementObjectForPortCoder_(NSPortCoder? coder) {
+    final _ret = _lib._objc_msgSend_522(_id,
+        _lib._sel_replacementObjectForPortCoder_1, coder?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSClassDescription? get classDescription {
+    final _ret = _lib._objc_msgSend_525(_id, _lib._sel_classDescription1);
+    return _ret.address == 0
+        ? null
+        : NSClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get attributeKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributeKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get toOneRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toOneRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get toManyRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toManyRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString inverseForRelationshipKey_(NSString? relationshipKey) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_inverseForRelationshipKey_1,
+        relationshipKey?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject scriptingValueForSpecifier_(
+      NSScriptObjectSpecifier? objectSpecifier) {
+    final _ret = _lib._objc_msgSend_569(
+        _id,
+        _lib._sel_scriptingValueForSpecifier_1,
+        objectSpecifier?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get scriptingProperties {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_scriptingProperties1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptingProperties(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setScriptingProperties_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject copyScriptingValue_forKey_withProperties_(
+      NSObject value, NSString? key, NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_570(
+        _id,
+        _lib._sel_copyScriptingValue_forKey_withProperties_1,
+        value._id,
+        key?._id ?? ffi.nullptr,
+        properties?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject
+      newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_(
+          NSObject objectClass,
+          NSString? key,
+          NSObject contentsValue,
+          NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_571(
+        _id,
+        _lib._sel_newScriptingObjectOfClass_forValueForKey_withContentsValue_properties_1,
+        objectClass._id,
+        key?._id ?? ffi.nullptr,
+        contentsValue._id,
+        properties?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  int get classCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_classCode1);
+  }
+
+  NSString? get className {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_className1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueAtIndex_inPropertyWithKey_(int index, NSString? key) {
+    final _ret = _lib._objc_msgSend_572(
+        _id,
+        _lib._sel_valueAtIndex_inPropertyWithKey_1,
+        index,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueWithName_inPropertyWithKey_(NSString? name, NSString? key) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_valueWithName_inPropertyWithKey_1,
+        name?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject valueWithUniqueID_inPropertyWithKey_(
+      NSObject uniqueID, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_valueWithUniqueID_inPropertyWithKey_1,
+        uniqueID._id,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertValue_atIndex_inPropertyWithKey_(
+      NSObject value, int index, NSString? key) {
+    return _lib._objc_msgSend_573(
+        _id,
+        _lib._sel_insertValue_atIndex_inPropertyWithKey_1,
+        value._id,
+        index,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void removeValueAtIndex_fromPropertyWithKey_(int index, NSString? key) {
+    return _lib._objc_msgSend_574(
+        _id,
+        _lib._sel_removeValueAtIndex_fromPropertyWithKey_1,
+        index,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void replaceValueAtIndex_inPropertyWithKey_withValue_(
+      int index, NSString? key, NSObject value) {
+    return _lib._objc_msgSend_575(
+        _id,
+        _lib._sel_replaceValueAtIndex_inPropertyWithKey_withValue_1,
+        index,
+        key?._id ?? ffi.nullptr,
+        value._id);
+  }
+
+  void insertValue_inPropertyWithKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_insertValue_inPropertyWithKey_1,
+        value._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  NSObject coerceValue_forKey_(NSObject value, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(_id, _lib._sel_coerceValue_forKey_1,
+        value._id, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier? get objectSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_objectSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray indicesOfObjectsByEvaluatingObjectSpecifier_(
+      NSScriptObjectSpecifier? specifier) {
+    final _ret = _lib._objc_msgSend_576(
+        _id,
+        _lib._sel_indicesOfObjectsByEvaluatingObjectSpecifier_1,
+        specifier?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isEqualTo_1, object._id);
+  }
+
+  bool isLessThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_isLessThanOrEqualTo_1, object._id);
+  }
+
+  bool isLessThan_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isLessThan_1, object._id);
+  }
+
+  bool isGreaterThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_isGreaterThanOrEqualTo_1, object._id);
+  }
+
+  bool isGreaterThan_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isGreaterThan_1, object._id);
+  }
+
+  bool isNotEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_isNotEqualTo_1, object._id);
+  }
+
+  bool doesContain_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_doesContain_1, object._id);
+  }
+
+  bool isLike_(NSString? object) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isLike_1, object?._id ?? ffi.nullptr);
+  }
+
+  bool isCaseInsensitiveLike_(NSString? object) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isCaseInsensitiveLike_1, object?._id ?? ffi.nullptr);
+  }
+
+  bool scriptingIsEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsEqualTo_1, object._id);
+  }
+
+  bool scriptingIsLessThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsLessThanOrEqualTo_1, object._id);
+  }
+
+  bool scriptingIsLessThan_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsLessThan_1, object._id);
+  }
+
+  bool scriptingIsGreaterThanOrEqualTo_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsGreaterThanOrEqualTo_1, object._id);
+  }
+
+  bool scriptingIsGreaterThan_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingIsGreaterThan_1, object._id);
+  }
+
+  bool scriptingBeginsWith_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_scriptingBeginsWith_1, object._id);
+  }
+
+  bool scriptingEndsWith_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_scriptingEndsWith_1, object._id);
+  }
+
+  bool scriptingContains_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_scriptingContains_1, object._id);
+  }
+}
+
+class ObjCSel extends ffi.Opaque {}
+
+class ObjCObject extends ffi.Opaque {}
+
+typedef instancetype = ffi.Pointer<ObjCObject>;
+
+class _NSZone extends ffi.Opaque {}
+
+class Protocol extends _ObjCWrapper {
+  Protocol._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [Protocol] that points to the same underlying object as [other].
+  static Protocol castFrom<T extends _ObjCWrapper>(T other) {
+    return Protocol._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [Protocol] that wraps the given raw object pointer.
+  static Protocol castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return Protocol._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [Protocol].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_Protocol1);
+  }
+}
+
+typedef IMP = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>;
+
+class NSInvocation extends NSObject {
+  NSInvocation._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInvocation] that points to the same underlying object as [other].
+  static NSInvocation castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInvocation._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSInvocation] that wraps the given raw object pointer.
+  static NSInvocation castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInvocation._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInvocation].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSInvocation1);
+  }
+
+  static NSInvocation invocationWithMethodSignature_(
+      SwiftLibrary _lib, NSMethodSignature? sig) {
+    final _ret = _lib._objc_msgSend_366(_lib._class_NSInvocation1,
+        _lib._sel_invocationWithMethodSignature_1, sig?._id ?? ffi.nullptr);
+    return NSInvocation._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMethodSignature? get methodSignature {
+    final _ret = _lib._objc_msgSend_367(_id, _lib._sel_methodSignature1);
+    return _ret.address == 0
+        ? null
+        : NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  void retainArguments() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_retainArguments1);
+  }
+
+  bool get argumentsRetained {
+    return _lib._objc_msgSend_12(_id, _lib._sel_argumentsRetained1);
+  }
+
+  NSObject get target {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_target1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set target(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setTarget_1, value._id);
+  }
+
+  ffi.Pointer<ObjCSel> get selector {
+    return _lib._objc_msgSend_369(_id, _lib._sel_selector1);
+  }
+
+  set selector(ffi.Pointer<ObjCSel> value) {
+    _lib._objc_msgSend_370(_id, _lib._sel_setSelector_1, value);
+  }
+
+  void getReturnValue_(ffi.Pointer<ffi.Void> retLoc) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getReturnValue_1, retLoc);
+  }
+
+  void setReturnValue_(ffi.Pointer<ffi.Void> retLoc) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_setReturnValue_1, retLoc);
+  }
+
+  void getArgument_atIndex_(ffi.Pointer<ffi.Void> argumentLocation, int idx) {
+    return _lib._objc_msgSend_371(
+        _id, _lib._sel_getArgument_atIndex_1, argumentLocation, idx);
+  }
+
+  void setArgument_atIndex_(ffi.Pointer<ffi.Void> argumentLocation, int idx) {
+    return _lib._objc_msgSend_371(
+        _id, _lib._sel_setArgument_atIndex_1, argumentLocation, idx);
+  }
+
+  void invoke() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invoke1);
+  }
+
+  void invokeWithTarget_(NSObject target) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_invokeWithTarget_1, target._id);
+  }
+
+  static NSInvocation new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInvocation1, _lib._sel_new1);
+    return NSInvocation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInvocation alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInvocation1, _lib._sel_alloc1);
+    return NSInvocation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInvocation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInvocation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInvocation1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInvocation1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInvocation1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInvocation1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInvocation1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSInvocation1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInvocation1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMethodSignature extends NSObject {
+  NSMethodSignature._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMethodSignature] that points to the same underlying object as [other].
+  static NSMethodSignature castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMethodSignature._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMethodSignature] that wraps the given raw object pointer.
+  static NSMethodSignature castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMethodSignature._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMethodSignature].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMethodSignature1);
+  }
+
+  static NSMethodSignature signatureWithObjCTypes_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> types) {
+    final _ret = _lib._objc_msgSend_9(_lib._class_NSMethodSignature1,
+        _lib._sel_signatureWithObjCTypes_1, types);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get numberOfArguments {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfArguments1);
+  }
+
+  ffi.Pointer<ffi.Char> getArgumentTypeAtIndex_(int idx) {
+    return _lib._objc_msgSend_11(_id, _lib._sel_getArgumentTypeAtIndex_1, idx);
+  }
+
+  int get frameLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_frameLength1);
+  }
+
+  bool isOneway() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isOneway1);
+  }
+
+  ffi.Pointer<ffi.Char> get methodReturnType {
+    return _lib._objc_msgSend_13(_id, _lib._sel_methodReturnType1);
+  }
+
+  int get methodReturnLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_methodReturnLength1);
+  }
+
+  static NSMethodSignature new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMethodSignature1, _lib._sel_new1);
+    return NSMethodSignature._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMethodSignature alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMethodSignature1, _lib._sel_alloc1);
+    return NSMethodSignature._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMethodSignature1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMethodSignature1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMethodSignature1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMethodSignature1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMethodSignature1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMethodSignature1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSUInteger = ffi.UnsignedLong;
+
+class NSSet extends NSObject {
+  NSSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSSet] that points to the same underlying object as [other].
+  static NSSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSSet] that wraps the given raw object pointer.
+  static NSSet castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSSet1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject member_(NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_id, _lib._sel_member_1, object._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject anyObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_anyObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsObject_(NSObject anObject) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, anObject._id);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool intersectsSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_intersectsSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isEqualToSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isSubsetOfSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void makeObjectsPerformSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_makeObjectsPerformSelector_1, aSelector);
+  }
+
+  void makeObjectsPerformSelector_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject argument) {
+    return _lib._objc_msgSend_82(
+        _id,
+        _lib._sel_makeObjectsPerformSelector_withObject_1,
+        aSelector,
+        argument._id);
+  }
+
+  NSSet setByAddingObject_(NSObject anObject) {
+    final _ret = _lib._objc_msgSend_356(
+        _id, _lib._sel_setByAddingObject_1, anObject._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet setByAddingObjectsFromSet_(NSSet? other) {
+    final _ret = _lib._objc_msgSend_357(
+        _id, _lib._sel_setByAddingObjectsFromSet_1, other?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet setByAddingObjectsFromArray_(NSArray? other) {
+    final _ret = _lib._objc_msgSend_358(_id,
+        _lib._sel_setByAddingObjectsFromArray_1, other?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock13 block) {
+    return _lib._objc_msgSend_359(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock13 block) {
+    return _lib._objc_msgSend_360(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  NSSet objectsPassingTest_(ObjCBlock14 predicate) {
+    final _ret = _lib._objc_msgSend_361(
+        _id, _lib._sel_objectsPassingTest_1, predicate._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet objectsWithOptions_passingTest_(int opts, ObjCBlock14 predicate) {
+    final _ret = _lib._objc_msgSend_362(
+        _id, _lib._sel_objectsWithOptions_passingTest_1, opts, predicate._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet set1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_set1);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObject_(SwiftLibrary _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSSet1, _lib._sel_setWithObject_1, object._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _lib._class_NSSet1, _lib._sel_setWithObjects_count_1, objects, cnt);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithObjects_(SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSSet1, _lib._sel_setWithObjects_1, firstObj._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithSet_(SwiftLibrary _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _lib._class_NSSet1, _lib._sel_setWithSet_1, set?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet setWithArray_(SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSSet1,
+        _lib._sel_setWithArray_1, array?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithSet_(NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _id, _lib._sel_initWithSet_1, set?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet initWithSet_copyItems_(NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(
+        _id, _lib._sel_initWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSSet initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet filteredSetUsingPredicate_(NSPredicate? predicate) {
+    final _ret = _lib._objc_msgSend_365(_id,
+        _lib._sel_filteredSetUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSSet new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_new1);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSSet alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSSet1, _lib._sel_alloc1);
+    return NSSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSEnumerator extends NSObject {
+  NSEnumerator._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSEnumerator] that points to the same underlying object as [other].
+  static NSEnumerator castFrom<T extends _ObjCWrapper>(T other) {
+    return NSEnumerator._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSEnumerator] that wraps the given raw object pointer.
+  static NSEnumerator castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSEnumerator._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSEnumerator].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSEnumerator1);
+  }
+
+  NSObject nextObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_nextObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSEnumerator new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSEnumerator1, _lib._sel_new1);
+    return NSEnumerator._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSEnumerator alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSEnumerator1, _lib._sel_alloc1);
+    return NSEnumerator._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSEnumerator1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSEnumerator1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSEnumerator1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSEnumerator1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSEnumerator1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSEnumerator1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSEnumerator1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSEnumerator1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSEnumerator1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSString extends NSObject {
+  NSString._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSString] that points to the same underlying object as [other].
+  static NSString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSString._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSString] that wraps the given raw object pointer.
+  static NSString castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSString1);
+  }
+
+  factory NSString(SwiftLibrary _lib, String str) {
+    final cstr = str.toNativeUtf8();
+    final nsstr = stringWithCString_encoding_(_lib, cstr.cast(), 4 /* UTF8 */);
+    pkg_ffi.calloc.free(cstr);
+    return nsstr;
+  }
+
+  @override
+  String toString() => (UTF8String).cast<pkg_ffi.Utf8>().toDartString();
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  int characterAtIndex_(int index) {
+    return _lib._objc_msgSend_17(_id, _lib._sel_characterAtIndex_1, index);
+  }
+
+  @override
+  NSString init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringFromIndex_(int from) {
+    final _ret =
+        _lib._objc_msgSend_293(_id, _lib._sel_substringFromIndex_1, from);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringToIndex_(int to) {
+    final _ret = _lib._objc_msgSend_293(_id, _lib._sel_substringToIndex_1, to);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString substringWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_294(_id, _lib._sel_substringWithRange_1, range);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getCharacters_range_(ffi.Pointer<unichar> buffer, NSRange range) {
+    return _lib._objc_msgSend_295(
+        _id, _lib._sel_getCharacters_range_1, buffer, range);
+  }
+
+  int compare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_compare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int compare_options_(NSString? string, int mask) {
+    return _lib._objc_msgSend_297(
+        _id, _lib._sel_compare_options_1, string?._id ?? ffi.nullptr, mask);
+  }
+
+  int compare_options_range_(
+      NSString? string, int mask, NSRange rangeOfReceiverToCompare) {
+    return _lib._objc_msgSend_298(_id, _lib._sel_compare_options_range_1,
+        string?._id ?? ffi.nullptr, mask, rangeOfReceiverToCompare);
+  }
+
+  int compare_options_range_locale_(NSString? string, int mask,
+      NSRange rangeOfReceiverToCompare, NSObject locale) {
+    return _lib._objc_msgSend_299(_id, _lib._sel_compare_options_range_locale_1,
+        string?._id ?? ffi.nullptr, mask, rangeOfReceiverToCompare, locale._id);
+  }
+
+  int caseInsensitiveCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_caseInsensitiveCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int localizedCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_localizedCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  int localizedCaseInsensitiveCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id,
+        _lib._sel_localizedCaseInsensitiveCompare_1,
+        string?._id ?? ffi.nullptr);
+  }
+
+  int localizedStandardCompare_(NSString? string) {
+    return _lib._objc_msgSend_296(
+        _id, _lib._sel_localizedStandardCompare_1, string?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToString_(NSString? aString) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isEqualToString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  bool hasPrefix_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasPrefix_1, str?._id ?? ffi.nullptr);
+  }
+
+  bool hasSuffix_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasSuffix_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSString commonPrefixWithString_options_(NSString? str, int mask) {
+    final _ret = _lib._objc_msgSend_300(
+        _id,
+        _lib._sel_commonPrefixWithString_options_1,
+        str?._id ?? ffi.nullptr,
+        mask);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsString_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_containsString_1, str?._id ?? ffi.nullptr);
+  }
+
+  bool localizedCaseInsensitiveContainsString_(NSString? str) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_localizedCaseInsensitiveContainsString_1,
+        str?._id ?? ffi.nullptr);
+  }
+
+  bool localizedStandardContainsString_(NSString? str) {
+    return _lib._objc_msgSend_59(_id,
+        _lib._sel_localizedStandardContainsString_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSRange localizedStandardRangeOfString_(NSString? str) {
+    return _lib._objc_msgSend_301(_id,
+        _lib._sel_localizedStandardRangeOfString_1, str?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfString_(NSString? searchString) {
+    return _lib._objc_msgSend_301(
+        _id, _lib._sel_rangeOfString_1, searchString?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfString_options_(NSString? searchString, int mask) {
+    return _lib._objc_msgSend_302(_id, _lib._sel_rangeOfString_options_1,
+        searchString?._id ?? ffi.nullptr, mask);
+  }
+
+  NSRange rangeOfString_options_range_(
+      NSString? searchString, int mask, NSRange rangeOfReceiverToSearch) {
+    return _lib._objc_msgSend_303(_id, _lib._sel_rangeOfString_options_range_1,
+        searchString?._id ?? ffi.nullptr, mask, rangeOfReceiverToSearch);
+  }
+
+  NSRange rangeOfString_options_range_locale_(NSString? searchString, int mask,
+      NSRange rangeOfReceiverToSearch, NSLocale? locale) {
+    return _lib._objc_msgSend_304(
+        _id,
+        _lib._sel_rangeOfString_options_range_locale_1,
+        searchString?._id ?? ffi.nullptr,
+        mask,
+        rangeOfReceiverToSearch,
+        locale?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfCharacterFromSet_(NSCharacterSet? searchSet) {
+    return _lib._objc_msgSend_305(_id, _lib._sel_rangeOfCharacterFromSet_1,
+        searchSet?._id ?? ffi.nullptr);
+  }
+
+  NSRange rangeOfCharacterFromSet_options_(
+      NSCharacterSet? searchSet, int mask) {
+    return _lib._objc_msgSend_306(
+        _id,
+        _lib._sel_rangeOfCharacterFromSet_options_1,
+        searchSet?._id ?? ffi.nullptr,
+        mask);
+  }
+
+  NSRange rangeOfCharacterFromSet_options_range_(
+      NSCharacterSet? searchSet, int mask, NSRange rangeOfReceiverToSearch) {
+    return _lib._objc_msgSend_307(
+        _id,
+        _lib._sel_rangeOfCharacterFromSet_options_range_1,
+        searchSet?._id ?? ffi.nullptr,
+        mask,
+        rangeOfReceiverToSearch);
+  }
+
+  NSRange rangeOfComposedCharacterSequenceAtIndex_(int index) {
+    return _lib._objc_msgSend_308(
+        _id, _lib._sel_rangeOfComposedCharacterSequenceAtIndex_1, index);
+  }
+
+  NSRange rangeOfComposedCharacterSequencesForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(
+        _id, _lib._sel_rangeOfComposedCharacterSequencesForRange_1, range);
+  }
+
+  NSString stringByAppendingString_(NSString? aString) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_stringByAppendingString_1, aString?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_stringByAppendingFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  double get floatValue {
+    return _lib._objc_msgSend_215(_id, _lib._sel_floatValue1);
+  }
+
+  int get intValue {
+    return _lib._objc_msgSend_213(_id, _lib._sel_intValue1);
+  }
+
+  int get integerValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_integerValue1);
+  }
+
+  int get longLongValue {
+    return _lib._objc_msgSend_214(_id, _lib._sel_longLongValue1);
+  }
+
+  bool get boolValue {
+    return _lib._objc_msgSend_12(_id, _lib._sel_boolValue1);
+  }
+
+  NSString? get uppercaseString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_uppercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get lowercaseString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lowercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get capitalizedString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_capitalizedString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedUppercaseString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedUppercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedLowercaseString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedLowercaseString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedCapitalizedString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedCapitalizedString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString uppercaseStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(
+        _id, _lib._sel_uppercaseStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString lowercaseStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(
+        _id, _lib._sel_lowercaseStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString capitalizedStringWithLocale_(NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_310(_id,
+        _lib._sel_capitalizedStringWithLocale_1, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getLineStart_end_contentsEnd_forRange_(
+      ffi.Pointer<NSUInteger> startPtr,
+      ffi.Pointer<NSUInteger> lineEndPtr,
+      ffi.Pointer<NSUInteger> contentsEndPtr,
+      NSRange range) {
+    return _lib._objc_msgSend_311(
+        _id,
+        _lib._sel_getLineStart_end_contentsEnd_forRange_1,
+        startPtr,
+        lineEndPtr,
+        contentsEndPtr,
+        range);
+  }
+
+  NSRange lineRangeForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(_id, _lib._sel_lineRangeForRange_1, range);
+  }
+
+  void getParagraphStart_end_contentsEnd_forRange_(
+      ffi.Pointer<NSUInteger> startPtr,
+      ffi.Pointer<NSUInteger> parEndPtr,
+      ffi.Pointer<NSUInteger> contentsEndPtr,
+      NSRange range) {
+    return _lib._objc_msgSend_311(
+        _id,
+        _lib._sel_getParagraphStart_end_contentsEnd_forRange_1,
+        startPtr,
+        parEndPtr,
+        contentsEndPtr,
+        range);
+  }
+
+  NSRange paragraphRangeForRange_(NSRange range) {
+    return _lib._objc_msgSend_309(
+        _id, _lib._sel_paragraphRangeForRange_1, range);
+  }
+
+  void enumerateSubstringsInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock10 block) {
+    return _lib._objc_msgSend_312(
+        _id,
+        _lib._sel_enumerateSubstringsInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  void enumerateLinesUsingBlock_(ObjCBlock11 block) {
+    return _lib._objc_msgSend_313(
+        _id, _lib._sel_enumerateLinesUsingBlock_1, block._id);
+  }
+
+  ffi.Pointer<ffi.Char> get UTF8String {
+    return _lib._objc_msgSend_13(_id, _lib._sel_UTF8String1);
+  }
+
+  int get fastestEncoding {
+    return _lib._objc_msgSend_10(_id, _lib._sel_fastestEncoding1);
+  }
+
+  int get smallestEncoding {
+    return _lib._objc_msgSend_10(_id, _lib._sel_smallestEncoding1);
+  }
+
+  NSData dataUsingEncoding_allowLossyConversion_(int encoding, bool lossy) {
+    final _ret = _lib._objc_msgSend_314(_id,
+        _lib._sel_dataUsingEncoding_allowLossyConversion_1, encoding, lossy);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData dataUsingEncoding_(int encoding) {
+    final _ret =
+        _lib._objc_msgSend_315(_id, _lib._sel_dataUsingEncoding_1, encoding);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool canBeConvertedToEncoding_(int encoding) {
+    return _lib._objc_msgSend_89(
+        _id, _lib._sel_canBeConvertedToEncoding_1, encoding);
+  }
+
+  ffi.Pointer<ffi.Char> cStringUsingEncoding_(int encoding) {
+    return _lib._objc_msgSend_11(
+        _id, _lib._sel_cStringUsingEncoding_1, encoding);
+  }
+
+  bool getCString_maxLength_encoding_(
+      ffi.Pointer<ffi.Char> buffer, int maxBufferCount, int encoding) {
+    return _lib._objc_msgSend_316(
+        _id,
+        _lib._sel_getCString_maxLength_encoding_1,
+        buffer,
+        maxBufferCount,
+        encoding);
+  }
+
+  bool getBytes_maxLength_usedLength_encoding_options_range_remainingRange_(
+      ffi.Pointer<ffi.Void> buffer,
+      int maxBufferCount,
+      ffi.Pointer<NSUInteger> usedBufferCount,
+      int encoding,
+      int options,
+      NSRange range,
+      NSRangePointer leftover) {
+    return _lib._objc_msgSend_317(
+        _id,
+        _lib._sel_getBytes_maxLength_usedLength_encoding_options_range_remainingRange_1,
+        buffer,
+        maxBufferCount,
+        usedBufferCount,
+        encoding,
+        options,
+        range,
+        leftover);
+  }
+
+  int maximumLengthOfBytesUsingEncoding_(int enc) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_maximumLengthOfBytesUsingEncoding_1, enc);
+  }
+
+  int lengthOfBytesUsingEncoding_(int enc) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_lengthOfBytesUsingEncoding_1, enc);
+  }
+
+  static ffi.Pointer<NSStringEncoding> getAvailableStringEncodings(
+      SwiftLibrary _lib) {
+    return _lib._objc_msgSend_318(
+        _lib._class_NSString1, _lib._sel_availableStringEncodings1);
+  }
+
+  static NSString localizedNameOfStringEncoding_(
+      SwiftLibrary _lib, int encoding) {
+    final _ret = _lib._objc_msgSend_293(_lib._class_NSString1,
+        _lib._sel_localizedNameOfStringEncoding_1, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultCStringEncoding(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_10(
+        _lib._class_NSString1, _lib._sel_defaultCStringEncoding1);
+  }
+
+  NSString? get decomposedStringWithCanonicalMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_decomposedStringWithCanonicalMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get precomposedStringWithCanonicalMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_precomposedStringWithCanonicalMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get decomposedStringWithCompatibilityMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_decomposedStringWithCompatibilityMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get precomposedStringWithCompatibilityMapping {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_precomposedStringWithCompatibilityMapping1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsSeparatedByString_(NSString? separator) {
+    final _ret = _lib._objc_msgSend_119(_id,
+        _lib._sel_componentsSeparatedByString_1, separator?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsSeparatedByCharactersInSet_(NSCharacterSet? separator) {
+    final _ret = _lib._objc_msgSend_319(
+        _id,
+        _lib._sel_componentsSeparatedByCharactersInSet_1,
+        separator?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByTrimmingCharactersInSet_(NSCharacterSet? set) {
+    final _ret = _lib._objc_msgSend_320(_id,
+        _lib._sel_stringByTrimmingCharactersInSet_1, set?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByPaddingToLength_withString_startingAtIndex_(
+      int newLength, NSString? padString, int padIndex) {
+    final _ret = _lib._objc_msgSend_321(
+        _id,
+        _lib._sel_stringByPaddingToLength_withString_startingAtIndex_1,
+        newLength,
+        padString?._id ?? ffi.nullptr,
+        padIndex);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByFoldingWithOptions_locale_(int options, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_322(
+        _id,
+        _lib._sel_stringByFoldingWithOptions_locale_1,
+        options,
+        locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingOccurrencesOfString_withString_options_range_(
+      NSString? target,
+      NSString? replacement,
+      int options,
+      NSRange searchRange) {
+    final _ret = _lib._objc_msgSend_323(
+        _id,
+        _lib._sel_stringByReplacingOccurrencesOfString_withString_options_range_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr,
+        options,
+        searchRange);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingOccurrencesOfString_withString_(
+      NSString? target, NSString? replacement) {
+    final _ret = _lib._objc_msgSend_324(
+        _id,
+        _lib._sel_stringByReplacingOccurrencesOfString_withString_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingCharactersInRange_withString_(
+      NSRange range, NSString? replacement) {
+    final _ret = _lib._objc_msgSend_325(
+        _id,
+        _lib._sel_stringByReplacingCharactersInRange_withString_1,
+        range,
+        replacement?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByApplyingTransform_reverse_(
+      NSStringTransform transform, bool reverse) {
+    final _ret = _lib._objc_msgSend_326(
+        _id, _lib._sel_stringByApplyingTransform_reverse_1, transform, reverse);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_atomically_encoding_error_(NSURL? url, bool useAuxiliaryFile,
+      int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_327(
+        _id,
+        _lib._sel_writeToURL_atomically_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        useAuxiliaryFile,
+        enc,
+        error);
+  }
+
+  bool writeToFile_atomically_encoding_error_(
+      NSString? path,
+      bool useAuxiliaryFile,
+      int enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_328(
+        _id,
+        _lib._sel_writeToFile_atomically_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        useAuxiliaryFile,
+        enc,
+        error);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get hash {
+    return _lib._objc_msgSend_10(_id, _lib._sel_hash1);
+  }
+
+  NSString initWithCharactersNoCopy_length_freeWhenDone_(
+      ffi.Pointer<unichar> characters, int length, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_329(
+        _id,
+        _lib._sel_initWithCharactersNoCopy_length_freeWhenDone_1,
+        characters,
+        length,
+        freeBuffer);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithCharactersNoCopy_length_deallocator_(
+      ffi.Pointer<unichar> chars, int len, ObjCBlock12 deallocator) {
+    final _ret = _lib._objc_msgSend_330(
+        _id,
+        _lib._sel_initWithCharactersNoCopy_length_deallocator_1,
+        chars,
+        len,
+        deallocator._id);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithCharacters_length_(
+      ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(
+        _id, _lib._sel_initWithCharacters_length_1, characters, length);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithUTF8String_(ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(
+        _id, _lib._sel_initWithUTF8String_1, nullTerminatedCString);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithString_(NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, aString?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_arguments_(
+      NSString? format, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_333(
+        _id,
+        _lib._sel_initWithFormat_arguments_1,
+        format?._id ?? ffi.nullptr,
+        argList);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_locale_(NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(_id, _lib._sel_initWithFormat_locale_1,
+        format?._id ?? ffi.nullptr, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithFormat_locale_arguments_(
+      NSString? format, NSObject locale, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_334(
+        _id,
+        _lib._sel_initWithFormat_locale_arguments_1,
+        format?._id ?? ffi.nullptr,
+        locale._id,
+        argList);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithData_encoding_(NSData? data, int encoding) {
+    final _ret = _lib._objc_msgSend_335(_id, _lib._sel_initWithData_encoding_1,
+        data?._id ?? ffi.nullptr, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithBytes_length_encoding_(
+      ffi.Pointer<ffi.Void> bytes, int len, int encoding) {
+    final _ret = _lib._objc_msgSend_336(
+        _id, _lib._sel_initWithBytes_length_encoding_1, bytes, len, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithBytesNoCopy_length_encoding_freeWhenDone_(
+      ffi.Pointer<ffi.Void> bytes, int len, int encoding, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_337(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_encoding_freeWhenDone_1,
+        bytes,
+        len,
+        encoding,
+        freeBuffer);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSString initWithBytesNoCopy_length_encoding_deallocator_(
+      ffi.Pointer<ffi.Void> bytes,
+      int len,
+      int encoding,
+      ObjCBlock9 deallocator) {
+    final _ret = _lib._objc_msgSend_338(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_encoding_deallocator_1,
+        bytes,
+        len,
+        encoding,
+        deallocator._id);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSString string(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_string1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithCharacters_length_(
+      SwiftLibrary _lib, ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(_lib._class_NSString1,
+        _lib._sel_stringWithCharacters_length_1, characters, length);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithUTF8String_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(_lib._class_NSString1,
+        _lib._sel_stringWithUTF8String_1, nullTerminatedCString);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithFormat_(SwiftLibrary _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringWithFormat_(
+      SwiftLibrary _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_localizedStringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithCString_encoding_(
+      ffi.Pointer<ffi.Char> nullTerminatedCString, int encoding) {
+    final _ret = _lib._objc_msgSend_339(_id,
+        _lib._sel_initWithCString_encoding_1, nullTerminatedCString, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithCString_encoding_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> cString, int enc) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSString1,
+        _lib._sel_stringWithCString_encoding_1, cString, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfURL_encoding_error_(
+      NSURL? url, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _id,
+        _lib._sel_initWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfFile_encoding_error_(
+      NSString? path, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _id,
+        _lib._sel_initWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfURL_encoding_error_(SwiftLibrary _lib,
+      NSURL? url, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfFile_encoding_error_(SwiftLibrary _lib,
+      NSString? path, int enc, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfURL_usedEncoding_error_(
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _id,
+        _lib._sel_initWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString initWithContentsOfFile_usedEncoding_error_(
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _id,
+        _lib._sel_initWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfURL_usedEncoding_error_(
+      SwiftLibrary _lib,
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString stringWithContentsOfFile_usedEncoding_error_(
+      SwiftLibrary _lib,
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int
+      stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_(
+          SwiftLibrary _lib,
+          NSData? data,
+          NSDictionary? opts,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+          ffi.Pointer<ffi.Bool> usedLossyConversion) {
+    return _lib._objc_msgSend_344(
+        _lib._class_NSString1,
+        _lib._sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1,
+        data?._id ?? ffi.nullptr,
+        opts?._id ?? ffi.nullptr,
+        string,
+        usedLossyConversion);
+  }
+
+  NSObject propertyList() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_propertyList1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary propertyListFromStringsFileFormat() {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_propertyListFromStringsFileFormat1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Char> cString() {
+    return _lib._objc_msgSend_13(_id, _lib._sel_cString1);
+  }
+
+  ffi.Pointer<ffi.Char> lossyCString() {
+    return _lib._objc_msgSend_13(_id, _lib._sel_lossyCString1);
+  }
+
+  int cStringLength() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_cStringLength1);
+  }
+
+  void getCString_(ffi.Pointer<ffi.Char> bytes) {
+    return _lib._objc_msgSend_251(_id, _lib._sel_getCString_1, bytes);
+  }
+
+  void getCString_maxLength_(ffi.Pointer<ffi.Char> bytes, int maxLength) {
+    return _lib._objc_msgSend_345(
+        _id, _lib._sel_getCString_maxLength_1, bytes, maxLength);
+  }
+
+  void getCString_maxLength_range_remainingRange_(ffi.Pointer<ffi.Char> bytes,
+      int maxLength, NSRange aRange, NSRangePointer leftoverRange) {
+    return _lib._objc_msgSend_346(
+        _id,
+        _lib._sel_getCString_maxLength_range_remainingRange_1,
+        bytes,
+        maxLength,
+        aRange,
+        leftoverRange);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  NSObject initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfFile_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSString1,
+        _lib._sel_stringWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSString1,
+        _lib._sel_stringWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCStringNoCopy_length_freeWhenDone_(
+      ffi.Pointer<ffi.Char> bytes, int length, bool freeBuffer) {
+    final _ret = _lib._objc_msgSend_347(
+        _id,
+        _lib._sel_initWithCStringNoCopy_length_freeWhenDone_1,
+        bytes,
+        length,
+        freeBuffer);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSObject initWithCString_length_(ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(
+        _id, _lib._sel_initWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCString_(ffi.Pointer<ffi.Char> bytes) {
+    final _ret =
+        _lib._objc_msgSend_332(_id, _lib._sel_initWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSString1,
+        _lib._sel_stringWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> bytes) {
+    final _ret = _lib._objc_msgSend_332(
+        _lib._class_NSString1, _lib._sel_stringWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getCharacters_(ffi.Pointer<unichar> buffer) {
+    return _lib._objc_msgSend_348(_id, _lib._sel_getCharacters_1, buffer);
+  }
+
+  NSString variantFittingPresentationWidth_(int width) {
+    final _ret = _lib._objc_msgSend_349(
+        _id, _lib._sel_variantFittingPresentationWidth_1, width);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathWithComponents_(SwiftLibrary _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_350(_lib._class_NSString1,
+        _lib._sel_pathWithComponents_1, components?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get pathComponents {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_pathComponents1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get absolutePath {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAbsolutePath1);
+  }
+
+  NSString? get lastPathComponent {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByDeletingLastPathComponent {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_stringByDeletingLastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingPathComponent_(NSString? str) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_stringByAppendingPathComponent_1, str?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pathExtension {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByDeletingPathExtension {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByDeletingPathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAppendingPathExtension_(NSString? str) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_stringByAppendingPathExtension_1, str?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByAbbreviatingWithTildeInPath {
+    final _ret = _lib._objc_msgSend_20(
+        _id, _lib._sel_stringByAbbreviatingWithTildeInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByExpandingTildeInPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByExpandingTildeInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByStandardizingPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByStandardizingPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByResolvingSymlinksInPath {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByResolvingSymlinksInPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray stringsByAppendingPaths_(NSArray? paths) {
+    final _ret = _lib._objc_msgSend_63(
+        _id, _lib._sel_stringsByAppendingPaths_1, paths?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputName,
+      bool flag,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputArray,
+      NSArray? filterTypes) {
+    return _lib._objc_msgSend_351(
+        _id,
+        _lib._sel_completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_1,
+        outputName,
+        flag,
+        outputArray,
+        filterTypes?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Char> get fileSystemRepresentation {
+    return _lib._objc_msgSend_13(_id, _lib._sel_fileSystemRepresentation1);
+  }
+
+  bool getFileSystemRepresentation_maxLength_(
+      ffi.Pointer<ffi.Char> cname, int max) {
+    return _lib._objc_msgSend_218(
+        _id, _lib._sel_getFileSystemRepresentation_maxLength_1, cname, max);
+  }
+
+  NSString stringByAddingPercentEncodingWithAllowedCharacters_(
+      NSCharacterSet? allowedCharacters) {
+    final _ret = _lib._objc_msgSend_320(
+        _id,
+        _lib._sel_stringByAddingPercentEncodingWithAllowedCharacters_1,
+        allowedCharacters?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get stringByRemovingPercentEncoding {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_stringByRemovingPercentEncoding1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByAddingPercentEscapesUsingEncoding_(int enc) {
+    final _ret = _lib._objc_msgSend_293(
+        _id, _lib._sel_stringByAddingPercentEscapesUsingEncoding_1, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString stringByReplacingPercentEscapesUsingEncoding_(int enc) {
+    final _ret = _lib._objc_msgSend_293(
+        _id, _lib._sel_stringByReplacingPercentEscapesUsingEncoding_1, enc);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray linguisticTagsInRange_scheme_options_orthography_tokenRanges_(
+      NSRange range,
+      NSLinguisticTagScheme scheme,
+      int options,
+      NSOrthography? orthography,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges) {
+    final _ret = _lib._objc_msgSend_353(
+        _id,
+        _lib._sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1,
+        range,
+        scheme,
+        options,
+        orthography?._id ?? ffi.nullptr,
+        tokenRanges);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_(
+      NSRange range,
+      NSLinguisticTagScheme scheme,
+      int options,
+      NSOrthography? orthography,
+      ObjCBlock10 block) {
+    return _lib._objc_msgSend_354(
+        _id,
+        _lib._sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1,
+        range,
+        scheme,
+        options,
+        orthography?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  static NSString new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_new1);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSString alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSString1, _lib._sel_alloc1);
+    return NSString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSString1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSString1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+extension StringToNSString on String {
+  NSString toNSString(SwiftLibrary lib) => NSString(lib, this);
+}
+
+typedef unichar = ffi.UnsignedShort;
+
+class NSCoder extends NSObject {
+  NSCoder._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCoder] that points to the same underlying object as [other].
+  static NSCoder castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCoder._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCoder] that wraps the given raw object pointer.
+  static NSCoder castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCoder._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCoder].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSCoder1);
+  }
+
+  void encodeValueOfObjCType_at_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> addr) {
+    return _lib._objc_msgSend_18(
+        _id, _lib._sel_encodeValueOfObjCType_at_1, type, addr);
+  }
+
+  void encodeDataObject_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_encodeDataObject_1, data?._id ?? ffi.nullptr);
+  }
+
+  NSData decodeDataObject() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_decodeDataObject1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValueOfObjCType_at_size_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> data, int size) {
+    return _lib._objc_msgSend_249(
+        _id, _lib._sel_decodeValueOfObjCType_at_size_1, type, data, size);
+  }
+
+  int versionForClassName_(NSString? className) {
+    return _lib._objc_msgSend_250(
+        _id, _lib._sel_versionForClassName_1, className?._id ?? ffi.nullptr);
+  }
+
+  void encodeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_encodeObject_1, object._id);
+  }
+
+  void encodeRootObject_(NSObject rootObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeRootObject_1, rootObject._id);
+  }
+
+  void encodeBycopyObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeBycopyObject_1, anObject._id);
+  }
+
+  void encodeByrefObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeByrefObject_1, anObject._id);
+  }
+
+  void encodeConditionalObject_(NSObject object) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeConditionalObject_1, object._id);
+  }
+
+  void encodeValuesOfObjCTypes_(ffi.Pointer<ffi.Char> types) {
+    return _lib._objc_msgSend_251(
+        _id, _lib._sel_encodeValuesOfObjCTypes_1, types);
+  }
+
+  void encodeArrayOfObjCType_count_at_(
+      ffi.Pointer<ffi.Char> type, int count, ffi.Pointer<ffi.Void> array) {
+    return _lib._objc_msgSend_252(
+        _id, _lib._sel_encodeArrayOfObjCType_count_at_1, type, count, array);
+  }
+
+  void encodeBytes_length_(ffi.Pointer<ffi.Void> byteaddr, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_encodeBytes_length_1, byteaddr, length);
+  }
+
+  NSObject decodeObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodeObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_253(
+        _id, _lib._sel_decodeTopLevelObjectAndReturnError_1, error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValuesOfObjCTypes_(ffi.Pointer<ffi.Char> types) {
+    return _lib._objc_msgSend_251(
+        _id, _lib._sel_decodeValuesOfObjCTypes_1, types);
+  }
+
+  void decodeArrayOfObjCType_count_at_(
+      ffi.Pointer<ffi.Char> itemType, int count, ffi.Pointer<ffi.Void> array) {
+    return _lib._objc_msgSend_252(_id,
+        _lib._sel_decodeArrayOfObjCType_count_at_1, itemType, count, array);
+  }
+
+  ffi.Pointer<ffi.Void> decodeBytesWithReturnedLength_(
+      ffi.Pointer<NSUInteger> lengthp) {
+    return _lib._objc_msgSend_254(
+        _id, _lib._sel_decodeBytesWithReturnedLength_1, lengthp);
+  }
+
+  void encodePropertyList_(NSObject aPropertyList) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodePropertyList_1, aPropertyList._id);
+  }
+
+  NSObject decodePropertyList() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodePropertyList1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setObjectZone_(ffi.Pointer<NSZone> zone) {
+    return _lib._objc_msgSend_255(_id, _lib._sel_setObjectZone_1, zone);
+  }
+
+  ffi.Pointer<NSZone> objectZone() {
+    return _lib._objc_msgSend_256(_id, _lib._sel_objectZone1);
+  }
+
+  int get systemVersion {
+    return _lib._objc_msgSend_191(_id, _lib._sel_systemVersion1);
+  }
+
+  bool get allowsKeyedCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsKeyedCoding1);
+  }
+
+  void encodeObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_encodeObject_forKey_1,
+        object._id, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeConditionalObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_encodeConditionalObject_forKey_1,
+        object._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  void encodeBool_forKey_(bool value, NSString? key) {
+    return _lib._objc_msgSend_257(
+        _id, _lib._sel_encodeBool_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_258(
+        _id, _lib._sel_encodeInt_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt32_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_259(
+        _id, _lib._sel_encodeInt32_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeInt64_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_260(
+        _id, _lib._sel_encodeInt64_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeFloat_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_261(
+        _id, _lib._sel_encodeFloat_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeDouble_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_262(
+        _id, _lib._sel_encodeDouble_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeBytes_length_forKey_(
+      ffi.Pointer<ffi.Uint8> bytes, int length, NSString? key) {
+    return _lib._objc_msgSend_263(_id, _lib._sel_encodeBytes_length_forKey_1,
+        bytes, length, key?._id ?? ffi.nullptr);
+  }
+
+  bool containsValueForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_containsValueForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSObject decodeObjectForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_decodeObjectForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectForKey_error_(
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_264(
+        _id,
+        _lib._sel_decodeTopLevelObjectForKey_error_1,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool decodeBoolForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_decodeBoolForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeIntForKey_(NSString? key) {
+    return _lib._objc_msgSend_265(
+        _id, _lib._sel_decodeIntForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeInt32ForKey_(NSString? key) {
+    return _lib._objc_msgSend_266(
+        _id, _lib._sel_decodeInt32ForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeInt64ForKey_(NSString? key) {
+    return _lib._objc_msgSend_267(
+        _id, _lib._sel_decodeInt64ForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  double decodeFloatForKey_(NSString? key) {
+    return _lib._objc_msgSend_268(
+        _id, _lib._sel_decodeFloatForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  double decodeDoubleForKey_(NSString? key) {
+    return _lib._objc_msgSend_269(
+        _id, _lib._sel_decodeDoubleForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ffi.Uint8> decodeBytesForKey_returnedLength_(
+      NSString? key, ffi.Pointer<NSUInteger> lengthp) {
+    return _lib._objc_msgSend_270(
+        _id,
+        _lib._sel_decodeBytesForKey_returnedLength_1,
+        key?._id ?? ffi.nullptr,
+        lengthp);
+  }
+
+  void encodeInteger_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_271(
+        _id, _lib._sel_encodeInteger_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  int decodeIntegerForKey_(NSString? key) {
+    return _lib._objc_msgSend_250(
+        _id, _lib._sel_decodeIntegerForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool get requiresSecureCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_requiresSecureCoding1);
+  }
+
+  NSObject decodeObjectOfClass_forKey_(NSObject aClass, NSString? key) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_decodeObjectOfClass_forKey_1,
+        aClass._id,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectOfClass_forKey_error_(NSObject aClass,
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_273(
+        _id,
+        _lib._sel_decodeTopLevelObjectOfClass_forKey_error_1,
+        aClass._id,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray decodeArrayOfObjectsOfClass_forKey_(NSObject cls, NSString? key) {
+    final _ret = _lib._objc_msgSend_274(
+        _id,
+        _lib._sel_decodeArrayOfObjectsOfClass_forKey_1,
+        cls._id,
+        key?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_(
+      NSObject keyCls, NSObject objectCls, NSString? key) {
+    final _ret = _lib._objc_msgSend_275(
+        _id,
+        _lib._sel_decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_1,
+        keyCls._id,
+        objectCls._id,
+        key?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeObjectOfClasses_forKey_(NSSet? classes, NSString? key) {
+    final _ret = _lib._objc_msgSend_276(
+        _id,
+        _lib._sel_decodeObjectOfClasses_forKey_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodeTopLevelObjectOfClasses_forKey_error_(NSSet? classes,
+      NSString? key, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_277(
+        _id,
+        _lib._sel_decodeTopLevelObjectOfClasses_forKey_error_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray decodeArrayOfObjectsOfClasses_forKey_(NSSet? classes, NSString? key) {
+    final _ret = _lib._objc_msgSend_278(
+        _id,
+        _lib._sel_decodeArrayOfObjectsOfClasses_forKey_1,
+        classes?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_(
+      NSSet? keyClasses, NSSet? objectClasses, NSString? key) {
+    final _ret = _lib._objc_msgSend_279(
+        _id,
+        _lib._sel_decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_1,
+        keyClasses?._id ?? ffi.nullptr,
+        objectClasses?._id ?? ffi.nullptr,
+        key?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject decodePropertyListForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_decodePropertyListForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet? get allowedClasses {
+    final _ret = _lib._objc_msgSend_280(_id, _lib._sel_allowedClasses1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void failWithError_(NSError? error) {
+    return _lib._objc_msgSend_281(
+        _id, _lib._sel_failWithError_1, error?._id ?? ffi.nullptr);
+  }
+
+  int get decodingFailurePolicy {
+    return _lib._objc_msgSend_282(_id, _lib._sel_decodingFailurePolicy1);
+  }
+
+  NSError? get error {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_error1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  void encodeNXObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_encodeNXObject_1, object._id);
+  }
+
+  NSObject decodeNXObject() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_decodeNXObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void decodeValueOfObjCType_at_(
+      ffi.Pointer<ffi.Char> type, ffi.Pointer<ffi.Void> data) {
+    return _lib._objc_msgSend_18(
+        _id, _lib._sel_decodeValueOfObjCType_at_1, type, data);
+  }
+
+  void encodePoint_(NSPoint point) {
+    return _lib._objc_msgSend_284(_id, _lib._sel_encodePoint_1, point);
+  }
+
+  NSPoint decodePoint() {
+    return _lib._objc_msgSend_54(_id, _lib._sel_decodePoint1);
+  }
+
+  void encodeSize_(NSSize size) {
+    return _lib._objc_msgSend_285(_id, _lib._sel_encodeSize_1, size);
+  }
+
+  NSSize decodeSize() {
+    return _lib._objc_msgSend_55(_id, _lib._sel_decodeSize1);
+  }
+
+  void encodeRect_(NSRect rect) {
+    return _lib._objc_msgSend_286(_id, _lib._sel_encodeRect_1, rect);
+  }
+
+  NSRect decodeRect() {
+    return _lib._objc_msgSend_56(_id, _lib._sel_decodeRect1);
+  }
+
+  void encodePoint_forKey_(NSPoint point, NSString? key) {
+    return _lib._objc_msgSend_287(
+        _id, _lib._sel_encodePoint_forKey_1, point, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeSize_forKey_(NSSize size, NSString? key) {
+    return _lib._objc_msgSend_288(
+        _id, _lib._sel_encodeSize_forKey_1, size, key?._id ?? ffi.nullptr);
+  }
+
+  void encodeRect_forKey_(NSRect rect, NSString? key) {
+    return _lib._objc_msgSend_289(
+        _id, _lib._sel_encodeRect_forKey_1, rect, key?._id ?? ffi.nullptr);
+  }
+
+  NSPoint decodePointForKey_(NSString? key) {
+    return _lib._objc_msgSend_290(
+        _id, _lib._sel_decodePointForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSSize decodeSizeForKey_(NSString? key) {
+    return _lib._objc_msgSend_291(
+        _id, _lib._sel_decodeSizeForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSRect decodeRectForKey_(NSString? key) {
+    return _lib._objc_msgSend_292(
+        _id, _lib._sel_decodeRectForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  static NSCoder new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCoder1, _lib._sel_new1);
+    return NSCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCoder alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCoder1, _lib._sel_alloc1);
+    return NSCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCoder1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCoder1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCoder1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCoder1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCoder1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCoder1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCoder1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSData extends NSObject {
+  NSData._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSData] that points to the same underlying object as [other].
+  static NSData castFrom<T extends _ObjCWrapper>(T other) {
+    return NSData._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSData] that wraps the given raw object pointer.
+  static NSData castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSData._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSData].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSData1);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  ffi.Pointer<ffi.Void> get bytes {
+    return _lib._objc_msgSend_19(_id, _lib._sel_bytes1);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getBytes_length_(ffi.Pointer<ffi.Void> buffer, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_getBytes_length_1, buffer, length);
+  }
+
+  void getBytes_range_(ffi.Pointer<ffi.Void> buffer, NSRange range) {
+    return _lib._objc_msgSend_22(
+        _id, _lib._sel_getBytes_range_1, buffer, range);
+  }
+
+  bool isEqualToData_(NSData? other) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_isEqualToData_1, other?._id ?? ffi.nullptr);
+  }
+
+  NSData subdataWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_24(_id, _lib._sel_subdataWithRange_1, range);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  bool writeToFile_options_error_(NSString? path, int writeOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    return _lib._objc_msgSend_233(_id, _lib._sel_writeToFile_options_error_1,
+        path?._id ?? ffi.nullptr, writeOptionsMask, errorPtr);
+  }
+
+  bool writeToURL_options_error_(NSURL? url, int writeOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    return _lib._objc_msgSend_234(_id, _lib._sel_writeToURL_options_error_1,
+        url?._id ?? ffi.nullptr, writeOptionsMask, errorPtr);
+  }
+
+  NSRange rangeOfData_options_range_(
+      NSData? dataToFind, int mask, NSRange searchRange) {
+    return _lib._objc_msgSend_235(_id, _lib._sel_rangeOfData_options_range_1,
+        dataToFind?._id ?? ffi.nullptr, mask, searchRange);
+  }
+
+  void enumerateByteRangesUsingBlock_(ObjCBlock8 block) {
+    return _lib._objc_msgSend_236(
+        _id, _lib._sel_enumerateByteRangesUsingBlock_1, block._id);
+  }
+
+  static NSData data(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_data1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithBytes_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _lib._class_NSData1, _lib._sel_dataWithBytes_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithBytesNoCopy_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSData1,
+        _lib._sel_dataWithBytesNoCopy_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData dataWithBytesNoCopy_length_freeWhenDone_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_lib._class_NSData1,
+        _lib._sel_dataWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData dataWithContentsOfFile_options_error_(
+      SwiftLibrary _lib,
+      NSString? path,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _lib._class_NSData1,
+        _lib._sel_dataWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfURL_options_error_(
+      SwiftLibrary _lib,
+      NSURL? url,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _lib._class_NSData1,
+        _lib._sel_dataWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfFile_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBytes_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _id, _lib._sel_initWithBytes_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(
+        _id, _lib._sel_initWithBytesNoCopy_length_1, bytes, length);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_freeWhenDone_(
+      ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_id,
+        _lib._sel_initWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithBytesNoCopy_length_deallocator_(
+      ffi.Pointer<ffi.Void> bytes, int length, ObjCBlock9 deallocator) {
+    final _ret = _lib._objc_msgSend_241(
+        _id,
+        _lib._sel_initWithBytesNoCopy_length_deallocator_1,
+        bytes,
+        length,
+        deallocator._id);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSData initWithContentsOfFile_options_error_(NSString? path,
+      int readOptionsMask, ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _id,
+        _lib._sel_initWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfURL_options_error_(NSURL? url, int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataWithData_(SwiftLibrary _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSData1,
+        _lib._sel_dataWithData_1, data?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBase64EncodedString_options_(
+      NSString? base64String, int options) {
+    final _ret = _lib._objc_msgSend_243(
+        _id,
+        _lib._sel_initWithBase64EncodedString_options_1,
+        base64String?._id ?? ffi.nullptr,
+        options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString base64EncodedStringWithOptions_(int options) {
+    final _ret = _lib._objc_msgSend_244(
+        _id, _lib._sel_base64EncodedStringWithOptions_1, options);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData initWithBase64EncodedData_options_(NSData? base64Data, int options) {
+    final _ret = _lib._objc_msgSend_245(
+        _id,
+        _lib._sel_initWithBase64EncodedData_options_1,
+        base64Data?._id ?? ffi.nullptr,
+        options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData base64EncodedDataWithOptions_(int options) {
+    final _ret = _lib._objc_msgSend_246(
+        _id, _lib._sel_base64EncodedDataWithOptions_1, options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData decompressedDataUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_247(_id,
+        _lib._sel_decompressedDataUsingAlgorithm_error_1, algorithm, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData compressedDataUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_247(
+        _id, _lib._sel_compressedDataUsingAlgorithm_error_1, algorithm, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getBytes_(ffi.Pointer<ffi.Void> buffer) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getBytes_1, buffer);
+  }
+
+  static NSObject dataWithContentsOfMappedFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSData1,
+        _lib._sel_dataWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithContentsOfMappedFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_initWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithBase64Encoding_(NSString? base64String) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_initWithBase64Encoding_1,
+        base64String?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString base64Encoding() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_base64Encoding1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_new1);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSData alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSData1, _lib._sel_alloc1);
+    return NSData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSData1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSData1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSData1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSData1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSData1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSData1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSData1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRange = _NSRange;
+
+class _NSRange extends ffi.Struct {
+  @NSUInteger()
+  external int location;
+
+  @NSUInteger()
+  external int length;
+}
+
+class NSURL extends NSObject {
+  NSURL._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURL] that points to the same underlying object as [other].
+  static NSURL castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURL._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURL] that wraps the given raw object pointer.
+  static NSURL castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURL._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURL].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURL1);
+  }
+
+  NSURL initWithScheme_host_path_(
+      NSString? scheme, NSString? host, NSString? path) {
+    final _ret = _lib._objc_msgSend_26(
+        _id,
+        _lib._sel_initWithScheme_host_path_1,
+        scheme?._id ?? ffi.nullptr,
+        host?._id ?? ffi.nullptr,
+        path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_isDirectory_relativeToURL_(
+      NSString? path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_27(
+        _id,
+        _lib._sel_initFileURLWithPath_isDirectory_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_relativeToURL_(NSString? path, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _id,
+        _lib._sel_initFileURLWithPath_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_isDirectory_(NSString? path, bool isDir) {
+    final _ret = _lib._objc_msgSend_29(
+        _id,
+        _lib._sel_initFileURLWithPath_isDirectory_1,
+        path?._id ?? ffi.nullptr,
+        isDir);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initFileURLWithPath_1, path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_isDirectory_relativeToURL_(
+      SwiftLibrary _lib, NSString? path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_31(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_isDirectory_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_relativeToURL_(
+      SwiftLibrary _lib, NSString? path, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_32(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_relativeToURL_1,
+        path?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_isDirectory_(
+      SwiftLibrary _lib, NSString? path, bool isDir) {
+    final _ret = _lib._objc_msgSend_33(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_isDirectory_1,
+        path?._id ?? ffi.nullptr,
+        isDir);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithPath_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_34(_lib._class_NSURL1,
+        _lib._sel_fileURLWithPath_1, path?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_(
+      ffi.Pointer<ffi.Char> path, bool isDir, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_35(
+        _id,
+        _lib._sel_initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1,
+        path,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_(
+      SwiftLibrary _lib,
+      ffi.Pointer<ffi.Char> path,
+      bool isDir,
+      NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_36(
+        _lib._class_NSURL1,
+        _lib._sel_fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1,
+        path,
+        isDir,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithString_(NSString? URLString) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, URLString?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithString_relativeToURL_(NSString? URLString, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _id,
+        _lib._sel_initWithString_relativeToURL_1,
+        URLString?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithString_(SwiftLibrary _lib, NSString? URLString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSURL1,
+        _lib._sel_URLWithString_1, URLString?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithString_relativeToURL_(
+      SwiftLibrary _lib, NSString? URLString, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_28(
+        _lib._class_NSURL1,
+        _lib._sel_URLWithString_relativeToURL_1,
+        URLString?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initWithDataRepresentation_relativeToURL_(
+      NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_37(
+        _id,
+        _lib._sel_initWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLWithDataRepresentation_relativeToURL_(
+      SwiftLibrary _lib, NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_38(
+        _lib._class_NSURL1,
+        _lib._sel_URLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL initAbsoluteURLWithDataRepresentation_relativeToURL_(
+      NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_37(
+        _id,
+        _lib._sel_initAbsoluteURLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL absoluteURLWithDataRepresentation_relativeToURL_(
+      SwiftLibrary _lib, NSData? data, NSURL? baseURL) {
+    final _ret = _lib._objc_msgSend_38(
+        _lib._class_NSURL1,
+        _lib._sel_absoluteURLWithDataRepresentation_relativeToURL_1,
+        data?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get dataRepresentation {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_dataRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get absoluteString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_absoluteString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get relativeString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_relativeString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get baseURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_baseURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get absoluteURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_absoluteURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get scheme {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scheme1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get resourceSpecifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_resourceSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get host {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_host1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber? get port {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_port1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get user {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_user1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get password {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_password1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get path {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_path1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get fragment {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fragment1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get parameterString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_parameterString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get query {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_query1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get relativePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_relativePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get hasDirectoryPath {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasDirectoryPath1);
+  }
+
+  bool getFileSystemRepresentation_maxLength_(
+      ffi.Pointer<ffi.Char> buffer, int maxBufferLength) {
+    return _lib._objc_msgSend_218(
+        _id,
+        _lib._sel_getFileSystemRepresentation_maxLength_1,
+        buffer,
+        maxBufferLength);
+  }
+
+  ffi.Pointer<ffi.Char> get fileSystemRepresentation {
+    return _lib._objc_msgSend_13(_id, _lib._sel_fileSystemRepresentation1);
+  }
+
+  bool get fileURL {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFileURL1);
+  }
+
+  NSURL? get standardizedURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_standardizedURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool checkResourceIsReachableAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_checkResourceIsReachableAndReturnError_1, error);
+  }
+
+  bool isFileReferenceURL() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFileReferenceURL1);
+  }
+
+  NSURL fileReferenceURL() {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_fileReferenceURL1);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get filePathURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_filePathURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getResourceValue_forKey_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+      NSURLResourceKey key,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_220(
+        _id, _lib._sel_getResourceValue_forKey_error_1, value, key, error);
+  }
+
+  bool getPromisedItemResourceValue_forKey_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+      NSURLResourceKey key,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_220(
+        _id,
+        _lib._sel_getPromisedItemResourceValue_forKey_error_1,
+        value,
+        key,
+        error);
+  }
+
+  NSDictionary promisedItemResourceValuesForKeys_error_(
+      NSArray? keys, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_221(
+        _id,
+        _lib._sel_promisedItemResourceValuesForKeys_error_1,
+        keys?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool checkPromisedItemIsReachableAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_checkPromisedItemIsReachableAndReturnError_1, error);
+  }
+
+  static NSURL fileURLWithPathComponents_(
+      SwiftLibrary _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_222(_lib._class_NSURL1,
+        _lib._sel_fileURLWithPathComponents_1, components?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get pathComponents {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_pathComponents1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get lastPathComponent {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_lastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pathExtension {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathComponent_(NSString? pathComponent) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLByAppendingPathComponent_1,
+        pathComponent?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathComponent_isDirectory_(
+      NSString? pathComponent, bool isDirectory) {
+    final _ret = _lib._objc_msgSend_33(
+        _id,
+        _lib._sel_URLByAppendingPathComponent_isDirectory_1,
+        pathComponent?._id ?? ffi.nullptr,
+        isDirectory);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByDeletingLastPathComponent {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByDeletingLastPathComponent1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLByAppendingPathExtension_(NSString? pathExtension) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLByAppendingPathExtension_1,
+        pathExtension?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByDeletingPathExtension {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByDeletingPathExtension1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByStandardizingPath {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URLByStandardizingPath1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URLByResolvingSymlinksInPath {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_URLByResolvingSymlinksInPath1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData resourceDataUsingCache_(bool shouldUseCache) {
+    final _ret = _lib._objc_msgSend_223(
+        _id, _lib._sel_resourceDataUsingCache_1, shouldUseCache);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void loadResourceDataNotifyingClient_usingCache_(
+      NSObject client, bool shouldUseCache) {
+    return _lib._objc_msgSend_224(
+        _id,
+        _lib._sel_loadResourceDataNotifyingClient_usingCache_1,
+        client._id,
+        shouldUseCache);
+  }
+
+  NSObject propertyForKey_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_propertyForKey_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setResourceData_(NSData? data) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_setResourceData_1, data?._id ?? ffi.nullptr);
+  }
+
+  bool setProperty_forKey_(NSObject property, NSString? propertyKey) {
+    return _lib._objc_msgSend_225(_id, _lib._sel_setProperty_forKey_1,
+        property._id, propertyKey?._id ?? ffi.nullptr);
+  }
+
+  NSURLHandle URLHandleUsingCache_(bool shouldUseCache) {
+    final _ret = _lib._objc_msgSend_232(
+        _id, _lib._sel_URLHandleUsingCache_1, shouldUseCache);
+    return NSURLHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURL1, _lib._sel_new1);
+    return NSURL._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURL alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURL1, _lib._sel_alloc1);
+    return NSURL._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURL1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURL1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURL1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURL1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURL1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURL1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURL1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURL1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURL1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSNumber extends NSValue {
+  NSNumber._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNumber] that points to the same underlying object as [other].
+  static NSNumber castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNumber._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNumber] that wraps the given raw object pointer.
+  static NSNumber castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNumber._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNumber].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSNumber1);
+  }
+
+  @override
+  NSNumber initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithChar_(int value) {
+    final _ret = _lib._objc_msgSend_196(_id, _lib._sel_initWithChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedChar_(int value) {
+    final _ret =
+        _lib._objc_msgSend_197(_id, _lib._sel_initWithUnsignedChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithShort_(int value) {
+    final _ret = _lib._objc_msgSend_198(_id, _lib._sel_initWithShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedShort_(int value) {
+    final _ret =
+        _lib._objc_msgSend_199(_id, _lib._sel_initWithUnsignedShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithInt_(int value) {
+    final _ret = _lib._objc_msgSend_200(_id, _lib._sel_initWithInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedInt_(int value) {
+    final _ret =
+        _lib._objc_msgSend_201(_id, _lib._sel_initWithUnsignedInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithLong_(int value) {
+    final _ret = _lib._objc_msgSend_202(_id, _lib._sel_initWithLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedLong_(int value) {
+    final _ret =
+        _lib._objc_msgSend_203(_id, _lib._sel_initWithUnsignedLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithLongLong_(int value) {
+    final _ret =
+        _lib._objc_msgSend_204(_id, _lib._sel_initWithLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedLongLong_(int value) {
+    final _ret = _lib._objc_msgSend_205(
+        _id, _lib._sel_initWithUnsignedLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithFloat_(double value) {
+    final _ret = _lib._objc_msgSend_206(_id, _lib._sel_initWithFloat_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithDouble_(double value) {
+    final _ret = _lib._objc_msgSend_207(_id, _lib._sel_initWithDouble_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithBool_(bool value) {
+    final _ret = _lib._objc_msgSend_208(_id, _lib._sel_initWithBool_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithInteger_(int value) {
+    final _ret =
+        _lib._objc_msgSend_202(_id, _lib._sel_initWithInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber initWithUnsignedInteger_(int value) {
+    final _ret =
+        _lib._objc_msgSend_203(_id, _lib._sel_initWithUnsignedInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get charValue {
+    return _lib._objc_msgSend_209(_id, _lib._sel_charValue1);
+  }
+
+  int get unsignedCharValue {
+    return _lib._objc_msgSend_210(_id, _lib._sel_unsignedCharValue1);
+  }
+
+  int get shortValue {
+    return _lib._objc_msgSend_211(_id, _lib._sel_shortValue1);
+  }
+
+  int get unsignedShortValue {
+    return _lib._objc_msgSend_212(_id, _lib._sel_unsignedShortValue1);
+  }
+
+  int get intValue {
+    return _lib._objc_msgSend_213(_id, _lib._sel_intValue1);
+  }
+
+  int get unsignedIntValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_unsignedIntValue1);
+  }
+
+  int get longValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_longValue1);
+  }
+
+  int get unsignedLongValue {
+    return _lib._objc_msgSend_10(_id, _lib._sel_unsignedLongValue1);
+  }
+
+  int get longLongValue {
+    return _lib._objc_msgSend_214(_id, _lib._sel_longLongValue1);
+  }
+
+  int get unsignedLongLongValue {
+    return _lib._objc_msgSend_148(_id, _lib._sel_unsignedLongLongValue1);
+  }
+
+  double get floatValue {
+    return _lib._objc_msgSend_215(_id, _lib._sel_floatValue1);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  bool get boolValue {
+    return _lib._objc_msgSend_12(_id, _lib._sel_boolValue1);
+  }
+
+  int get integerValue {
+    return _lib._objc_msgSend_78(_id, _lib._sel_integerValue1);
+  }
+
+  int get unsignedIntegerValue {
+    return _lib._objc_msgSend_10(_id, _lib._sel_unsignedIntegerValue1);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compare_(NSNumber? otherNumber) {
+    return _lib._objc_msgSend_216(
+        _id, _lib._sel_compare_1, otherNumber?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToNumber_(NSNumber? number) {
+    return _lib._objc_msgSend_217(
+        _id, _lib._sel_isEqualToNumber_1, number?._id ?? ffi.nullptr);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithChar_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_196(
+        _lib._class_NSNumber1, _lib._sel_numberWithChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedChar_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_197(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedChar_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithShort_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_198(
+        _lib._class_NSNumber1, _lib._sel_numberWithShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedShort_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_199(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedShort_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithInt_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_200(
+        _lib._class_NSNumber1, _lib._sel_numberWithInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedInt_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_201(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedInt_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithLong_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_202(
+        _lib._class_NSNumber1, _lib._sel_numberWithLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedLong_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_203(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithLongLong_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_204(
+        _lib._class_NSNumber1, _lib._sel_numberWithLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedLongLong_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_205(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedLongLong_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithFloat_(SwiftLibrary _lib, double value) {
+    final _ret = _lib._objc_msgSend_206(
+        _lib._class_NSNumber1, _lib._sel_numberWithFloat_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithDouble_(SwiftLibrary _lib, double value) {
+    final _ret = _lib._objc_msgSend_207(
+        _lib._class_NSNumber1, _lib._sel_numberWithDouble_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithBool_(SwiftLibrary _lib, bool value) {
+    final _ret = _lib._objc_msgSend_208(
+        _lib._class_NSNumber1, _lib._sel_numberWithBool_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithInteger_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_202(
+        _lib._class_NSNumber1, _lib._sel_numberWithInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber numberWithUnsignedInteger_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_203(
+        _lib._class_NSNumber1, _lib._sel_numberWithUnsignedInteger_1, value);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithBytes_objCType_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(_lib._class_NSNumber1,
+        _lib._sel_valueWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue value_withObjCType_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSNumber1, _lib._sel_value_withObjCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithNonretainedObject_(
+      SwiftLibrary _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_44(_lib._class_NSNumber1,
+        _lib._sel_valueWithNonretainedObject_1, anObject._id);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPointer_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> pointer) {
+    final _ret = _lib._objc_msgSend_45(
+        _lib._class_NSNumber1, _lib._sel_valueWithPointer_1, pointer);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRange_(SwiftLibrary _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_48(
+        _lib._class_NSNumber1, _lib._sel_valueWithRange_1, range);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPoint_(SwiftLibrary _lib, NSPoint point) {
+    final _ret = _lib._objc_msgSend_50(
+        _lib._class_NSNumber1, _lib._sel_valueWithPoint_1, point);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithSize_(SwiftLibrary _lib, NSSize size) {
+    final _ret = _lib._objc_msgSend_51(
+        _lib._class_NSNumber1, _lib._sel_valueWithSize_1, size);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRect_(SwiftLibrary _lib, NSRect rect) {
+    final _ret = _lib._objc_msgSend_52(
+        _lib._class_NSNumber1, _lib._sel_valueWithRect_1, rect);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithEdgeInsets_(SwiftLibrary _lib, NSEdgeInsets insets) {
+    final _ret = _lib._objc_msgSend_53(
+        _lib._class_NSNumber1, _lib._sel_valueWithEdgeInsets_1, insets);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNumber new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSNumber1, _lib._sel_new1);
+    return NSNumber._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNumber alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSNumber1, _lib._sel_alloc1);
+    return NSNumber._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNumber1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNumber1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumber1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumber1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNumber1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNumber1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNumber1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNumber1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNumber1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSValue extends NSObject {
+  NSValue._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSValue] that points to the same underlying object as [other].
+  static NSValue castFrom<T extends _ObjCWrapper>(T other) {
+    return NSValue._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSValue] that wraps the given raw object pointer.
+  static NSValue castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSValue._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSValue].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSValue1);
+  }
+
+  void getValue_size_(ffi.Pointer<ffi.Void> value, int size) {
+    return _lib._objc_msgSend_21(_id, _lib._sel_getValue_size_1, value, size);
+  }
+
+  ffi.Pointer<ffi.Char> get objCType {
+    return _lib._objc_msgSend_13(_id, _lib._sel_objCType1);
+  }
+
+  NSValue initWithBytes_objCType_(
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_41(
+        _id, _lib._sel_initWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSValue initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithBytes_objCType_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSValue1, _lib._sel_valueWithBytes_objCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue value_withObjCType_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Void> value, ffi.Pointer<ffi.Char> type) {
+    final _ret = _lib._objc_msgSend_43(
+        _lib._class_NSValue1, _lib._sel_value_withObjCType_1, value, type);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithNonretainedObject_(
+      SwiftLibrary _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_44(_lib._class_NSValue1,
+        _lib._sel_valueWithNonretainedObject_1, anObject._id);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get nonretainedObjectValue {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_nonretainedObjectValue1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithPointer_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> pointer) {
+    final _ret = _lib._objc_msgSend_45(
+        _lib._class_NSValue1, _lib._sel_valueWithPointer_1, pointer);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Void> get pointerValue {
+    return _lib._objc_msgSend_19(_id, _lib._sel_pointerValue1);
+  }
+
+  bool isEqualToValue_(NSValue? value) {
+    return _lib._objc_msgSend_46(
+        _id, _lib._sel_isEqualToValue_1, value?._id ?? ffi.nullptr);
+  }
+
+  void getValue_(ffi.Pointer<ffi.Void> value) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_getValue_1, value);
+  }
+
+  static NSValue valueWithRange_(SwiftLibrary _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_48(
+        _lib._class_NSValue1, _lib._sel_valueWithRange_1, range);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange get rangeValue {
+    return _lib._objc_msgSend_49(_id, _lib._sel_rangeValue1);
+  }
+
+  static NSValue valueWithPoint_(SwiftLibrary _lib, NSPoint point) {
+    final _ret = _lib._objc_msgSend_50(
+        _lib._class_NSValue1, _lib._sel_valueWithPoint_1, point);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithSize_(SwiftLibrary _lib, NSSize size) {
+    final _ret = _lib._objc_msgSend_51(
+        _lib._class_NSValue1, _lib._sel_valueWithSize_1, size);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithRect_(SwiftLibrary _lib, NSRect rect) {
+    final _ret = _lib._objc_msgSend_52(
+        _lib._class_NSValue1, _lib._sel_valueWithRect_1, rect);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSValue valueWithEdgeInsets_(SwiftLibrary _lib, NSEdgeInsets insets) {
+    final _ret = _lib._objc_msgSend_53(
+        _lib._class_NSValue1, _lib._sel_valueWithEdgeInsets_1, insets);
+    return NSValue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPoint get pointValue {
+    return _lib._objc_msgSend_54(_id, _lib._sel_pointValue1);
+  }
+
+  NSSize get sizeValue {
+    return _lib._objc_msgSend_55(_id, _lib._sel_sizeValue1);
+  }
+
+  NSRect get rectValue {
+    return _lib._objc_msgSend_56(_id, _lib._sel_rectValue1);
+  }
+
+  NSEdgeInsets get edgeInsetsValue {
+    return _lib._objc_msgSend_57(_id, _lib._sel_edgeInsetsValue1);
+  }
+
+  static NSValue new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSValue1, _lib._sel_new1);
+    return NSValue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSValue alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSValue1, _lib._sel_alloc1);
+    return NSValue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSValue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSValue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSValue1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSValue1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSValue1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSValue1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSValue1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSValue1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSValue1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSPoint = CGPoint;
+
+class CGPoint extends ffi.Struct {
+  @CGFloat()
+  external double x;
+
+  @CGFloat()
+  external double y;
+}
+
+typedef CGFloat = ffi.Double;
+typedef NSSize = CGSize;
+
+class CGSize extends ffi.Struct {
+  @CGFloat()
+  external double width;
+
+  @CGFloat()
+  external double height;
+}
+
+typedef NSRect = CGRect;
+
+class CGRect extends ffi.Struct {
+  external CGPoint origin;
+
+  external CGSize size;
+}
+
+class NSEdgeInsets extends ffi.Struct {
+  @CGFloat()
+  external double top;
+
+  @CGFloat()
+  external double left;
+
+  @CGFloat()
+  external double bottom;
+
+  @CGFloat()
+  external double right;
+}
+
+class NSArray extends NSObject {
+  NSArray._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSArray] that points to the same underlying object as [other].
+  static NSArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSArray] that wraps the given raw object pointer.
+  static NSArray castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSArray1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectAtIndex_(int index) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndex_1, index);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray arrayByAddingObject_(NSObject anObject) {
+    final _ret = _lib._objc_msgSend_62(
+        _id, _lib._sel_arrayByAddingObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray arrayByAddingObjectsFromArray_(NSArray? otherArray) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_arrayByAddingObjectsFromArray_1,
+        otherArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString componentsJoinedByString_(NSString? separator) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_componentsJoinedByString_1, separator?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool containsObject_(NSObject anObject) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, anObject._id);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject firstObjectCommonWithArray_(NSArray? otherArray) {
+    final _ret = _lib._objc_msgSend_67(_id,
+        _lib._sel_firstObjectCommonWithArray_1, otherArray?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_range_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, NSRange range) {
+    return _lib._objc_msgSend_68(
+        _id, _lib._sel_getObjects_range_1, objects, range);
+  }
+
+  int indexOfObject_(NSObject anObject) {
+    return _lib._objc_msgSend_69(_id, _lib._sel_indexOfObject_1, anObject._id);
+  }
+
+  int indexOfObject_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_70(
+        _id, _lib._sel_indexOfObject_inRange_1, anObject._id, range);
+  }
+
+  int indexOfObjectIdenticalTo_(NSObject anObject) {
+    return _lib._objc_msgSend_69(
+        _id, _lib._sel_indexOfObjectIdenticalTo_1, anObject._id);
+  }
+
+  int indexOfObjectIdenticalTo_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_70(
+        _id, _lib._sel_indexOfObjectIdenticalTo_inRange_1, anObject._id, range);
+  }
+
+  bool isEqualToArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_71(
+        _id, _lib._sel_isEqualToArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  NSObject get firstObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_firstObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get lastObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_lastObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator reverseObjectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_reverseObjectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get sortedArrayHint {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_sortedArrayHint1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingFunction_context_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          comparator,
+      ffi.Pointer<ffi.Void> context) {
+    final _ret = _lib._objc_msgSend_73(
+        _id, _lib._sel_sortedArrayUsingFunction_context_1, comparator, context);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingFunction_context_hint_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          comparator,
+      ffi.Pointer<ffi.Void> context,
+      NSData? hint) {
+    final _ret = _lib._objc_msgSend_74(
+        _id,
+        _lib._sel_sortedArrayUsingFunction_context_hint_1,
+        comparator,
+        context,
+        hint?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    final _ret = _lib._objc_msgSend_75(
+        _id, _lib._sel_sortedArrayUsingSelector_1, comparator);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray subarrayWithRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_76(_id, _lib._sel_subarrayWithRange_1, range);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_writeToURL_error_1, url?._id ?? ffi.nullptr, error);
+  }
+
+  void makeObjectsPerformSelector_(ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_7(
+        _id, _lib._sel_makeObjectsPerformSelector_1, aSelector);
+  }
+
+  void makeObjectsPerformSelector_withObject_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject argument) {
+    return _lib._objc_msgSend_82(
+        _id,
+        _lib._sel_makeObjectsPerformSelector_withObject_1,
+        aSelector,
+        argument._id);
+  }
+
+  NSArray objectsAtIndexes_(NSIndexSet? indexes) {
+    final _ret = _lib._objc_msgSend_103(
+        _id, _lib._sel_objectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectAtIndexedSubscript_(int idx) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndexedSubscript_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock3 block) {
+    return _lib._objc_msgSend_104(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_105(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateObjectsAtIndexes_options_usingBlock_(
+      NSIndexSet? s, int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_106(
+        _id,
+        _lib._sel_enumerateObjectsAtIndexes_options_usingBlock_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  int indexOfObjectPassingTest_(ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_107(
+        _id, _lib._sel_indexOfObjectPassingTest_1, predicate._id);
+  }
+
+  int indexOfObjectWithOptions_passingTest_(int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_108(_id,
+        _lib._sel_indexOfObjectWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexOfObjectAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_109(
+        _id,
+        _lib._sel_indexOfObjectAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesOfObjectsPassingTest_(ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_110(
+        _id, _lib._sel_indexesOfObjectsPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsWithOptions_passingTest_(
+      int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_111(
+        _id,
+        _lib._sel_indexesOfObjectsWithOptions_passingTest_1,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_112(
+        _id,
+        _lib._sel_indexesOfObjectsAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_sortedArrayUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(
+        _id, _lib._sel_sortedArrayWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_inSortedRange_options_usingComparator_(
+      NSObject obj, NSRange r, int opts, NSComparator cmp) {
+    return _lib._objc_msgSend_115(
+        _id,
+        _lib._sel_indexOfObject_inSortedRange_options_usingComparator_1,
+        obj._id,
+        r,
+        opts,
+        cmp);
+  }
+
+  static NSArray array(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_array1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObject_(SwiftLibrary _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSArray1, _lib._sel_arrayWithObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _lib._class_NSArray1, _lib._sel_arrayWithObjects_count_1, objects, cnt);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithObjects_(SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSArray1, _lib._sel_arrayWithObjects_1, firstObj._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithArray_(SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSArray1,
+        _lib._sel_arrayWithArray_1, array?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithArray_copyItems_(NSArray? array, bool flag) {
+    final _ret = _lib._objc_msgSend_116(_id,
+        _lib._sel_initWithArray_copyItems_1, array?._id ?? ffi.nullptr, flag);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSArray initWithContentsOfURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _id,
+        _lib._sel_initWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_error_(SwiftLibrary _lib, NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects) {
+    return _lib._objc_msgSend_118(_id, _lib._sel_getObjects_1, objects);
+  }
+
+  static NSArray arrayWithContentsOfFile_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_119(_lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_120(_lib._class_NSArray1,
+        _lib._sel_arrayWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_120(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  NSArray pathsMatchingExtensions_(NSArray? filterTypes) {
+    final _ret = _lib._objc_msgSend_63(_id, _lib._sel_pathsMatchingExtensions_1,
+        filterTypes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  void addObserver_toObjectsAtIndexes_forKeyPath_options_context_(
+      NSObject? observer,
+      NSIndexSet? indexes,
+      NSString? keyPath,
+      int options,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_123(
+        _id,
+        _lib._sel_addObserver_toObjectsAtIndexes_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  void removeObserver_fromObjectsAtIndexes_forKeyPath_context_(
+      NSObject? observer,
+      NSIndexSet? indexes,
+      NSString? keyPath,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_124(
+        _id,
+        _lib._sel_removeObserver_fromObjectsAtIndexes_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  void removeObserver_fromObjectsAtIndexes_forKeyPath_(
+      NSObject? observer, NSIndexSet? indexes, NSString? keyPath) {
+    return _lib._objc_msgSend_125(
+        _id,
+        _lib._sel_removeObserver_fromObjectsAtIndexes_forKeyPath_1,
+        observer?._id ?? ffi.nullptr,
+        indexes?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray filteredArrayUsingPredicate_(NSPredicate? predicate) {
+    final _ret = _lib._objc_msgSend_195(_id,
+        _lib._sel_filteredArrayUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_new1);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSArray alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArray1, _lib._sel_alloc1);
+    return NSArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArray1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSInteger = ffi.Long;
+
+class NSError extends NSObject {
+  NSError._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSError] that points to the same underlying object as [other].
+  static NSError castFrom<T extends _ObjCWrapper>(T other) {
+    return NSError._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSError] that wraps the given raw object pointer.
+  static NSError castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSError._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSError].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSError1);
+  }
+
+  NSError initWithDomain_code_userInfo_(NSErrorDomain domain, int code) {
+    final _ret = _lib._objc_msgSend_77(
+        _id, _lib._sel_initWithDomain_code_userInfo_1, domain, code);
+    return NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSError errorWithDomain_code_userInfo_(
+      SwiftLibrary _lib, NSErrorDomain domain, int code) {
+    final _ret = _lib._objc_msgSend_77(_lib._class_NSError1,
+        _lib._sel_errorWithDomain_code_userInfo_1, domain, code);
+    return NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSErrorDomain get domain {
+    return _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+  }
+
+  int get code {
+    return _lib._objc_msgSend_78(_id, _lib._sel_code1);
+  }
+
+  static NSError new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSError1, _lib._sel_new1);
+    return NSError._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSError alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSError1, _lib._sel_alloc1);
+    return NSError._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSError1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSError1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSError1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSError1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSError1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSError1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSError1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSError1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSError1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSErrorDomain = ffi.Pointer<ObjCObject>;
+
+class NSIndexSet extends NSObject {
+  NSIndexSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSIndexSet] that points to the same underlying object as [other].
+  static NSIndexSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSIndexSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSIndexSet] that wraps the given raw object pointer.
+  static NSIndexSet castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSIndexSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSIndexSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSIndexSet1);
+  }
+
+  static NSIndexSet indexSet(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_indexSet1);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexSet indexSetWithIndex_(SwiftLibrary _lib, int value) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSIndexSet1, _lib._sel_indexSetWithIndex_1, value);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexSet indexSetWithIndexesInRange_(
+      SwiftLibrary _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_83(
+        _lib._class_NSIndexSet1, _lib._sel_indexSetWithIndexesInRange_1, range);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndexesInRange_(NSRange range) {
+    final _ret =
+        _lib._objc_msgSend_83(_id, _lib._sel_initWithIndexesInRange_1, range);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndexSet_(NSIndexSet? indexSet) {
+    final _ret = _lib._objc_msgSend_84(
+        _id, _lib._sel_initWithIndexSet_1, indexSet?._id ?? ffi.nullptr);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet initWithIndex_(int value) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithIndex_1, value);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToIndexSet_(NSIndexSet? indexSet) {
+    return _lib._objc_msgSend_85(
+        _id, _lib._sel_isEqualToIndexSet_1, indexSet?._id ?? ffi.nullptr);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  int get firstIndex {
+    return _lib._objc_msgSend_10(_id, _lib._sel_firstIndex1);
+  }
+
+  int get lastIndex {
+    return _lib._objc_msgSend_10(_id, _lib._sel_lastIndex1);
+  }
+
+  int indexGreaterThanIndex_(int value) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexGreaterThanIndex_1, value);
+  }
+
+  int indexLessThanIndex_(int value) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexLessThanIndex_1, value);
+  }
+
+  int indexGreaterThanOrEqualToIndex_(int value) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_indexGreaterThanOrEqualToIndex_1, value);
+  }
+
+  int indexLessThanOrEqualToIndex_(int value) {
+    return _lib._objc_msgSend_86(
+        _id, _lib._sel_indexLessThanOrEqualToIndex_1, value);
+  }
+
+  int getIndexes_maxCount_inIndexRange_(ffi.Pointer<NSUInteger> indexBuffer,
+      int bufferSize, NSRangePointer range) {
+    return _lib._objc_msgSend_87(
+        _id,
+        _lib._sel_getIndexes_maxCount_inIndexRange_1,
+        indexBuffer,
+        bufferSize,
+        range);
+  }
+
+  int countOfIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_88(_id, _lib._sel_countOfIndexesInRange_1, range);
+  }
+
+  bool containsIndex_(int value) {
+    return _lib._objc_msgSend_89(_id, _lib._sel_containsIndex_1, value);
+  }
+
+  bool containsIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_90(
+        _id, _lib._sel_containsIndexesInRange_1, range);
+  }
+
+  bool containsIndexes_(NSIndexSet? indexSet) {
+    return _lib._objc_msgSend_85(
+        _id, _lib._sel_containsIndexes_1, indexSet?._id ?? ffi.nullptr);
+  }
+
+  bool intersectsIndexesInRange_(NSRange range) {
+    return _lib._objc_msgSend_90(
+        _id, _lib._sel_intersectsIndexesInRange_1, range);
+  }
+
+  void enumerateIndexesUsingBlock_(ObjCBlock block) {
+    return _lib._objc_msgSend_91(
+        _id, _lib._sel_enumerateIndexesUsingBlock_1, block._id);
+  }
+
+  void enumerateIndexesWithOptions_usingBlock_(int opts, ObjCBlock block) {
+    return _lib._objc_msgSend_92(_id,
+        _lib._sel_enumerateIndexesWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateIndexesInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock block) {
+    return _lib._objc_msgSend_93(
+        _id,
+        _lib._sel_enumerateIndexesInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  int indexPassingTest_(ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_94(
+        _id, _lib._sel_indexPassingTest_1, predicate._id);
+  }
+
+  int indexWithOptions_passingTest_(int opts, ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_95(
+        _id, _lib._sel_indexWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexInRange_options_passingTest_(
+      NSRange range, int opts, ObjCBlock1 predicate) {
+    return _lib._objc_msgSend_96(
+        _id,
+        _lib._sel_indexInRange_options_passingTest_1,
+        range,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesPassingTest_(ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_97(
+        _id, _lib._sel_indexesPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesWithOptions_passingTest_(int opts, ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_98(
+        _id, _lib._sel_indexesWithOptions_passingTest_1, opts, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesInRange_options_passingTest_(
+      NSRange range, int opts, ObjCBlock1 predicate) {
+    final _ret = _lib._objc_msgSend_99(
+        _id,
+        _lib._sel_indexesInRange_options_passingTest_1,
+        range,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateRangesUsingBlock_(ObjCBlock2 block) {
+    return _lib._objc_msgSend_100(
+        _id, _lib._sel_enumerateRangesUsingBlock_1, block._id);
+  }
+
+  void enumerateRangesWithOptions_usingBlock_(int opts, ObjCBlock2 block) {
+    return _lib._objc_msgSend_101(_id,
+        _lib._sel_enumerateRangesWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateRangesInRange_options_usingBlock_(
+      NSRange range, int opts, ObjCBlock2 block) {
+    return _lib._objc_msgSend_102(
+        _id,
+        _lib._sel_enumerateRangesInRange_options_usingBlock_1,
+        range,
+        opts,
+        block._id);
+  }
+
+  static NSIndexSet new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_new1);
+    return NSIndexSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSIndexSet alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexSet1, _lib._sel_alloc1);
+    return NSIndexSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSIndexSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSIndexSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSIndexSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSIndexSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSIndexSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSIndexSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSIndexSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRangePointer = ffi.Pointer<NSRange>;
+
+class _ObjCBlockBase implements ffi.Finalizable {
+  final ffi.Pointer<_ObjCBlock> _id;
+  final SwiftLibrary _lib;
+  bool _pendingRelease;
+
+  _ObjCBlockBase._(this._id, this._lib,
+      {bool retain = false, bool release = false})
+      : _pendingRelease = release {
+    if (retain) {
+      _lib._Block_copy(_id.cast());
+    }
+    if (release) {
+      _lib._objc_releaseFinalizer11.attach(this, _id.cast(), detach: this);
+    }
+  }
+
+  /// Releases the reference to the underlying ObjC block held by this wrapper.
+  /// Throws a StateError if this wrapper doesn't currently hold a reference.
+  void release() {
+    if (_pendingRelease) {
+      _pendingRelease = false;
+      _lib._Block_release(_id.cast());
+      _lib._objc_releaseFinalizer11.detach(this);
+    } else {
+      throw StateError(
+          'Released an ObjC block that was unowned or already released.');
+    }
+  }
+
+  @override
+  bool operator ==(Object other) {
+    return other is _ObjCBlockBase && _id == other._id;
+  }
+
+  @override
+  int get hashCode => _id.hashCode;
+}
+
+void _ObjCBlock_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(int arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock_closureRegistry = <int, Function>{};
+int _ObjCBlock_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock_registerClosure(Function fn) {
+  final id = ++_ObjCBlock_closureRegistryIndex;
+  _ObjCBlock_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock extends _ObjCBlockBase {
+  ObjCBlock._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock.fromFunction(
+      SwiftLibrary lib, void Function(int arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock_closureTrampoline)
+                    .cast(),
+                _ObjCBlock_registerClosure(fn)),
+            lib);
+  void call(int arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block, int arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class _ObjCBlockDesc extends ffi.Struct {
+  @ffi.UnsignedLong()
+  external int reserved;
+
+  @ffi.UnsignedLong()
+  external int size;
+
+  external ffi.Pointer<ffi.Void> copy_helper;
+
+  external ffi.Pointer<ffi.Void> dispose_helper;
+
+  external ffi.Pointer<ffi.Char> signature;
+}
+
+class _ObjCBlock extends ffi.Struct {
+  external ffi.Pointer<ffi.Void> isa;
+
+  @ffi.Int()
+  external int flags;
+
+  @ffi.Int()
+  external int reserved;
+
+  external ffi.Pointer<ffi.Void> invoke;
+
+  external ffi.Pointer<_ObjCBlockDesc> descriptor;
+
+  external ffi.Pointer<ffi.Void> target;
+}
+
+abstract class NSEnumerationOptions {
+  static const int NSEnumerationConcurrent = 1;
+  static const int NSEnumerationReverse = 2;
+}
+
+bool _ObjCBlock1_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          bool Function(int arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock1_closureRegistry = <int, Function>{};
+int _ObjCBlock1_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock1_registerClosure(Function fn) {
+  final id = ++_ObjCBlock1_closureRegistryIndex;
+  _ObjCBlock1_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock1_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, int arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock1_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock1 extends _ObjCBlockBase {
+  ObjCBlock1._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock1.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock1_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock1.fromFunction(
+      SwiftLibrary lib, bool Function(int arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                                NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock1_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock1_registerClosure(fn)),
+            lib);
+  bool call(int arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(ffi.Pointer<_ObjCBlock> block,
+                    NSUInteger arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            bool Function(ffi.Pointer<_ObjCBlock> block, int arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock2_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(
+              NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock2_closureRegistry = <int, Function>{};
+int _ObjCBlock2_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock2_registerClosure(Function fn) {
+  final id = ++_ObjCBlock2_closureRegistryIndex;
+  _ObjCBlock2_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock2_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock2_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock2 extends _ObjCBlockBase {
+  ObjCBlock2._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock2.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock2_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock2.fromFunction(SwiftLibrary lib,
+      void Function(NSRange arg0, ffi.Pointer<ffi.Bool> arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                NSRange arg0, ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock2_closureTrampoline)
+                    .cast(),
+                _ObjCBlock2_registerClosure(fn)),
+            lib);
+  void call(NSRange arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block, NSRange arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block, NSRange arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock3_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSUInteger arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock3_closureRegistry = <int, Function>{};
+int _ObjCBlock3_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock3_registerClosure(Function fn) {
+  final id = ++_ObjCBlock3_closureRegistryIndex;
+  _ObjCBlock3_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock3_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock3_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock3 extends _ObjCBlockBase {
+  ObjCBlock3._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock3.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      NSUInteger arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock3_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock3.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock3_closureTrampoline)
+                    .cast(),
+                _ObjCBlock3_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSUInteger arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+bool _ObjCBlock4_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(ffi.Pointer<ObjCObject> arg0, NSUInteger arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock4_closureRegistry = <int, Function>{};
+int _ObjCBlock4_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock4_registerClosure(Function fn) {
+  final id = ++_ObjCBlock4_closureRegistryIndex;
+  _ObjCBlock4_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock4_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock4_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock4 extends _ObjCBlockBase {
+  ObjCBlock4._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock4.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<ffi.NativeFunction<ffi.Bool Function(ffi.Pointer<ObjCObject> arg0, NSUInteger arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock4_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock4.fromFunction(
+      SwiftLibrary lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSUInteger arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock4_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock4_registerClosure(fn)),
+            lib);
+  bool call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSUInteger arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSComparator = ffi.Pointer<_ObjCBlock>;
+int _ObjCBlock5_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Int32 Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          int Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock5_closureRegistry = <int, Function>{};
+int _ObjCBlock5_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock5_registerClosure(Function fn) {
+  final id = ++_ObjCBlock5_closureRegistryIndex;
+  _ObjCBlock5_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+int _ObjCBlock5_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock5_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock5 extends _ObjCBlockBase {
+  ObjCBlock5._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock5.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Int32 Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Int32 Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock5_fnPtrTrampoline, 0)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock5.fromFunction(
+      SwiftLibrary lib,
+      int Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Int32 Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock5_closureTrampoline, 0)
+                    .cast(),
+                _ObjCBlock5_registerClosure(fn)),
+            lib);
+  int call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Int32 Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            int Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSComparisonResult {
+  static const int NSOrderedAscending = -1;
+  static const int NSOrderedSame = 0;
+  static const int NSOrderedDescending = 1;
+}
+
+abstract class NSSortOptions {
+  static const int NSSortConcurrent = 1;
+  static const int NSSortStable = 16;
+}
+
+abstract class NSBinarySearchingOptions {
+  static const int NSBinarySearchingFirstEqual = 256;
+  static const int NSBinarySearchingLastEqual = 512;
+  static const int NSBinarySearchingInsertionIndex = 1024;
+}
+
+abstract class NSKeyValueObservingOptions {
+  static const int NSKeyValueObservingOptionNew = 1;
+  static const int NSKeyValueObservingOptionOld = 2;
+  static const int NSKeyValueObservingOptionInitial = 4;
+  static const int NSKeyValueObservingOptionPrior = 8;
+}
+
+class NSPredicate extends NSObject {
+  NSPredicate._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPredicate] that points to the same underlying object as [other].
+  static NSPredicate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPredicate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPredicate] that wraps the given raw object pointer.
+  static NSPredicate castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPredicate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPredicate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPredicate1);
+  }
+
+  static NSPredicate predicateWithFormat_argumentArray_(
+      SwiftLibrary _lib, NSString? predicateFormat, NSArray? arguments) {
+    final _ret = _lib._objc_msgSend_129(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_argumentArray_1,
+        predicateFormat?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithFormat_(
+      SwiftLibrary _lib, NSString? predicateFormat) {
+    final _ret = _lib._objc_msgSend_130(_lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_1, predicateFormat?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithFormat_arguments_(SwiftLibrary _lib,
+      NSString? predicateFormat, ffi.Pointer<__va_list_tag> argList) {
+    final _ret = _lib._objc_msgSend_131(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateWithFormat_arguments_1,
+        predicateFormat?._id ?? ffi.nullptr,
+        argList);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateFromMetadataQueryString_(
+      SwiftLibrary _lib, NSString? queryString) {
+    final _ret = _lib._objc_msgSend_130(
+        _lib._class_NSPredicate1,
+        _lib._sel_predicateFromMetadataQueryString_1,
+        queryString?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithValue_(SwiftLibrary _lib, bool value) {
+    final _ret = _lib._objc_msgSend_132(
+        _lib._class_NSPredicate1, _lib._sel_predicateWithValue_1, value);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPredicate predicateWithBlock_(SwiftLibrary _lib, ObjCBlock6 block) {
+    final _ret = _lib._objc_msgSend_193(
+        _lib._class_NSPredicate1, _lib._sel_predicateWithBlock_1, block._id);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get predicateFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_predicateFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPredicate predicateWithSubstitutionVariables_(NSDictionary? variables) {
+    final _ret = _lib._objc_msgSend_143(
+        _id,
+        _lib._sel_predicateWithSubstitutionVariables_1,
+        variables?._id ?? ffi.nullptr);
+    return NSPredicate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool evaluateWithObject_(NSObject object) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_evaluateWithObject_1, object._id);
+  }
+
+  bool evaluateWithObject_substitutionVariables_(
+      NSObject object, NSDictionary? bindings) {
+    return _lib._objc_msgSend_194(
+        _id,
+        _lib._sel_evaluateWithObject_substitutionVariables_1,
+        object._id,
+        bindings?._id ?? ffi.nullptr);
+  }
+
+  void allowEvaluation() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_allowEvaluation1);
+  }
+
+  static NSPredicate new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPredicate1, _lib._sel_new1);
+    return NSPredicate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPredicate alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPredicate1, _lib._sel_alloc1);
+    return NSPredicate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPredicate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPredicate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPredicate1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPredicate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPredicate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPredicate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPredicate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPredicate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPredicate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class __va_list_tag extends ffi.Struct {
+  @ffi.UnsignedInt()
+  external int gp_offset;
+
+  @ffi.UnsignedInt()
+  external int fp_offset;
+
+  external ffi.Pointer<ffi.Void> overflow_arg_area;
+
+  external ffi.Pointer<ffi.Void> reg_save_area;
+}
+
+bool _ObjCBlock6_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock6_closureRegistry = <int, Function>{};
+int _ObjCBlock6_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock6_registerClosure(Function fn) {
+  final id = ++_ObjCBlock6_closureRegistryIndex;
+  _ObjCBlock6_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock6_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock6_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock6 extends _ObjCBlockBase {
+  ObjCBlock6._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock6.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock6_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock6.fromFunction(
+      SwiftLibrary lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock6_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock6_registerClosure(fn)),
+            lib);
+  bool call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSDictionary extends NSObject {
+  NSDictionary._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDictionary] that points to the same underlying object as [other].
+  static NSDictionary castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDictionary._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSDictionary] that wraps the given raw object pointer.
+  static NSDictionary castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDictionary._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDictionary].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSDictionary1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectForKey_(NSObject aKey) {
+    final _ret = _lib._objc_msgSend_16(_id, _lib._sel_objectForKey_1, aKey._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator keyEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_keyEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSDictionary init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithObjects_forKeys_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(
+        _id, _lib._sel_initWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray allKeysForObject_(NSObject anObject) {
+    final _ret =
+        _lib._objc_msgSend_62(_id, _lib._sel_allKeysForObject_1, anObject._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allValues {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allValues1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get descriptionInStringsFileFormat {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_descriptionInStringsFileFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_134(_id, _lib._sel_isEqualToDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForKeys_notFoundMarker_(NSArray? keys, NSObject marker) {
+    final _ret = _lib._objc_msgSend_135(
+        _id,
+        _lib._sel_objectsForKeys_notFoundMarker_1,
+        keys?._id ?? ffi.nullptr,
+        marker._id);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_writeToURL_error_1, url?._id ?? ffi.nullptr, error);
+  }
+
+  NSArray keysSortedByValueUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    final _ret = _lib._objc_msgSend_75(
+        _id, _lib._sel_keysSortedByValueUsingSelector_1, comparator);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_andKeys_count_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys, int count) {
+    return _lib._objc_msgSend_136(
+        _id, _lib._sel_getObjects_andKeys_count_1, objects, keys, count);
+  }
+
+  NSObject objectForKeyedSubscript_(NSObject key) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_objectForKeyedSubscript_1, key._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateKeysAndObjectsUsingBlock_(ObjCBlock7 block) {
+    return _lib._objc_msgSend_137(
+        _id, _lib._sel_enumerateKeysAndObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateKeysAndObjectsWithOptions_usingBlock_(
+      int opts, ObjCBlock7 block) {
+    return _lib._objc_msgSend_138(
+        _id,
+        _lib._sel_enumerateKeysAndObjectsWithOptions_usingBlock_1,
+        opts,
+        block._id);
+  }
+
+  NSArray keysSortedByValueUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_keysSortedByValueUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray keysSortedByValueWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(_id,
+        _lib._sel_keysSortedByValueWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_andKeys_(ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys) {
+    return _lib._objc_msgSend_139(
+        _id, _lib._sel_getObjects_andKeys_1, objects, keys);
+  }
+
+  static NSDictionary dictionaryWithContentsOfFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_140(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_(
+      SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_141(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_140(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_141(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeToFile_atomically_(NSString? path, bool useAuxiliaryFile) {
+    return _lib._objc_msgSend_25(_id, _lib._sel_writeToFile_atomically_1,
+        path?._id ?? ffi.nullptr, useAuxiliaryFile);
+  }
+
+  bool writeToURL_atomically_(NSURL? url, bool atomically) {
+    return _lib._objc_msgSend_121(_id, _lib._sel_writeToURL_atomically_1,
+        url?._id ?? ffi.nullptr, atomically);
+  }
+
+  static NSDictionary dictionary(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_dictionary1);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObject_forKey_(
+      SwiftLibrary _lib, NSObject object, NSObject key) {
+    final _ret = _lib._objc_msgSend_142(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObject_forKey_1, object._id, key._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjects_forKeys_count_(
+      SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjectsAndKeys_(
+      SwiftLibrary _lib, NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjectsAndKeys_1, firstObject._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithDictionary_(
+      SwiftLibrary _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_143(_lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithDictionary_1, dict?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithObjects_forKeys_(
+      SwiftLibrary _lib, NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithObjectsAndKeys_(NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_initWithObjectsAndKeys_1, firstObject._id);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithDictionary_(NSDictionary? otherDictionary) {
+    final _ret = _lib._objc_msgSend_143(_id, _lib._sel_initWithDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithDictionary_copyItems_(
+      NSDictionary? otherDictionary, bool flag) {
+    final _ret = _lib._objc_msgSend_145(
+        _id,
+        _lib._sel_initWithDictionary_copyItems_1,
+        otherDictionary?._id ?? ffi.nullptr,
+        flag);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSDictionary initWithObjects_forKeys_(NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _id,
+        _lib._sel_initWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary initWithContentsOfURL_error_(
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _id,
+        _lib._sel_initWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_error_(SwiftLibrary _lib,
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _lib._class_NSDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject sharedKeySetForKeys_(SwiftLibrary _lib, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSDictionary1,
+        _lib._sel_sharedKeySetForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int countByEnumeratingWithState_objects_count_(
+      ffi.Pointer<NSFastEnumerationState> state,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> buffer,
+      int len) {
+    return _lib._objc_msgSend_147(
+        _id,
+        _lib._sel_countByEnumeratingWithState_objects_count_1,
+        state,
+        buffer,
+        len);
+  }
+
+  int fileSize() {
+    return _lib._objc_msgSend_148(_id, _lib._sel_fileSize1);
+  }
+
+  NSDate fileModificationDate() {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fileModificationDate1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString fileType() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fileType1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int filePosixPermissions() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_filePosixPermissions1);
+  }
+
+  NSString fileOwnerAccountName() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fileOwnerAccountName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString fileGroupOwnerAccountName() {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_fileGroupOwnerAccountName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int fileSystemNumber() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_fileSystemNumber1);
+  }
+
+  int fileSystemFileNumber() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_fileSystemFileNumber1);
+  }
+
+  bool fileExtensionHidden() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileExtensionHidden1);
+  }
+
+  int fileHFSCreatorCode() {
+    return _lib._objc_msgSend_191(_id, _lib._sel_fileHFSCreatorCode1);
+  }
+
+  int fileHFSTypeCode() {
+    return _lib._objc_msgSend_191(_id, _lib._sel_fileHFSTypeCode1);
+  }
+
+  bool fileIsImmutable() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileIsImmutable1);
+  }
+
+  bool fileIsAppendOnly() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_fileIsAppendOnly1);
+  }
+
+  NSDate fileCreationDate() {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fileCreationDate1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber fileOwnerAccountID() {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_fileOwnerAccountID1);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber fileGroupOwnerAccountID() {
+    final _ret =
+        _lib._objc_msgSend_192(_id, _lib._sel_fileGroupOwnerAccountID1);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_new1);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDictionary alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDictionary1, _lib._sel_alloc1);
+    return NSDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDictionary1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDictionary1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDictionary1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDictionary1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDictionary1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSDictionary1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDictionary1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock7_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1, ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock7_closureRegistry = <int, Function>{};
+int _ObjCBlock7_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock7_registerClosure(Function fn) {
+  final id = ++_ObjCBlock7_closureRegistryIndex;
+  _ObjCBlock7_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock7_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock7_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock7 extends _ObjCBlockBase {
+  ObjCBlock7._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock7.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock7_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock7.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock7_closureTrampoline)
+                    .cast(),
+                _ObjCBlock7_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSFastEnumerationState extends ffi.Struct {
+  @ffi.UnsignedLong()
+  external int state;
+
+  external ffi.Pointer<ffi.Pointer<ObjCObject>> itemsPtr;
+
+  external ffi.Pointer<ffi.UnsignedLong> mutationsPtr;
+
+  @ffi.Array.multi([5])
+  external ffi.Array<ffi.UnsignedLong> extra;
+}
+
+class NSDate extends NSObject {
+  NSDate._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDate] that points to the same underlying object as [other].
+  static NSDate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSDate] that wraps the given raw object pointer.
+  static NSDate castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSDate1);
+  }
+
+  double get timeIntervalSinceReferenceDate {
+    return _lib._objc_msgSend_149(
+        _id, _lib._sel_timeIntervalSinceReferenceDate1);
+  }
+
+  @override
+  NSDate init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSinceReferenceDate_(double ti) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  double timeIntervalSinceDate_(NSDate? anotherDate) {
+    return _lib._objc_msgSend_151(_id, _lib._sel_timeIntervalSinceDate_1,
+        anotherDate?._id ?? ffi.nullptr);
+  }
+
+  double get timeIntervalSinceNow {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeIntervalSinceNow1);
+  }
+
+  double get timeIntervalSince1970 {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeIntervalSince19701);
+  }
+
+  NSObject addTimeInterval_(double seconds) {
+    final _ret =
+        _lib._objc_msgSend_150(_id, _lib._sel_addTimeInterval_1, seconds);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingTimeInterval_(double ti) {
+    final _ret =
+        _lib._objc_msgSend_150(_id, _lib._sel_dateByAddingTimeInterval_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate earlierDate_(NSDate? anotherDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_earlierDate_1, anotherDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate laterDate_(NSDate? anotherDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_laterDate_1, anotherDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compare_(NSDate? other) {
+    return _lib._objc_msgSend_153(
+        _id, _lib._sel_compare_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool isEqualToDate_(NSDate? otherDate) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isEqualToDate_1, otherDate?._id ?? ffi.nullptr);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate date(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_date1);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSinceNow_(SwiftLibrary _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _lib._class_NSDate1, _lib._sel_dateWithTimeIntervalSinceNow_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSinceReferenceDate_(
+      SwiftLibrary _lib, double ti) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSDate1,
+        _lib._sel_dateWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeIntervalSince1970_(SwiftLibrary _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _lib._class_NSDate1, _lib._sel_dateWithTimeIntervalSince1970_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate dateWithTimeInterval_sinceDate_(
+      SwiftLibrary _lib, double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _lib._class_NSDate1,
+        _lib._sel_dateWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantFuture(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_distantFuture1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantPast(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_distantPast1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getNow(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_156(_lib._class_NSDate1, _lib._sel_now1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSinceNow_(double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSinceNow_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeIntervalSince1970_(double secs) {
+    final _ret = _lib._objc_msgSend_150(
+        _id, _lib._sel_initWithTimeIntervalSince1970_1, secs);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate initWithTimeInterval_sinceDate_(double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _id,
+        _lib._sel_initWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_locale_(
+      SwiftLibrary _lib, NSString? string, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSDate1,
+        _lib._sel_dateWithNaturalLanguageString_locale_1,
+        string?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSDate1,
+        _lib._sel_dateWithNaturalLanguageString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_(SwiftLibrary _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSDate1,
+        _lib._sel_dateWithString_1, aString?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarDate dateWithCalendarFormat_timeZone_(
+      NSString? format, NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_189(
+        _id,
+        _lib._sel_dateWithCalendarFormat_timeZone_1,
+        format?._id ?? ffi.nullptr,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_timeZone_locale_(
+      NSString? format, NSTimeZone? aTimeZone, NSObject locale) {
+    final _ret = _lib._objc_msgSend_190(
+        _id,
+        _lib._sel_descriptionWithCalendarFormat_timeZone_locale_1,
+        format?._id ?? ffi.nullptr,
+        aTimeZone?._id ?? ffi.nullptr,
+        locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_(NSString? description) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, description?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_new1);
+    return NSDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDate alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDate1, _lib._sel_alloc1);
+    return NSDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDate1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSDate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSTimeInterval = ffi.Double;
+
+class NSCalendarDate extends NSDate {
+  NSCalendarDate._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCalendarDate] that points to the same underlying object as [other].
+  static NSCalendarDate castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCalendarDate._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCalendarDate] that wraps the given raw object pointer.
+  static NSCalendarDate castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCalendarDate._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCalendarDate].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCalendarDate1);
+  }
+
+  static NSObject calendarDate(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendarDate1, _lib._sel_calendarDate1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_calendarFormat_locale_(SwiftLibrary _lib,
+      NSString? description, NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_158(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_calendarFormat_locale_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_calendarFormat_(
+      SwiftLibrary _lib, NSString? description, NSString? format) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_calendarFormat_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithYear_month_day_hour_minute_second_timeZone_(
+      SwiftLibrary _lib,
+      int year,
+      int month,
+      int day,
+      int hour,
+      int minute,
+      int second,
+      NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_184(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithYear_month_day_hour_minute_second_timeZone_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarDate dateByAddingYears_months_days_hours_minutes_seconds_(
+      int year, int month, int day, int hour, int minute, int second) {
+    final _ret = _lib._objc_msgSend_185(
+        _id,
+        _lib._sel_dateByAddingYears_months_days_hours_minutes_seconds_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int dayOfCommonEra() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfCommonEra1);
+  }
+
+  int dayOfMonth() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfMonth1);
+  }
+
+  int dayOfWeek() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfWeek1);
+  }
+
+  int dayOfYear() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_dayOfYear1);
+  }
+
+  int hourOfDay() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_hourOfDay1);
+  }
+
+  int minuteOfHour() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_minuteOfHour1);
+  }
+
+  int monthOfYear() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_monthOfYear1);
+  }
+
+  int secondOfMinute() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_secondOfMinute1);
+  }
+
+  int yearOfCommonEra() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_yearOfCommonEra1);
+  }
+
+  NSString calendarFormat() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_calendarFormat1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_locale_(
+      NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_167(
+        _id,
+        _lib._sel_descriptionWithCalendarFormat_locale_1,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithCalendarFormat_(NSString? format) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_descriptionWithCalendarFormat_1, format?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone timeZone() {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_calendarFormat_locale_(
+      NSString? description, NSString? format, NSObject locale) {
+    final _ret = _lib._objc_msgSend_158(
+        _id,
+        _lib._sel_initWithString_calendarFormat_locale_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithString_calendarFormat_(
+      NSString? description, NSString? format) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_initWithString_calendarFormat_1,
+        description?._id ?? ffi.nullptr,
+        format?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSObject initWithString_(NSString? description) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, description?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithYear_month_day_hour_minute_second_timeZone_(
+      int year,
+      int month,
+      int day,
+      int hour,
+      int minute,
+      int second,
+      NSTimeZone? aTimeZone) {
+    final _ret = _lib._objc_msgSend_184(
+        _id,
+        _lib._sel_initWithYear_month_day_hour_minute_second_timeZone_1,
+        year,
+        month,
+        day,
+        hour,
+        minute,
+        second,
+        aTimeZone?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCalendarFormat_(NSString? format) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setCalendarFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  void setTimeZone_(NSTimeZone? aTimeZone) {
+    return _lib._objc_msgSend_187(
+        _id, _lib._sel_setTimeZone_1, aTimeZone?._id ?? ffi.nullptr);
+  }
+
+  void years_months_days_hours_minutes_seconds_sinceDate_(
+      ffi.Pointer<NSInteger> yp,
+      ffi.Pointer<NSInteger> mop,
+      ffi.Pointer<NSInteger> dp,
+      ffi.Pointer<NSInteger> hp,
+      ffi.Pointer<NSInteger> mip,
+      ffi.Pointer<NSInteger> sp,
+      NSCalendarDate? date) {
+    return _lib._objc_msgSend_188(
+        _id,
+        _lib._sel_years_months_days_hours_minutes_seconds_sinceDate_1,
+        yp,
+        mop,
+        dp,
+        hp,
+        mip,
+        sp,
+        date?._id ?? ffi.nullptr);
+  }
+
+  static NSDate? getDistantFuture(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_156(
+        _lib._class_NSCalendarDate1, _lib._sel_distantFuture1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getDistantPast(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_156(
+        _lib._class_NSCalendarDate1, _lib._sel_distantPast1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate date(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_date1);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSinceNow_(
+      SwiftLibrary _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSinceNow_1, secs);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSinceReferenceDate_(
+      SwiftLibrary _lib, double ti) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSinceReferenceDate_1, ti);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeIntervalSince1970_(
+      SwiftLibrary _lib, double secs) {
+    final _ret = _lib._objc_msgSend_150(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeIntervalSince1970_1, secs);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate dateWithTimeInterval_sinceDate_(
+      SwiftLibrary _lib, double secsToBeAdded, NSDate? date) {
+    final _ret = _lib._objc_msgSend_155(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithTimeInterval_sinceDate_1,
+        secsToBeAdded,
+        date?._id ?? ffi.nullptr);
+    return NSCalendarDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDate? getNow(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_156(_lib._class_NSCalendarDate1, _lib._sel_now1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_locale_(
+      SwiftLibrary _lib, NSString? string, NSObject locale) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_dateWithNaturalLanguageString_locale_1,
+        string?._id ?? ffi.nullptr,
+        locale._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithNaturalLanguageString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithNaturalLanguageString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dateWithString_(SwiftLibrary _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSCalendarDate1,
+        _lib._sel_dateWithString_1, aString?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendarDate new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_new1);
+    return NSCalendarDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCalendarDate alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendarDate1, _lib._sel_alloc1);
+    return NSCalendarDate._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCalendarDate1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCalendarDate1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendarDate1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCalendarDate1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCalendarDate1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendarDate1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSTimeZone extends NSObject {
+  NSTimeZone._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTimeZone] that points to the same underlying object as [other].
+  static NSTimeZone castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTimeZone._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTimeZone] that wraps the given raw object pointer.
+  static NSTimeZone castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTimeZone._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTimeZone].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTimeZone1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int secondsFromGMTForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_160(
+        _id, _lib._sel_secondsFromGMTForDate_1, aDate?._id ?? ffi.nullptr);
+  }
+
+  NSString abbreviationForDate_(NSDate? aDate) {
+    final _ret = _lib._objc_msgSend_161(
+        _id, _lib._sel_abbreviationForDate_1, aDate?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isDaylightSavingTimeForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_154(_id, _lib._sel_isDaylightSavingTimeForDate_1,
+        aDate?._id ?? ffi.nullptr);
+  }
+
+  double daylightSavingTimeOffsetForDate_(NSDate? aDate) {
+    return _lib._objc_msgSend_151(_id,
+        _lib._sel_daylightSavingTimeOffsetForDate_1, aDate?._id ?? ffi.nullptr);
+  }
+
+  NSDate nextDaylightSavingTimeTransitionAfterDate_(NSDate? aDate) {
+    final _ret = _lib._objc_msgSend_152(
+        _id,
+        _lib._sel_nextDaylightSavingTimeTransitionAfterDate_1,
+        aDate?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone? getSystemTimeZone(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_systemTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void resetSystemTimeZone(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(
+        _lib._class_NSTimeZone1, _lib._sel_resetSystemTimeZone1);
+  }
+
+  static NSTimeZone? getDefaultTimeZone(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_defaultTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setDefaultTimeZone(SwiftLibrary _lib, NSTimeZone? value) {
+    _lib._objc_msgSend_163(_lib._class_NSTimeZone1,
+        _lib._sel_setDefaultTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSTimeZone? getLocalTimeZone(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_162(
+        _lib._class_NSTimeZone1, _lib._sel_localTimeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getKnownTimeZoneNames(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimeZone1, _lib._sel_knownTimeZoneNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary? getAbbreviationDictionary(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_164(
+        _lib._class_NSTimeZone1, _lib._sel_abbreviationDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setAbbreviationDictionary(
+      SwiftLibrary _lib, NSDictionary? value) {
+    _lib._objc_msgSend_165(_lib._class_NSTimeZone1,
+        _lib._sel_setAbbreviationDictionary_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSString? getTimeZoneDataVersion(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_20(
+        _lib._class_NSTimeZone1, _lib._sel_timeZoneDataVersion1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get secondsFromGMT {
+    return _lib._objc_msgSend_78(_id, _lib._sel_secondsFromGMT1);
+  }
+
+  NSString? get abbreviation {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_abbreviation1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get daylightSavingTime {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDaylightSavingTime1);
+  }
+
+  double get daylightSavingTimeOffset {
+    return _lib._objc_msgSend_149(_id, _lib._sel_daylightSavingTimeOffset1);
+  }
+
+  NSDate? get nextDaylightSavingTimeTransition {
+    final _ret = _lib._objc_msgSend_156(
+        _id, _lib._sel_nextDaylightSavingTimeTransition1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToTimeZone_(NSTimeZone? aTimeZone) {
+    return _lib._objc_msgSend_166(
+        _id, _lib._sel_isEqualToTimeZone_1, aTimeZone?._id ?? ffi.nullptr);
+  }
+
+  NSString localizedName_locale_(int style, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_181(_id, _lib._sel_localizedName_locale_1,
+        style, locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithName_(SwiftLibrary _lib, NSString? tzName) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithName_1, tzName?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithName_data_(
+      SwiftLibrary _lib, NSString? tzName, NSData? aData) {
+    final _ret = _lib._objc_msgSend_182(
+        _lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithName_data_1,
+        tzName?._id ?? ffi.nullptr,
+        aData?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone initWithName_(NSString? tzName) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithName_1, tzName?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone initWithName_data_(NSString? tzName, NSData? aData) {
+    final _ret = _lib._objc_msgSend_182(_id, _lib._sel_initWithName_data_1,
+        tzName?._id ?? ffi.nullptr, aData?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneForSecondsFromGMT_(SwiftLibrary _lib, int seconds) {
+    final _ret = _lib._objc_msgSend_183(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneForSecondsFromGMT_1, seconds);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone timeZoneWithAbbreviation_(
+      SwiftLibrary _lib, NSString? abbreviation) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSTimeZone1,
+        _lib._sel_timeZoneWithAbbreviation_1, abbreviation?._id ?? ffi.nullptr);
+    return NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimeZone new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimeZone1, _lib._sel_new1);
+    return NSTimeZone._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTimeZone alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSTimeZone1, _lib._sel_alloc1);
+    return NSTimeZone._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTimeZone1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTimeZone1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimeZone1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimeZone1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTimeZone1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTimeZone1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTimeZone1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimeZone1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTimeZone1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTimeZoneNameStyle {
+  static const int NSTimeZoneNameStyleStandard = 0;
+  static const int NSTimeZoneNameStyleShortStandard = 1;
+  static const int NSTimeZoneNameStyleDaylightSaving = 2;
+  static const int NSTimeZoneNameStyleShortDaylightSaving = 3;
+  static const int NSTimeZoneNameStyleGeneric = 4;
+  static const int NSTimeZoneNameStyleShortGeneric = 5;
+}
+
+class NSLocale extends NSObject {
+  NSLocale._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSLocale] that points to the same underlying object as [other].
+  static NSLocale castFrom<T extends _ObjCWrapper>(T other) {
+    return NSLocale._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSLocale] that wraps the given raw object pointer.
+  static NSLocale castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSLocale._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSLocale].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSLocale1);
+  }
+
+  NSObject objectForKey_(NSLocaleKey key) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_objectForKey_1, key);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString displayNameForKey_value_(NSLocaleKey key, NSObject value) {
+    final _ret = _lib._objc_msgSend_167(
+        _id, _lib._sel_displayNameForKey_value_1, key, value._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSLocale initWithLocaleIdentifier_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithLocaleIdentifier_1, string?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSLocale initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localeIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localeIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForLocaleIdentifier_(NSString? localeIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForLocaleIdentifier_1,
+        localeIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get languageCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_languageCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForLanguageCode_(NSString? languageCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForLanguageCode_1,
+        languageCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get countryCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_countryCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCountryCode_(NSString? countryCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCountryCode_1,
+        countryCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get scriptCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scriptCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForScriptCode_(NSString? scriptCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForScriptCode_1,
+        scriptCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get variantCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_variantCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForVariantCode_(NSString? variantCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForVariantCode_1,
+        variantCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet? get exemplarCharacterSet {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_exemplarCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get calendarIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_calendarIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCalendarIdentifier_(NSString? calendarIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCalendarIdentifier_1,
+        calendarIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get collationIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_collationIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCollationIdentifier_(
+      NSString? collationIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCollationIdentifier_1,
+        collationIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get usesMetricSystem {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesMetricSystem1);
+  }
+
+  NSString? get decimalSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_decimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get groupingSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_groupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get currencySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get currencyCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencyCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCurrencyCode_(NSString? currencyCode) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCurrencyCode_1,
+        currencyCode?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get collatorIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_collatorIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForCollatorIdentifier_(NSString? collatorIdentifier) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_localizedStringForCollatorIdentifier_1,
+        collatorIdentifier?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get quotationBeginDelimiter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_quotationBeginDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get quotationEndDelimiter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_quotationEndDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get alternateQuotationBeginDelimiter {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_alternateQuotationBeginDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get alternateQuotationEndDelimiter {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_alternateQuotationEndDelimiter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getAutoupdatingCurrentLocale(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_176(
+        _lib._class_NSLocale1, _lib._sel_autoupdatingCurrentLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getCurrentLocale(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_176(_lib._class_NSLocale1, _lib._sel_currentLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale? getSystemLocale(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_176(_lib._class_NSLocale1, _lib._sel_systemLocale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSLocale localeWithLocaleIdentifier_(
+      SwiftLibrary _lib, NSString? ident) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSLocale1,
+        _lib._sel_localeWithLocaleIdentifier_1, ident?._id ?? ffi.nullptr);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSLocale init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAvailableLocaleIdentifiers(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_availableLocaleIdentifiers1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOLanguageCodes(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOLanguageCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOCountryCodes(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOCountryCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getISOCurrencyCodes(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_ISOCurrencyCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getCommonISOCurrencyCodes(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_commonISOCurrencyCodes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getPreferredLanguages(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_preferredLanguages1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary componentsFromLocaleIdentifier_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_140(_lib._class_NSLocale1,
+        _lib._sel_componentsFromLocaleIdentifier_1, string?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localeIdentifierFromComponents_(
+      SwiftLibrary _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_177(_lib._class_NSLocale1,
+        _lib._sel_localeIdentifierFromComponents_1, dict?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString canonicalLocaleIdentifierFromString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(
+        _lib._class_NSLocale1,
+        _lib._sel_canonicalLocaleIdentifierFromString_1,
+        string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString canonicalLanguageIdentifierFromString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(
+        _lib._class_NSLocale1,
+        _lib._sel_canonicalLanguageIdentifierFromString_1,
+        string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localeIdentifierFromWindowsLocaleCode_(
+      SwiftLibrary _lib, int lcid) {
+    final _ret = _lib._objc_msgSend_178(_lib._class_NSLocale1,
+        _lib._sel_localeIdentifierFromWindowsLocaleCode_1, lcid);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int windowsLocaleCodeFromLocaleIdentifier_(
+      SwiftLibrary _lib, NSString? localeIdentifier) {
+    return _lib._objc_msgSend_179(
+        _lib._class_NSLocale1,
+        _lib._sel_windowsLocaleCodeFromLocaleIdentifier_1,
+        localeIdentifier?._id ?? ffi.nullptr);
+  }
+
+  static int characterDirectionForLanguage_(
+      SwiftLibrary _lib, NSString? isoLangCode) {
+    return _lib._objc_msgSend_180(
+        _lib._class_NSLocale1,
+        _lib._sel_characterDirectionForLanguage_1,
+        isoLangCode?._id ?? ffi.nullptr);
+  }
+
+  static int lineDirectionForLanguage_(
+      SwiftLibrary _lib, NSString? isoLangCode) {
+    return _lib._objc_msgSend_180(_lib._class_NSLocale1,
+        _lib._sel_lineDirectionForLanguage_1, isoLangCode?._id ?? ffi.nullptr);
+  }
+
+  static NSLocale new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSLocale1, _lib._sel_new1);
+    return NSLocale._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSLocale alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSLocale1, _lib._sel_alloc1);
+    return NSLocale._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSLocale1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSLocale1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSLocale1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSLocale1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSLocale1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSLocale1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSLocale1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSLocale1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSLocale1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSLocaleKey = ffi.Pointer<ObjCObject>;
+
+class NSCharacterSet extends NSObject {
+  NSCharacterSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCharacterSet] that points to the same underlying object as [other].
+  static NSCharacterSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCharacterSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCharacterSet] that wraps the given raw object pointer.
+  static NSCharacterSet castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCharacterSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCharacterSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCharacterSet1);
+  }
+
+  static NSCharacterSet? getControlCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_controlCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getWhitespaceCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_whitespaceCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getWhitespaceAndNewlineCharacterSet(
+      SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(_lib._class_NSCharacterSet1,
+        _lib._sel_whitespaceAndNewlineCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getDecimalDigitCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_decimalDigitCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getLetterCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_letterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getLowercaseLetterCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_lowercaseLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getUppercaseLetterCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_uppercaseLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getNonBaseCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_nonBaseCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getAlphanumericCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_alphanumericCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getDecomposableCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_decomposableCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getIllegalCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_illegalCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getPunctuationCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_punctuationCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getCapitalizedLetterCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_capitalizedLetterCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getSymbolCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_symbolCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getNewlineCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_newlineCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCharacterSet characterSetWithRange_(
+      SwiftLibrary _lib, NSRange aRange) {
+    final _ret = _lib._objc_msgSend_169(
+        _lib._class_NSCharacterSet1, _lib._sel_characterSetWithRange_1, aRange);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithCharactersInString_(
+      SwiftLibrary _lib, NSString? aString) {
+    final _ret = _lib._objc_msgSend_170(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithCharactersInString_1,
+        aString?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithBitmapRepresentation_(
+      SwiftLibrary _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_171(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithBitmapRepresentation_1,
+        data?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet characterSetWithContentsOfFile_(
+      SwiftLibrary _lib, NSString? fName) {
+    final _ret = _lib._objc_msgSend_170(_lib._class_NSCharacterSet1,
+        _lib._sel_characterSetWithContentsOfFile_1, fName?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool characterIsMember_(int aCharacter) {
+    return _lib._objc_msgSend_172(
+        _id, _lib._sel_characterIsMember_1, aCharacter);
+  }
+
+  NSData? get bitmapRepresentation {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_bitmapRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCharacterSet? get invertedSet {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_invertedSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool longCharacterIsMember_(int theLongChar) {
+    return _lib._objc_msgSend_173(
+        _id, _lib._sel_longCharacterIsMember_1, theLongChar);
+  }
+
+  bool isSupersetOfSet_(NSCharacterSet? theOtherSet) {
+    return _lib._objc_msgSend_174(
+        _id, _lib._sel_isSupersetOfSet_1, theOtherSet?._id ?? ffi.nullptr);
+  }
+
+  bool hasMemberInPlane_(int thePlane) {
+    return _lib._objc_msgSend_175(_id, _lib._sel_hasMemberInPlane_1, thePlane);
+  }
+
+  static NSCharacterSet? getURLUserAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLUserAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLPasswordAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLPasswordAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLHostAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLHostAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLPathAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLPathAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLQueryAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLQueryAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet? getURLFragmentAllowedCharacterSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_168(
+        _lib._class_NSCharacterSet1, _lib._sel_URLFragmentAllowedCharacterSet1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCharacterSet new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCharacterSet1, _lib._sel_new1);
+    return NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCharacterSet alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCharacterSet1, _lib._sel_alloc1);
+    return NSCharacterSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCharacterSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCharacterSet1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCharacterSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCharacterSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCharacterSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCharacterSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef UTF32Char = UInt32;
+typedef UInt32 = ffi.UnsignedInt;
+
+abstract class NSLocaleLanguageDirection {
+  static const int NSLocaleLanguageDirectionUnknown = 0;
+  static const int NSLocaleLanguageDirectionLeftToRight = 1;
+  static const int NSLocaleLanguageDirectionRightToLeft = 2;
+  static const int NSLocaleLanguageDirectionTopToBottom = 3;
+  static const int NSLocaleLanguageDirectionBottomToTop = 4;
+}
+
+typedef OSType = FourCharCode;
+typedef FourCharCode = UInt32;
+typedef NSURLResourceKey = ffi.Pointer<ObjCObject>;
+
+class NSURLHandle extends NSObject {
+  NSURLHandle._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLHandle] that points to the same underlying object as [other].
+  static NSURLHandle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLHandle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLHandle] that wraps the given raw object pointer.
+  static NSURLHandle castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLHandle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLHandle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLHandle1);
+  }
+
+  static void registerURLHandleClass_(
+      SwiftLibrary _lib, NSObject anURLHandleSubclass) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLHandle1,
+        _lib._sel_registerURLHandleClass_1, anURLHandleSubclass._id);
+  }
+
+  static NSObject URLHandleClassForURL_(SwiftLibrary _lib, NSURL? anURL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSURLHandle1,
+        _lib._sel_URLHandleClassForURL_1, anURL?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int status() {
+    return _lib._objc_msgSend_227(_id, _lib._sel_status1);
+  }
+
+  NSString failureReason() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_failureReason1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addClient_(NSObject? client) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_addClient_1, client?._id ?? ffi.nullptr);
+  }
+
+  void removeClient_(NSObject? client) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_removeClient_1, client?._id ?? ffi.nullptr);
+  }
+
+  void loadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_loadInBackground1);
+  }
+
+  void cancelLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancelLoadInBackground1);
+  }
+
+  NSData resourceData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_resourceData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData availableResourceData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_availableResourceData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int expectedResourceDataSize() {
+    return _lib._objc_msgSend_214(_id, _lib._sel_expectedResourceDataSize1);
+  }
+
+  void flushCachedData() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_flushCachedData1);
+  }
+
+  void backgroundLoadDidFailWithReason_(NSString? reason) {
+    return _lib._objc_msgSend_186(
+        _id,
+        _lib._sel_backgroundLoadDidFailWithReason_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  void didLoadBytes_loadComplete_(NSData? newBytes, bool yorn) {
+    return _lib._objc_msgSend_228(_id, _lib._sel_didLoadBytes_loadComplete_1,
+        newBytes?._id ?? ffi.nullptr, yorn);
+  }
+
+  static bool canInitWithURL_(SwiftLibrary _lib, NSURL? anURL) {
+    return _lib._objc_msgSend_229(_lib._class_NSURLHandle1,
+        _lib._sel_canInitWithURL_1, anURL?._id ?? ffi.nullptr);
+  }
+
+  static NSURLHandle cachedHandleForURL_(SwiftLibrary _lib, NSURL? anURL) {
+    final _ret = _lib._objc_msgSend_230(_lib._class_NSURLHandle1,
+        _lib._sel_cachedHandleForURL_1, anURL?._id ?? ffi.nullptr);
+    return NSURLHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithURL_cached_(NSURL? anURL, bool willCache) {
+    final _ret = _lib._objc_msgSend_231(_id, _lib._sel_initWithURL_cached_1,
+        anURL?._id ?? ffi.nullptr, willCache);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject propertyForKey_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_propertyForKey_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject propertyForKeyIfAvailable_(NSString? propertyKey) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_propertyForKeyIfAvailable_1, propertyKey?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeProperty_forKey_(NSObject propertyValue, NSString? propertyKey) {
+    return _lib._objc_msgSend_225(_id, _lib._sel_writeProperty_forKey_1,
+        propertyValue._id, propertyKey?._id ?? ffi.nullptr);
+  }
+
+  bool writeData_(NSData? data) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_writeData_1, data?._id ?? ffi.nullptr);
+  }
+
+  NSData loadInForeground() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_loadInForeground1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void beginLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_beginLoadInBackground1);
+  }
+
+  void endLoadInBackground() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_endLoadInBackground1);
+  }
+
+  static NSURLHandle new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLHandle1, _lib._sel_new1);
+    return NSURLHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLHandle alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLHandle1, _lib._sel_alloc1);
+    return NSURLHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLHandle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLHandle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLHandle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLHandle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLHandle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLHandle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLHandle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLHandleStatus {
+  static const int NSURLHandleNotLoaded = 0;
+  static const int NSURLHandleLoadSucceeded = 1;
+  static const int NSURLHandleLoadInProgress = 2;
+  static const int NSURLHandleLoadFailed = 3;
+}
+
+abstract class NSDataWritingOptions {
+  static const int NSDataWritingAtomic = 1;
+  static const int NSDataWritingWithoutOverwriting = 2;
+  static const int NSDataWritingFileProtectionNone = 268435456;
+  static const int NSDataWritingFileProtectionComplete = 536870912;
+  static const int NSDataWritingFileProtectionCompleteUnlessOpen = 805306368;
+  static const int
+      NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication =
+      1073741824;
+  static const int NSDataWritingFileProtectionMask = 4026531840;
+  static const int NSAtomicWrite = 1;
+}
+
+abstract class NSDataSearchOptions {
+  static const int NSDataSearchBackwards = 1;
+  static const int NSDataSearchAnchored = 2;
+}
+
+void _ObjCBlock8_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock8_closureRegistry = <int, Function>{};
+int _ObjCBlock8_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock8_registerClosure(Function fn) {
+  final id = ++_ObjCBlock8_closureRegistryIndex;
+  _ObjCBlock8_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock8_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock8_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock8 extends _ObjCBlockBase {
+  ObjCBlock8._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock8.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ffi.Void> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock8_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock8.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ffi.Void> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ffi.Void> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock8_closureTrampoline)
+                    .cast(),
+                _ObjCBlock8_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ffi.Void> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ffi.Void> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ffi.Void> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDataReadingOptions {
+  static const int NSDataReadingMappedIfSafe = 1;
+  static const int NSDataReadingUncached = 2;
+  static const int NSDataReadingMappedAlways = 8;
+  static const int NSDataReadingMapped = 1;
+  static const int NSMappedRead = 1;
+  static const int NSUncachedRead = 2;
+}
+
+void _ObjCBlock9_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ffi.Void> arg0, int arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ffi.Void> arg0, int arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock9_closureRegistry = <int, Function>{};
+int _ObjCBlock9_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock9_registerClosure(Function fn) {
+  final id = ++_ObjCBlock9_closureRegistryIndex;
+  _ObjCBlock9_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock9_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ffi.Void> arg0, int arg1) {
+  return _ObjCBlock9_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock9 extends _ObjCBlockBase {
+  ObjCBlock9._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock9.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<ffi.Void> arg0,
+                            NSUInteger arg1)>(_ObjCBlock9_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock9.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ffi.Void> arg0, int arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<ffi.Void> arg0,
+                            NSUInteger arg1)>(_ObjCBlock9_closureTrampoline)
+                    .cast(),
+                _ObjCBlock9_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ffi.Void> arg0, int arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ffi.Void> arg0, NSUInteger arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ffi.Void> arg0, int arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDataBase64DecodingOptions {
+  static const int NSDataBase64DecodingIgnoreUnknownCharacters = 1;
+}
+
+abstract class NSDataBase64EncodingOptions {
+  static const int NSDataBase64Encoding64CharacterLineLength = 1;
+  static const int NSDataBase64Encoding76CharacterLineLength = 2;
+  static const int NSDataBase64EncodingEndLineWithCarriageReturn = 16;
+  static const int NSDataBase64EncodingEndLineWithLineFeed = 32;
+}
+
+abstract class NSDataCompressionAlgorithm {
+  static const int NSDataCompressionAlgorithmLZFSE = 0;
+  static const int NSDataCompressionAlgorithmLZ4 = 1;
+  static const int NSDataCompressionAlgorithmLZMA = 2;
+  static const int NSDataCompressionAlgorithmZlib = 3;
+}
+
+typedef NSZone = _NSZone;
+
+abstract class NSDecodingFailurePolicy {
+  static const int NSDecodingFailurePolicyRaiseException = 0;
+  static const int NSDecodingFailurePolicySetErrorAndReturn = 1;
+}
+
+abstract class NSStringCompareOptions {
+  static const int NSCaseInsensitiveSearch = 1;
+  static const int NSLiteralSearch = 2;
+  static const int NSBackwardsSearch = 4;
+  static const int NSAnchoredSearch = 8;
+  static const int NSNumericSearch = 64;
+  static const int NSDiacriticInsensitiveSearch = 128;
+  static const int NSWidthInsensitiveSearch = 256;
+  static const int NSForcedOrderingSearch = 512;
+  static const int NSRegularExpressionSearch = 1024;
+}
+
+abstract class NSStringEnumerationOptions {
+  static const int NSStringEnumerationByLines = 0;
+  static const int NSStringEnumerationByParagraphs = 1;
+  static const int NSStringEnumerationByComposedCharacterSequences = 2;
+  static const int NSStringEnumerationByWords = 3;
+  static const int NSStringEnumerationBySentences = 4;
+  static const int NSStringEnumerationByCaretPositions = 5;
+  static const int NSStringEnumerationByDeletionClusters = 6;
+  static const int NSStringEnumerationReverse = 256;
+  static const int NSStringEnumerationSubstringNotRequired = 512;
+  static const int NSStringEnumerationLocalized = 1024;
+}
+
+void _ObjCBlock10_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    NSRange arg1,
+    NSRange arg2,
+    ffi.Pointer<ffi.Bool> arg3) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  NSRange arg2, ffi.Pointer<ffi.Bool> arg3)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              NSRange arg1,
+              NSRange arg2,
+              ffi.Pointer<ffi.Bool> arg3)>()(arg0, arg1, arg2, arg3);
+}
+
+final _ObjCBlock10_closureRegistry = <int, Function>{};
+int _ObjCBlock10_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock10_registerClosure(Function fn) {
+  final id = ++_ObjCBlock10_closureRegistryIndex;
+  _ObjCBlock10_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock10_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    NSRange arg1,
+    NSRange arg2,
+    ffi.Pointer<ffi.Bool> arg3) {
+  return _ObjCBlock10_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2, arg3);
+}
+
+class ObjCBlock10 extends _ObjCBlockBase {
+  ObjCBlock10._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock10.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      NSRange arg2, ffi.Pointer<ffi.Bool> arg3)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                NSRange arg2,
+                                ffi.Pointer<ffi.Bool> arg3)>(
+                        _ObjCBlock10_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock10.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1, NSRange arg2,
+              ffi.Pointer<ffi.Bool> arg3)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                NSRange arg2,
+                                ffi.Pointer<ffi.Bool> arg3)>(
+                        _ObjCBlock10_closureTrampoline)
+                    .cast(),
+                _ObjCBlock10_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, NSRange arg1, NSRange arg2,
+      ffi.Pointer<ffi.Bool> arg3) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    NSRange arg2,
+                    ffi.Pointer<ffi.Bool> arg3)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                NSRange arg2,
+                ffi.Pointer<ffi.Bool> arg3)>()(_id, arg0, arg1, arg2, arg3);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock11_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock11_closureRegistry = <int, Function>{};
+int _ObjCBlock11_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock11_registerClosure(Function fn) {
+  final id = ++_ObjCBlock11_closureRegistryIndex;
+  _ObjCBlock11_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock11_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock11_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock11 extends _ObjCBlockBase {
+  ObjCBlock11._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock11.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock11_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock11.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock11_closureTrampoline)
+                    .cast(),
+                _ObjCBlock11_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSStringEncoding = NSUInteger;
+
+abstract class NSStringEncodingConversionOptions {
+  static const int NSStringEncodingConversionAllowLossy = 1;
+  static const int NSStringEncodingConversionExternalRepresentation = 2;
+}
+
+typedef NSStringTransform = ffi.Pointer<ObjCObject>;
+void _ObjCBlock12_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<unichar> arg0, int arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<unichar> arg0, NSUInteger arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<unichar> arg0, int arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock12_closureRegistry = <int, Function>{};
+int _ObjCBlock12_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock12_registerClosure(Function fn) {
+  final id = ++_ObjCBlock12_closureRegistryIndex;
+  _ObjCBlock12_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock12_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<unichar> arg0, int arg1) {
+  return _ObjCBlock12_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock12 extends _ObjCBlockBase {
+  ObjCBlock12._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock12.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<unichar> arg0, NSUInteger arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<unichar> arg0,
+                            NSUInteger arg1)>(_ObjCBlock12_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock12.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<unichar> arg0, int arg1) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(
+                            ffi.Pointer<_ObjCBlock> block,
+                            ffi.Pointer<unichar> arg0,
+                            NSUInteger arg1)>(_ObjCBlock12_closureTrampoline)
+                    .cast(),
+                _ObjCBlock12_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<unichar> arg0, int arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<unichar> arg0, NSUInteger arg1)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<unichar> arg0, int arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSLinguisticTagScheme = ffi.Pointer<ObjCObject>;
+
+abstract class NSLinguisticTaggerOptions {
+  static const int NSLinguisticTaggerOmitWords = 1;
+  static const int NSLinguisticTaggerOmitPunctuation = 2;
+  static const int NSLinguisticTaggerOmitWhitespace = 4;
+  static const int NSLinguisticTaggerOmitOther = 8;
+  static const int NSLinguisticTaggerJoinNames = 16;
+}
+
+class NSOrthography extends NSObject {
+  NSOrthography._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOrthography] that points to the same underlying object as [other].
+  static NSOrthography castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOrthography._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOrthography] that wraps the given raw object pointer.
+  static NSOrthography castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOrthography._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOrthography].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOrthography1);
+  }
+
+  NSString? get dominantScript {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dominantScript1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get languageMap {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_languageMap1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrthography initWithDominantScript_languageMap_(
+      NSString? script, NSDictionary? map) {
+    final _ret = _lib._objc_msgSend_352(
+        _id,
+        _lib._sel_initWithDominantScript_languageMap_1,
+        script?._id ?? ffi.nullptr,
+        map?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrthography initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray languagesForScript_(NSString? script) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_languagesForScript_1, script?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString dominantLanguageForScript_(NSString? script) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_dominantLanguageForScript_1, script?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get dominantLanguage {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dominantLanguage1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allScripts {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allScripts1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allLanguages {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allLanguages1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography defaultOrthographyForLanguage_(
+      SwiftLibrary _lib, NSString? language) {
+    final _ret = _lib._objc_msgSend_30(
+        _lib._class_NSOrthography1,
+        _lib._sel_defaultOrthographyForLanguage_1,
+        language?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography orthographyWithDominantScript_languageMap_(
+      SwiftLibrary _lib, NSString? script, NSDictionary? map) {
+    final _ret = _lib._objc_msgSend_352(
+        _lib._class_NSOrthography1,
+        _lib._sel_orthographyWithDominantScript_languageMap_1,
+        script?._id ?? ffi.nullptr,
+        map?._id ?? ffi.nullptr);
+    return NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrthography new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrthography1, _lib._sel_new1);
+    return NSOrthography._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrthography alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrthography1, _lib._sel_alloc1);
+    return NSOrthography._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOrthography1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOrthography1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrthography1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrthography1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOrthography1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOrthography1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOrthography1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOrthography1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOrthography1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock13_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock13_closureRegistry = <int, Function>{};
+int _ObjCBlock13_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock13_registerClosure(Function fn) {
+  final id = ++_ObjCBlock13_closureRegistryIndex;
+  _ObjCBlock13_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock13_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock13_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock13 extends _ObjCBlockBase {
+  ObjCBlock13._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock13.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock13_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock13.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock13_closureTrampoline)
+                    .cast(),
+                _ObjCBlock13_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+bool _ObjCBlock14_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)>>()
+      .asFunction<
+          bool Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ffi.Bool> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock14_closureRegistry = <int, Function>{};
+int _ObjCBlock14_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock14_registerClosure(Function fn) {
+  final id = ++_ObjCBlock14_closureRegistryIndex;
+  _ObjCBlock14_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+bool _ObjCBlock14_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+  return _ObjCBlock14_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock14 extends _ObjCBlockBase {
+  ObjCBlock14._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock14.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ffi.Bool> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock14_fnPtrTrampoline, false)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock14.fromFunction(
+      SwiftLibrary lib,
+      bool Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Bool Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ffi.Bool> arg1)>(
+                        _ObjCBlock14_closureTrampoline, false)
+                    .cast(),
+                _ObjCBlock14_registerClosure(fn)),
+            lib);
+  bool call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ffi.Bool> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Bool Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ffi.Bool> arg1)>>()
+        .asFunction<
+            bool Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ffi.Bool> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSFileManager extends NSObject {
+  NSFileManager._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileManager] that points to the same underlying object as [other].
+  static NSFileManager castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileManager._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileManager] that wraps the given raw object pointer.
+  static NSFileManager castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileManager._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileManager].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileManager1);
+  }
+
+  static NSFileManager? getDefaultManager(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_382(
+        _lib._class_NSFileManager1, _lib._sel_defaultManager1);
+    return _ret.address == 0
+        ? null
+        : NSFileManager._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray mountedVolumeURLsIncludingResourceValuesForKeys_options_(
+      NSArray? propertyKeys, int options) {
+    final _ret = _lib._objc_msgSend_383(
+        _id,
+        _lib._sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_1,
+        propertyKeys?._id ?? ffi.nullptr,
+        options);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void unmountVolumeAtURL_options_completionHandler_(
+      NSURL? url, int mask, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_384(
+        _id,
+        _lib._sel_unmountVolumeAtURL_options_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        completionHandler._id);
+  }
+
+  NSArray contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_(
+      NSURL? url,
+      NSArray? keys,
+      int mask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_385(
+        _id,
+        _lib._sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_1,
+        url?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForDirectory_inDomains_(int directory, int domainMask) {
+    final _ret = _lib._objc_msgSend_386(
+        _id, _lib._sel_URLsForDirectory_inDomains_1, directory, domainMask);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForDirectory_inDomain_appropriateForURL_create_error_(
+      int directory,
+      int domain,
+      NSURL? url,
+      bool shouldCreate,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_387(
+        _id,
+        _lib._sel_URLForDirectory_inDomain_appropriateForURL_create_error_1,
+        directory,
+        domain,
+        url?._id ?? ffi.nullptr,
+        shouldCreate,
+        error);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getRelationship_ofDirectoryAtURL_toItemAtURL_error_(
+      ffi.Pointer<ffi.Int32> outRelationship,
+      NSURL? directoryURL,
+      NSURL? otherURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_388(
+        _id,
+        _lib._sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_1,
+        outRelationship,
+        directoryURL?._id ?? ffi.nullptr,
+        otherURL?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool getRelationship_ofDirectory_inDomain_toItemAtURL_error_(
+      ffi.Pointer<ffi.Int32> outRelationship,
+      int directory,
+      int domainMask,
+      NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_389(
+        _id,
+        _lib._sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_1,
+        outRelationship,
+        directory,
+        domainMask,
+        url?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createDirectoryAtURL_withIntermediateDirectories_attributes_error_(
+      NSURL? url,
+      bool createIntermediates,
+      NSDictionary? attributes,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_390(
+        _id,
+        _lib._sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_1,
+        url?._id ?? ffi.nullptr,
+        createIntermediates,
+        attributes?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createSymbolicLinkAtURL_withDestinationURL_error_(
+      NSURL? url, NSURL? destURL, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(
+        _id,
+        _lib._sel_createSymbolicLinkAtURL_withDestinationURL_error_1,
+        url?._id ?? ffi.nullptr,
+        destURL?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool setAttributes_ofItemAtPath_error_(NSDictionary? attributes,
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_392(
+        _id,
+        _lib._sel_setAttributes_ofItemAtPath_error_1,
+        attributes?._id ?? ffi.nullptr,
+        path?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool createDirectoryAtPath_withIntermediateDirectories_attributes_error_(
+      NSString? path,
+      bool createIntermediates,
+      NSDictionary? attributes,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_393(
+        _id,
+        _lib._sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_1,
+        path?._id ?? ffi.nullptr,
+        createIntermediates,
+        attributes?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSArray contentsOfDirectoryAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id,
+        _lib._sel_contentsOfDirectoryAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray subpathsOfDirectoryAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id,
+        _lib._sel_subpathsOfDirectoryAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesOfItemAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_395(
+        _id,
+        _lib._sel_attributesOfItemAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesOfFileSystemForPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_395(
+        _id,
+        _lib._sel_attributesOfFileSystemForPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool createSymbolicLinkAtPath_withDestinationPath_error_(NSString? path,
+      NSString? destPath, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(
+        _id,
+        _lib._sel_createSymbolicLinkAtPath_withDestinationPath_error_1,
+        path?._id ?? ffi.nullptr,
+        destPath?._id ?? ffi.nullptr,
+        error);
+  }
+
+  NSString destinationOfSymbolicLinkAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_397(
+        _id,
+        _lib._sel_destinationOfSymbolicLinkAtPath_error_1,
+        path?._id ?? ffi.nullptr,
+        error);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool copyItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_copyItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool moveItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_moveItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool linkItemAtPath_toPath_error_(NSString? srcPath, NSString? dstPath,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_396(_id, _lib._sel_linkItemAtPath_toPath_error_1,
+        srcPath?._id ?? ffi.nullptr, dstPath?._id ?? ffi.nullptr, error);
+  }
+
+  bool removeItemAtPath_error_(
+      NSString? path, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_398(_id, _lib._sel_removeItemAtPath_error_1,
+        path?._id ?? ffi.nullptr, error);
+  }
+
+  bool copyItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_copyItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool moveItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_moveItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool linkItemAtURL_toURL_error_(NSURL? srcURL, NSURL? dstURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_391(_id, _lib._sel_linkItemAtURL_toURL_error_1,
+        srcURL?._id ?? ffi.nullptr, dstURL?._id ?? ffi.nullptr, error);
+  }
+
+  bool removeItemAtURL_error_(
+      NSURL? URL, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_81(
+        _id, _lib._sel_removeItemAtURL_error_1, URL?._id ?? ffi.nullptr, error);
+  }
+
+  bool trashItemAtURL_resultingItemURL_error_(
+      NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outResultingURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_399(
+        _id,
+        _lib._sel_trashItemAtURL_resultingItemURL_error_1,
+        url?._id ?? ffi.nullptr,
+        outResultingURL,
+        error);
+  }
+
+  NSDictionary fileAttributesAtPath_traverseLink_(NSString? path, bool yorn) {
+    final _ret = _lib._objc_msgSend_400(
+        _id,
+        _lib._sel_fileAttributesAtPath_traverseLink_1,
+        path?._id ?? ffi.nullptr,
+        yorn);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool changeFileAttributes_atPath_(NSDictionary? attributes, NSString? path) {
+    return _lib._objc_msgSend_401(_id, _lib._sel_changeFileAttributes_atPath_1,
+        attributes?._id ?? ffi.nullptr, path?._id ?? ffi.nullptr);
+  }
+
+  NSArray directoryContentsAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_directoryContentsAtPath_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary fileSystemAttributesAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_140(
+        _id, _lib._sel_fileSystemAttributesAtPath_1, path?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathContentOfSymbolicLinkAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(_id,
+        _lib._sel_pathContentOfSymbolicLinkAtPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool createSymbolicLinkAtPath_pathContent_(
+      NSString? path, NSString? otherpath) {
+    return _lib._objc_msgSend_402(
+        _id,
+        _lib._sel_createSymbolicLinkAtPath_pathContent_1,
+        path?._id ?? ffi.nullptr,
+        otherpath?._id ?? ffi.nullptr);
+  }
+
+  bool createDirectoryAtPath_attributes_(
+      NSString? path, NSDictionary? attributes) {
+    return _lib._objc_msgSend_403(
+        _id,
+        _lib._sel_createDirectoryAtPath_attributes_1,
+        path?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  bool linkPath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_linkPath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool copyPath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_copyPath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool movePath_toPath_handler_(
+      NSString? src, NSString? dest, NSObject handler) {
+    return _lib._objc_msgSend_404(_id, _lib._sel_movePath_toPath_handler_1,
+        src?._id ?? ffi.nullptr, dest?._id ?? ffi.nullptr, handler._id);
+  }
+
+  bool removeFileAtPath_handler_(NSString? path, NSObject handler) {
+    return _lib._objc_msgSend_405(_id, _lib._sel_removeFileAtPath_handler_1,
+        path?._id ?? ffi.nullptr, handler._id);
+  }
+
+  NSString? get currentDirectoryPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currentDirectoryPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool changeCurrentDirectoryPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_changeCurrentDirectoryPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool fileExistsAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_fileExistsAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool fileExistsAtPath_isDirectory_(
+      NSString? path, ffi.Pointer<ffi.Bool> isDirectory) {
+    return _lib._objc_msgSend_406(_id, _lib._sel_fileExistsAtPath_isDirectory_1,
+        path?._id ?? ffi.nullptr, isDirectory);
+  }
+
+  bool isReadableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isReadableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isWritableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isWritableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isExecutableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isExecutableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool isDeletableFileAtPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isDeletableFileAtPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool contentsEqualAtPath_andPath_(NSString? path1, NSString? path2) {
+    return _lib._objc_msgSend_402(_id, _lib._sel_contentsEqualAtPath_andPath_1,
+        path1?._id ?? ffi.nullptr, path2?._id ?? ffi.nullptr);
+  }
+
+  NSString displayNameAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_displayNameAtPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray componentsToDisplayForPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_componentsToDisplayForPath_1, path?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get homeDirectoryForCurrentUser {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_homeDirectoryForCurrentUser1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get temporaryDirectory {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_temporaryDirectory1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL homeDirectoryForUser_(NSString? userName) {
+    final _ret = _lib._objc_msgSend_34(
+        _id, _lib._sel_homeDirectoryForUser_1, userName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileManager new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileManager1, _lib._sel_new1);
+    return NSFileManager._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileManager alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileManager1, _lib._sel_alloc1);
+    return NSFileManager._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileManager1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileManager1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileManager1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileManager1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileManager1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileManager1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileManager1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileManager1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileManager1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSVolumeEnumerationOptions {
+  static const int NSVolumeEnumerationSkipHiddenVolumes = 2;
+  static const int NSVolumeEnumerationProduceFileReferenceURLs = 4;
+}
+
+abstract class NSFileManagerUnmountOptions {
+  static const int NSFileManagerUnmountAllPartitionsAndEjectDisk = 1;
+  static const int NSFileManagerUnmountWithoutUI = 2;
+}
+
+void _ObjCBlock15_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock15_closureRegistry = <int, Function>{};
+int _ObjCBlock15_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock15_registerClosure(Function fn) {
+  final id = ++_ObjCBlock15_closureRegistryIndex;
+  _ObjCBlock15_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock15_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock15_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock15 extends _ObjCBlockBase {
+  ObjCBlock15._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock15.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock15_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock15.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock15_closureTrampoline)
+                    .cast(),
+                _ObjCBlock15_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSDirectoryEnumerationOptions {
+  static const int NSDirectoryEnumerationSkipsSubdirectoryDescendants = 1;
+  static const int NSDirectoryEnumerationSkipsPackageDescendants = 2;
+  static const int NSDirectoryEnumerationSkipsHiddenFiles = 4;
+  static const int NSDirectoryEnumerationIncludesDirectoriesPostOrder = 8;
+  static const int NSDirectoryEnumerationProducesRelativePathURLs = 16;
+}
+
+abstract class NSSearchPathDirectory {
+  static const int NSApplicationDirectory = 1;
+  static const int NSDemoApplicationDirectory = 2;
+  static const int NSDeveloperApplicationDirectory = 3;
+  static const int NSAdminApplicationDirectory = 4;
+  static const int NSLibraryDirectory = 5;
+  static const int NSDeveloperDirectory = 6;
+  static const int NSUserDirectory = 7;
+  static const int NSDocumentationDirectory = 8;
+  static const int NSDocumentDirectory = 9;
+  static const int NSCoreServiceDirectory = 10;
+  static const int NSAutosavedInformationDirectory = 11;
+  static const int NSDesktopDirectory = 12;
+  static const int NSCachesDirectory = 13;
+  static const int NSApplicationSupportDirectory = 14;
+  static const int NSDownloadsDirectory = 15;
+  static const int NSInputMethodsDirectory = 16;
+  static const int NSMoviesDirectory = 17;
+  static const int NSMusicDirectory = 18;
+  static const int NSPicturesDirectory = 19;
+  static const int NSPrinterDescriptionDirectory = 20;
+  static const int NSSharedPublicDirectory = 21;
+  static const int NSPreferencePanesDirectory = 22;
+  static const int NSApplicationScriptsDirectory = 23;
+  static const int NSItemReplacementDirectory = 99;
+  static const int NSAllApplicationsDirectory = 100;
+  static const int NSAllLibrariesDirectory = 101;
+  static const int NSTrashDirectory = 102;
+}
+
+abstract class NSSearchPathDomainMask {
+  static const int NSUserDomainMask = 1;
+  static const int NSLocalDomainMask = 2;
+  static const int NSNetworkDomainMask = 4;
+  static const int NSSystemDomainMask = 8;
+  static const int NSAllDomainsMask = 65535;
+}
+
+abstract class NSURLRelationship {
+  static const int NSURLRelationshipContains = 0;
+  static const int NSURLRelationshipSame = 1;
+  static const int NSURLRelationshipOther = 2;
+}
+
+class NSMutableArray extends NSArray {
+  NSMutableArray._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableArray] that points to the same underlying object as [other].
+  static NSMutableArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableArray] that wraps the given raw object pointer.
+  static NSMutableArray castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableArray1);
+  }
+
+  void addObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, anObject._id);
+  }
+
+  void insertObject_atIndex_(NSObject anObject, int index) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_insertObject_atIndex_1, anObject._id, index);
+  }
+
+  void removeLastObject() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeLastObject1);
+  }
+
+  void removeObjectAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeObjectAtIndex_1, index);
+  }
+
+  void replaceObjectAtIndex_withObject_(int index, NSObject anObject) {
+    return _lib._objc_msgSend_411(
+        _id, _lib._sel_replaceObjectAtIndex_withObject_1, index, anObject._id);
+  }
+
+  @override
+  NSMutableArray init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableArray initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObjectsFromArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void exchangeObjectAtIndex_withObjectAtIndex_(int idx1, int idx2) {
+    return _lib._objc_msgSend_413(
+        _id, _lib._sel_exchangeObjectAtIndex_withObjectAtIndex_1, idx1, idx2);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObject_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_414(
+        _id, _lib._sel_removeObject_inRange_1, anObject._id, range);
+  }
+
+  void removeObject_(NSObject anObject) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, anObject._id);
+  }
+
+  void removeObjectIdenticalTo_inRange_(NSObject anObject, NSRange range) {
+    return _lib._objc_msgSend_414(
+        _id, _lib._sel_removeObjectIdenticalTo_inRange_1, anObject._id, range);
+  }
+
+  void removeObjectIdenticalTo_(NSObject anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_removeObjectIdenticalTo_1, anObject._id);
+  }
+
+  void removeObjectsFromIndices_numIndices_(
+      ffi.Pointer<NSUInteger> indices, int cnt) {
+    return _lib._objc_msgSend_415(
+        _id, _lib._sel_removeObjectsFromIndices_numIndices_1, indices, cnt);
+  }
+
+  void removeObjectsInArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsInArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_removeObjectsInRange_1, range);
+  }
+
+  void replaceObjectsInRange_withObjectsFromArray_range_(
+      NSRange range, NSArray? otherArray, NSRange otherRange) {
+    return _lib._objc_msgSend_417(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjectsFromArray_range_1,
+        range,
+        otherArray?._id ?? ffi.nullptr,
+        otherRange);
+  }
+
+  void replaceObjectsInRange_withObjectsFromArray_(
+      NSRange range, NSArray? otherArray) {
+    return _lib._objc_msgSend_418(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjectsFromArray_1,
+        range,
+        otherArray?._id ?? ffi.nullptr);
+  }
+
+  void setArray_(NSArray? otherArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setArray_1, otherArray?._id ?? ffi.nullptr);
+  }
+
+  void sortUsingFunction_context_(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+          compare,
+      ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_419(
+        _id, _lib._sel_sortUsingFunction_context_1, compare, context);
+  }
+
+  void sortUsingSelector_(ffi.Pointer<ObjCSel> comparator) {
+    return _lib._objc_msgSend_7(_id, _lib._sel_sortUsingSelector_1, comparator);
+  }
+
+  void insertObjects_atIndexes_(NSArray? objects, NSIndexSet? indexes) {
+    return _lib._objc_msgSend_420(_id, _lib._sel_insertObjects_atIndexes_1,
+        objects?._id ?? ffi.nullptr, indexes?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsAtIndexes_(NSIndexSet? indexes) {
+    return _lib._objc_msgSend_421(
+        _id, _lib._sel_removeObjectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+  }
+
+  void replaceObjectsAtIndexes_withObjects_(
+      NSIndexSet? indexes, NSArray? objects) {
+    return _lib._objc_msgSend_422(
+        _id,
+        _lib._sel_replaceObjectsAtIndexes_withObjects_1,
+        indexes?._id ?? ffi.nullptr,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void setObject_atIndexedSubscript_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndexedSubscript_1, obj._id, idx);
+  }
+
+  void sortUsingComparator_(NSComparator cmptr) {
+    return _lib._objc_msgSend_423(_id, _lib._sel_sortUsingComparator_1, cmptr);
+  }
+
+  void sortWithOptions_usingComparator_(int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_424(
+        _id, _lib._sel_sortWithOptions_usingComparator_1, opts, cmptr);
+  }
+
+  static NSMutableArray arrayWithCapacity_(SwiftLibrary _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableArray1, _lib._sel_arrayWithCapacity_1, numItems);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithContentsOfFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_425(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_426(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_425(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableArray initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_426(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void applyDifference_() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_applyDifference_1);
+  }
+
+  void sortUsingDescriptors_(NSArray? sortDescriptors) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_sortUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+  }
+
+  void filterUsingPredicate_(NSPredicate? predicate) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableArray array(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_array1);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObject_(SwiftLibrary _lib, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableArray1, _lib._sel_arrayWithObject_1, anObject._id);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithObjects_count_1, objects, cnt);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithObjects_(
+      SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithObjects_1, firstObj._id);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray arrayWithArray_(SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableArray1,
+        _lib._sel_arrayWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray arrayWithContentsOfURL_error_(SwiftLibrary _lib, NSURL? url,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_117(
+        _lib._class_NSMutableArray1,
+        _lib._sel_arrayWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableArray new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_new1);
+    return NSMutableArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableArray alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableArray1, _lib._sel_alloc1);
+    return NSMutableArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableArray1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableOrderedSet extends NSOrderedSet {
+  NSMutableOrderedSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableOrderedSet] that points to the same underlying object as [other].
+  static NSMutableOrderedSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableOrderedSet._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableOrderedSet] that wraps the given raw object pointer.
+  static NSMutableOrderedSet castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableOrderedSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableOrderedSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableOrderedSet1);
+  }
+
+  void insertObject_atIndex_(NSObject object, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_insertObject_atIndex_1, object._id, idx);
+  }
+
+  void removeObjectAtIndex_(int idx) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeObjectAtIndex_1, idx);
+  }
+
+  void replaceObjectAtIndex_withObject_(int idx, NSObject object) {
+    return _lib._objc_msgSend_411(
+        _id, _lib._sel_replaceObjectAtIndex_withObject_1, idx, object._id);
+  }
+
+  @override
+  NSMutableOrderedSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableOrderedSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableOrderedSet initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, object._id);
+  }
+
+  void addObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int count) {
+    return _lib._objc_msgSend_435(
+        _id, _lib._sel_addObjects_count_1, objects, count);
+  }
+
+  void addObjectsFromArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void exchangeObjectAtIndex_withObjectAtIndex_(int idx1, int idx2) {
+    return _lib._objc_msgSend_413(
+        _id, _lib._sel_exchangeObjectAtIndex_withObjectAtIndex_1, idx1, idx2);
+  }
+
+  void moveObjectsAtIndexes_toIndex_(NSIndexSet? indexes, int idx) {
+    return _lib._objc_msgSend_436(_id, _lib._sel_moveObjectsAtIndexes_toIndex_1,
+        indexes?._id ?? ffi.nullptr, idx);
+  }
+
+  void insertObjects_atIndexes_(NSArray? objects, NSIndexSet? indexes) {
+    return _lib._objc_msgSend_420(_id, _lib._sel_insertObjects_atIndexes_1,
+        objects?._id ?? ffi.nullptr, indexes?._id ?? ffi.nullptr);
+  }
+
+  void setObject_atIndex_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndex_1, obj._id, idx);
+  }
+
+  void setObject_atIndexedSubscript_(NSObject obj, int idx) {
+    return _lib._objc_msgSend_409(
+        _id, _lib._sel_setObject_atIndexedSubscript_1, obj._id, idx);
+  }
+
+  void replaceObjectsInRange_withObjects_count_(
+      NSRange range, ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int count) {
+    return _lib._objc_msgSend_437(
+        _id,
+        _lib._sel_replaceObjectsInRange_withObjects_count_1,
+        range,
+        objects,
+        count);
+  }
+
+  void replaceObjectsAtIndexes_withObjects_(
+      NSIndexSet? indexes, NSArray? objects) {
+    return _lib._objc_msgSend_422(
+        _id,
+        _lib._sel_replaceObjectsAtIndexes_withObjects_1,
+        indexes?._id ?? ffi.nullptr,
+        objects?._id ?? ffi.nullptr);
+  }
+
+  void removeObjectsInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_removeObjectsInRange_1, range);
+  }
+
+  void removeObjectsAtIndexes_(NSIndexSet? indexes) {
+    return _lib._objc_msgSend_421(
+        _id, _lib._sel_removeObjectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, object._id);
+  }
+
+  void removeObjectsInArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsInArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void intersectOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_intersectOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void minusOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_minusOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void unionOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_438(
+        _id, _lib._sel_unionOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void intersectSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_intersectSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void minusSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_minusSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void unionSet_(NSSet? other) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_unionSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  void sortUsingComparator_(NSComparator cmptr) {
+    return _lib._objc_msgSend_423(_id, _lib._sel_sortUsingComparator_1, cmptr);
+  }
+
+  void sortWithOptions_usingComparator_(int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_424(
+        _id, _lib._sel_sortWithOptions_usingComparator_1, opts, cmptr);
+  }
+
+  void sortRange_options_usingComparator_(
+      NSRange range, int opts, NSComparator cmptr) {
+    return _lib._objc_msgSend_440(
+        _id, _lib._sel_sortRange_options_usingComparator_1, range, opts, cmptr);
+  }
+
+  static NSMutableOrderedSet orderedSetWithCapacity_(
+      SwiftLibrary _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithCapacity_1, numItems);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void applyDifference_() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_applyDifference_1);
+  }
+
+  void sortUsingDescriptors_(NSArray? sortDescriptors) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_sortUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+  }
+
+  void filterUsingPredicate_(NSPredicate? p) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, p?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableOrderedSet orderedSet(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_orderedSet1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObject_(
+      SwiftLibrary _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObject_1, object._id);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObjects_count_1, objects, cnt);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithObjects_(
+      SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithObjects_1, firstObj._id);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithOrderedSet_(
+      SwiftLibrary _lib, NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithOrderedSet_range_copyItems_(
+      SwiftLibrary _lib, NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithArray_(
+      SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithArray_range_copyItems_(
+      SwiftLibrary _lib, NSArray? array, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithArray_range_copyItems_1,
+        array?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithSet_(SwiftLibrary _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableOrderedSet orderedSetWithSet_copyItems_(
+      SwiftLibrary _lib, NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_orderedSetWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableOrderedSet1, _lib._sel_new1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableOrderedSet alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_alloc1);
+    return NSMutableOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableOrderedSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableOrderedSet1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableOrderedSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOrderedSet extends NSObject {
+  NSOrderedSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOrderedSet] that points to the same underlying object as [other].
+  static NSOrderedSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOrderedSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOrderedSet] that wraps the given raw object pointer.
+  static NSOrderedSet castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOrderedSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOrderedSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOrderedSet1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  NSObject objectAtIndex_(int idx) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndex_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_(NSObject object) {
+    return _lib._objc_msgSend_69(_id, _lib._sel_indexOfObject_1, object._id);
+  }
+
+  @override
+  NSOrderedSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithObjects_count_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(
+        _id, _lib._sel_initWithObjects_count_1, objects, cnt);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getObjects_range_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, NSRange range) {
+    return _lib._objc_msgSend_68(
+        _id, _lib._sel_getObjects_range_1, objects, range);
+  }
+
+  NSArray objectsAtIndexes_(NSIndexSet? indexes) {
+    final _ret = _lib._objc_msgSend_103(
+        _id, _lib._sel_objectsAtIndexes_1, indexes?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get firstObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_firstObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get lastObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_lastObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_isEqualToOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool containsObject_(NSObject object) {
+    return _lib._objc_msgSend_0(_id, _lib._sel_containsObject_1, object._id);
+  }
+
+  bool intersectsOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_intersectsOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool intersectsSet_(NSSet? set) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_intersectsSet_1, set?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfOrderedSet_(NSOrderedSet? other) {
+    return _lib._objc_msgSend_428(
+        _id, _lib._sel_isSubsetOfOrderedSet_1, other?._id ?? ffi.nullptr);
+  }
+
+  bool isSubsetOfSet_(NSSet? set) {
+    return _lib._objc_msgSend_355(
+        _id, _lib._sel_isSubsetOfSet_1, set?._id ?? ffi.nullptr);
+  }
+
+  NSObject objectAtIndexedSubscript_(int idx) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_objectAtIndexedSubscript_1, idx);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator objectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_objectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSEnumerator reverseObjectEnumerator() {
+    final _ret = _lib._objc_msgSend_72(_id, _lib._sel_reverseObjectEnumerator1);
+    return NSEnumerator._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet? get reversedOrderedSet {
+    final _ret = _lib._objc_msgSend_429(_id, _lib._sel_reversedOrderedSet1);
+    return _ret.address == 0
+        ? null
+        : NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get array {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_array1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSSet? get set1 {
+    final _ret = _lib._objc_msgSend_280(_id, _lib._sel_set1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateObjectsUsingBlock_(ObjCBlock3 block) {
+    return _lib._objc_msgSend_104(
+        _id, _lib._sel_enumerateObjectsUsingBlock_1, block._id);
+  }
+
+  void enumerateObjectsWithOptions_usingBlock_(int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_105(_id,
+        _lib._sel_enumerateObjectsWithOptions_usingBlock_1, opts, block._id);
+  }
+
+  void enumerateObjectsAtIndexes_options_usingBlock_(
+      NSIndexSet? s, int opts, ObjCBlock3 block) {
+    return _lib._objc_msgSend_106(
+        _id,
+        _lib._sel_enumerateObjectsAtIndexes_options_usingBlock_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  int indexOfObjectPassingTest_(ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_107(
+        _id, _lib._sel_indexOfObjectPassingTest_1, predicate._id);
+  }
+
+  int indexOfObjectWithOptions_passingTest_(int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_108(_id,
+        _lib._sel_indexOfObjectWithOptions_passingTest_1, opts, predicate._id);
+  }
+
+  int indexOfObjectAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    return _lib._objc_msgSend_109(
+        _id,
+        _lib._sel_indexOfObjectAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+  }
+
+  NSIndexSet indexesOfObjectsPassingTest_(ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_110(
+        _id, _lib._sel_indexesOfObjectsPassingTest_1, predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsWithOptions_passingTest_(
+      int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_111(
+        _id,
+        _lib._sel_indexesOfObjectsWithOptions_passingTest_1,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexSet indexesOfObjectsAtIndexes_options_passingTest_(
+      NSIndexSet? s, int opts, ObjCBlock4 predicate) {
+    final _ret = _lib._objc_msgSend_112(
+        _id,
+        _lib._sel_indexesOfObjectsAtIndexes_options_passingTest_1,
+        s?._id ?? ffi.nullptr,
+        opts,
+        predicate._id);
+    return NSIndexSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexOfObject_inSortedRange_options_usingComparator_(
+      NSObject object, NSRange range, int opts, NSComparator cmp) {
+    return _lib._objc_msgSend_115(
+        _id,
+        _lib._sel_indexOfObject_inSortedRange_options_usingComparator_1,
+        object._id,
+        range,
+        opts,
+        cmp);
+  }
+
+  NSArray sortedArrayUsingComparator_(NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_113(
+        _id, _lib._sel_sortedArrayUsingComparator_1, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray sortedArrayWithOptions_usingComparator_(
+      int opts, NSComparator cmptr) {
+    final _ret = _lib._objc_msgSend_114(
+        _id, _lib._sel_sortedArrayWithOptions_usingComparator_1, opts, cmptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_(NSObject locale) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_descriptionWithLocale_1, locale._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString descriptionWithLocale_indent_(NSObject locale, int level) {
+    final _ret = _lib._objc_msgSend_66(
+        _id, _lib._sel_descriptionWithLocale_indent_1, locale._id, level);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSet(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_orderedSet1);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObject_(
+      SwiftLibrary _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObject_1, object._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObjects_count_1, objects, cnt);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithObjects_(
+      SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithObjects_1, firstObj._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithOrderedSet_(
+      SwiftLibrary _lib, NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithOrderedSet_range_copyItems_(
+      SwiftLibrary _lib, NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithArray_(SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithArray_1, array?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithArray_range_copyItems_(
+      SwiftLibrary _lib, NSArray? array, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithArray_range_copyItems_1,
+        array?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithSet_(SwiftLibrary _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet orderedSetWithSet_copyItems_(
+      SwiftLibrary _lib, NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(_lib._class_NSOrderedSet1,
+        _lib._sel_orderedSetWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithObject_(NSObject object) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObject_1, object._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithObjects_(NSObject firstObj) {
+    final _ret =
+        _lib._objc_msgSend_16(_id, _lib._sel_initWithObjects_1, firstObj._id);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_(NSOrderedSet? set) {
+    final _ret = _lib._objc_msgSend_430(
+        _id, _lib._sel_initWithOrderedSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_copyItems_(NSOrderedSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_433(
+        _id,
+        _lib._sel_initWithOrderedSet_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithOrderedSet_range_copyItems_(
+      NSOrderedSet? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_431(
+        _id,
+        _lib._sel_initWithOrderedSet_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithArray_(NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(
+        _id, _lib._sel_initWithArray_1, array?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithArray_copyItems_(NSArray? set, bool flag) {
+    final _ret = _lib._objc_msgSend_116(_id,
+        _lib._sel_initWithArray_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithArray_range_copyItems_(
+      NSArray? set, NSRange range, bool flag) {
+    final _ret = _lib._objc_msgSend_432(
+        _id,
+        _lib._sel_initWithArray_range_copyItems_1,
+        set?._id ?? ffi.nullptr,
+        range,
+        flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSOrderedSet initWithSet_(NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(
+        _id, _lib._sel_initWithSet_1, set?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet initWithSet_copyItems_(NSSet? set, bool flag) {
+    final _ret = _lib._objc_msgSend_364(
+        _id, _lib._sel_initWithSet_copyItems_1, set?._id ?? ffi.nullptr, flag);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  @override
+  NSObject valueForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_valueForKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void addObserver_forKeyPath_options_context_(NSObject? observer,
+      NSString? keyPath, int options, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_126(
+        _id,
+        _lib._sel_addObserver_forKeyPath_options_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        options,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_context_(
+      NSObject? observer, NSString? keyPath, ffi.Pointer<ffi.Void> context) {
+    return _lib._objc_msgSend_127(
+        _id,
+        _lib._sel_removeObserver_forKeyPath_context_1,
+        observer?._id ?? ffi.nullptr,
+        keyPath?._id ?? ffi.nullptr,
+        context);
+  }
+
+  @override
+  void removeObserver_forKeyPath_(NSObject? observer, NSString? keyPath) {
+    return _lib._objc_msgSend_128(_id, _lib._sel_removeObserver_forKeyPath_1,
+        observer?._id ?? ffi.nullptr, keyPath?._id ?? ffi.nullptr);
+  }
+
+  NSArray sortedArrayUsingDescriptors_(NSArray? sortDescriptors) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedArrayUsingDescriptors_1,
+        sortDescriptors?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOrderedSet filteredOrderedSetUsingPredicate_(NSPredicate? p) {
+    final _ret = _lib._objc_msgSend_434(_id,
+        _lib._sel_filteredOrderedSetUsingPredicate_1, p?._id ?? ffi.nullptr);
+    return NSOrderedSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOrderedSet new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_new1);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOrderedSet alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOrderedSet1, _lib._sel_alloc1);
+    return NSOrderedSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOrderedSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrderedSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOrderedSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOrderedSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOrderedSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOrderedSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableSet extends NSSet {
+  NSMutableSet._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableSet] that points to the same underlying object as [other].
+  static NSMutableSet castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableSet._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableSet] that wraps the given raw object pointer.
+  static NSMutableSet castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableSet._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableSet].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMutableSet1);
+  }
+
+  void addObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_addObject_1, object._id);
+  }
+
+  void removeObject_(NSObject object) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObject_1, object._id);
+  }
+
+  @override
+  NSMutableSet initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableSet init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableSet initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addObjectsFromArray_(NSArray? array) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_addObjectsFromArray_1, array?._id ?? ffi.nullptr);
+  }
+
+  void intersectSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_intersectSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void minusSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_minusSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void unionSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_unionSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  void setSet_(NSSet? otherSet) {
+    return _lib._objc_msgSend_439(
+        _id, _lib._sel_setSet_1, otherSet?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableSet setWithCapacity_(SwiftLibrary _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableSet1, _lib._sel_setWithCapacity_1, numItems);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  void filterUsingPredicate_(NSPredicate? predicate) {
+    return _lib._objc_msgSend_427(
+        _id, _lib._sel_filterUsingPredicate_1, predicate?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableSet set1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_set1);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObject_(SwiftLibrary _lib, NSObject object) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableSet1, _lib._sel_setWithObject_1, object._id);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObjects_count_(SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects, int cnt) {
+    final _ret = _lib._objc_msgSend_61(_lib._class_NSMutableSet1,
+        _lib._sel_setWithObjects_count_1, objects, cnt);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithObjects_(SwiftLibrary _lib, NSObject firstObj) {
+    final _ret = _lib._objc_msgSend_16(
+        _lib._class_NSMutableSet1, _lib._sel_setWithObjects_1, firstObj._id);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithSet_(SwiftLibrary _lib, NSSet? set) {
+    final _ret = _lib._objc_msgSend_363(_lib._class_NSMutableSet1,
+        _lib._sel_setWithSet_1, set?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet setWithArray_(SwiftLibrary _lib, NSArray? array) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableSet1,
+        _lib._sel_setWithArray_1, array?._id ?? ffi.nullptr);
+    return NSMutableSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableSet new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_new1);
+    return NSMutableSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableSet alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableSet1, _lib._sel_alloc1);
+    return NSMutableSet._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableSet1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableSet1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableSet1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableSet1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableSet1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableSet1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableSet1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableSet1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSKeyValueChange {
+  static const int NSKeyValueChangeSetting = 1;
+  static const int NSKeyValueChangeInsertion = 2;
+  static const int NSKeyValueChangeRemoval = 3;
+  static const int NSKeyValueChangeReplacement = 4;
+}
+
+abstract class NSKeyValueSetMutationKind {
+  static const int NSKeyValueUnionSetMutation = 1;
+  static const int NSKeyValueMinusSetMutation = 2;
+  static const int NSKeyValueIntersectSetMutation = 3;
+  static const int NSKeyValueSetSetMutation = 4;
+}
+
+class NSKeyedArchiver extends NSCoder {
+  NSKeyedArchiver._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSKeyedArchiver] that points to the same underlying object as [other].
+  static NSKeyedArchiver castFrom<T extends _ObjCWrapper>(T other) {
+    return NSKeyedArchiver._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSKeyedArchiver] that wraps the given raw object pointer.
+  static NSKeyedArchiver castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSKeyedArchiver._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSKeyedArchiver].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSKeyedArchiver1);
+  }
+
+  NSKeyedArchiver initRequiringSecureCoding_(bool requiresSecureCoding) {
+    final _ret = _lib._objc_msgSend_449(
+        _id, _lib._sel_initRequiringSecureCoding_1, requiresSecureCoding);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData archivedDataWithRootObject_requiringSecureCoding_error_(
+      SwiftLibrary _lib,
+      NSObject object,
+      bool requiresSecureCoding,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_450(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_archivedDataWithRootObject_requiringSecureCoding_error_1,
+        object._id,
+        requiresSecureCoding,
+        error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSKeyedArchiver init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSKeyedArchiver initForWritingWithMutableData_(NSMutableData? data) {
+    final _ret = _lib._objc_msgSend_455(_id,
+        _lib._sel_initForWritingWithMutableData_1, data?._id ?? ffi.nullptr);
+    return NSKeyedArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData archivedDataWithRootObject_(
+      SwiftLibrary _lib, NSObject rootObject) {
+    final _ret = _lib._objc_msgSend_456(_lib._class_NSKeyedArchiver1,
+        _lib._sel_archivedDataWithRootObject_1, rootObject._id);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool archiveRootObject_toFile_(
+      SwiftLibrary _lib, NSObject rootObject, NSString? path) {
+    return _lib._objc_msgSend_225(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_archiveRootObject_toFile_1,
+        rootObject._id,
+        path?._id ?? ffi.nullptr);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get outputFormat {
+    return _lib._objc_msgSend_457(_id, _lib._sel_outputFormat1);
+  }
+
+  set outputFormat(int value) {
+    _lib._objc_msgSend_458(_id, _lib._sel_setOutputFormat_1, value);
+  }
+
+  NSData? get encodedData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_encodedData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void finishEncoding() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finishEncoding1);
+  }
+
+  static void setClassName_forClass_(
+      SwiftLibrary _lib, NSString? codedName, NSObject cls) {
+    return _lib._objc_msgSend_459(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_setClassName_forClass_1,
+        codedName?._id ?? ffi.nullptr,
+        cls._id);
+  }
+
+  static NSString classNameForClass_(SwiftLibrary _lib, NSObject cls) {
+    final _ret = _lib._objc_msgSend_65(
+        _lib._class_NSKeyedArchiver1, _lib._sel_classNameForClass_1, cls._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void encodeObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(_id, _lib._sel_encodeObject_forKey_1,
+        object._id, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeConditionalObject_forKey_(NSObject object, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id,
+        _lib._sel_encodeConditionalObject_forKey_1,
+        object._id,
+        key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeBool_forKey_(bool value, NSString? key) {
+    return _lib._objc_msgSend_257(
+        _id, _lib._sel_encodeBool_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_258(
+        _id, _lib._sel_encodeInt_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt32_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_259(
+        _id, _lib._sel_encodeInt32_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeInt64_forKey_(int value, NSString? key) {
+    return _lib._objc_msgSend_260(
+        _id, _lib._sel_encodeInt64_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeFloat_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_261(
+        _id, _lib._sel_encodeFloat_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeDouble_forKey_(double value, NSString? key) {
+    return _lib._objc_msgSend_262(
+        _id, _lib._sel_encodeDouble_forKey_1, value, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  void encodeBytes_length_forKey_(
+      ffi.Pointer<ffi.Uint8> bytes, int length, NSString? key) {
+    return _lib._objc_msgSend_263(_id, _lib._sel_encodeBytes_length_forKey_1,
+        bytes, length, key?._id ?? ffi.nullptr);
+  }
+
+  @override
+  bool get requiresSecureCoding {
+    return _lib._objc_msgSend_12(_id, _lib._sel_requiresSecureCoding1);
+  }
+
+  set requiresSecureCoding(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setRequiresSecureCoding_1, value);
+  }
+
+  static NSKeyedArchiver new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSKeyedArchiver1, _lib._sel_new1);
+    return NSKeyedArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSKeyedArchiver alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSKeyedArchiver1, _lib._sel_alloc1);
+    return NSKeyedArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSKeyedArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSKeyedArchiver1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSKeyedArchiver1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSKeyedArchiver1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSKeyedArchiver1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSKeyedArchiver1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableData extends NSData {
+  NSMutableData._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableData] that points to the same underlying object as [other].
+  static NSMutableData castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableData._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableData] that wraps the given raw object pointer.
+  static NSMutableData castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableData._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableData].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMutableData1);
+  }
+
+  ffi.Pointer<ffi.Void> get mutableBytes {
+    return _lib._objc_msgSend_19(_id, _lib._sel_mutableBytes1);
+  }
+
+  @override
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  set length(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setLength_1, value);
+  }
+
+  void appendBytes_length_(ffi.Pointer<ffi.Void> bytes, int length) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_appendBytes_length_1, bytes, length);
+  }
+
+  void appendData_(NSData? other) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_appendData_1, other?._id ?? ffi.nullptr);
+  }
+
+  void increaseLengthBy_(int extraLength) {
+    return _lib._objc_msgSend_410(
+        _id, _lib._sel_increaseLengthBy_1, extraLength);
+  }
+
+  void replaceBytesInRange_withBytes_(
+      NSRange range, ffi.Pointer<ffi.Void> bytes) {
+    return _lib._objc_msgSend_452(
+        _id, _lib._sel_replaceBytesInRange_withBytes_1, range, bytes);
+  }
+
+  void resetBytesInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(_id, _lib._sel_resetBytesInRange_1, range);
+  }
+
+  void setData_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_setData_1, data?._id ?? ffi.nullptr);
+  }
+
+  void replaceBytesInRange_withBytes_length_(NSRange range,
+      ffi.Pointer<ffi.Void> replacementBytes, int replacementLength) {
+    return _lib._objc_msgSend_453(
+        _id,
+        _lib._sel_replaceBytesInRange_withBytes_length_1,
+        range,
+        replacementBytes,
+        replacementLength);
+  }
+
+  static NSMutableData dataWithCapacity_(SwiftLibrary _lib, int aNumItems) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableData1, _lib._sel_dataWithCapacity_1, aNumItems);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithLength_(SwiftLibrary _lib, int length) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSMutableData1, _lib._sel_dataWithLength_1, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData initWithCapacity_(int capacity) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, capacity);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData initWithLength_(int length) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithLength_1, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool decompressUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_454(
+        _id, _lib._sel_decompressUsingAlgorithm_error_1, algorithm, error);
+  }
+
+  bool compressUsingAlgorithm_error_(
+      int algorithm, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_454(
+        _id, _lib._sel_compressUsingAlgorithm_error_1, algorithm, error);
+  }
+
+  static NSMutableData data(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_data1);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithBytes_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytes_length_1, bytes, length);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithBytesNoCopy_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length) {
+    final _ret = _lib._objc_msgSend_237(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytesNoCopy_length_1, bytes, length);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData dataWithBytesNoCopy_length_freeWhenDone_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Void> bytes, int length, bool b) {
+    final _ret = _lib._objc_msgSend_238(_lib._class_NSMutableData1,
+        _lib._sel_dataWithBytesNoCopy_length_freeWhenDone_1, bytes, length, b);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfFile_options_error_(
+      SwiftLibrary _lib,
+      NSString? path,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_239(
+        _lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfFile_options_error_1,
+        path?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfURL_options_error_(
+      SwiftLibrary _lib,
+      NSURL? url,
+      int readOptionsMask,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr) {
+    final _ret = _lib._objc_msgSend_240(
+        _lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        readOptionsMask,
+        errorPtr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData dataWithData_(SwiftLibrary _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSMutableData1,
+        _lib._sel_dataWithData_1, data?._id ?? ffi.nullptr);
+    return NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject dataWithContentsOfMappedFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableData1,
+        _lib._sel_dataWithContentsOfMappedFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableData new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_new1);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableData alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableData1, _lib._sel_alloc1);
+    return NSMutableData._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableData1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableData1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableData1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableData1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableData1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableData1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMutableData1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableData1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSPropertyListFormat {
+  static const int NSPropertyListOpenStepFormat = 1;
+  static const int NSPropertyListXMLFormat_v1_0 = 100;
+  static const int NSPropertyListBinaryFormat_v1_0 = 200;
+}
+
+class NSThread extends NSObject {
+  NSThread._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSThread] that points to the same underlying object as [other].
+  static NSThread castFrom<T extends _ObjCWrapper>(T other) {
+    return NSThread._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSThread] that wraps the given raw object pointer.
+  static NSThread castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSThread._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSThread].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSThread1);
+  }
+
+  static NSThread? getCurrentThread(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_464(_lib._class_NSThread1, _lib._sel_currentThread1);
+    return _ret.address == 0
+        ? null
+        : NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void detachNewThreadWithBlock_(SwiftLibrary _lib, ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(
+        _lib._class_NSThread1, _lib._sel_detachNewThreadWithBlock_1, block._id);
+  }
+
+  static void detachNewThreadSelector_toTarget_withObject_(SwiftLibrary _lib,
+      ffi.Pointer<ObjCSel> selector, NSObject target, NSObject argument) {
+    return _lib._objc_msgSend_466(
+        _lib._class_NSThread1,
+        _lib._sel_detachNewThreadSelector_toTarget_withObject_1,
+        selector,
+        target._id,
+        argument._id);
+  }
+
+  static bool isMultiThreaded(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_isMultiThreaded1);
+  }
+
+  NSMutableDictionary? get threadDictionary {
+    final _ret = _lib._objc_msgSend_471(_id, _lib._sel_threadDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void sleepUntilDate_(SwiftLibrary _lib, NSDate? date) {
+    return _lib._objc_msgSend_472(_lib._class_NSThread1,
+        _lib._sel_sleepUntilDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  static void sleepForTimeInterval_(SwiftLibrary _lib, double ti) {
+    return _lib._objc_msgSend_473(
+        _lib._class_NSThread1, _lib._sel_sleepForTimeInterval_1, ti);
+  }
+
+  static void exit(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSThread1, _lib._sel_exit1);
+  }
+
+  double get threadPriority {
+    return _lib._objc_msgSend_149(_id, _lib._sel_threadPriority1);
+  }
+
+  set threadPriority(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setThreadPriority_1, value);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  static NSArray? getCallStackReturnAddresses(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_callStackReturnAddresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getCallStackSymbols(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_callStackSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get stackSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_stackSize1);
+  }
+
+  set stackSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setStackSize_1, value);
+  }
+
+  bool get isMainThread {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isMainThread1);
+  }
+
+  static NSThread? getMainThread(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_464(_lib._class_NSThread1, _lib._sel_mainThread1);
+    return _ret.address == 0
+        ? null
+        : NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSThread init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSThread initWithTarget_selector_object_(
+      NSObject target, ffi.Pointer<ObjCSel> selector, NSObject argument) {
+    final _ret = _lib._objc_msgSend_478(
+        _id,
+        _lib._sel_initWithTarget_selector_object_1,
+        target._id,
+        selector,
+        argument._id);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSThread initWithBlock_(ObjCBlock16 block) {
+    final _ret =
+        _lib._objc_msgSend_479(_id, _lib._sel_initWithBlock_1, block._id);
+    return NSThread._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get executing {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExecuting1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void main() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_main1);
+  }
+
+  static NSThread new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSThread1, _lib._sel_new1);
+    return NSThread._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSThread alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSThread1, _lib._sel_alloc1);
+    return NSThread._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSThread1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSThread1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSThread1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSThread1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSThread1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSThread1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSThread1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSThread1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock16_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block) {
+  return block.ref.target
+      .cast<ffi.NativeFunction<ffi.Void Function()>>()
+      .asFunction<void Function()>()();
+}
+
+final _ObjCBlock16_closureRegistry = <int, Function>{};
+int _ObjCBlock16_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock16_registerClosure(Function fn) {
+  final id = ++_ObjCBlock16_closureRegistryIndex;
+  _ObjCBlock16_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock16_closureTrampoline(ffi.Pointer<_ObjCBlock> block) {
+  return _ObjCBlock16_closureRegistry[block.ref.target.address]!();
+}
+
+class ObjCBlock16 extends _ObjCBlockBase {
+  ObjCBlock16._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock16.fromFunctionPointer(SwiftLibrary lib,
+      ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>(
+                        _ObjCBlock16_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock16.fromFunction(SwiftLibrary lib, void Function() fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>(
+                        _ObjCBlock16_closureTrampoline)
+                    .cast(),
+                _ObjCBlock16_registerClosure(fn)),
+            lib);
+  void call() {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block)>>()
+        .asFunction<void Function(ffi.Pointer<_ObjCBlock> block)>()(_id);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSMutableDictionary extends NSDictionary {
+  NSMutableDictionary._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableDictionary] that points to the same underlying object as [other].
+  static NSMutableDictionary castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableDictionary._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableDictionary] that wraps the given raw object pointer.
+  static NSMutableDictionary castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableDictionary._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableDictionary].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableDictionary1);
+  }
+
+  void removeObjectForKey_(NSObject aKey) {
+    return _lib._objc_msgSend_15(_id, _lib._sel_removeObjectForKey_1, aKey._id);
+  }
+
+  void setObject_forKey_(NSObject anObject, NSObject aKey) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_setObject_forKey_1, anObject._id, aKey._id);
+  }
+
+  @override
+  NSMutableDictionary init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithCapacity_(int numItems) {
+    final _ret =
+        _lib._objc_msgSend_60(_id, _lib._sel_initWithCapacity_1, numItems);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSMutableDictionary initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addEntriesFromDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_addEntriesFromDictionary_1,
+        otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  void removeAllObjects() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllObjects1);
+  }
+
+  void removeObjectsForKeys_(NSArray? keyArray) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_removeObjectsForKeys_1, keyArray?._id ?? ffi.nullptr);
+  }
+
+  void setDictionary_(NSDictionary? otherDictionary) {
+    return _lib._objc_msgSend_444(
+        _id, _lib._sel_setDictionary_1, otherDictionary?._id ?? ffi.nullptr);
+  }
+
+  void setObject_forKeyedSubscript_(NSObject obj, NSObject key) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_setObject_forKeyedSubscript_1, obj._id, key._id);
+  }
+
+  static NSMutableDictionary dictionaryWithCapacity_(
+      SwiftLibrary _lib, int numItems) {
+    final _ret = _lib._objc_msgSend_60(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithCapacity_1, numItems);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithContentsOfFile_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_468(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithContentsOfURL_(
+      SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_469(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithContentsOfFile_(NSString? path) {
+    final _ret = _lib._objc_msgSend_468(
+        _id, _lib._sel_initWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableDictionary initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_469(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithSharedKeySet_(
+      SwiftLibrary _lib, NSObject keyset) {
+    final _ret = _lib._objc_msgSend_470(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithSharedKeySet_1, keyset._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setValue_forKey_(NSObject value, NSString? key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setValue_forKey_1, value._id, key?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableDictionary dictionary(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_dictionary1);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObject_forKey_(
+      SwiftLibrary _lib, NSObject object, NSObject key) {
+    final _ret = _lib._objc_msgSend_142(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObject_forKey_1, object._id, key._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjects_forKeys_count_(
+      SwiftLibrary _lib,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+      int cnt) {
+    final _ret = _lib._objc_msgSend_133(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_count_1, objects, keys, cnt);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjectsAndKeys_(
+      SwiftLibrary _lib, NSObject firstObject) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjectsAndKeys_1, firstObject._id);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithDictionary_(
+      SwiftLibrary _lib, NSDictionary? dict) {
+    final _ret = _lib._objc_msgSend_143(_lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithDictionary_1, dict?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary dictionaryWithObjects_forKeys_(
+      SwiftLibrary _lib, NSArray? objects, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_144(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithObjects_forKeys_1,
+        objects?._id ?? ffi.nullptr,
+        keys?._id ?? ffi.nullptr);
+    return NSMutableDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary dictionaryWithContentsOfURL_error_(SwiftLibrary _lib,
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_146(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_dictionaryWithContentsOfURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject sharedKeySetForKeys_(SwiftLibrary _lib, NSArray? keys) {
+    final _ret = _lib._objc_msgSend_67(_lib._class_NSMutableDictionary1,
+        _lib._sel_sharedKeySetForKeys_1, keys?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableDictionary new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableDictionary1, _lib._sel_new1);
+    return NSMutableDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableDictionary alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_alloc1);
+    return NSMutableDictionary._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableDictionary1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableDictionary1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableDictionary1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableDictionary1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableDictionary1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableDictionary1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSQualityOfService {
+  static const int NSQualityOfServiceUserInteractive = 33;
+  static const int NSQualityOfServiceUserInitiated = 25;
+  static const int NSQualityOfServiceUtility = 17;
+  static const int NSQualityOfServiceBackground = 9;
+  static const int NSQualityOfServiceDefault = -1;
+}
+
+class NSArchiver extends NSCoder {
+  NSArchiver._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSArchiver] that points to the same underlying object as [other].
+  static NSArchiver castFrom<T extends _ObjCWrapper>(T other) {
+    return NSArchiver._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSArchiver] that wraps the given raw object pointer.
+  static NSArchiver castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSArchiver._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSArchiver].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSArchiver1);
+  }
+
+  NSArchiver initForWritingWithMutableData_(NSMutableData? mdata) {
+    final _ret = _lib._objc_msgSend_455(_id,
+        _lib._sel_initForWritingWithMutableData_1, mdata?._id ?? ffi.nullptr);
+    return NSArchiver._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSMutableData? get archiverData {
+    final _ret = _lib._objc_msgSend_482(_id, _lib._sel_archiverData1);
+    return _ret.address == 0
+        ? null
+        : NSMutableData._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  void encodeRootObject_(NSObject rootObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeRootObject_1, rootObject._id);
+  }
+
+  @override
+  void encodeConditionalObject_(NSObject object) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_encodeConditionalObject_1, object._id);
+  }
+
+  static NSData archivedDataWithRootObject_(
+      SwiftLibrary _lib, NSObject rootObject) {
+    final _ret = _lib._objc_msgSend_456(_lib._class_NSArchiver1,
+        _lib._sel_archivedDataWithRootObject_1, rootObject._id);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool archiveRootObject_toFile_(
+      SwiftLibrary _lib, NSObject rootObject, NSString? path) {
+    return _lib._objc_msgSend_225(
+        _lib._class_NSArchiver1,
+        _lib._sel_archiveRootObject_toFile_1,
+        rootObject._id,
+        path?._id ?? ffi.nullptr);
+  }
+
+  void encodeClassName_intoClassName_(
+      NSString? trueName, NSString? inArchiveName) {
+    return _lib._objc_msgSend_483(
+        _id,
+        _lib._sel_encodeClassName_intoClassName_1,
+        trueName?._id ?? ffi.nullptr,
+        inArchiveName?._id ?? ffi.nullptr);
+  }
+
+  NSString classNameEncodedForTrueClassName_(NSString? trueName) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_classNameEncodedForTrueClassName_1,
+        trueName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void replaceObject_withObject_(NSObject object, NSObject newObject) {
+    return _lib._objc_msgSend_467(
+        _id, _lib._sel_replaceObject_withObject_1, object._id, newObject._id);
+  }
+
+  static NSArchiver new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSArchiver1, _lib._sel_new1);
+    return NSArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSArchiver alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSArchiver1, _lib._sel_alloc1);
+    return NSArchiver._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSArchiver1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArchiver1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSArchiver1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSArchiver1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSArchiver1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSArchiver1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSArchiver1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSArchiver1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPortCoder extends NSCoder {
+  NSPortCoder._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPortCoder] that points to the same underlying object as [other].
+  static NSPortCoder castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPortCoder._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPortCoder] that wraps the given raw object pointer.
+  static NSPortCoder castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPortCoder._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPortCoder].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPortCoder1);
+  }
+
+  bool isBycopy() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isBycopy1);
+  }
+
+  bool isByref() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isByref1);
+  }
+
+  void encodePortObject_(NSPort? aport) {
+    return _lib._objc_msgSend_520(
+        _id, _lib._sel_encodePortObject_1, aport?._id ?? ffi.nullptr);
+  }
+
+  NSPort decodePortObject() {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_decodePortObject1);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSConnection connection() {
+    final _ret = _lib._objc_msgSend_504(_id, _lib._sel_connection1);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject portCoderWithReceivePort_sendPort_components_(
+      SwiftLibrary _lib, NSPort? rcvPort, NSPort? sndPort, NSArray? comps) {
+    final _ret = _lib._objc_msgSend_521(
+        _lib._class_NSPortCoder1,
+        _lib._sel_portCoderWithReceivePort_sendPort_components_1,
+        rcvPort?._id ?? ffi.nullptr,
+        sndPort?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithReceivePort_sendPort_components_(
+      NSPort? rcvPort, NSPort? sndPort, NSArray? comps) {
+    final _ret = _lib._objc_msgSend_521(
+        _id,
+        _lib._sel_initWithReceivePort_sendPort_components_1,
+        rcvPort?._id ?? ffi.nullptr,
+        sndPort?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dispatch() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dispatch1);
+  }
+
+  static NSPortCoder new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPortCoder1, _lib._sel_new1);
+    return NSPortCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPortCoder alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortCoder1, _lib._sel_alloc1);
+    return NSPortCoder._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPortCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPortCoder1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortCoder1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortCoder1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPortCoder1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPortCoder1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPortCoder1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPortCoder1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPortCoder1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPort extends NSObject {
+  NSPort._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPort] that points to the same underlying object as [other].
+  static NSPort castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPort._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPort] that wraps the given raw object pointer.
+  static NSPort castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPort._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPort].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSPort1);
+  }
+
+  static NSPort port(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_485(_lib._class_NSPort1, _lib._sel_port1);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  void setDelegate_(NSObject? anObject) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_setDelegate_1, anObject?._id ?? ffi.nullptr);
+  }
+
+  NSObject delegate() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        runLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        runLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  int get reservedSpaceLength {
+    return _lib._objc_msgSend_10(_id, _lib._sel_reservedSpaceLength1);
+  }
+
+  bool sendBeforeDate_components_from_reserved_(
+      NSDate? limitDate,
+      NSMutableArray? components,
+      NSPort? receivePort,
+      int headerSpaceReserved) {
+    return _lib._objc_msgSend_502(
+        _id,
+        _lib._sel_sendBeforeDate_components_from_reserved_1,
+        limitDate?._id ?? ffi.nullptr,
+        components?._id ?? ffi.nullptr,
+        receivePort?._id ?? ffi.nullptr,
+        headerSpaceReserved);
+  }
+
+  bool sendBeforeDate_msgid_components_from_reserved_(
+      NSDate? limitDate,
+      int msgID,
+      NSMutableArray? components,
+      NSPort? receivePort,
+      int headerSpaceReserved) {
+    return _lib._objc_msgSend_503(
+        _id,
+        _lib._sel_sendBeforeDate_msgid_components_from_reserved_1,
+        limitDate?._id ?? ffi.nullptr,
+        msgID,
+        components?._id ?? ffi.nullptr,
+        receivePort?._id ?? ffi.nullptr,
+        headerSpaceReserved);
+  }
+
+  void addConnection_toRunLoop_forMode_(
+      NSConnection? conn, NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_519(
+        _id,
+        _lib._sel_addConnection_toRunLoop_forMode_1,
+        conn?._id ?? ffi.nullptr,
+        runLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  void removeConnection_fromRunLoop_forMode_(
+      NSConnection? conn, NSRunLoop? runLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_519(
+        _id,
+        _lib._sel_removeConnection_fromRunLoop_forMode_1,
+        conn?._id ?? ffi.nullptr,
+        runLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  static NSPort new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPort1, _lib._sel_new1);
+    return NSPort._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPort alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSPort1, _lib._sel_alloc1);
+    return NSPort._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPort1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPort1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPort1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPort1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPort1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPort1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPort1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPort1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPort1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSRunLoop extends NSObject {
+  NSRunLoop._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSRunLoop] that points to the same underlying object as [other].
+  static NSRunLoop castFrom<T extends _ObjCWrapper>(T other) {
+    return NSRunLoop._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSRunLoop] that wraps the given raw object pointer.
+  static NSRunLoop castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSRunLoop._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSRunLoop].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSRunLoop1);
+  }
+
+  static NSRunLoop? getCurrentRunLoop(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_486(
+        _lib._class_NSRunLoop1, _lib._sel_currentRunLoop1);
+    return _ret.address == 0
+        ? null
+        : NSRunLoop._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSRunLoop? getMainRunLoop(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_486(_lib._class_NSRunLoop1, _lib._sel_mainRunLoop1);
+    return _ret.address == 0
+        ? null
+        : NSRunLoop._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRunLoopMode get currentMode {
+    return _lib._objc_msgSend_20(_id, _lib._sel_currentMode1);
+  }
+
+  CFRunLoopRef getCFRunLoop() {
+    return _lib._objc_msgSend_487(_id, _lib._sel_getCFRunLoop1);
+  }
+
+  void addTimer_forMode_(NSTimer? timer, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_494(
+        _id, _lib._sel_addTimer_forMode_1, timer?._id ?? ffi.nullptr, mode);
+  }
+
+  void addPort_forMode_(NSPort? aPort, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_495(
+        _id, _lib._sel_addPort_forMode_1, aPort?._id ?? ffi.nullptr, mode);
+  }
+
+  void removePort_forMode_(NSPort? aPort, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_495(
+        _id, _lib._sel_removePort_forMode_1, aPort?._id ?? ffi.nullptr, mode);
+  }
+
+  NSDate limitDateForMode_(NSRunLoopMode mode) {
+    final _ret =
+        _lib._objc_msgSend_496(_id, _lib._sel_limitDateForMode_1, mode);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  void acceptInputForMode_beforeDate_(NSRunLoopMode mode, NSDate? limitDate) {
+    return _lib._objc_msgSend_497(
+        _id,
+        _lib._sel_acceptInputForMode_beforeDate_1,
+        mode,
+        limitDate?._id ?? ffi.nullptr);
+  }
+
+  void run() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_run1);
+  }
+
+  void runUntilDate_(NSDate? limitDate) {
+    return _lib._objc_msgSend_472(
+        _id, _lib._sel_runUntilDate_1, limitDate?._id ?? ffi.nullptr);
+  }
+
+  bool runMode_beforeDate_(NSRunLoopMode mode, NSDate? limitDate) {
+    return _lib._objc_msgSend_498(_id, _lib._sel_runMode_beforeDate_1, mode,
+        limitDate?._id ?? ffi.nullptr);
+  }
+
+  void configureAsServer() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_configureAsServer1);
+  }
+
+  void performInModes_block_(NSArray? modes, ObjCBlock16 block) {
+    return _lib._objc_msgSend_499(_id, _lib._sel_performInModes_block_1,
+        modes?._id ?? ffi.nullptr, block._id);
+  }
+
+  void performBlock_(ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(_id, _lib._sel_performBlock_1, block._id);
+  }
+
+  void performSelector_target_argument_order_modes_(
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject target,
+      NSObject arg,
+      int order,
+      NSArray? modes) {
+    return _lib._objc_msgSend_500(
+        _id,
+        _lib._sel_performSelector_target_argument_order_modes_1,
+        aSelector,
+        target._id,
+        arg._id,
+        order,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void cancelPerformSelector_target_argument_(
+      ffi.Pointer<ObjCSel> aSelector, NSObject target, NSObject arg) {
+    return _lib._objc_msgSend_466(
+        _id,
+        _lib._sel_cancelPerformSelector_target_argument_1,
+        aSelector,
+        target._id,
+        arg._id);
+  }
+
+  void cancelPerformSelectorsWithTarget_(NSObject target) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_cancelPerformSelectorsWithTarget_1, target._id);
+  }
+
+  static NSRunLoop new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSRunLoop1, _lib._sel_new1);
+    return NSRunLoop._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSRunLoop alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSRunLoop1, _lib._sel_alloc1);
+    return NSRunLoop._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSRunLoop1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSRunLoop1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRunLoop1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRunLoop1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSRunLoop1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSRunLoop1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSRunLoop1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSRunLoop1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRunLoop1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSRunLoopMode = ffi.Pointer<ObjCObject>;
+typedef CFRunLoopRef = ffi.Pointer<__CFRunLoop>;
+
+class __CFRunLoop extends ffi.Opaque {}
+
+class NSTimer extends NSObject {
+  NSTimer._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTimer] that points to the same underlying object as [other].
+  static NSTimer castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTimer._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTimer] that wraps the given raw object pointer.
+  static NSTimer castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTimer._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTimer].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTimer1);
+  }
+
+  static NSTimer timerWithTimeInterval_invocation_repeats_(
+      SwiftLibrary _lib, double ti, NSInvocation? invocation, bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_488(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_invocation_repeats_1,
+        ti,
+        invocation?._id ?? ffi.nullptr,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer scheduledTimerWithTimeInterval_invocation_repeats_(
+      SwiftLibrary _lib, double ti, NSInvocation? invocation, bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_488(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_invocation_repeats_1,
+        ti,
+        invocation?._id ?? ffi.nullptr,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer timerWithTimeInterval_target_selector_userInfo_repeats_(
+      SwiftLibrary _lib,
+      double ti,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject userInfo,
+      bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_489(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_target_selector_userInfo_repeats_1,
+        ti,
+        aTarget._id,
+        aSelector,
+        userInfo._id,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer
+      scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(
+          SwiftLibrary _lib,
+          double ti,
+          NSObject aTarget,
+          ffi.Pointer<ObjCSel> aSelector,
+          NSObject userInfo,
+          bool yesOrNo) {
+    final _ret = _lib._objc_msgSend_489(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_1,
+        ti,
+        aTarget._id,
+        aSelector,
+        userInfo._id,
+        yesOrNo);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer timerWithTimeInterval_repeats_block_(
+      SwiftLibrary _lib, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_490(
+        _lib._class_NSTimer1,
+        _lib._sel_timerWithTimeInterval_repeats_block_1,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer scheduledTimerWithTimeInterval_repeats_block_(
+      SwiftLibrary _lib, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_490(
+        _lib._class_NSTimer1,
+        _lib._sel_scheduledTimerWithTimeInterval_repeats_block_1,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimer initWithFireDate_interval_repeats_block_(
+      NSDate? date, double interval, bool repeats, ObjCBlock17 block) {
+    final _ret = _lib._objc_msgSend_491(
+        _id,
+        _lib._sel_initWithFireDate_interval_repeats_block_1,
+        date?._id ?? ffi.nullptr,
+        interval,
+        repeats,
+        block._id);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimer initWithFireDate_interval_target_selector_userInfo_repeats_(
+      NSDate? date,
+      double ti,
+      NSObject t,
+      ffi.Pointer<ObjCSel> s,
+      NSObject ui,
+      bool rep) {
+    final _ret = _lib._objc_msgSend_492(
+        _id,
+        _lib._sel_initWithFireDate_interval_target_selector_userInfo_repeats_1,
+        date?._id ?? ffi.nullptr,
+        ti,
+        t._id,
+        s,
+        ui._id,
+        rep);
+    return NSTimer._(_ret, _lib, retain: true, release: true);
+  }
+
+  void fire() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_fire1);
+  }
+
+  NSDate? get fireDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_fireDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set fireDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setFireDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  double get timeInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeInterval1);
+  }
+
+  double get tolerance {
+    return _lib._objc_msgSend_149(_id, _lib._sel_tolerance1);
+  }
+
+  set tolerance(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setTolerance_1, value);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  NSObject get userInfo {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_userInfo1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTimer new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimer1, _lib._sel_new1);
+    return NSTimer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTimer alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTimer1, _lib._sel_alloc1);
+    return NSTimer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTimer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTimer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimer1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTimer1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTimer1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTimer1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTimer1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTimer1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTimer1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock17_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock17_closureRegistry = <int, Function>{};
+int _ObjCBlock17_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock17_registerClosure(Function fn) {
+  final id = ++_ObjCBlock17_closureRegistryIndex;
+  _ObjCBlock17_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock17_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock17_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock17 extends _ObjCBlockBase {
+  ObjCBlock17._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock17.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock17_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock17.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock17_closureTrampoline)
+                    .cast(),
+                _ObjCBlock17_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSConnection extends NSObject {
+  NSConnection._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSConnection] that points to the same underlying object as [other].
+  static NSConnection castFrom<T extends _ObjCWrapper>(T other) {
+    return NSConnection._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSConnection] that wraps the given raw object pointer.
+  static NSConnection castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSConnection._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSConnection].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSConnection1);
+  }
+
+  NSDictionary? get statistics {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_statistics1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray allConnections(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSConnection1, _lib._sel_allConnections1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection defaultConnection(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_504(
+        _lib._class_NSConnection1, _lib._sel_defaultConnection1);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection connectionWithRegisteredName_host_(
+      SwiftLibrary _lib, NSString? name, NSString? hostName) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithRegisteredName_host_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection connectionWithRegisteredName_host_usingNameServer_(
+      SwiftLibrary _lib,
+      NSString? name,
+      NSString? hostName,
+      NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_509(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithRegisteredName_host_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr,
+        server?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDistantObject rootProxyForConnectionWithRegisteredName_host_(
+      SwiftLibrary _lib, NSString? name, NSString? hostName) {
+    final _ret = _lib._objc_msgSend_512(
+        _lib._class_NSConnection1,
+        _lib._sel_rootProxyForConnectionWithRegisteredName_host_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDistantObject
+      rootProxyForConnectionWithRegisteredName_host_usingNameServer_(
+          SwiftLibrary _lib,
+          NSString? name,
+          NSString? hostName,
+          NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_513(
+        _lib._class_NSConnection1,
+        _lib._sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        hostName?._id ?? ffi.nullptr,
+        server?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection serviceConnectionWithName_rootObject_usingNameServer_(
+      SwiftLibrary _lib,
+      NSString? name,
+      NSObject root,
+      NSPortNameServer? server) {
+    final _ret = _lib._objc_msgSend_514(
+        _lib._class_NSConnection1,
+        _lib._sel_serviceConnectionWithName_rootObject_usingNameServer_1,
+        name?._id ?? ffi.nullptr,
+        root._id,
+        server?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSConnection serviceConnectionWithName_rootObject_(
+      SwiftLibrary _lib, NSString? name, NSObject root) {
+    final _ret = _lib._objc_msgSend_157(
+        _lib._class_NSConnection1,
+        _lib._sel_serviceConnectionWithName_rootObject_1,
+        name?._id ?? ffi.nullptr,
+        root._id);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get requestTimeout {
+    return _lib._objc_msgSend_149(_id, _lib._sel_requestTimeout1);
+  }
+
+  set requestTimeout(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setRequestTimeout_1, value);
+  }
+
+  double get replyTimeout {
+    return _lib._objc_msgSend_149(_id, _lib._sel_replyTimeout1);
+  }
+
+  set replyTimeout(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setReplyTimeout_1, value);
+  }
+
+  NSObject get rootObject {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_rootObject1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set rootObject(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setRootObject_1, value._id);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get independentConversationQueueing {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_independentConversationQueueing1);
+  }
+
+  set independentConversationQueueing(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setIndependentConversationQueueing_1, value);
+  }
+
+  bool get valid {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValid1);
+  }
+
+  NSDistantObject? get rootProxy {
+    final _ret = _lib._objc_msgSend_515(_id, _lib._sel_rootProxy1);
+    return _ret.address == 0
+        ? null
+        : NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void invalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidate1);
+  }
+
+  void addRequestMode_(NSString? rmode) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_addRequestMode_1, rmode?._id ?? ffi.nullptr);
+  }
+
+  void removeRequestMode_(NSString? rmode) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeRequestMode_1, rmode?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get requestModes {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_requestModes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool registerName_(NSString? name) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_registerName_1, name?._id ?? ffi.nullptr);
+  }
+
+  bool registerName_withNameServer_(NSString? name, NSPortNameServer? server) {
+    return _lib._objc_msgSend_516(_id, _lib._sel_registerName_withNameServer_1,
+        name?._id ?? ffi.nullptr, server?._id ?? ffi.nullptr);
+  }
+
+  static NSConnection connectionWithReceivePort_sendPort_(
+      SwiftLibrary _lib, NSPort? receivePort, NSPort? sendPort) {
+    final _ret = _lib._objc_msgSend_517(
+        _lib._class_NSConnection1,
+        _lib._sel_connectionWithReceivePort_sendPort_1,
+        receivePort?._id ?? ffi.nullptr,
+        sendPort?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject currentConversation(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSConnection1, _lib._sel_currentConversation1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSConnection initWithReceivePort_sendPort_(
+      NSPort? receivePort, NSPort? sendPort) {
+    final _ret = _lib._objc_msgSend_517(
+        _id,
+        _lib._sel_initWithReceivePort_sendPort_1,
+        receivePort?._id ?? ffi.nullptr,
+        sendPort?._id ?? ffi.nullptr);
+    return NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort? get sendPort {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_sendPort1);
+    return _ret.address == 0
+        ? null
+        : NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort? get receivePort {
+    final _ret = _lib._objc_msgSend_485(_id, _lib._sel_receivePort1);
+    return _ret.address == 0
+        ? null
+        : NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enableMultipleThreads() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_enableMultipleThreads1);
+  }
+
+  bool get multipleThreadsEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_multipleThreadsEnabled1);
+  }
+
+  void addRunLoop_(NSRunLoop? runloop) {
+    return _lib._objc_msgSend_518(
+        _id, _lib._sel_addRunLoop_1, runloop?._id ?? ffi.nullptr);
+  }
+
+  void removeRunLoop_(NSRunLoop? runloop) {
+    return _lib._objc_msgSend_518(
+        _id, _lib._sel_removeRunLoop_1, runloop?._id ?? ffi.nullptr);
+  }
+
+  void runInNewThread() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_runInNewThread1);
+  }
+
+  NSArray? get remoteObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_remoteObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get localObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_localObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dispatchWithComponents_(NSArray? components) {
+    return _lib._objc_msgSend_412(_id, _lib._sel_dispatchWithComponents_1,
+        components?._id ?? ffi.nullptr);
+  }
+
+  static NSConnection new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSConnection1, _lib._sel_new1);
+    return NSConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSConnection alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSConnection1, _lib._sel_alloc1);
+    return NSConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSConnection1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSConnection1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSConnection1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSConnection1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSConnection1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSConnection1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSConnection1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSPortNameServer extends NSObject {
+  NSPortNameServer._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPortNameServer] that points to the same underlying object as [other].
+  static NSPortNameServer castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPortNameServer._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSPortNameServer] that wraps the given raw object pointer.
+  static NSPortNameServer castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPortNameServer._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPortNameServer].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPortNameServer1);
+  }
+
+  static NSPortNameServer systemDefaultPortNameServer(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_505(
+        _lib._class_NSPortNameServer1, _lib._sel_systemDefaultPortNameServer1);
+    return NSPortNameServer._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort portForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_506(
+        _id, _lib._sel_portForName_1, name?._id ?? ffi.nullptr);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPort portForName_host_(NSString? name, NSString? host) {
+    final _ret = _lib._objc_msgSend_507(_id, _lib._sel_portForName_host_1,
+        name?._id ?? ffi.nullptr, host?._id ?? ffi.nullptr);
+    return NSPort._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool registerPort_name_(NSPort? port, NSString? name) {
+    return _lib._objc_msgSend_508(_id, _lib._sel_registerPort_name_1,
+        port?._id ?? ffi.nullptr, name?._id ?? ffi.nullptr);
+  }
+
+  bool removePortForName_(NSString? name) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_removePortForName_1, name?._id ?? ffi.nullptr);
+  }
+
+  static NSPortNameServer new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortNameServer1, _lib._sel_new1);
+    return NSPortNameServer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPortNameServer alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPortNameServer1, _lib._sel_alloc1);
+    return NSPortNameServer._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPortNameServer1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPortNameServer1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPortNameServer1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPortNameServer1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSPortNameServer1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPortNameServer1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDistantObject extends NSProxy {
+  NSDistantObject._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDistantObject] that points to the same underlying object as [other].
+  static NSDistantObject castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDistantObject._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDistantObject] that wraps the given raw object pointer.
+  static NSDistantObject castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDistantObject._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDistantObject].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDistantObject1);
+  }
+
+  static NSObject proxyWithTarget_connection_(
+      SwiftLibrary _lib, NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _lib._class_NSDistantObject1,
+        _lib._sel_proxyWithTarget_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithTarget_connection_(
+      NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _id,
+        _lib._sel_initWithTarget_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject proxyWithLocal_connection_(
+      SwiftLibrary _lib, NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _lib._class_NSDistantObject1,
+        _lib._sel_proxyWithLocal_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithLocal_connection_(
+      NSObject target, NSConnection? connection) {
+    final _ret = _lib._objc_msgSend_510(
+        _id,
+        _lib._sel_initWithLocal_connection_1,
+        target._id,
+        connection?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDistantObject initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSDistantObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setProtocolForProxy_(Protocol? proto) {
+    return _lib._objc_msgSend_511(
+        _id, _lib._sel_setProtocolForProxy_1, proto?._id ?? ffi.nullptr);
+  }
+
+  NSConnection? get connectionForProxy {
+    final _ret = _lib._objc_msgSend_504(_id, _lib._sel_connectionForProxy1);
+    return _ret.address == 0
+        ? null
+        : NSConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDistantObject1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool respondsToSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSDistantObject1,
+        _lib._sel_respondsToSelector_1, aSelector);
+  }
+}
+
+class NSProxy extends _ObjCWrapper {
+  NSProxy._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProxy] that points to the same underlying object as [other].
+  static NSProxy castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProxy._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProxy] that wraps the given raw object pointer.
+  static NSProxy castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProxy._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProxy].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProxy1);
+  }
+
+  static NSObject alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProxy1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject allocWithZone_(SwiftLibrary _lib, ffi.Pointer<NSZone> zone) {
+    final _ret = _lib._objc_msgSend_3(
+        _lib._class_NSProxy1, _lib._sel_allocWithZone_1, zone);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSObject class1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProxy1, _lib._sel_class1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void forwardInvocation_(NSInvocation? invocation) {
+    return _lib._objc_msgSend_372(
+        _id, _lib._sel_forwardInvocation_1, invocation?._id ?? ffi.nullptr);
+  }
+
+  NSMethodSignature methodSignatureForSelector_(ffi.Pointer<ObjCSel> sel) {
+    final _ret = _lib._objc_msgSend_373(
+        _id, _lib._sel_methodSignatureForSelector_1, sel);
+    return NSMethodSignature._(_ret, _lib, retain: true, release: true);
+  }
+
+  void dealloc() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_dealloc1);
+  }
+
+  void finalize() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finalize1);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get debugDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_debugDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool respondsToSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(
+        _lib._class_NSProxy1, _lib._sel_respondsToSelector_1, aSelector);
+  }
+
+  bool allowsWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsWeakReference1);
+  }
+
+  bool retainWeakReference() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_retainWeakReference1);
+  }
+}
+
+class NSClassDescription extends NSObject {
+  NSClassDescription._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSClassDescription] that points to the same underlying object as [other].
+  static NSClassDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSClassDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSClassDescription] that wraps the given raw object pointer.
+  static NSClassDescription castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSClassDescription._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSClassDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSClassDescription1);
+  }
+
+  static void registerClassDescription_forClass_(
+      SwiftLibrary _lib, NSClassDescription? description, NSObject aClass) {
+    return _lib._objc_msgSend_523(
+        _lib._class_NSClassDescription1,
+        _lib._sel_registerClassDescription_forClass_1,
+        description?._id ?? ffi.nullptr,
+        aClass._id);
+  }
+
+  static void invalidateClassDescriptionCache(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSClassDescription1,
+        _lib._sel_invalidateClassDescriptionCache1);
+  }
+
+  static NSClassDescription classDescriptionForClass_(
+      SwiftLibrary _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_524(_lib._class_NSClassDescription1,
+        _lib._sel_classDescriptionForClass_1, aClass._id);
+    return NSClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get attributeKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributeKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get toOneRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toOneRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSArray? get toManyRelationshipKeys {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_toManyRelationshipKeys1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSString inverseForRelationshipKey_(NSString? relationshipKey) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_inverseForRelationshipKey_1,
+        relationshipKey?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSClassDescription new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSClassDescription1, _lib._sel_new1);
+    return NSClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSClassDescription alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSClassDescription1, _lib._sel_alloc1);
+    return NSClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSClassDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSClassDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSClassDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSClassDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSClassDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSClassDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSClassDescription1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptObjectSpecifier extends NSObject {
+  NSScriptObjectSpecifier._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptObjectSpecifier] that points to the same underlying object as [other].
+  static NSScriptObjectSpecifier castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptObjectSpecifier._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptObjectSpecifier] that wraps the given raw object pointer.
+  static NSScriptObjectSpecifier castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptObjectSpecifier._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptObjectSpecifier].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptObjectSpecifier1);
+  }
+
+  static NSScriptObjectSpecifier objectSpecifierWithDescriptor_(
+      SwiftLibrary _lib, NSAppleEventDescriptor? descriptor) {
+    final _ret = _lib._objc_msgSend_548(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_objectSpecifierWithDescriptor_1,
+        descriptor?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier initWithContainerSpecifier_key_(
+      NSScriptObjectSpecifier? container, NSString? property) {
+    final _ret = _lib._objc_msgSend_549(
+        _id,
+        _lib._sel_initWithContainerSpecifier_key_1,
+        container?._id ?? ffi.nullptr,
+        property?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier
+      initWithContainerClassDescription_containerSpecifier_key_(
+          NSScriptClassDescription? classDesc,
+          NSScriptObjectSpecifier? container,
+          NSString? property) {
+    final _ret = _lib._objc_msgSend_566(
+        _id,
+        _lib._sel_initWithContainerClassDescription_containerSpecifier_key_1,
+        classDesc?._id ?? ffi.nullptr,
+        container?._id ?? ffi.nullptr,
+        property?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptObjectSpecifier? get childSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_childSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set childSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setChildSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptObjectSpecifier? get containerSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_containerSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set containerSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setContainerSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get containerIsObjectBeingTested {
+    return _lib._objc_msgSend_12(_id, _lib._sel_containerIsObjectBeingTested1);
+  }
+
+  set containerIsObjectBeingTested(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setContainerIsObjectBeingTested_1, value);
+  }
+
+  bool get containerIsRangeContainerObject {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_containerIsRangeContainerObject1);
+  }
+
+  set containerIsRangeContainerObject(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setContainerIsRangeContainerObject_1, value);
+  }
+
+  NSString? get key {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_key1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set key(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setKey_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptClassDescription? get containerClassDescription {
+    final _ret =
+        _lib._objc_msgSend_552(_id, _lib._sel_containerClassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  set containerClassDescription(NSScriptClassDescription? value) {
+    _lib._objc_msgSend_567(_id, _lib._sel_setContainerClassDescription_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSScriptClassDescription? get keyClassDescription {
+    final _ret = _lib._objc_msgSend_552(_id, _lib._sel_keyClassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<NSInteger> indicesOfObjectsByEvaluatingWithContainer_count_(
+      NSObject container, ffi.Pointer<NSInteger> count) {
+    return _lib._objc_msgSend_568(
+        _id,
+        _lib._sel_indicesOfObjectsByEvaluatingWithContainer_count_1,
+        container._id,
+        count);
+  }
+
+  NSObject objectsByEvaluatingWithContainers_(NSObject containers) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_objectsByEvaluatingWithContainers_1, containers._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get objectsByEvaluatingSpecifier {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_objectsByEvaluatingSpecifier1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get evaluationErrorNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_evaluationErrorNumber1);
+  }
+
+  set evaluationErrorNumber(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setEvaluationErrorNumber_1, value);
+  }
+
+  NSScriptObjectSpecifier? get evaluationErrorSpecifier {
+    final _ret =
+        _lib._objc_msgSend_556(_id, _lib._sel_evaluationErrorSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor? get descriptor {
+    final _ret = _lib._objc_msgSend_526(_id, _lib._sel_descriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSScriptObjectSpecifier new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_new1);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptObjectSpecifier alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_alloc1);
+    return NSScriptObjectSpecifier._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptObjectSpecifier1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptObjectSpecifier1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSAppleEventDescriptor extends NSObject {
+  NSAppleEventDescriptor._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAppleEventDescriptor] that points to the same underlying object as [other].
+  static NSAppleEventDescriptor castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAppleEventDescriptor._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAppleEventDescriptor] that wraps the given raw object pointer.
+  static NSAppleEventDescriptor castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAppleEventDescriptor._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAppleEventDescriptor].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAppleEventDescriptor1);
+  }
+
+  static NSAppleEventDescriptor nullDescriptor(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_nullDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDescriptorType_bytes_length_(
+      SwiftLibrary _lib,
+      int descriptorType,
+      ffi.Pointer<ffi.Void> bytes,
+      int byteCount) {
+    final _ret = _lib._objc_msgSend_527(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDescriptorType_bytes_length_1,
+        descriptorType,
+        bytes,
+        byteCount);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDescriptorType_data_(
+      SwiftLibrary _lib, int descriptorType, NSData? data) {
+    final _ret = _lib._objc_msgSend_528(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDescriptorType_data_1,
+        descriptorType,
+        data?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithBoolean_(
+      SwiftLibrary _lib, int boolean) {
+    final _ret = _lib._objc_msgSend_529(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithBoolean_1, boolean);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithEnumCode_(
+      SwiftLibrary _lib, int enumerator) {
+    final _ret = _lib._objc_msgSend_530(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithEnumCode_1, enumerator);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithInt32_(
+      SwiftLibrary _lib, int signedInt) {
+    final _ret = _lib._objc_msgSend_531(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithInt32_1, signedInt);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDouble_(
+      SwiftLibrary _lib, double doubleValue) {
+    final _ret = _lib._objc_msgSend_532(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDouble_1, doubleValue);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithTypeCode_(
+      SwiftLibrary _lib, int typeCode) {
+    final _ret = _lib._objc_msgSend_530(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithTypeCode_1, typeCode);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_533(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithString_1, string?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithDate_(
+      SwiftLibrary _lib, NSDate? date) {
+    final _ret = _lib._objc_msgSend_534(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithDate_1, date?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithFileURL_(
+      SwiftLibrary _lib, NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_535(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithFileURL_1, fileURL?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor
+      appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_(
+          SwiftLibrary _lib,
+          int eventClass,
+          int eventID,
+          NSAppleEventDescriptor? targetDescriptor,
+          int returnID,
+          int transactionID) {
+    final _ret = _lib._objc_msgSend_536(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_1,
+        eventClass,
+        eventID,
+        targetDescriptor?._id ?? ffi.nullptr,
+        returnID,
+        transactionID);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor listDescriptor(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_listDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor recordDescriptor(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_526(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_recordDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor currentProcessDescriptor(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_526(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_currentProcessDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithProcessIdentifier_(
+      SwiftLibrary _lib, int processIdentifier) {
+    final _ret = _lib._objc_msgSend_531(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithProcessIdentifier_1, processIdentifier);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithBundleIdentifier_(
+      SwiftLibrary _lib, NSString? bundleIdentifier) {
+    final _ret = _lib._objc_msgSend_533(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithBundleIdentifier_1,
+        bundleIdentifier?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor descriptorWithApplicationURL_(
+      SwiftLibrary _lib, NSURL? applicationURL) {
+    final _ret = _lib._objc_msgSend_535(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_descriptorWithApplicationURL_1,
+        applicationURL?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initWithAEDescNoCopy_(ffi.Pointer<AEDesc> aeDesc) {
+    final _ret =
+        _lib._objc_msgSend_537(_id, _lib._sel_initWithAEDescNoCopy_1, aeDesc);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSAppleEventDescriptor initWithDescriptorType_bytes_length_(
+      int descriptorType, ffi.Pointer<ffi.Void> bytes, int byteCount) {
+    final _ret = _lib._objc_msgSend_538(
+        _id,
+        _lib._sel_initWithDescriptorType_bytes_length_1,
+        descriptorType,
+        bytes,
+        byteCount);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initWithDescriptorType_data_(
+      int descriptorType, NSData? data) {
+    final _ret = _lib._objc_msgSend_539(
+        _id,
+        _lib._sel_initWithDescriptorType_data_1,
+        descriptorType,
+        data?._id ?? ffi.nullptr);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor
+      initWithEventClass_eventID_targetDescriptor_returnID_transactionID_(
+          int eventClass,
+          int eventID,
+          NSAppleEventDescriptor? targetDescriptor,
+          int returnID,
+          int transactionID) {
+    final _ret = _lib._objc_msgSend_540(
+        _id,
+        _lib._sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_1,
+        eventClass,
+        eventID,
+        targetDescriptor?._id ?? ffi.nullptr,
+        returnID,
+        transactionID);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initListDescriptor() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initListDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor initRecordDescriptor() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initRecordDescriptor1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<AEDesc> get aeDesc {
+    return _lib._objc_msgSend_541(_id, _lib._sel_aeDesc1);
+  }
+
+  int get descriptorType {
+    return _lib._objc_msgSend_191(_id, _lib._sel_descriptorType1);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get booleanValue {
+    return _lib._objc_msgSend_210(_id, _lib._sel_booleanValue1);
+  }
+
+  int get enumCodeValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_enumCodeValue1);
+  }
+
+  int get int32Value {
+    return _lib._objc_msgSend_213(_id, _lib._sel_int32Value1);
+  }
+
+  double get doubleValue {
+    return _lib._objc_msgSend_149(_id, _lib._sel_doubleValue1);
+  }
+
+  int get typeCodeValue {
+    return _lib._objc_msgSend_191(_id, _lib._sel_typeCodeValue1);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get dateValue {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_dateValue1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get fileURLValue {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_fileURLValue1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get eventClass {
+    return _lib._objc_msgSend_191(_id, _lib._sel_eventClass1);
+  }
+
+  int get eventID {
+    return _lib._objc_msgSend_191(_id, _lib._sel_eventID1);
+  }
+
+  int get returnID {
+    return _lib._objc_msgSend_211(_id, _lib._sel_returnID1);
+  }
+
+  int get transactionID {
+    return _lib._objc_msgSend_213(_id, _lib._sel_transactionID1);
+  }
+
+  void setParamDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(
+        _id,
+        _lib._sel_setParamDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr,
+        keyword);
+  }
+
+  NSAppleEventDescriptor paramDescriptorForKeyword_(int keyword) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_paramDescriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeParamDescriptorWithKeyword_(int keyword) {
+    return _lib._objc_msgSend_543(
+        _id, _lib._sel_removeParamDescriptorWithKeyword_1, keyword);
+  }
+
+  void setAttributeDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(
+        _id,
+        _lib._sel_setAttributeDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr,
+        keyword);
+  }
+
+  NSAppleEventDescriptor attributeDescriptorForKeyword_(int keyword) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_attributeDescriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor sendEventWithOptions_timeout_error_(int sendOptions,
+      double timeoutInSeconds, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_544(
+        _id,
+        _lib._sel_sendEventWithOptions_timeout_error_1,
+        sendOptions,
+        timeoutInSeconds,
+        error);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get isRecordDescriptor {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRecordDescriptor1);
+  }
+
+  int get numberOfItems {
+    return _lib._objc_msgSend_78(_id, _lib._sel_numberOfItems1);
+  }
+
+  void insertDescriptor_atIndex_(
+      NSAppleEventDescriptor? descriptor, int index) {
+    return _lib._objc_msgSend_545(_id, _lib._sel_insertDescriptor_atIndex_1,
+        descriptor?._id ?? ffi.nullptr, index);
+  }
+
+  NSAppleEventDescriptor descriptorAtIndex_(int index) {
+    final _ret =
+        _lib._objc_msgSend_546(_id, _lib._sel_descriptorAtIndex_1, index);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeDescriptorAtIndex_(int index) {
+    return _lib._objc_msgSend_374(
+        _id, _lib._sel_removeDescriptorAtIndex_1, index);
+  }
+
+  void setDescriptor_forKeyword_(
+      NSAppleEventDescriptor? descriptor, int keyword) {
+    return _lib._objc_msgSend_542(_id, _lib._sel_setDescriptor_forKeyword_1,
+        descriptor?._id ?? ffi.nullptr, keyword);
+  }
+
+  NSAppleEventDescriptor descriptorForKeyword_(int keyword) {
+    final _ret =
+        _lib._objc_msgSend_530(_id, _lib._sel_descriptorForKeyword_1, keyword);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeDescriptorWithKeyword_(int keyword) {
+    return _lib._objc_msgSend_543(
+        _id, _lib._sel_removeDescriptorWithKeyword_1, keyword);
+  }
+
+  int keywordForDescriptorAtIndex_(int index) {
+    return _lib._objc_msgSend_547(
+        _id, _lib._sel_keywordForDescriptorAtIndex_1, index);
+  }
+
+  NSAppleEventDescriptor coerceToDescriptorType_(int descriptorType) {
+    final _ret = _lib._objc_msgSend_530(
+        _id, _lib._sel_coerceToDescriptorType_1, descriptorType);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAppleEventDescriptor new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_new1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSAppleEventDescriptor alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_alloc1);
+    return NSAppleEventDescriptor._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAppleEventDescriptor1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAppleEventDescriptor1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSAppleEventDescriptor1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef DescType = ResType;
+typedef ResType = FourCharCode;
+typedef Boolean = ffi.UnsignedChar;
+typedef SInt32 = ffi.Int;
+typedef AEEventClass = FourCharCode;
+typedef AEEventID = FourCharCode;
+typedef AEReturnID = SInt16;
+typedef SInt16 = ffi.Short;
+typedef AETransactionID = SInt32;
+typedef pid_t = __darwin_pid_t;
+typedef __darwin_pid_t = __int32_t;
+typedef __int32_t = ffi.Int;
+
+@ffi.Packed(2)
+class AEDesc extends ffi.Struct {
+  @DescType()
+  external int descriptorType;
+
+  external AEDataStorage dataHandle;
+}
+
+typedef AEDataStorage = ffi.Pointer<AEDataStorageType>;
+typedef AEDataStorageType = ffi.Pointer<OpaqueAEDataStorageType>;
+
+class OpaqueAEDataStorageType extends ffi.Opaque {}
+
+typedef AEKeyword = FourCharCode;
+
+abstract class NSAppleEventSendOptions {
+  static const int NSAppleEventSendNoReply = 1;
+  static const int NSAppleEventSendQueueReply = 2;
+  static const int NSAppleEventSendWaitForReply = 3;
+  static const int NSAppleEventSendNeverInteract = 16;
+  static const int NSAppleEventSendCanInteract = 32;
+  static const int NSAppleEventSendAlwaysInteract = 48;
+  static const int NSAppleEventSendCanSwitchLayer = 64;
+  static const int NSAppleEventSendDontRecord = 4096;
+  static const int NSAppleEventSendDontExecute = 8192;
+  static const int NSAppleEventSendDontAnnotate = 65536;
+  static const int NSAppleEventSendDefaultOptions = 35;
+}
+
+class NSScriptClassDescription extends NSClassDescription {
+  NSScriptClassDescription._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptClassDescription] that points to the same underlying object as [other].
+  static NSScriptClassDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptClassDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptClassDescription] that wraps the given raw object pointer.
+  static NSScriptClassDescription castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptClassDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptClassDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptClassDescription1);
+  }
+
+  static NSScriptClassDescription classDescriptionForClass_(
+      SwiftLibrary _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_550(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classDescriptionForClass_1, aClass._id);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription initWithSuiteName_className_dictionary_(
+      NSString? suiteName,
+      NSString? className,
+      NSDictionary? classDeclaration) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithSuiteName_className_dictionary_1,
+        suiteName?._id ?? ffi.nullptr,
+        className?._id ?? ffi.nullptr,
+        classDeclaration?._id ?? ffi.nullptr);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suiteName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suiteName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get className {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_className1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get implementationClassName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_implementationClassName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription? get superclassDescription {
+    final _ret = _lib._objc_msgSend_552(_id, _lib._sel_superclassDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCode1);
+  }
+
+  bool matchesAppleEventCode_(int appleEventCode) {
+    return _lib._objc_msgSend_173(
+        _id, _lib._sel_matchesAppleEventCode_1, appleEventCode);
+  }
+
+  bool supportsCommand_(NSScriptCommandDescription? commandDescription) {
+    return _lib._objc_msgSend_562(_id, _lib._sel_supportsCommand_1,
+        commandDescription?._id ?? ffi.nullptr);
+  }
+
+  ffi.Pointer<ObjCSel> selectorForCommand_(
+      NSScriptCommandDescription? commandDescription) {
+    return _lib._objc_msgSend_563(_id, _lib._sel_selectorForCommand_1,
+        commandDescription?._id ?? ffi.nullptr);
+  }
+
+  NSString typeForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_typeForKey_1, key?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptClassDescription classDescriptionForKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_564(
+        _id, _lib._sel_classDescriptionForKey_1, key?._id ?? ffi.nullptr);
+    return NSScriptClassDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  int appleEventCodeForKey_(NSString? key) {
+    return _lib._objc_msgSend_553(
+        _id, _lib._sel_appleEventCodeForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  NSString keyWithAppleEventCode_(int appleEventCode) {
+    final _ret = _lib._objc_msgSend_565(
+        _id, _lib._sel_keyWithAppleEventCode_1, appleEventCode);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get defaultSubcontainerAttributeKey {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_defaultSubcontainerAttributeKey1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isLocationRequiredToCreateForKey_(NSString? toManyRelationshipKey) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_isLocationRequiredToCreateForKey_1,
+        toManyRelationshipKey?._id ?? ffi.nullptr);
+  }
+
+  bool hasPropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasPropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool hasOrderedToManyRelationshipForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_hasOrderedToManyRelationshipForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  bool hasReadablePropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasReadablePropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool hasWritablePropertyForKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_hasWritablePropertyForKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  bool isReadOnlyKey_(NSString? key) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_isReadOnlyKey_1, key?._id ?? ffi.nullptr);
+  }
+
+  static void registerClassDescription_forClass_(
+      SwiftLibrary _lib, NSClassDescription? description, NSObject aClass) {
+    return _lib._objc_msgSend_523(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_registerClassDescription_forClass_1,
+        description?._id ?? ffi.nullptr,
+        aClass._id);
+  }
+
+  static void invalidateClassDescriptionCache(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSScriptClassDescription1,
+        _lib._sel_invalidateClassDescriptionCache1);
+  }
+
+  static NSScriptClassDescription new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptClassDescription1, _lib._sel_new1);
+    return NSScriptClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptClassDescription alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptClassDescription1, _lib._sel_alloc1);
+    return NSScriptClassDescription._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptClassDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptClassDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptClassDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptClassDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptClassDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptCommandDescription extends NSObject {
+  NSScriptCommandDescription._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptCommandDescription] that points to the same underlying object as [other].
+  static NSScriptCommandDescription castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptCommandDescription._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptCommandDescription] that wraps the given raw object pointer.
+  static NSScriptCommandDescription castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptCommandDescription._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptCommandDescription].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptCommandDescription1);
+  }
+
+  @override
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommandDescription initWithSuiteName_commandName_dictionary_(
+      NSString? suiteName,
+      NSString? commandName,
+      NSDictionary? commandDeclaration) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithSuiteName_commandName_dictionary_1,
+        suiteName?._id ?? ffi.nullptr,
+        commandName?._id ?? ffi.nullptr,
+        commandDeclaration?._id ?? ffi.nullptr);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSScriptCommandDescription initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSString? get suiteName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suiteName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get commandName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_commandName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventClassCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventClassCode1);
+  }
+
+  int get appleEventCode {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCode1);
+  }
+
+  NSString? get commandClassName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_commandClassName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get returnType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_returnType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get appleEventCodeForReturnType {
+    return _lib._objc_msgSend_191(_id, _lib._sel_appleEventCodeForReturnType1);
+  }
+
+  NSArray? get argumentNames {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_argumentNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString typeForArgumentWithName_(NSString? argumentName) {
+    final _ret = _lib._objc_msgSend_64(_id, _lib._sel_typeForArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int appleEventCodeForArgumentWithName_(NSString? argumentName) {
+    return _lib._objc_msgSend_553(
+        _id,
+        _lib._sel_appleEventCodeForArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+  }
+
+  bool isOptionalArgumentWithName_(NSString? argumentName) {
+    return _lib._objc_msgSend_59(_id, _lib._sel_isOptionalArgumentWithName_1,
+        argumentName?._id ?? ffi.nullptr);
+  }
+
+  NSScriptCommand createCommandInstance() {
+    final _ret = _lib._objc_msgSend_560(_id, _lib._sel_createCommandInstance1);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommand createCommandInstanceWithZone_(ffi.Pointer<NSZone> zone) {
+    final _ret = _lib._objc_msgSend_561(
+        _id, _lib._sel_createCommandInstanceWithZone_1, zone);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSScriptCommandDescription new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_new1);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSScriptCommandDescription alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_alloc1);
+    return NSScriptCommandDescription._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptCommandDescription1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptCommandDescription1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScriptCommandDescription1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSScriptCommand extends NSObject {
+  NSScriptCommand._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScriptCommand] that points to the same underlying object as [other].
+  static NSScriptCommand castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScriptCommand._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSScriptCommand] that wraps the given raw object pointer.
+  static NSScriptCommand castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScriptCommand._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScriptCommand].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSScriptCommand1);
+  }
+
+  NSScriptCommand initWithCommandDescription_(
+      NSScriptCommandDescription? commandDef) {
+    final _ret = _lib._objc_msgSend_554(_id,
+        _lib._sel_initWithCommandDescription_1, commandDef?._id ?? ffi.nullptr);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommand initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSScriptCommandDescription? get commandDescription {
+    final _ret = _lib._objc_msgSend_555(_id, _lib._sel_commandDescription1);
+    return _ret.address == 0
+        ? null
+        : NSScriptCommandDescription._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get directParameter {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_directParameter1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set directParameter(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setDirectParameter_1, value._id);
+  }
+
+  NSScriptObjectSpecifier? get receiversSpecifier {
+    final _ret = _lib._objc_msgSend_556(_id, _lib._sel_receiversSpecifier1);
+    return _ret.address == 0
+        ? null
+        : NSScriptObjectSpecifier._(_ret, _lib, retain: true, release: true);
+  }
+
+  set receiversSpecifier(NSScriptObjectSpecifier? value) {
+    _lib._objc_msgSend_557(
+        _id, _lib._sel_setReceiversSpecifier_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get evaluatedReceivers {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_evaluatedReceivers1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get arguments {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set arguments(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setArguments_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get evaluatedArguments {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_evaluatedArguments1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get wellFormed {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isWellFormed1);
+  }
+
+  NSObject performDefaultImplementation() {
+    final _ret =
+        _lib._objc_msgSend_2(_id, _lib._sel_performDefaultImplementation1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject executeCommand() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_executeCommand1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get scriptErrorNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_scriptErrorNumber1);
+  }
+
+  set scriptErrorNumber(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setScriptErrorNumber_1, value);
+  }
+
+  NSAppleEventDescriptor? get scriptErrorOffendingObjectDescriptor {
+    final _ret = _lib._objc_msgSend_526(
+        _id, _lib._sel_scriptErrorOffendingObjectDescriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorOffendingObjectDescriptor(NSAppleEventDescriptor? value) {
+    _lib._objc_msgSend_559(
+        _id,
+        _lib._sel_setScriptErrorOffendingObjectDescriptor_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSAppleEventDescriptor? get scriptErrorExpectedTypeDescriptor {
+    final _ret = _lib._objc_msgSend_526(
+        _id, _lib._sel_scriptErrorExpectedTypeDescriptor1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorExpectedTypeDescriptor(NSAppleEventDescriptor? value) {
+    _lib._objc_msgSend_559(
+        _id,
+        _lib._sel_setScriptErrorExpectedTypeDescriptor_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get scriptErrorString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_scriptErrorString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set scriptErrorString(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setScriptErrorString_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSScriptCommand currentCommand(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_560(
+        _lib._class_NSScriptCommand1, _lib._sel_currentCommand1);
+    return NSScriptCommand._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAppleEventDescriptor? get appleEvent {
+    final _ret = _lib._objc_msgSend_526(_id, _lib._sel_appleEvent1);
+    return _ret.address == 0
+        ? null
+        : NSAppleEventDescriptor._(_ret, _lib, retain: true, release: true);
+  }
+
+  void suspendExecution() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_suspendExecution1);
+  }
+
+  void resumeExecutionWithResult_(NSObject result) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_resumeExecutionWithResult_1, result._id);
+  }
+
+  static NSScriptCommand new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSScriptCommand1, _lib._sel_new1);
+    return NSScriptCommand._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScriptCommand alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSScriptCommand1, _lib._sel_alloc1);
+    return NSScriptCommand._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScriptCommand1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSScriptCommand1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScriptCommand1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScriptCommand1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSScriptCommand1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScriptCommand1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSItemProvider extends NSObject {
+  NSItemProvider._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSItemProvider] that points to the same underlying object as [other].
+  static NSItemProvider castFrom<T extends _ObjCWrapper>(T other) {
+    return NSItemProvider._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSItemProvider] that wraps the given raw object pointer.
+  static NSItemProvider castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSItemProvider._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSItemProvider].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSItemProvider1);
+  }
+
+  @override
+  NSItemProvider init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerDataRepresentationForTypeIdentifier_visibility_loadHandler_(
+      NSString? typeIdentifier, int visibility, ObjCBlock18 loadHandler) {
+    return _lib._objc_msgSend_588(
+        _id,
+        _lib._sel_registerDataRepresentationForTypeIdentifier_visibility_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        visibility,
+        loadHandler._id);
+  }
+
+  void
+      registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_(
+          NSString? typeIdentifier,
+          int fileOptions,
+          int visibility,
+          ObjCBlock20 loadHandler) {
+    return _lib._objc_msgSend_589(
+        _id,
+        _lib._sel_registerFileRepresentationForTypeIdentifier_fileOptions_visibility_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        fileOptions,
+        visibility,
+        loadHandler._id);
+  }
+
+  NSArray? get registeredTypeIdentifiers {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_registeredTypeIdentifiers1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray registeredTypeIdentifiersWithFileOptions_(int fileOptions) {
+    final _ret = _lib._objc_msgSend_590(
+        _id, _lib._sel_registeredTypeIdentifiersWithFileOptions_1, fileOptions);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool hasItemConformingToTypeIdentifier_(NSString? typeIdentifier) {
+    return _lib._objc_msgSend_59(
+        _id,
+        _lib._sel_hasItemConformingToTypeIdentifier_1,
+        typeIdentifier?._id ?? ffi.nullptr);
+  }
+
+  bool hasRepresentationConformingToTypeIdentifier_fileOptions_(
+      NSString? typeIdentifier, int fileOptions) {
+    return _lib._objc_msgSend_591(
+        _id,
+        _lib._sel_hasRepresentationConformingToTypeIdentifier_fileOptions_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        fileOptions);
+  }
+
+  NSProgress loadDataRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock19 completionHandler) {
+    final _ret = _lib._objc_msgSend_592(
+        _id,
+        _lib._sel_loadDataRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress loadFileRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock22 completionHandler) {
+    final _ret = _lib._objc_msgSend_593(
+        _id,
+        _lib._sel_loadFileRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_(
+      NSString? typeIdentifier, ObjCBlock21 completionHandler) {
+    final _ret = _lib._objc_msgSend_594(
+        _id,
+        _lib._sel_loadInPlaceFileRepresentationForTypeIdentifier_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suggestedName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suggestedName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set suggestedName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSuggestedName_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSItemProvider initWithObject_(NSObject? object) {
+    final _ret = _lib._objc_msgSend_16(
+        _id, _lib._sel_initWithObject_1, object?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerObject_visibility_(NSObject? object, int visibility) {
+    return _lib._objc_msgSend_595(_id, _lib._sel_registerObject_visibility_1,
+        object?._id ?? ffi.nullptr, visibility);
+  }
+
+  void registerObjectOfClass_visibility_loadHandler_(
+      NSObject? aClass, int visibility, ObjCBlock23 loadHandler) {
+    return _lib._objc_msgSend_596(
+        _id,
+        _lib._sel_registerObjectOfClass_visibility_loadHandler_1,
+        aClass?._id ?? ffi.nullptr,
+        visibility,
+        loadHandler._id);
+  }
+
+  bool canLoadObjectOfClass_(NSObject? aClass) {
+    return _lib._objc_msgSend_0(
+        _id, _lib._sel_canLoadObjectOfClass_1, aClass?._id ?? ffi.nullptr);
+  }
+
+  NSProgress loadObjectOfClass_completionHandler_(
+      NSObject? aClass, ObjCBlock24 completionHandler) {
+    final _ret = _lib._objc_msgSend_597(
+        _id,
+        _lib._sel_loadObjectOfClass_completionHandler_1,
+        aClass?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSItemProvider initWithItem_typeIdentifier_(
+      NSObject? item, NSString? typeIdentifier) {
+    final _ret = _lib._objc_msgSend_272(
+        _id,
+        _lib._sel_initWithItem_typeIdentifier_1,
+        item?._id ?? ffi.nullptr,
+        typeIdentifier?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSItemProvider initWithContentsOfURL_(NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, fileURL?._id ?? ffi.nullptr);
+    return NSItemProvider._(_ret, _lib, retain: true, release: true);
+  }
+
+  void registerItemForTypeIdentifier_loadHandler_(
+      NSString? typeIdentifier, NSItemProviderLoadHandler loadHandler) {
+    return _lib._objc_msgSend_598(
+        _id,
+        _lib._sel_registerItemForTypeIdentifier_loadHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        loadHandler);
+  }
+
+  void loadItemForTypeIdentifier_options_completionHandler_(
+      NSString? typeIdentifier,
+      NSDictionary? options,
+      NSItemProviderCompletionHandler completionHandler) {
+    return _lib._objc_msgSend_599(
+        _id,
+        _lib._sel_loadItemForTypeIdentifier_options_completionHandler_1,
+        typeIdentifier?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        completionHandler);
+  }
+
+  NSItemProviderLoadHandler get previewImageHandler {
+    return _lib._objc_msgSend_600(_id, _lib._sel_previewImageHandler1);
+  }
+
+  set previewImageHandler(NSItemProviderLoadHandler value) {
+    _lib._objc_msgSend_601(_id, _lib._sel_setPreviewImageHandler_1, value);
+  }
+
+  void loadPreviewImageWithOptions_completionHandler_(NSDictionary? options,
+      NSItemProviderCompletionHandler completionHandler) {
+    return _lib._objc_msgSend_602(
+        _id,
+        _lib._sel_loadPreviewImageWithOptions_completionHandler_1,
+        options?._id ?? ffi.nullptr,
+        completionHandler);
+  }
+
+  static NSItemProvider new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSItemProvider1, _lib._sel_new1);
+    return NSItemProvider._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSItemProvider alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSItemProvider1, _lib._sel_alloc1);
+    return NSItemProvider._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSItemProvider1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSItemProvider1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSItemProvider1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSItemProvider1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSItemProvider1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSItemProvider1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSItemProvider1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSItemProvider1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSItemProvider1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSItemProviderRepresentationVisibility {
+  static const int NSItemProviderRepresentationVisibilityAll = 0;
+  static const int NSItemProviderRepresentationVisibilityTeam = 1;
+  static const int NSItemProviderRepresentationVisibilityGroup = 2;
+  static const int NSItemProviderRepresentationVisibilityOwnProcess = 3;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock18_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock18_closureRegistry = <int, Function>{};
+int _ObjCBlock18_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock18_registerClosure(Function fn) {
+  final id = ++_ObjCBlock18_closureRegistryIndex;
+  _ObjCBlock18_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock18_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock18_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock18 extends _ObjCBlockBase {
+  ObjCBlock18._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock18.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock18_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock18.fromFunction(SwiftLibrary lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock18_closureTrampoline)
+                    .cast(),
+                _ObjCBlock18_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSProgress extends NSObject {
+  NSProgress._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProgress] that points to the same underlying object as [other].
+  static NSProgress castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProgress._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProgress] that wraps the given raw object pointer.
+  static NSProgress castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProgress._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProgress].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProgress1);
+  }
+
+  static NSProgress currentProgress(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_577(
+        _lib._class_NSProgress1, _lib._sel_currentProgress1);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress progressWithTotalUnitCount_(
+      SwiftLibrary _lib, int unitCount) {
+    final _ret = _lib._objc_msgSend_578(_lib._class_NSProgress1,
+        _lib._sel_progressWithTotalUnitCount_1, unitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress discreteProgressWithTotalUnitCount_(
+      SwiftLibrary _lib, int unitCount) {
+    final _ret = _lib._objc_msgSend_578(_lib._class_NSProgress1,
+        _lib._sel_discreteProgressWithTotalUnitCount_1, unitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProgress progressWithTotalUnitCount_parent_pendingUnitCount_(
+      SwiftLibrary _lib,
+      int unitCount,
+      NSProgress? parent,
+      int portionOfParentTotalUnitCount) {
+    final _ret = _lib._objc_msgSend_579(
+        _lib._class_NSProgress1,
+        _lib._sel_progressWithTotalUnitCount_parent_pendingUnitCount_1,
+        unitCount,
+        parent?._id ?? ffi.nullptr,
+        portionOfParentTotalUnitCount);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProgress initWithParent_userInfo_(NSProgress? parentProgressOrNil) {
+    final _ret = _lib._objc_msgSend_580(
+        _id,
+        _lib._sel_initWithParent_userInfo_1,
+        parentProgressOrNil?._id ?? ffi.nullptr);
+    return NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  void becomeCurrentWithPendingUnitCount_(int unitCount) {
+    return _lib._objc_msgSend_581(
+        _id, _lib._sel_becomeCurrentWithPendingUnitCount_1, unitCount);
+  }
+
+  void performAsCurrentWithPendingUnitCount_usingBlock_(
+      int unitCount, ObjCBlock16 work) {
+    return _lib._objc_msgSend_582(
+        _id,
+        _lib._sel_performAsCurrentWithPendingUnitCount_usingBlock_1,
+        unitCount,
+        work._id);
+  }
+
+  void resignCurrent() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resignCurrent1);
+  }
+
+  void addChild_withPendingUnitCount_(NSProgress? child, int inUnitCount) {
+    return _lib._objc_msgSend_583(
+        _id,
+        _lib._sel_addChild_withPendingUnitCount_1,
+        child?._id ?? ffi.nullptr,
+        inUnitCount);
+  }
+
+  int get totalUnitCount {
+    return _lib._objc_msgSend_584(_id, _lib._sel_totalUnitCount1);
+  }
+
+  set totalUnitCount(int value) {
+    _lib._objc_msgSend_585(_id, _lib._sel_setTotalUnitCount_1, value);
+  }
+
+  int get completedUnitCount {
+    return _lib._objc_msgSend_584(_id, _lib._sel_completedUnitCount1);
+  }
+
+  set completedUnitCount(int value) {
+    _lib._objc_msgSend_585(_id, _lib._sel_setCompletedUnitCount_1, value);
+  }
+
+  NSString? get localizedDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localizedDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set localizedDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLocalizedDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get localizedAdditionalDescription {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_localizedAdditionalDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set localizedAdditionalDescription(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setLocalizedAdditionalDescription_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get cancellable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancellable1);
+  }
+
+  set cancellable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setCancellable_1, value);
+  }
+
+  bool get pausable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isPausable1);
+  }
+
+  set pausable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setPausable_1, value);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  bool get paused {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isPaused1);
+  }
+
+  ObjCBlock16 get cancellationHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_cancellationHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set cancellationHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setCancellationHandler_1, value._id);
+  }
+
+  ObjCBlock16 get pausingHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_pausingHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set pausingHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setPausingHandler_1, value._id);
+  }
+
+  ObjCBlock16 get resumingHandler {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_resumingHandler1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set resumingHandler(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setResumingHandler_1, value._id);
+  }
+
+  void setUserInfoObject_forKey_(
+      NSObject objectOrNil, NSProgressUserInfoKey key) {
+    return _lib._objc_msgSend_122(
+        _id, _lib._sel_setUserInfoObject_forKey_1, objectOrNil._id, key);
+  }
+
+  bool get indeterminate {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isIndeterminate1);
+  }
+
+  double get fractionCompleted {
+    return _lib._objc_msgSend_149(_id, _lib._sel_fractionCompleted1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void pause() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_pause1);
+  }
+
+  void resume() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resume1);
+  }
+
+  static NSProgress new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSProgress1, _lib._sel_new1);
+    return NSProgress._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSProgress alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProgress1, _lib._sel_alloc1);
+    return NSProgress._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSProgress1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSProgress1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProgress1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProgress1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSProgress1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSProgress1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSProgress1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSProgress1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSProgress1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSProgressUserInfoKey = ffi.Pointer<ObjCObject>;
+void _ObjCBlock19_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock19_closureRegistry = <int, Function>{};
+int _ObjCBlock19_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock19_registerClosure(Function fn) {
+  final id = ++_ObjCBlock19_closureRegistryIndex;
+  _ObjCBlock19_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock19_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock19_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock19 extends _ObjCBlockBase {
+  ObjCBlock19._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock19.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock19_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock19.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock19_closureTrampoline)
+                    .cast(),
+                _ObjCBlock19_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSItemProviderFileOptions {
+  static const int NSItemProviderFileOptionOpenInPlace = 1;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock20_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock20_closureRegistry = <int, Function>{};
+int _ObjCBlock20_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock20_registerClosure(Function fn) {
+  final id = ++_ObjCBlock20_closureRegistryIndex;
+  _ObjCBlock20_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock20_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock20_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock20 extends _ObjCBlockBase {
+  ObjCBlock20._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock20.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock20_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock20.fromFunction(SwiftLibrary lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock20_closureTrampoline)
+                    .cast(),
+                _ObjCBlock20_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock21_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock21_closureRegistry = <int, Function>{};
+int _ObjCBlock21_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock21_registerClosure(Function fn) {
+  final id = ++_ObjCBlock21_closureRegistryIndex;
+  _ObjCBlock21_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock21_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock21_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock21 extends _ObjCBlockBase {
+  ObjCBlock21._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock21.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock21_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock21.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock21_closureTrampoline)
+                    .cast(),
+                _ObjCBlock21_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock22_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock22_closureRegistry = <int, Function>{};
+int _ObjCBlock22_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock22_registerClosure(Function fn) {
+  final id = ++_ObjCBlock22_closureRegistryIndex;
+  _ObjCBlock22_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock22_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock22_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock22 extends _ObjCBlockBase {
+  ObjCBlock22._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock22.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock22_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock22.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock22_closureTrampoline)
+                    .cast(),
+                _ObjCBlock22_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock23_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0)>>()
+      .asFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<_ObjCBlock> arg0)>()(arg0);
+}
+
+final _ObjCBlock23_closureRegistry = <int, Function>{};
+int _ObjCBlock23_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock23_registerClosure(Function fn) {
+  final id = ++_ObjCBlock23_closureRegistryIndex;
+  _ObjCBlock23_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+ffi.Pointer<ObjCObject> _ObjCBlock23_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<_ObjCBlock> arg0) {
+  return _ObjCBlock23_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock23 extends _ObjCBlockBase {
+  ObjCBlock23._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock23.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(
+                      ffi.Pointer<_ObjCBlock> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock23_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock23.fromFunction(SwiftLibrary lib,
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Pointer<ObjCObject> Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<_ObjCBlock> arg0)>(
+                        _ObjCBlock23_closureTrampoline)
+                    .cast(),
+                _ObjCBlock23_registerClosure(fn)),
+            lib);
+  ffi.Pointer<ObjCObject> call(ffi.Pointer<_ObjCBlock> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<_ObjCBlock> arg0)>>()
+        .asFunction<
+            ffi.Pointer<ObjCObject> Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<_ObjCBlock> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock24_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock24_closureRegistry = <int, Function>{};
+int _ObjCBlock24_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock24_registerClosure(Function fn) {
+  final id = ++_ObjCBlock24_closureRegistryIndex;
+  _ObjCBlock24_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock24_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock24_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock24 extends _ObjCBlockBase {
+  ObjCBlock24._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock24.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock24_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock24.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock24_closureTrampoline)
+                    .cast(),
+                _ObjCBlock24_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSItemProviderLoadHandler = ffi.Pointer<_ObjCBlock>;
+void _ObjCBlock25_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    NSItemProviderCompletionHandler arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  NSItemProviderCompletionHandler arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              NSItemProviderCompletionHandler arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock25_closureRegistry = <int, Function>{};
+int _ObjCBlock25_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock25_registerClosure(Function fn) {
+  final id = ++_ObjCBlock25_closureRegistryIndex;
+  _ObjCBlock25_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock25_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    NSItemProviderCompletionHandler arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock25_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock25 extends _ObjCBlockBase {
+  ObjCBlock25._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock25.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      NSItemProviderCompletionHandler arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                NSItemProviderCompletionHandler arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock25_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock25.fromFunction(
+      SwiftLibrary lib,
+      void Function(NSItemProviderCompletionHandler arg0,
+              ffi.Pointer<ObjCObject> arg1, ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                NSItemProviderCompletionHandler arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock25_closureTrampoline)
+                    .cast(),
+                _ObjCBlock25_registerClosure(fn)),
+            lib);
+  void call(NSItemProviderCompletionHandler arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    NSItemProviderCompletionHandler arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                NSItemProviderCompletionHandler arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+typedef NSItemProviderCompletionHandler = ffi.Pointer<_ObjCBlock>;
+
+class NSMutableString extends NSString {
+  NSMutableString._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableString] that points to the same underlying object as [other].
+  static NSMutableString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableString] that wraps the given raw object pointer.
+  static NSMutableString castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableString1);
+  }
+
+  void replaceCharactersInRange_withString_(NSRange range, NSString? aString) {
+    return _lib._objc_msgSend_603(
+        _id,
+        _lib._sel_replaceCharactersInRange_withString_1,
+        range,
+        aString?._id ?? ffi.nullptr);
+  }
+
+  void insertString_atIndex_(NSString? aString, int loc) {
+    return _lib._objc_msgSend_604(_id, _lib._sel_insertString_atIndex_1,
+        aString?._id ?? ffi.nullptr, loc);
+  }
+
+  void deleteCharactersInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(
+        _id, _lib._sel_deleteCharactersInRange_1, range);
+  }
+
+  void appendString_(NSString? aString) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_appendString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  void appendFormat_(NSString? format) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_appendFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  void setString_(NSString? aString) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_setString_1, aString?._id ?? ffi.nullptr);
+  }
+
+  int replaceOccurrencesOfString_withString_options_range_(NSString? target,
+      NSString? replacement, int options, NSRange searchRange) {
+    return _lib._objc_msgSend_605(
+        _id,
+        _lib._sel_replaceOccurrencesOfString_withString_options_range_1,
+        target?._id ?? ffi.nullptr,
+        replacement?._id ?? ffi.nullptr,
+        options,
+        searchRange);
+  }
+
+  bool applyTransform_reverse_range_updatedRange_(NSStringTransform transform,
+      bool reverse, NSRange range, NSRangePointer resultingRange) {
+    return _lib._objc_msgSend_606(
+        _id,
+        _lib._sel_applyTransform_reverse_range_updatedRange_1,
+        transform,
+        reverse,
+        range,
+        resultingRange);
+  }
+
+  NSMutableString initWithCapacity_(int capacity) {
+    final _ret =
+        _lib._objc_msgSend_607(_id, _lib._sel_initWithCapacity_1, capacity);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCapacity_(SwiftLibrary _lib, int capacity) {
+    final _ret = _lib._objc_msgSend_607(
+        _lib._class_NSMutableString1, _lib._sel_stringWithCapacity_1, capacity);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static ffi.Pointer<NSStringEncoding> getAvailableStringEncodings(
+      SwiftLibrary _lib) {
+    return _lib._objc_msgSend_318(
+        _lib._class_NSMutableString1, _lib._sel_availableStringEncodings1);
+  }
+
+  static NSString localizedNameOfStringEncoding_(
+      SwiftLibrary _lib, int encoding) {
+    final _ret = _lib._objc_msgSend_293(_lib._class_NSMutableString1,
+        _lib._sel_localizedNameOfStringEncoding_1, encoding);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultCStringEncoding(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_10(
+        _lib._class_NSMutableString1, _lib._sel_defaultCStringEncoding1);
+  }
+
+  static NSMutableString string(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_string1);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithString_1, string?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCharacters_length_(
+      SwiftLibrary _lib, ffi.Pointer<unichar> characters, int length) {
+    final _ret = _lib._objc_msgSend_331(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCharacters_length_1, characters, length);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithUTF8String_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> nullTerminatedCString) {
+    final _ret = _lib._objc_msgSend_332(_lib._class_NSMutableString1,
+        _lib._sel_stringWithUTF8String_1, nullTerminatedCString);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithFormat_(
+      SwiftLibrary _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString localizedStringWithFormat_(
+      SwiftLibrary _lib, NSString? format) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_localizedStringWithFormat_1, format?._id ?? ffi.nullptr);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithCString_encoding_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> cString, int enc) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCString_encoding_1, cString, enc);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfURL_encoding_error_(
+      SwiftLibrary _lib,
+      NSURL? url,
+      int enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_340(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_encoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfFile_encoding_error_(
+      SwiftLibrary _lib,
+      NSString? path,
+      int enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_341(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_encoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfURL_usedEncoding_error_(
+      SwiftLibrary _lib,
+      NSURL? url,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_342(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_usedEncoding_error_1,
+        url?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString stringWithContentsOfFile_usedEncoding_error_(
+      SwiftLibrary _lib,
+      NSString? path,
+      ffi.Pointer<NSStringEncoding> enc,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_343(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_usedEncoding_error_1,
+        path?._id ?? ffi.nullptr,
+        enc,
+        error);
+    return NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int
+      stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_(
+          SwiftLibrary _lib,
+          NSData? data,
+          NSDictionary? opts,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+          ffi.Pointer<ffi.Bool> usedLossyConversion) {
+    return _lib._objc_msgSend_344(
+        _lib._class_NSMutableString1,
+        _lib._sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1,
+        data?._id ?? ffi.nullptr,
+        opts?._id ?? ffi.nullptr,
+        string,
+        usedLossyConversion);
+  }
+
+  static NSObject stringWithContentsOfFile_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfFile_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithContentsOfURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableString1,
+        _lib._sel_stringWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_length_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> bytes, int length) {
+    final _ret = _lib._objc_msgSend_339(_lib._class_NSMutableString1,
+        _lib._sel_stringWithCString_length_1, bytes, length);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject stringWithCString_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Char> bytes) {
+    final _ret = _lib._objc_msgSend_332(
+        _lib._class_NSMutableString1, _lib._sel_stringWithCString_1, bytes);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathWithComponents_(SwiftLibrary _lib, NSArray? components) {
+    final _ret = _lib._objc_msgSend_350(_lib._class_NSMutableString1,
+        _lib._sel_pathWithComponents_1, components?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableString new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_new1);
+    return NSMutableString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableString alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableString1, _lib._sel_alloc1);
+    return NSMutableString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSNotification extends NSObject {
+  NSNotification._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNotification] that points to the same underlying object as [other].
+  static NSNotification castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNotification._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNotification] that wraps the given raw object pointer.
+  static NSNotification castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNotification._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNotification].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSNotification1);
+  }
+
+  NSNotificationName get name {
+    return _lib._objc_msgSend_20(_id, _lib._sel_name1);
+  }
+
+  NSObject get object {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_object1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNotification initWithName_object_userInfo_(
+      NSNotificationName name, NSObject object, NSDictionary? userInfo) {
+    final _ret = _lib._objc_msgSend_608(
+        _id,
+        _lib._sel_initWithName_object_userInfo_1,
+        name,
+        object._id,
+        userInfo?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNotification initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification notificationWithName_object_(
+      SwiftLibrary _lib, NSNotificationName aName, NSObject anObject) {
+    final _ret = _lib._objc_msgSend_157(_lib._class_NSNotification1,
+        _lib._sel_notificationWithName_object_1, aName, anObject._id);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification notificationWithName_object_userInfo_(SwiftLibrary _lib,
+      NSNotificationName aName, NSObject anObject, NSDictionary? aUserInfo) {
+    final _ret = _lib._objc_msgSend_608(
+        _lib._class_NSNotification1,
+        _lib._sel_notificationWithName_object_userInfo_1,
+        aName,
+        anObject._id,
+        aUserInfo?._id ?? ffi.nullptr);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSNotification init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSNotification._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSNotification new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNotification1, _lib._sel_new1);
+    return NSNotification._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNotification alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNotification1, _lib._sel_alloc1);
+    return NSNotification._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNotification1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNotification1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSNotification1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNotification1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNotification1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNotification1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNotification1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNotification1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNotification1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSNotificationName = ffi.Pointer<ObjCObject>;
+
+class NSBundle extends NSObject {
+  NSBundle._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSBundle] that points to the same underlying object as [other].
+  static NSBundle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSBundle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSBundle] that wraps the given raw object pointer.
+  static NSBundle castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSBundle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSBundle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSBundle1);
+  }
+
+  static NSBundle? getMainBundle(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_609(_lib._class_NSBundle1, _lib._sel_mainBundle1);
+    return _ret.address == 0
+        ? null
+        : NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithPath_(SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSBundle1,
+        _lib._sel_bundleWithPath_1, path?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSBundle initWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithPath_1, path?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSBundle1,
+        _lib._sel_bundleWithURL_1, url?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSBundle initWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, url?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleForClass_(SwiftLibrary _lib, NSObject aClass) {
+    final _ret = _lib._objc_msgSend_610(
+        _lib._class_NSBundle1, _lib._sel_bundleForClass_1, aClass._id);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSBundle bundleWithIdentifier_(
+      SwiftLibrary _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_611(_lib._class_NSBundle1,
+        _lib._sel_bundleWithIdentifier_1, identifier?._id ?? ffi.nullptr);
+    return NSBundle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAllBundles(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_80(_lib._class_NSBundle1, _lib._sel_allBundles1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray? getAllFrameworks(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_80(_lib._class_NSBundle1, _lib._sel_allFrameworks1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool load() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_load1);
+  }
+
+  bool get loaded {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLoaded1);
+  }
+
+  bool unload() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_unload1);
+  }
+
+  bool preflightAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_preflightAndReturnError_1, error);
+  }
+
+  bool loadAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_loadAndReturnError_1, error);
+  }
+
+  NSURL? get bundleURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_bundleURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get resourceURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_resourceURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get executableURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_executableURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForAuxiliaryExecutable_(NSString? executableName) {
+    final _ret = _lib._objc_msgSend_34(
+        _id,
+        _lib._sel_URLForAuxiliaryExecutable_1,
+        executableName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get privateFrameworksURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_privateFrameworksURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get sharedFrameworksURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_sharedFrameworksURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get sharedSupportURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_sharedSupportURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get builtInPlugInsURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_builtInPlugInsURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get appStoreReceiptURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_appStoreReceiptURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get bundlePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_bundlePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get resourcePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_resourcePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get executablePath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_executablePath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForAuxiliaryExecutable_(NSString? executableName) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_pathForAuxiliaryExecutable_1,
+        executableName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get privateFrameworksPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_privateFrameworksPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sharedFrameworksPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sharedFrameworksPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sharedSupportPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sharedSupportPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get builtInPlugInsPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_builtInPlugInsPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURL URLForResource_withExtension_subdirectory_inBundleWithURL_(
+      SwiftLibrary _lib,
+      NSString? name,
+      NSString? ext,
+      NSString? subpath,
+      NSURL? bundleURL) {
+    final _ret = _lib._objc_msgSend_612(
+        _lib._class_NSBundle1,
+        _lib._sel_URLForResource_withExtension_subdirectory_inBundleWithURL_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        bundleURL?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray URLsForResourcesWithExtension_subdirectory_inBundleWithURL_(
+      SwiftLibrary _lib, NSString? ext, NSString? subpath, NSURL? bundleURL) {
+    final _ret = _lib._objc_msgSend_613(
+        _lib._class_NSBundle1,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        bundleURL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_(NSString? name, NSString? ext) {
+    final _ret = _lib._objc_msgSend_614(
+        _id,
+        _lib._sel_URLForResource_withExtension_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_subdirectory_(
+      NSString? name, NSString? ext, NSString? subpath) {
+    final _ret = _lib._objc_msgSend_615(
+        _id,
+        _lib._sel_URLForResource_withExtension_subdirectory_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL URLForResource_withExtension_subdirectory_localization_(NSString? name,
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_616(
+        _id,
+        _lib._sel_URLForResource_withExtension_subdirectory_localization_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForResourcesWithExtension_subdirectory_(
+      NSString? ext, NSString? subpath) {
+    final _ret = _lib._objc_msgSend_617(
+        _id,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray URLsForResourcesWithExtension_subdirectory_localization_(
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_618(
+        _id,
+        _lib._sel_URLsForResourcesWithExtension_subdirectory_localization_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString pathForResource_ofType_inDirectory_(
+      SwiftLibrary _lib, NSString? name, NSString? ext, NSString? bundlePath) {
+    final _ret = _lib._objc_msgSend_619(
+        _lib._class_NSBundle1,
+        _lib._sel_pathForResource_ofType_inDirectory_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        bundlePath?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray pathsForResourcesOfType_inDirectory_(
+      SwiftLibrary _lib, NSString? ext, NSString? bundlePath) {
+    final _ret = _lib._objc_msgSend_617(
+        _lib._class_NSBundle1,
+        _lib._sel_pathsForResourcesOfType_inDirectory_1,
+        ext?._id ?? ffi.nullptr,
+        bundlePath?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForResource_ofType_(NSString? name, NSString? ext) {
+    final _ret = _lib._objc_msgSend_324(_id, _lib._sel_pathForResource_ofType_1,
+        name?._id ?? ffi.nullptr, ext?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString pathForResource_ofType_inDirectory_forLocalization_(NSString? name,
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_620(
+        _id,
+        _lib._sel_pathForResource_ofType_inDirectory_forLocalization_1,
+        name?._id ?? ffi.nullptr,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray pathsForResourcesOfType_inDirectory_forLocalization_(
+      NSString? ext, NSString? subpath, NSString? localizationName) {
+    final _ret = _lib._objc_msgSend_618(
+        _id,
+        _lib._sel_pathsForResourcesOfType_inDirectory_forLocalization_1,
+        ext?._id ?? ffi.nullptr,
+        subpath?._id ?? ffi.nullptr,
+        localizationName?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString localizedStringForKey_value_table_(
+      NSString? key, NSString? value, NSString? tableName) {
+    final _ret = _lib._objc_msgSend_619(
+        _id,
+        _lib._sel_localizedStringForKey_value_table_1,
+        key?._id ?? ffi.nullptr,
+        value?._id ?? ffi.nullptr,
+        tableName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString localizedAttributedStringForKey_value_table_(
+      NSString? key, NSString? value, NSString? tableName) {
+    final _ret = _lib._objc_msgSend_641(
+        _id,
+        _lib._sel_localizedAttributedStringForKey_value_table_1,
+        key?._id ?? ffi.nullptr,
+        value?._id ?? ffi.nullptr,
+        tableName?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get bundleIdentifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_bundleIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get infoDictionary {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_infoDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get localizedInfoDictionary {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_localizedInfoDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectForInfoDictionaryKey_(NSString? key) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_objectForInfoDictionaryKey_1, key?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject classNamed_(NSString? className) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_classNamed_1, className?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject get principalClass {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_principalClass1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get preferredLocalizations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_preferredLocalizations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get localizations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_localizations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get developmentLocalization {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_developmentLocalization1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray preferredLocalizationsFromArray_(
+      SwiftLibrary _lib, NSArray? localizationsArray) {
+    final _ret = _lib._objc_msgSend_63(
+        _lib._class_NSBundle1,
+        _lib._sel_preferredLocalizationsFromArray_1,
+        localizationsArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray preferredLocalizationsFromArray_forPreferences_(
+      SwiftLibrary _lib,
+      NSArray? localizationsArray,
+      NSArray? preferencesArray) {
+    final _ret = _lib._objc_msgSend_642(
+        _lib._class_NSBundle1,
+        _lib._sel_preferredLocalizationsFromArray_forPreferences_1,
+        localizationsArray?._id ?? ffi.nullptr,
+        preferencesArray?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get executableArchitectures {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_executableArchitectures1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setPreservationPriority_forTags_(double priority, NSSet? tags) {
+    return _lib._objc_msgSend_643(
+        _id,
+        _lib._sel_setPreservationPriority_forTags_1,
+        priority,
+        tags?._id ?? ffi.nullptr);
+  }
+
+  double preservationPriorityForTag_(NSString? tag) {
+    return _lib._objc_msgSend_269(
+        _id, _lib._sel_preservationPriorityForTag_1, tag?._id ?? ffi.nullptr);
+  }
+
+  static NSBundle new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSBundle1, _lib._sel_new1);
+    return NSBundle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSBundle alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSBundle1, _lib._sel_alloc1);
+    return NSBundle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSBundle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSBundle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSBundle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSBundle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSBundle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSBundle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSBundle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSBundle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSBundle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSAttributedString extends NSObject {
+  NSAttributedString._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAttributedString] that points to the same underlying object as [other].
+  static NSAttributedString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAttributedString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAttributedString] that wraps the given raw object pointer.
+  static NSAttributedString castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAttributedString._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAttributedString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAttributedString1);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesAtIndex_effectiveRange_(
+      int location, NSRangePointer range) {
+    final _ret = _lib._objc_msgSend_621(
+        _id, _lib._sel_attributesAtIndex_effectiveRange_1, location, range);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  NSObject attribute_atIndex_effectiveRange_(
+      NSAttributedStringKey attrName, int location, NSRangePointer range) {
+    final _ret = _lib._objc_msgSend_622(
+        _id,
+        _lib._sel_attribute_atIndex_effectiveRange_1,
+        attrName,
+        location,
+        range);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedSubstringFromRange_(NSRange range) {
+    final _ret = _lib._objc_msgSend_623(
+        _id, _lib._sel_attributedSubstringFromRange_1, range);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary attributesAtIndex_longestEffectiveRange_inRange_(
+      int location, NSRangePointer range, NSRange rangeLimit) {
+    final _ret = _lib._objc_msgSend_624(
+        _id,
+        _lib._sel_attributesAtIndex_longestEffectiveRange_inRange_1,
+        location,
+        range,
+        rangeLimit);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject attribute_atIndex_longestEffectiveRange_inRange_(
+      NSAttributedStringKey attrName,
+      int location,
+      NSRangePointer range,
+      NSRange rangeLimit) {
+    final _ret = _lib._objc_msgSend_625(
+        _id,
+        _lib._sel_attribute_atIndex_longestEffectiveRange_inRange_1,
+        attrName,
+        location,
+        range,
+        rangeLimit);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToAttributedString_(NSAttributedString? other) {
+    return _lib._objc_msgSend_626(
+        _id, _lib._sel_isEqualToAttributedString_1, other?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString initWithString_(NSString? str) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, str?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithString_attributes_(
+      NSString? str, NSDictionary? attrs) {
+    final _ret = _lib._objc_msgSend_352(
+        _id,
+        _lib._sel_initWithString_attributes_1,
+        str?._id ?? ffi.nullptr,
+        attrs?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithAttributedString_(NSAttributedString? attrStr) {
+    final _ret = _lib._objc_msgSend_627(
+        _id, _lib._sel_initWithAttributedString_1, attrStr?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateAttributesInRange_options_usingBlock_(
+      NSRange enumerationRange, int opts, ObjCBlock26 block) {
+    return _lib._objc_msgSend_628(
+        _id,
+        _lib._sel_enumerateAttributesInRange_options_usingBlock_1,
+        enumerationRange,
+        opts,
+        block._id);
+  }
+
+  void enumerateAttribute_inRange_options_usingBlock_(
+      NSAttributedStringKey attrName,
+      NSRange enumerationRange,
+      int opts,
+      ObjCBlock27 block) {
+    return _lib._objc_msgSend_629(
+        _id,
+        _lib._sel_enumerateAttribute_inRange_options_usingBlock_1,
+        attrName,
+        enumerationRange,
+        opts,
+        block._id);
+  }
+
+  NSAttributedString initWithContentsOfMarkdownFileAtURL_options_baseURL_error_(
+      NSURL? markdownFile,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_634(
+        _id,
+        _lib._sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_1,
+        markdownFile?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithMarkdown_options_baseURL_error_(
+      NSData? markdown,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_635(
+        _id,
+        _lib._sel_initWithMarkdown_options_baseURL_error_1,
+        markdown?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithMarkdownString_options_baseURL_error_(
+      NSString? markdownString,
+      NSAttributedStringMarkdownParsingOptions? options,
+      NSURL? baseURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_636(
+        _id,
+        _lib._sel_initWithMarkdownString_options_baseURL_error_1,
+        markdownString?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        baseURL?._id ?? ffi.nullptr,
+        error);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithFormat_options_locale_(
+      NSAttributedString? format, int options, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_637(
+        _id,
+        _lib._sel_initWithFormat_options_locale_1,
+        format?._id ?? ffi.nullptr,
+        options,
+        locale?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString initWithFormat_options_locale_arguments_(
+      NSAttributedString? format,
+      int options,
+      NSLocale? locale,
+      ffi.Pointer<__va_list_tag> arguments) {
+    final _ret = _lib._objc_msgSend_638(
+        _id,
+        _lib._sel_initWithFormat_options_locale_arguments_1,
+        format?._id ?? ffi.nullptr,
+        options,
+        locale?._id ?? ffi.nullptr,
+        arguments);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString localizedAttributedStringWithFormat_(
+      SwiftLibrary _lib, NSAttributedString? format) {
+    final _ret = _lib._objc_msgSend_627(
+        _lib._class_NSAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_1,
+        format?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString localizedAttributedStringWithFormat_options_(
+      SwiftLibrary _lib, NSAttributedString? format, int options) {
+    final _ret = _lib._objc_msgSend_639(
+        _lib._class_NSAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_options_1,
+        format?._id ?? ffi.nullptr,
+        options);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedStringByInflectingString() {
+    final _ret = _lib._objc_msgSend_640(
+        _id, _lib._sel_attributedStringByInflectingString1);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSAttributedString new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSAttributedString1, _lib._sel_new1);
+    return NSAttributedString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSAttributedString alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSAttributedString1, _lib._sel_alloc1);
+    return NSAttributedString._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSAttributedString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAttributedString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAttributedString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAttributedString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSAttributedString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedString1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSAttributedStringKey = ffi.Pointer<ObjCObject>;
+
+abstract class NSAttributedStringEnumerationOptions {
+  static const int NSAttributedStringEnumerationReverse = 2;
+  static const int
+      NSAttributedStringEnumerationLongestEffectiveRangeNotRequired = 1048576;
+}
+
+void _ObjCBlock26_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock26_closureRegistry = <int, Function>{};
+int _ObjCBlock26_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock26_registerClosure(Function fn) {
+  final id = ++_ObjCBlock26_closureRegistryIndex;
+  _ObjCBlock26_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock26_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock26_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock26 extends _ObjCBlockBase {
+  ObjCBlock26._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock26.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock26_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock26.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock26_closureTrampoline)
+                    .cast(),
+                _ObjCBlock26_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock27_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock27_closureRegistry = <int, Function>{};
+int _ObjCBlock27_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock27_registerClosure(Function fn) {
+  final id = ++_ObjCBlock27_closureRegistryIndex;
+  _ObjCBlock27_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock27_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock27_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock27 extends _ObjCBlockBase {
+  ObjCBlock27._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock27.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock27_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock27.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, NSRange arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                NSRange arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock27_closureTrampoline)
+                    .cast(),
+                _ObjCBlock27_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, NSRange arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    NSRange arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                NSRange arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSAttributedStringMarkdownParsingOptions extends NSObject {
+  NSAttributedStringMarkdownParsingOptions._(
+      ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSAttributedStringMarkdownParsingOptions] that points to the same underlying object as [other].
+  static NSAttributedStringMarkdownParsingOptions
+      castFrom<T extends _ObjCWrapper>(T other) {
+    return NSAttributedStringMarkdownParsingOptions._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSAttributedStringMarkdownParsingOptions] that wraps the given raw object pointer.
+  static NSAttributedStringMarkdownParsingOptions castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSAttributedStringMarkdownParsingOptions._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSAttributedStringMarkdownParsingOptions].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSAttributedStringMarkdownParsingOptions1);
+  }
+
+  @override
+  NSAttributedStringMarkdownParsingOptions init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  bool get allowsExtendedAttributes {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExtendedAttributes1);
+  }
+
+  set allowsExtendedAttributes(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsExtendedAttributes_1, value);
+  }
+
+  int get interpretedSyntax {
+    return _lib._objc_msgSend_630(_id, _lib._sel_interpretedSyntax1);
+  }
+
+  set interpretedSyntax(int value) {
+    _lib._objc_msgSend_631(_id, _lib._sel_setInterpretedSyntax_1, value);
+  }
+
+  int get failurePolicy {
+    return _lib._objc_msgSend_632(_id, _lib._sel_failurePolicy1);
+  }
+
+  set failurePolicy(int value) {
+    _lib._objc_msgSend_633(_id, _lib._sel_setFailurePolicy_1, value);
+  }
+
+  NSString? get languageCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_languageCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set languageCode(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLanguageCode_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSAttributedStringMarkdownParsingOptions new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1, _lib._sel_new1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSAttributedStringMarkdownParsingOptions alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_alloc1);
+    return NSAttributedStringMarkdownParsingOptions._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1,
+        aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSAttributedStringMarkdownParsingOptions1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSAttributedStringMarkdownInterpretedSyntax {
+  static const int NSAttributedStringMarkdownInterpretedSyntaxFull = 0;
+  static const int NSAttributedStringMarkdownInterpretedSyntaxInlineOnly = 1;
+  static const int
+      NSAttributedStringMarkdownInterpretedSyntaxInlineOnlyPreservingWhitespace =
+      2;
+}
+
+abstract class NSAttributedStringMarkdownParsingFailurePolicy {
+  static const int NSAttributedStringMarkdownParsingFailureReturnError = 0;
+  static const int
+      NSAttributedStringMarkdownParsingFailureReturnPartiallyParsedIfPossible =
+      1;
+}
+
+abstract class NSAttributedStringFormattingOptions {
+  static const int
+      NSAttributedStringFormattingInsertArgumentAttributesWithoutMerging = 1;
+  static const int NSAttributedStringFormattingApplyReplacementIndexAttribute =
+      2;
+}
+
+class NSMutableAttributedString extends NSAttributedString {
+  NSMutableAttributedString._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableAttributedString] that points to the same underlying object as [other].
+  static NSMutableAttributedString castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableAttributedString._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableAttributedString] that wraps the given raw object pointer.
+  static NSMutableAttributedString castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableAttributedString._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableAttributedString].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableAttributedString1);
+  }
+
+  void replaceCharactersInRange_withString_(NSRange range, NSString? str) {
+    return _lib._objc_msgSend_603(
+        _id,
+        _lib._sel_replaceCharactersInRange_withString_1,
+        range,
+        str?._id ?? ffi.nullptr);
+  }
+
+  void setAttributes_range_(NSDictionary? attrs, NSRange range) {
+    return _lib._objc_msgSend_644(
+        _id, _lib._sel_setAttributes_range_1, attrs?._id ?? ffi.nullptr, range);
+  }
+
+  NSMutableString? get mutableString {
+    final _ret = _lib._objc_msgSend_645(_id, _lib._sel_mutableString1);
+    return _ret.address == 0
+        ? null
+        : NSMutableString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addAttribute_value_range_(
+      NSAttributedStringKey name, NSObject value, NSRange range) {
+    return _lib._objc_msgSend_646(
+        _id, _lib._sel_addAttribute_value_range_1, name, value._id, range);
+  }
+
+  void addAttributes_range_(NSDictionary? attrs, NSRange range) {
+    return _lib._objc_msgSend_644(
+        _id, _lib._sel_addAttributes_range_1, attrs?._id ?? ffi.nullptr, range);
+  }
+
+  void removeAttribute_range_(NSAttributedStringKey name, NSRange range) {
+    return _lib._objc_msgSend_647(
+        _id, _lib._sel_removeAttribute_range_1, name, range);
+  }
+
+  void replaceCharactersInRange_withAttributedString_(
+      NSRange range, NSAttributedString? attrString) {
+    return _lib._objc_msgSend_648(
+        _id,
+        _lib._sel_replaceCharactersInRange_withAttributedString_1,
+        range,
+        attrString?._id ?? ffi.nullptr);
+  }
+
+  void insertAttributedString_atIndex_(
+      NSAttributedString? attrString, int loc) {
+    return _lib._objc_msgSend_649(
+        _id,
+        _lib._sel_insertAttributedString_atIndex_1,
+        attrString?._id ?? ffi.nullptr,
+        loc);
+  }
+
+  void appendAttributedString_(NSAttributedString? attrString) {
+    return _lib._objc_msgSend_650(_id, _lib._sel_appendAttributedString_1,
+        attrString?._id ?? ffi.nullptr);
+  }
+
+  void deleteCharactersInRange_(NSRange range) {
+    return _lib._objc_msgSend_416(
+        _id, _lib._sel_deleteCharactersInRange_1, range);
+  }
+
+  void setAttributedString_(NSAttributedString? attrString) {
+    return _lib._objc_msgSend_650(
+        _id, _lib._sel_setAttributedString_1, attrString?._id ?? ffi.nullptr);
+  }
+
+  void beginEditing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_beginEditing1);
+  }
+
+  void endEditing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_endEditing1);
+  }
+
+  void appendLocalizedFormat_(NSAttributedString? format) {
+    return _lib._objc_msgSend_650(
+        _id, _lib._sel_appendLocalizedFormat_1, format?._id ?? ffi.nullptr);
+  }
+
+  static NSMutableAttributedString localizedAttributedStringWithFormat_(
+      SwiftLibrary _lib, NSAttributedString? format) {
+    final _ret = _lib._objc_msgSend_627(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_1,
+        format?._id ?? ffi.nullptr);
+    return NSMutableAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableAttributedString localizedAttributedStringWithFormat_options_(
+      SwiftLibrary _lib, NSAttributedString? format, int options) {
+    final _ret = _lib._objc_msgSend_639(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_localizedAttributedStringWithFormat_options_1,
+        format?._id ?? ffi.nullptr,
+        options);
+    return NSMutableAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableAttributedString new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableAttributedString1, _lib._sel_new1);
+    return NSMutableAttributedString._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSMutableAttributedString alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableAttributedString1, _lib._sel_alloc1);
+    return NSMutableAttributedString._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableAttributedString1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableAttributedString1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableAttributedString1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableAttributedString1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableAttributedString1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSMutableAttributedString1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDateFormatter extends NSFormatter {
+  NSDateFormatter._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDateFormatter] that points to the same underlying object as [other].
+  static NSDateFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDateFormatter._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDateFormatter] that wraps the given raw object pointer.
+  static NSDateFormatter castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDateFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDateFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDateFormatter1);
+  }
+
+  int get formattingContext {
+    return _lib._objc_msgSend_655(_id, _lib._sel_formattingContext1);
+  }
+
+  set formattingContext(int value) {
+    _lib._objc_msgSend_656(_id, _lib._sel_setFormattingContext_1, value);
+  }
+
+  bool getObjectValue_forString_range_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<NSRange> rangep,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_657(
+        _id,
+        _lib._sel_getObjectValue_forString_range_error_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        rangep,
+        error);
+  }
+
+  NSString stringFromDate_(NSDate? date) {
+    final _ret = _lib._objc_msgSend_161(
+        _id, _lib._sel_stringFromDate_1, date?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateFromString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_496(
+        _id, _lib._sel_dateFromString_1, string?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringFromDate_dateStyle_timeStyle_(
+      SwiftLibrary _lib, NSDate? date, int dstyle, int tstyle) {
+    final _ret = _lib._objc_msgSend_658(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_localizedStringFromDate_dateStyle_timeStyle_1,
+        date?._id ?? ffi.nullptr,
+        dstyle,
+        tstyle);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString dateFormatFromTemplate_options_locale_(
+      SwiftLibrary _lib, NSString? tmplate, int opts, NSLocale? locale) {
+    final _ret = _lib._objc_msgSend_659(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_dateFormatFromTemplate_options_locale_1,
+        tmplate?._id ?? ffi.nullptr,
+        opts,
+        locale?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int getDefaultFormatterBehavior(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_660(
+        _lib._class_NSDateFormatter1, _lib._sel_defaultFormatterBehavior1);
+  }
+
+  static void setDefaultFormatterBehavior(SwiftLibrary _lib, int value) {
+    _lib._objc_msgSend_661(_lib._class_NSDateFormatter1,
+        _lib._sel_setDefaultFormatterBehavior_1, value);
+  }
+
+  void setLocalizedDateFormatFromTemplate_(NSString? dateFormatTemplate) {
+    return _lib._objc_msgSend_186(
+        _id,
+        _lib._sel_setLocalizedDateFormatFromTemplate_1,
+        dateFormatTemplate?._id ?? ffi.nullptr);
+  }
+
+  NSString? get dateFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_dateFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set dateFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setDateFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get dateStyle {
+    return _lib._objc_msgSend_662(_id, _lib._sel_dateStyle1);
+  }
+
+  set dateStyle(int value) {
+    _lib._objc_msgSend_663(_id, _lib._sel_setDateStyle_1, value);
+  }
+
+  int get timeStyle {
+    return _lib._objc_msgSend_662(_id, _lib._sel_timeStyle1);
+  }
+
+  set timeStyle(int value) {
+    _lib._objc_msgSend_663(_id, _lib._sel_setTimeStyle_1, value);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get generatesCalendarDates {
+    return _lib._objc_msgSend_12(_id, _lib._sel_generatesCalendarDates1);
+  }
+
+  set generatesCalendarDates(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setGeneratesCalendarDates_1, value);
+  }
+
+  int get formatterBehavior {
+    return _lib._objc_msgSend_660(_id, _lib._sel_formatterBehavior1);
+  }
+
+  set formatterBehavior(int value) {
+    _lib._objc_msgSend_661(_id, _lib._sel_setFormatterBehavior_1, value);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSCalendar? get calendar {
+    final _ret = _lib._objc_msgSend_665(_id, _lib._sel_calendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  set calendar(NSCalendar? value) {
+    _lib._objc_msgSend_671(
+        _id, _lib._sel_setCalendar_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get lenient {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLenient1);
+  }
+
+  set lenient(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLenient_1, value);
+  }
+
+  NSDate? get twoDigitStartDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_twoDigitStartDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set twoDigitStartDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setTwoDigitStartDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDate? get defaultDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_defaultDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set defaultDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setDefaultDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get eraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_eraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set eraSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setEraSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get monthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_monthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set monthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get weekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_weekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set weekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get AMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_AMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set AMSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setAMSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get PMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_PMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set PMSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPMSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get longEraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_longEraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set longEraSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setLongEraSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setVeryShortMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_standaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setStandaloneMonthSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneMonthSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_veryShortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortStandaloneMonthSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setVeryShortStandaloneMonthSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setVeryShortWeekdaySymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get veryShortStandaloneWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(
+        _id, _lib._sel_veryShortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set veryShortStandaloneWeekdaySymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id,
+        _lib._sel_setVeryShortStandaloneWeekdaySymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get quarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_quarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set quarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setQuarterSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortQuarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setShortQuarterSymbols_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get standaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standaloneQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setStandaloneQuarterSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get shortStandaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set shortStandaloneQuarterSymbols(NSArray? value) {
+    _lib._objc_msgSend_696(_id, _lib._sel_setShortStandaloneQuarterSymbols_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSDate? get gregorianStartDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_gregorianStartDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set gregorianStartDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setGregorianStartDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get doesRelativeDateFormatting {
+    return _lib._objc_msgSend_12(_id, _lib._sel_doesRelativeDateFormatting1);
+  }
+
+  set doesRelativeDateFormatting(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setDoesRelativeDateFormatting_1, value);
+  }
+
+  NSObject initWithDateFormat_allowNaturalLanguage_(
+      NSString? format, bool flag) {
+    final _ret = _lib._objc_msgSend_29(
+        _id,
+        _lib._sel_initWithDateFormat_allowNaturalLanguage_1,
+        format?._id ?? ffi.nullptr,
+        flag);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool allowsNaturalLanguage() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsNaturalLanguage1);
+  }
+
+  static NSDateFormatter new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateFormatter1, _lib._sel_new1);
+    return NSDateFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDateFormatter alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateFormatter1, _lib._sel_alloc1);
+    return NSDateFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDateFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDateFormatter1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDateFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDateFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDateFormatter1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDateFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSFormatter extends NSObject {
+  NSFormatter._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFormatter] that points to the same underlying object as [other].
+  static NSFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFormatter._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFormatter] that wraps the given raw object pointer.
+  static NSFormatter castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFormatter1);
+  }
+
+  NSString stringForObjectValue_(NSObject obj) {
+    final _ret =
+        _lib._objc_msgSend_65(_id, _lib._sel_stringForObjectValue_1, obj._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSAttributedString attributedStringForObjectValue_withDefaultAttributes_(
+      NSObject obj, NSDictionary? attrs) {
+    final _ret = _lib._objc_msgSend_651(
+        _id,
+        _lib._sel_attributedStringForObjectValue_withDefaultAttributes_1,
+        obj._id,
+        attrs?._id ?? ffi.nullptr);
+    return NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString editingStringForObjectValue_(NSObject obj) {
+    final _ret = _lib._objc_msgSend_65(
+        _id, _lib._sel_editingStringForObjectValue_1, obj._id);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool getObjectValue_forString_errorDescription_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_652(
+        _id,
+        _lib._sel_getObjectValue_forString_errorDescription_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool isPartialStringValid_newEditingString_errorDescription_(
+      NSString? partialString,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> newString,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_653(
+        _id,
+        _lib._sel_isPartialStringValid_newEditingString_errorDescription_1,
+        partialString?._id ?? ffi.nullptr,
+        newString,
+        error);
+  }
+
+  bool
+      isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_(
+          ffi.Pointer<ffi.Pointer<ObjCObject>> partialStringPtr,
+          NSRangePointer proposedSelRangePtr,
+          NSString? origString,
+          NSRange origSelRange,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_654(
+        _id,
+        _lib._sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_1,
+        partialStringPtr,
+        proposedSelRangePtr,
+        origString?._id ?? ffi.nullptr,
+        origSelRange,
+        error);
+  }
+
+  static NSFormatter new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSFormatter1, _lib._sel_new1);
+    return NSFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFormatter alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFormatter1, _lib._sel_alloc1);
+    return NSFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFormatter1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFormatter1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSFormattingContext {
+  static const int NSFormattingContextUnknown = 0;
+  static const int NSFormattingContextDynamic = 1;
+  static const int NSFormattingContextStandalone = 2;
+  static const int NSFormattingContextListItem = 3;
+  static const int NSFormattingContextBeginningOfSentence = 4;
+  static const int NSFormattingContextMiddleOfSentence = 5;
+}
+
+abstract class NSDateFormatterStyle {
+  static const int NSDateFormatterNoStyle = 0;
+  static const int NSDateFormatterShortStyle = 1;
+  static const int NSDateFormatterMediumStyle = 2;
+  static const int NSDateFormatterLongStyle = 3;
+  static const int NSDateFormatterFullStyle = 4;
+}
+
+abstract class NSDateFormatterBehavior {
+  static const int NSDateFormatterBehaviorDefault = 0;
+  static const int NSDateFormatterBehavior10_0 = 1000;
+  static const int NSDateFormatterBehavior10_4 = 1040;
+}
+
+class NSCalendar extends NSObject {
+  NSCalendar._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCalendar] that points to the same underlying object as [other].
+  static NSCalendar castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCalendar._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSCalendar] that wraps the given raw object pointer.
+  static NSCalendar castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCalendar._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCalendar].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSCalendar1);
+  }
+
+  static NSCalendar? getCurrentCalendar(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_665(
+        _lib._class_NSCalendar1, _lib._sel_currentCalendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendar? getAutoupdatingCurrentCalendar(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_665(
+        _lib._class_NSCalendar1, _lib._sel_autoupdatingCurrentCalendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSCalendar calendarWithIdentifier_(
+      SwiftLibrary _lib, NSCalendarIdentifier calendarIdentifierConstant) {
+    final _ret = _lib._objc_msgSend_666(_lib._class_NSCalendar1,
+        _lib._sel_calendarWithIdentifier_1, calendarIdentifierConstant);
+    return NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSCalendar init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithCalendarIdentifier_(NSCalendarIdentifier ident) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithCalendarIdentifier_1, ident);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCalendarIdentifier get calendarIdentifier {
+    return _lib._objc_msgSend_20(_id, _lib._sel_calendarIdentifier1);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get firstWeekday {
+    return _lib._objc_msgSend_10(_id, _lib._sel_firstWeekday1);
+  }
+
+  set firstWeekday(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setFirstWeekday_1, value);
+  }
+
+  int get minimumDaysInFirstWeek {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumDaysInFirstWeek1);
+  }
+
+  set minimumDaysInFirstWeek(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumDaysInFirstWeek_1, value);
+  }
+
+  NSArray? get eraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_eraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get longEraSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_longEraSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get monthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_monthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneMonthSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_standaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortStandaloneMonthSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_veryShortStandaloneMonthSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get weekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_weekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_veryShortWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneWeekdaySymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get veryShortStandaloneWeekdaySymbols {
+    final _ret = _lib._objc_msgSend_80(
+        _id, _lib._sel_veryShortStandaloneWeekdaySymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get quarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_quarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortQuarterSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_shortQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get standaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_standaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get shortStandaloneQuarterSymbols {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_shortStandaloneQuarterSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get AMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_AMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get PMSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_PMSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange minimumRangeOfUnit_(int unit) {
+    return _lib._objc_msgSend_667(_id, _lib._sel_minimumRangeOfUnit_1, unit);
+  }
+
+  NSRange maximumRangeOfUnit_(int unit) {
+    return _lib._objc_msgSend_667(_id, _lib._sel_maximumRangeOfUnit_1, unit);
+  }
+
+  NSRange rangeOfUnit_inUnit_forDate_(int smaller, int larger, NSDate? date) {
+    return _lib._objc_msgSend_668(_id, _lib._sel_rangeOfUnit_inUnit_forDate_1,
+        smaller, larger, date?._id ?? ffi.nullptr);
+  }
+
+  int ordinalityOfUnit_inUnit_forDate_(int smaller, int larger, NSDate? date) {
+    return _lib._objc_msgSend_669(
+        _id,
+        _lib._sel_ordinalityOfUnit_inUnit_forDate_1,
+        smaller,
+        larger,
+        date?._id ?? ffi.nullptr);
+  }
+
+  bool rangeOfUnit_startDate_interval_forDate_(
+      int unit,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      NSDate? date) {
+    return _lib._objc_msgSend_670(
+        _id,
+        _lib._sel_rangeOfUnit_startDate_interval_forDate_1,
+        unit,
+        datep,
+        tip,
+        date?._id ?? ffi.nullptr);
+  }
+
+  NSDate dateFromComponents_(NSDateComponents? comps) {
+    final _ret = _lib._objc_msgSend_675(
+        _id, _lib._sel_dateFromComponents_1, comps?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents components_fromDate_(int unitFlags, NSDate? date) {
+    final _ret = _lib._objc_msgSend_676(_id, _lib._sel_components_fromDate_1,
+        unitFlags, date?._id ?? ffi.nullptr);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingComponents_toDate_options_(
+      NSDateComponents? comps, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_677(
+        _id,
+        _lib._sel_dateByAddingComponents_toDate_options_1,
+        comps?._id ?? ffi.nullptr,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents components_fromDate_toDate_options_(
+      int unitFlags, NSDate? startingDate, NSDate? resultDate, int opts) {
+    final _ret = _lib._objc_msgSend_678(
+        _id,
+        _lib._sel_components_fromDate_toDate_options_1,
+        unitFlags,
+        startingDate?._id ?? ffi.nullptr,
+        resultDate?._id ?? ffi.nullptr,
+        opts);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  void getEra_year_month_day_fromDate_(
+      ffi.Pointer<NSInteger> eraValuePointer,
+      ffi.Pointer<NSInteger> yearValuePointer,
+      ffi.Pointer<NSInteger> monthValuePointer,
+      ffi.Pointer<NSInteger> dayValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getEra_year_month_day_fromDate_1,
+        eraValuePointer,
+        yearValuePointer,
+        monthValuePointer,
+        dayValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  void getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_(
+      ffi.Pointer<NSInteger> eraValuePointer,
+      ffi.Pointer<NSInteger> yearValuePointer,
+      ffi.Pointer<NSInteger> weekValuePointer,
+      ffi.Pointer<NSInteger> weekdayValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_1,
+        eraValuePointer,
+        yearValuePointer,
+        weekValuePointer,
+        weekdayValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  void getHour_minute_second_nanosecond_fromDate_(
+      ffi.Pointer<NSInteger> hourValuePointer,
+      ffi.Pointer<NSInteger> minuteValuePointer,
+      ffi.Pointer<NSInteger> secondValuePointer,
+      ffi.Pointer<NSInteger> nanosecondValuePointer,
+      NSDate? date) {
+    return _lib._objc_msgSend_679(
+        _id,
+        _lib._sel_getHour_minute_second_nanosecond_fromDate_1,
+        hourValuePointer,
+        minuteValuePointer,
+        secondValuePointer,
+        nanosecondValuePointer,
+        date?._id ?? ffi.nullptr);
+  }
+
+  int component_fromDate_(int unit, NSDate? date) {
+    return _lib._objc_msgSend_680(
+        _id, _lib._sel_component_fromDate_1, unit, date?._id ?? ffi.nullptr);
+  }
+
+  NSDate dateWithEra_year_month_day_hour_minute_second_nanosecond_(
+      int eraValue,
+      int yearValue,
+      int monthValue,
+      int dayValue,
+      int hourValue,
+      int minuteValue,
+      int secondValue,
+      int nanosecondValue) {
+    final _ret = _lib._objc_msgSend_681(
+        _id,
+        _lib._sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_1,
+        eraValue,
+        yearValue,
+        monthValue,
+        dayValue,
+        hourValue,
+        minuteValue,
+        secondValue,
+        nanosecondValue);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate
+      dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_(
+          int eraValue,
+          int yearValue,
+          int weekValue,
+          int weekdayValue,
+          int hourValue,
+          int minuteValue,
+          int secondValue,
+          int nanosecondValue) {
+    final _ret = _lib._objc_msgSend_681(
+        _id,
+        _lib._sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_1,
+        eraValue,
+        yearValue,
+        weekValue,
+        weekdayValue,
+        hourValue,
+        minuteValue,
+        secondValue,
+        nanosecondValue);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate startOfDayForDate_(NSDate? date) {
+    final _ret = _lib._objc_msgSend_152(
+        _id, _lib._sel_startOfDayForDate_1, date?._id ?? ffi.nullptr);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDateComponents componentsInTimeZone_fromDate_(
+      NSTimeZone? timezone, NSDate? date) {
+    final _ret = _lib._objc_msgSend_682(
+        _id,
+        _lib._sel_componentsInTimeZone_fromDate_1,
+        timezone?._id ?? ffi.nullptr,
+        date?._id ?? ffi.nullptr);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  int compareDate_toDate_toUnitGranularity_(
+      NSDate? date1, NSDate? date2, int unit) {
+    return _lib._objc_msgSend_683(
+        _id,
+        _lib._sel_compareDate_toDate_toUnitGranularity_1,
+        date1?._id ?? ffi.nullptr,
+        date2?._id ?? ffi.nullptr,
+        unit);
+  }
+
+  bool isDate_equalToDate_toUnitGranularity_(
+      NSDate? date1, NSDate? date2, int unit) {
+    return _lib._objc_msgSend_684(
+        _id,
+        _lib._sel_isDate_equalToDate_toUnitGranularity_1,
+        date1?._id ?? ffi.nullptr,
+        date2?._id ?? ffi.nullptr,
+        unit);
+  }
+
+  bool isDate_inSameDayAsDate_(NSDate? date1, NSDate? date2) {
+    return _lib._objc_msgSend_685(_id, _lib._sel_isDate_inSameDayAsDate_1,
+        date1?._id ?? ffi.nullptr, date2?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInToday_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInToday_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInYesterday_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInYesterday_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInTomorrow_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInTomorrow_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool isDateInWeekend_(NSDate? date) {
+    return _lib._objc_msgSend_154(
+        _id, _lib._sel_isDateInWeekend_1, date?._id ?? ffi.nullptr);
+  }
+
+  bool rangeOfWeekendStartDate_interval_containingDate_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      NSDate? date) {
+    return _lib._objc_msgSend_686(
+        _id,
+        _lib._sel_rangeOfWeekendStartDate_interval_containingDate_1,
+        datep,
+        tip,
+        date?._id ?? ffi.nullptr);
+  }
+
+  bool nextWeekendStartDate_interval_options_afterDate_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> datep,
+      ffi.Pointer<NSTimeInterval> tip,
+      int options,
+      NSDate? date) {
+    return _lib._objc_msgSend_687(
+        _id,
+        _lib._sel_nextWeekendStartDate_interval_options_afterDate_1,
+        datep,
+        tip,
+        options,
+        date?._id ?? ffi.nullptr);
+  }
+
+  NSDateComponents components_fromDateComponents_toDateComponents_options_(
+      int unitFlags,
+      NSDateComponents? startingDateComp,
+      NSDateComponents? resultDateComp,
+      int options) {
+    final _ret = _lib._objc_msgSend_688(
+        _id,
+        _lib._sel_components_fromDateComponents_toDateComponents_options_1,
+        unitFlags,
+        startingDateComp?._id ?? ffi.nullptr,
+        resultDateComp?._id ?? ffi.nullptr,
+        options);
+    return NSDateComponents._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateByAddingUnit_value_toDate_options_(
+      int unit, int value, NSDate? date, int options) {
+    final _ret = _lib._objc_msgSend_689(
+        _id,
+        _lib._sel_dateByAddingUnit_value_toDate_options_1,
+        unit,
+        value,
+        date?._id ?? ffi.nullptr,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_(
+      NSDate? start, NSDateComponents? comps, int opts, ObjCBlock28 block) {
+    return _lib._objc_msgSend_690(
+        _id,
+        _lib._sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_1,
+        start?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr,
+        opts,
+        block._id);
+  }
+
+  NSDate nextDateAfterDate_matchingComponents_options_(
+      NSDate? date, NSDateComponents? comps, int options) {
+    final _ret = _lib._objc_msgSend_691(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingComponents_options_1,
+        date?._id ?? ffi.nullptr,
+        comps?._id ?? ffi.nullptr,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate nextDateAfterDate_matchingUnit_value_options_(
+      NSDate? date, int unit, int value, int options) {
+    final _ret = _lib._objc_msgSend_692(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingUnit_value_options_1,
+        date?._id ?? ffi.nullptr,
+        unit,
+        value,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate nextDateAfterDate_matchingHour_minute_second_options_(NSDate? date,
+      int hourValue, int minuteValue, int secondValue, int options) {
+    final _ret = _lib._objc_msgSend_693(
+        _id,
+        _lib._sel_nextDateAfterDate_matchingHour_minute_second_options_1,
+        date?._id ?? ffi.nullptr,
+        hourValue,
+        minuteValue,
+        secondValue,
+        options);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateBySettingUnit_value_ofDate_options_(
+      int unit, int v, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_689(
+        _id,
+        _lib._sel_dateBySettingUnit_value_ofDate_options_1,
+        unit,
+        v,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate dateBySettingHour_minute_second_ofDate_options_(
+      int h, int m, int s, NSDate? date, int opts) {
+    final _ret = _lib._objc_msgSend_694(
+        _id,
+        _lib._sel_dateBySettingHour_minute_second_ofDate_options_1,
+        h,
+        m,
+        s,
+        date?._id ?? ffi.nullptr,
+        opts);
+    return NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool date_matchesComponents_(NSDate? date, NSDateComponents? components) {
+    return _lib._objc_msgSend_695(_id, _lib._sel_date_matchesComponents_1,
+        date?._id ?? ffi.nullptr, components?._id ?? ffi.nullptr);
+  }
+
+  static NSCalendar new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSCalendar1, _lib._sel_new1);
+    return NSCalendar._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCalendar alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCalendar1, _lib._sel_alloc1);
+    return NSCalendar._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCalendar1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCalendar1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendar1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCalendar1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCalendar1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCalendar1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCalendar1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSCalendar1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCalendar1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSCalendarIdentifier = ffi.Pointer<ObjCObject>;
+
+abstract class NSCalendarUnit {
+  static const int NSCalendarUnitEra = 2;
+  static const int NSCalendarUnitYear = 4;
+  static const int NSCalendarUnitMonth = 8;
+  static const int NSCalendarUnitDay = 16;
+  static const int NSCalendarUnitHour = 32;
+  static const int NSCalendarUnitMinute = 64;
+  static const int NSCalendarUnitSecond = 128;
+  static const int NSCalendarUnitWeekday = 512;
+  static const int NSCalendarUnitWeekdayOrdinal = 1024;
+  static const int NSCalendarUnitQuarter = 2048;
+  static const int NSCalendarUnitWeekOfMonth = 4096;
+  static const int NSCalendarUnitWeekOfYear = 8192;
+  static const int NSCalendarUnitYearForWeekOfYear = 16384;
+  static const int NSCalendarUnitNanosecond = 32768;
+  static const int NSCalendarUnitCalendar = 1048576;
+  static const int NSCalendarUnitTimeZone = 2097152;
+  static const int NSEraCalendarUnit = 2;
+  static const int NSYearCalendarUnit = 4;
+  static const int NSMonthCalendarUnit = 8;
+  static const int NSDayCalendarUnit = 16;
+  static const int NSHourCalendarUnit = 32;
+  static const int NSMinuteCalendarUnit = 64;
+  static const int NSSecondCalendarUnit = 128;
+  static const int NSWeekCalendarUnit = 256;
+  static const int NSWeekdayCalendarUnit = 512;
+  static const int NSWeekdayOrdinalCalendarUnit = 1024;
+  static const int NSQuarterCalendarUnit = 2048;
+  static const int NSWeekOfMonthCalendarUnit = 4096;
+  static const int NSWeekOfYearCalendarUnit = 8192;
+  static const int NSYearForWeekOfYearCalendarUnit = 16384;
+  static const int NSCalendarCalendarUnit = 1048576;
+  static const int NSTimeZoneCalendarUnit = 2097152;
+}
+
+class NSDateComponents extends NSObject {
+  NSDateComponents._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDateComponents] that points to the same underlying object as [other].
+  static NSDateComponents castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDateComponents._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDateComponents] that wraps the given raw object pointer.
+  static NSDateComponents castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDateComponents._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDateComponents].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDateComponents1);
+  }
+
+  NSCalendar? get calendar {
+    final _ret = _lib._objc_msgSend_665(_id, _lib._sel_calendar1);
+    return _ret.address == 0
+        ? null
+        : NSCalendar._(_ret, _lib, retain: true, release: true);
+  }
+
+  set calendar(NSCalendar? value) {
+    _lib._objc_msgSend_671(
+        _id, _lib._sel_setCalendar_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  set timeZone(NSTimeZone? value) {
+    _lib._objc_msgSend_163(
+        _id, _lib._sel_setTimeZone_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get era {
+    return _lib._objc_msgSend_78(_id, _lib._sel_era1);
+  }
+
+  set era(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setEra_1, value);
+  }
+
+  int get year {
+    return _lib._objc_msgSend_78(_id, _lib._sel_year1);
+  }
+
+  set year(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setYear_1, value);
+  }
+
+  int get month {
+    return _lib._objc_msgSend_78(_id, _lib._sel_month1);
+  }
+
+  set month(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMonth_1, value);
+  }
+
+  int get day {
+    return _lib._objc_msgSend_78(_id, _lib._sel_day1);
+  }
+
+  set day(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setDay_1, value);
+  }
+
+  int get hour {
+    return _lib._objc_msgSend_78(_id, _lib._sel_hour1);
+  }
+
+  set hour(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setHour_1, value);
+  }
+
+  int get minute {
+    return _lib._objc_msgSend_78(_id, _lib._sel_minute1);
+  }
+
+  set minute(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMinute_1, value);
+  }
+
+  int get second {
+    return _lib._objc_msgSend_78(_id, _lib._sel_second1);
+  }
+
+  set second(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setSecond_1, value);
+  }
+
+  int get nanosecond {
+    return _lib._objc_msgSend_78(_id, _lib._sel_nanosecond1);
+  }
+
+  set nanosecond(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setNanosecond_1, value);
+  }
+
+  int get weekday {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekday1);
+  }
+
+  set weekday(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekday_1, value);
+  }
+
+  int get weekdayOrdinal {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekdayOrdinal1);
+  }
+
+  set weekdayOrdinal(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekdayOrdinal_1, value);
+  }
+
+  int get quarter {
+    return _lib._objc_msgSend_78(_id, _lib._sel_quarter1);
+  }
+
+  set quarter(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setQuarter_1, value);
+  }
+
+  int get weekOfMonth {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekOfMonth1);
+  }
+
+  set weekOfMonth(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekOfMonth_1, value);
+  }
+
+  int get weekOfYear {
+    return _lib._objc_msgSend_78(_id, _lib._sel_weekOfYear1);
+  }
+
+  set weekOfYear(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setWeekOfYear_1, value);
+  }
+
+  int get yearForWeekOfYear {
+    return _lib._objc_msgSend_78(_id, _lib._sel_yearForWeekOfYear1);
+  }
+
+  set yearForWeekOfYear(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setYearForWeekOfYear_1, value);
+  }
+
+  bool get leapMonth {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLeapMonth1);
+  }
+
+  set leapMonth(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLeapMonth_1, value);
+  }
+
+  NSDate? get date {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_date1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  int week() {
+    return _lib._objc_msgSend_78(_id, _lib._sel_week1);
+  }
+
+  void setWeek_(int v) {
+    return _lib._objc_msgSend_374(_id, _lib._sel_setWeek_1, v);
+  }
+
+  void setValue_forComponent_(int value, int unit) {
+    return _lib._objc_msgSend_672(
+        _id, _lib._sel_setValue_forComponent_1, value, unit);
+  }
+
+  int valueForComponent_(int unit) {
+    return _lib._objc_msgSend_673(_id, _lib._sel_valueForComponent_1, unit);
+  }
+
+  bool get validDate {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isValidDate1);
+  }
+
+  bool isValidDateInCalendar_(NSCalendar? calendar) {
+    return _lib._objc_msgSend_674(
+        _id, _lib._sel_isValidDateInCalendar_1, calendar?._id ?? ffi.nullptr);
+  }
+
+  static NSDateComponents new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateComponents1, _lib._sel_new1);
+    return NSDateComponents._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDateComponents alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSDateComponents1, _lib._sel_alloc1);
+    return NSDateComponents._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDateComponents1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDateComponents1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDateComponents1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDateComponents1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDateComponents1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDateComponents1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDateComponents1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDateComponents1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDateComponents1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSCalendarOptions {
+  static const int NSCalendarWrapComponents = 1;
+  static const int NSCalendarMatchStrictly = 2;
+  static const int NSCalendarSearchBackwards = 4;
+  static const int NSCalendarMatchPreviousTimePreservingSmallerUnits = 256;
+  static const int NSCalendarMatchNextTimePreservingSmallerUnits = 512;
+  static const int NSCalendarMatchNextTime = 1024;
+  static const int NSCalendarMatchFirst = 4096;
+  static const int NSCalendarMatchLast = 8192;
+}
+
+void _ObjCBlock28_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock28_closureRegistry = <int, Function>{};
+int _ObjCBlock28_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock28_registerClosure(Function fn) {
+  final id = ++_ObjCBlock28_closureRegistryIndex;
+  _ObjCBlock28_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock28_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock28_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock28 extends _ObjCBlockBase {
+  ObjCBlock28._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock28.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock28_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock28.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock28_closureTrampoline)
+                    .cast(),
+                _ObjCBlock28_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSNumberFormatter extends NSFormatter {
+  NSNumberFormatter._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNumberFormatter] that points to the same underlying object as [other].
+  static NSNumberFormatter castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNumberFormatter._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSNumberFormatter] that wraps the given raw object pointer.
+  static NSNumberFormatter castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNumberFormatter._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNumberFormatter].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSNumberFormatter1);
+  }
+
+  int get formattingContext {
+    return _lib._objc_msgSend_655(_id, _lib._sel_formattingContext1);
+  }
+
+  set formattingContext(int value) {
+    _lib._objc_msgSend_656(_id, _lib._sel_setFormattingContext_1, value);
+  }
+
+  bool getObjectValue_forString_range_error_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> obj,
+      NSString? string,
+      ffi.Pointer<NSRange> rangep,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_657(
+        _id,
+        _lib._sel_getObjectValue_forString_range_error_1,
+        obj,
+        string?._id ?? ffi.nullptr,
+        rangep,
+        error);
+  }
+
+  NSString stringFromNumber_(NSNumber? number) {
+    final _ret = _lib._objc_msgSend_697(
+        _id, _lib._sel_stringFromNumber_1, number?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNumber numberFromString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_698(
+        _id, _lib._sel_numberFromString_1, string?._id ?? ffi.nullptr);
+    return NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localizedStringFromNumber_numberStyle_(
+      SwiftLibrary _lib, NSNumber? num, int nstyle) {
+    final _ret = _lib._objc_msgSend_699(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_localizedStringFromNumber_numberStyle_1,
+        num?._id ?? ffi.nullptr,
+        nstyle);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static int defaultFormatterBehavior(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_700(
+        _lib._class_NSNumberFormatter1, _lib._sel_defaultFormatterBehavior1);
+  }
+
+  static void setDefaultFormatterBehavior_(SwiftLibrary _lib, int behavior) {
+    return _lib._objc_msgSend_701(_lib._class_NSNumberFormatter1,
+        _lib._sel_setDefaultFormatterBehavior_1, behavior);
+  }
+
+  int get numberStyle {
+    return _lib._objc_msgSend_702(_id, _lib._sel_numberStyle1);
+  }
+
+  set numberStyle(int value) {
+    _lib._objc_msgSend_703(_id, _lib._sel_setNumberStyle_1, value);
+  }
+
+  NSLocale? get locale {
+    final _ret = _lib._objc_msgSend_176(_id, _lib._sel_locale1);
+    return _ret.address == 0
+        ? null
+        : NSLocale._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSLocale? value) {
+    _lib._objc_msgSend_664(
+        _id, _lib._sel_setLocale_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get generatesDecimalNumbers {
+    return _lib._objc_msgSend_12(_id, _lib._sel_generatesDecimalNumbers1);
+  }
+
+  set generatesDecimalNumbers(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setGeneratesDecimalNumbers_1, value);
+  }
+
+  int get formatterBehavior {
+    return _lib._objc_msgSend_700(_id, _lib._sel_formatterBehavior1);
+  }
+
+  set formatterBehavior(int value) {
+    _lib._objc_msgSend_704(_id, _lib._sel_setFormatterBehavior_1, value);
+  }
+
+  NSString? get negativeFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNegativeValues {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNegativeValues1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNegativeValues(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForNegativeValues_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveFormat {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveFormat1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveFormat(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForPositiveValues {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForPositiveValues1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForPositiveValues(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForPositiveValues_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get allowsFloats {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsFloats1);
+  }
+
+  set allowsFloats(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsFloats_1, value);
+  }
+
+  NSString? get decimalSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_decimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set decimalSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setDecimalSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get alwaysShowsDecimalSeparator {
+    return _lib._objc_msgSend_12(_id, _lib._sel_alwaysShowsDecimalSeparator1);
+  }
+
+  set alwaysShowsDecimalSeparator(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAlwaysShowsDecimalSeparator_1, value);
+  }
+
+  NSString? get currencyDecimalSeparator {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_currencyDecimalSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyDecimalSeparator(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setCurrencyDecimalSeparator_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get usesGroupingSeparator {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesGroupingSeparator1);
+  }
+
+  set usesGroupingSeparator(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesGroupingSeparator_1, value);
+  }
+
+  NSString? get groupingSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_groupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set groupingSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setGroupingSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get zeroSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_zeroSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set zeroSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setZeroSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForZero {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForZero1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForZero(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setTextAttributesForZero_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get nilSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_nilSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set nilSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNilSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNil {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNil1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNil(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setTextAttributesForNil_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get notANumberSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_notANumberSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set notANumberSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNotANumberSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNotANumber {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_textAttributesForNotANumber1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNotANumber(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setTextAttributesForNotANumber_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveInfinitySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveInfinitySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveInfinitySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveInfinitySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForPositiveInfinity {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_textAttributesForPositiveInfinity1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForPositiveInfinity(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id,
+        _lib._sel_setTextAttributesForPositiveInfinity_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativeInfinitySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeInfinitySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeInfinitySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeInfinitySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get textAttributesForNegativeInfinity {
+    final _ret = _lib._objc_msgSend_164(
+        _id, _lib._sel_textAttributesForNegativeInfinity1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set textAttributesForNegativeInfinity(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id,
+        _lib._sel_setTextAttributesForNegativeInfinity_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positivePrefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positivePrefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positivePrefix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositivePrefix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get positiveSuffix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_positiveSuffix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set positiveSuffix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPositiveSuffix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativePrefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativePrefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativePrefix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativePrefix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get negativeSuffix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_negativeSuffix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set negativeSuffix(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNegativeSuffix_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencyCode {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencyCode1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyCode(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrencyCode_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencySymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencySymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrencySymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get internationalCurrencySymbol {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_internationalCurrencySymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set internationalCurrencySymbol(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setInternationalCurrencySymbol_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get percentSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_percentSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set percentSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPercentSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get perMillSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_perMillSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set perMillSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPerMillSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get minusSign {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_minusSign1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set minusSign(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setMinusSign_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get plusSign {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_plusSign1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set plusSign(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPlusSign_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get exponentSymbol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_exponentSymbol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set exponentSymbol(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setExponentSymbol_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get groupingSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_groupingSize1);
+  }
+
+  set groupingSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setGroupingSize_1, value);
+  }
+
+  int get secondaryGroupingSize {
+    return _lib._objc_msgSend_10(_id, _lib._sel_secondaryGroupingSize1);
+  }
+
+  set secondaryGroupingSize(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setSecondaryGroupingSize_1, value);
+  }
+
+  NSNumber? get multiplier {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_multiplier1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set multiplier(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMultiplier_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get formatWidth {
+    return _lib._objc_msgSend_10(_id, _lib._sel_formatWidth1);
+  }
+
+  set formatWidth(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setFormatWidth_1, value);
+  }
+
+  NSString? get paddingCharacter {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_paddingCharacter1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set paddingCharacter(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPaddingCharacter_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get paddingPosition {
+    return _lib._objc_msgSend_706(_id, _lib._sel_paddingPosition1);
+  }
+
+  set paddingPosition(int value) {
+    _lib._objc_msgSend_707(_id, _lib._sel_setPaddingPosition_1, value);
+  }
+
+  int get roundingMode {
+    return _lib._objc_msgSend_708(_id, _lib._sel_roundingMode1);
+  }
+
+  set roundingMode(int value) {
+    _lib._objc_msgSend_709(_id, _lib._sel_setRoundingMode_1, value);
+  }
+
+  NSNumber? get roundingIncrement {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_roundingIncrement1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set roundingIncrement(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setRoundingIncrement_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get minimumIntegerDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumIntegerDigits1);
+  }
+
+  set minimumIntegerDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumIntegerDigits_1, value);
+  }
+
+  int get maximumIntegerDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumIntegerDigits1);
+  }
+
+  set maximumIntegerDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumIntegerDigits_1, value);
+  }
+
+  int get minimumFractionDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumFractionDigits1);
+  }
+
+  set minimumFractionDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumFractionDigits_1, value);
+  }
+
+  int get maximumFractionDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumFractionDigits1);
+  }
+
+  set maximumFractionDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumFractionDigits_1, value);
+  }
+
+  NSNumber? get minimum {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_minimum1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set minimum(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMinimum_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSNumber? get maximum {
+    final _ret = _lib._objc_msgSend_192(_id, _lib._sel_maximum1);
+    return _ret.address == 0
+        ? null
+        : NSNumber._(_ret, _lib, retain: true, release: true);
+  }
+
+  set maximum(NSNumber? value) {
+    _lib._objc_msgSend_705(
+        _id, _lib._sel_setMaximum_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currencyGroupingSeparator {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_currencyGroupingSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currencyGroupingSeparator(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setCurrencyGroupingSeparator_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get lenient {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLenient1);
+  }
+
+  set lenient(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLenient_1, value);
+  }
+
+  bool get usesSignificantDigits {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesSignificantDigits1);
+  }
+
+  set usesSignificantDigits(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesSignificantDigits_1, value);
+  }
+
+  int get minimumSignificantDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_minimumSignificantDigits1);
+  }
+
+  set minimumSignificantDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMinimumSignificantDigits_1, value);
+  }
+
+  int get maximumSignificantDigits {
+    return _lib._objc_msgSend_10(_id, _lib._sel_maximumSignificantDigits1);
+  }
+
+  set maximumSignificantDigits(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMaximumSignificantDigits_1, value);
+  }
+
+  bool get partialStringValidationEnabled {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_isPartialStringValidationEnabled1);
+  }
+
+  set partialStringValidationEnabled(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setPartialStringValidationEnabled_1, value);
+  }
+
+  bool get hasThousandSeparators {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasThousandSeparators1);
+  }
+
+  set hasThousandSeparators(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHasThousandSeparators_1, value);
+  }
+
+  NSString? get thousandSeparator {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_thousandSeparator1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set thousandSeparator(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setThousandSeparator_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get localizesFormat {
+    return _lib._objc_msgSend_12(_id, _lib._sel_localizesFormat1);
+  }
+
+  set localizesFormat(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setLocalizesFormat_1, value);
+  }
+
+  NSString? get format {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_format1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set format(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setFormat_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForZero {
+    final _ret =
+        _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForZero1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForZero(NSAttributedString? value) {
+    _lib._objc_msgSend_710(
+        _id, _lib._sel_setAttributedStringForZero_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForNil {
+    final _ret = _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForNil1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForNil(NSAttributedString? value) {
+    _lib._objc_msgSend_710(
+        _id, _lib._sel_setAttributedStringForNil_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSAttributedString? get attributedStringForNotANumber {
+    final _ret =
+        _lib._objc_msgSend_640(_id, _lib._sel_attributedStringForNotANumber1);
+    return _ret.address == 0
+        ? null
+        : NSAttributedString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributedStringForNotANumber(NSAttributedString? value) {
+    _lib._objc_msgSend_710(_id, _lib._sel_setAttributedStringForNotANumber_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  NSDecimalNumberHandler? get roundingBehavior {
+    final _ret = _lib._objc_msgSend_711(_id, _lib._sel_roundingBehavior1);
+    return _ret.address == 0
+        ? null
+        : NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  set roundingBehavior(NSDecimalNumberHandler? value) {
+    _lib._objc_msgSend_713(
+        _id, _lib._sel_setRoundingBehavior_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSNumberFormatter new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNumberFormatter1, _lib._sel_new1);
+    return NSNumberFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNumberFormatter alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNumberFormatter1, _lib._sel_alloc1);
+    return NSNumberFormatter._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNumberFormatter1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSNumberFormatter1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNumberFormatter1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNumberFormatter1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSNumberFormatter1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNumberFormatter1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSNumberFormatterStyle {
+  static const int NSNumberFormatterNoStyle = 0;
+  static const int NSNumberFormatterDecimalStyle = 1;
+  static const int NSNumberFormatterCurrencyStyle = 2;
+  static const int NSNumberFormatterPercentStyle = 3;
+  static const int NSNumberFormatterScientificStyle = 4;
+  static const int NSNumberFormatterSpellOutStyle = 5;
+  static const int NSNumberFormatterOrdinalStyle = 6;
+  static const int NSNumberFormatterCurrencyISOCodeStyle = 8;
+  static const int NSNumberFormatterCurrencyPluralStyle = 9;
+  static const int NSNumberFormatterCurrencyAccountingStyle = 10;
+}
+
+abstract class NSNumberFormatterBehavior {
+  static const int NSNumberFormatterBehaviorDefault = 0;
+  static const int NSNumberFormatterBehavior10_0 = 1000;
+  static const int NSNumberFormatterBehavior10_4 = 1040;
+}
+
+abstract class NSNumberFormatterPadPosition {
+  static const int NSNumberFormatterPadBeforePrefix = 0;
+  static const int NSNumberFormatterPadAfterPrefix = 1;
+  static const int NSNumberFormatterPadBeforeSuffix = 2;
+  static const int NSNumberFormatterPadAfterSuffix = 3;
+}
+
+abstract class NSNumberFormatterRoundingMode {
+  static const int NSNumberFormatterRoundCeiling = 0;
+  static const int NSNumberFormatterRoundFloor = 1;
+  static const int NSNumberFormatterRoundDown = 2;
+  static const int NSNumberFormatterRoundUp = 3;
+  static const int NSNumberFormatterRoundHalfEven = 4;
+  static const int NSNumberFormatterRoundHalfDown = 5;
+  static const int NSNumberFormatterRoundHalfUp = 6;
+}
+
+class NSDecimalNumberHandler extends NSObject {
+  NSDecimalNumberHandler._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSDecimalNumberHandler] that points to the same underlying object as [other].
+  static NSDecimalNumberHandler castFrom<T extends _ObjCWrapper>(T other) {
+    return NSDecimalNumberHandler._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSDecimalNumberHandler] that wraps the given raw object pointer.
+  static NSDecimalNumberHandler castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSDecimalNumberHandler._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSDecimalNumberHandler].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSDecimalNumberHandler1);
+  }
+
+  static NSDecimalNumberHandler? getDefaultDecimalNumberHandler(
+      SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_711(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_defaultDecimalNumberHandler1);
+    return _ret.address == 0
+        ? null
+        : NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDecimalNumberHandler
+      initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_(
+          int roundingMode,
+          int scale,
+          bool exact,
+          bool overflow,
+          bool underflow,
+          bool divideByZero) {
+    final _ret = _lib._objc_msgSend_712(
+        _id,
+        _lib._sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1,
+        roundingMode,
+        scale,
+        exact,
+        overflow,
+        underflow,
+        divideByZero);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDecimalNumberHandler
+      decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_(
+          SwiftLibrary _lib,
+          int roundingMode,
+          int scale,
+          bool exact,
+          bool overflow,
+          bool underflow,
+          bool divideByZero) {
+    final _ret = _lib._objc_msgSend_712(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_1,
+        roundingMode,
+        scale,
+        exact,
+        overflow,
+        underflow,
+        divideByZero);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDecimalNumberHandler new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_new1);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSDecimalNumberHandler alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_alloc1);
+    return NSDecimalNumberHandler._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSDecimalNumberHandler1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSDecimalNumberHandler1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSDecimalNumberHandler1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSRoundingMode {
+  static const int NSRoundPlain = 0;
+  static const int NSRoundDown = 1;
+  static const int NSRoundUp = 2;
+  static const int NSRoundBankers = 3;
+}
+
+class NSScanner extends NSObject {
+  NSScanner._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSScanner] that points to the same underlying object as [other].
+  static NSScanner castFrom<T extends _ObjCWrapper>(T other) {
+    return NSScanner._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSScanner] that wraps the given raw object pointer.
+  static NSScanner castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSScanner._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSScanner].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSScanner1);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get scanLocation {
+    return _lib._objc_msgSend_10(_id, _lib._sel_scanLocation1);
+  }
+
+  set scanLocation(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setScanLocation_1, value);
+  }
+
+  NSCharacterSet? get charactersToBeSkipped {
+    final _ret = _lib._objc_msgSend_168(_id, _lib._sel_charactersToBeSkipped1);
+    return _ret.address == 0
+        ? null
+        : NSCharacterSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  set charactersToBeSkipped(NSCharacterSet? value) {
+    _lib._objc_msgSend_714(
+        _id, _lib._sel_setCharactersToBeSkipped_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get caseSensitive {
+    return _lib._objc_msgSend_12(_id, _lib._sel_caseSensitive1);
+  }
+
+  set caseSensitive(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setCaseSensitive_1, value);
+  }
+
+  NSObject get locale {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_locale1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set locale(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setLocale_1, value._id);
+  }
+
+  NSScanner initWithString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, string?._id ?? ffi.nullptr);
+    return NSScanner._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool scanInt_(ffi.Pointer<ffi.Int> result) {
+    return _lib._objc_msgSend_715(_id, _lib._sel_scanInt_1, result);
+  }
+
+  bool scanInteger_(ffi.Pointer<NSInteger> result) {
+    return _lib._objc_msgSend_716(_id, _lib._sel_scanInteger_1, result);
+  }
+
+  bool scanLongLong_(ffi.Pointer<ffi.LongLong> result) {
+    return _lib._objc_msgSend_717(_id, _lib._sel_scanLongLong_1, result);
+  }
+
+  bool scanUnsignedLongLong_(ffi.Pointer<ffi.UnsignedLongLong> result) {
+    return _lib._objc_msgSend_718(
+        _id, _lib._sel_scanUnsignedLongLong_1, result);
+  }
+
+  bool scanFloat_(ffi.Pointer<ffi.Float> result) {
+    return _lib._objc_msgSend_719(_id, _lib._sel_scanFloat_1, result);
+  }
+
+  bool scanDouble_(ffi.Pointer<ffi.Double> result) {
+    return _lib._objc_msgSend_720(_id, _lib._sel_scanDouble_1, result);
+  }
+
+  bool scanHexInt_(ffi.Pointer<ffi.UnsignedInt> result) {
+    return _lib._objc_msgSend_721(_id, _lib._sel_scanHexInt_1, result);
+  }
+
+  bool scanHexLongLong_(ffi.Pointer<ffi.UnsignedLongLong> result) {
+    return _lib._objc_msgSend_718(_id, _lib._sel_scanHexLongLong_1, result);
+  }
+
+  bool scanHexFloat_(ffi.Pointer<ffi.Float> result) {
+    return _lib._objc_msgSend_719(_id, _lib._sel_scanHexFloat_1, result);
+  }
+
+  bool scanHexDouble_(ffi.Pointer<ffi.Double> result) {
+    return _lib._objc_msgSend_720(_id, _lib._sel_scanHexDouble_1, result);
+  }
+
+  bool scanString_intoString_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_722(_id, _lib._sel_scanString_intoString_1,
+        string?._id ?? ffi.nullptr, result);
+  }
+
+  bool scanCharactersFromSet_intoString_(
+      NSCharacterSet? set, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_723(
+        _id,
+        _lib._sel_scanCharactersFromSet_intoString_1,
+        set?._id ?? ffi.nullptr,
+        result);
+  }
+
+  bool scanUpToString_intoString_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_722(_id, _lib._sel_scanUpToString_intoString_1,
+        string?._id ?? ffi.nullptr, result);
+  }
+
+  bool scanUpToCharactersFromSet_intoString_(
+      NSCharacterSet? set, ffi.Pointer<ffi.Pointer<ObjCObject>> result) {
+    return _lib._objc_msgSend_723(
+        _id,
+        _lib._sel_scanUpToCharactersFromSet_intoString_1,
+        set?._id ?? ffi.nullptr,
+        result);
+  }
+
+  bool get atEnd {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAtEnd1);
+  }
+
+  static NSScanner scannerWithString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSScanner1,
+        _lib._sel_scannerWithString_1, string?._id ?? ffi.nullptr);
+    return NSScanner._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject localizedScannerWithString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSScanner1,
+        _lib._sel_localizedScannerWithString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool scanDecimal_(ffi.Pointer<NSDecimal> dcm) {
+    return _lib._objc_msgSend_724(_id, _lib._sel_scanDecimal_1, dcm);
+  }
+
+  static NSScanner new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScanner1, _lib._sel_new1);
+    return NSScanner._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSScanner alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSScanner1, _lib._sel_alloc1);
+    return NSScanner._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSScanner1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSScanner1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScanner1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSScanner1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSScanner1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSScanner1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSScanner1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSScanner1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSScanner1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSDecimal extends ffi.Opaque {}
+
+class NSException extends NSObject {
+  NSException._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSException] that points to the same underlying object as [other].
+  static NSException castFrom<T extends _ObjCWrapper>(T other) {
+    return NSException._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSException] that wraps the given raw object pointer.
+  static NSException castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSException._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSException].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSException1);
+  }
+
+  static NSException exceptionWithName_reason_userInfo_(SwiftLibrary _lib,
+      NSExceptionName name, NSString? reason, NSDictionary? userInfo) {
+    final _ret = _lib._objc_msgSend_725(
+        _lib._class_NSException1,
+        _lib._sel_exceptionWithName_reason_userInfo_1,
+        name,
+        reason?._id ?? ffi.nullptr,
+        userInfo?._id ?? ffi.nullptr);
+    return NSException._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSException initWithName_reason_userInfo_(
+      NSExceptionName aName, NSString? aReason, NSDictionary? aUserInfo) {
+    final _ret = _lib._objc_msgSend_551(
+        _id,
+        _lib._sel_initWithName_reason_userInfo_1,
+        aName,
+        aReason?._id ?? ffi.nullptr,
+        aUserInfo?._id ?? ffi.nullptr);
+    return NSException._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSExceptionName get name {
+    return _lib._objc_msgSend_20(_id, _lib._sel_name1);
+  }
+
+  NSString? get reason {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_reason1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get callStackReturnAddresses {
+    final _ret =
+        _lib._objc_msgSend_80(_id, _lib._sel_callStackReturnAddresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get callStackSymbols {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_callStackSymbols1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void raise() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_raise1);
+  }
+
+  static void raise_format_(
+      SwiftLibrary _lib, NSExceptionName name, NSString? format) {
+    return _lib._objc_msgSend_483(_lib._class_NSException1,
+        _lib._sel_raise_format_1, name, format?._id ?? ffi.nullptr);
+  }
+
+  static void raise_format_arguments_(SwiftLibrary _lib, NSExceptionName name,
+      NSString? format, ffi.Pointer<__va_list_tag> argList) {
+    return _lib._objc_msgSend_726(
+        _lib._class_NSException1,
+        _lib._sel_raise_format_arguments_1,
+        name,
+        format?._id ?? ffi.nullptr,
+        argList);
+  }
+
+  static NSException new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSException1, _lib._sel_new1);
+    return NSException._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSException alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSException1, _lib._sel_alloc1);
+    return NSException._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSException1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSException1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSException1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSException1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSException1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSException1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSException1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSException1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSException1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSExceptionName = ffi.Pointer<ObjCObject>;
+
+class NSFileHandle extends NSObject {
+  NSFileHandle._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileHandle] that points to the same underlying object as [other].
+  static NSFileHandle castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileHandle._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileHandle] that wraps the given raw object pointer.
+  static NSFileHandle castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileHandle._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileHandle].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileHandle1);
+  }
+
+  NSData? get availableData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_availableData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileHandle initWithFileDescriptor_closeOnDealloc_(int fd, bool closeopt) {
+    final _ret = _lib._objc_msgSend_727(
+        _id, _lib._sel_initWithFileDescriptor_closeOnDealloc_1, fd, closeopt);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileHandle initWithCoder_(NSCoder? coder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, coder?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataToEndOfFileAndReturnError_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_728(
+        _id, _lib._sel_readDataToEndOfFileAndReturnError_1, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataUpToLength_error_(
+      int length, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_729(
+        _id, _lib._sel_readDataUpToLength_error_1, length, error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool writeData_error_(
+      NSData? data, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_730(
+        _id, _lib._sel_writeData_error_1, data?._id ?? ffi.nullptr, error);
+  }
+
+  bool getOffset_error_(ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_731(
+        _id, _lib._sel_getOffset_error_1, offsetInFile, error);
+  }
+
+  bool seekToEndReturningOffset_error_(
+      ffi.Pointer<ffi.UnsignedLongLong> offsetInFile,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_731(
+        _id, _lib._sel_seekToEndReturningOffset_error_1, offsetInFile, error);
+  }
+
+  bool seekToOffset_error_(
+      int offset, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_732(
+        _id, _lib._sel_seekToOffset_error_1, offset, error);
+  }
+
+  bool truncateAtOffset_error_(
+      int offset, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_732(
+        _id, _lib._sel_truncateAtOffset_error_1, offset, error);
+  }
+
+  bool synchronizeAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_synchronizeAndReturnError_1, error);
+  }
+
+  bool closeAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_closeAndReturnError_1, error);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardInput(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardInput1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardOutput(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardOutput1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithStandardError(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithStandardError1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle? getFileHandleWithNullDevice(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_733(
+        _lib._class_NSFileHandle1, _lib._sel_fileHandleWithNullDevice1);
+    return _ret.address == 0
+        ? null
+        : NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForReadingAtPath_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForReadingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForWritingAtPath_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForWritingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForUpdatingAtPath_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForUpdatingAtPath_1, path?._id ?? ffi.nullptr);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForReadingFromURL_error_(SwiftLibrary _lib,
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForReadingFromURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForWritingToURL_error_(SwiftLibrary _lib,
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForWritingToURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileHandle fileHandleForUpdatingURL_error_(SwiftLibrary _lib,
+      NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_734(
+        _lib._class_NSFileHandle1,
+        _lib._sel_fileHandleForUpdatingURL_error_1,
+        url?._id ?? ffi.nullptr,
+        error);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  void readInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_readInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void readInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_readInBackgroundAndNotify1);
+  }
+
+  void readToEndOfFileInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_readToEndOfFileInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void readToEndOfFileInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_readToEndOfFileInBackgroundAndNotify1);
+  }
+
+  void acceptConnectionInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_acceptConnectionInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void acceptConnectionInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_acceptConnectionInBackgroundAndNotify1);
+  }
+
+  void waitForDataInBackgroundAndNotifyForModes_(NSArray? modes) {
+    return _lib._objc_msgSend_412(
+        _id,
+        _lib._sel_waitForDataInBackgroundAndNotifyForModes_1,
+        modes?._id ?? ffi.nullptr);
+  }
+
+  void waitForDataInBackgroundAndNotify() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_waitForDataInBackgroundAndNotify1);
+  }
+
+  ObjCBlock29 get readabilityHandler {
+    final _ret = _lib._objc_msgSend_735(_id, _lib._sel_readabilityHandler1);
+    return ObjCBlock29._(_ret, _lib);
+  }
+
+  set readabilityHandler(ObjCBlock29 value) {
+    _lib._objc_msgSend_736(_id, _lib._sel_setReadabilityHandler_1, value._id);
+  }
+
+  ObjCBlock29 get writeabilityHandler {
+    final _ret = _lib._objc_msgSend_735(_id, _lib._sel_writeabilityHandler1);
+    return ObjCBlock29._(_ret, _lib);
+  }
+
+  set writeabilityHandler(ObjCBlock29 value) {
+    _lib._objc_msgSend_736(_id, _lib._sel_setWriteabilityHandler_1, value._id);
+  }
+
+  NSFileHandle initWithFileDescriptor_(int fd) {
+    final _ret =
+        _lib._objc_msgSend_737(_id, _lib._sel_initWithFileDescriptor_1, fd);
+    return NSFileHandle._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get fileDescriptor {
+    return _lib._objc_msgSend_213(_id, _lib._sel_fileDescriptor1);
+  }
+
+  NSData readDataToEndOfFile() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_readDataToEndOfFile1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData readDataOfLength_(int length) {
+    final _ret =
+        _lib._objc_msgSend_315(_id, _lib._sel_readDataOfLength_1, length);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void writeData_(NSData? data) {
+    return _lib._objc_msgSend_248(
+        _id, _lib._sel_writeData_1, data?._id ?? ffi.nullptr);
+  }
+
+  int get offsetInFile {
+    return _lib._objc_msgSend_148(_id, _lib._sel_offsetInFile1);
+  }
+
+  int seekToEndOfFile() {
+    return _lib._objc_msgSend_148(_id, _lib._sel_seekToEndOfFile1);
+  }
+
+  void seekToFileOffset_(int offset) {
+    return _lib._objc_msgSend_738(_id, _lib._sel_seekToFileOffset_1, offset);
+  }
+
+  void truncateFileAtOffset_(int offset) {
+    return _lib._objc_msgSend_738(
+        _id, _lib._sel_truncateFileAtOffset_1, offset);
+  }
+
+  void synchronizeFile() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_synchronizeFile1);
+  }
+
+  void closeFile() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeFile1);
+  }
+
+  static NSFileHandle new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileHandle1, _lib._sel_new1);
+    return NSFileHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileHandle alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileHandle1, _lib._sel_alloc1);
+    return NSFileHandle._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileHandle1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileHandle1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileHandle1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileHandle1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileHandle1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileHandle1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileHandle1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileHandle1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock29_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock29_closureRegistry = <int, Function>{};
+int _ObjCBlock29_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock29_registerClosure(Function fn) {
+  final id = ++_ObjCBlock29_closureRegistryIndex;
+  _ObjCBlock29_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock29_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock29_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock29 extends _ObjCBlockBase {
+  ObjCBlock29._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock29.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock29_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock29.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock29_closureTrampoline)
+                    .cast(),
+                _ObjCBlock29_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSHTTPCookieStorage extends NSObject {
+  NSHTTPCookieStorage._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHTTPCookieStorage] that points to the same underlying object as [other].
+  static NSHTTPCookieStorage castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHTTPCookieStorage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSHTTPCookieStorage] that wraps the given raw object pointer.
+  static NSHTTPCookieStorage castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHTTPCookieStorage._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHTTPCookieStorage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSHTTPCookieStorage1);
+  }
+
+  static NSHTTPCookieStorage? getSharedHTTPCookieStorage(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_739(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_sharedHTTPCookieStorage1);
+    return _ret.address == 0
+        ? null
+        : NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier_(
+      SwiftLibrary _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_740(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_sharedCookieStorageForGroupContainerIdentifier_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get cookies {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_cookies1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCookie_(NSHTTPCookie? cookie) {
+    return _lib._objc_msgSend_743(
+        _id, _lib._sel_setCookie_1, cookie?._id ?? ffi.nullptr);
+  }
+
+  void deleteCookie_(NSHTTPCookie? cookie) {
+    return _lib._objc_msgSend_743(
+        _id, _lib._sel_deleteCookie_1, cookie?._id ?? ffi.nullptr);
+  }
+
+  void removeCookiesSinceDate_(NSDate? date) {
+    return _lib._objc_msgSend_472(
+        _id, _lib._sel_removeCookiesSinceDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  NSArray cookiesForURL_(NSURL? URL) {
+    final _ret = _lib._objc_msgSend_120(
+        _id, _lib._sel_cookiesForURL_1, URL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCookies_forURL_mainDocumentURL_(
+      NSArray? cookies, NSURL? URL, NSURL? mainDocumentURL) {
+    return _lib._objc_msgSend_744(
+        _id,
+        _lib._sel_setCookies_forURL_mainDocumentURL_1,
+        cookies?._id ?? ffi.nullptr,
+        URL?._id ?? ffi.nullptr,
+        mainDocumentURL?._id ?? ffi.nullptr);
+  }
+
+  int get cookieAcceptPolicy {
+    return _lib._objc_msgSend_745(_id, _lib._sel_cookieAcceptPolicy1);
+  }
+
+  set cookieAcceptPolicy(int value) {
+    _lib._objc_msgSend_746(_id, _lib._sel_setCookieAcceptPolicy_1, value);
+  }
+
+  NSArray sortedCookiesUsingDescriptors_(NSArray? sortOrder) {
+    final _ret = _lib._objc_msgSend_63(
+        _id,
+        _lib._sel_sortedCookiesUsingDescriptors_1,
+        sortOrder?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void storeCookies_forTask_(NSArray? cookies, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_766(_id, _lib._sel_storeCookies_forTask_1,
+        cookies?._id ?? ffi.nullptr, task?._id ?? ffi.nullptr);
+  }
+
+  void getCookiesForTask_completionHandler_(
+      NSURLSessionTask? task, ObjCBlock30 completionHandler) {
+    return _lib._objc_msgSend_767(
+        _id,
+        _lib._sel_getCookiesForTask_completionHandler_1,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  static NSHTTPCookieStorage new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookieStorage1, _lib._sel_new1);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHTTPCookieStorage alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_alloc1);
+    return NSHTTPCookieStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHTTPCookieStorage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSHTTPCookieStorage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookieStorage1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSHTTPCookie extends NSObject {
+  NSHTTPCookie._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHTTPCookie] that points to the same underlying object as [other].
+  static NSHTTPCookie castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHTTPCookie._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSHTTPCookie] that wraps the given raw object pointer.
+  static NSHTTPCookie castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHTTPCookie._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHTTPCookie].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSHTTPCookie1);
+  }
+
+  NSHTTPCookie initWithProperties_(NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_143(
+        _id, _lib._sel_initWithProperties_1, properties?._id ?? ffi.nullptr);
+    return NSHTTPCookie._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHTTPCookie cookieWithProperties_(
+      SwiftLibrary _lib, NSDictionary? properties) {
+    final _ret = _lib._objc_msgSend_741(_lib._class_NSHTTPCookie1,
+        _lib._sel_cookieWithProperties_1, properties?._id ?? ffi.nullptr);
+    return NSHTTPCookie._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSDictionary requestHeaderFieldsWithCookies_(
+      SwiftLibrary _lib, NSArray? cookies) {
+    final _ret = _lib._objc_msgSend_443(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_requestHeaderFieldsWithCookies_1,
+        cookies?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSArray cookiesWithResponseHeaderFields_forURL_(
+      SwiftLibrary _lib, NSDictionary? headerFields, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_742(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_cookiesWithResponseHeaderFields_forURL_1,
+        headerFields?._id ?? ffi.nullptr,
+        URL?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get properties {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_properties1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get version {
+    return _lib._objc_msgSend_10(_id, _lib._sel_version1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get value {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_value1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get expiresDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_expiresDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get sessionOnly {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSessionOnly1);
+  }
+
+  NSString? get domain {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get path {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_path1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get secure {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSecure1);
+  }
+
+  bool get HTTPOnly {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isHTTPOnly1);
+  }
+
+  NSString? get comment {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_comment1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get commentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_commentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get portList {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_portList1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSHTTPCookieStringPolicy get sameSitePolicy {
+    return _lib._objc_msgSend_20(_id, _lib._sel_sameSitePolicy1);
+  }
+
+  static NSHTTPCookie new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookie1, _lib._sel_new1);
+    return NSHTTPCookie._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHTTPCookie alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHTTPCookie1, _lib._sel_alloc1);
+    return NSHTTPCookie._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHTTPCookie1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookie1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHTTPCookie1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHTTPCookie1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSHTTPCookie1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHTTPCookie1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSHTTPCookieStringPolicy = ffi.Pointer<ObjCObject>;
+
+abstract class NSHTTPCookieAcceptPolicy {
+  static const int NSHTTPCookieAcceptPolicyAlways = 0;
+  static const int NSHTTPCookieAcceptPolicyNever = 1;
+  static const int NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain = 2;
+}
+
+class NSURLSessionTask extends NSObject {
+  NSURLSessionTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionTask] that points to the same underlying object as [other].
+  static NSURLSessionTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionTask] that wraps the given raw object pointer.
+  static NSURLSessionTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionTask1);
+  }
+
+  int get taskIdentifier {
+    return _lib._objc_msgSend_10(_id, _lib._sel_taskIdentifier1);
+  }
+
+  NSURLRequest? get originalRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_originalRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get currentRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_currentRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLResponse? get response {
+    final _ret = _lib._objc_msgSend_763(_id, _lib._sel_response1);
+    return _ret.address == 0
+        ? null
+        : NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSProgress? get progress {
+    final _ret = _lib._objc_msgSend_577(_id, _lib._sel_progress1);
+    return _ret.address == 0
+        ? null
+        : NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get earliestBeginDate {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_earliestBeginDate1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  set earliestBeginDate(NSDate? value) {
+    _lib._objc_msgSend_493(
+        _id, _lib._sel_setEarliestBeginDate_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get countOfBytesClientExpectsToSend {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesClientExpectsToSend1);
+  }
+
+  set countOfBytesClientExpectsToSend(int value) {
+    _lib._objc_msgSend_585(
+        _id, _lib._sel_setCountOfBytesClientExpectsToSend_1, value);
+  }
+
+  int get countOfBytesClientExpectsToReceive {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesClientExpectsToReceive1);
+  }
+
+  set countOfBytesClientExpectsToReceive(int value) {
+    _lib._objc_msgSend_585(
+        _id, _lib._sel_setCountOfBytesClientExpectsToReceive_1, value);
+  }
+
+  int get countOfBytesSent {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesSent1);
+  }
+
+  int get countOfBytesReceived {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesReceived1);
+  }
+
+  int get countOfBytesExpectedToSend {
+    return _lib._objc_msgSend_584(_id, _lib._sel_countOfBytesExpectedToSend1);
+  }
+
+  int get countOfBytesExpectedToReceive {
+    return _lib._objc_msgSend_584(
+        _id, _lib._sel_countOfBytesExpectedToReceive1);
+  }
+
+  NSString? get taskDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_taskDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set taskDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setTaskDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  int get state {
+    return _lib._objc_msgSend_764(_id, _lib._sel_state1);
+  }
+
+  NSError? get error {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_error1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  void suspend() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_suspend1);
+  }
+
+  void resume() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resume1);
+  }
+
+  double get priority {
+    return _lib._objc_msgSend_215(_id, _lib._sel_priority1);
+  }
+
+  set priority(double value) {
+    _lib._objc_msgSend_765(_id, _lib._sel_setPriority_1, value);
+  }
+
+  bool get prefersIncrementalDelivery {
+    return _lib._objc_msgSend_12(_id, _lib._sel_prefersIncrementalDelivery1);
+  }
+
+  set prefersIncrementalDelivery(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setPrefersIncrementalDelivery_1, value);
+  }
+
+  @override
+  NSURLSessionTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionTask new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionTask1, _lib._sel_new1);
+    return NSURLSessionTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionTask alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionTask1, _lib._sel_alloc1);
+    return NSURLSessionTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLRequest extends NSObject {
+  NSURLRequest._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLRequest] that points to the same underlying object as [other].
+  static NSURLRequest castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLRequest._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLRequest] that wraps the given raw object pointer.
+  static NSURLRequest castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLRequest._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLRequest].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLRequest1);
+  }
+
+  static NSURLRequest requestWithURL_(SwiftLibrary _lib, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSURLRequest1,
+        _lib._sel_requestWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool getSupportsSecureCoding(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_supportsSecureCoding1);
+  }
+
+  static NSURLRequest requestWithURL_cachePolicy_timeoutInterval_(
+      SwiftLibrary _lib, NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _lib._class_NSURLRequest1,
+        _lib._sel_requestWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest initWithURL_(NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest initWithURL_cachePolicy_timeoutInterval_(
+      NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _id,
+        _lib._sel_initWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get cachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_cachePolicy1);
+  }
+
+  double get timeoutInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutInterval1);
+  }
+
+  NSURL? get mainDocumentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_mainDocumentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  bool get assumesHTTP3Capable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_assumesHTTP3Capable1);
+  }
+
+  int get attribution {
+    return _lib._objc_msgSend_750(_id, _lib._sel_attribution1);
+  }
+
+  NSString? get HTTPMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_HTTPMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get allHTTPHeaderFields {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allHTTPHeaderFields1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString valueForHTTPHeaderField_(NSString? field) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_valueForHTTPHeaderField_1, field?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get HTTPBody {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_HTTPBody1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream? get HTTPBodyStream {
+    final _ret = _lib._objc_msgSend_760(_id, _lib._sel_HTTPBodyStream1);
+    return _ret.address == 0
+        ? null
+        : NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get HTTPShouldHandleCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldHandleCookies1);
+  }
+
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  static NSURLRequest new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLRequest1, _lib._sel_new1);
+    return NSURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLRequest alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLRequest1, _lib._sel_alloc1);
+    return NSURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLRequest1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLRequest1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLRequest1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLRequest1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLRequest1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLRequest1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLRequestCachePolicy {
+  static const int NSURLRequestUseProtocolCachePolicy = 0;
+  static const int NSURLRequestReloadIgnoringLocalCacheData = 1;
+  static const int NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4;
+  static const int NSURLRequestReloadIgnoringCacheData = 1;
+  static const int NSURLRequestReturnCacheDataElseLoad = 2;
+  static const int NSURLRequestReturnCacheDataDontLoad = 3;
+  static const int NSURLRequestReloadRevalidatingCacheData = 5;
+}
+
+abstract class NSURLRequestNetworkServiceType {
+  static const int NSURLNetworkServiceTypeDefault = 0;
+  static const int NSURLNetworkServiceTypeVoIP = 1;
+  static const int NSURLNetworkServiceTypeVideo = 2;
+  static const int NSURLNetworkServiceTypeBackground = 3;
+  static const int NSURLNetworkServiceTypeVoice = 4;
+  static const int NSURLNetworkServiceTypeResponsiveData = 6;
+  static const int NSURLNetworkServiceTypeAVStreaming = 8;
+  static const int NSURLNetworkServiceTypeResponsiveAV = 9;
+  static const int NSURLNetworkServiceTypeCallSignaling = 11;
+}
+
+abstract class NSURLRequestAttribution {
+  static const int NSURLRequestAttributionDeveloper = 0;
+  static const int NSURLRequestAttributionUser = 1;
+}
+
+class NSInputStream extends NSStream {
+  NSInputStream._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInputStream] that points to the same underlying object as [other].
+  static NSInputStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInputStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSInputStream] that wraps the given raw object pointer.
+  static NSInputStream castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInputStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInputStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSInputStream1);
+  }
+
+  int read_maxLength_(ffi.Pointer<ffi.Uint8> buffer, int len) {
+    return _lib._objc_msgSend_752(_id, _lib._sel_read_maxLength_1, buffer, len);
+  }
+
+  bool getBuffer_length_(
+      ffi.Pointer<ffi.Pointer<ffi.Uint8>> buffer, ffi.Pointer<NSUInteger> len) {
+    return _lib._objc_msgSend_759(
+        _id, _lib._sel_getBuffer_length_1, buffer, len);
+  }
+
+  bool get hasBytesAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasBytesAvailable1);
+  }
+
+  NSInputStream initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream initWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithURL_1, url?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSInputStream initWithFileAtPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithFileAtPath_1, path?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithData_(SwiftLibrary _lib, NSData? data) {
+    final _ret = _lib._objc_msgSend_242(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithData_1, data?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithFileAtPath_(
+      SwiftLibrary _lib, NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithFileAtPath_1, path?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInputStream inputStreamWithURL_(SwiftLibrary _lib, NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSInputStream1,
+        _lib._sel_inputStreamWithURL_1, url?._id ?? ffi.nullptr);
+    return NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSInputStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSInputStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSInputStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSInputStream new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInputStream1, _lib._sel_new1);
+    return NSInputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInputStream alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInputStream1, _lib._sel_alloc1);
+    return NSInputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInputStream1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInputStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInputStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInputStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInputStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSInputStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInputStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSStream extends NSObject {
+  NSStream._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSStream] that points to the same underlying object as [other].
+  static NSStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSStream] that wraps the given raw object pointer.
+  static NSStream castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSStream1);
+  }
+
+  void open() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_open1);
+  }
+
+  void close() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_close1);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject propertyForKey_(NSStreamPropertyKey key) {
+    final _ret = _lib._objc_msgSend_30(_id, _lib._sel_propertyForKey_1, key);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setProperty_forKey_(NSObject property, NSStreamPropertyKey key) {
+    return _lib._objc_msgSend_225(
+        _id, _lib._sel_setProperty_forKey_1, property._id, key);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  int get streamStatus {
+    return _lib._objc_msgSend_751(_id, _lib._sel_streamStatus1);
+  }
+
+  NSError? get streamError {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_streamError1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSStream new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSStream1, _lib._sel_new1);
+    return NSStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSStream alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSStream1, _lib._sel_alloc1);
+    return NSStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSStream1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+typedef NSStreamPropertyKey = ffi.Pointer<ObjCObject>;
+
+abstract class NSStreamStatus {
+  static const int NSStreamStatusNotOpen = 0;
+  static const int NSStreamStatusOpening = 1;
+  static const int NSStreamStatusOpen = 2;
+  static const int NSStreamStatusReading = 3;
+  static const int NSStreamStatusWriting = 4;
+  static const int NSStreamStatusAtEnd = 5;
+  static const int NSStreamStatusClosed = 6;
+  static const int NSStreamStatusError = 7;
+}
+
+class NSOutputStream extends NSStream {
+  NSOutputStream._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOutputStream] that points to the same underlying object as [other].
+  static NSOutputStream castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOutputStream._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOutputStream] that wraps the given raw object pointer.
+  static NSOutputStream castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOutputStream._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOutputStream].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSOutputStream1);
+  }
+
+  int write_maxLength_(ffi.Pointer<ffi.Uint8> buffer, int len) {
+    return _lib._objc_msgSend_752(
+        _id, _lib._sel_write_maxLength_1, buffer, len);
+  }
+
+  bool get hasSpaceAvailable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasSpaceAvailable1);
+  }
+
+  NSOutputStream initToMemory() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_initToMemory1);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initToBuffer_capacity_(
+      ffi.Pointer<ffi.Uint8> buffer, int capacity) {
+    final _ret = _lib._objc_msgSend_753(
+        _id, _lib._sel_initToBuffer_capacity_1, buffer, capacity);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initWithURL_append_(NSURL? url, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_231(_id, _lib._sel_initWithURL_append_1,
+        url?._id ?? ffi.nullptr, shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOutputStream initToFileAtPath_append_(NSString? path, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_29(_id, _lib._sel_initToFileAtPath_append_1,
+        path?._id ?? ffi.nullptr, shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToMemory(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOutputStream1, _lib._sel_outputStreamToMemory1);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToBuffer_capacity_(
+      SwiftLibrary _lib, ffi.Pointer<ffi.Uint8> buffer, int capacity) {
+    final _ret = _lib._objc_msgSend_753(_lib._class_NSOutputStream1,
+        _lib._sel_outputStreamToBuffer_capacity_1, buffer, capacity);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamToFileAtPath_append_(
+      SwiftLibrary _lib, NSString? path, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_29(
+        _lib._class_NSOutputStream1,
+        _lib._sel_outputStreamToFileAtPath_append_1,
+        path?._id ?? ffi.nullptr,
+        shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOutputStream outputStreamWithURL_append_(
+      SwiftLibrary _lib, NSURL? url, bool shouldAppend) {
+    final _ret = _lib._objc_msgSend_231(
+        _lib._class_NSOutputStream1,
+        _lib._sel_outputStreamWithURL_append_1,
+        url?._id ?? ffi.nullptr,
+        shouldAppend);
+    return NSOutputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void getStreamsToHostWithName_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSString? hostname,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_754(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getStreamsToHostWithName_port_inputStream_outputStream_1,
+        hostname?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getStreamsToHost_port_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      NSHost? host,
+      int port,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_757(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getStreamsToHost_port_inputStream_outputStream_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        inputStream,
+        outputStream);
+  }
+
+  static void getBoundStreamsWithBufferSize_inputStream_outputStream_(
+      SwiftLibrary _lib,
+      int bufferSize,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_758(
+        _lib._class_NSOutputStream1,
+        _lib._sel_getBoundStreamsWithBufferSize_inputStream_outputStream_1,
+        bufferSize,
+        inputStream,
+        outputStream);
+  }
+
+  static NSOutputStream new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOutputStream1, _lib._sel_new1);
+    return NSOutputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOutputStream alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOutputStream1, _lib._sel_alloc1);
+    return NSOutputStream._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOutputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOutputStream1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSOutputStream1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOutputStream1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOutputStream1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOutputStream1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOutputStream1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOutputStream1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOutputStream1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSHost extends NSObject {
+  NSHost._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSHost] that points to the same underlying object as [other].
+  static NSHost castFrom<T extends _ObjCWrapper>(T other) {
+    return NSHost._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSHost] that wraps the given raw object pointer.
+  static NSHost castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSHost._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSHost].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSHost1);
+  }
+
+  static NSHost currentHost(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_currentHost1);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHost hostWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSHost1,
+        _lib._sel_hostWithName_1, name?._id ?? ffi.nullptr);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSHost hostWithAddress_(SwiftLibrary _lib, NSString? address) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSHost1,
+        _lib._sel_hostWithAddress_1, address?._id ?? ffi.nullptr);
+    return NSHost._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool isEqualToHost_(NSHost? aHost) {
+    return _lib._objc_msgSend_755(
+        _id, _lib._sel_isEqualToHost_1, aHost?._id ?? ffi.nullptr);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get names {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_names1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get address {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_address1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get addresses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_addresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localizedName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localizedName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setHostCacheEnabled_(SwiftLibrary _lib, bool flag) {
+    return _lib._objc_msgSend_756(
+        _lib._class_NSHost1, _lib._sel_setHostCacheEnabled_1, flag);
+  }
+
+  static bool isHostCacheEnabled(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_isHostCacheEnabled1);
+  }
+
+  static void flushHostCache(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_1(_lib._class_NSHost1, _lib._sel_flushHostCache1);
+  }
+
+  static NSHost new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_new1);
+    return NSHost._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSHost alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSHost1, _lib._sel_alloc1);
+    return NSHost._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSHost1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSHost1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSHost1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSHost1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSHost1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSHost1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSHost1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSHost1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLResponse extends NSObject {
+  NSURLResponse._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLResponse] that points to the same underlying object as [other].
+  static NSURLResponse castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLResponse._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLResponse] that wraps the given raw object pointer.
+  static NSURLResponse castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLResponse._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLResponse].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLResponse1);
+  }
+
+  NSURLResponse initWithURL_MIMEType_expectedContentLength_textEncodingName_(
+      NSURL? URL, NSString? MIMEType, int length, NSString? name) {
+    final _ret = _lib._objc_msgSend_762(
+        _id,
+        _lib._sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_1,
+        URL?._id ?? ffi.nullptr,
+        MIMEType?._id ?? ffi.nullptr,
+        length,
+        name?._id ?? ffi.nullptr);
+    return NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get MIMEType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_MIMEType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get expectedContentLength {
+    return _lib._objc_msgSend_214(_id, _lib._sel_expectedContentLength1);
+  }
+
+  NSString? get textEncodingName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_textEncodingName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get suggestedFilename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_suggestedFilename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLResponse new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLResponse1, _lib._sel_new1);
+    return NSURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLResponse alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLResponse1, _lib._sel_alloc1);
+    return NSURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLResponse1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLResponse1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLResponse1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLResponse1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLResponse1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLResponse1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLResponse1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLSessionTaskState {
+  static const int NSURLSessionTaskStateRunning = 0;
+  static const int NSURLSessionTaskStateSuspended = 1;
+  static const int NSURLSessionTaskStateCanceling = 2;
+  static const int NSURLSessionTaskStateCompleted = 3;
+}
+
+void _ObjCBlock30_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock30_closureRegistry = <int, Function>{};
+int _ObjCBlock30_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock30_registerClosure(Function fn) {
+  final id = ++_ObjCBlock30_closureRegistryIndex;
+  _ObjCBlock30_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock30_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock30_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock30 extends _ObjCBlockBase {
+  ObjCBlock30._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock30.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock30_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock30.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock30_closureTrampoline)
+                    .cast(),
+                _ObjCBlock30_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSIndexPath extends NSObject {
+  NSIndexPath._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSIndexPath] that points to the same underlying object as [other].
+  static NSIndexPath castFrom<T extends _ObjCWrapper>(T other) {
+    return NSIndexPath._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSIndexPath] that wraps the given raw object pointer.
+  static NSIndexPath castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSIndexPath._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSIndexPath].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSIndexPath1);
+  }
+
+  static NSIndexPath indexPathWithIndex_(SwiftLibrary _lib, int index) {
+    final _ret = _lib._objc_msgSend_60(
+        _lib._class_NSIndexPath1, _lib._sel_indexPathWithIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSIndexPath indexPathWithIndexes_length_(
+      SwiftLibrary _lib, ffi.Pointer<NSUInteger> indexes, int length) {
+    final _ret = _lib._objc_msgSend_768(_lib._class_NSIndexPath1,
+        _lib._sel_indexPathWithIndexes_length_1, indexes, length);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath initWithIndexes_length_(
+      ffi.Pointer<NSUInteger> indexes, int length) {
+    final _ret = _lib._objc_msgSend_768(
+        _id, _lib._sel_initWithIndexes_length_1, indexes, length);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath initWithIndex_(int index) {
+    final _ret = _lib._objc_msgSend_60(_id, _lib._sel_initWithIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath indexPathByAddingIndex_(int index) {
+    final _ret =
+        _lib._objc_msgSend_769(_id, _lib._sel_indexPathByAddingIndex_1, index);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSIndexPath indexPathByRemovingLastIndex() {
+    final _ret =
+        _lib._objc_msgSend_770(_id, _lib._sel_indexPathByRemovingLastIndex1);
+    return NSIndexPath._(_ret, _lib, retain: true, release: true);
+  }
+
+  int indexAtPosition_(int position) {
+    return _lib._objc_msgSend_86(_id, _lib._sel_indexAtPosition_1, position);
+  }
+
+  int get length {
+    return _lib._objc_msgSend_10(_id, _lib._sel_length1);
+  }
+
+  void getIndexes_range_(
+      ffi.Pointer<NSUInteger> indexes, NSRange positionRange) {
+    return _lib._objc_msgSend_771(
+        _id, _lib._sel_getIndexes_range_1, indexes, positionRange);
+  }
+
+  int compare_(NSIndexPath? otherObject) {
+    return _lib._objc_msgSend_772(
+        _id, _lib._sel_compare_1, otherObject?._id ?? ffi.nullptr);
+  }
+
+  void getIndexes_(ffi.Pointer<NSUInteger> indexes) {
+    return _lib._objc_msgSend_773(_id, _lib._sel_getIndexes_1, indexes);
+  }
+
+  static NSIndexPath new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSIndexPath1, _lib._sel_new1);
+    return NSIndexPath._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSIndexPath alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSIndexPath1, _lib._sel_alloc1);
+    return NSIndexPath._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSIndexPath1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSIndexPath1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexPath1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSIndexPath1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSIndexPath1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSIndexPath1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSIndexPath1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSIndexPath1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSIndexPath1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSInflectionRule extends NSObject {
+  NSInflectionRule._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSInflectionRule] that points to the same underlying object as [other].
+  static NSInflectionRule castFrom<T extends _ObjCWrapper>(T other) {
+    return NSInflectionRule._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSInflectionRule] that wraps the given raw object pointer.
+  static NSInflectionRule castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSInflectionRule._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSInflectionRule].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSInflectionRule1);
+  }
+
+  @override
+  NSObject init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSInflectionRule? getAutomaticRule(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_774(
+        _lib._class_NSInflectionRule1, _lib._sel_automaticRule1);
+    return _ret.address == 0
+        ? null
+        : NSInflectionRule._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool canInflectLanguage_(SwiftLibrary _lib, NSString? language) {
+    return _lib._objc_msgSend_59(_lib._class_NSInflectionRule1,
+        _lib._sel_canInflectLanguage_1, language?._id ?? ffi.nullptr);
+  }
+
+  static bool getCanInflectPreferredLocalization(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSInflectionRule1,
+        _lib._sel_canInflectPreferredLocalization1);
+  }
+
+  static NSInflectionRule new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInflectionRule1, _lib._sel_new1);
+    return NSInflectionRule._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSInflectionRule alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSInflectionRule1, _lib._sel_alloc1);
+    return NSInflectionRule._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSInflectionRule1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSInflectionRule1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSInflectionRule1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSInflectionRule1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSInflectionRule1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSInflectionRule1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMorphology extends NSObject {
+  NSMorphology._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMorphology] that points to the same underlying object as [other].
+  static NSMorphology castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMorphology._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSMorphology] that wraps the given raw object pointer.
+  static NSMorphology castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMorphology._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMorphology].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSMorphology1);
+  }
+
+  int get grammaticalGender {
+    return _lib._objc_msgSend_775(_id, _lib._sel_grammaticalGender1);
+  }
+
+  set grammaticalGender(int value) {
+    _lib._objc_msgSend_776(_id, _lib._sel_setGrammaticalGender_1, value);
+  }
+
+  int get partOfSpeech {
+    return _lib._objc_msgSend_777(_id, _lib._sel_partOfSpeech1);
+  }
+
+  set partOfSpeech(int value) {
+    _lib._objc_msgSend_778(_id, _lib._sel_setPartOfSpeech_1, value);
+  }
+
+  int get number {
+    return _lib._objc_msgSend_779(_id, _lib._sel_number1);
+  }
+
+  set number(int value) {
+    _lib._objc_msgSend_780(_id, _lib._sel_setNumber_1, value);
+  }
+
+  NSMorphologyCustomPronoun customPronounForLanguage_(NSString? language) {
+    final _ret = _lib._objc_msgSend_781(_id,
+        _lib._sel_customPronounForLanguage_1, language?._id ?? ffi.nullptr);
+    return NSMorphologyCustomPronoun._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool setCustomPronoun_forLanguage_error_(NSMorphologyCustomPronoun? features,
+      NSString? language, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_782(
+        _id,
+        _lib._sel_setCustomPronoun_forLanguage_error_1,
+        features?._id ?? ffi.nullptr,
+        language?._id ?? ffi.nullptr,
+        error);
+  }
+
+  bool get unspecified {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isUnspecified1);
+  }
+
+  static NSMorphology? getUserMorphology(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_783(
+        _lib._class_NSMorphology1, _lib._sel_userMorphology1);
+    return _ret.address == 0
+        ? null
+        : NSMorphology._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMorphology new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMorphology1, _lib._sel_new1);
+    return NSMorphology._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMorphology alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMorphology1, _lib._sel_alloc1);
+    return NSMorphology._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMorphology1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMorphology1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphology1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphology1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMorphology1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMorphology1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMorphology1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSMorphology1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphology1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSGrammaticalGender {
+  static const int NSGrammaticalGenderNotSet = 0;
+  static const int NSGrammaticalGenderFeminine = 1;
+  static const int NSGrammaticalGenderMasculine = 2;
+  static const int NSGrammaticalGenderNeuter = 3;
+}
+
+abstract class NSGrammaticalPartOfSpeech {
+  static const int NSGrammaticalPartOfSpeechNotSet = 0;
+  static const int NSGrammaticalPartOfSpeechDeterminer = 1;
+  static const int NSGrammaticalPartOfSpeechPronoun = 2;
+  static const int NSGrammaticalPartOfSpeechLetter = 3;
+  static const int NSGrammaticalPartOfSpeechAdverb = 4;
+  static const int NSGrammaticalPartOfSpeechParticle = 5;
+  static const int NSGrammaticalPartOfSpeechAdjective = 6;
+  static const int NSGrammaticalPartOfSpeechAdposition = 7;
+  static const int NSGrammaticalPartOfSpeechVerb = 8;
+  static const int NSGrammaticalPartOfSpeechNoun = 9;
+  static const int NSGrammaticalPartOfSpeechConjunction = 10;
+  static const int NSGrammaticalPartOfSpeechNumeral = 11;
+  static const int NSGrammaticalPartOfSpeechInterjection = 12;
+  static const int NSGrammaticalPartOfSpeechPreposition = 13;
+  static const int NSGrammaticalPartOfSpeechAbbreviation = 14;
+}
+
+abstract class NSGrammaticalNumber {
+  static const int NSGrammaticalNumberNotSet = 0;
+  static const int NSGrammaticalNumberSingular = 1;
+  static const int NSGrammaticalNumberZero = 2;
+  static const int NSGrammaticalNumberPlural = 3;
+  static const int NSGrammaticalNumberPluralTwo = 4;
+  static const int NSGrammaticalNumberPluralFew = 5;
+  static const int NSGrammaticalNumberPluralMany = 6;
+}
+
+class NSMorphologyCustomPronoun extends NSObject {
+  NSMorphologyCustomPronoun._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMorphologyCustomPronoun] that points to the same underlying object as [other].
+  static NSMorphologyCustomPronoun castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMorphologyCustomPronoun._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMorphologyCustomPronoun] that wraps the given raw object pointer.
+  static NSMorphologyCustomPronoun castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMorphologyCustomPronoun._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMorphologyCustomPronoun].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMorphologyCustomPronoun1);
+  }
+
+  static bool isSupportedForLanguage_(SwiftLibrary _lib, NSString? language) {
+    return _lib._objc_msgSend_59(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_isSupportedForLanguage_1, language?._id ?? ffi.nullptr);
+  }
+
+  static NSArray requiredKeysForLanguage_(
+      SwiftLibrary _lib, NSString? language) {
+    final _ret = _lib._objc_msgSend_119(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_requiredKeysForLanguage_1, language?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get subjectForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_subjectForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set subjectForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSubjectForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get objectForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_objectForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set objectForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setObjectForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get possessiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_possessiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set possessiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPossessiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get possessiveAdjectiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_possessiveAdjectiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set possessiveAdjectiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPossessiveAdjectiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get reflexiveForm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_reflexiveForm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set reflexiveForm(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setReflexiveForm_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSMorphologyCustomPronoun new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_new1);
+    return NSMorphologyCustomPronoun._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSMorphologyCustomPronoun alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_alloc1);
+    return NSMorphologyCustomPronoun._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMorphologyCustomPronoun1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSMorphologyCustomPronoun1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperationQueue extends NSObject {
+  NSOperationQueue._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOperationQueue] that points to the same underlying object as [other].
+  static NSOperationQueue castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOperationQueue._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSOperationQueue] that wraps the given raw object pointer.
+  static NSOperationQueue castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOperationQueue._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOperationQueue].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSOperationQueue1);
+  }
+
+  NSProgress? get progress {
+    final _ret = _lib._objc_msgSend_577(_id, _lib._sel_progress1);
+    return _ret.address == 0
+        ? null
+        : NSProgress._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addOperation_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_addOperation_1, op?._id ?? ffi.nullptr);
+  }
+
+  void addOperations_waitUntilFinished_(NSArray? ops, bool wait) {
+    return _lib._objc_msgSend_787(
+        _id,
+        _lib._sel_addOperations_waitUntilFinished_1,
+        ops?._id ?? ffi.nullptr,
+        wait);
+  }
+
+  void addOperationWithBlock_(ObjCBlock16 block) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_addOperationWithBlock_1, block._id);
+  }
+
+  void addBarrierBlock_(ObjCBlock16 barrier) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_addBarrierBlock_1, barrier._id);
+  }
+
+  int get maxConcurrentOperationCount {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maxConcurrentOperationCount1);
+  }
+
+  set maxConcurrentOperationCount(int value) {
+    _lib._objc_msgSend_558(
+        _id, _lib._sel_setMaxConcurrentOperationCount_1, value);
+  }
+
+  bool get suspended {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSuspended1);
+  }
+
+  set suspended(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setSuspended_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  dispatch_queue_t get underlyingQueue {
+    return _lib._objc_msgSend_788(_id, _lib._sel_underlyingQueue1);
+  }
+
+  set underlyingQueue(dispatch_queue_t value) {
+    _lib._objc_msgSend_789(_id, _lib._sel_setUnderlyingQueue_1, value);
+  }
+
+  void cancelAllOperations() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancelAllOperations1);
+  }
+
+  void waitUntilAllOperationsAreFinished() {
+    return _lib._objc_msgSend_1(
+        _id, _lib._sel_waitUntilAllOperationsAreFinished1);
+  }
+
+  static NSOperationQueue? getCurrentQueue(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_790(
+        _lib._class_NSOperationQueue1, _lib._sel_currentQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSOperationQueue? getMainQueue(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_790(
+        _lib._class_NSOperationQueue1, _lib._sel_mainQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get operations {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_operations1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get operationCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_operationCount1);
+  }
+
+  static NSOperationQueue new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperationQueue1, _lib._sel_new1);
+    return NSOperationQueue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOperationQueue alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperationQueue1, _lib._sel_alloc1);
+    return NSOperationQueue._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOperationQueue1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSOperationQueue1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperationQueue1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOperationQueue1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSOperationQueue1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOperationQueue1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperation extends NSObject {
+  NSOperation._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSOperation] that points to the same underlying object as [other].
+  static NSOperation castFrom<T extends _ObjCWrapper>(T other) {
+    return NSOperation._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSOperation] that wraps the given raw object pointer.
+  static NSOperation castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSOperation._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSOperation].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSOperation1);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void main() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_main1);
+  }
+
+  bool get cancelled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isCancelled1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  bool get executing {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExecuting1);
+  }
+
+  bool get finished {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isFinished1);
+  }
+
+  bool get concurrent {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isConcurrent1);
+  }
+
+  bool get asynchronous {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isAsynchronous1);
+  }
+
+  bool get ready {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isReady1);
+  }
+
+  void addDependency_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_addDependency_1, op?._id ?? ffi.nullptr);
+  }
+
+  void removeDependency_(NSOperation? op) {
+    return _lib._objc_msgSend_784(
+        _id, _lib._sel_removeDependency_1, op?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get dependencies {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_dependencies1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get queuePriority {
+    return _lib._objc_msgSend_785(_id, _lib._sel_queuePriority1);
+  }
+
+  set queuePriority(int value) {
+    _lib._objc_msgSend_786(_id, _lib._sel_setQueuePriority_1, value);
+  }
+
+  ObjCBlock16 get completionBlock {
+    final _ret = _lib._objc_msgSend_586(_id, _lib._sel_completionBlock1);
+    return ObjCBlock16._(_ret, _lib);
+  }
+
+  set completionBlock(ObjCBlock16 value) {
+    _lib._objc_msgSend_587(_id, _lib._sel_setCompletionBlock_1, value._id);
+  }
+
+  void waitUntilFinished() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_waitUntilFinished1);
+  }
+
+  double get threadPriority {
+    return _lib._objc_msgSend_149(_id, _lib._sel_threadPriority1);
+  }
+
+  set threadPriority(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setThreadPriority_1, value);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSOperation new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSOperation1, _lib._sel_new1);
+    return NSOperation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSOperation alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSOperation1, _lib._sel_alloc1);
+    return NSOperation._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSOperation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSOperation1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperation1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSOperation1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSOperation1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSOperation1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSOperation1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSOperation1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSOperation1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSOperationQueuePriority {
+  static const int NSOperationQueuePriorityVeryLow = -8;
+  static const int NSOperationQueuePriorityLow = -4;
+  static const int NSOperationQueuePriorityNormal = 0;
+  static const int NSOperationQueuePriorityHigh = 4;
+  static const int NSOperationQueuePriorityVeryHigh = 8;
+}
+
+typedef dispatch_queue_t = ffi.Pointer<ObjCObject>;
+
+class NSPointerArray extends NSObject {
+  NSPointerArray._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPointerArray] that points to the same underlying object as [other].
+  static NSPointerArray castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPointerArray._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSPointerArray] that wraps the given raw object pointer.
+  static NSPointerArray castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPointerArray._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPointerArray].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPointerArray1);
+  }
+
+  NSPointerArray initWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_791(_id, _lib._sel_initWithOptions_1, options);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPointerArray initWithPointerFunctions_(NSPointerFunctions? functions) {
+    final _ret = _lib._objc_msgSend_805(_id,
+        _lib._sel_initWithPointerFunctions_1, functions?._id ?? ffi.nullptr);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray pointerArrayWithOptions_(
+      SwiftLibrary _lib, int options) {
+    final _ret = _lib._objc_msgSend_806(_lib._class_NSPointerArray1,
+        _lib._sel_pointerArrayWithOptions_1, options);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray pointerArrayWithPointerFunctions_(
+      SwiftLibrary _lib, NSPointerFunctions? functions) {
+    final _ret = _lib._objc_msgSend_807(
+        _lib._class_NSPointerArray1,
+        _lib._sel_pointerArrayWithPointerFunctions_1,
+        functions?._id ?? ffi.nullptr);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSPointerFunctions? get pointerFunctions {
+    final _ret = _lib._objc_msgSend_808(_id, _lib._sel_pointerFunctions1);
+    return _ret.address == 0
+        ? null
+        : NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<ffi.Void> pointerAtIndex_(int index) {
+    return _lib._objc_msgSend_809(_id, _lib._sel_pointerAtIndex_1, index);
+  }
+
+  void addPointer_(ffi.Pointer<ffi.Void> pointer) {
+    return _lib._objc_msgSend_47(_id, _lib._sel_addPointer_1, pointer);
+  }
+
+  void removePointerAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removePointerAtIndex_1, index);
+  }
+
+  void insertPointer_atIndex_(ffi.Pointer<ffi.Void> item, int index) {
+    return _lib._objc_msgSend_21(
+        _id, _lib._sel_insertPointer_atIndex_1, item, index);
+  }
+
+  void replacePointerAtIndex_withPointer_(
+      int index, ffi.Pointer<ffi.Void> item) {
+    return _lib._objc_msgSend_810(
+        _id, _lib._sel_replacePointerAtIndex_withPointer_1, index, item);
+  }
+
+  void compact() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_compact1);
+  }
+
+  int get count {
+    return _lib._objc_msgSend_10(_id, _lib._sel_count1);
+  }
+
+  set count(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setCount_1, value);
+  }
+
+  static NSObject pointerArrayWithStrongObjects(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_pointerArrayWithStrongObjects1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject pointerArrayWithWeakObjects(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_pointerArrayWithWeakObjects1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray strongObjectsPointerArray(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_811(
+        _lib._class_NSPointerArray1, _lib._sel_strongObjectsPointerArray1);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray weakObjectsPointerArray(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_811(
+        _lib._class_NSPointerArray1, _lib._sel_weakObjectsPointerArray1);
+    return NSPointerArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get allObjects {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_allObjects1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerArray new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerArray1, _lib._sel_new1);
+    return NSPointerArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPointerArray alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerArray1, _lib._sel_alloc1);
+    return NSPointerArray._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPointerArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPointerArray1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPointerArray1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPointerArray1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPointerArray1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPointerArray1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPointerArray1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSPointerArray1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerArray1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSPointerFunctionsOptions {
+  static const int NSPointerFunctionsStrongMemory = 0;
+  static const int NSPointerFunctionsZeroingWeakMemory = 1;
+  static const int NSPointerFunctionsOpaqueMemory = 2;
+  static const int NSPointerFunctionsMallocMemory = 3;
+  static const int NSPointerFunctionsMachVirtualMemory = 4;
+  static const int NSPointerFunctionsWeakMemory = 5;
+  static const int NSPointerFunctionsObjectPersonality = 0;
+  static const int NSPointerFunctionsOpaquePersonality = 256;
+  static const int NSPointerFunctionsObjectPointerPersonality = 512;
+  static const int NSPointerFunctionsCStringPersonality = 768;
+  static const int NSPointerFunctionsStructPersonality = 1024;
+  static const int NSPointerFunctionsIntegerPersonality = 1280;
+  static const int NSPointerFunctionsCopyIn = 65536;
+}
+
+class NSPointerFunctions extends NSObject {
+  NSPointerFunctions._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSPointerFunctions] that points to the same underlying object as [other].
+  static NSPointerFunctions castFrom<T extends _ObjCWrapper>(T other) {
+    return NSPointerFunctions._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSPointerFunctions] that wraps the given raw object pointer.
+  static NSPointerFunctions castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSPointerFunctions._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSPointerFunctions].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSPointerFunctions1);
+  }
+
+  NSPointerFunctions initWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_791(_id, _lib._sel_initWithOptions_1, options);
+    return NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSPointerFunctions pointerFunctionsWithOptions_(
+      SwiftLibrary _lib, int options) {
+    final _ret = _lib._objc_msgSend_792(_lib._class_NSPointerFunctions1,
+        _lib._sel_pointerFunctionsWithOptions_1, options);
+    return NSPointerFunctions._(_ret, _lib, retain: true, release: true);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              NSUInteger Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get hashFunction {
+    return _lib._objc_msgSend_793(_id, _lib._sel_hashFunction1);
+  }
+
+  set hashFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  NSUInteger Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_794(_id, _lib._sel_setHashFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Bool Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get isEqualFunction {
+    return _lib._objc_msgSend_795(_id, _lib._sel_isEqualFunction1);
+  }
+
+  set isEqualFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Bool Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_796(_id, _lib._sel_setIsEqualFunction_1, value);
+  }
+
+  ffi.Pointer<ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+      get sizeFunction {
+    return _lib._objc_msgSend_797(_id, _lib._sel_sizeFunction1);
+  }
+
+  set sizeFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<NSUInteger Function(ffi.Pointer<ffi.Void>)>>
+          value) {
+    _lib._objc_msgSend_798(_id, _lib._sel_setSizeFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+      get descriptionFunction {
+    return _lib._objc_msgSend_799(_id, _lib._sel_descriptionFunction1);
+  }
+
+  set descriptionFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Void>)>>
+          value) {
+    _lib._objc_msgSend_800(_id, _lib._sel_setDescriptionFunction_1, value);
+  }
+
+  ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ffi.Void>,
+                  ffi.Pointer<
+                      ffi.NativeFunction<
+                          NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+      get relinquishFunction {
+    return _lib._objc_msgSend_801(_id, _lib._sel_relinquishFunction1);
+  }
+
+  set relinquishFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>)>>
+          value) {
+    _lib._objc_msgSend_802(_id, _lib._sel_setRelinquishFunction_1, value);
+  }
+
+  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+              ffi.Bool)>> get acquireFunction {
+    return _lib._objc_msgSend_803(_id, _lib._sel_acquireFunction1);
+  }
+
+  set acquireFunction(
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Pointer<ffi.Void> Function(
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              NSUInteger Function(ffi.Pointer<ffi.Void>)>>,
+                      ffi.Bool)>>
+          value) {
+    _lib._objc_msgSend_804(_id, _lib._sel_setAcquireFunction_1, value);
+  }
+
+  bool get usesStrongWriteBarrier {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesStrongWriteBarrier1);
+  }
+
+  set usesStrongWriteBarrier(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setUsesStrongWriteBarrier_1, value);
+  }
+
+  bool get usesWeakReadAndWriteBarriers {
+    return _lib._objc_msgSend_12(_id, _lib._sel_usesWeakReadAndWriteBarriers1);
+  }
+
+  set usesWeakReadAndWriteBarriers(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setUsesWeakReadAndWriteBarriers_1, value);
+  }
+
+  static NSPointerFunctions new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerFunctions1, _lib._sel_new1);
+    return NSPointerFunctions._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSPointerFunctions alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSPointerFunctions1, _lib._sel_alloc1);
+    return NSPointerFunctions._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSPointerFunctions1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSPointerFunctions1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSPointerFunctions1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSPointerFunctions1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSPointerFunctions1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSPointerFunctions1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSProcessInfo extends NSObject {
+  NSProcessInfo._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProcessInfo] that points to the same underlying object as [other].
+  static NSProcessInfo castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProcessInfo._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSProcessInfo] that wraps the given raw object pointer.
+  static NSProcessInfo castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProcessInfo._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProcessInfo].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSProcessInfo1);
+  }
+
+  static NSProcessInfo? getProcessInfo(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_812(
+        _lib._class_NSProcessInfo1, _lib._sel_processInfo1);
+    return _ret.address == 0
+        ? null
+        : NSProcessInfo._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get environment {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_environment1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get arguments {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get hostName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_hostName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get processName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_processName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set processName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setProcessName_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get processIdentifier {
+    return _lib._objc_msgSend_213(_id, _lib._sel_processIdentifier1);
+  }
+
+  NSString? get globallyUniqueString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_globallyUniqueString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int operatingSystem() {
+    return _lib._objc_msgSend_10(_id, _lib._sel_operatingSystem1);
+  }
+
+  NSString operatingSystemName() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_operatingSystemName1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get operatingSystemVersionString {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_operatingSystemVersionString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOperatingSystemVersion get operatingSystemVersion {
+    return _lib._objc_msgSend_813(_id, _lib._sel_operatingSystemVersion1);
+  }
+
+  int get processorCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_processorCount1);
+  }
+
+  int get activeProcessorCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_activeProcessorCount1);
+  }
+
+  int get physicalMemory {
+    return _lib._objc_msgSend_148(_id, _lib._sel_physicalMemory1);
+  }
+
+  bool isOperatingSystemAtLeastVersion_(NSOperatingSystemVersion version) {
+    return _lib._objc_msgSend_814(
+        _id, _lib._sel_isOperatingSystemAtLeastVersion_1, version);
+  }
+
+  double get systemUptime {
+    return _lib._objc_msgSend_149(_id, _lib._sel_systemUptime1);
+  }
+
+  void disableSuddenTermination() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_disableSuddenTermination1);
+  }
+
+  void enableSuddenTermination() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_enableSuddenTermination1);
+  }
+
+  void disableAutomaticTermination_(NSString? reason) {
+    return _lib._objc_msgSend_186(_id, _lib._sel_disableAutomaticTermination_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  void enableAutomaticTermination_(NSString? reason) {
+    return _lib._objc_msgSend_186(_id, _lib._sel_enableAutomaticTermination_1,
+        reason?._id ?? ffi.nullptr);
+  }
+
+  bool get automaticTerminationSupportEnabled {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_automaticTerminationSupportEnabled1);
+  }
+
+  set automaticTerminationSupportEnabled(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAutomaticTerminationSupportEnabled_1, value);
+  }
+
+  NSObject beginActivityWithOptions_reason_(int options, NSString? reason) {
+    final _ret = _lib._objc_msgSend_815(
+        _id,
+        _lib._sel_beginActivityWithOptions_reason_1,
+        options,
+        reason?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  void endActivity_(NSObject? activity) {
+    return _lib._objc_msgSend_15(
+        _id, _lib._sel_endActivity_1, activity?._id ?? ffi.nullptr);
+  }
+
+  void performActivityWithOptions_reason_usingBlock_(
+      int options, NSString? reason, ObjCBlock16 block) {
+    return _lib._objc_msgSend_816(
+        _id,
+        _lib._sel_performActivityWithOptions_reason_usingBlock_1,
+        options,
+        reason?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  void performExpiringActivityWithReason_usingBlock_(
+      NSString? reason, ObjCBlock31 block) {
+    return _lib._objc_msgSend_817(
+        _id,
+        _lib._sel_performExpiringActivityWithReason_usingBlock_1,
+        reason?._id ?? ffi.nullptr,
+        block._id);
+  }
+
+  NSString? get userName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_userName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get fullUserName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_fullUserName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get thermalState {
+    return _lib._objc_msgSend_818(_id, _lib._sel_thermalState1);
+  }
+
+  bool get lowPowerModeEnabled {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isLowPowerModeEnabled1);
+  }
+
+  bool get macCatalystApp {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isMacCatalystApp1);
+  }
+
+  bool get iOSAppOnMac {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isiOSAppOnMac1);
+  }
+
+  static NSProcessInfo new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProcessInfo1, _lib._sel_new1);
+    return NSProcessInfo._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSProcessInfo alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProcessInfo1, _lib._sel_alloc1);
+    return NSProcessInfo._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSProcessInfo1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProcessInfo1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSProcessInfo1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSProcessInfo1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSProcessInfo1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSProcessInfo1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSOperatingSystemVersion extends ffi.Struct {
+  @NSInteger()
+  external int majorVersion;
+
+  @NSInteger()
+  external int minorVersion;
+
+  @NSInteger()
+  external int patchVersion;
+}
+
+abstract class NSActivityOptions {
+  static const int NSActivityIdleDisplaySleepDisabled = 1099511627776;
+  static const int NSActivityIdleSystemSleepDisabled = 1048576;
+  static const int NSActivitySuddenTerminationDisabled = 16384;
+  static const int NSActivityAutomaticTerminationDisabled = 32768;
+  static const int NSActivityUserInitiated = 16777215;
+  static const int NSActivityUserInitiatedAllowingIdleSystemSleep = 15728639;
+  static const int NSActivityBackground = 255;
+  static const int NSActivityLatencyCritical = 1095216660480;
+}
+
+void _ObjCBlock31_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block, bool arg0) {
+  return block.ref.target
+      .cast<ffi.NativeFunction<ffi.Void Function(ffi.Bool arg0)>>()
+      .asFunction<void Function(bool arg0)>()(arg0);
+}
+
+final _ObjCBlock31_closureRegistry = <int, Function>{};
+int _ObjCBlock31_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock31_registerClosure(Function fn) {
+  final id = ++_ObjCBlock31_closureRegistryIndex;
+  _ObjCBlock31_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock31_closureTrampoline(ffi.Pointer<_ObjCBlock> block, bool arg0) {
+  return _ObjCBlock31_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock31 extends _ObjCBlockBase {
+  ObjCBlock31._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock31.fromFunctionPointer(SwiftLibrary lib,
+      ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Bool arg0)>> ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                            ffi.Bool arg0)>(_ObjCBlock31_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock31.fromFunction(SwiftLibrary lib, void Function(bool arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                        ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                            ffi.Bool arg0)>(_ObjCBlock31_closureTrampoline)
+                    .cast(),
+                _ObjCBlock31_registerClosure(fn)),
+            lib);
+  void call(bool arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block, ffi.Bool arg0)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block, bool arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSProcessInfoThermalState {
+  static const int NSProcessInfoThermalStateNominal = 0;
+  static const int NSProcessInfoThermalStateFair = 1;
+  static const int NSProcessInfoThermalStateSerious = 2;
+  static const int NSProcessInfoThermalStateCritical = 3;
+}
+
+class NSTextCheckingResult extends NSObject {
+  NSTextCheckingResult._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTextCheckingResult] that points to the same underlying object as [other].
+  static NSTextCheckingResult castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTextCheckingResult._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSTextCheckingResult] that wraps the given raw object pointer.
+  static NSTextCheckingResult castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTextCheckingResult._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTextCheckingResult].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSTextCheckingResult1);
+  }
+
+  int get resultType {
+    return _lib._objc_msgSend_819(_id, _lib._sel_resultType1);
+  }
+
+  NSRange get range {
+    return _lib._objc_msgSend_49(_id, _lib._sel_range1);
+  }
+
+  NSOrthography? get orthography {
+    final _ret = _lib._objc_msgSend_820(_id, _lib._sel_orthography1);
+    return _ret.address == 0
+        ? null
+        : NSOrthography._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get grammarDetails {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_grammarDetails1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDate? get date {
+    final _ret = _lib._objc_msgSend_156(_id, _lib._sel_date1);
+    return _ret.address == 0
+        ? null
+        : NSDate._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSTimeZone? get timeZone {
+    final _ret = _lib._objc_msgSend_162(_id, _lib._sel_timeZone1);
+    return _ret.address == 0
+        ? null
+        : NSTimeZone._(_ret, _lib, retain: true, release: true);
+  }
+
+  double get duration {
+    return _lib._objc_msgSend_149(_id, _lib._sel_duration1);
+  }
+
+  NSDictionary? get components {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_components1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get replacementString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_replacementString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get alternativeStrings {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_alternativeStrings1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRegularExpression? get regularExpression {
+    final _ret = _lib._objc_msgSend_832(_id, _lib._sel_regularExpression1);
+    return _ret.address == 0
+        ? null
+        : NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get phoneNumber {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_phoneNumber1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get numberOfRanges {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfRanges1);
+  }
+
+  NSRange rangeAtIndex_(int idx) {
+    return _lib._objc_msgSend_308(_id, _lib._sel_rangeAtIndex_1, idx);
+  }
+
+  NSRange rangeWithName_(NSString? name) {
+    return _lib._objc_msgSend_301(
+        _id, _lib._sel_rangeWithName_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSTextCheckingResult resultByAdjustingRangesWithOffset_(int offset) {
+    final _ret = _lib._objc_msgSend_833(
+        _id, _lib._sel_resultByAdjustingRangesWithOffset_1, offset);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get addressComponents {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_addressComponents1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult orthographyCheckingResultWithRange_orthography_(
+      SwiftLibrary _lib, NSRange range, NSOrthography? orthography) {
+    final _ret = _lib._objc_msgSend_834(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_orthographyCheckingResultWithRange_orthography_1,
+        range,
+        orthography?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult spellCheckingResultWithRange_(
+      SwiftLibrary _lib, NSRange range) {
+    final _ret = _lib._objc_msgSend_835(_lib._class_NSTextCheckingResult1,
+        _lib._sel_spellCheckingResultWithRange_1, range);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult grammarCheckingResultWithRange_details_(
+      SwiftLibrary _lib, NSRange range, NSArray? details) {
+    final _ret = _lib._objc_msgSend_836(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_grammarCheckingResultWithRange_details_1,
+        range,
+        details?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult dateCheckingResultWithRange_date_(
+      SwiftLibrary _lib, NSRange range, NSDate? date) {
+    final _ret = _lib._objc_msgSend_837(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dateCheckingResultWithRange_date_1,
+        range,
+        date?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      dateCheckingResultWithRange_date_timeZone_duration_(SwiftLibrary _lib,
+          NSRange range, NSDate? date, NSTimeZone? timeZone, double duration) {
+    final _ret = _lib._objc_msgSend_838(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dateCheckingResultWithRange_date_timeZone_duration_1,
+        range,
+        date?._id ?? ffi.nullptr,
+        timeZone?._id ?? ffi.nullptr,
+        duration);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult addressCheckingResultWithRange_components_(
+      SwiftLibrary _lib, NSRange range, NSDictionary? components) {
+    final _ret = _lib._objc_msgSend_839(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_addressCheckingResultWithRange_components_1,
+        range,
+        components?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult linkCheckingResultWithRange_URL_(
+      SwiftLibrary _lib, NSRange range, NSURL? url) {
+    final _ret = _lib._objc_msgSend_840(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_linkCheckingResultWithRange_URL_1,
+        range,
+        url?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult quoteCheckingResultWithRange_replacementString_(
+      SwiftLibrary _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_quoteCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult dashCheckingResultWithRange_replacementString_(
+      SwiftLibrary _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_dashCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      replacementCheckingResultWithRange_replacementString_(
+          SwiftLibrary _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_replacementCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      correctionCheckingResultWithRange_replacementString_(
+          SwiftLibrary _lib, NSRange range, NSString? replacementString) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_correctionCheckingResultWithRange_replacementString_1,
+        range,
+        replacementString?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      correctionCheckingResultWithRange_replacementString_alternativeStrings_(
+          SwiftLibrary _lib,
+          NSRange range,
+          NSString? replacementString,
+          NSArray? alternativeStrings) {
+    final _ret = _lib._objc_msgSend_842(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_1,
+        range,
+        replacementString?._id ?? ffi.nullptr,
+        alternativeStrings?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      regularExpressionCheckingResultWithRanges_count_regularExpression_(
+          SwiftLibrary _lib,
+          NSRangePointer ranges,
+          int count,
+          NSRegularExpression? regularExpression) {
+    final _ret = _lib._objc_msgSend_843(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_regularExpressionCheckingResultWithRanges_count_regularExpression_1,
+        ranges,
+        count,
+        regularExpression?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult phoneNumberCheckingResultWithRange_phoneNumber_(
+      SwiftLibrary _lib, NSRange range, NSString? phoneNumber) {
+    final _ret = _lib._objc_msgSend_841(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_phoneNumberCheckingResultWithRange_phoneNumber_1,
+        range,
+        phoneNumber?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult
+      transitInformationCheckingResultWithRange_components_(
+          SwiftLibrary _lib, NSRange range, NSDictionary? components) {
+    final _ret = _lib._objc_msgSend_839(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_transitInformationCheckingResultWithRange_components_1,
+        range,
+        components?._id ?? ffi.nullptr);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTextCheckingResult new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSTextCheckingResult1, _lib._sel_new1);
+    return NSTextCheckingResult._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTextCheckingResult alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTextCheckingResult1, _lib._sel_alloc1);
+    return NSTextCheckingResult._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTextCheckingResult1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSTextCheckingResult1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTextCheckingResult1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTextCheckingResult1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSTextCheckingResult1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTextCheckingResult1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTextCheckingType {
+  static const int NSTextCheckingTypeOrthography = 1;
+  static const int NSTextCheckingTypeSpelling = 2;
+  static const int NSTextCheckingTypeGrammar = 4;
+  static const int NSTextCheckingTypeDate = 8;
+  static const int NSTextCheckingTypeAddress = 16;
+  static const int NSTextCheckingTypeLink = 32;
+  static const int NSTextCheckingTypeQuote = 64;
+  static const int NSTextCheckingTypeDash = 128;
+  static const int NSTextCheckingTypeReplacement = 256;
+  static const int NSTextCheckingTypeCorrection = 512;
+  static const int NSTextCheckingTypeRegularExpression = 1024;
+  static const int NSTextCheckingTypePhoneNumber = 2048;
+  static const int NSTextCheckingTypeTransitInformation = 4096;
+}
+
+class NSRegularExpression extends NSObject {
+  NSRegularExpression._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSRegularExpression] that points to the same underlying object as [other].
+  static NSRegularExpression castFrom<T extends _ObjCWrapper>(T other) {
+    return NSRegularExpression._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSRegularExpression] that wraps the given raw object pointer.
+  static NSRegularExpression castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSRegularExpression._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSRegularExpression].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSRegularExpression1);
+  }
+
+  static NSRegularExpression regularExpressionWithPattern_options_error_(
+      SwiftLibrary _lib,
+      NSString? pattern,
+      int options,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_821(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_regularExpressionWithPattern_options_error_1,
+        pattern?._id ?? ffi.nullptr,
+        options,
+        error);
+    return NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRegularExpression initWithPattern_options_error_(NSString? pattern,
+      int options, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_822(
+        _id,
+        _lib._sel_initWithPattern_options_error_1,
+        pattern?._id ?? ffi.nullptr,
+        options,
+        error);
+    return NSRegularExpression._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get pattern {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_pattern1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get options {
+    return _lib._objc_msgSend_823(_id, _lib._sel_options1);
+  }
+
+  int get numberOfCaptureGroups {
+    return _lib._objc_msgSend_10(_id, _lib._sel_numberOfCaptureGroups1);
+  }
+
+  static NSString escapedPatternForString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSRegularExpression1,
+        _lib._sel_escapedPatternForString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void enumerateMatchesInString_options_range_usingBlock_(
+      NSString? string, int options, NSRange range, ObjCBlock32 block) {
+    return _lib._objc_msgSend_824(
+        _id,
+        _lib._sel_enumerateMatchesInString_options_range_usingBlock_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        block._id);
+  }
+
+  NSArray matchesInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    final _ret = _lib._objc_msgSend_825(
+        _id,
+        _lib._sel_matchesInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int numberOfMatchesInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    return _lib._objc_msgSend_826(
+        _id,
+        _lib._sel_numberOfMatchesInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+  }
+
+  NSTextCheckingResult firstMatchInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    final _ret = _lib._objc_msgSend_827(
+        _id,
+        _lib._sel_firstMatchInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+    return NSTextCheckingResult._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSRange rangeOfFirstMatchInString_options_range_(
+      NSString? string, int options, NSRange range) {
+    return _lib._objc_msgSend_828(
+        _id,
+        _lib._sel_rangeOfFirstMatchInString_options_range_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range);
+  }
+
+  NSString stringByReplacingMatchesInString_options_range_withTemplate_(
+      NSString? string, int options, NSRange range, NSString? templ) {
+    final _ret = _lib._objc_msgSend_829(
+        _id,
+        _lib._sel_stringByReplacingMatchesInString_options_range_withTemplate_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        templ?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int replaceMatchesInString_options_range_withTemplate_(
+      NSMutableString? string, int options, NSRange range, NSString? templ) {
+    return _lib._objc_msgSend_830(
+        _id,
+        _lib._sel_replaceMatchesInString_options_range_withTemplate_1,
+        string?._id ?? ffi.nullptr,
+        options,
+        range,
+        templ?._id ?? ffi.nullptr);
+  }
+
+  NSString replacementStringForResult_inString_offset_template_(
+      NSTextCheckingResult? result,
+      NSString? string,
+      int offset,
+      NSString? templ) {
+    final _ret = _lib._objc_msgSend_831(
+        _id,
+        _lib._sel_replacementStringForResult_inString_offset_template_1,
+        result?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr,
+        offset,
+        templ?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString escapedTemplateForString_(
+      SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSRegularExpression1,
+        _lib._sel_escapedTemplateForString_1, string?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSRegularExpression new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSRegularExpression1, _lib._sel_new1);
+    return NSRegularExpression._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSRegularExpression alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRegularExpression1, _lib._sel_alloc1);
+    return NSRegularExpression._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSRegularExpression1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSRegularExpression1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSRegularExpression1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSRegularExpression1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSRegularExpression1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSRegularExpression1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSRegularExpressionOptions {
+  static const int NSRegularExpressionCaseInsensitive = 1;
+  static const int NSRegularExpressionAllowCommentsAndWhitespace = 2;
+  static const int NSRegularExpressionIgnoreMetacharacters = 4;
+  static const int NSRegularExpressionDotMatchesLineSeparators = 8;
+  static const int NSRegularExpressionAnchorsMatchLines = 16;
+  static const int NSRegularExpressionUseUnixLineSeparators = 32;
+  static const int NSRegularExpressionUseUnicodeWordBoundaries = 64;
+}
+
+abstract class NSMatchingOptions {
+  static const int NSMatchingReportProgress = 1;
+  static const int NSMatchingReportCompletion = 2;
+  static const int NSMatchingAnchored = 4;
+  static const int NSMatchingWithTransparentBounds = 8;
+  static const int NSMatchingWithoutAnchoringBounds = 16;
+}
+
+void _ObjCBlock32_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Int32 arg1,
+                  ffi.Pointer<ffi.Bool> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock32_closureRegistry = <int, Function>{};
+int _ObjCBlock32_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock32_registerClosure(Function fn) {
+  final id = ++_ObjCBlock32_closureRegistryIndex;
+  _ObjCBlock32_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock32_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+  return _ObjCBlock32_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock32 extends _ObjCBlockBase {
+  ObjCBlock32._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock32.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Int32 arg1, ffi.Pointer<ffi.Bool> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Int32 arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock32_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock32.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, int arg1,
+              ffi.Pointer<ffi.Bool> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Int32 arg1,
+                                ffi.Pointer<ffi.Bool> arg2)>(
+                        _ObjCBlock32_closureTrampoline)
+                    .cast(),
+                _ObjCBlock32_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, int arg1, ffi.Pointer<ffi.Bool> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Int32 arg1,
+                    ffi.Pointer<ffi.Bool> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                int arg1,
+                ffi.Pointer<ffi.Bool> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSMatchingFlags {
+  static const int NSMatchingProgress = 1;
+  static const int NSMatchingCompleted = 2;
+  static const int NSMatchingHitEnd = 4;
+  static const int NSMatchingRequiredEnd = 8;
+  static const int NSMatchingInternalError = 16;
+}
+
+class NSURLCache extends NSObject {
+  NSURLCache._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCache] that points to the same underlying object as [other].
+  static NSURLCache castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCache._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCache] that wraps the given raw object pointer.
+  static NSURLCache castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCache._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCache].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLCache1);
+  }
+
+  static NSURLCache? getSharedURLCache(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_844(
+        _lib._class_NSURLCache1, _lib._sel_sharedURLCache1);
+    return _ret.address == 0
+        ? null
+        : NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setSharedURLCache(SwiftLibrary _lib, NSURLCache? value) {
+    _lib._objc_msgSend_845(_lib._class_NSURLCache1,
+        _lib._sel_setSharedURLCache_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCache initWithMemoryCapacity_diskCapacity_diskPath_(
+      int memoryCapacity, int diskCapacity, NSString? path) {
+    final _ret = _lib._objc_msgSend_846(
+        _id,
+        _lib._sel_initWithMemoryCapacity_diskCapacity_diskPath_1,
+        memoryCapacity,
+        diskCapacity,
+        path?._id ?? ffi.nullptr);
+    return NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLCache initWithMemoryCapacity_diskCapacity_directoryURL_(
+      int memoryCapacity, int diskCapacity, NSURL? directoryURL) {
+    final _ret = _lib._objc_msgSend_847(
+        _id,
+        _lib._sel_initWithMemoryCapacity_diskCapacity_directoryURL_1,
+        memoryCapacity,
+        diskCapacity,
+        directoryURL?._id ?? ffi.nullptr);
+    return NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse cachedResponseForRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_851(
+        _id, _lib._sel_cachedResponseForRequest_1, request?._id ?? ffi.nullptr);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  void storeCachedResponse_forRequest_(
+      NSCachedURLResponse? cachedResponse, NSURLRequest? request) {
+    return _lib._objc_msgSend_852(
+        _id,
+        _lib._sel_storeCachedResponse_forRequest_1,
+        cachedResponse?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  void removeCachedResponseForRequest_(NSURLRequest? request) {
+    return _lib._objc_msgSend_853(
+        _id,
+        _lib._sel_removeCachedResponseForRequest_1,
+        request?._id ?? ffi.nullptr);
+  }
+
+  void removeAllCachedResponses() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_removeAllCachedResponses1);
+  }
+
+  void removeCachedResponsesSinceDate_(NSDate? date) {
+    return _lib._objc_msgSend_472(_id,
+        _lib._sel_removeCachedResponsesSinceDate_1, date?._id ?? ffi.nullptr);
+  }
+
+  int get memoryCapacity {
+    return _lib._objc_msgSend_10(_id, _lib._sel_memoryCapacity1);
+  }
+
+  set memoryCapacity(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setMemoryCapacity_1, value);
+  }
+
+  int get diskCapacity {
+    return _lib._objc_msgSend_10(_id, _lib._sel_diskCapacity1);
+  }
+
+  set diskCapacity(int value) {
+    _lib._objc_msgSend_451(_id, _lib._sel_setDiskCapacity_1, value);
+  }
+
+  int get currentMemoryUsage {
+    return _lib._objc_msgSend_10(_id, _lib._sel_currentMemoryUsage1);
+  }
+
+  int get currentDiskUsage {
+    return _lib._objc_msgSend_10(_id, _lib._sel_currentDiskUsage1);
+  }
+
+  void storeCachedResponse_forDataTask_(
+      NSCachedURLResponse? cachedResponse, NSURLSessionDataTask? dataTask) {
+    return _lib._objc_msgSend_854(
+        _id,
+        _lib._sel_storeCachedResponse_forDataTask_1,
+        cachedResponse?._id ?? ffi.nullptr,
+        dataTask?._id ?? ffi.nullptr);
+  }
+
+  void getCachedResponseForDataTask_completionHandler_(
+      NSURLSessionDataTask? dataTask, ObjCBlock33 completionHandler) {
+    return _lib._objc_msgSend_855(
+        _id,
+        _lib._sel_getCachedResponseForDataTask_completionHandler_1,
+        dataTask?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void removeCachedResponseForDataTask_(NSURLSessionDataTask? dataTask) {
+    return _lib._objc_msgSend_856(
+        _id,
+        _lib._sel_removeCachedResponseForDataTask_1,
+        dataTask?._id ?? ffi.nullptr);
+  }
+
+  static NSURLCache new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLCache1, _lib._sel_new1);
+    return NSURLCache._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCache alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCache1, _lib._sel_alloc1);
+    return NSURLCache._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCache1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCache1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCache1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCache1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCache1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCache1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCache1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLCache1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCache1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSCachedURLResponse extends NSObject {
+  NSCachedURLResponse._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSCachedURLResponse] that points to the same underlying object as [other].
+  static NSCachedURLResponse castFrom<T extends _ObjCWrapper>(T other) {
+    return NSCachedURLResponse._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSCachedURLResponse] that wraps the given raw object pointer.
+  static NSCachedURLResponse castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSCachedURLResponse._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSCachedURLResponse].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSCachedURLResponse1);
+  }
+
+  NSCachedURLResponse initWithResponse_data_(
+      NSURLResponse? response, NSData? data) {
+    final _ret = _lib._objc_msgSend_848(_id, _lib._sel_initWithResponse_data_1,
+        response?._id ?? ffi.nullptr, data?._id ?? ffi.nullptr);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse initWithResponse_data_userInfo_storagePolicy_(
+      NSURLResponse? response,
+      NSData? data,
+      NSDictionary? userInfo,
+      int storagePolicy) {
+    final _ret = _lib._objc_msgSend_849(
+        _id,
+        _lib._sel_initWithResponse_data_userInfo_storagePolicy_1,
+        response?._id ?? ffi.nullptr,
+        data?._id ?? ffi.nullptr,
+        userInfo?._id ?? ffi.nullptr,
+        storagePolicy);
+    return NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLResponse? get response {
+    final _ret = _lib._objc_msgSend_763(_id, _lib._sel_response1);
+    return _ret.address == 0
+        ? null
+        : NSURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get userInfo {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_userInfo1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get storagePolicy {
+    return _lib._objc_msgSend_850(_id, _lib._sel_storagePolicy1);
+  }
+
+  static NSCachedURLResponse new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSCachedURLResponse1, _lib._sel_new1);
+    return NSCachedURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSCachedURLResponse alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCachedURLResponse1, _lib._sel_alloc1);
+    return NSCachedURLResponse._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSCachedURLResponse1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSCachedURLResponse1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSCachedURLResponse1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSCachedURLResponse1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSCachedURLResponse1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSCachedURLResponse1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLCacheStoragePolicy {
+  static const int NSURLCacheStorageAllowed = 0;
+  static const int NSURLCacheStorageAllowedInMemoryOnly = 1;
+  static const int NSURLCacheStorageNotAllowed = 2;
+}
+
+class NSURLSessionDataTask extends NSURLSessionTask {
+  NSURLSessionDataTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionDataTask] that points to the same underlying object as [other].
+  static NSURLSessionDataTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionDataTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionDataTask] that wraps the given raw object pointer.
+  static NSURLSessionDataTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionDataTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionDataTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionDataTask1);
+  }
+
+  @override
+  NSURLSessionDataTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionDataTask new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSessionDataTask1, _lib._sel_new1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionDataTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_alloc1);
+    return NSURLSessionDataTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionDataTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionDataTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDataTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock33_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock33_closureRegistry = <int, Function>{};
+int _ObjCBlock33_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock33_registerClosure(Function fn) {
+  final id = ++_ObjCBlock33_closureRegistryIndex;
+  _ObjCBlock33_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock33_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock33_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock33 extends _ObjCBlockBase {
+  ObjCBlock33._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock33.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock33_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock33.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock33_closureTrampoline)
+                    .cast(),
+                _ObjCBlock33_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLConnection extends NSObject {
+  NSURLConnection._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLConnection] that points to the same underlying object as [other].
+  static NSURLConnection castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLConnection._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLConnection] that wraps the given raw object pointer.
+  static NSURLConnection castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLConnection._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLConnection].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLConnection1);
+  }
+
+  NSURLConnection initWithRequest_delegate_startImmediately_(
+      NSURLRequest? request, NSObject delegate, bool startImmediately) {
+    final _ret = _lib._objc_msgSend_857(
+        _id,
+        _lib._sel_initWithRequest_delegate_startImmediately_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id,
+        startImmediately);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLConnection initWithRequest_delegate_(
+      NSURLRequest? request, NSObject delegate) {
+    final _ret = _lib._objc_msgSend_858(
+        _id,
+        _lib._sel_initWithRequest_delegate_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLConnection connectionWithRequest_delegate_(
+      SwiftLibrary _lib, NSURLRequest? request, NSObject delegate) {
+    final _ret = _lib._objc_msgSend_859(
+        _lib._class_NSURLConnection1,
+        _lib._sel_connectionWithRequest_delegate_1,
+        request?._id ?? ffi.nullptr,
+        delegate._id);
+    return NSURLConnection._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get originalRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_originalRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get currentRequest {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_currentRequest1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  void start() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_start1);
+  }
+
+  void cancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_cancel1);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void unscheduleFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(
+        _id,
+        _lib._sel_unscheduleFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr,
+        mode);
+  }
+
+  void setDelegateQueue_(NSOperationQueue? queue) {
+    return _lib._objc_msgSend_860(
+        _id, _lib._sel_setDelegateQueue_1, queue?._id ?? ffi.nullptr);
+  }
+
+  static bool canHandleRequest_(SwiftLibrary _lib, NSURLRequest? request) {
+    return _lib._objc_msgSend_861(_lib._class_NSURLConnection1,
+        _lib._sel_canHandleRequest_1, request?._id ?? ffi.nullptr);
+  }
+
+  static NSData sendSynchronousRequest_returningResponse_error_(
+      SwiftLibrary _lib,
+      NSURLRequest? request,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> response,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_862(
+        _lib._class_NSURLConnection1,
+        _lib._sel_sendSynchronousRequest_returningResponse_error_1,
+        request?._id ?? ffi.nullptr,
+        response,
+        error);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void sendAsynchronousRequest_queue_completionHandler_(
+      SwiftLibrary _lib,
+      NSURLRequest? request,
+      NSOperationQueue? queue,
+      ObjCBlock34 handler) {
+    return _lib._objc_msgSend_863(
+        _lib._class_NSURLConnection1,
+        _lib._sel_sendAsynchronousRequest_queue_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        queue?._id ?? ffi.nullptr,
+        handler._id);
+  }
+
+  static NSURLConnection new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLConnection1, _lib._sel_new1);
+    return NSURLConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLConnection alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLConnection1, _lib._sel_alloc1);
+    return NSURLConnection._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLConnection1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLConnection1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLConnection1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLConnection1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLConnection1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLConnection1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLConnection1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLConnection1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock34_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock34_closureRegistry = <int, Function>{};
+int _ObjCBlock34_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock34_registerClosure(Function fn) {
+  final id = ++_ObjCBlock34_closureRegistryIndex;
+  _ObjCBlock34_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock34_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock34_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock34 extends _ObjCBlockBase {
+  ObjCBlock34._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock34.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock34_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock34.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock34_closureTrampoline)
+                    .cast(),
+                _ObjCBlock34_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLCredential extends NSObject {
+  NSURLCredential._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCredential] that points to the same underlying object as [other].
+  static NSURLCredential castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCredential._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCredential] that wraps the given raw object pointer.
+  static NSURLCredential castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCredential._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCredential].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLCredential1);
+  }
+
+  int get persistence {
+    return _lib._objc_msgSend_864(_id, _lib._sel_persistence1);
+  }
+
+  NSURLCredential initWithUser_password_persistence_(
+      NSString? user, NSString? password, int persistence) {
+    final _ret = _lib._objc_msgSend_865(
+        _id,
+        _lib._sel_initWithUser_password_persistence_1,
+        user?._id ?? ffi.nullptr,
+        password?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialWithUser_password_persistence_(
+      SwiftLibrary _lib, NSString? user, NSString? password, int persistence) {
+    final _ret = _lib._objc_msgSend_866(
+        _lib._class_NSURLCredential1,
+        _lib._sel_credentialWithUser_password_persistence_1,
+        user?._id ?? ffi.nullptr,
+        password?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get user {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_user1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get password {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_password1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get hasPassword {
+    return _lib._objc_msgSend_12(_id, _lib._sel_hasPassword1);
+  }
+
+  NSURLCredential initWithIdentity_certificates_persistence_(
+      SecIdentityRef identity, NSArray? certArray, int persistence) {
+    final _ret = _lib._objc_msgSend_867(
+        _id,
+        _lib._sel_initWithIdentity_certificates_persistence_1,
+        identity,
+        certArray?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialWithIdentity_certificates_persistence_(
+      SwiftLibrary _lib,
+      SecIdentityRef identity,
+      NSArray? certArray,
+      int persistence) {
+    final _ret = _lib._objc_msgSend_868(
+        _lib._class_NSURLCredential1,
+        _lib._sel_credentialWithIdentity_certificates_persistence_1,
+        identity,
+        certArray?._id ?? ffi.nullptr,
+        persistence);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  SecIdentityRef get identity {
+    return _lib._objc_msgSend_869(_id, _lib._sel_identity1);
+  }
+
+  NSArray? get certificates {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_certificates1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLCredential initWithTrust_(SecTrustRef trust) {
+    final _ret = _lib._objc_msgSend_870(_id, _lib._sel_initWithTrust_1, trust);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential credentialForTrust_(
+      SwiftLibrary _lib, SecTrustRef trust) {
+    final _ret = _lib._objc_msgSend_871(
+        _lib._class_NSURLCredential1, _lib._sel_credentialForTrust_1, trust);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLCredential new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCredential1, _lib._sel_new1);
+    return NSURLCredential._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCredential alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLCredential1, _lib._sel_alloc1);
+    return NSURLCredential._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCredential1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCredential1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLCredential1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCredential1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCredential1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCredential1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCredential1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLCredential1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredential1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLCredentialPersistence {
+  static const int NSURLCredentialPersistenceNone = 0;
+  static const int NSURLCredentialPersistenceForSession = 1;
+  static const int NSURLCredentialPersistencePermanent = 2;
+  static const int NSURLCredentialPersistenceSynchronizable = 3;
+}
+
+typedef SecIdentityRef = ffi.Pointer<__SecIdentity>;
+
+class __SecIdentity extends ffi.Opaque {}
+
+typedef SecTrustRef = ffi.Pointer<__SecTrust>;
+
+class __SecTrust extends ffi.Opaque {}
+
+class NSURLProtectionSpace extends NSObject {
+  NSURLProtectionSpace._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLProtectionSpace] that points to the same underlying object as [other].
+  static NSURLProtectionSpace castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLProtectionSpace._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLProtectionSpace] that wraps the given raw object pointer.
+  static NSURLProtectionSpace castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLProtectionSpace._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLProtectionSpace].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLProtectionSpace1);
+  }
+
+  NSURLProtectionSpace initWithHost_port_protocol_realm_authenticationMethod_(
+      NSString? host,
+      int port,
+      NSString? protocol,
+      NSString? realm,
+      NSString? authenticationMethod) {
+    final _ret = _lib._objc_msgSend_872(
+        _id,
+        _lib._sel_initWithHost_port_protocol_realm_authenticationMethod_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        protocol?._id ?? ffi.nullptr,
+        realm?._id ?? ffi.nullptr,
+        authenticationMethod?._id ?? ffi.nullptr);
+    return NSURLProtectionSpace._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLProtectionSpace initWithProxyHost_port_type_realm_authenticationMethod_(
+      NSString? host,
+      int port,
+      NSString? type,
+      NSString? realm,
+      NSString? authenticationMethod) {
+    final _ret = _lib._objc_msgSend_872(
+        _id,
+        _lib._sel_initWithProxyHost_port_type_realm_authenticationMethod_1,
+        host?._id ?? ffi.nullptr,
+        port,
+        type?._id ?? ffi.nullptr,
+        realm?._id ?? ffi.nullptr,
+        authenticationMethod?._id ?? ffi.nullptr);
+    return NSURLProtectionSpace._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get realm {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_realm1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get receivesCredentialSecurely {
+    return _lib._objc_msgSend_12(_id, _lib._sel_receivesCredentialSecurely1);
+  }
+
+  bool get isProxy {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isProxy1);
+  }
+
+  NSString? get host {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_host1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get port {
+    return _lib._objc_msgSend_78(_id, _lib._sel_port1);
+  }
+
+  NSString? get proxyType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_proxyType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get protocol {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_protocol1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get authenticationMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_authenticationMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get distinguishedNames {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_distinguishedNames1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  SecTrustRef get serverTrust {
+    return _lib._objc_msgSend_873(_id, _lib._sel_serverTrust1);
+  }
+
+  static NSURLProtectionSpace new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtectionSpace1, _lib._sel_new1);
+    return NSURLProtectionSpace._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLProtectionSpace alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_alloc1);
+    return NSURLProtectionSpace._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLProtectionSpace1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLProtectionSpace1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtectionSpace1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLCredentialStorage extends NSObject {
+  NSURLCredentialStorage._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLCredentialStorage] that points to the same underlying object as [other].
+  static NSURLCredentialStorage castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLCredentialStorage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLCredentialStorage] that wraps the given raw object pointer.
+  static NSURLCredentialStorage castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLCredentialStorage._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLCredentialStorage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLCredentialStorage1);
+  }
+
+  static NSURLCredentialStorage? getSharedCredentialStorage(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_874(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_sharedCredentialStorage1);
+    return _ret.address == 0
+        ? null
+        : NSURLCredentialStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary credentialsForProtectionSpace_(NSURLProtectionSpace? space) {
+    final _ret = _lib._objc_msgSend_875(_id,
+        _lib._sel_credentialsForProtectionSpace_1, space?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSDictionary? get allCredentials {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allCredentials1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_setCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_options_(NSURLCredential? credential,
+      NSURLProtectionSpace? space, NSDictionary? options) {
+    return _lib._objc_msgSend_877(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_options_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr);
+  }
+
+  NSURLCredential defaultCredentialForProtectionSpace_(
+      NSURLProtectionSpace? space) {
+    final _ret = _lib._objc_msgSend_878(
+        _id,
+        _lib._sel_defaultCredentialForProtectionSpace_1,
+        space?._id ?? ffi.nullptr);
+    return NSURLCredential._(_ret, _lib, retain: true, release: true);
+  }
+
+  void setDefaultCredential_forProtectionSpace_(
+      NSURLCredential? credential, NSURLProtectionSpace? space) {
+    return _lib._objc_msgSend_876(
+        _id,
+        _lib._sel_setDefaultCredential_forProtectionSpace_1,
+        credential?._id ?? ffi.nullptr,
+        space?._id ?? ffi.nullptr);
+  }
+
+  void getCredentialsForProtectionSpace_task_completionHandler_(
+      NSURLProtectionSpace? protectionSpace,
+      NSURLSessionTask? task,
+      ObjCBlock35 completionHandler) {
+    return _lib._objc_msgSend_879(
+        _id,
+        _lib._sel_getCredentialsForProtectionSpace_task_completionHandler_1,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void setCredential_forProtectionSpace_task_(NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_880(
+        _id,
+        _lib._sel_setCredential_forProtectionSpace_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  void removeCredential_forProtectionSpace_options_task_(
+      NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace,
+      NSDictionary? options,
+      NSURLSessionTask? task) {
+    return _lib._objc_msgSend_881(
+        _id,
+        _lib._sel_removeCredential_forProtectionSpace_options_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        options?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  void getDefaultCredentialForProtectionSpace_task_completionHandler_(
+      NSURLProtectionSpace? space,
+      NSURLSessionTask? task,
+      ObjCBlock36 completionHandler) {
+    return _lib._objc_msgSend_882(
+        _id,
+        _lib._sel_getDefaultCredentialForProtectionSpace_task_completionHandler_1,
+        space?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void setDefaultCredential_forProtectionSpace_task_(
+      NSURLCredential? credential,
+      NSURLProtectionSpace? protectionSpace,
+      NSURLSessionTask? task) {
+    return _lib._objc_msgSend_880(
+        _id,
+        _lib._sel_setDefaultCredential_forProtectionSpace_task_1,
+        credential?._id ?? ffi.nullptr,
+        protectionSpace?._id ?? ffi.nullptr,
+        task?._id ?? ffi.nullptr);
+  }
+
+  static NSURLCredentialStorage new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_new1);
+    return NSURLCredentialStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLCredentialStorage alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_alloc1);
+    return NSURLCredentialStorage._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLCredentialStorage1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLCredentialStorage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLCredentialStorage1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock35_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock35_closureRegistry = <int, Function>{};
+int _ObjCBlock35_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock35_registerClosure(Function fn) {
+  final id = ++_ObjCBlock35_closureRegistryIndex;
+  _ObjCBlock35_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock35_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock35_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock35 extends _ObjCBlockBase {
+  ObjCBlock35._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock35.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock35_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock35.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock35_closureTrampoline)
+                    .cast(),
+                _ObjCBlock35_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock36_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock36_closureRegistry = <int, Function>{};
+int _ObjCBlock36_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock36_registerClosure(Function fn) {
+  final id = ++_ObjCBlock36_closureRegistryIndex;
+  _ObjCBlock36_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock36_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock36_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock36 extends _ObjCBlockBase {
+  ObjCBlock36._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock36.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock36_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock36.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock36_closureTrampoline)
+                    .cast(),
+                _ObjCBlock36_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLProtocol extends NSObject {
+  NSURLProtocol._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLProtocol] that points to the same underlying object as [other].
+  static NSURLProtocol castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLProtocol._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLProtocol] that wraps the given raw object pointer.
+  static NSURLProtocol castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLProtocol._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLProtocol].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLProtocol1);
+  }
+
+  NSURLProtocol initWithRequest_cachedResponse_client_(NSURLRequest? request,
+      NSCachedURLResponse? cachedResponse, NSObject? client) {
+    final _ret = _lib._objc_msgSend_883(
+        _id,
+        _lib._sel_initWithRequest_cachedResponse_client_1,
+        request?._id ?? ffi.nullptr,
+        cachedResponse?._id ?? ffi.nullptr,
+        client?._id ?? ffi.nullptr);
+    return NSURLProtocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get client {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_client1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLRequest? get request {
+    final _ret = _lib._objc_msgSend_761(_id, _lib._sel_request1);
+    return _ret.address == 0
+        ? null
+        : NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSCachedURLResponse? get cachedResponse {
+    final _ret = _lib._objc_msgSend_884(_id, _lib._sel_cachedResponse1);
+    return _ret.address == 0
+        ? null
+        : NSCachedURLResponse._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool canInitWithRequest_(SwiftLibrary _lib, NSURLRequest? request) {
+    return _lib._objc_msgSend_861(_lib._class_NSURLProtocol1,
+        _lib._sel_canInitWithRequest_1, request?._id ?? ffi.nullptr);
+  }
+
+  static NSURLRequest canonicalRequestForRequest_(
+      SwiftLibrary _lib, NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_885(_lib._class_NSURLProtocol1,
+        _lib._sel_canonicalRequestForRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool requestIsCacheEquivalent_toRequest_(
+      SwiftLibrary _lib, NSURLRequest? a, NSURLRequest? b) {
+    return _lib._objc_msgSend_886(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_requestIsCacheEquivalent_toRequest_1,
+        a?._id ?? ffi.nullptr,
+        b?._id ?? ffi.nullptr);
+  }
+
+  void startLoading() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startLoading1);
+  }
+
+  void stopLoading() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopLoading1);
+  }
+
+  static NSObject propertyForKey_inRequest_(
+      SwiftLibrary _lib, NSString? key, NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_887(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_propertyForKey_inRequest_1,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static void setProperty_forKey_inRequest_(SwiftLibrary _lib, NSObject value,
+      NSString? key, NSMutableURLRequest? request) {
+    return _lib._objc_msgSend_894(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_setProperty_forKey_inRequest_1,
+        value._id,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  static void removePropertyForKey_inRequest_(
+      SwiftLibrary _lib, NSString? key, NSMutableURLRequest? request) {
+    return _lib._objc_msgSend_895(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_removePropertyForKey_inRequest_1,
+        key?._id ?? ffi.nullptr,
+        request?._id ?? ffi.nullptr);
+  }
+
+  static bool registerClass_(SwiftLibrary _lib, NSObject protocolClass) {
+    return _lib._objc_msgSend_0(_lib._class_NSURLProtocol1,
+        _lib._sel_registerClass_1, protocolClass._id);
+  }
+
+  static void unregisterClass_(SwiftLibrary _lib, NSObject protocolClass) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtocol1,
+        _lib._sel_unregisterClass_1, protocolClass._id);
+  }
+
+  static bool canInitWithTask_(SwiftLibrary _lib, NSURLSessionTask? task) {
+    return _lib._objc_msgSend_896(_lib._class_NSURLProtocol1,
+        _lib._sel_canInitWithTask_1, task?._id ?? ffi.nullptr);
+  }
+
+  NSURLProtocol initWithTask_cachedResponse_client_(NSURLSessionTask? task,
+      NSCachedURLResponse? cachedResponse, NSObject? client) {
+    final _ret = _lib._objc_msgSend_897(
+        _id,
+        _lib._sel_initWithTask_cachedResponse_client_1,
+        task?._id ?? ffi.nullptr,
+        cachedResponse?._id ?? ffi.nullptr,
+        client?._id ?? ffi.nullptr);
+    return NSURLProtocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionTask? get task {
+    final _ret = _lib._objc_msgSend_898(_id, _lib._sel_task1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLProtocol new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtocol1, _lib._sel_new1);
+    return NSURLProtocol._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLProtocol alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLProtocol1, _lib._sel_alloc1);
+    return NSURLProtocol._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLProtocol1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtocol1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLProtocol1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLProtocol1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLProtocol1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLProtocol1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSMutableURLRequest extends NSURLRequest {
+  NSMutableURLRequest._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSMutableURLRequest] that points to the same underlying object as [other].
+  static NSMutableURLRequest castFrom<T extends _ObjCWrapper>(T other) {
+    return NSMutableURLRequest._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSMutableURLRequest] that wraps the given raw object pointer.
+  static NSMutableURLRequest castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSMutableURLRequest._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSMutableURLRequest].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSMutableURLRequest1);
+  }
+
+  @override
+  NSURL? get URL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_URL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URL(NSURL? value) {
+    _lib._objc_msgSend_888(_id, _lib._sel_setURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  int get cachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_cachePolicy1);
+  }
+
+  set cachePolicy(int value) {
+    _lib._objc_msgSend_889(_id, _lib._sel_setCachePolicy_1, value);
+  }
+
+  @override
+  double get timeoutInterval {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutInterval1);
+  }
+
+  set timeoutInterval(double value) {
+    _lib._objc_msgSend_474(_id, _lib._sel_setTimeoutInterval_1, value);
+  }
+
+  @override
+  NSURL? get mainDocumentURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_mainDocumentURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set mainDocumentURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setMainDocumentURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  set networkServiceType(int value) {
+    _lib._objc_msgSend_890(_id, _lib._sel_setNetworkServiceType_1, value);
+  }
+
+  @override
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  set allowsCellularAccess(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsCellularAccess_1, value);
+  }
+
+  @override
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  set allowsExpensiveNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsExpensiveNetworkAccess_1, value);
+  }
+
+  @override
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  set allowsConstrainedNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsConstrainedNetworkAccess_1, value);
+  }
+
+  @override
+  bool get assumesHTTP3Capable {
+    return _lib._objc_msgSend_12(_id, _lib._sel_assumesHTTP3Capable1);
+  }
+
+  set assumesHTTP3Capable(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAssumesHTTP3Capable_1, value);
+  }
+
+  @override
+  int get attribution {
+    return _lib._objc_msgSend_750(_id, _lib._sel_attribution1);
+  }
+
+  set attribution(int value) {
+    _lib._objc_msgSend_891(_id, _lib._sel_setAttribution_1, value);
+  }
+
+  @override
+  NSString? get HTTPMethod {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_HTTPMethod1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPMethod(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setHTTPMethod_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSDictionary? get allHTTPHeaderFields {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_allHTTPHeaderFields1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set allHTTPHeaderFields(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setAllHTTPHeaderFields_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setValue_forHTTPHeaderField_(NSString? value, NSString? field) {
+    return _lib._objc_msgSend_483(_id, _lib._sel_setValue_forHTTPHeaderField_1,
+        value?._id ?? ffi.nullptr, field?._id ?? ffi.nullptr);
+  }
+
+  void addValue_forHTTPHeaderField_(NSString? value, NSString? field) {
+    return _lib._objc_msgSend_483(_id, _lib._sel_addValue_forHTTPHeaderField_1,
+        value?._id ?? ffi.nullptr, field?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSData? get HTTPBody {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_HTTPBody1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPBody(NSData? value) {
+    _lib._objc_msgSend_892(
+        _id, _lib._sel_setHTTPBody_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  NSInputStream? get HTTPBodyStream {
+    final _ret = _lib._objc_msgSend_760(_id, _lib._sel_HTTPBodyStream1);
+    return _ret.address == 0
+        ? null
+        : NSInputStream._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPBodyStream(NSInputStream? value) {
+    _lib._objc_msgSend_893(
+        _id, _lib._sel_setHTTPBodyStream_1, value?._id ?? ffi.nullptr);
+  }
+
+  @override
+  bool get HTTPShouldHandleCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldHandleCookies1);
+  }
+
+  set HTTPShouldHandleCookies(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldHandleCookies_1, value);
+  }
+
+  @override
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  set HTTPShouldUsePipelining(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldUsePipelining_1, value);
+  }
+
+  static NSMutableURLRequest requestWithURL_(SwiftLibrary _lib, NSURL? URL) {
+    final _ret = _lib._objc_msgSend_226(_lib._class_NSMutableURLRequest1,
+        _lib._sel_requestWithURL_1, URL?._id ?? ffi.nullptr);
+    return NSMutableURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool getSupportsSecureCoding(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableURLRequest1, _lib._sel_supportsSecureCoding1);
+  }
+
+  static NSMutableURLRequest requestWithURL_cachePolicy_timeoutInterval_(
+      SwiftLibrary _lib, NSURL? URL, int cachePolicy, double timeoutInterval) {
+    final _ret = _lib._objc_msgSend_747(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_requestWithURL_cachePolicy_timeoutInterval_1,
+        URL?._id ?? ffi.nullptr,
+        cachePolicy,
+        timeoutInterval);
+    return NSMutableURLRequest._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSMutableURLRequest new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSMutableURLRequest1, _lib._sel_new1);
+    return NSMutableURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSMutableURLRequest alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableURLRequest1, _lib._sel_alloc1);
+    return NSMutableURLRequest._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSMutableURLRequest1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSMutableURLRequest1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSMutableURLRequest1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSMutableURLRequest1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSMutableURLRequest1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSMutableURLRequest1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLParser extends NSObject {
+  NSXMLParser._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLParser] that points to the same underlying object as [other].
+  static NSXMLParser castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLParser._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLParser] that wraps the given raw object pointer.
+  static NSXMLParser castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLParser._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLParser].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLParser1);
+  }
+
+  NSXMLParser initWithContentsOfURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id, _lib._sel_initWithContentsOfURL_1, url?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLParser initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLParser initWithStream_(NSInputStream? stream) {
+    final _ret = _lib._objc_msgSend_899(
+        _id, _lib._sel_initWithStream_1, stream?._id ?? ffi.nullptr);
+    return NSXMLParser._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get shouldProcessNamespaces {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldProcessNamespaces1);
+  }
+
+  set shouldProcessNamespaces(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setShouldProcessNamespaces_1, value);
+  }
+
+  bool get shouldReportNamespacePrefixes {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldReportNamespacePrefixes1);
+  }
+
+  set shouldReportNamespacePrefixes(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldReportNamespacePrefixes_1, value);
+  }
+
+  int get externalEntityResolvingPolicy {
+    return _lib._objc_msgSend_900(
+        _id, _lib._sel_externalEntityResolvingPolicy1);
+  }
+
+  set externalEntityResolvingPolicy(int value) {
+    _lib._objc_msgSend_901(
+        _id, _lib._sel_setExternalEntityResolvingPolicy_1, value);
+  }
+
+  NSSet? get allowedExternalEntityURLs {
+    final _ret =
+        _lib._objc_msgSend_280(_id, _lib._sel_allowedExternalEntityURLs1);
+    return _ret.address == 0
+        ? null
+        : NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  set allowedExternalEntityURLs(NSSet? value) {
+    _lib._objc_msgSend_902(_id, _lib._sel_setAllowedExternalEntityURLs_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool parse() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_parse1);
+  }
+
+  void abortParsing() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_abortParsing1);
+  }
+
+  NSError? get parserError {
+    final _ret = _lib._objc_msgSend_283(_id, _lib._sel_parserError1);
+    return _ret.address == 0
+        ? null
+        : NSError._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get shouldResolveExternalEntities {
+    return _lib._objc_msgSend_12(_id, _lib._sel_shouldResolveExternalEntities1);
+  }
+
+  set shouldResolveExternalEntities(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldResolveExternalEntities_1, value);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get lineNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_lineNumber1);
+  }
+
+  int get columnNumber {
+    return _lib._objc_msgSend_78(_id, _lib._sel_columnNumber1);
+  }
+
+  static NSXMLParser new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLParser1, _lib._sel_new1);
+    return NSXMLParser._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLParser alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLParser1, _lib._sel_alloc1);
+    return NSXMLParser._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLParser1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLParser1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLParser1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLParser1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLParser1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLParser1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLParser1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLParser1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLParser1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLParserExternalEntityResolvingPolicy {
+  static const int NSXMLParserResolveExternalEntitiesNever = 0;
+  static const int NSXMLParserResolveExternalEntitiesNoNetwork = 1;
+  static const int NSXMLParserResolveExternalEntitiesSameOriginOnly = 2;
+  static const int NSXMLParserResolveExternalEntitiesAlways = 3;
+}
+
+class NSFileWrapper extends NSObject {
+  NSFileWrapper._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSFileWrapper] that points to the same underlying object as [other].
+  static NSFileWrapper castFrom<T extends _ObjCWrapper>(T other) {
+    return NSFileWrapper._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSFileWrapper] that wraps the given raw object pointer.
+  static NSFileWrapper castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSFileWrapper._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSFileWrapper].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSFileWrapper1);
+  }
+
+  NSFileWrapper initWithURL_options_error_(
+      NSURL? url, int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    final _ret = _lib._objc_msgSend_903(
+        _id,
+        _lib._sel_initWithURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        options,
+        outError);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initDirectoryWithFileWrappers_(
+      NSDictionary? childrenByPreferredName) {
+    final _ret = _lib._objc_msgSend_143(
+        _id,
+        _lib._sel_initDirectoryWithFileWrappers_1,
+        childrenByPreferredName?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initRegularFileWithContents_(NSData? contents) {
+    final _ret = _lib._objc_msgSend_242(_id,
+        _lib._sel_initRegularFileWithContents_1, contents?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initSymbolicLinkWithDestinationURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_226(
+        _id,
+        _lib._sel_initSymbolicLinkWithDestinationURL_1,
+        url?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initWithSerializedRepresentation_(
+      NSData? serializeRepresentation) {
+    final _ret = _lib._objc_msgSend_242(
+        _id,
+        _lib._sel_initWithSerializedRepresentation_1,
+        serializeRepresentation?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSFileWrapper initWithCoder_(NSCoder? inCoder) {
+    final _ret = _lib._objc_msgSend_42(
+        _id, _lib._sel_initWithCoder_1, inCoder?._id ?? ffi.nullptr);
+    return NSFileWrapper._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool get directory {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDirectory1);
+  }
+
+  bool get regularFile {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRegularFile1);
+  }
+
+  bool get symbolicLink {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isSymbolicLink1);
+  }
+
+  NSString? get preferredFilename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_preferredFilename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set preferredFilename(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPreferredFilename_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get filename {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_filename1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set filename(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setFilename_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get fileAttributes {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_fileAttributes1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set fileAttributes(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setFileAttributes_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool matchesContentsOfURL_(NSURL? url) {
+    return _lib._objc_msgSend_229(
+        _id, _lib._sel_matchesContentsOfURL_1, url?._id ?? ffi.nullptr);
+  }
+
+  bool readFromURL_options_error_(
+      NSURL? url, int options, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_904(_id, _lib._sel_readFromURL_options_error_1,
+        url?._id ?? ffi.nullptr, options, outError);
+  }
+
+  bool writeToURL_options_originalContentsURL_error_(
+      NSURL? url,
+      int options,
+      NSURL? originalContentsURL,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {
+    return _lib._objc_msgSend_905(
+        _id,
+        _lib._sel_writeToURL_options_originalContentsURL_error_1,
+        url?._id ?? ffi.nullptr,
+        options,
+        originalContentsURL?._id ?? ffi.nullptr,
+        outError);
+  }
+
+  NSData? get serializedRepresentation {
+    final _ret =
+        _lib._objc_msgSend_39(_id, _lib._sel_serializedRepresentation1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addFileWrapper_(NSFileWrapper? child) {
+    final _ret = _lib._objc_msgSend_906(
+        _id, _lib._sel_addFileWrapper_1, child?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addRegularFileWithContents_preferredFilename_(
+      NSData? data, NSString? fileName) {
+    final _ret = _lib._objc_msgSend_907(
+        _id,
+        _lib._sel_addRegularFileWithContents_preferredFilename_1,
+        data?._id ?? ffi.nullptr,
+        fileName?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void removeFileWrapper_(NSFileWrapper? child) {
+    return _lib._objc_msgSend_908(
+        _id, _lib._sel_removeFileWrapper_1, child?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get fileWrappers {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_fileWrappers1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString keyForFileWrapper_(NSFileWrapper? child) {
+    final _ret = _lib._objc_msgSend_906(
+        _id, _lib._sel_keyForFileWrapper_1, child?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData? get regularFileContents {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_regularFileContents1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get symbolicLinkDestinationURL {
+    final _ret =
+        _lib._objc_msgSend_40(_id, _lib._sel_symbolicLinkDestinationURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithPath_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject initSymbolicLinkWithDestination_(NSString? path) {
+    final _ret = _lib._objc_msgSend_30(_id,
+        _lib._sel_initSymbolicLinkWithDestination_1, path?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool needsToBeUpdatedFromPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_needsToBeUpdatedFromPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool updateFromPath_(NSString? path) {
+    return _lib._objc_msgSend_59(
+        _id, _lib._sel_updateFromPath_1, path?._id ?? ffi.nullptr);
+  }
+
+  bool writeToFile_atomically_updateFilenames_(
+      NSString? path, bool atomicFlag, bool updateFilenamesFlag) {
+    return _lib._objc_msgSend_909(
+        _id,
+        _lib._sel_writeToFile_atomically_updateFilenames_1,
+        path?._id ?? ffi.nullptr,
+        atomicFlag,
+        updateFilenamesFlag);
+  }
+
+  NSString addFileWithPath_(NSString? path) {
+    final _ret = _lib._objc_msgSend_64(
+        _id, _lib._sel_addFileWithPath_1, path?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString addSymbolicLinkWithDestination_preferredFilename_(
+      NSString? path, NSString? filename) {
+    final _ret = _lib._objc_msgSend_324(
+        _id,
+        _lib._sel_addSymbolicLinkWithDestination_preferredFilename_1,
+        path?._id ?? ffi.nullptr,
+        filename?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString symbolicLinkDestination() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_symbolicLinkDestination1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSFileWrapper new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileWrapper1, _lib._sel_new1);
+    return NSFileWrapper._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSFileWrapper alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSFileWrapper1, _lib._sel_alloc1);
+    return NSFileWrapper._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSFileWrapper1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileWrapper1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSFileWrapper1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSFileWrapper1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSFileWrapper1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSFileWrapper1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSFileWrapperReadingOptions {
+  static const int NSFileWrapperReadingImmediate = 1;
+  static const int NSFileWrapperReadingWithoutMapping = 2;
+}
+
+abstract class NSFileWrapperWritingOptions {
+  static const int NSFileWrapperWritingAtomic = 1;
+  static const int NSFileWrapperWritingWithNameUpdating = 2;
+}
+
+class NSURLSession extends NSObject {
+  NSURLSession._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSession] that points to the same underlying object as [other].
+  static NSURLSession castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSession._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSession] that wraps the given raw object pointer.
+  static NSURLSession castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSession._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSession].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSURLSession1);
+  }
+
+  static NSURLSession? getSharedSession(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_910(
+        _lib._class_NSURLSession1, _lib._sel_sharedSession1);
+    return _ret.address == 0
+        ? null
+        : NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession sessionWithConfiguration_(
+      SwiftLibrary _lib, NSURLSessionConfiguration? configuration) {
+    final _ret = _lib._objc_msgSend_921(
+        _lib._class_NSURLSession1,
+        _lib._sel_sessionWithConfiguration_1,
+        configuration?._id ?? ffi.nullptr);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession sessionWithConfiguration_delegate_delegateQueue_(
+      SwiftLibrary _lib,
+      NSURLSessionConfiguration? configuration,
+      NSObject? delegate,
+      NSOperationQueue? queue) {
+    final _ret = _lib._objc_msgSend_922(
+        _lib._class_NSURLSession1,
+        _lib._sel_sessionWithConfiguration_delegate_delegateQueue_1,
+        configuration?._id ?? ffi.nullptr,
+        delegate?._id ?? ffi.nullptr,
+        queue?._id ?? ffi.nullptr);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSOperationQueue? get delegateQueue {
+    final _ret = _lib._objc_msgSend_790(_id, _lib._sel_delegateQueue1);
+    return _ret.address == 0
+        ? null
+        : NSOperationQueue._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionConfiguration? get configuration {
+    final _ret = _lib._objc_msgSend_911(_id, _lib._sel_configuration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get sessionDescription {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sessionDescription1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set sessionDescription(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSessionDescription_1, value?._id ?? ffi.nullptr);
+  }
+
+  void finishTasksAndInvalidate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_finishTasksAndInvalidate1);
+  }
+
+  void invalidateAndCancel() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_invalidateAndCancel1);
+  }
+
+  void resetWithCompletionHandler_(ObjCBlock16 completionHandler) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_resetWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void flushWithCompletionHandler_(ObjCBlock16 completionHandler) {
+    return _lib._objc_msgSend_465(
+        _id, _lib._sel_flushWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void getTasksWithCompletionHandler_(ObjCBlock37 completionHandler) {
+    return _lib._objc_msgSend_923(
+        _id, _lib._sel_getTasksWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void getAllTasksWithCompletionHandler_(ObjCBlock30 completionHandler) {
+    return _lib._objc_msgSend_924(_id,
+        _lib._sel_getAllTasksWithCompletionHandler_1, completionHandler._id);
+  }
+
+  NSURLSessionDataTask dataTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_925(
+        _id, _lib._sel_dataTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_926(
+        _id, _lib._sel_dataTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromFile_(
+      NSURLRequest? request, NSURL? fileURL) {
+    final _ret = _lib._objc_msgSend_927(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromFile_1,
+        request?._id ?? ffi.nullptr,
+        fileURL?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromData_(
+      NSURLRequest? request, NSData? bodyData) {
+    final _ret = _lib._objc_msgSend_928(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromData_1,
+        request?._id ?? ffi.nullptr,
+        bodyData?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithStreamedRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_929(_id,
+        _lib._sel_uploadTaskWithStreamedRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_931(
+        _id, _lib._sel_downloadTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_932(
+        _id, _lib._sel_downloadTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithResumeData_(NSData? resumeData) {
+    final _ret = _lib._objc_msgSend_933(_id,
+        _lib._sel_downloadTaskWithResumeData_1, resumeData?._id ?? ffi.nullptr);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionStreamTask streamTaskWithHostName_port_(
+      NSString? hostname, int port) {
+    final _ret = _lib._objc_msgSend_936(
+        _id,
+        _lib._sel_streamTaskWithHostName_port_1,
+        hostname?._id ?? ffi.nullptr,
+        port);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionStreamTask streamTaskWithNetService_(NSNetService? service) {
+    final _ret = _lib._objc_msgSend_942(
+        _id, _lib._sel_streamTaskWithNetService_1, service?._id ?? ffi.nullptr);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithURL_(NSURL? url) {
+    final _ret = _lib._objc_msgSend_949(
+        _id, _lib._sel_webSocketTaskWithURL_1, url?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithURL_protocols_(
+      NSURL? url, NSArray? protocols) {
+    final _ret = _lib._objc_msgSend_950(
+        _id,
+        _lib._sel_webSocketTaskWithURL_protocols_1,
+        url?._id ?? ffi.nullptr,
+        protocols?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketTask webSocketTaskWithRequest_(NSURLRequest? request) {
+    final _ret = _lib._objc_msgSend_951(
+        _id, _lib._sel_webSocketTaskWithRequest_1, request?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSession init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSession._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSession1, _lib._sel_new1);
+    return NSURLSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithRequest_completionHandler_(
+      NSURLRequest? request, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_952(
+        _id,
+        _lib._sel_dataTaskWithRequest_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDataTask dataTaskWithURL_completionHandler_(
+      NSURL? url, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_953(
+        _id,
+        _lib._sel_dataTaskWithURL_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDataTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromFile_completionHandler_(
+      NSURLRequest? request, NSURL? fileURL, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_954(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromFile_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        fileURL?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionUploadTask uploadTaskWithRequest_fromData_completionHandler_(
+      NSURLRequest? request, NSData? bodyData, ObjCBlock41 completionHandler) {
+    final _ret = _lib._objc_msgSend_955(
+        _id,
+        _lib._sel_uploadTaskWithRequest_fromData_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        bodyData?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithRequest_completionHandler_(
+      NSURLRequest? request, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_956(
+        _id,
+        _lib._sel_downloadTaskWithRequest_completionHandler_1,
+        request?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithURL_completionHandler_(
+      NSURL? url, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_957(
+        _id,
+        _lib._sel_downloadTaskWithURL_completionHandler_1,
+        url?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURLSessionDownloadTask downloadTaskWithResumeData_completionHandler_(
+      NSData? resumeData, ObjCBlock42 completionHandler) {
+    final _ret = _lib._objc_msgSend_958(
+        _id,
+        _lib._sel_downloadTaskWithResumeData_completionHandler_1,
+        resumeData?._id ?? ffi.nullptr,
+        completionHandler._id);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSession alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSURLSession1, _lib._sel_alloc1);
+    return NSURLSession._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSession1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSession1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSession1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSession1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSession1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSession1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLSession1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSession1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionConfiguration extends NSObject {
+  NSURLSessionConfiguration._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionConfiguration] that points to the same underlying object as [other].
+  static NSURLSessionConfiguration castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionConfiguration._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionConfiguration] that wraps the given raw object pointer.
+  static NSURLSessionConfiguration castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionConfiguration._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionConfiguration].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionConfiguration1);
+  }
+
+  static NSURLSessionConfiguration? getDefaultSessionConfiguration(
+      SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_911(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_defaultSessionConfiguration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration? getEphemeralSessionConfiguration(
+      SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_911(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_ephemeralSessionConfiguration1);
+    return _ret.address == 0
+        ? null
+        : NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration
+      backgroundSessionConfigurationWithIdentifier_(
+          SwiftLibrary _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_912(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_backgroundSessionConfigurationWithIdentifier_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get identifier {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_identifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get requestCachePolicy {
+    return _lib._objc_msgSend_748(_id, _lib._sel_requestCachePolicy1);
+  }
+
+  set requestCachePolicy(int value) {
+    _lib._objc_msgSend_889(_id, _lib._sel_setRequestCachePolicy_1, value);
+  }
+
+  double get timeoutIntervalForRequest {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutIntervalForRequest1);
+  }
+
+  set timeoutIntervalForRequest(double value) {
+    _lib._objc_msgSend_474(
+        _id, _lib._sel_setTimeoutIntervalForRequest_1, value);
+  }
+
+  double get timeoutIntervalForResource {
+    return _lib._objc_msgSend_149(_id, _lib._sel_timeoutIntervalForResource1);
+  }
+
+  set timeoutIntervalForResource(double value) {
+    _lib._objc_msgSend_474(
+        _id, _lib._sel_setTimeoutIntervalForResource_1, value);
+  }
+
+  int get networkServiceType {
+    return _lib._objc_msgSend_749(_id, _lib._sel_networkServiceType1);
+  }
+
+  set networkServiceType(int value) {
+    _lib._objc_msgSend_890(_id, _lib._sel_setNetworkServiceType_1, value);
+  }
+
+  bool get allowsCellularAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsCellularAccess1);
+  }
+
+  set allowsCellularAccess(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setAllowsCellularAccess_1, value);
+  }
+
+  bool get allowsExpensiveNetworkAccess {
+    return _lib._objc_msgSend_12(_id, _lib._sel_allowsExpensiveNetworkAccess1);
+  }
+
+  set allowsExpensiveNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsExpensiveNetworkAccess_1, value);
+  }
+
+  bool get allowsConstrainedNetworkAccess {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_allowsConstrainedNetworkAccess1);
+  }
+
+  set allowsConstrainedNetworkAccess(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setAllowsConstrainedNetworkAccess_1, value);
+  }
+
+  bool get waitsForConnectivity {
+    return _lib._objc_msgSend_12(_id, _lib._sel_waitsForConnectivity1);
+  }
+
+  set waitsForConnectivity(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setWaitsForConnectivity_1, value);
+  }
+
+  bool get discretionary {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isDiscretionary1);
+  }
+
+  set discretionary(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setDiscretionary_1, value);
+  }
+
+  NSString? get sharedContainerIdentifier {
+    final _ret =
+        _lib._objc_msgSend_20(_id, _lib._sel_sharedContainerIdentifier1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set sharedContainerIdentifier(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setSharedContainerIdentifier_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  bool get sessionSendsLaunchEvents {
+    return _lib._objc_msgSend_12(_id, _lib._sel_sessionSendsLaunchEvents1);
+  }
+
+  set sessionSendsLaunchEvents(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setSessionSendsLaunchEvents_1, value);
+  }
+
+  NSDictionary? get connectionProxyDictionary {
+    final _ret =
+        _lib._objc_msgSend_164(_id, _lib._sel_connectionProxyDictionary1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set connectionProxyDictionary(NSDictionary? value) {
+    _lib._objc_msgSend_165(_id, _lib._sel_setConnectionProxyDictionary_1,
+        value?._id ?? ffi.nullptr);
+  }
+
+  int get TLSMinimumSupportedProtocol {
+    return _lib._objc_msgSend_913(_id, _lib._sel_TLSMinimumSupportedProtocol1);
+  }
+
+  set TLSMinimumSupportedProtocol(int value) {
+    _lib._objc_msgSend_914(
+        _id, _lib._sel_setTLSMinimumSupportedProtocol_1, value);
+  }
+
+  int get TLSMaximumSupportedProtocol {
+    return _lib._objc_msgSend_913(_id, _lib._sel_TLSMaximumSupportedProtocol1);
+  }
+
+  set TLSMaximumSupportedProtocol(int value) {
+    _lib._objc_msgSend_914(
+        _id, _lib._sel_setTLSMaximumSupportedProtocol_1, value);
+  }
+
+  int get TLSMinimumSupportedProtocolVersion {
+    return _lib._objc_msgSend_915(
+        _id, _lib._sel_TLSMinimumSupportedProtocolVersion1);
+  }
+
+  set TLSMinimumSupportedProtocolVersion(int value) {
+    _lib._objc_msgSend_916(
+        _id, _lib._sel_setTLSMinimumSupportedProtocolVersion_1, value);
+  }
+
+  int get TLSMaximumSupportedProtocolVersion {
+    return _lib._objc_msgSend_915(
+        _id, _lib._sel_TLSMaximumSupportedProtocolVersion1);
+  }
+
+  set TLSMaximumSupportedProtocolVersion(int value) {
+    _lib._objc_msgSend_916(
+        _id, _lib._sel_setTLSMaximumSupportedProtocolVersion_1, value);
+  }
+
+  bool get HTTPShouldUsePipelining {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldUsePipelining1);
+  }
+
+  set HTTPShouldUsePipelining(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldUsePipelining_1, value);
+  }
+
+  bool get HTTPShouldSetCookies {
+    return _lib._objc_msgSend_12(_id, _lib._sel_HTTPShouldSetCookies1);
+  }
+
+  set HTTPShouldSetCookies(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setHTTPShouldSetCookies_1, value);
+  }
+
+  int get HTTPCookieAcceptPolicy {
+    return _lib._objc_msgSend_745(_id, _lib._sel_HTTPCookieAcceptPolicy1);
+  }
+
+  set HTTPCookieAcceptPolicy(int value) {
+    _lib._objc_msgSend_746(_id, _lib._sel_setHTTPCookieAcceptPolicy_1, value);
+  }
+
+  NSDictionary? get HTTPAdditionalHeaders {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_HTTPAdditionalHeaders1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPAdditionalHeaders(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setHTTPAdditionalHeaders_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get HTTPMaximumConnectionsPerHost {
+    return _lib._objc_msgSend_78(_id, _lib._sel_HTTPMaximumConnectionsPerHost1);
+  }
+
+  set HTTPMaximumConnectionsPerHost(int value) {
+    _lib._objc_msgSend_558(
+        _id, _lib._sel_setHTTPMaximumConnectionsPerHost_1, value);
+  }
+
+  NSHTTPCookieStorage? get HTTPCookieStorage {
+    final _ret = _lib._objc_msgSend_739(_id, _lib._sel_HTTPCookieStorage1);
+    return _ret.address == 0
+        ? null
+        : NSHTTPCookieStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  set HTTPCookieStorage(NSHTTPCookieStorage? value) {
+    _lib._objc_msgSend_917(
+        _id, _lib._sel_setHTTPCookieStorage_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCredentialStorage? get URLCredentialStorage {
+    final _ret = _lib._objc_msgSend_874(_id, _lib._sel_URLCredentialStorage1);
+    return _ret.address == 0
+        ? null
+        : NSURLCredentialStorage._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URLCredentialStorage(NSURLCredentialStorage? value) {
+    _lib._objc_msgSend_918(
+        _id, _lib._sel_setURLCredentialStorage_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURLCache? get URLCache {
+    final _ret = _lib._objc_msgSend_844(_id, _lib._sel_URLCache1);
+    return _ret.address == 0
+        ? null
+        : NSURLCache._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URLCache(NSURLCache? value) {
+    _lib._objc_msgSend_845(
+        _id, _lib._sel_setURLCache_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get shouldUseExtendedBackgroundIdleMode {
+    return _lib._objc_msgSend_12(
+        _id, _lib._sel_shouldUseExtendedBackgroundIdleMode1);
+  }
+
+  set shouldUseExtendedBackgroundIdleMode(bool value) {
+    _lib._objc_msgSend_460(
+        _id, _lib._sel_setShouldUseExtendedBackgroundIdleMode_1, value);
+  }
+
+  NSArray? get protocolClasses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_protocolClasses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set protocolClasses(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setProtocolClasses_1, value?._id ?? ffi.nullptr);
+  }
+
+  int get multipathServiceType {
+    return _lib._objc_msgSend_919(_id, _lib._sel_multipathServiceType1);
+  }
+
+  set multipathServiceType(int value) {
+    _lib._objc_msgSend_920(_id, _lib._sel_setMultipathServiceType_1, value);
+  }
+
+  @override
+  NSURLSessionConfiguration init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_new1);
+    return NSURLSessionConfiguration._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionConfiguration backgroundSessionConfiguration_(
+      SwiftLibrary _lib, NSString? identifier) {
+    final _ret = _lib._objc_msgSend_912(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_backgroundSessionConfiguration_1,
+        identifier?._id ?? ffi.nullptr);
+    return NSURLSessionConfiguration._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionConfiguration alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_alloc1);
+    return NSURLSessionConfiguration._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionConfiguration1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionConfiguration1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionConfiguration1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class SSLProtocol {
+  static const int kSSLProtocolUnknown = 0;
+  static const int kTLSProtocol1 = 4;
+  static const int kTLSProtocol11 = 7;
+  static const int kTLSProtocol12 = 8;
+  static const int kDTLSProtocol1 = 9;
+  static const int kTLSProtocol13 = 10;
+  static const int kDTLSProtocol12 = 11;
+  static const int kTLSProtocolMaxSupported = 999;
+  static const int kSSLProtocol2 = 1;
+  static const int kSSLProtocol3 = 2;
+  static const int kSSLProtocol3Only = 3;
+  static const int kTLSProtocol1Only = 5;
+  static const int kSSLProtocolAll = 6;
+}
+
+abstract class tls_protocol_version_t {
+  static const int tls_protocol_version_TLSv10 = 769;
+  static const int tls_protocol_version_TLSv11 = 770;
+  static const int tls_protocol_version_TLSv12 = 771;
+  static const int tls_protocol_version_TLSv13 = 772;
+  static const int tls_protocol_version_DTLSv10 = -257;
+  static const int tls_protocol_version_DTLSv12 = -259;
+}
+
+abstract class NSURLSessionMultipathServiceType {
+  static const int NSURLSessionMultipathServiceTypeNone = 0;
+  static const int NSURLSessionMultipathServiceTypeHandover = 1;
+  static const int NSURLSessionMultipathServiceTypeInteractive = 2;
+  static const int NSURLSessionMultipathServiceTypeAggregate = 3;
+}
+
+void _ObjCBlock37_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock37_closureRegistry = <int, Function>{};
+int _ObjCBlock37_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock37_registerClosure(Function fn) {
+  final id = ++_ObjCBlock37_closureRegistryIndex;
+  _ObjCBlock37_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock37_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock37_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock37 extends _ObjCBlockBase {
+  ObjCBlock37._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock37.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock37_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock37.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock37_closureTrampoline)
+                    .cast(),
+                _ObjCBlock37_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLSessionUploadTask extends NSURLSessionDataTask {
+  NSURLSessionUploadTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionUploadTask] that points to the same underlying object as [other].
+  static NSURLSessionUploadTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionUploadTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionUploadTask] that wraps the given raw object pointer.
+  static NSURLSessionUploadTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionUploadTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionUploadTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionUploadTask1);
+  }
+
+  @override
+  NSURLSessionUploadTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionUploadTask new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_new1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionUploadTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_alloc1);
+    return NSURLSessionUploadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionUploadTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionUploadTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionUploadTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionDownloadTask extends NSURLSessionTask {
+  NSURLSessionDownloadTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionDownloadTask] that points to the same underlying object as [other].
+  static NSURLSessionDownloadTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionDownloadTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionDownloadTask] that wraps the given raw object pointer.
+  static NSURLSessionDownloadTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionDownloadTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionDownloadTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionDownloadTask1);
+  }
+
+  void cancelByProducingResumeData_(ObjCBlock38 completionHandler) {
+    return _lib._objc_msgSend_930(
+        _id, _lib._sel_cancelByProducingResumeData_1, completionHandler._id);
+  }
+
+  @override
+  NSURLSessionDownloadTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionDownloadTask new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_new1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionDownloadTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_alloc1);
+    return NSURLSessionDownloadTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionDownloadTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionDownloadTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock38_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock38_closureRegistry = <int, Function>{};
+int _ObjCBlock38_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock38_registerClosure(Function fn) {
+  final id = ++_ObjCBlock38_closureRegistryIndex;
+  _ObjCBlock38_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock38_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock38_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock38 extends _ObjCBlockBase {
+  ObjCBlock38._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock38.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock38_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock38.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock38_closureTrampoline)
+                    .cast(),
+                _ObjCBlock38_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSURLSessionStreamTask extends NSURLSessionTask {
+  NSURLSessionStreamTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionStreamTask] that points to the same underlying object as [other].
+  static NSURLSessionStreamTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionStreamTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionStreamTask] that wraps the given raw object pointer.
+  static NSURLSessionStreamTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionStreamTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionStreamTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionStreamTask1);
+  }
+
+  void readDataOfMinLength_maxLength_timeout_completionHandler_(int minBytes,
+      int maxBytes, double timeout, ObjCBlock39 completionHandler) {
+    return _lib._objc_msgSend_934(
+        _id,
+        _lib._sel_readDataOfMinLength_maxLength_timeout_completionHandler_1,
+        minBytes,
+        maxBytes,
+        timeout,
+        completionHandler._id);
+  }
+
+  void writeData_timeout_completionHandler_(
+      NSData? data, double timeout, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_935(
+        _id,
+        _lib._sel_writeData_timeout_completionHandler_1,
+        data?._id ?? ffi.nullptr,
+        timeout,
+        completionHandler._id);
+  }
+
+  void captureStreams() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_captureStreams1);
+  }
+
+  void closeWrite() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeWrite1);
+  }
+
+  void closeRead() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_closeRead1);
+  }
+
+  void startSecureConnection() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startSecureConnection1);
+  }
+
+  void stopSecureConnection() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopSecureConnection1);
+  }
+
+  @override
+  NSURLSessionStreamTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionStreamTask new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_new1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSURLSessionStreamTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_alloc1);
+    return NSURLSessionStreamTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionStreamTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionStreamTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionStreamTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+void _ObjCBlock39_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock39_closureRegistry = <int, Function>{};
+int _ObjCBlock39_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock39_registerClosure(Function fn) {
+  final id = ++_ObjCBlock39_closureRegistryIndex;
+  _ObjCBlock39_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock39_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock39_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock39 extends _ObjCBlockBase {
+  ObjCBlock39._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock39.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0, ffi.Bool arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock39_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock39.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, bool arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Bool arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock39_closureTrampoline)
+                    .cast(),
+                _ObjCBlock39_registerClosure(fn)),
+            lib);
+  void call(
+      ffi.Pointer<ObjCObject> arg0, bool arg1, ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Bool arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                bool arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSNetService extends NSObject {
+  NSNetService._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSNetService] that points to the same underlying object as [other].
+  static NSNetService castFrom<T extends _ObjCWrapper>(T other) {
+    return NSNetService._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSNetService] that wraps the given raw object pointer.
+  static NSNetService castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSNetService._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSNetService].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSNetService1);
+  }
+
+  NSNetService initWithDomain_type_name_port_(
+      NSString? domain, NSString? type, NSString? name, int port) {
+    final _ret = _lib._objc_msgSend_937(
+        _id,
+        _lib._sel_initWithDomain_type_name_port_1,
+        domain?._id ?? ffi.nullptr,
+        type?._id ?? ffi.nullptr,
+        name?._id ?? ffi.nullptr,
+        port);
+    return NSNetService._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSNetService initWithDomain_type_name_(
+      NSString? domain, NSString? type, NSString? name) {
+    final _ret = _lib._objc_msgSend_26(
+        _id,
+        _lib._sel_initWithDomain_type_name_1,
+        domain?._id ?? ffi.nullptr,
+        type?._id ?? ffi.nullptr,
+        name?._id ?? ffi.nullptr);
+    return NSNetService._(_ret, _lib, retain: true, release: true);
+  }
+
+  void scheduleInRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_scheduleInRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  void removeFromRunLoop_forMode_(NSRunLoop? aRunLoop, NSRunLoopMode mode) {
+    return _lib._objc_msgSend_501(_id, _lib._sel_removeFromRunLoop_forMode_1,
+        aRunLoop?._id ?? ffi.nullptr, mode);
+  }
+
+  NSObject? get delegate {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_delegate1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set delegate(NSObject? value) {
+    _lib._objc_msgSend_368(
+        _id, _lib._sel_setDelegate_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get includesPeerToPeer {
+    return _lib._objc_msgSend_12(_id, _lib._sel_includesPeerToPeer1);
+  }
+
+  set includesPeerToPeer(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setIncludesPeerToPeer_1, value);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get type {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_type1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get domain {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_domain1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get hostName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_hostName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray? get addresses {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_addresses1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get port {
+    return _lib._objc_msgSend_78(_id, _lib._sel_port1);
+  }
+
+  void publish() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_publish1);
+  }
+
+  void publishWithOptions_(int options) {
+    return _lib._objc_msgSend_938(_id, _lib._sel_publishWithOptions_1, options);
+  }
+
+  void resolve() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_resolve1);
+  }
+
+  void stop() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stop1);
+  }
+
+  static NSDictionary dictionaryFromTXTRecordData_(
+      SwiftLibrary _lib, NSData? txtData) {
+    final _ret = _lib._objc_msgSend_939(_lib._class_NSNetService1,
+        _lib._sel_dictionaryFromTXTRecordData_1, txtData?._id ?? ffi.nullptr);
+    return NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSData dataFromTXTRecordDictionary_(
+      SwiftLibrary _lib, NSDictionary? txtDictionary) {
+    final _ret = _lib._objc_msgSend_940(
+        _lib._class_NSNetService1,
+        _lib._sel_dataFromTXTRecordDictionary_1,
+        txtDictionary?._id ?? ffi.nullptr);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void resolveWithTimeout_(double timeout) {
+    return _lib._objc_msgSend_473(_id, _lib._sel_resolveWithTimeout_1, timeout);
+  }
+
+  bool getInputStream_outputStream_(
+      ffi.Pointer<ffi.Pointer<ObjCObject>> inputStream,
+      ffi.Pointer<ffi.Pointer<ObjCObject>> outputStream) {
+    return _lib._objc_msgSend_941(_id, _lib._sel_getInputStream_outputStream_1,
+        inputStream, outputStream);
+  }
+
+  bool setTXTRecordData_(NSData? recordData) {
+    return _lib._objc_msgSend_23(
+        _id, _lib._sel_setTXTRecordData_1, recordData?._id ?? ffi.nullptr);
+  }
+
+  NSData TXTRecordData() {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_TXTRecordData1);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  void startMonitoring() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_startMonitoring1);
+  }
+
+  void stopMonitoring() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_stopMonitoring1);
+  }
+
+  static NSNetService new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNetService1, _lib._sel_new1);
+    return NSNetService._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSNetService alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSNetService1, _lib._sel_alloc1);
+    return NSNetService._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSNetService1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSNetService1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNetService1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSNetService1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSNetService1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSNetService1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSNetService1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSNetService1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSNetService1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSNetServiceOptions {
+  static const int NSNetServiceNoAutoRename = 1;
+  static const int NSNetServiceListenForConnections = 2;
+}
+
+class NSURLSessionWebSocketTask extends NSURLSessionTask {
+  NSURLSessionWebSocketTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionWebSocketTask] that points to the same underlying object as [other].
+  static NSURLSessionWebSocketTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSURLSessionWebSocketTask._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionWebSocketTask] that wraps the given raw object pointer.
+  static NSURLSessionWebSocketTask castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionWebSocketTask._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionWebSocketTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionWebSocketTask1);
+  }
+
+  void sendMessage_completionHandler_(
+      NSURLSessionWebSocketMessage? message, ObjCBlock15 completionHandler) {
+    return _lib._objc_msgSend_944(
+        _id,
+        _lib._sel_sendMessage_completionHandler_1,
+        message?._id ?? ffi.nullptr,
+        completionHandler._id);
+  }
+
+  void receiveMessageWithCompletionHandler_(ObjCBlock40 completionHandler) {
+    return _lib._objc_msgSend_945(_id,
+        _lib._sel_receiveMessageWithCompletionHandler_1, completionHandler._id);
+  }
+
+  void sendPingWithPongReceiveHandler_(ObjCBlock15 pongReceiveHandler) {
+    return _lib._objc_msgSend_946(_id,
+        _lib._sel_sendPingWithPongReceiveHandler_1, pongReceiveHandler._id);
+  }
+
+  void cancelWithCloseCode_reason_(int closeCode, NSData? reason) {
+    return _lib._objc_msgSend_947(_id, _lib._sel_cancelWithCloseCode_reason_1,
+        closeCode, reason?._id ?? ffi.nullptr);
+  }
+
+  int get maximumMessageSize {
+    return _lib._objc_msgSend_78(_id, _lib._sel_maximumMessageSize1);
+  }
+
+  set maximumMessageSize(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setMaximumMessageSize_1, value);
+  }
+
+  int get closeCode {
+    return _lib._objc_msgSend_948(_id, _lib._sel_closeCode1);
+  }
+
+  NSData? get closeReason {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_closeReason1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSessionWebSocketTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionWebSocketTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSURLSessionWebSocketTask new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_new1);
+    return NSURLSessionWebSocketTask._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionWebSocketTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_alloc1);
+    return NSURLSessionWebSocketTask._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSURLSessionWebSocketTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionWebSocketTask1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSURLSessionWebSocketMessage extends NSObject {
+  NSURLSessionWebSocketMessage._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSURLSessionWebSocketMessage] that points to the same underlying object as [other].
+  static NSURLSessionWebSocketMessage castFrom<T extends _ObjCWrapper>(
+      T other) {
+    return NSURLSessionWebSocketMessage._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSURLSessionWebSocketMessage] that wraps the given raw object pointer.
+  static NSURLSessionWebSocketMessage castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSURLSessionWebSocketMessage._(other, lib,
+        retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSURLSessionWebSocketMessage].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSURLSessionWebSocketMessage1);
+  }
+
+  NSURLSessionWebSocketMessage initWithData_(NSData? data) {
+    final _ret = _lib._objc_msgSend_242(
+        _id, _lib._sel_initWithData_1, data?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  NSURLSessionWebSocketMessage initWithString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithString_1, string?._id ?? ffi.nullptr);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  int get type {
+    return _lib._objc_msgSend_943(_id, _lib._sel_type1);
+  }
+
+  NSData? get data {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_data1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get string {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_string1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSURLSessionWebSocketMessage init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: true, release: true);
+  }
+
+  static NSURLSessionWebSocketMessage new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketMessage1, _lib._sel_new1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static NSURLSessionWebSocketMessage alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSURLSessionWebSocketMessage1, _lib._sel_alloc1);
+    return NSURLSessionWebSocketMessage._(_ret, _lib,
+        retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSURLSessionWebSocketMessage1,
+        _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSURLSessionWebSocketMessageType {
+  static const int NSURLSessionWebSocketMessageTypeData = 0;
+  static const int NSURLSessionWebSocketMessageTypeString = 1;
+}
+
+void _ObjCBlock40_fnPtrTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1)>>()
+      .asFunction<
+          void Function(ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1)>()(arg0, arg1);
+}
+
+final _ObjCBlock40_closureRegistry = <int, Function>{};
+int _ObjCBlock40_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock40_registerClosure(Function fn) {
+  final id = ++_ObjCBlock40_closureRegistryIndex;
+  _ObjCBlock40_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock40_closureTrampoline(ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+  return _ObjCBlock40_closureRegistry[block.ref.target.address]!(arg0, arg1);
+}
+
+class ObjCBlock40 extends _ObjCBlockBase {
+  ObjCBlock40._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock40.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock40_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock40.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1)>(
+                        _ObjCBlock40_closureTrampoline)
+                    .cast(),
+                _ObjCBlock40_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1)>()(_id, arg0, arg1);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+abstract class NSURLSessionWebSocketCloseCode {
+  static const int NSURLSessionWebSocketCloseCodeInvalid = 0;
+  static const int NSURLSessionWebSocketCloseCodeNormalClosure = 1000;
+  static const int NSURLSessionWebSocketCloseCodeGoingAway = 1001;
+  static const int NSURLSessionWebSocketCloseCodeProtocolError = 1002;
+  static const int NSURLSessionWebSocketCloseCodeUnsupportedData = 1003;
+  static const int NSURLSessionWebSocketCloseCodeNoStatusReceived = 1005;
+  static const int NSURLSessionWebSocketCloseCodeAbnormalClosure = 1006;
+  static const int NSURLSessionWebSocketCloseCodeInvalidFramePayloadData = 1007;
+  static const int NSURLSessionWebSocketCloseCodePolicyViolation = 1008;
+  static const int NSURLSessionWebSocketCloseCodeMessageTooBig = 1009;
+  static const int NSURLSessionWebSocketCloseCodeMandatoryExtensionMissing =
+      1010;
+  static const int NSURLSessionWebSocketCloseCodeInternalServerError = 1011;
+  static const int NSURLSessionWebSocketCloseCodeTLSHandshakeFailure = 1015;
+}
+
+void _ObjCBlock41_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock41_closureRegistry = <int, Function>{};
+int _ObjCBlock41_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock41_registerClosure(Function fn) {
+  final id = ++_ObjCBlock41_closureRegistryIndex;
+  _ObjCBlock41_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock41_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock41_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock41 extends _ObjCBlockBase {
+  ObjCBlock41._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock41.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock41_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock41.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock41_closureTrampoline)
+                    .cast(),
+                _ObjCBlock41_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+void _ObjCBlock42_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<
+              ffi.Void Function(
+                  ffi.Pointer<ObjCObject> arg0,
+                  ffi.Pointer<ObjCObject> arg1,
+                  ffi.Pointer<ObjCObject> arg2)>>()
+      .asFunction<
+          void Function(
+              ffi.Pointer<ObjCObject> arg0,
+              ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)>()(arg0, arg1, arg2);
+}
+
+final _ObjCBlock42_closureRegistry = <int, Function>{};
+int _ObjCBlock42_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock42_registerClosure(Function fn) {
+  final id = ++_ObjCBlock42_closureRegistryIndex;
+  _ObjCBlock42_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock42_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block,
+    ffi.Pointer<ObjCObject> arg0,
+    ffi.Pointer<ObjCObject> arg1,
+    ffi.Pointer<ObjCObject> arg2) {
+  return _ObjCBlock42_closureRegistry[block.ref.target.address]!(
+      arg0, arg1, arg2);
+}
+
+class ObjCBlock42 extends _ObjCBlockBase {
+  ObjCBlock42._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock42.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(
+                      ffi.Pointer<ObjCObject> arg0,
+                      ffi.Pointer<ObjCObject> arg1,
+                      ffi.Pointer<ObjCObject> arg2)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock42_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock42.fromFunction(
+      SwiftLibrary lib,
+      void Function(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+              ffi.Pointer<ObjCObject> arg2)
+          fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(
+                                ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0,
+                                ffi.Pointer<ObjCObject> arg1,
+                                ffi.Pointer<ObjCObject> arg2)>(
+                        _ObjCBlock42_closureTrampoline)
+                    .cast(),
+                _ObjCBlock42_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0, ffi.Pointer<ObjCObject> arg1,
+      ffi.Pointer<ObjCObject> arg2) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(
+                    ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0,
+                    ffi.Pointer<ObjCObject> arg1,
+                    ffi.Pointer<ObjCObject> arg2)>>()
+        .asFunction<
+            void Function(
+                ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0,
+                ffi.Pointer<ObjCObject> arg1,
+                ffi.Pointer<ObjCObject> arg2)>()(_id, arg0, arg1, arg2);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSProtocolChecker extends NSProxy {
+  NSProtocolChecker._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSProtocolChecker] that points to the same underlying object as [other].
+  static NSProtocolChecker castFrom<T extends _ObjCWrapper>(T other) {
+    return NSProtocolChecker._(other._id, other._lib,
+        retain: true, release: true);
+  }
+
+  /// Returns a [NSProtocolChecker] that wraps the given raw object pointer.
+  static NSProtocolChecker castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSProtocolChecker._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSProtocolChecker].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(obj._id, obj._lib._sel_isKindOfClass_1,
+        obj._lib._class_NSProtocolChecker1);
+  }
+
+  Protocol? get protocol {
+    final _ret = _lib._objc_msgSend_959(_id, _lib._sel_protocol1);
+    return _ret.address == 0
+        ? null
+        : Protocol._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject? get target {
+    final _ret = _lib._objc_msgSend_788(_id, _lib._sel_target1);
+    return _ret.address == 0
+        ? null
+        : NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSProtocolChecker protocolCheckerWithTarget_protocol_(
+      SwiftLibrary _lib, NSObject? anObject, Protocol? aProtocol) {
+    final _ret = _lib._objc_msgSend_960(
+        _lib._class_NSProtocolChecker1,
+        _lib._sel_protocolCheckerWithTarget_protocol_1,
+        anObject?._id ?? ffi.nullptr,
+        aProtocol?._id ?? ffi.nullptr);
+    return NSProtocolChecker._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSProtocolChecker initWithTarget_protocol_(
+      NSObject? anObject, Protocol? aProtocol) {
+    final _ret = _lib._objc_msgSend_960(
+        _id,
+        _lib._sel_initWithTarget_protocol_1,
+        anObject?._id ?? ffi.nullptr,
+        aProtocol?._id ?? ffi.nullptr);
+    return NSProtocolChecker._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSProtocolChecker1, _lib._sel_alloc1);
+    return NSObject._(_ret, _lib, retain: false, release: true);
+  }
+
+  static bool respondsToSelector_(
+      SwiftLibrary _lib, ffi.Pointer<ObjCSel> aSelector) {
+    return _lib._objc_msgSend_4(_lib._class_NSProtocolChecker1,
+        _lib._sel_respondsToSelector_1, aSelector);
+  }
+}
+
+class NSTask extends NSObject {
+  NSTask._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSTask] that points to the same underlying object as [other].
+  static NSTask castFrom<T extends _ObjCWrapper>(T other) {
+    return NSTask._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSTask] that wraps the given raw object pointer.
+  static NSTask castFromPointer(SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSTask._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSTask].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSTask1);
+  }
+
+  @override
+  NSTask init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSURL? get executableURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_executableURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set executableURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setExecutableURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get arguments {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_arguments1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set arguments(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setArguments_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSDictionary? get environment {
+    final _ret = _lib._objc_msgSend_164(_id, _lib._sel_environment1);
+    return _ret.address == 0
+        ? null
+        : NSDictionary._(_ret, _lib, retain: true, release: true);
+  }
+
+  set environment(NSDictionary? value) {
+    _lib._objc_msgSend_165(
+        _id, _lib._sel_setEnvironment_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSURL? get currentDirectoryURL {
+    final _ret = _lib._objc_msgSend_40(_id, _lib._sel_currentDirectoryURL1);
+    return _ret.address == 0
+        ? null
+        : NSURL._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currentDirectoryURL(NSURL? value) {
+    _lib._objc_msgSend_888(
+        _id, _lib._sel_setCurrentDirectoryURL_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get standardInput {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardInput1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardInput(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardInput_1, value._id);
+  }
+
+  NSObject get standardOutput {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardOutput1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardOutput(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardOutput_1, value._id);
+  }
+
+  NSObject get standardError {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_standardError1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set standardError(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setStandardError_1, value._id);
+  }
+
+  bool launchAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(_id, _lib._sel_launchAndReturnError_1, error);
+  }
+
+  void interrupt() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_interrupt1);
+  }
+
+  void terminate() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_terminate1);
+  }
+
+  bool suspend() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_suspend1);
+  }
+
+  bool resume() {
+    return _lib._objc_msgSend_12(_id, _lib._sel_resume1);
+  }
+
+  int get processIdentifier {
+    return _lib._objc_msgSend_213(_id, _lib._sel_processIdentifier1);
+  }
+
+  bool get running {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isRunning1);
+  }
+
+  int get terminationStatus {
+    return _lib._objc_msgSend_213(_id, _lib._sel_terminationStatus1);
+  }
+
+  int get terminationReason {
+    return _lib._objc_msgSend_961(_id, _lib._sel_terminationReason1);
+  }
+
+  ObjCBlock43 get terminationHandler {
+    final _ret = _lib._objc_msgSend_962(_id, _lib._sel_terminationHandler1);
+    return ObjCBlock43._(_ret, _lib);
+  }
+
+  set terminationHandler(ObjCBlock43 value) {
+    _lib._objc_msgSend_963(_id, _lib._sel_setTerminationHandler_1, value._id);
+  }
+
+  int get qualityOfService {
+    return _lib._objc_msgSend_475(_id, _lib._sel_qualityOfService1);
+  }
+
+  set qualityOfService(int value) {
+    _lib._objc_msgSend_476(_id, _lib._sel_setQualityOfService_1, value);
+  }
+
+  static NSTask
+      launchedTaskWithExecutableURL_arguments_error_terminationHandler_(
+          SwiftLibrary _lib,
+          NSURL? url,
+          NSArray? arguments,
+          ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+          ObjCBlock43 terminationHandler) {
+    final _ret = _lib._objc_msgSend_964(
+        _lib._class_NSTask1,
+        _lib._sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_1,
+        url?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error,
+        terminationHandler._id);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  void waitUntilExit() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_waitUntilExit1);
+  }
+
+  NSString? get launchPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_launchPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set launchPath(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setLaunchPath_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get currentDirectoryPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_currentDirectoryPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set currentDirectoryPath(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCurrentDirectoryPath_1, value?._id ?? ffi.nullptr);
+  }
+
+  void launch() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_launch1);
+  }
+
+  static NSTask launchedTaskWithLaunchPath_arguments_(
+      SwiftLibrary _lib, NSString? path, NSArray? arguments) {
+    final _ret = _lib._objc_msgSend_965(
+        _lib._class_NSTask1,
+        _lib._sel_launchedTaskWithLaunchPath_arguments_1,
+        path?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr);
+    return NSTask._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSTask new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTask1, _lib._sel_new1);
+    return NSTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSTask alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSTask1, _lib._sel_alloc1);
+    return NSTask._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSTask1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTask1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSTask1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSTask1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSTask1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSTask1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSTask1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSTask1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSTaskTerminationReason {
+  static const int NSTaskTerminationReasonExit = 1;
+  static const int NSTaskTerminationReasonUncaughtSignal = 2;
+}
+
+void _ObjCBlock43_fnPtrTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return block.ref.target
+      .cast<
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>()
+      .asFunction<void Function(ffi.Pointer<ObjCObject> arg0)>()(arg0);
+}
+
+final _ObjCBlock43_closureRegistry = <int, Function>{};
+int _ObjCBlock43_closureRegistryIndex = 0;
+ffi.Pointer<ffi.Void> _ObjCBlock43_registerClosure(Function fn) {
+  final id = ++_ObjCBlock43_closureRegistryIndex;
+  _ObjCBlock43_closureRegistry[id] = fn;
+  return ffi.Pointer<ffi.Void>.fromAddress(id);
+}
+
+void _ObjCBlock43_closureTrampoline(
+    ffi.Pointer<_ObjCBlock> block, ffi.Pointer<ObjCObject> arg0) {
+  return _ObjCBlock43_closureRegistry[block.ref.target.address]!(arg0);
+}
+
+class ObjCBlock43 extends _ObjCBlockBase {
+  ObjCBlock43._(ffi.Pointer<_ObjCBlock> id, SwiftLibrary lib)
+      : super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  ObjCBlock43.fromFunctionPointer(
+      SwiftLibrary lib,
+      ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ObjCObject> arg0)>>
+          ptr)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock43_fnPtrTrampoline)
+                    .cast(),
+                ptr.cast()),
+            lib);
+
+  /// Creates a block from a Dart function.
+  ObjCBlock43.fromFunction(
+      SwiftLibrary lib, void Function(ffi.Pointer<ObjCObject> arg0) fn)
+      : this._(
+            lib._newBlock1(
+                ffi.Pointer.fromFunction<
+                            ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                                ffi.Pointer<ObjCObject> arg0)>(
+                        _ObjCBlock43_closureTrampoline)
+                    .cast(),
+                _ObjCBlock43_registerClosure(fn)),
+            lib);
+  void call(ffi.Pointer<ObjCObject> arg0) {
+    return _id.ref.invoke
+        .cast<
+            ffi.NativeFunction<
+                ffi.Void Function(ffi.Pointer<_ObjCBlock> block,
+                    ffi.Pointer<ObjCObject> arg0)>>()
+        .asFunction<
+            void Function(ffi.Pointer<_ObjCBlock> block,
+                ffi.Pointer<ObjCObject> arg0)>()(_id, arg0);
+  }
+
+  ffi.Pointer<_ObjCBlock> get pointer => _id;
+}
+
+class NSXMLElement extends NSXMLNode {
+  NSXMLElement._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLElement] that points to the same underlying object as [other].
+  static NSXMLElement castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLElement._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLElement] that wraps the given raw object pointer.
+  static NSXMLElement castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLElement._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLElement].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLElement1);
+  }
+
+  NSXMLElement initWithName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithName_1, name?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithName_URI_(NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(_id, _lib._sel_initWithName_URI_1,
+        name?._id ?? ffi.nullptr, URI?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithName_stringValue_(NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _id,
+        _lib._sel_initWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLElement initWithXMLString_error_(
+      NSString? string, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_264(_id,
+        _lib._sel_initWithXMLString_error_1, string?._id ?? ffi.nullptr, error);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLElement initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray elementsForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_119(
+        _id, _lib._sel_elementsForName_1, name?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray elementsForLocalName_URI_(NSString? localName, NSString? URI) {
+    final _ret = _lib._objc_msgSend_617(
+        _id,
+        _lib._sel_elementsForLocalName_URI_1,
+        localName?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addAttribute_(NSXMLNode? attribute) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addAttribute_1, attribute?._id ?? ffi.nullptr);
+  }
+
+  void removeAttributeForName_(NSString? name) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeAttributeForName_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get attributes {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_attributes1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set attributes(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setAttributes_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setAttributesWithDictionary_(NSDictionary? attributes) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_setAttributesWithDictionary_1,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  NSXMLNode attributeForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_attributeForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode attributeForLocalName_URI_(NSString? localName, NSString? URI) {
+    final _ret = _lib._objc_msgSend_1000(
+        _id,
+        _lib._sel_attributeForLocalName_URI_1,
+        localName?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  void addNamespace_(NSXMLNode? aNamespace) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addNamespace_1, aNamespace?._id ?? ffi.nullptr);
+  }
+
+  void removeNamespaceForPrefix_(NSString? name) {
+    return _lib._objc_msgSend_186(
+        _id, _lib._sel_removeNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+  }
+
+  NSArray? get namespaces {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_namespaces1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  set namespaces(NSArray? value) {
+    _lib._objc_msgSend_696(
+        _id, _lib._sel_setNamespaces_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSXMLNode namespaceForPrefix_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_namespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode resolveNamespaceForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_983(
+        _id, _lib._sel_resolveNamespaceForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString resolvePrefixForNamespaceURI_(NSString? namespaceURI) {
+    final _ret = _lib._objc_msgSend_64(
+        _id,
+        _lib._sel_resolvePrefixForNamespaceURI_1,
+        namespaceURI?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  void normalizeAdjacentTextNodesPreservingCDATA_(bool preserve) {
+    return _lib._objc_msgSend_756(
+        _id, _lib._sel_normalizeAdjacentTextNodesPreservingCDATA_1, preserve);
+  }
+
+  void setAttributesAsDictionary_(NSDictionary? attributes) {
+    return _lib._objc_msgSend_444(_id, _lib._sel_setAttributesAsDictionary_1,
+        attributes?._id ?? ffi.nullptr);
+  }
+
+  static NSObject document(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      SwiftLibrary _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLElement1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      SwiftLibrary _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(SwiftLibrary _lib,
+      NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLElement1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLElement1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLElement1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLElement1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLElement1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLElement1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLElement1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLElement new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_new1);
+    return NSXMLElement._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLElement alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLElement1, _lib._sel_alloc1);
+    return NSXMLElement._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLElement1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLElement1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLElement1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLElement1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLElement1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLElement1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLElement1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLElement1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLElement1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLNode extends NSObject {
+  NSXMLNode._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLNode] that points to the same underlying object as [other].
+  static NSXMLNode castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLNode._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLNode] that wraps the given raw object pointer.
+  static NSXMLNode castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLNode._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLNode].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLNode1);
+  }
+
+  @override
+  NSXMLNode init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode initWithKind_(int kind) {
+    final _ret = _lib._objc_msgSend_966(_id, _lib._sel_initWithKind_1, kind);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject document(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      SwiftLibrary _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLNode1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      SwiftLibrary _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(SwiftLibrary _lib,
+      NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLNode1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLNode1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLNode1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLNode1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get kind {
+    return _lib._objc_msgSend_970(_id, _lib._sel_kind1);
+  }
+
+  NSString? get name {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_name1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set name(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setName_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSObject get objectValue {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_objectValue1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  set objectValue(NSObject value) {
+    _lib._objc_msgSend_368(_id, _lib._sel_setObjectValue_1, value._id);
+  }
+
+  NSString? get stringValue {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_stringValue1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set stringValue(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setStringValue_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setStringValue_resolvingEntities_(NSString? string, bool resolve) {
+    return _lib._objc_msgSend_971(
+        _id,
+        _lib._sel_setStringValue_resolvingEntities_1,
+        string?._id ?? ffi.nullptr,
+        resolve);
+  }
+
+  int get index {
+    return _lib._objc_msgSend_10(_id, _lib._sel_index1);
+  }
+
+  int get level {
+    return _lib._objc_msgSend_10(_id, _lib._sel_level1);
+  }
+
+  NSXMLDocument? get rootDocument {
+    final _ret = _lib._objc_msgSend_994(_id, _lib._sel_rootDocument1);
+    return _ret.address == 0
+        ? null
+        : NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get parent {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_parent1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get childCount {
+    return _lib._objc_msgSend_10(_id, _lib._sel_childCount1);
+  }
+
+  NSArray? get children {
+    final _ret = _lib._objc_msgSend_80(_id, _lib._sel_children1);
+    return _ret.address == 0
+        ? null
+        : NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode childAtIndex_(int index) {
+    final _ret = _lib._objc_msgSend_996(_id, _lib._sel_childAtIndex_1, index);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get previousSibling {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_previousSibling1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get nextSibling {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_nextSibling1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get previousNode {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_previousNode1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLNode? get nextNode {
+    final _ret = _lib._objc_msgSend_995(_id, _lib._sel_nextNode1);
+    return _ret.address == 0
+        ? null
+        : NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  void detach() {
+    return _lib._objc_msgSend_1(_id, _lib._sel_detach1);
+  }
+
+  NSString? get XPath {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_XPath1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get localName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_localName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get prefix {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_prefix1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get URI {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_URI1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set URI(NSString? value) {
+    _lib._objc_msgSend_477(_id, _lib._sel_setURI_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSString localNameForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLNode1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLNode1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLNode1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get description {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_description1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get XMLString {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_XMLString1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString XMLStringWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_997(_id, _lib._sel_XMLStringWithOptions_1, options);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString canonicalXMLStringPreservingComments_(bool comments) {
+    final _ret = _lib._objc_msgSend_998(
+        _id, _lib._sel_canonicalXMLStringPreservingComments_1, comments);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray nodesForXPath_error_(
+      NSString? xpath, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(
+        _id, _lib._sel_nodesForXPath_error_1, xpath?._id ?? ffi.nullptr, error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForXQuery_constants_error_(NSString? xquery,
+      NSDictionary? constants, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_999(
+        _id,
+        _lib._sel_objectsForXQuery_constants_error_1,
+        xquery?._id ?? ffi.nullptr,
+        constants?._id ?? ffi.nullptr,
+        error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSArray objectsForXQuery_error_(
+      NSString? xquery, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_394(_id, _lib._sel_objectsForXQuery_error_1,
+        xquery?._id ?? ffi.nullptr, error);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_new1);
+    return NSXMLNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLNode alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLNode1, _lib._sel_alloc1);
+    return NSXMLNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLNode1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLNode1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLNode1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLNode1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLNode1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLNode1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLNode1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLNodeKind {
+  static const int NSXMLInvalidKind = 0;
+  static const int NSXMLDocumentKind = 1;
+  static const int NSXMLElementKind = 2;
+  static const int NSXMLAttributeKind = 3;
+  static const int NSXMLNamespaceKind = 4;
+  static const int NSXMLProcessingInstructionKind = 5;
+  static const int NSXMLCommentKind = 6;
+  static const int NSXMLTextKind = 7;
+  static const int NSXMLDTDKind = 8;
+  static const int NSXMLEntityDeclarationKind = 9;
+  static const int NSXMLAttributeDeclarationKind = 10;
+  static const int NSXMLElementDeclarationKind = 11;
+  static const int NSXMLNotationDeclarationKind = 12;
+}
+
+abstract class NSXMLNodeOptions {
+  static const int NSXMLNodeOptionsNone = 0;
+  static const int NSXMLNodeIsCDATA = 1;
+  static const int NSXMLNodeExpandEmptyElement = 2;
+  static const int NSXMLNodeCompactEmptyElement = 4;
+  static const int NSXMLNodeUseSingleQuotes = 8;
+  static const int NSXMLNodeUseDoubleQuotes = 16;
+  static const int NSXMLNodeNeverEscapeContents = 32;
+  static const int NSXMLDocumentTidyHTML = 512;
+  static const int NSXMLDocumentTidyXML = 1024;
+  static const int NSXMLDocumentValidate = 8192;
+  static const int NSXMLNodeLoadExternalEntitiesAlways = 16384;
+  static const int NSXMLNodeLoadExternalEntitiesSameOriginOnly = 32768;
+  static const int NSXMLNodeLoadExternalEntitiesNever = 524288;
+  static const int NSXMLDocumentXInclude = 65536;
+  static const int NSXMLNodePrettyPrint = 131072;
+  static const int NSXMLDocumentIncludeContentTypeDeclaration = 262144;
+  static const int NSXMLNodePreserveNamespaceOrder = 1048576;
+  static const int NSXMLNodePreserveAttributeOrder = 2097152;
+  static const int NSXMLNodePreserveEntities = 4194304;
+  static const int NSXMLNodePreservePrefixes = 8388608;
+  static const int NSXMLNodePreserveCDATA = 16777216;
+  static const int NSXMLNodePreserveWhitespace = 33554432;
+  static const int NSXMLNodePreserveDTD = 67108864;
+  static const int NSXMLNodePreserveCharacterReferences = 134217728;
+  static const int NSXMLNodePromoteSignificantWhitespace = 268435456;
+  static const int NSXMLNodePreserveEmptyElements = 6;
+  static const int NSXMLNodePreserveQuotes = 24;
+  static const int NSXMLNodePreserveAll = 4293918750;
+}
+
+class NSXMLDocument extends NSXMLNode {
+  NSXMLDocument._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDocument] that points to the same underlying object as [other].
+  static NSXMLDocument castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDocument._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDocument] that wraps the given raw object pointer.
+  static NSXMLDocument castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDocument._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDocument].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDocument1);
+  }
+
+  @override
+  NSXMLDocument init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithXMLString_options_error_(
+      NSString? string, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_972(
+        _id,
+        _lib._sel_initWithXMLString_options_error_1,
+        string?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithContentsOfURL_options_error_(
+      NSURL? url, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_973(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithData_options_error_(
+      NSData? data, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_974(
+        _id,
+        _lib._sel_initWithData_options_error_1,
+        data?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDocument initWithRootElement_(NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(
+        _id, _lib._sel_initWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSXMLDocument._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject replacementClassForClass_(SwiftLibrary _lib, NSObject cls) {
+    final _ret = _lib._objc_msgSend_16(_lib._class_NSXMLDocument1,
+        _lib._sel_replacementClassForClass_1, cls._id);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get characterEncoding {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_characterEncoding1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set characterEncoding(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setCharacterEncoding_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get version {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_version1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set version(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setVersion_1, value?._id ?? ffi.nullptr);
+  }
+
+  bool get standalone {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isStandalone1);
+  }
+
+  set standalone(bool value) {
+    _lib._objc_msgSend_460(_id, _lib._sel_setStandalone_1, value);
+  }
+
+  int get documentContentKind {
+    return _lib._objc_msgSend_975(_id, _lib._sel_documentContentKind1);
+  }
+
+  set documentContentKind(int value) {
+    _lib._objc_msgSend_976(_id, _lib._sel_setDocumentContentKind_1, value);
+  }
+
+  NSString? get MIMEType {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_MIMEType1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set MIMEType(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setMIMEType_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSXMLDTD? get DTD {
+    final _ret = _lib._objc_msgSend_986(_id, _lib._sel_DTD1);
+    return _ret.address == 0
+        ? null
+        : NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  set DTD(NSXMLDTD? value) {
+    _lib._objc_msgSend_987(_id, _lib._sel_setDTD_1, value?._id ?? ffi.nullptr);
+  }
+
+  void setRootElement_(NSXMLElement? root) {
+    return _lib._objc_msgSend_988(
+        _id, _lib._sel_setRootElement_1, root?._id ?? ffi.nullptr);
+  }
+
+  NSXMLElement rootElement() {
+    final _ret = _lib._objc_msgSend_989(_id, _lib._sel_rootElement1);
+    return NSXMLElement._(_ret, _lib, retain: true, release: true);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  NSData? get XMLData {
+    final _ret = _lib._objc_msgSend_39(_id, _lib._sel_XMLData1);
+    return _ret.address == 0
+        ? null
+        : NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSData XMLDataWithOptions_(int options) {
+    final _ret =
+        _lib._objc_msgSend_990(_id, _lib._sel_XMLDataWithOptions_1, options);
+    return NSData._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLT_arguments_error_(NSData? xslt,
+      NSDictionary? arguments, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_991(
+        _id,
+        _lib._sel_objectByApplyingXSLT_arguments_error_1,
+        xslt?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLTString_arguments_error_(NSString? xslt,
+      NSDictionary? arguments, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_992(
+        _id,
+        _lib._sel_objectByApplyingXSLTString_arguments_error_1,
+        xslt?._id ?? ffi.nullptr,
+        arguments?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSObject objectByApplyingXSLTAtURL_arguments_error_(NSURL? xsltURL,
+      NSDictionary? argument, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_993(
+        _id,
+        _lib._sel_objectByApplyingXSLTAtURL_arguments_error_1,
+        xsltURL?._id ?? ffi.nullptr,
+        argument?._id ?? ffi.nullptr,
+        error);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  bool validateAndReturnError_(ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    return _lib._objc_msgSend_219(
+        _id, _lib._sel_validateAndReturnError_1, error);
+  }
+
+  static NSObject document(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      SwiftLibrary _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDocument1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      SwiftLibrary _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(SwiftLibrary _lib,
+      NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDocument1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDocument1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDocument1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDocument1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDocument new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_new1);
+    return NSXMLDocument._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDocument alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDocument1, _lib._sel_alloc1);
+    return NSXMLDocument._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDocument1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDocument1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDocument1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDocument1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDocument1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDocument1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLDocumentContentKind {
+  static const int NSXMLDocumentXMLKind = 0;
+  static const int NSXMLDocumentXHTMLKind = 1;
+  static const int NSXMLDocumentHTMLKind = 2;
+  static const int NSXMLDocumentTextKind = 3;
+}
+
+class NSXMLDTD extends NSXMLNode {
+  NSXMLDTD._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDTD] that points to the same underlying object as [other].
+  static NSXMLDTD castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDTD._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDTD] that wraps the given raw object pointer.
+  static NSXMLDTD castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDTD._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDTD].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDTD1);
+  }
+
+  @override
+  NSXMLDTD init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTD initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTD initWithContentsOfURL_options_error_(
+      NSURL? url, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_973(
+        _id,
+        _lib._sel_initWithContentsOfURL_options_error_1,
+        url?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTD initWithData_options_error_(
+      NSData? data, int mask, ffi.Pointer<ffi.Pointer<ObjCObject>> error) {
+    final _ret = _lib._objc_msgSend_974(
+        _id,
+        _lib._sel_initWithData_options_error_1,
+        data?._id ?? ffi.nullptr,
+        mask,
+        error);
+    return NSXMLDTD._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set publicID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPublicID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set systemID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSystemID_1, value?._id ?? ffi.nullptr);
+  }
+
+  void insertChild_atIndex_(NSXMLNode? child, int index) {
+    return _lib._objc_msgSend_977(
+        _id, _lib._sel_insertChild_atIndex_1, child?._id ?? ffi.nullptr, index);
+  }
+
+  void insertChildren_atIndex_(NSArray? children, int index) {
+    return _lib._objc_msgSend_978(_id, _lib._sel_insertChildren_atIndex_1,
+        children?._id ?? ffi.nullptr, index);
+  }
+
+  void removeChildAtIndex_(int index) {
+    return _lib._objc_msgSend_410(_id, _lib._sel_removeChildAtIndex_1, index);
+  }
+
+  void setChildren_(NSArray? children) {
+    return _lib._objc_msgSend_412(
+        _id, _lib._sel_setChildren_1, children?._id ?? ffi.nullptr);
+  }
+
+  void addChild_(NSXMLNode? child) {
+    return _lib._objc_msgSend_979(
+        _id, _lib._sel_addChild_1, child?._id ?? ffi.nullptr);
+  }
+
+  void replaceChildAtIndex_withNode_(int index, NSXMLNode? node) {
+    return _lib._objc_msgSend_980(_id, _lib._sel_replaceChildAtIndex_withNode_1,
+        index, node?._id ?? ffi.nullptr);
+  }
+
+  NSXMLDTDNode entityDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_entityDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode notationDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_notationDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode elementDeclarationForName_(NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _id, _lib._sel_elementDeclarationForName_1, name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  NSXMLDTDNode attributeDeclarationForName_elementName_(
+      NSString? name, NSString? elementName) {
+    final _ret = _lib._objc_msgSend_985(
+        _id,
+        _lib._sel_attributeDeclarationForName_elementName_1,
+        name?._id ?? ffi.nullptr,
+        elementName?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTDNode predefinedEntityDeclarationForName_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_984(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_predefinedEntityDeclarationForName_1,
+        name?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject document(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      SwiftLibrary _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDTD1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      SwiftLibrary _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(SwiftLibrary _lib,
+      NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTD1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTD1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTD1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDTD1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTD new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_new1);
+    return NSXMLDTD._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDTD alloc(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_NSXMLDTD1, _lib._sel_alloc1);
+    return NSXMLDTD._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDTD1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTD1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTD1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDTD1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDTD1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDTD1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+class NSXMLDTDNode extends NSXMLNode {
+  NSXMLDTDNode._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [NSXMLDTDNode] that points to the same underlying object as [other].
+  static NSXMLDTDNode castFrom<T extends _ObjCWrapper>(T other) {
+    return NSXMLDTDNode._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [NSXMLDTDNode] that wraps the given raw object pointer.
+  static NSXMLDTDNode castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return NSXMLDTDNode._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [NSXMLDTDNode].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_NSXMLDTDNode1);
+  }
+
+  NSXMLDTDNode initWithXMLString_(NSString? string) {
+    final _ret = _lib._objc_msgSend_30(
+        _id, _lib._sel_initWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTDNode initWithKind_options_(int kind, int options) {
+    final _ret = _lib._objc_msgSend_967(
+        _id, _lib._sel_initWithKind_options_1, kind, options);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  @override
+  NSXMLDTDNode init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return NSXMLDTDNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get DTDKind {
+    return _lib._objc_msgSend_981(_id, _lib._sel_DTDKind1);
+  }
+
+  set DTDKind(int value) {
+    _lib._objc_msgSend_982(_id, _lib._sel_setDTDKind_1, value);
+  }
+
+  bool get external1 {
+    return _lib._objc_msgSend_12(_id, _lib._sel_isExternal1);
+  }
+
+  NSString? get publicID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_publicID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set publicID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setPublicID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get systemID {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_systemID1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set systemID(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setSystemID_1, value?._id ?? ffi.nullptr);
+  }
+
+  NSString? get notationName {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_notationName1);
+    return _ret.address == 0
+        ? null
+        : NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  set notationName(NSString? value) {
+    _lib._objc_msgSend_477(
+        _id, _lib._sel_setNotationName_1, value?._id ?? ffi.nullptr);
+  }
+
+  static NSObject document(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_document1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject documentWithRootElement_(
+      SwiftLibrary _lib, NSXMLElement? element) {
+    final _ret = _lib._objc_msgSend_968(_lib._class_NSXMLDTDNode1,
+        _lib._sel_documentWithRootElement_1, element?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_1, name?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_URI_(
+      SwiftLibrary _lib, NSString? name, NSString? URI) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_URI_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? string) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject elementWithName_children_attributes_(SwiftLibrary _lib,
+      NSString? name, NSArray? children, NSArray? attributes) {
+    final _ret = _lib._objc_msgSend_969(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_elementWithName_children_attributes_1,
+        name?._id ?? ffi.nullptr,
+        children?._id ?? ffi.nullptr,
+        attributes?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_attributeWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject attributeWithName_URI_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? URI, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_26(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_attributeWithName_URI_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        URI?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject namespaceWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_namespaceWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject processingInstructionWithName_stringValue_(
+      SwiftLibrary _lib, NSString? name, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_159(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_processingInstructionWithName_stringValue_1,
+        name?._id ?? ffi.nullptr,
+        stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject commentWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_commentWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject textWithStringValue_(
+      SwiftLibrary _lib, NSString? stringValue) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_textWithStringValue_1, stringValue?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject DTDNodeWithXMLString_(SwiftLibrary _lib, NSString? string) {
+    final _ret = _lib._objc_msgSend_30(_lib._class_NSXMLDTDNode1,
+        _lib._sel_DTDNodeWithXMLString_1, string?._id ?? ffi.nullptr);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString localNameForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTDNode1,
+        _lib._sel_localNameForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSString prefixForName_(SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_64(_lib._class_NSXMLDTDNode1,
+        _lib._sel_prefixForName_1, name?._id ?? ffi.nullptr);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLNode predefinedNamespaceForPrefix_(
+      SwiftLibrary _lib, NSString? name) {
+    final _ret = _lib._objc_msgSend_983(_lib._class_NSXMLDTDNode1,
+        _lib._sel_predefinedNamespaceForPrefix_1, name?._id ?? ffi.nullptr);
+    return NSXMLNode._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSXMLDTDNode new1(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_new1);
+    return NSXMLDTDNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static NSXMLDTDNode alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_NSXMLDTDNode1, _lib._sel_alloc1);
+    return NSXMLDTDNode._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_NSXMLDTDNode1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTDNode1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_NSXMLDTDNode1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_NSXMLDTDNode1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_NSXMLDTDNode1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_NSXMLDTDNode1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
+
+abstract class NSXMLDTDNodeKind {
+  static const int NSXMLEntityGeneralKind = 1;
+  static const int NSXMLEntityParsedKind = 2;
+  static const int NSXMLEntityUnparsedKind = 3;
+  static const int NSXMLEntityParameterKind = 4;
+  static const int NSXMLEntityPredefined = 5;
+  static const int NSXMLAttributeCDATAKind = 6;
+  static const int NSXMLAttributeIDKind = 7;
+  static const int NSXMLAttributeIDRefKind = 8;
+  static const int NSXMLAttributeIDRefsKind = 9;
+  static const int NSXMLAttributeEntityKind = 10;
+  static const int NSXMLAttributeEntitiesKind = 11;
+  static const int NSXMLAttributeNMTokenKind = 12;
+  static const int NSXMLAttributeNMTokensKind = 13;
+  static const int NSXMLAttributeEnumerationKind = 14;
+  static const int NSXMLAttributeNotationKind = 15;
+  static const int NSXMLElementDeclarationUndefinedKind = 16;
+  static const int NSXMLElementDeclarationEmptyKind = 17;
+  static const int NSXMLElementDeclarationAnyKind = 18;
+  static const int NSXMLElementDeclarationMixedKind = 19;
+  static const int NSXMLElementDeclarationElementKind = 20;
+}
+
+class SwiftClass extends NSObject {
+  SwiftClass._(ffi.Pointer<ObjCObject> id, SwiftLibrary lib,
+      {bool retain = false, bool release = false})
+      : super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [SwiftClass] that points to the same underlying object as [other].
+  static SwiftClass castFrom<T extends _ObjCWrapper>(T other) {
+    return SwiftClass._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [SwiftClass] that wraps the given raw object pointer.
+  static SwiftClass castFromPointer(
+      SwiftLibrary lib, ffi.Pointer<ObjCObject> other,
+      {bool retain = false, bool release = false}) {
+    return SwiftClass._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [SwiftClass].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib._objc_msgSend_0(
+        obj._id, obj._lib._sel_isKindOfClass_1, obj._lib._class_SwiftClass1);
+  }
+
+  NSString sayHello() {
+    final _ret = _lib._objc_msgSend_20(_id, _lib._sel_sayHello1);
+    return NSString._(_ret, _lib, retain: true, release: true);
+  }
+
+  int get someField {
+    return _lib._objc_msgSend_78(_id, _lib._sel_someField1);
+  }
+
+  set someField(int value) {
+    _lib._objc_msgSend_558(_id, _lib._sel_setSomeField_1, value);
+  }
+
+  @override
+  SwiftClass init() {
+    final _ret = _lib._objc_msgSend_2(_id, _lib._sel_init1);
+    return SwiftClass._(_ret, _lib, retain: true, release: true);
+  }
+
+  static SwiftClass new1(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(_lib._class_SwiftClass1, _lib._sel_new1);
+    return SwiftClass._(_ret, _lib, retain: false, release: true);
+  }
+
+  static SwiftClass alloc(SwiftLibrary _lib) {
+    final _ret =
+        _lib._objc_msgSend_2(_lib._class_SwiftClass1, _lib._sel_alloc1);
+    return SwiftClass._(_ret, _lib, retain: false, release: true);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_selector_object_(
+      SwiftLibrary _lib,
+      NSObject aTarget,
+      ffi.Pointer<ObjCSel> aSelector,
+      NSObject anArgument) {
+    return _lib._objc_msgSend_14(
+        _lib._class_SwiftClass1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_selector_object_1,
+        aTarget._id,
+        aSelector,
+        anArgument._id);
+  }
+
+  static void cancelPreviousPerformRequestsWithTarget_(
+      SwiftLibrary _lib, NSObject aTarget) {
+    return _lib._objc_msgSend_15(_lib._class_SwiftClass1,
+        _lib._sel_cancelPreviousPerformRequestsWithTarget_1, aTarget._id);
+  }
+
+  static bool getAccessInstanceVariablesDirectly(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_SwiftClass1, _lib._sel_accessInstanceVariablesDirectly1);
+  }
+
+  static bool useStoredAccessor(SwiftLibrary _lib) {
+    return _lib._objc_msgSend_12(
+        _lib._class_SwiftClass1, _lib._sel_useStoredAccessor1);
+  }
+
+  static NSSet keyPathsForValuesAffectingValueForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    final _ret = _lib._objc_msgSend_58(
+        _lib._class_SwiftClass1,
+        _lib._sel_keyPathsForValuesAffectingValueForKey_1,
+        key?._id ?? ffi.nullptr);
+    return NSSet._(_ret, _lib, retain: true, release: true);
+  }
+
+  static bool automaticallyNotifiesObserversForKey_(
+      SwiftLibrary _lib, NSString? key) {
+    return _lib._objc_msgSend_59(
+        _lib._class_SwiftClass1,
+        _lib._sel_automaticallyNotifiesObserversForKey_1,
+        key?._id ?? ffi.nullptr);
+  }
+
+  static void setKeys_triggerChangeNotificationsForDependentKey_(
+      SwiftLibrary _lib, NSArray? keys, NSString? dependentKey) {
+    return _lib._objc_msgSend_79(
+        _lib._class_SwiftClass1,
+        _lib._sel_setKeys_triggerChangeNotificationsForDependentKey_1,
+        keys?._id ?? ffi.nullptr,
+        dependentKey?._id ?? ffi.nullptr);
+  }
+
+  static NSArray classFallbacksForKeyedArchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_80(
+        _lib._class_SwiftClass1, _lib._sel_classFallbacksForKeyedArchiver1);
+    return NSArray._(_ret, _lib, retain: true, release: true);
+  }
+
+  static NSObject classForKeyedUnarchiver(SwiftLibrary _lib) {
+    final _ret = _lib._objc_msgSend_2(
+        _lib._class_SwiftClass1, _lib._sel_classForKeyedUnarchiver1);
+    return NSObject._(_ret, _lib, retain: true, release: true);
+  }
+}
diff --git a/lib/src/code_generator.dart b/lib/src/code_generator.dart
index 710b32f..82b2ed6 100644
--- a/lib/src/code_generator.dart
+++ b/lib/src/code_generator.dart
@@ -10,9 +10,17 @@
 export 'code_generator/constant.dart';
 export 'code_generator/enum_class.dart';
 export 'code_generator/func.dart';
+export 'code_generator/func_type.dart';
 export 'code_generator/global.dart';
+export 'code_generator/handle.dart';
+export 'code_generator/imports.dart';
 export 'code_generator/library.dart';
-export 'code_generator/struc.dart';
+export 'code_generator/native_type.dart';
+export 'code_generator/objc_block.dart';
+export 'code_generator/objc_built_in_functions.dart';
+export 'code_generator/objc_interface.dart';
+export 'code_generator/pointer.dart';
+export 'code_generator/struct.dart';
 export 'code_generator/type.dart';
 export 'code_generator/typealias.dart';
 export 'code_generator/union.dart';
diff --git a/lib/src/code_generator/binding.dart b/lib/src/code_generator/binding.dart
index 105d6f0..2e2f189 100644
--- a/lib/src/code_generator/binding.dart
+++ b/lib/src/code_generator/binding.dart
@@ -19,12 +19,14 @@
   String name;
 
   final String? dartDoc;
+  final bool isInternal;
 
   Binding({
     required this.usr,
     required this.originalName,
     required this.name,
     this.dartDoc,
+    this.isInternal = false,
   });
 
   /// Get all dependencies, including itself and save them in [dependencies].
@@ -44,11 +46,13 @@
     String? originalName,
     required String name,
     String? dartDoc,
+    bool isInternal = false,
   }) : super(
           usr: usr ?? name,
           originalName: originalName ?? name,
           name: name,
           dartDoc: dartDoc,
+          isInternal: isInternal,
         );
 }
 
@@ -59,10 +63,12 @@
     String? originalName,
     required String name,
     String? dartDoc,
+    bool isInternal = false,
   }) : super(
           usr: usr ?? name,
           originalName: originalName ?? name,
           name: name,
           dartDoc: dartDoc,
+          isInternal: isInternal,
         );
 }
diff --git a/lib/src/code_generator/binding_string.dart b/lib/src/code_generator/binding_string.dart
index 2929ee8..decfd6f 100644
--- a/lib/src/code_generator/binding_string.dart
+++ b/lib/src/code_generator/binding_string.dart
@@ -17,10 +17,12 @@
 /// A [BindingString]'s type.
 enum BindingStringType {
   func,
-  struc,
+  struct,
   union,
   constant,
   global,
   enumClass,
   typeDef,
+  objcInterface,
+  objcBlock,
 }
diff --git a/lib/src/code_generator/compound.dart b/lib/src/code_generator/compound.dart
index 067e64f..2c915a2 100644
--- a/lib/src/code_generator/compound.dart
+++ b/lib/src/code_generator/compound.dart
@@ -11,17 +11,18 @@
 enum CompoundType { struct, union }
 
 /// A binding for Compound type - Struct/Union.
-abstract class Compound extends NoLookUpBinding {
+abstract class Compound extends BindingType {
   /// Marker for if a struct definition is complete.
   ///
   /// A function can be safely pass this struct by value if it's complete.
-  bool isInComplete;
+  bool isIncomplete;
 
   List<Member> members;
 
   bool get isOpaque => members.isEmpty;
 
-  /// Value for `@Packed(X)` annotation. Can be null(no packing), 1, 2, 4, 8, 16.
+  /// Value for `@Packed(X)` annotation. Can be null (no packing), 1, 2, 4, 8,
+  /// or 16.
   ///
   /// Only supported for [CompoundType.struct].
   int? pack;
@@ -38,16 +39,18 @@
     String? originalName,
     required String name,
     required this.compoundType,
-    this.isInComplete = false,
+    this.isIncomplete = false,
     this.pack,
     String? dartDoc,
     List<Member>? members,
+    bool isInternal = false,
   })  : members = members ?? [],
         super(
           usr: usr,
           originalName: originalName,
           name: name,
           dartDoc: dartDoc,
+          isInternal: isInternal,
         );
 
   factory Compound.fromType({
@@ -55,18 +58,18 @@
     String? usr,
     String? originalName,
     required String name,
-    bool isInComplete = false,
+    bool isIncomplete = false,
     int? pack,
     String? dartDoc,
     List<Member>? members,
   }) {
     switch (type) {
       case CompoundType.struct:
-        return Struc(
+        return Struct(
           usr: usr,
           originalName: originalName,
           name: name,
-          isInComplete: isInComplete,
+          isIncomplete: isIncomplete,
           pack: pack,
           dartDoc: dartDoc,
           members: members,
@@ -76,7 +79,7 @@
           usr: usr,
           originalName: originalName,
           name: name,
-          isInComplete: isInComplete,
+          isIncomplete: isIncomplete,
           pack: pack,
           dartDoc: dartDoc,
           members: members,
@@ -87,16 +90,17 @@
   List<int> _getArrayDimensionLengths(Type type) {
     final array = <int>[];
     var startType = type;
-    while (startType.broadType == BroadType.ConstantArray) {
-      array.add(startType.length!);
-      startType = startType.child!;
+    while (startType is ConstantArray) {
+      array.add(startType.length);
+      startType = startType.child;
     }
     return array;
   }
 
   String _getInlineArrayTypeString(Type type, Writer w) {
-    if (type.broadType == BroadType.ConstantArray) {
-      return '${w.ffiLibraryPrefix}.Array<${_getInlineArrayTypeString(type.child!, w)}>';
+    if (type is ConstantArray) {
+      return '${w.ffiLibraryPrefix}.Array<'
+          '${_getInlineArrayTypeString(type.child, w)}>';
     }
     return type.getCType(w);
   }
@@ -125,32 +129,32 @@
     }
     final dartClassName = isStruct ? 'Struct' : 'Union';
     // Write class declaration.
-    s.write(
-        'class $enclosingClassName extends ${w.ffiLibraryPrefix}.${isOpaque ? 'Opaque' : dartClassName}{\n');
+    s.write('class $enclosingClassName extends ');
+    s.write('${w.ffiLibraryPrefix}.${isOpaque ? 'Opaque' : dartClassName}{\n');
     const depth = '  ';
     for (final m in members) {
-      final memberName = localUniqueNamer.makeUnique(m.name);
-      if (m.type.broadType == BroadType.ConstantArray) {
-        s.write(
-            '$depth@${w.ffiLibraryPrefix}.Array.multi(${_getArrayDimensionLengths(m.type)})\n');
-        s.write(
-            '${depth}external ${_getInlineArrayTypeString(m.type, w)} $memberName;\n\n');
+      m.name = localUniqueNamer.makeUnique(m.name);
+      if (m.type is ConstantArray) {
+        s.write('$depth@${w.ffiLibraryPrefix}.Array.multi(');
+        s.write('${_getArrayDimensionLengths(m.type)})\n');
+        s.write('${depth}external ${_getInlineArrayTypeString(m.type, w)} ');
+        s.write('${m.name};\n\n');
       } else {
         if (m.dartDoc != null) {
-          s.write(depth + '/// ');
-          s.writeAll(m.dartDoc!.split('\n'), '\n' + depth + '/// ');
+          s.write('$depth/// ');
+          s.writeAll(m.dartDoc!.split('\n'), '\n$depth/// ');
           s.write('\n');
         }
-        if (!m.type.sameDartAndCType(w)) {
+        if (!sameDartAndCType(m.type, w)) {
           s.write('$depth@${m.type.getCType(w)}()\n');
         }
-        s.write('${depth}external ${m.type.getDartType(w)} $memberName;\n\n');
+        s.write('${depth}external ${m.type.getDartType(w)} ${m.name};\n\n');
       }
     }
     s.write('}\n\n');
 
     return BindingString(
-        type: isStruct ? BindingStringType.struc : BindingStringType.union,
+        type: isStruct ? BindingStringType.struct : BindingStringType.union,
         string: s.toString());
   }
 
@@ -163,15 +167,21 @@
       m.type.addDependencies(dependencies);
     }
   }
+
+  @override
+  bool get isIncompleteCompound => isIncomplete;
+
+  @override
+  String getCType(Writer w) => name;
 }
 
 class Member {
   final String? dartDoc;
   final String originalName;
-  final String name;
+  String name;
   final Type type;
 
-  const Member({
+  Member({
     String? originalName,
     required this.name,
     required this.type,
diff --git a/lib/src/code_generator/dart_keywords.dart b/lib/src/code_generator/dart_keywords.dart
index 8e0de3c..93d5877 100644
--- a/lib/src/code_generator/dart_keywords.dart
+++ b/lib/src/code_generator/dart_keywords.dart
@@ -7,65 +7,66 @@
 /// Source: https://dart.dev/guides/language/language-tour#keywords.
 const keywords = {
   'abstract',
-  'else',
-  'import',
-  'super',
   'as',
-  'enum',
-  'in',
-  'switch',
   'assert',
-  'export',
-  'interface',
-  'sync',
   'async',
-  'extends',
-  'is',
-  'this',
   'await',
-  'extension',
-  'library',
-  'throw',
   'break',
-  'external',
-  'mixin',
-  'true',
   'case',
-  'factory',
-  'new',
-  'try',
   'catch',
-  'false',
-  'null',
-  'typedef',
   'class',
-  'final',
-  'on',
-  'var',
   'const',
-  'finally',
-  'operator',
-  'void',
   'continue',
-  'for',
-  'part',
-  'while',
   'covariant',
-  'Function',
-  'rethrow',
-  'with',
   'default',
-  'get',
-  'return',
-  'yield',
   'deferred',
-  'hide',
-  'set',
   'do',
-  'if',
-  'show',
   'dynamic',
+  'else',
+  'enum',
+  'export',
+  'extends',
+  'extension',
+  'external',
+  'factory',
+  'false',
+  'final',
+  'finally',
+  'for',
+  'Function',
+  'get',
+  'hide',
+  'if',
   'implements',
-  'static',
+  'import',
+  'in',
+  'interface',
+  'is',
   'late',
+  'library',
+  'mixin',
+  'new',
+  'null',
+  'on',
+  'operator',
+  'part',
+  'required',
+  'rethrow',
+  'return',
+  'set',
+  'show',
+  'static',
+  'super',
+  'switch',
+  'sync',
+  'this',
+  'throw',
+  'true',
+  'try',
+  'typedef',
+  'var',
+  'void',
+  'while',
+  'with',
+  'yield',
 };
diff --git a/lib/src/code_generator/enum_class.dart b/lib/src/code_generator/enum_class.dart
index 2765aef..081c864 100644
--- a/lib/src/code_generator/enum_class.dart
+++ b/lib/src/code_generator/enum_class.dart
@@ -4,6 +4,8 @@
 
 import 'binding.dart';
 import 'binding_string.dart';
+import 'native_type.dart';
+import 'type.dart';
 import 'utils.dart';
 import 'writer.dart';
 
@@ -21,7 +23,9 @@
 ///   static const banana = 10;
 /// }
 /// ```
-class EnumClass extends NoLookUpBinding {
+class EnumClass extends BindingType {
+  static final nativeType = NativeType(SupportedNativeType.Int32);
+
   final List<EnumConstant> enumConstants;
 
   EnumClass({
@@ -57,11 +61,11 @@
     for (final ec in enumConstants) {
       final enumValueName = localUniqueNamer.makeUnique(ec.name);
       if (ec.dartDoc != null) {
-        s.write(depth + '/// ');
-        s.writeAll(ec.dartDoc!.split('\n'), '\n' + depth + '/// ');
+        s.write('$depth/// ');
+        s.writeAll(ec.dartDoc!.split('\n'), '\n$depth/// ');
         s.write('\n');
       }
-      s.write(depth + 'static const int $enumValueName = ${ec.value};\n');
+      s.write('${depth}static const int $enumValueName = ${ec.value};\n');
     }
     s.write('}\n\n');
 
@@ -75,6 +79,15 @@
 
     dependencies.add(this);
   }
+
+  @override
+  String getCType(Writer w) => nativeType.getCType(w);
+
+  @override
+  String getDartType(Writer w) => nativeType.getDartType(w);
+
+  @override
+  String? getDefaultValue(Writer w, String nativeLib) => '0';
 }
 
 /// Represents a single value in an enum.
diff --git a/lib/src/code_generator/func.dart b/lib/src/code_generator/func.dart
index d33f135..590f63c 100644
--- a/lib/src/code_generator/func.dart
+++ b/lib/src/code_generator/func.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/config_provider/config_types.dart';
 
 import 'binding_string.dart';
 import 'utils.dart';
@@ -10,11 +11,14 @@
 
 /// A binding for C function.
 ///
-/// For a C function -
+/// For example, take the following C function.
+///
 /// ```c
 /// int sum(int a, int b);
 /// ```
-/// The Generated dart code is -
+///
+/// The generated Dart code for this function (without `FfiNative`) is as follows.
+///
 /// ```dart
 /// int sum(int a, int b) {
 ///   return _sum(a, b);
@@ -26,14 +30,24 @@
 ///
 /// typedef _dart_sum = int Function(int a, int b);
 /// ```
+///
+/// When using `FfiNative`, the code is as follows.
+///
+/// ```dart
+/// @ffi.FfiNative<ffi.Int32 Function(ffi.Int32 a, ffi.Int32 b)>('sum')
+/// external int sum(int a, int b);
+/// ```
 class Func extends LookUpBinding {
   final FunctionType functionType;
   final bool exposeSymbolAddress;
   final bool exposeFunctionTypedefs;
   final bool isLeaf;
+  final FfiNativeConfig ffiNativeConfig;
+  late final String funcPointerName;
 
   /// Contains typealias for function type if [exposeFunctionTypedefs] is true.
-  Typealias? _exposedCFunctionTypealias, _exposedDartFunctionTypealias;
+  Typealias? _exposedCFunctionTypealias;
+  Typealias? _exposedDartFunctionTypealias;
 
   /// [originalName] is looked up in dynamic library, if not
   /// provided, takes the value of [name].
@@ -47,6 +61,8 @@
     this.exposeSymbolAddress = false,
     this.exposeFunctionTypedefs = false,
     this.isLeaf = false,
+    bool isInternal = false,
+    this.ffiNativeConfig = const FfiNativeConfig(enabled: false),
   })  : functionType = FunctionType(
           returnType: returnType,
           parameters: parameters ?? const [],
@@ -56,6 +72,7 @@
           originalName: originalName,
           name: name,
           dartDoc: dartDoc,
+          isInternal: isInternal,
         ) {
     for (var i = 0; i < functionType.parameters.length; i++) {
       if (functionType.parameters[i].name.trim() == '') {
@@ -68,12 +85,14 @@
     if (exposeFunctionTypedefs) {
       _exposedCFunctionTypealias = Typealias(
         name: 'Native$upperCaseName',
-        type: Type.functionType(functionType),
+        type: functionType,
+        isInternal: true,
       );
       _exposedDartFunctionTypealias = Typealias(
         name: 'Dart$upperCaseName',
-        type: Type.functionType(functionType),
+        type: functionType,
         useDartType: true,
+        isInternal: true,
       );
     }
   }
@@ -83,7 +102,7 @@
     final s = StringBuffer();
     final enclosingFuncName = name;
     final funcVarName = w.wrapperLevelUniqueNamer.makeUnique('_$name');
-    final funcPointerName = w.wrapperLevelUniqueNamer.makeUnique('_${name}Ptr');
+    funcPointerName = w.wrapperLevelUniqueNamer.makeUnique('_${name}Ptr');
 
     if (dartDoc != null) {
       s.write(makeDartDoc(dartDoc!));
@@ -93,45 +112,6 @@
     for (final p in functionType.parameters) {
       p.name = paramNamer.makeUnique(p.name);
     }
-    // Write enclosing function.
-    if (w.dartBool &&
-        functionType.returnType.getBaseTypealiasType().broadType ==
-            BroadType.Boolean) {
-      // Use bool return type in enclosing function.
-      s.write('bool $enclosingFuncName(\n');
-    } else {
-      s.write(
-          '${functionType.returnType.getDartType(w)} $enclosingFuncName(\n');
-    }
-    for (final p in functionType.parameters) {
-      if (w.dartBool &&
-          p.type.getBaseTypealiasType().broadType == BroadType.Boolean) {
-        // Use bool parameter type in enclosing function.
-        s.write('  bool ${p.name},\n');
-      } else {
-        s.write('  ${p.type.getDartType(w)} ${p.name},\n');
-      }
-    }
-    s.write(') {\n');
-    s.write('return $funcVarName');
-
-    s.write('(\n');
-    for (final p in functionType.parameters) {
-      if (w.dartBool &&
-          p.type.getBaseTypealiasType().broadType == BroadType.Boolean) {
-        // Convert bool parameter to int before calling.
-        s.write('    ${p.name}?1:0,\n');
-      } else {
-        s.write('    ${p.name},\n');
-      }
-    }
-    if (w.dartBool && functionType.returnType.broadType == BroadType.Boolean) {
-      // Convert int return type to bool.
-      s.write('  )!=0;\n');
-    } else {
-      s.write('  );\n');
-    }
-    s.write('}\n');
 
     final cType = exposeFunctionTypedefs
         ? _exposedCFunctionTypealias!.name
@@ -140,21 +120,53 @@
         ? _exposedDartFunctionTypealias!.name
         : functionType.getDartType(w, writeArgumentNames: false);
 
-    if (exposeSymbolAddress) {
-      // Add to SymbolAddress in writer.
-      w.symbolAddressWriter.addSymbol(
-        type:
-            '${w.ffiLibraryPrefix}.Pointer<${w.ffiLibraryPrefix}.NativeFunction<$cType>>',
-        name: name,
-        ptrName: funcPointerName,
-      );
+    if (ffiNativeConfig.enabled) {
+      final assetString = ffiNativeConfig.asset != null
+          ? ", asset: '${ffiNativeConfig.asset}'"
+          : '';
+      final isLeafString = isLeaf ? ', isLeaf: true' : '';
+      s.write(
+          "@${w.ffiLibraryPrefix}.FfiNative<$cType>('$originalName'$assetString$isLeafString)\n");
+
+      s.write(
+          'external ${functionType.returnType.getDartType(w)} $enclosingFuncName(\n');
+      for (final p in functionType.parameters) {
+        s.write('  ${p.type.getDartType(w)} ${p.name},\n');
+      }
+      s.write(');\n\n');
+    } else {
+      // Write enclosing function.
+      s.write(
+          '${functionType.returnType.getDartType(w)} $enclosingFuncName(\n');
+      for (final p in functionType.parameters) {
+        s.write('  ${p.type.getDartType(w)} ${p.name},\n');
+      }
+      s.write(') {\n');
+      s.write('return $funcVarName');
+
+      s.write('(\n');
+      for (final p in functionType.parameters) {
+        s.write('    ${p.name},\n');
+      }
+      s.write('  );\n');
+      s.write('}\n');
+
+      if (exposeSymbolAddress) {
+        // Add to SymbolAddress in writer.
+        w.symbolAddressWriter.addSymbol(
+          type:
+              '${w.ffiLibraryPrefix}.Pointer<${w.ffiLibraryPrefix}.NativeFunction<$cType>>',
+          name: name,
+          ptrName: funcPointerName,
+        );
+      }
+      // Write function pointer.
+      s.write(
+          "late final $funcPointerName = ${w.lookupFuncIdentifier}<${w.ffiLibraryPrefix}.NativeFunction<$cType>>('$originalName');\n");
+      final isLeafString = isLeaf ? 'isLeaf:true' : '';
+      s.write(
+          'late final $funcVarName = $funcPointerName.asFunction<$dartType>($isLeafString);\n\n');
     }
-    // Write function pointer.
-    s.write(
-        "late final $funcPointerName = ${w.lookupFuncIdentifier}<${w.ffiLibraryPrefix}.NativeFunction<$cType>>('$originalName');\n");
-    final isLeafString = isLeaf ? 'isLeaf:true' : '';
-    s.write(
-        'late final $funcVarName = $funcPointerName.asFunction<$dartType>($isLeafString);\n\n');
 
     return BindingString(type: BindingStringType.func, string: s.toString());
   }
@@ -180,9 +192,7 @@
 
   Parameter({String? originalName, this.name = '', required Type type})
       : originalName = originalName ?? name,
-        // A type with broadtype [BroadType.NativeFunction] is wrapped with a
-        // pointer because this is a shorthand used in C for Pointer to function.
-        type = type.getBaseTypealiasType().broadType == BroadType.NativeFunction
-            ? Type.pointer(type)
-            : type;
+        // A [NativeFunc] is wrapped with a pointer because this is a shorthand
+        // used in C for Pointer to function.
+        type = type.typealiasType is NativeFunc ? PointerType(type) : type;
 }
diff --git a/lib/src/code_generator/func_type.dart b/lib/src/code_generator/func_type.dart
new file mode 100644
index 0000000..5402028
--- /dev/null
+++ b/lib/src/code_generator/func_type.dart
@@ -0,0 +1,99 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/code_generator/utils.dart';
+
+import 'writer.dart';
+
+/// Represents a function type.
+class FunctionType extends Type {
+  final Type returnType;
+  final List<Parameter> parameters;
+
+  FunctionType({
+    required this.returnType,
+    required this.parameters,
+  });
+
+  String _getTypeString(
+      bool writeArgumentNames, String Function(Type) typeToString) {
+    final sb = StringBuffer();
+
+    // Write return Type.
+    sb.write(typeToString(returnType));
+
+    // Write Function.
+    sb.write(' Function(');
+    sb.write(parameters.map<String>((p) {
+      return '${typeToString(p.type)} ${writeArgumentNames ? p.name : ""}';
+    }).join(', '));
+    sb.write(')');
+
+    return sb.toString();
+  }
+
+  @override
+  String getCType(Writer w, {bool writeArgumentNames = true}) =>
+      _getTypeString(writeArgumentNames, (Type t) => t.getCType(w));
+
+  @override
+  String getDartType(Writer w, {bool writeArgumentNames = true}) =>
+      _getTypeString(writeArgumentNames, (Type t) => t.getDartType(w));
+
+  @override
+  String toString() => _getTypeString(false, (Type t) => t.toString());
+
+  @override
+  String cacheKey() => _getTypeString(false, (Type t) => t.cacheKey());
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    returnType.addDependencies(dependencies);
+    for (final p in parameters) {
+      p.type.addDependencies(dependencies);
+    }
+  }
+
+  void addParameterNames(List<String> names) {
+    if (names.length != parameters.length) {
+      return;
+    }
+    final paramNamer = UniqueNamer({});
+    for (int i = 0; i < parameters.length; i++) {
+      final finalName = paramNamer.makeUnique(names[i]);
+      parameters[i] = Parameter(
+        type: parameters[i].type,
+        originalName: names[i],
+        name: finalName,
+      );
+    }
+  }
+}
+
+/// Represents a NativeFunction<Function>.
+class NativeFunc extends Type {
+  final FunctionType type;
+
+  NativeFunc(this.type);
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    type.addDependencies(dependencies);
+  }
+
+  @override
+  String getCType(Writer w) =>
+      '${w.ffiLibraryPrefix}.NativeFunction<${type.getCType(w)}>';
+
+  @override
+  String getDartType(Writer w) =>
+      '${w.ffiLibraryPrefix}.NativeFunction<${type.getCType(w)}>';
+
+  @override
+  String toString() => 'NativeFunction<${type.toString()}>';
+
+  @override
+  String cacheKey() => 'NatFn(${type.cacheKey()})';
+}
diff --git a/lib/src/code_generator/global.dart b/lib/src/code_generator/global.dart
index df4c7f0..579d8dd 100644
--- a/lib/src/code_generator/global.dart
+++ b/lib/src/code_generator/global.dart
@@ -4,6 +4,7 @@
 
 import 'binding.dart';
 import 'binding_string.dart';
+import 'compound.dart';
 import 'type.dart';
 import 'utils.dart';
 import 'writer.dart';
@@ -49,9 +50,9 @@
 
     s.write(
         "late final ${w.ffiLibraryPrefix}.Pointer<$cType> $pointerName = ${w.lookupFuncIdentifier}<$cType>('$originalName');\n\n");
-    final baseTypealiasType = type.getBaseTypealiasType();
-    if (baseTypealiasType.broadType == BroadType.Compound) {
-      if (baseTypealiasType.compound!.isOpaque) {
+    final baseTypealiasType = type.typealiasType;
+    if (baseTypealiasType is Compound) {
+      if (baseTypealiasType.isOpaque) {
         s.write(
             '${w.ffiLibraryPrefix}.Pointer<$cType> get $globalVarName => $pointerName;\n\n');
       } else {
diff --git a/lib/src/code_generator/handle.dart b/lib/src/code_generator/handle.dart
new file mode 100644
index 0000000..a1b2d47
--- /dev/null
+++ b/lib/src/code_generator/handle.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+
+import 'writer.dart';
+
+/// Represents a Dart_Handle.
+class HandleType extends Type {
+  const HandleType._();
+  static const _handle = HandleType._();
+  factory HandleType() => _handle;
+
+  @override
+  String getCType(Writer w) => '${w.ffiLibraryPrefix}.Handle';
+
+  @override
+  String getDartType(Writer w) => 'Object';
+
+  @override
+  String toString() => 'Handle';
+}
diff --git a/lib/src/code_generator/imports.dart b/lib/src/code_generator/imports.dart
new file mode 100644
index 0000000..41f7161
--- /dev/null
+++ b/lib/src/code_generator/imports.dart
@@ -0,0 +1,77 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'struct.dart';
+import 'type.dart';
+import 'writer.dart';
+
+/// A library import which will be written as an import in the generated file.
+class LibraryImport {
+  final String name;
+  final String importPath;
+  String prefix;
+
+  LibraryImport(this.name, this.importPath) : prefix = name;
+
+  @override
+  bool operator ==(other) {
+    return other is LibraryImport && name == other.name;
+  }
+
+  @override
+  int get hashCode => name.hashCode;
+}
+
+/// An imported type which will be used in the generated code.
+class ImportedType extends Type {
+  final LibraryImport libraryImport;
+  final String cType;
+  final String dartType;
+  final String? defaultValue;
+
+  ImportedType(this.libraryImport, this.cType, this.dartType,
+      [this.defaultValue]);
+
+  @override
+  String getCType(Writer w) {
+    w.markImportUsed(libraryImport);
+    return '${libraryImport.prefix}.$cType';
+  }
+
+  @override
+  String getDartType(Writer w) => cType == dartType ? getCType(w) : dartType;
+
+  @override
+  String toString() => '${libraryImport.name}.$cType';
+
+  @override
+  String? getDefaultValue(Writer w, String nativeLib) => defaultValue;
+}
+
+final ffiImport = LibraryImport('ffi', 'dart:ffi');
+final ffiPkgImport = LibraryImport('pkg_ffi', 'package:ffi/ffi.dart');
+
+final voidType = ImportedType(ffiImport, 'Void', 'void');
+
+final unsignedCharType = ImportedType(ffiImport, 'UnsignedChar', 'int', '0');
+final signedCharType = ImportedType(ffiImport, 'SignedChar', 'int', '0');
+final charType = ImportedType(ffiImport, 'Char', 'int', '0');
+final unsignedShortType = ImportedType(ffiImport, 'UnsignedShort', 'int', '0');
+final shortType = ImportedType(ffiImport, 'Short', 'int', '0');
+final unsignedIntType = ImportedType(ffiImport, 'UnsignedInt', 'int', '0');
+final intType = ImportedType(ffiImport, 'Int', 'int', '0');
+final unsignedLongType = ImportedType(ffiImport, 'UnsignedLong', 'int', '0');
+final longType = ImportedType(ffiImport, 'Long', 'int', '0');
+final unsignedLongLongType =
+    ImportedType(ffiImport, 'UnsignedLongLong', 'int', '0');
+final longLongType = ImportedType(ffiImport, 'LongLong', 'int', '0');
+
+final floatType = ImportedType(ffiImport, 'Float', 'double', '0');
+final doubleType = ImportedType(ffiImport, 'Double', 'double', '0');
+
+final sizeType = ImportedType(ffiImport, 'Size', 'int', '0');
+final wCharType = ImportedType(ffiImport, 'WChar', 'int', '0');
+
+final objCObjectType = Struct(name: 'ObjCObject');
+final objCSelType = Struct(name: 'ObjCSel');
diff --git a/lib/src/code_generator/library.dart b/lib/src/code_generator/library.dart
index 080f099..befdfce 100644
--- a/lib/src/code_generator/library.dart
+++ b/lib/src/code_generator/library.dart
@@ -5,11 +5,13 @@
 import 'dart:io';
 
 import 'package:cli_util/cli_util.dart';
+import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/config_provider/config_types.dart';
 import 'package:logging/logging.dart';
 import 'package:path/path.dart' as p;
-import 'binding.dart';
-import 'struc.dart';
+import 'package:yaml_edit/yaml_edit.dart';
+
+import '../strings.dart' as strings;
 import 'utils.dart';
 import 'writer.dart';
 
@@ -28,9 +30,9 @@
     String? description,
     required List<Binding> bindings,
     String? header,
-    bool dartBool = true,
     bool sort = false,
     StructPackingOverride? packingOverride,
+    Set<LibraryImport>? libraryImports,
   }) {
     /// Get all dependencies (includes itself).
     final dependencies = <Binding>{};
@@ -45,41 +47,53 @@
       _sort();
     }
 
-    /// Handle any declaration-declaration name conflicts.
+    /// Handle any declaration-declaration name conflicts and emit warnings.
     final declConflictHandler = UniqueNamer({});
     for (final b in this.bindings) {
       _warnIfPrivateDeclaration(b);
       _resolveIfNameConflicts(declConflictHandler, b);
+      _warnIfExposeSymbolAddressAndFfiNative(b);
     }
 
     // Override pack values according to config. We do this after declaration
     // conflicts have been handled so that users can target the generated names.
     if (packingOverride != null) {
       for (final b in this.bindings) {
-        if (b is Struc && packingOverride.isOverriden(b.name)) {
+        if (b is Struct && packingOverride.isOverriden(b.name)) {
           b.pack = packingOverride.getOverridenPackValue(b.name);
         }
       }
     }
 
     // Seperate bindings which require lookup.
-    final lookUpBindings = this.bindings.whereType<LookUpBinding>().toList();
+    final lookUpBindings = this.bindings.whereType<LookUpBinding>().where((e) {
+      if (e is Func) {
+        return !e.ffiNativeConfig.enabled;
+      }
+      return true;
+    }).toList();
+    final ffiNativeBindings = this
+        .bindings
+        .whereType<Func>()
+        .where((e) => e.ffiNativeConfig.enabled)
+        .toList();
     final noLookUpBindings =
         this.bindings.whereType<NoLookUpBinding>().toList();
 
     _writer = Writer(
       lookUpBindings: lookUpBindings,
+      ffiNativeBindings: ffiNativeBindings,
       noLookUpBindings: noLookUpBindings,
       className: name,
       classDocComment: description,
       header: header,
-      dartBool: dartBool,
+      additionalImports: libraryImports,
     );
   }
 
   /// Logs a warning if generated declaration will be private.
   void _warnIfPrivateDeclaration(Binding b) {
-    if (b.name.startsWith('_')) {
+    if (b.name.startsWith('_') && !b.isInternal) {
       _logger.warning(
           "Generated declaration '${b.name}' start's with '_' and therefore will be private.");
     }
@@ -99,6 +113,16 @@
     }
   }
 
+  /// Logs a warning if generated declaration will be private.
+  void _warnIfExposeSymbolAddressAndFfiNative(Binding b) {
+    if (b is Func) {
+      if (b.exposeSymbolAddress && b.ffiNativeConfig.enabled) {
+        _logger.warning(
+            "Ignoring ${strings.symbolAddress} for '${b.name}' because it is generated as FfiNative.");
+      }
+    }
+  }
+
   /// Sort all bindings in alphabetical order.
   void _sort() {
     bindings.sort((b1, b2) => b1.name.compareTo(b2.name));
@@ -115,6 +139,19 @@
     }
   }
 
+  /// Generates [file] with symbol output yaml.
+  void generateSymbolOutputFile(File file, String importPath) {
+    if (!file.existsSync()) file.createSync(recursive: true);
+    final symbolFileYamlMap = writer.generateSymbolOutputYamlMap(importPath);
+    final yamlEditor = YamlEditor("");
+    yamlEditor.update([], wrapAsYamlNode(symbolFileYamlMap));
+    var yamlString = yamlEditor.toString();
+    if (!yamlString.endsWith('\n')) {
+      yamlString += "\n";
+    }
+    file.writeAsStringSync(yamlString);
+  }
+
   /// Formats a file using the Dart formatter.
   void _dartFormat(String path) {
     final sdkPath = getSdkPath();
diff --git a/lib/src/code_generator/native_type.dart b/lib/src/code_generator/native_type.dart
new file mode 100644
index 0000000..d76e7e7
--- /dev/null
+++ b/lib/src/code_generator/native_type.dart
@@ -0,0 +1,80 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+
+import 'writer.dart';
+
+enum SupportedNativeType {
+  Void,
+  Char,
+  Int8,
+  Int16,
+  Int32,
+  Int64,
+  Uint8,
+  Uint16,
+  Uint32,
+  Uint64,
+  Float,
+  Double,
+  IntPtr,
+  UintPtr,
+}
+
+/// Represents a primitive native type, such as float.
+class NativeType extends Type {
+  static const _primitives = <SupportedNativeType, NativeType>{
+    SupportedNativeType.Void: NativeType._('Void', 'void', null),
+    SupportedNativeType.Char: NativeType._('Uint8', 'int', '0'),
+    SupportedNativeType.Int8: NativeType._('Int8', 'int', '0'),
+    SupportedNativeType.Int16: NativeType._('Int16', 'int', '0'),
+    SupportedNativeType.Int32: NativeType._('Int32', 'int', '0'),
+    SupportedNativeType.Int64: NativeType._('Int64', 'int', '0'),
+    SupportedNativeType.Uint8: NativeType._('Uint8', 'int', '0'),
+    SupportedNativeType.Uint16: NativeType._('Uint16', 'int', '0'),
+    SupportedNativeType.Uint32: NativeType._('Uint32', 'int', '0'),
+    SupportedNativeType.Uint64: NativeType._('Uint64', 'int', '0'),
+    SupportedNativeType.Float: NativeType._('Float', 'double', '0'),
+    SupportedNativeType.Double: NativeType._('Double', 'double', '0'),
+    SupportedNativeType.IntPtr: NativeType._('IntPtr', 'int', '0'),
+    SupportedNativeType.UintPtr: NativeType._('UintPtr', 'int', '0'),
+  };
+
+  final String _cType;
+  final String _dartType;
+  final String? _defaultValue;
+
+  const NativeType._(this._cType, this._dartType, this._defaultValue);
+
+  factory NativeType(SupportedNativeType type) => _primitives[type]!;
+
+  @override
+  String getCType(Writer w) => '${w.ffiLibraryPrefix}.$_cType';
+
+  @override
+  String getDartType(Writer w) => _dartType;
+
+  @override
+  String toString() => _cType;
+
+  @override
+  String cacheKey() => _cType;
+
+  @override
+  String? getDefaultValue(Writer w, String nativeLib) => _defaultValue;
+}
+
+class BooleanType extends NativeType {
+  // Booleans are treated as uint8.
+  const BooleanType._() : super._('Bool', 'bool', 'false');
+  static const _boolean = BooleanType._();
+  factory BooleanType() => _boolean;
+
+  @override
+  String toString() => 'bool';
+
+  @override
+  String cacheKey() => 'bool';
+}
diff --git a/lib/src/code_generator/objc_block.dart b/lib/src/code_generator/objc_block.dart
new file mode 100644
index 0000000..310fef1
--- /dev/null
+++ b/lib/src/code_generator/objc_block.dart
@@ -0,0 +1,168 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+
+import 'binding_string.dart';
+import 'writer.dart';
+
+class ObjCBlock extends BindingType {
+  final Type returnType;
+  final List<Type> argTypes;
+  final ObjCBuiltInFunctions builtInFunctions;
+
+  ObjCBlock({
+    required String usr,
+    required String name,
+    required this.returnType,
+    required this.argTypes,
+    required this.builtInFunctions,
+  }) : super(
+          usr: usr,
+          originalName: name,
+          name: name,
+        );
+
+  @override
+  BindingString toBindingString(Writer w) {
+    final s = StringBuffer();
+
+    builtInFunctions.ensureBlockUtilsExist(w, s);
+
+    final params = <Parameter>[];
+    for (int i = 0; i < argTypes.length; ++i) {
+      params.add(Parameter(name: 'arg$i', type: argTypes[i]));
+    }
+
+    final isVoid = returnType == NativeType(SupportedNativeType.Void);
+    final voidPtr = PointerType(voidType).getCType(w);
+    final blockPtr = PointerType(builtInFunctions.blockStruct);
+    final funcType = FunctionType(returnType: returnType, parameters: params);
+    final natFnType = NativeFunc(funcType);
+    final natFnPtr = PointerType(natFnType).getCType(w);
+    final funcPtrTrampoline =
+        w.topLevelUniqueNamer.makeUnique('_${name}_fnPtrTrampoline');
+    final closureTrampoline =
+        w.topLevelUniqueNamer.makeUnique('_${name}_closureTrampoline');
+    final registerClosure =
+        w.topLevelUniqueNamer.makeUnique('_${name}_registerClosure');
+    final closureRegistry =
+        w.topLevelUniqueNamer.makeUnique('_${name}_closureRegistry');
+    final closureRegistryIndex =
+        w.topLevelUniqueNamer.makeUnique('_${name}_closureRegistryIndex');
+    final trampFuncType = FunctionType(
+        returnType: returnType,
+        parameters: [Parameter(type: blockPtr, name: 'block'), ...params]);
+    final natTrampFnType = NativeFunc(trampFuncType);
+
+    // Write the function pointer based trampoline function.
+    s.write(returnType.getDartType(w));
+    s.write(' $funcPtrTrampoline(${blockPtr.getCType(w)} block');
+    for (int i = 0; i < params.length; ++i) {
+      s.write(', ${params[i].type.getDartType(w)} ${params[i].name}');
+    }
+    s.write(') {\n');
+    s.write('  ${isVoid ? '' : 'return '}block.ref.target.cast<'
+        '${natFnType.getDartType(w)}>().asFunction<'
+        '${funcType.getDartType(w)}>()(');
+    for (int i = 0; i < params.length; ++i) {
+      s.write('${i == 0 ? '' : ', '}${params[i].name}');
+    }
+    s.write(');\n');
+    s.write('}\n');
+
+    // Write the closure registry function.
+    s.write('''
+final $closureRegistry = <int, Function>{};
+int $closureRegistryIndex = 0;
+$voidPtr $registerClosure(Function fn) {
+  final id = ++$closureRegistryIndex;
+  $closureRegistry[id] = fn;
+  return $voidPtr.fromAddress(id);
+}
+''');
+
+    // Write the closure based trampoline function.
+    s.write(returnType.getDartType(w));
+    s.write(' $closureTrampoline(${blockPtr.getCType(w)} block');
+    for (int i = 0; i < params.length; ++i) {
+      s.write(', ${params[i].type.getDartType(w)} ${params[i].name}');
+    }
+    s.write(') {\n');
+    s.write('  ${isVoid ? '' : 'return '}$closureRegistry['
+        'block.ref.target.address]!(');
+    for (int i = 0; i < params.length; ++i) {
+      s.write('${i == 0 ? '' : ', '}${params[i].name}');
+    }
+    s.write(');\n');
+    s.write('}\n');
+
+    // Write the wrapper class.
+    final defaultValue = returnType.getDefaultValue(w, '_lib');
+    final exceptionalReturn = defaultValue == null ? '' : ', $defaultValue';
+    s.write('''
+class $name extends _ObjCBlockBase {
+  $name._(${blockPtr.getCType(w)} id, ${w.className} lib) :
+      super._(id, lib, retain: false, release: true);
+
+  /// Creates a block from a C function pointer.
+  $name.fromFunctionPointer(${w.className} lib, $natFnPtr ptr) :
+      this._(lib.${builtInFunctions.newBlock.name}(
+          _cFuncTrampoline ??= ${w.ffiLibraryPrefix}.Pointer.fromFunction<
+              ${trampFuncType.getCType(w)}>($funcPtrTrampoline
+                  $exceptionalReturn).cast(), ptr.cast()), lib);
+  static $voidPtr? _cFuncTrampoline;
+
+  /// Creates a block from a Dart function.
+  $name.fromFunction(${w.className} lib, ${funcType.getDartType(w)} fn) :
+      this._(lib.${builtInFunctions.newBlock.name}(
+          _dartFuncTrampoline ??= ${w.ffiLibraryPrefix}.Pointer.fromFunction<
+              ${trampFuncType.getCType(w)}>($closureTrampoline
+                  $exceptionalReturn).cast(), $registerClosure(fn)), lib);
+  static $voidPtr? _dartFuncTrampoline;
+''');
+
+    // Call method.
+    s.write('  ${returnType.getDartType(w)} call(');
+    for (int i = 0; i < params.length; ++i) {
+      s.write('${i == 0 ? '' : ', '}${params[i].type.getDartType(w)}');
+      s.write(' ${params[i].name}');
+    }
+    s.write(''') {
+    ${isVoid ? '' : 'return '}_id.ref.invoke.cast<
+        ${natTrampFnType.getCType(w)}>().asFunction<
+            ${trampFuncType.getDartType(w)}>()(_id''');
+    for (int i = 0; i < params.length; ++i) {
+      s.write(', ${params[i].name}');
+    }
+    s.write(''');
+  }''');
+
+    // Get the pointer to the underlying block.
+    s.write('  ${blockPtr.getCType(w)} get pointer => _id;\n');
+
+    s.write('}\n');
+    return BindingString(
+        type: BindingStringType.objcBlock, string: s.toString());
+  }
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    if (dependencies.contains(this)) return;
+    dependencies.add(this);
+
+    returnType.addDependencies(dependencies);
+    for (final t in argTypes) {
+      t.addDependencies(dependencies);
+    }
+    builtInFunctions.addBlockDependencies(dependencies);
+  }
+
+  @override
+  String getCType(Writer w) =>
+      PointerType(builtInFunctions.blockStruct).getCType(w);
+
+  @override
+  String toString() => '($returnType (^)(${argTypes.join(', ')}))';
+}
diff --git a/lib/src/code_generator/objc_built_in_functions.dart b/lib/src/code_generator/objc_built_in_functions.dart
new file mode 100644
index 0000000..ebb4b20
--- /dev/null
+++ b/lib/src/code_generator/objc_built_in_functions.dart
@@ -0,0 +1,395 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+
+import 'binding_string.dart';
+import 'writer.dart';
+
+/// Built in functions used by the Objective C bindings.
+class ObjCBuiltInFunctions {
+  late final _registerNameFunc = Func(
+    name: '_sel_registerName',
+    originalName: 'sel_registerName',
+    returnType: PointerType(objCSelType),
+    parameters: [Parameter(name: 'str', type: PointerType(charType))],
+    isInternal: true,
+  );
+  late final registerName = ObjCInternalFunction(
+      '_registerName', _registerNameFunc, (Writer w, String name) {
+    final selType = _registerNameFunc.functionType.returnType.getCType(w);
+    return '''
+$selType $name(String name) {
+  final cstr = name.toNativeUtf8();
+  final sel = ${_registerNameFunc.name}(cstr.cast());
+  ${w.ffiPkgLibraryPrefix}.calloc.free(cstr);
+  return sel;
+}
+''';
+  });
+
+  late final _getClassFunc = Func(
+    name: '_objc_getClass',
+    originalName: 'objc_getClass',
+    returnType: PointerType(objCObjectType),
+    parameters: [Parameter(name: 'str', type: PointerType(charType))],
+    isInternal: true,
+  );
+  late final getClass =
+      ObjCInternalFunction('_getClass', _getClassFunc, (Writer w, String name) {
+    final objType = _getClassFunc.functionType.returnType.getCType(w);
+    return '''
+$objType $name(String name) {
+  final cstr = name.toNativeUtf8();
+  final clazz = ${_getClassFunc.name}(cstr.cast());
+  ${w.ffiPkgLibraryPrefix}.calloc.free(cstr);
+  if (clazz == ${w.ffiLibraryPrefix}.nullptr) {
+    throw Exception('Failed to load Objective-C class: \$name');
+  }
+  return clazz;
+}
+''';
+  });
+
+  late final _retainFunc = Func(
+    name: '_objc_retain',
+    originalName: 'objc_retain',
+    returnType: PointerType(objCObjectType),
+    parameters: [Parameter(name: 'value', type: PointerType(objCObjectType))],
+    isInternal: true,
+  );
+  late final _releaseFunc = Func(
+    name: '_objc_release',
+    originalName: 'objc_release',
+    returnType: voidType,
+    parameters: [Parameter(name: 'value', type: PointerType(objCObjectType))],
+    isInternal: true,
+  );
+  late final _releaseFinalizer = ObjCInternalGlobal(
+    '_objc_releaseFinalizer',
+    (Writer w) => '${w.ffiLibraryPrefix}.NativeFinalizer('
+        '${_releaseFunc.funcPointerName}.cast())',
+    _releaseFunc,
+  );
+
+  late final _blockCopyFunc = Func(
+    name: '_Block_copy',
+    originalName: '_Block_copy',
+    returnType: PointerType(voidType),
+    parameters: [Parameter(name: 'value', type: PointerType(voidType))],
+    isInternal: true,
+  );
+  late final _blockReleaseFunc = Func(
+    name: '_Block_release',
+    originalName: '_Block_release',
+    returnType: voidType,
+    parameters: [Parameter(name: 'value', type: PointerType(voidType))],
+    isInternal: true,
+  );
+  late final _blockReleaseFinalizer = ObjCInternalGlobal(
+    '_objc_releaseFinalizer',
+    (Writer w) => '${w.ffiLibraryPrefix}.NativeFinalizer('
+        '${_blockReleaseFunc.funcPointerName}.cast())',
+    _blockReleaseFunc,
+  );
+
+  // We need to load a separate instance of objc_msgSend for each signature.
+  final _msgSendFuncs = <String, Func>{};
+  Func getMsgSendFunc(Type returnType, List<ObjCMethodParam> params) {
+    var key = returnType.cacheKey();
+    for (final p in params) {
+      key += ' ${p.type.cacheKey()}';
+    }
+    return _msgSendFuncs[key] ??= Func(
+      name: '_objc_msgSend_${_msgSendFuncs.length}',
+      originalName: 'objc_msgSend',
+      returnType: returnType,
+      parameters: [
+        Parameter(name: 'obj', type: PointerType(objCObjectType)),
+        Parameter(name: 'sel', type: PointerType(objCSelType)),
+        for (final p in params) Parameter(name: p.name, type: p.type),
+      ],
+      isInternal: true,
+    );
+  }
+
+  final _selObjects = <String, ObjCInternalGlobal>{};
+  ObjCInternalGlobal getSelObject(String methodName) {
+    return _selObjects[methodName] ??= ObjCInternalGlobal(
+      '_sel_${methodName.replaceAll(":", "_")}',
+      (Writer w) => '${registerName.name}("$methodName")',
+      registerName,
+    );
+  }
+
+  // See https://clang.llvm.org/docs/Block-ABI-Apple.html
+  late final blockStruct = Struct(
+    name: '_ObjCBlock',
+    isInternal: true,
+    members: [
+      Member(name: 'isa', type: PointerType(voidType)),
+      Member(name: 'flags', type: intType),
+      Member(name: 'reserved', type: intType),
+      Member(name: 'invoke', type: PointerType(voidType)),
+      Member(name: 'descriptor', type: PointerType(blockDescStruct)),
+      Member(name: 'target', type: PointerType(voidType)),
+    ],
+  );
+  late final blockDescStruct = Struct(
+    name: '_ObjCBlockDesc',
+    isInternal: true,
+    members: [
+      Member(name: 'reserved', type: unsignedLongType),
+      Member(name: 'size', type: unsignedLongType),
+      Member(name: 'copy_helper', type: PointerType(voidType)),
+      Member(name: 'dispose_helper', type: PointerType(voidType)),
+      Member(name: 'signature', type: PointerType(charType)),
+    ],
+  );
+  late final newBlockDesc =
+      ObjCInternalFunction('_newBlockDesc', null, (Writer w, String name) {
+    final blockType = blockStruct.getCType(w);
+    final descType = blockDescStruct.getCType(w);
+    final descPtr = PointerType(blockDescStruct).getCType(w);
+    return '''
+$descPtr $name() {
+  final d = ${w.ffiPkgLibraryPrefix}.calloc.allocate<$descType>(
+      ${w.ffiLibraryPrefix}.sizeOf<$descType>());
+  d.ref.reserved = 0;
+  d.ref.size = ${w.ffiLibraryPrefix}.sizeOf<$blockType>();
+  d.ref.copy_helper = ${w.ffiLibraryPrefix}.nullptr;
+  d.ref.dispose_helper = ${w.ffiLibraryPrefix}.nullptr;
+  d.ref.signature = ${w.ffiLibraryPrefix}.nullptr;
+  return d;
+}
+''';
+  });
+  late final blockDescSingleton = ObjCInternalGlobal(
+    '_objc_block_desc',
+    (Writer w) => '${newBlockDesc.name}()',
+    blockDescStruct,
+  );
+  late final concreteGlobalBlock = ObjCInternalGlobal(
+    '_objc_concrete_global_block',
+    (Writer w) => '${w.lookupFuncIdentifier}<${voidType.getCType(w)}>('
+        "'_NSConcreteGlobalBlock')",
+  );
+  late final newBlock = ObjCInternalFunction('_newBlock', _blockCopyFunc,
+      (Writer w, String name) {
+    final blockType = blockStruct.getCType(w);
+    final blockPtr = PointerType(blockStruct).getCType(w);
+    final voidPtr = PointerType(voidType).getCType(w);
+    return '''
+$blockPtr $name($voidPtr invoke, $voidPtr target) {
+  final b = ${w.ffiPkgLibraryPrefix}.calloc.allocate<$blockType>(
+      ${w.ffiLibraryPrefix}.sizeOf<$blockType>());
+  b.ref.isa = ${concreteGlobalBlock.name};
+  b.ref.flags = 0;
+  b.ref.reserved = 0;
+  b.ref.invoke = invoke;
+  b.ref.target = target;
+  b.ref.descriptor = ${blockDescSingleton.name};
+  final copy = ${_blockCopyFunc.name}(b.cast()).cast<$blockType>();
+  ${w.ffiPkgLibraryPrefix}.calloc.free(b);
+  return copy;
+}
+''';
+  });
+
+  void _writeFinalizableClass(
+      Writer w,
+      StringBuffer s,
+      String name,
+      String kind,
+      String idType,
+      String retain,
+      String release,
+      String finalizer) {
+    s.write('''
+class $name implements ${w.ffiLibraryPrefix}.Finalizable {
+  final $idType _id;
+  final ${w.className} _lib;
+  bool _pendingRelease;
+
+  $name._(this._id, this._lib,
+      {bool retain = false, bool release = false}) : _pendingRelease = release {
+    if (retain) {
+      _lib.$retain(_id.cast());
+    }
+    if (release) {
+      _lib.$finalizer.attach(this, _id.cast(), detach: this);
+    }
+  }
+
+  /// Releases the reference to the underlying ObjC $kind held by this wrapper.
+  /// Throws a StateError if this wrapper doesn't currently hold a reference.
+  void release() {
+    if (_pendingRelease) {
+      _pendingRelease = false;
+      _lib.$release(_id.cast());
+      _lib.$finalizer.detach(this);
+    } else {
+      throw StateError(
+          'Released an ObjC $kind that was unowned or already released.');
+    }
+  }
+
+  @override
+  bool operator ==(Object other) {
+    return other is $name && _id == other._id;
+  }
+
+  @override
+  int get hashCode => _id.hashCode;
+}
+''');
+  }
+
+  bool utilsExist = false;
+  void ensureUtilsExist(Writer w, StringBuffer s) {
+    if (utilsExist) return;
+    utilsExist = true;
+    _writeFinalizableClass(
+        w,
+        s,
+        '_ObjCWrapper',
+        'object',
+        PointerType(objCObjectType).getCType(w),
+        _retainFunc.name,
+        _releaseFunc.name,
+        _releaseFinalizer.name);
+  }
+
+  bool blockUtilsExist = false;
+  void ensureBlockUtilsExist(Writer w, StringBuffer s) {
+    if (blockUtilsExist) return;
+    blockUtilsExist = true;
+    _writeFinalizableClass(
+        w,
+        s,
+        '_ObjCBlockBase',
+        'block',
+        PointerType(blockStruct).getCType(w),
+        _blockCopyFunc.name,
+        _blockReleaseFunc.name,
+        _blockReleaseFinalizer.name);
+  }
+
+  void addDependencies(Set<Binding> dependencies) {
+    registerName.addDependencies(dependencies);
+    getClass.addDependencies(dependencies);
+    _retainFunc.addDependencies(dependencies);
+    _releaseFunc.addDependencies(dependencies);
+    _releaseFinalizer.addDependencies(dependencies);
+    for (final func in _msgSendFuncs.values) {
+      func.addDependencies(dependencies);
+    }
+    for (final sel in _selObjects.values) {
+      sel.addDependencies(dependencies);
+    }
+  }
+
+  void addBlockDependencies(Set<Binding> dependencies) {
+    newBlockDesc.addDependencies(dependencies);
+    blockDescSingleton.addDependencies(dependencies);
+    blockStruct.addDependencies(dependencies);
+    concreteGlobalBlock.addDependencies(dependencies);
+    newBlock.addDependencies(dependencies);
+    _blockCopyFunc.addDependencies(dependencies);
+    _blockReleaseFunc.addDependencies(dependencies);
+    _blockReleaseFinalizer.addDependencies(dependencies);
+  }
+
+  final _interfaceRegistry = <String, ObjCInterface>{};
+  void registerInterface(ObjCInterface interface) {
+    _interfaceRegistry[interface.originalName] = interface;
+  }
+
+  ObjCInterface get nsData {
+    return _interfaceRegistry["NSData"] ??
+        (ObjCInterface(
+          originalName: "NSData",
+          builtInFunctions: this,
+        ));
+  }
+
+  void generateNSStringUtils(Writer w, StringBuffer s) {
+    // Generate a constructor that wraps stringWithCharacters, and a toString
+    // method that wraps dataUsingEncoding.
+    s.write('''
+  factory NSString(${w.className} _lib, String str) {
+    final cstr = str.toNativeUtf16();
+    final nsstr = stringWithCharacters_length_(_lib, cstr.cast(), str.length);
+    ${w.ffiPkgLibraryPrefix}.calloc.free(cstr);
+    return nsstr;
+  }
+
+  @override
+  String toString() {
+    final data = dataUsingEncoding_(
+        0x94000100 /* NSUTF16LittleEndianStringEncoding */);
+    return data.bytes.cast<${w.ffiPkgLibraryPrefix}.Utf16>().toDartString(
+        length: length);
+  }
+''');
+  }
+
+  void generateStringUtils(Writer w, StringBuffer s) {
+    // Generate an extension on String to convert to NSString
+    s.write('''
+extension StringToNSString on String {
+  NSString toNSString(${w.className} lib) => NSString(lib, this);
+}
+''');
+  }
+}
+
+/// Functions only used internally by ObjC bindings, which may or may not wrap a
+/// native function, such as getClass.
+class ObjCInternalFunction extends LookUpBinding {
+  final Func? _wrappedFunction;
+  final String Function(Writer, String) _toBindingString;
+
+  ObjCInternalFunction(
+      String name, this._wrappedFunction, this._toBindingString)
+      : super(originalName: name, name: name, isInternal: true);
+
+  @override
+  BindingString toBindingString(Writer w) {
+    name = w.wrapperLevelUniqueNamer.makeUnique(name);
+    return BindingString(
+        type: BindingStringType.func, string: _toBindingString(w, name));
+  }
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    if (dependencies.contains(this)) return;
+    dependencies.add(this);
+    _wrappedFunction?.addDependencies(dependencies);
+  }
+}
+
+/// Globals only used internally by ObjC bindings, such as classes and SELs.
+class ObjCInternalGlobal extends LookUpBinding {
+  final String Function(Writer) makeValue;
+  Binding? binding;
+
+  ObjCInternalGlobal(String name, this.makeValue, [this.binding])
+      : super(originalName: name, name: name, isInternal: true);
+
+  @override
+  BindingString toBindingString(Writer w) {
+    final s = StringBuffer();
+    name = w.wrapperLevelUniqueNamer.makeUnique(name);
+    s.write('late final $name = ${makeValue(w)};');
+    return BindingString(type: BindingStringType.global, string: s.toString());
+  }
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    if (dependencies.contains(this)) return;
+    dependencies.add(this);
+    binding?.addDependencies(dependencies);
+  }
+}
diff --git a/lib/src/code_generator/objc_interface.dart b/lib/src/code_generator/objc_interface.dart
new file mode 100644
index 0000000..2cf44af
--- /dev/null
+++ b/lib/src/code_generator/objc_interface.dart
@@ -0,0 +1,499 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:logging/logging.dart';
+
+import '../strings.dart' as strings;
+import 'binding_string.dart';
+import 'utils.dart';
+import 'writer.dart';
+
+// Class methods defined on NSObject that we don't want to copy to child objects
+// by default.
+const _excludedNSObjectClassMethods = {
+  'allocWithZone:',
+  'class',
+  'conformsToProtocol:',
+  'copyWithZone:',
+  'debugDescription',
+  'description',
+  'hash',
+  'initialize',
+  'instanceMethodForSelector:',
+  'instanceMethodSignatureForSelector:',
+  'instancesRespondToSelector:',
+  'isSubclassOfClass:',
+  'load',
+  'mutableCopyWithZone:',
+  'poseAsClass:',
+  'resolveClassMethod:',
+  'resolveInstanceMethod:',
+  'setVersion:',
+  'superclass',
+  'version',
+};
+
+final _logger = Logger('ffigen.code_generator.objc_interface');
+
+class ObjCInterface extends BindingType {
+  ObjCInterface? superType;
+  final methods = <String, ObjCMethod>{};
+  bool filled = false;
+
+  final String lookupName;
+  final ObjCBuiltInFunctions builtInFunctions;
+  late final ObjCInternalGlobal _classObject;
+  late final ObjCInternalGlobal _isKindOfClass;
+  late final Func _isKindOfClassMsgSend;
+
+  ObjCInterface({
+    String? usr,
+    required String originalName,
+    String? name,
+    String? lookupName,
+    String? dartDoc,
+    required this.builtInFunctions,
+  })  : lookupName = lookupName ?? originalName,
+        super(
+          usr: usr,
+          originalName: originalName,
+          name: name ?? originalName,
+          dartDoc: dartDoc,
+        ) {
+    builtInFunctions.registerInterface(this);
+  }
+
+  bool get isNSString => originalName == "NSString";
+  bool get isNSData => originalName == "NSData";
+
+  @override
+  BindingString toBindingString(Writer w) {
+    String paramsToString(List<ObjCMethodParam> params,
+        {required bool isStatic}) {
+      final List<String> stringParams = [];
+
+      if (isStatic) {
+        stringParams.add('${w.className} _lib');
+      }
+      stringParams.addAll(params.map((p) =>
+          (_getConvertedType(p.type, w, name) +
+              (p.isNullable ? "? " : " ") +
+              p.name)));
+      return '(${stringParams.join(", ")})';
+    }
+
+    final s = StringBuffer();
+    if (dartDoc != null) {
+      s.write(makeDartDoc(dartDoc!));
+    }
+
+    final uniqueNamer = UniqueNamer({name, '_id', '_lib'});
+    final natLib = w.className;
+
+    builtInFunctions.ensureUtilsExist(w, s);
+    final objType = PointerType(objCObjectType).getCType(w);
+
+    // Class declaration.
+    s.write('''
+class $name extends ${superType?.name ?? '_ObjCWrapper'} {
+  $name._($objType id, $natLib lib,
+      {bool retain = false, bool release = false}) :
+          super._(id, lib, retain: retain, release: release);
+
+  /// Returns a [$name] that points to the same underlying object as [other].
+  static $name castFrom<T extends _ObjCWrapper>(T other) {
+    return $name._(other._id, other._lib, retain: true, release: true);
+  }
+
+  /// Returns a [$name] that wraps the given raw object pointer.
+  static $name castFromPointer($natLib lib, $objType other,
+      {bool retain = false, bool release = false}) {
+    return $name._(other, lib, retain: retain, release: release);
+  }
+
+  /// Returns whether [obj] is an instance of [$name].
+  static bool isInstance(_ObjCWrapper obj) {
+    return obj._lib.${_isKindOfClassMsgSend.name}(
+        obj._id, obj._lib.${_isKindOfClass.name},
+        obj._lib.${_classObject.name});
+  }
+
+''');
+
+    if (isNSString) {
+      builtInFunctions.generateNSStringUtils(w, s);
+    }
+
+    // Methods.
+    for (final m in methods.values) {
+      final methodName = m._getDartMethodName(uniqueNamer);
+      final isStatic = m.isClass;
+      final returnType = m.returnType;
+
+      // The method declaration.
+      if (m.dartDoc != null) {
+        s.write(makeDartDoc(m.dartDoc!));
+      }
+
+      s.write('  ');
+      if (isStatic) {
+        s.write('static ');
+        s.write(
+            _getConvertedReturnType(returnType, w, name, m.isNullableReturn));
+
+        switch (m.kind) {
+          case ObjCMethodKind.method:
+            // static returnType methodName(NativeLibrary _lib, ...)
+            s.write(' $methodName');
+            break;
+          case ObjCMethodKind.propertyGetter:
+            // static returnType getMethodName(NativeLibrary _lib)
+            s.write(' get');
+            s.write(methodName[0].toUpperCase() + methodName.substring(1));
+            break;
+          case ObjCMethodKind.propertySetter:
+            // static void setMethodName(NativeLibrary _lib, ...)
+            s.write(' set');
+            s.write(methodName[0].toUpperCase() + methodName.substring(1));
+            break;
+        }
+        s.write(paramsToString(m.params, isStatic: true));
+      } else {
+        if (superType?.methods[m.originalName]?.sameAs(m) ?? false) {
+          s.write('@override\n  ');
+        }
+        switch (m.kind) {
+          case ObjCMethodKind.method:
+            // returnType methodName(...)
+            s.write(_getConvertedReturnType(
+                returnType, w, name, m.isNullableReturn));
+            s.write(' $methodName');
+            s.write(paramsToString(m.params, isStatic: false));
+            break;
+          case ObjCMethodKind.propertyGetter:
+            // returnType get methodName
+            s.write(_getConvertedReturnType(
+                returnType, w, name, m.isNullableReturn));
+            s.write(' get $methodName');
+            break;
+          case ObjCMethodKind.propertySetter:
+            // set methodName(...)
+            s.write(' set $methodName');
+            s.write(paramsToString(m.params, isStatic: false));
+            break;
+        }
+      }
+
+      s.write(' {\n');
+
+      // Implementation.
+      final convertReturn = m.kind != ObjCMethodKind.propertySetter &&
+          _needsConverting(returnType);
+
+      if (returnType != NativeType(SupportedNativeType.Void)) {
+        s.write('    ${convertReturn ? 'final _ret = ' : 'return '}');
+      }
+      s.write('_lib.${m.msgSend!.name}(');
+      s.write(isStatic ? '_lib.${_classObject.name}' : '_id');
+      s.write(', _lib.${m.selObject!.name}');
+      for (final p in m.params) {
+        s.write(', ${_doArgConversion(p)}');
+      }
+      s.write(');\n');
+      if (convertReturn) {
+        final result = _doReturnConversion(returnType, '_ret', name, '_lib',
+            m.isNullableReturn, m.isOwnedReturn);
+        s.write('    return $result;');
+      }
+
+      s.write('  }\n\n');
+    }
+
+    s.write('}\n\n');
+
+    if (isNSString) {
+      builtInFunctions.generateStringUtils(w, s);
+    }
+
+    return BindingString(
+        type: BindingStringType.objcInterface, string: s.toString());
+  }
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    if (dependencies.contains(this)) return;
+    dependencies.add(this);
+    builtInFunctions.addDependencies(dependencies);
+
+    _classObject = ObjCInternalGlobal(
+        '_class_$originalName',
+        (Writer w) => '${builtInFunctions.getClass.name}("$lookupName")',
+        builtInFunctions.getClass)
+      ..addDependencies(dependencies);
+    _isKindOfClass = builtInFunctions.getSelObject('isKindOfClass:');
+    _isKindOfClassMsgSend = builtInFunctions.getMsgSendFunc(
+        BooleanType(), [ObjCMethodParam(PointerType(objCObjectType), 'clazz')]);
+
+    if (isNSString) {
+      _addNSStringMethods();
+    }
+
+    if (isNSData) {
+      _addNSDataMethods();
+    }
+
+    if (superType != null) {
+      superType!.addDependencies(dependencies);
+      _copyClassMethodsFromSuperType();
+    }
+
+    for (final m in methods.values) {
+      m.addDependencies(dependencies, builtInFunctions);
+    }
+  }
+
+  void _copyClassMethodsFromSuperType() {
+    // Copy class methods from the super type, because Dart classes don't
+    // inherit static methods.
+    for (final m in superType!.methods.values) {
+      if (m.isClass &&
+          !_excludedNSObjectClassMethods.contains(m.originalName)) {
+        addMethod(m);
+      }
+    }
+  }
+
+  void addMethod(ObjCMethod method) {
+    final oldMethod = methods[method.originalName];
+    if (oldMethod != null) {
+      // Typically we ignore duplicate methods. However, property setters and
+      // getters are duplicated in the AST. One copy is marked with
+      // ObjCMethodKind.propertyGetter/Setter. The other copy is missing
+      // important information, and is a plain old instanceMethod. So if the
+      // existing method is an instanceMethod, and the new one is a property,
+      // override it.
+      if (method.isProperty && !oldMethod.isProperty) {
+        // Fallthrough.
+      } else if (!method.isProperty && oldMethod.isProperty) {
+        // Don't override, but also skip the same method check below.
+        return;
+      } else {
+        // Check duplicate is the same method.
+        if (!method.sameAs(oldMethod)) {
+          _logger.severe('Duplicate methods with different signatures: '
+              '$originalName.${method.originalName}');
+        }
+        return;
+      }
+    }
+    methods[method.originalName] = method;
+  }
+
+  void _addNSStringMethods() {
+    addMethod(ObjCMethod(
+      originalName: 'stringWithCharacters:length:',
+      kind: ObjCMethodKind.method,
+      isClass: true,
+      returnType: this,
+      params_: [
+        ObjCMethodParam(PointerType(wCharType), 'characters'),
+        ObjCMethodParam(unsignedIntType, 'length'),
+      ],
+    ));
+    addMethod(ObjCMethod(
+      originalName: 'dataUsingEncoding:',
+      kind: ObjCMethodKind.method,
+      isClass: false,
+      returnType: builtInFunctions.nsData,
+      params_: [
+        ObjCMethodParam(unsignedIntType, 'encoding'),
+      ],
+    ));
+    addMethod(ObjCMethod(
+      originalName: 'length',
+      kind: ObjCMethodKind.propertyGetter,
+      isClass: false,
+      returnType: unsignedIntType,
+      params_: [],
+    ));
+  }
+
+  void _addNSDataMethods() {
+    addMethod(ObjCMethod(
+      originalName: 'bytes',
+      kind: ObjCMethodKind.propertyGetter,
+      isClass: false,
+      returnType: PointerType(voidType),
+      params_: [],
+    ));
+  }
+
+  @override
+  String getCType(Writer w) => PointerType(objCObjectType).getCType(w);
+
+  bool _isObject(Type type) =>
+      type is PointerType && type.child == objCObjectType;
+
+  bool _isInstanceType(Type type) =>
+      type is Typealias &&
+      type.originalName == strings.objcInstanceType &&
+      _isObject(type.type);
+
+  // Utils for converting between the internal types passed to native code, and
+  // the external types visible to the user. For example, ObjCInterfaces are
+  // passed to native as Pointer<ObjCObject>, but the user sees the Dart wrapper
+  // class. These methods need to be kept in sync.
+  bool _needsConverting(Type type) =>
+      type is ObjCInterface ||
+      type is ObjCBlock ||
+      _isObject(type) ||
+      _isInstanceType(type);
+
+  String _getConvertedType(Type type, Writer w, String enclosingClass) {
+    if (type is BooleanType) return 'bool';
+    if (type is ObjCInterface) return type.name;
+    if (type is ObjCBlock) return type.name;
+    if (_isObject(type)) return 'NSObject';
+    if (_isInstanceType(type)) return enclosingClass;
+    return type.getDartType(w);
+  }
+
+  String _getConvertedReturnType(
+      Type type, Writer w, String enclosingClass, bool isNullableReturn) {
+    final result = _getConvertedType(type, w, enclosingClass);
+    if (isNullableReturn) {
+      return "$result?";
+    }
+    return result;
+  }
+
+  String _doArgConversion(ObjCMethodParam arg) {
+    if (arg.type is ObjCInterface ||
+        _isObject(arg.type) ||
+        _isInstanceType(arg.type) ||
+        arg.type is ObjCBlock) {
+      if (arg.isNullable) {
+        return '${arg.name}?._id ?? ffi.nullptr';
+      } else {
+        return '${arg.name}._id';
+      }
+    }
+    return arg.name;
+  }
+
+  String _doReturnConversion(Type type, String value, String enclosingClass,
+      String library, bool isNullable, bool isOwnedReturn) {
+    final prefix = isNullable ? '$value.address == 0 ? null : ' : '';
+    final ownerFlags = 'retain: ${!isOwnedReturn}, release: true';
+    if (type is ObjCInterface) {
+      return '$prefix${type.name}._($value, $library, $ownerFlags)';
+    }
+    if (type is ObjCBlock) {
+      return '$prefix${type.name}._($value, $library)';
+    }
+    if (_isObject(type)) {
+      return '${prefix}NSObject._($value, $library, $ownerFlags)';
+    }
+    if (_isInstanceType(type)) {
+      return '$prefix$enclosingClass._($value, $library, $ownerFlags)';
+    }
+    return prefix + value;
+  }
+}
+
+enum ObjCMethodKind {
+  method,
+  propertyGetter,
+  propertySetter,
+}
+
+class ObjCProperty {
+  final String originalName;
+  String? dartName;
+
+  ObjCProperty(this.originalName);
+}
+
+class ObjCMethod {
+  final String? dartDoc;
+  final String originalName;
+  final ObjCProperty? property;
+  final Type returnType;
+  final bool isNullableReturn;
+  final List<ObjCMethodParam> params;
+  final ObjCMethodKind kind;
+  final bool isClass;
+  bool returnsRetained = false;
+  ObjCInternalGlobal? selObject;
+  Func? msgSend;
+
+  ObjCMethod({
+    required this.originalName,
+    this.property,
+    this.dartDoc,
+    required this.kind,
+    required this.isClass,
+    required this.returnType,
+    this.isNullableReturn = false,
+    List<ObjCMethodParam>? params_,
+  }) : params = params_ ?? [];
+
+  bool get isProperty =>
+      kind == ObjCMethodKind.propertyGetter ||
+      kind == ObjCMethodKind.propertySetter;
+
+  void addDependencies(
+      Set<Binding> dependencies, ObjCBuiltInFunctions builtInFunctions) {
+    returnType.addDependencies(dependencies);
+    for (final p in params) {
+      p.type.addDependencies(dependencies);
+    }
+    selObject ??= builtInFunctions.getSelObject(originalName)
+      ..addDependencies(dependencies);
+    msgSend ??= builtInFunctions.getMsgSendFunc(returnType, params)
+      ..addDependencies(dependencies);
+  }
+
+  String _getDartMethodName(UniqueNamer uniqueNamer) {
+    if (property != null) {
+      // A getter and a setter are allowed to have the same name, so we can't
+      // just run the name through uniqueNamer. Instead they need to share
+      // the dartName, which is run through uniqueNamer.
+      if (property!.dartName == null) {
+        property!.dartName = uniqueNamer.makeUnique(property!.originalName);
+      }
+      return property!.dartName!;
+    }
+    // Objective C methods can look like:
+    // foo
+    // foo:
+    // foo:someArgName:
+    // So replace all ':' with '_'.
+    return uniqueNamer.makeUnique(originalName.replaceAll(":", "_"));
+  }
+
+  bool sameAs(ObjCMethod other) {
+    if (originalName != other.originalName) return false;
+    if (isNullableReturn != other.isNullableReturn) return false;
+    if (kind != other.kind) return false;
+    if (isClass != other.isClass) return false;
+    // msgSend is deduped by signature, so this check covers the signature.
+    return msgSend == other.msgSend;
+  }
+
+  static final _copyRegExp = RegExp('[cC]opy');
+  bool get isOwnedReturn =>
+      returnsRetained ||
+      originalName.startsWith('new') ||
+      originalName.startsWith('alloc') ||
+      originalName.contains(_copyRegExp);
+}
+
+class ObjCMethodParam {
+  final Type type;
+  final String name;
+  final bool isNullable;
+  ObjCMethodParam(this.type, this.name, {this.isNullable = false});
+}
diff --git a/lib/src/code_generator/pointer.dart b/lib/src/code_generator/pointer.dart
new file mode 100644
index 0000000..cacb5b2
--- /dev/null
+++ b/lib/src/code_generator/pointer.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+
+import 'writer.dart';
+
+/// Represents a pointer.
+class PointerType extends Type {
+  final Type child;
+  PointerType(this.child);
+
+  @override
+  void addDependencies(Set<Binding> dependencies) {
+    child.addDependencies(dependencies);
+  }
+
+  @override
+  Type get baseType => child.baseType;
+
+  @override
+  String getCType(Writer w) =>
+      '${w.ffiLibraryPrefix}.Pointer<${child.getCType(w)}>';
+
+  @override
+  String toString() => '$child*';
+
+  @override
+  String cacheKey() => '${child.cacheKey()}*';
+}
+
+/// Represents a constant array, which has a fixed size.
+class ConstantArray extends PointerType {
+  final int length;
+  ConstantArray(this.length, Type child) : super(child);
+
+  @override
+  Type get baseArrayType => child.baseArrayType;
+
+  @override
+  bool get isIncompleteCompound => baseArrayType.isIncompleteCompound;
+
+  @override
+  String toString() => '$child[$length]';
+
+  @override
+  String cacheKey() => '${child.cacheKey()}[$length]';
+}
+
+/// Represents an incomplete array, which has an unknown size.
+class IncompleteArray extends PointerType {
+  IncompleteArray(Type child) : super(child);
+
+  @override
+  Type get baseArrayType => child.baseArrayType;
+
+  @override
+  String toString() => '$child[]';
+
+  @override
+  String cacheKey() => '${child.cacheKey()}[]';
+}
diff --git a/lib/src/code_generator/struc.dart b/lib/src/code_generator/struct.dart
similarity index 84%
rename from lib/src/code_generator/struc.dart
rename to lib/src/code_generator/struct.dart
index 4f06369..c65e04b 100644
--- a/lib/src/code_generator/struc.dart
+++ b/lib/src/code_generator/struct.dart
@@ -28,23 +28,25 @@
 ///
 /// }
 /// ```
-class Struc extends Compound {
-  Struc({
+class Struct extends Compound {
+  Struct({
     String? usr,
     String? originalName,
     required String name,
-    bool isInComplete = false,
+    bool isIncomplete = false,
     int? pack,
     String? dartDoc,
     List<Member>? members,
+    bool isInternal = false,
   }) : super(
           usr: usr,
           originalName: originalName,
           name: name,
           dartDoc: dartDoc,
-          isInComplete: isInComplete,
+          isIncomplete: isIncomplete,
           members: members,
           pack: pack,
           compoundType: CompoundType.struct,
+          isInternal: isInternal,
         );
 }
diff --git a/lib/src/code_generator/type.dart b/lib/src/code_generator/type.dart
index ba16841..8468eca 100644
--- a/lib/src/code_generator/type.dart
+++ b/lib/src/code_generator/type.dart
@@ -6,382 +6,115 @@
 
 import 'writer.dart';
 
-class _SubType {
-  final String c;
-  final String dart;
-
-  const _SubType({required this.c, required this.dart});
-}
-
-enum SupportedNativeType {
-  Void,
-  Char,
-  Int8,
-  Int16,
-  Int32,
-  Int64,
-  Uint8,
-  Uint16,
-  Uint32,
-  Uint64,
-  Float,
-  Double,
-  IntPtr,
-}
-
-/// The basic types in which all types can be broadly classified into.
-enum BroadType {
-  Boolean,
-  NativeType,
-  Pointer,
-  Compound,
-  NativeFunction,
-
-  /// Represents a function type.
-  FunctionType,
-
-  /// Represents a typealias.
-  Typealias,
-
-  /// Represents a Dart_Handle.
-  Handle,
-
-  Enum,
-
-  /// Represents an Array type.
-  ConstantArray,
-  IncompleteArray,
-
-  /// Used as a marker, so that declarations having these can exclude them.
-  Unimplemented,
-}
-
 /// Type class for return types, variable types, etc.
-class Type {
-  static const _primitives = <SupportedNativeType, _SubType>{
-    SupportedNativeType.Void: _SubType(c: 'Void', dart: 'void'),
-    SupportedNativeType.Char: _SubType(c: 'Uint8', dart: 'int'),
-    SupportedNativeType.Int8: _SubType(c: 'Int8', dart: 'int'),
-    SupportedNativeType.Int16: _SubType(c: 'Int16', dart: 'int'),
-    SupportedNativeType.Int32: _SubType(c: 'Int32', dart: 'int'),
-    SupportedNativeType.Int64: _SubType(c: 'Int64', dart: 'int'),
-    SupportedNativeType.Uint8: _SubType(c: 'Uint8', dart: 'int'),
-    SupportedNativeType.Uint16: _SubType(c: 'Uint16', dart: 'int'),
-    SupportedNativeType.Uint32: _SubType(c: 'Uint32', dart: 'int'),
-    SupportedNativeType.Uint64: _SubType(c: 'Uint64', dart: 'int'),
-    SupportedNativeType.Float: _SubType(c: 'Float', dart: 'double'),
-    SupportedNativeType.Double: _SubType(c: 'Double', dart: 'double'),
-    SupportedNativeType.IntPtr: _SubType(c: 'IntPtr', dart: 'int'),
-  };
-
-  /// Enum type is mapped to [SupportedNativeType.Int32].
-  static const enumNativeType = SupportedNativeType.Int32;
-
-  /// Reference to the [Compound] binding this type refers to.
-  Compound? compound;
-
-  /// Reference to the [NativeFunc] this type refers to.
-  NativeFunc? nativeFunc;
-
-  /// Reference to the [Typealias] this type refers to.
-  Typealias? typealias;
-
-  /// Reference to the [FunctionType] this type refers to.
-  FunctionType? functionType;
-
-  /// Reference to the [EnumClass] this type refers to.
-  EnumClass? enumClass;
-
-  /// For providing [SupportedNativeType] only.
-  final SupportedNativeType? nativeType;
-
-  /// The BroadType of this Type.
-  final BroadType broadType;
-
-  /// Child Type, e.g Pointer(Parent) to Int(Child), or Child Type of an Array.
-  final Type? child;
-
-  /// For ConstantArray and IncompleteArray type.
-  final int? length;
-
-  /// For storing cursor type info for an unimplemented type.
-  String? unimplementedReason;
-
-  Type._({
-    required this.broadType,
-    this.child,
-    this.compound,
-    this.enumClass,
-    this.nativeType,
-    this.nativeFunc,
-    this.typealias,
-    this.functionType,
-    this.length,
-    this.unimplementedReason,
-  });
-
-  factory Type.pointer(Type child) {
-    return Type._(broadType: BroadType.Pointer, child: child);
-  }
-  factory Type.compound(Compound compound) {
-    return Type._(broadType: BroadType.Compound, compound: compound);
-  }
-  factory Type.struct(Struc struc) {
-    return Type._(broadType: BroadType.Compound, compound: struc);
-  }
-  factory Type.union(Union union) {
-    return Type._(broadType: BroadType.Compound, compound: union);
-  }
-  factory Type.enumClass(EnumClass enumClass) {
-    return Type._(broadType: BroadType.Enum, enumClass: enumClass);
-  }
-  factory Type.functionType(FunctionType functionType) {
-    return Type._(
-        broadType: BroadType.FunctionType, functionType: functionType);
-  }
-  factory Type.nativeFunc(NativeFunc nativeFunc) {
-    return Type._(broadType: BroadType.NativeFunction, nativeFunc: nativeFunc);
-  }
-  factory Type.typealias(Typealias typealias) {
-    return Type._(broadType: BroadType.Typealias, typealias: typealias);
-  }
-  factory Type.nativeType(SupportedNativeType nativeType) {
-    return Type._(broadType: BroadType.NativeType, nativeType: nativeType);
-  }
-  factory Type.constantArray(int length, Type elementType) {
-    return Type._(
-      broadType: BroadType.ConstantArray,
-      child: elementType,
-      length: length,
-    );
-  }
-  factory Type.incompleteArray(Type elementType) {
-    return Type._(
-      broadType: BroadType.IncompleteArray,
-      child: elementType,
-    );
-  }
-  factory Type.boolean() {
-    return Type._(
-      broadType: BroadType.Boolean,
-    );
-  }
-  factory Type.unimplemented(String reason) {
-    return Type._(
-        broadType: BroadType.Unimplemented, unimplementedReason: reason);
-  }
-  factory Type.handle() {
-    return Type._(broadType: BroadType.Handle);
-  }
+///
+/// Implementers should extend either Type, or BindingType if the type is also a
+/// binding, and override at least getCType and toString.
+abstract class Type {
+  const Type();
 
   /// Get all dependencies of this type and save them in [dependencies].
-  void addDependencies(Set<Binding> dependencies) {
-    switch (broadType) {
-      case BroadType.Compound:
-        return compound!.addDependencies(dependencies);
-      case BroadType.NativeFunction:
-        return nativeFunc!.addDependencies(dependencies);
-      case BroadType.FunctionType:
-        return functionType!.addDependencies(dependencies);
-      case BroadType.Typealias:
-        return typealias!.addDependencies(dependencies);
-      case BroadType.Enum:
-        return enumClass!.addDependencies(dependencies);
-      default:
-        if (child != null) {
-          return child!.addDependencies(dependencies);
-        }
-    }
-  }
+  void addDependencies(Set<Binding> dependencies) {}
 
   /// Get base type for any type.
   ///
   /// E.g int** has base [Type] of int.
   /// double[2][3] has base [Type] of double.
-  Type getBaseType() {
-    if (child != null) {
-      return child!.getBaseType();
-    } else {
-      return this;
-    }
-  }
+  Type get baseType => this;
 
   /// Get base Array type.
   ///
   /// Returns itself if it's not an Array Type.
-  Type getBaseArrayType() {
-    if (broadType == BroadType.ConstantArray ||
-        broadType == BroadType.IncompleteArray) {
-      return child!.getBaseArrayType();
-    } else {
-      return this;
-    }
-  }
+  Type get baseArrayType => this;
 
   /// Get base typealias type.
   ///
   /// Returns itself if it's not a Typealias.
-  Type getBaseTypealiasType() {
-    if (broadType == BroadType.Typealias) {
-      return typealias!.type.getBaseTypealiasType();
-    } else {
-      return this;
-    }
-  }
-
-  /// Function to check if the dart and C type string are same.
-  bool sameDartAndCType(Writer w) => getCType(w) == getDartType(w);
+  Type get typealiasType => this;
 
   /// Returns true if the type is a [Compound] and is incomplete.
-  bool get isIncompleteCompound {
-    final baseTypealiasType = getBaseTypealiasType();
-    if (baseTypealiasType == this) {
-      return (broadType == BroadType.Compound &&
-              compound != null &&
-              compound!.isInComplete) ||
-          (broadType == BroadType.ConstantArray &&
-              getBaseArrayType().isIncompleteCompound);
-    } else {
-      return baseTypealiasType.isIncompleteCompound;
-    }
-  }
+  bool get isIncompleteCompound => false;
 
-  String getCType(Writer w) {
-    switch (broadType) {
-      case BroadType.NativeType:
-        return '${w.ffiLibraryPrefix}.${_primitives[nativeType!]!.c}';
-      case BroadType.Pointer:
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType.Compound:
-        return compound!.name;
-      case BroadType.Enum:
-        return '${w.ffiLibraryPrefix}.${_primitives[enumNativeType]!.c}';
-      case BroadType.NativeFunction:
-        return '${w.ffiLibraryPrefix}.NativeFunction<${nativeFunc!.type.getCType(w)}>';
-      case BroadType
-          .IncompleteArray: // Array parameters are treated as Pointers in C.
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType
-          .ConstantArray: // Array parameters are treated as Pointers in C.
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType.Boolean: // Booleans are treated as uint8.
-        return '${w.ffiLibraryPrefix}.${_primitives[SupportedNativeType.Uint8]!.c}';
-      case BroadType.Handle:
-        return '${w.ffiLibraryPrefix}.Handle';
-      case BroadType.FunctionType:
-        return functionType!.getCType(w);
-      case BroadType.Typealias:
-        return typealias!.name;
-      case BroadType.Unimplemented:
-        throw UnimplementedError('C type unknown for ${broadType.toString()}');
-    }
-  }
+  /// Returns the C type of the Type. This is the FFI compatible type that is
+  /// passed to native code.
+  String getCType(Writer w) => throw 'No mapping for type: $this';
 
-  String getDartType(Writer w) {
-    switch (broadType) {
-      case BroadType.NativeType:
-        return _primitives[nativeType!]!.dart;
-      case BroadType.Pointer:
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType.Compound:
-        return compound!.name;
-      case BroadType.Enum:
-        return _primitives[enumNativeType]!.dart;
-      case BroadType.NativeFunction:
-        return '${w.ffiLibraryPrefix}.NativeFunction<${nativeFunc!.type.getDartType(w)}>';
-      case BroadType
-          .IncompleteArray: // Array parameters are treated as Pointers in C.
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType
-          .ConstantArray: // Array parameters are treated as Pointers in C.
-        return '${w.ffiLibraryPrefix}.Pointer<${child!.getCType(w)}>';
-      case BroadType.Boolean: // Booleans are treated as uint8.
-        return _primitives[SupportedNativeType.Uint8]!.dart;
-      case BroadType.Handle:
-        return 'Object';
-      case BroadType.FunctionType:
-        return functionType!.getDartType(w);
-      case BroadType.Typealias:
-        // Typealias cannot be used by name in Dart types unless both the C and
-        // Dart type of the underlying types are same.
-        if (typealias!.type.sameDartAndCType(w)) {
-          return typealias!.name;
-        } else {
-          return typealias!.type.getDartType(w);
-        }
-      case BroadType.Unimplemented:
-        throw UnimplementedError(
-            'dart type unknown for ${broadType.toString()}');
-    }
-  }
+  /// Returns the Dart type of the Type. This is the user visible type that is
+  /// passed to Dart code.
+  String getDartType(Writer w) => getCType(w);
+
+  /// Returns the string representation of the Type, for debugging purposes
+  /// only. This string should not be printed as generated code.
+  @override
+  String toString();
+
+  /// Cache key used in various places to dedupe Types. By default this is just
+  /// the hash of the Type, but in many cases this does not dedupe sufficiently.
+  /// So Types that may be duplicated should override this to return a more
+  /// specific key. Types that are already deduped don't need to override this.
+  /// toString() is not a valid cache key as there may be name collisions.
+  String cacheKey() => hashCode.toRadixString(36);
+
+  /// Returns a string of code that creates a default value for this type. For
+  /// example, for int types this returns the string '0'. A null return means
+  /// that default values aren't supported for this type, eg void.
+  String? getDefaultValue(Writer w, String nativeLib) => null;
+}
+
+/// Function to check if the dart and C type string are same.
+bool sameDartAndCType(Type t, Writer w) => t.getCType(w) == t.getDartType(w);
+
+/// Base class for all Type bindings.
+///
+/// Since Dart doesn't have multiple inheritance, this type exists so that we
+/// don't have to reimplement the default methods in all the classes that want
+/// to extend both NoLookUpBinding and Type.
+abstract class BindingType extends NoLookUpBinding implements Type {
+  BindingType({
+    String? usr,
+    String? originalName,
+    required String name,
+    String? dartDoc,
+    bool isInternal = false,
+  }) : super(
+          usr: usr,
+          originalName: originalName,
+          name: name,
+          dartDoc: dartDoc,
+          isInternal: isInternal,
+        );
 
   @override
-  String toString() {
-    return 'Type: $broadType';
-  }
+  Type get baseType => this;
+
+  @override
+  Type get baseArrayType => this;
+
+  @override
+  Type get typealiasType => this;
+
+  @override
+  bool get isIncompleteCompound => false;
+
+  @override
+  String getDartType(Writer w) => getCType(w);
+
+  @override
+  String toString() => originalName;
+
+  @override
+  String cacheKey() => hashCode.toRadixString(36);
+
+  @override
+  String? getDefaultValue(Writer w, String nativeLib) => null;
 }
 
-/// Represents a function type.
-class FunctionType {
-  final Type returnType;
-  final List<Parameter> parameters;
+/// Represents an unimplemented type. Used as a marker, so that declarations
+/// having these can exclude them.
+class UnimplementedType extends Type {
+  String reason;
+  UnimplementedType(this.reason);
 
-  FunctionType({
-    required this.returnType,
-    required this.parameters,
-  });
-
-  String getCType(Writer w, {bool writeArgumentNames = true}) {
-    final sb = StringBuffer();
-
-    // Write return Type.
-    sb.write(returnType.getCType(w));
-
-    // Write Function.
-    sb.write(' Function(');
-    sb.write(parameters.map<String>((p) {
-      return '${p.type.getCType(w)} ${writeArgumentNames ? p.name : ""}';
-    }).join(', '));
-    sb.write(')');
-
-    return sb.toString();
-  }
-
-  String getDartType(Writer w, {bool writeArgumentNames = true}) {
-    final sb = StringBuffer();
-
-    // Write return Type.
-    sb.write(returnType.getDartType(w));
-
-    // Write Function.
-    sb.write(' Function(');
-    sb.write(parameters.map<String>((p) {
-      return '${p.type.getDartType(w)} ${writeArgumentNames ? p.name : ""}';
-    }).join(', '));
-    sb.write(')');
-
-    return sb.toString();
-  }
-
-  void addDependencies(Set<Binding> dependencies) {
-    returnType.addDependencies(dependencies);
-    for (final p in parameters) {
-      p.type.addDependencies(dependencies);
-    }
-  }
-}
-
-/// Represents a NativeFunction<Function>.
-class NativeFunc {
-  final Type type;
-
-  NativeFunc.fromFunctionType(FunctionType functionType)
-      : type = Type.functionType(functionType);
-
-  NativeFunc.fromFunctionTypealias(Typealias typealias)
-      : type = Type.typealias(typealias);
-
-  void addDependencies(Set<Binding> dependencies) {
-    type.addDependencies(dependencies);
-  }
+  @override
+  String toString() => '(Unimplemented: $reason)';
 }
diff --git a/lib/src/code_generator/typealias.dart b/lib/src/code_generator/typealias.dart
index ea8ef95..6a47f61 100644
--- a/lib/src/code_generator/typealias.dart
+++ b/lib/src/code_generator/typealias.dart
@@ -14,7 +14,7 @@
 /// typedef $name = $type;
 /// );
 /// ```
-class Typealias extends NoLookUpBinding {
+class Typealias extends BindingType {
   final Type type;
   final bool _useDartType;
 
@@ -29,12 +29,14 @@
     ///
     /// E.g if C type is ffi.Void func(ffi.Int32), Dart type is void func(int).
     bool useDartType = false,
+    bool isInternal = false,
   })  : _useDartType = useDartType,
         super(
           usr: usr,
           name: name,
           dartDoc: dartDoc,
           originalName: originalName,
+          isInternal: isInternal,
         );
 
   @override
@@ -51,9 +53,36 @@
     if (dartDoc != null) {
       sb.write(makeDartDoc(dartDoc!));
     }
-    sb.write(
-        'typedef $name = ${_useDartType ? type.getDartType(w) : type.getCType(w)};\n');
+    sb.write('typedef $name = ');
+    sb.write('${_useDartType ? type.getDartType(w) : type.getCType(w)};\n');
     return BindingString(
         type: BindingStringType.typeDef, string: sb.toString());
   }
+
+  @override
+  Type get typealiasType => type.typealiasType;
+
+  @override
+  bool get isIncompleteCompound => type.isIncompleteCompound;
+
+  @override
+  String getCType(Writer w) => name;
+
+  @override
+  String getDartType(Writer w) {
+    // Typealias cannot be used by name in Dart types unless both the C and Dart
+    // type of the underlying types are same.
+    if (sameDartAndCType(type, w)) {
+      return name;
+    } else {
+      return type.getDartType(w);
+    }
+  }
+
+  @override
+  String cacheKey() => type.cacheKey();
+
+  @override
+  String? getDefaultValue(Writer w, String nativeLib) =>
+      type.getDefaultValue(w, nativeLib);
 }
diff --git a/lib/src/code_generator/union.dart b/lib/src/code_generator/union.dart
index a8a0861..fc7be96 100644
--- a/lib/src/code_generator/union.dart
+++ b/lib/src/code_generator/union.dart
@@ -32,7 +32,7 @@
     String? usr,
     String? originalName,
     required String name,
-    bool isInComplete = false,
+    bool isIncomplete = false,
     int? pack,
     String? dartDoc,
     List<Member>? members,
@@ -41,7 +41,7 @@
           originalName: originalName,
           name: name,
           dartDoc: dartDoc,
-          isInComplete: isInComplete,
+          isIncomplete: isIncomplete,
           members: members,
           pack: pack,
           compoundType: CompoundType.union,
diff --git a/lib/src/code_generator/utils.dart b/lib/src/code_generator/utils.dart
index c000bdf..5c18c7f 100644
--- a/lib/src/code_generator/utils.dart
+++ b/lib/src/code_generator/utils.dart
@@ -15,6 +15,11 @@
   ///
   /// Adds the resulting name to the used names by default.
   String makeUnique(String name, [bool addToUsedUpNames = true]) {
+    // For example, nested structures/unions may not have a name
+    if (name.isEmpty) {
+      name = 'unnamed';
+    }
+
     var crName = name;
     var i = 1;
     while (_usedUpNames.contains(crName)) {
diff --git a/lib/src/code_generator/writer.dart b/lib/src/code_generator/writer.dart
index 2b9a0c9..d20db66 100644
--- a/lib/src/code_generator/writer.dart
+++ b/lib/src/code_generator/writer.dart
@@ -2,9 +2,13 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/code_generator/utils.dart';
+import 'package:logging/logging.dart';
 
-import 'binding.dart';
+import '../strings.dart' as strings;
+
+final _logger = Logger('ffigen.code_generator.writer');
 
 /// To store generated String bindings.
 class Writer {
@@ -13,6 +17,9 @@
   /// Holds bindings, which lookup symbols.
   final List<Binding> lookUpBindings;
 
+  /// Holds bindings, which lookup symbols through `FfiNative`.
+  final List<Binding> ffiNativeBindings;
+
   /// Holds bindings which don't lookup symbols.
   final List<Binding> noLookUpBindings;
 
@@ -20,10 +27,37 @@
   final symbolAddressWriter = SymbolAddressWriter();
 
   late String _className;
+  String get className => _className;
+
   final String? classDocComment;
 
-  late String _ffiLibraryPrefix;
-  String get ffiLibraryPrefix => _ffiLibraryPrefix;
+  String? _ffiLibraryPrefix;
+  String get ffiLibraryPrefix {
+    if (_ffiLibraryPrefix != null) {
+      return _ffiLibraryPrefix!;
+    }
+
+    final import = _usedImports.firstWhere(
+        (element) => element.name == ffiImport.name,
+        orElse: () => ffiImport);
+    _usedImports.add(import);
+    return _ffiLibraryPrefix = import.prefix;
+  }
+
+  String? _ffiPkgLibraryPrefix;
+  String get ffiPkgLibraryPrefix {
+    if (_ffiPkgLibraryPrefix != null) {
+      return _ffiPkgLibraryPrefix!;
+    }
+
+    final import = _usedImports.firstWhere(
+        (element) => element.name == ffiPkgImport.name,
+        orElse: () => ffiPkgImport);
+    _usedImports.add(import);
+    return _ffiPkgLibraryPrefix = import.prefix;
+  }
+
+  final Set<LibraryImport> _usedImports = {};
 
   late String _lookupFuncIdentifier;
   String get lookupFuncIdentifier => _lookupFuncIdentifier;
@@ -32,8 +66,6 @@
   late String _symbolAddressVariableName;
   late String _symbolAddressLibraryVarName;
 
-  final bool dartBool;
-
   /// Initial namers set after running constructor. Namers are reset to this
   /// initial state everytime [generate] is called.
   late UniqueNamer _initialTopLevelUniqueNamer, _initialWrapperLevelUniqueNamer;
@@ -48,13 +80,19 @@
   /// Guaranteed to be a unique prefix.
   String get arrayHelperClassPrefix => _arrayHelperClassPrefix;
 
+  /// Set true after calling [generate]. Indicates if
+  /// [generateSymbolOutputYamlMap] can be called.
+  bool get canGenerateSymbolOutput => _canGenerateSymbolOutput;
+  bool _canGenerateSymbolOutput = false;
+
   /// [_usedUpNames] should contain names of all the declarations which are
   /// already used. This is used to avoid name collisions.
   Writer({
     required this.lookUpBindings,
+    required this.ffiNativeBindings,
     required this.noLookUpBindings,
     required String className,
-    required this.dartBool,
+    Set<LibraryImport>? additionalImports,
     this.classDocComment,
     this.header,
   }) {
@@ -75,12 +113,19 @@
       markUsed: [_initialWrapperLevelUniqueNamer, _initialTopLevelUniqueNamer],
     );
 
-    /// [_ffiLibraryPrefix] should be unique unique among all names.
-    _ffiLibraryPrefix = _resolveNameConflict(
-      name: 'ffi',
-      makeUnique: allLevelsUniqueNamer,
-      markUsed: [_initialWrapperLevelUniqueNamer, _initialTopLevelUniqueNamer],
-    );
+    /// Library imports prefix should be unique unique among all names.
+    if (additionalImports != null) {
+      for (final lib in additionalImports) {
+        lib.prefix = _resolveNameConflict(
+          name: lib.prefix,
+          makeUnique: allLevelsUniqueNamer,
+          markUsed: [
+            _initialWrapperLevelUniqueNamer,
+            _initialTopLevelUniqueNamer
+          ],
+        );
+      }
+    }
 
     /// [_lookupFuncIdentifier] should be unique in top level.
     _lookupFuncIdentifier = _resolveNameConflict(
@@ -143,26 +188,34 @@
     _wrapperLevelUniqueNamer = _initialWrapperLevelUniqueNamer.clone();
   }
 
+  void markImportUsed(LibraryImport import) {
+    _usedImports.add(import);
+  }
+
   /// Writes all bindings to a String.
   String generate() {
     final s = StringBuffer();
 
+    // We write the source first to determine which imports are actually
+    // referenced. Headers and [s] are then combined into the final result.
+    final result = StringBuffer();
+
     // Reset unique namers to initial state.
     _resetUniqueNamersNamers();
 
     // Write file header (if any).
     if (header != null) {
-      s.write(header);
-      s.write('\n');
+      result.writeln(header);
     }
 
     // Write auto generated declaration.
-    s.write(makeDoc(
+    result.write(makeDoc(
         'AUTO GENERATED FILE, DO NOT EDIT.\n\nGenerated by `package:ffigen`.'));
 
-    // Write neccesary imports.
-    s.write("import 'dart:ffi' as $ffiLibraryPrefix;\n");
-    s.write('\n');
+    // Write lint ignore if not specified by user already.
+    if (!RegExp(r'ignore_for_file:\s*type\s*=\s*lint').hasMatch(header ?? '')) {
+      result.write(makeDoc('ignore_for_file: type=lint'));
+    }
 
     /// Write [lookUpBindings].
     if (lookUpBindings.isNotEmpty) {
@@ -197,6 +250,10 @@
       s.write('}\n\n');
     }
 
+    for (final b in ffiNativeBindings) {
+      s.write(b.toBindingString(this).string);
+    }
+
     if (symbolAddressWriter.shouldGenerate) {
       s.write(symbolAddressWriter.writeClass(this));
     }
@@ -206,7 +263,62 @@
       s.write(b.toBindingString(this).string);
     }
 
-    return s.toString();
+    // Write neccesary imports.
+    for (final lib in _usedImports) {
+      result
+        ..write("import '${lib.importPath}' as ${lib.prefix};")
+        ..write('\n');
+    }
+    result.write(s);
+
+    _canGenerateSymbolOutput = true;
+    return result.toString();
+  }
+
+  Map<String, dynamic> generateSymbolOutputYamlMap(String importFilePath) {
+    final bindings = <Binding>[
+      ...noLookUpBindings,
+      ...ffiNativeBindings,
+      ...lookUpBindings
+    ];
+    if (!canGenerateSymbolOutput) {
+      throw Exception(
+          "Invalid state: generateSymbolOutputYamlMap() called before generate()");
+    }
+    final result = <String, dynamic>{};
+
+    result[strings.formatVersion] = strings.symbolFileFormatVersion;
+    result[strings.files] = <String, dynamic>{};
+    result[strings.files][importFilePath] = <String, dynamic>{};
+
+    final fileConfig = result[strings.files][importFilePath];
+    fileConfig[strings.usedConfig] = <String, dynamic>{};
+
+    // Warn for macros.
+    final hasMacroBindings = bindings.any(
+        (element) => element is Constant && element.usr.contains('@macro@'));
+    if (hasMacroBindings) {
+      _logger.info(
+          'Removing all Macros from symbol file since they cannot be cross referenced reliably.');
+    }
+    // Remove internal bindings and macros.
+    bindings.removeWhere((element) {
+      return element.isInternal ||
+          (element is Constant && element.usr.contains('@macro@'));
+    });
+    // Sort bindings alphabetically by USR.
+    bindings.sort((a, b) => a.usr.compareTo(b.usr));
+    fileConfig[strings.usedConfig][strings.ffiNative] = bindings
+        .whereType<Func>()
+        .any((element) => element.ffiNativeConfig.enabled);
+    fileConfig[strings.symbols] = <String, dynamic>{};
+    final symbolConfig = fileConfig[strings.symbols];
+    for (final binding in bindings) {
+      symbolConfig[binding.usr] = {
+        strings.name: binding.name,
+      };
+    }
+    return result;
   }
 }
 
diff --git a/lib/src/config_provider/config.dart b/lib/src/config_provider/config.dart
index 88d5d8d..e012e56 100644
--- a/lib/src/config_provider/config.dart
+++ b/lib/src/config_provider/config.dart
@@ -4,10 +4,11 @@
 
 /// Validates the yaml input by the user, prints useful info for the user
 
-import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/header_parser/type_extractor/cxtypekindmap.dart';
+import 'dart:io';
 
+import 'package:ffigen/src/code_generator.dart';
 import 'package:logging/logging.dart';
+import 'package:package_config/package_config_types.dart';
 import 'package:yaml/yaml.dart';
 
 import '../strings.dart' as strings;
@@ -18,15 +19,32 @@
 
 /// Provides configurations to other modules.
 ///
-/// Handles validation, extraction of confiurations from yaml file.
+/// Handles validation, extraction of configurations from a yaml file.
 class Config {
+  /// Input filename.
+  String? get filename => _filename;
+  String? _filename;
+
+  /// Package config.
+  PackageConfig? get packageConfig => _packageConfig;
+  PackageConfig? _packageConfig;
+
   /// Location for llvm/lib folder.
   String get libclangDylib => _libclangDylib;
   late String _libclangDylib;
 
-  /// output file name.
+  /// Output file name.
   String get output => _output;
   late String _output;
+
+  /// Symbol file config.
+  SymbolFile? get symbolFile => _symbolFile;
+  late SymbolFile? _symbolFile;
+
+  /// Language that ffigen is consuming.
+  Language get language => _language;
+  late Language _language;
+
   // Holds headers and filters for header.
   Headers get headers => _headers;
   late Headers _headers;
@@ -67,6 +85,15 @@
   Declaration get typedefs => _typedefs;
   late Declaration _typedefs;
 
+  /// Declaration config for Objective C interfaces.
+  Declaration get objcInterfaces => _objcInterfaces;
+  late Declaration _objcInterfaces;
+
+  /// If enabled, the default behavior of all declaration filters is to exclude
+  /// everything, rather than include everything.
+  bool get excludeAllByDefault => _excludeAllByDefault;
+  late bool _excludeAllByDefault;
+
   /// If generated bindings should be sorted alphabetically.
   bool get sort => _sort;
   late bool _sort;
@@ -75,10 +102,30 @@
   bool get useSupportedTypedefs => _useSupportedTypedefs;
   late bool _useSupportedTypedefs;
 
-  /// Stores typedef name to NativeType mappings specified by user.
-  Map<String, SupportedNativeType> get typedefNativeTypeMappings =>
-      _typedefNativeTypeMappings;
-  late Map<String, SupportedNativeType> _typedefNativeTypeMappings;
+  /// Stores all the library imports specified by user including those for ffi
+  /// and pkg_ffi.
+  Map<String, LibraryImport> get libraryImports => _libraryImports;
+  late Map<String, LibraryImport> _libraryImports;
+
+  /// Stores all the symbol file maps name to ImportedType mappings specified by user.
+  Map<String, ImportedType> get usrTypeMappings => _usrTypeMappings;
+  late Map<String, ImportedType> _usrTypeMappings;
+
+  /// Stores typedef name to ImportedType mappings specified by user.
+  Map<String, ImportedType> get typedefTypeMappings => _typedefTypeMappings;
+  late Map<String, ImportedType> _typedefTypeMappings;
+
+  /// Stores struct name to ImportedType mappings specified by user.
+  Map<String, ImportedType> get structTypeMappings => _structTypeMappings;
+  late Map<String, ImportedType> _structTypeMappings;
+
+  /// Stores union name to ImportedType mappings specified by user.
+  Map<String, ImportedType> get unionTypeMappings => _unionTypeMappings;
+  late Map<String, ImportedType> _unionTypeMappings;
+
+  /// Stores native int name to ImportedType mappings specified by user.
+  Map<String, ImportedType> get nativeTypeMappings => _nativeTypeMappings;
+  late Map<String, ImportedType> _nativeTypeMappings;
 
   /// Extracted Doc comment type.
   CommentType get commentType => _commentType;
@@ -96,9 +143,9 @@
   StructPackingOverride get structPackingOverride => _structPackingOverride;
   late StructPackingOverride _structPackingOverride;
 
-  /// If dart bool should be generated for C booleans.
-  bool get dartBool => _dartBool;
-  late bool _dartBool;
+  /// Module prefixes for ObjC interfaces.
+  ObjCModulePrefixer get objcModulePrefixer => _objcModulePrefixer;
+  late ObjCModulePrefixer _objcModulePrefixer;
 
   /// Name of the wrapper class.
   String get wrapperName => _wrapperName;
@@ -122,12 +169,16 @@
   Includer get leafFunctions => _leafFunctions;
   late Includer _leafFunctions;
 
-  Config._();
+  FfiNativeConfig get ffiNativeConfig => _ffiNativeConfig;
+  late FfiNativeConfig _ffiNativeConfig;
+
+  Config._(this._filename, this._packageConfig);
 
   /// Create config from Yaml map.
-  factory Config.fromYaml(YamlMap map) {
-    final configspecs = Config._();
-    _logger.finest('Config Map: ' + map.toString());
+  factory Config.fromYaml(YamlMap map,
+      {String? filename, PackageConfig? packageConfig}) {
+    final configspecs = Config._(filename, packageConfig);
+    _logger.finest('Config Map: $map');
 
     final specs = configspecs._getSpecs();
 
@@ -140,6 +191,15 @@
     return configspecs;
   }
 
+  /// Create config from a file.
+  factory Config.fromFile(File file, {PackageConfig? packageConfig}) {
+    // Throws a [YamlException] if it's unable to parse the Yaml.
+    final configYaml = loadYaml(file.readAsStringSync()) as YamlMap;
+
+    return Config.fromYaml(configYaml,
+        filename: file.path, packageConfig: packageConfig);
+  }
+
   /// Add compiler options for clang. If [highPriority] is true these are added
   /// to the front of the list.
   void addCompilerOpts(String compilerOpts, {bool highPriority = false}) {
@@ -153,28 +213,22 @@
 
   /// Validates Yaml according to given specs.
   bool _checkConfigs(YamlMap map, Map<List<String>, Specification> specs) {
-    var _result = true;
+    var result = true;
     for (final key in specs.keys) {
       final spec = specs[key];
       if (checkKeyInYaml(key, map)) {
-        _result =
-            _result && spec!.validator(key, getKeyValueFromYaml(key, map));
+        result = result && spec!.validator(key, getKeyValueFromYaml(key, map));
       } else if (spec!.requirement == Requirement.yes) {
         _logger.severe("Key '$key' is required.");
-        _result = false;
+        result = false;
       } else if (spec.requirement == Requirement.prefer) {
         _logger.warning("Prefer adding Key '$key' to your config.");
       }
     }
     // Warn about unknown keys.
-    for (final key in map.keys) {
-      final specString = specs.keys.map((e) => e.join(':')).toSet();
-      if (!specString.contains(key)) {
-        _logger.warning("Unknown key '$key' found.");
-      }
-    }
+    warnUnknownKeys(specs.keys.toList(), map);
 
-    return _result;
+    return result;
   }
 
   /// Extracts variables from Yaml according to given specs.
@@ -205,16 +259,27 @@
           _libclangDylib = result as String;
         },
       ),
-      [strings.output]: Specification<String>(
+      [strings.output]: Specification<OutputConfig>(
         requirement: Requirement.yes,
         validator: outputValidator,
-        extractor: outputExtractor,
-        extractedResult: (dynamic result) => _output = result as String,
+        extractor: (dynamic value) =>
+            outputExtractor(value, filename, packageConfig),
+        extractedResult: (dynamic result) {
+          _output = (result as OutputConfig).output;
+          _symbolFile = result.symbolFile;
+        },
+      ),
+      [strings.language]: Specification<Language>(
+        requirement: Requirement.no,
+        validator: languageValidator,
+        extractor: languageExtractor,
+        defaultValue: () => Language.c,
+        extractedResult: (dynamic result) => _language = result as Language,
       ),
       [strings.headers]: Specification<Headers>(
         requirement: Requirement.yes,
         validator: headersValidator,
-        extractor: headersExtractor,
+        extractor: (dynamic value) => headersExtractor(value, filename),
         extractedResult: (dynamic result) => _headers = result as Headers,
       ),
       [strings.compilerOpts]: Specification<List<String>>(
@@ -305,25 +370,89 @@
           _typedefs = result as Declaration;
         },
       ),
-      [strings.sizemap]: Specification<Map<int, SupportedNativeType>>(
-        validator: sizemapValidator,
-        extractor: sizemapExtractor,
-        defaultValue: () => <int, SupportedNativeType>{},
+      [strings.objcInterfaces]: Specification<Declaration>(
+        requirement: Requirement.no,
+        validator: declarationConfigValidator,
+        extractor: declarationConfigExtractor,
+        defaultValue: () => Declaration(),
         extractedResult: (dynamic result) {
-          final map = result as Map<int, SupportedNativeType>;
-          for (final key in map.keys) {
-            if (cxTypeKindToSupportedNativeTypes.containsKey(key)) {
-              cxTypeKindToSupportedNativeTypes[key] = map[key]!;
-            }
-          }
+          _objcInterfaces = result as Declaration;
         },
       ),
-      [strings.typedefmap]: Specification<Map<String, SupportedNativeType>>(
-        validator: typedefmapValidator,
-        extractor: typedefmapExtractor,
-        defaultValue: () => <String, SupportedNativeType>{},
-        extractedResult: (dynamic result) => _typedefNativeTypeMappings =
-            result as Map<String, SupportedNativeType>,
+      [strings.objcInterfaces, strings.objcModule]:
+          Specification<Map<String, String>>(
+        requirement: Requirement.no,
+        validator: stringStringMapValidator,
+        extractor: stringStringMapExtractor,
+        defaultValue: () => <String, String>{},
+        extractedResult: (dynamic result) => _objcModulePrefixer =
+            ObjCModulePrefixer(result as Map<String, String>),
+      ),
+      [strings.libraryImports]: Specification<Map<String, LibraryImport>>(
+        validator: libraryImportsValidator,
+        extractor: libraryImportsExtractor,
+        defaultValue: () => <String, LibraryImport>{},
+        extractedResult: (dynamic result) {
+          _libraryImports = result as Map<String, LibraryImport>;
+        },
+      ),
+      [strings.import, strings.symbolFilesImport]:
+          Specification<Map<String, ImportedType>>(
+        validator: symbolFileImportValidator,
+        extractor: (value) => symbolFileImportExtractor(
+            value, _libraryImports, filename, packageConfig),
+        defaultValue: () => <String, ImportedType>{},
+        extractedResult: (dynamic result) {
+          _usrTypeMappings = result as Map<String, ImportedType>;
+        },
+      ),
+      [strings.typeMap, strings.typeMapTypedefs]:
+          Specification<Map<String, List<String>>>(
+        validator: typeMapValidator,
+        extractor: typeMapExtractor,
+        defaultValue: () => <String, List<String>>{},
+        extractedResult: (dynamic result) {
+          _typedefTypeMappings = makeImportTypeMapping(
+              result as Map<String, List<String>>, _libraryImports);
+        },
+      ),
+      [strings.typeMap, strings.typeMapStructs]:
+          Specification<Map<String, List<String>>>(
+        validator: typeMapValidator,
+        extractor: typeMapExtractor,
+        defaultValue: () => <String, List<String>>{},
+        extractedResult: (dynamic result) {
+          _structTypeMappings = makeImportTypeMapping(
+              result as Map<String, List<String>>, _libraryImports);
+        },
+      ),
+      [strings.typeMap, strings.typeMapUnions]:
+          Specification<Map<String, List<String>>>(
+        validator: typeMapValidator,
+        extractor: typeMapExtractor,
+        defaultValue: () => <String, List<String>>{},
+        extractedResult: (dynamic result) {
+          _unionTypeMappings = makeImportTypeMapping(
+              result as Map<String, List<String>>, _libraryImports);
+        },
+      ),
+      [strings.typeMap, strings.typeMapNativeTypes]:
+          Specification<Map<String, List<String>>>(
+        validator: typeMapValidator,
+        extractor: typeMapExtractor,
+        defaultValue: () => <String, List<String>>{},
+        extractedResult: (dynamic result) {
+          _nativeTypeMappings = makeImportTypeMapping(
+              result as Map<String, List<String>>, _libraryImports);
+        },
+      ),
+      [strings.excludeAllByDefault]: Specification<bool>(
+        requirement: Requirement.no,
+        validator: booleanValidator,
+        extractor: booleanExtractor,
+        defaultValue: () => false,
+        extractedResult: (dynamic result) =>
+            _excludeAllByDefault = result as bool,
       ),
       [strings.sort]: Specification<bool>(
         requirement: Requirement.no,
@@ -375,13 +504,6 @@
         extractedResult: (dynamic result) =>
             _structPackingOverride = result as StructPackingOverride,
       ),
-      [strings.dartBool]: Specification<bool>(
-        requirement: Requirement.no,
-        validator: booleanValidator,
-        extractor: booleanExtractor,
-        defaultValue: () => true,
-        extractedResult: (dynamic result) => _dartBool = result as bool,
-      ),
       [strings.name]: Specification<String>(
         requirement: Requirement.prefer,
         validator: dartClassNameValidator,
@@ -427,6 +549,14 @@
         extractedResult: (dynamic result) =>
             _leafFunctions = result as Includer,
       ),
+      [strings.ffiNative]: Specification<FfiNativeConfig>(
+        requirement: Requirement.no,
+        validator: ffiNativeValidator,
+        extractor: ffiNativeExtractor,
+        defaultValue: () => FfiNativeConfig(enabled: false),
+        extractedResult: (dynamic result) =>
+            _ffiNativeConfig = result as FfiNativeConfig,
+      )
     };
   }
 }
diff --git a/lib/src/config_provider/config_types.dart b/lib/src/config_provider/config_types.dart
index d973013..8521bdb 100644
--- a/lib/src/config_provider/config_types.dart
+++ b/lib/src/config_provider/config_types.dart
@@ -9,6 +9,8 @@
 
 import 'path_finder.dart';
 
+enum Language { c, objc }
+
 class CommentType {
   CommentStyle style;
   CommentLength length;
@@ -27,6 +29,7 @@
 }
 
 enum CommentStyle { doxygen, any }
+
 enum CommentLength { none, brief, full }
 
 enum CompoundDependencies { full, opaque }
@@ -153,7 +156,8 @@
       _memberRenamer.rename(declaration, member);
 
   /// Checks if a name is allowed by a filter.
-  bool shouldInclude(String name) => _includer.shouldInclude(name);
+  bool shouldInclude(String name, bool excludeAllByDefault) =>
+      _includer.shouldInclude(name, excludeAllByDefault);
 
   /// Checks if the symbol address should be included for this name.
   bool shouldIncludeSymbolAddress(String name) =>
@@ -232,7 +236,7 @@
   /// Returns true if [name] is allowed.
   ///
   /// Exclude overrides include.
-  bool shouldInclude(String name) {
+  bool shouldInclude(String name, [bool excludeAllByDefault = false]) {
     if (_excludeFull.contains(name)) {
       return false;
     }
@@ -258,7 +262,8 @@
     if (_includeMatchers.isNotEmpty || _includeFull.isNotEmpty) {
       return false;
     } else {
-      return true;
+      // Otherwise, fall back to the default behavior for empty filters.
+      return !excludeAllByDefault;
     }
   }
 }
@@ -368,3 +373,53 @@
     return [];
   }
 }
+
+class _ObjCModulePrefixerEntry {
+  final RegExp pattern;
+  final String moduleName;
+
+  _ObjCModulePrefixerEntry(this.pattern, this.moduleName);
+}
+
+/// Handles applying module prefixes to ObjC classes.
+class ObjCModulePrefixer {
+  final _prefixes = <_ObjCModulePrefixerEntry>[];
+
+  ObjCModulePrefixer(Map<String, String> prefixes) {
+    for (final entry in prefixes.entries) {
+      _prefixes.add(_ObjCModulePrefixerEntry(RegExp(entry.key), entry.value));
+    }
+  }
+
+  /// If any of the prefixing patterns match, applies that module prefix.
+  /// Otherwise returns the class name unmodified.
+  String applyPrefix(String className) {
+    for (final entry in _prefixes) {
+      if (quiver.matchesFull(entry.pattern, className)) {
+        return '${entry.moduleName}.$className';
+      }
+    }
+    return className;
+  }
+}
+
+class FfiNativeConfig {
+  final bool enabled;
+  final String? asset;
+
+  const FfiNativeConfig({required this.enabled, this.asset});
+}
+
+class SymbolFile {
+  final String importPath;
+  final String output;
+
+  SymbolFile(this.importPath, this.output);
+}
+
+class OutputConfig {
+  final String output;
+  final SymbolFile? symbolFile;
+
+  OutputConfig(this.output, this.symbolFile);
+}
diff --git a/lib/src/config_provider/path_finder.dart b/lib/src/config_provider/path_finder.dart
index 3f6a597..715e1ac 100644
--- a/lib/src/config_provider/path_finder.dart
+++ b/lib/src/config_provider/path_finder.dart
@@ -20,7 +20,7 @@
       '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include';
   if (Directory(systemHeaders).existsSync()) {
     _logger.fine('Added $systemHeaders to compiler-opts.');
-    includePaths.add('-I' + systemHeaders);
+    includePaths.add('-I$systemHeaders');
   }
 
   /// Find headers from XCode or LLVM installed via brew.
@@ -39,7 +39,7 @@
         final path = p.join(searchPath, version, 'include');
         if (Directory(path).existsSync()) {
           _logger.fine('Added stdlib path: $path to compiler-opts.');
-          includePaths.add('-I' + path);
+          includePaths.add('-I$path');
           return includePaths;
         }
       }
@@ -51,7 +51,7 @@
       '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Headers/';
   if (Directory(cmdLineToolHeaders).existsSync()) {
     _logger.fine('Added stdlib path: $cmdLineToolHeaders to compiler-opts.');
-    includePaths.add('-I' + cmdLineToolHeaders);
+    includePaths.add('-I$cmdLineToolHeaders');
     return includePaths;
   }
 
diff --git a/lib/src/config_provider/spec_utils.dart b/lib/src/config_provider/spec_utils.dart
index 22a6e1a..dfe6bbf 100644
--- a/lib/src/config_provider/spec_utils.dart
+++ b/lib/src/config_provider/spec_utils.dart
@@ -5,9 +5,11 @@
 import 'dart:io';
 
 import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/code_generator/utils.dart';
 import 'package:file/local.dart';
 import 'package:glob/glob.dart';
 import 'package:logging/logging.dart';
+import 'package:package_config/package_config.dart';
 import 'package:path/path.dart' as p;
 import 'package:quiver/pattern.dart' as quiver;
 import 'package:yaml/yaml.dart';
@@ -26,6 +28,16 @@
   }
 }
 
+/// Replaces the path separators according to current platform. If a relative
+/// path is passed in, it is resolved relative to the config path, and the
+/// absolute path is returned.
+String _normalizePath(String path, String? configFilename) {
+  final skipNormalization =
+      (configFilename == null) || p.isAbsolute(path) || path.startsWith("**");
+  return _replaceSeparators(
+      skipNormalization ? path : p.join(p.dirname(configFilename), path));
+}
+
 /// Checks if type of value is [T], logs an error if it's not.
 ///
 /// [key] is printed as `'item1 -> item2 => item3'` in log message.
@@ -49,7 +61,8 @@
       return false;
     }
   }
-  return last != null;
+  // The entry for the last key may be null.
+  return true;
 }
 
 /// Extracts value of nested [key] from [map].
@@ -65,71 +78,257 @@
   return null;
 }
 
+/// Recursively checks the keys in [configKeyMap] from [allowedKeyList].
+void warnUnknownKeys(List<List<String>> allowedKeyList, YamlMap configKeyMap) {
+  final allowedKeyMap = <String, dynamic>{};
+  for (final specKeys in allowedKeyList) {
+    var item = allowedKeyMap;
+    for (final specSubKey in specKeys) {
+      item.putIfAbsent(specSubKey, () => <String, dynamic>{});
+      item = item[specSubKey] as Map<String, dynamic>;
+    }
+    // Add empty key to mark that any sub-keys of this key are allowed.
+    item[''] = <String, dynamic>{};
+  }
+  _warnUnknownKeysInMap(allowedKeyMap, configKeyMap, <dynamic>[]);
+}
+
+/// Recursive function to check a key set in a configKeyMap.
+void _warnUnknownKeysInMap(Map<String, dynamic> allowedKeyMap,
+    dynamic configKeyMap, List<dynamic> prev) {
+  if (allowedKeyMap.containsKey('') || configKeyMap is! YamlMap) {
+    return;
+  }
+  for (final key in configKeyMap.keys) {
+    if (allowedKeyMap.containsKey(key)) {
+      prev.add(key);
+      _warnUnknownKeysInMap(
+          allowedKeyMap[key] as Map<String, dynamic>, configKeyMap[key], prev);
+      prev.removeLast();
+    } else {
+      prev.add(key);
+      _logger.warning('Unknown key - ${prev.join(' -> ')}.');
+      prev.removeLast();
+    }
+  }
+}
+
 bool booleanExtractor(dynamic value) => value as bool;
 
 bool booleanValidator(List<String> name, dynamic value) =>
     checkType<bool>(name, value);
 
-Map<int, SupportedNativeType> sizemapExtractor(dynamic yamlConfig) {
-  final resultMap = <int, SupportedNativeType>{};
-  final sizemap = yamlConfig as YamlMap?;
-  if (sizemap != null) {
-    for (final typeName in strings.sizemap_native_mapping.keys) {
-      if (sizemap.containsKey(typeName)) {
-        final cxTypeInt = strings.sizemap_native_mapping[typeName] as int;
-        final byteSize = sizemap[typeName] as int;
-        resultMap[cxTypeInt] = nativeSupportedType(byteSize,
-            signed: typeName.contains('unsigned') ? false : true);
-      }
+Map<String, LibraryImport> libraryImportsExtractor(dynamic yamlConfig) {
+  final resultMap = <String, LibraryImport>{};
+  final typeMap = yamlConfig as YamlMap?;
+  if (typeMap != null) {
+    for (final typeName in typeMap.keys) {
+      resultMap[typeName as String] =
+          LibraryImport(typeName, typeMap[typeName] as String);
     }
   }
   return resultMap;
 }
 
-bool sizemapValidator(List<String> name, dynamic yamlConfig) {
+bool libraryImportsValidator(List<String> name, dynamic yamlConfig) {
   if (!checkType<YamlMap>(name, yamlConfig)) {
     return false;
   }
   for (final key in (yamlConfig as YamlMap).keys) {
-    if (!strings.sizemap_native_mapping.containsKey(key)) {
-      _logger.warning("Unknown subkey '$key' in '$name'.");
+    if (!checkType<String>([...name, key as String], yamlConfig[key])) {
+      return false;
+    }
+    if (strings.predefinedLibraryImports.containsKey(key)) {
+      _logger.severe(
+          'library-import -> $key should not collide with any predefined imports - ${strings.predefinedLibraryImports.keys}.');
+      return false;
     }
   }
-
   return true;
 }
 
-Map<String, SupportedNativeType> typedefmapExtractor(dynamic yamlConfig) {
-  final resultMap = <String, SupportedNativeType>{};
-  final typedefmap = yamlConfig as YamlMap?;
-  if (typedefmap != null) {
-    for (final typeName in typedefmap.keys) {
-      if (typedefmap[typeName] is String &&
-          strings.supportedNativeType_mappings
-              .containsKey(typedefmap[typeName])) {
-        // Map this typename to specified supportedNativeType.
-        resultMap[typeName as String] =
-            strings.supportedNativeType_mappings[typedefmap[typeName]]!;
+void loadImportedTypes(YamlMap fileConfig,
+    Map<String, ImportedType> usrTypeMappings, LibraryImport libraryImport) {
+  final symbols = fileConfig['symbols'] as YamlMap;
+  for (final key in symbols.keys) {
+    final usr = key as String;
+    final value = symbols[usr]! as YamlMap;
+    usrTypeMappings[usr] = ImportedType(
+        libraryImport, value['name'] as String, value['name'] as String);
+  }
+}
+
+YamlMap loadSymbolFile(String symbolFilePath, String? configFileName,
+    PackageConfig? packageConfig) {
+  final path = symbolFilePath.startsWith('package:')
+      ? packageConfig!.resolve(Uri.parse(symbolFilePath))!.toFilePath()
+      : _normalizePath(symbolFilePath, configFileName);
+
+  return loadYaml(File(path).readAsStringSync()) as YamlMap;
+}
+
+Map<String, ImportedType> symbolFileImportExtractor(
+    dynamic yamlConfig,
+    Map<String, LibraryImport> libraryImports,
+    String? configFileName,
+    PackageConfig? packageConfig) {
+  final resultMap = <String, ImportedType>{};
+  for (final item in (yamlConfig as YamlList)) {
+    String symbolFilePath;
+    if (item is String) {
+      symbolFilePath = item;
+    } else {
+      symbolFilePath = item[strings.symbolFile] as String;
+    }
+    final symbolFile =
+        loadSymbolFile(symbolFilePath, configFileName, packageConfig);
+    final formatVersion = symbolFile[strings.formatVersion] as String;
+    if (formatVersion.split('.')[0] !=
+        strings.symbolFileFormatVersion.split('.')[0]) {
+      _logger.severe(
+          'Incompatible format versions for file $symbolFilePath: ${strings.symbolFileFormatVersion}(ours), $formatVersion(theirs).');
+      exit(1);
+    }
+    final uniqueNamer = UniqueNamer(libraryImports.keys
+        .followedBy([strings.defaultSymbolFileImportPrefix]).toSet());
+    for (final file in (symbolFile[strings.files] as YamlMap).keys) {
+      final existingImports =
+          libraryImports.values.where((element) => element.importPath == file);
+      if (existingImports.isEmpty) {
+        final name =
+            uniqueNamer.makeUnique(strings.defaultSymbolFileImportPrefix);
+        libraryImports[name] = LibraryImport(name, file as String);
       }
+      final libraryImport = libraryImports.values.firstWhere(
+        (element) => element.importPath == file,
+      );
+      loadImportedTypes(
+          symbolFile[strings.files][file] as YamlMap, resultMap, libraryImport);
     }
   }
   return resultMap;
 }
 
-bool typedefmapValidator(List<String> name, dynamic yamlConfig) {
+bool symbolFileImportValidator(List<String> name, dynamic yamlConfig) {
+  if (!checkType<YamlList>(name, yamlConfig)) {
+    return false;
+  }
+  var result = true;
+  (yamlConfig as YamlList).asMap().forEach((idx, value) {
+    if (value is YamlMap) {
+      if (!value.keys.contains(strings.symbolFile)) {
+        result = false;
+        _logger
+            .severe('Key $name -> $idx -> ${strings.symbolFile} is required.');
+      }
+      for (final key in value.keys) {
+        if (key == strings.symbolFile) {
+          if (!checkType<String>(
+              [...name, idx.toString(), key as String], value[key])) {
+            result = false;
+          }
+        } else {
+          result = false;
+          _logger.severe('Unknown key : $name -> $idx -> $key.');
+        }
+      }
+    } else if (value is! String) {
+      result = false;
+      _logger.severe('Expected $name -> $idx should be a String or Map.');
+    }
+  });
+  return result;
+}
+
+Map<String, List<String>> typeMapExtractor(dynamic yamlConfig) {
+  // Key - type_name, Value - [lib, cType, dartType].
+  final resultMap = <String, List<String>>{};
+  final typeMap = yamlConfig as YamlMap?;
+  if (typeMap != null) {
+    for (final typeName in typeMap.keys) {
+      final typeConfigItem = typeMap[typeName] as YamlMap;
+      resultMap[typeName as String] = [
+        typeConfigItem[strings.lib] as String,
+        typeConfigItem[strings.cType] as String,
+        typeConfigItem[strings.dartType] as String,
+      ];
+    }
+  }
+  return resultMap;
+}
+
+bool typeMapValidator(List<String> name, dynamic yamlConfig) {
   if (!checkType<YamlMap>(name, yamlConfig)) {
     return false;
   }
-  for (final value in (yamlConfig as YamlMap).values) {
-    if (value is! String ||
-        !strings.supportedNativeType_mappings.containsKey(value)) {
-      _logger.severe("Unknown value of subkey '$value' in '$name'.");
+  var result = true;
+  for (final key in (yamlConfig as YamlMap).keys) {
+    if (!checkType<YamlMap>([...name, key as String], yamlConfig[key])) {
+      return false;
+    }
+    final lib = (yamlConfig[key] as YamlMap).containsKey(strings.lib);
+    if (!lib) {
+      _logger.severe("Key '${strings.lib}' in $name -> $key is required.");
+      result = false;
+    }
+    final cType = (yamlConfig[key] as YamlMap).containsKey(strings.cType);
+    if (!cType) {
+      _logger.severe("Key '${strings.cType}' in $name -> $key is required.");
+      result = false;
+    }
+    final dartType = (yamlConfig[key] as YamlMap).containsKey(strings.dartType);
+    if (!dartType) {
+      _logger.severe("Key '${strings.dartType}' in $name -> $key is required.");
+      result = false;
     }
   }
+  return result;
+}
 
+Map<String, String> stringStringMapExtractor(dynamic yamlConfig) {
+  final resultMap = <String, String>{};
+  final inputMap = yamlConfig as YamlMap?;
+  if (inputMap != null) {
+    for (final key in inputMap.keys) {
+      resultMap[key as String] = inputMap[key] as String;
+    }
+  }
+  return resultMap;
+}
+
+bool stringStringMapValidator(List<String> name, dynamic yamlConfig) {
+  if (!checkType<YamlMap>(name, yamlConfig)) {
+    return false;
+  }
+  for (final key in (yamlConfig as YamlMap).keys) {
+    if (!checkType<String>([...name, key as String], yamlConfig[key])) {
+      return false;
+    }
+  }
   return true;
 }
 
+Map<String, ImportedType> makeImportTypeMapping(
+    Map<String, List<String>> rawTypeMappings,
+    Map<String, LibraryImport> libraryImportsMap) {
+  final typeMappings = <String, ImportedType>{};
+  for (final key in rawTypeMappings.keys) {
+    final lib = rawTypeMappings[key]![0];
+    final cType = rawTypeMappings[key]![1];
+    final dartType = rawTypeMappings[key]![2];
+    if (strings.predefinedLibraryImports.containsKey(lib)) {
+      typeMappings[key] =
+          ImportedType(strings.predefinedLibraryImports[lib]!, cType, dartType);
+    } else if (libraryImportsMap.containsKey(lib)) {
+      typeMappings[key] =
+          ImportedType(libraryImportsMap[lib]!, cType, dartType);
+    } else {
+      throw Exception("Please declare $lib under library-imports.");
+    }
+  }
+  return typeMappings;
+}
+
 final _quoteMatcher = RegExp(r'''^["'](.*)["']$''', dotAll: true);
 final _cmdlineArgMatcher = RegExp(r'''['"](\\"|[^"])*?['"]|[^ ]+''');
 List<String> compilerOptsToList(String compilerOpts) {
@@ -180,7 +379,7 @@
 }
 
 bool compilerOptsAutoValidator(List<String> name, dynamic value) {
-  var _result = true;
+  var result = true;
 
   if (!checkType<YamlMap>(name, value)) {
     return false;
@@ -196,38 +395,38 @@
         if (inckey == strings.includeCStdLib) {
           if (!checkType<bool>(
               [...name, oskey, inckey as String], value[oskey][inckey])) {
-            _result = false;
+            result = false;
           }
         } else {
           _logger.severe("Unknown key '$inckey' in '$name -> $oskey.");
-          _result = false;
+          result = false;
         }
       }
     } else {
       _logger.severe("Unknown key '$oskey' in '$name'.");
-      _result = false;
+      result = false;
     }
   }
-  return _result;
+  return result;
 }
 
-Headers headersExtractor(dynamic yamlConfig) {
+Headers headersExtractor(dynamic yamlConfig, String? configFilename) {
   final entryPoints = <String>[];
   final includeGlobs = <quiver.Glob>[];
   for (final key in (yamlConfig as YamlMap).keys) {
     if (key == strings.entryPoints) {
       for (final h in (yamlConfig[key] as YamlList)) {
-        final headerGlob = h as String;
+        final headerGlob = _normalizePath(h as String, configFilename);
         // Add file directly to header if it's not a Glob but a File.
         if (File(headerGlob).existsSync()) {
-          final osSpecificPath = _replaceSeparators(headerGlob);
+          final osSpecificPath = headerGlob;
           entryPoints.add(osSpecificPath);
           _logger.fine('Adding header/file: $headerGlob');
         } else {
           final glob = Glob(headerGlob);
           for (final file in glob.listFileSystemSync(const LocalFileSystem(),
               followLinks: true)) {
-            final fixedPath = _replaceSeparators(file.path);
+            final fixedPath = file.path;
             entryPoints.add(fixedPath);
             _logger.fine('Adding header/file: $fixedPath');
           }
@@ -237,7 +436,8 @@
     if (key == strings.includeDirectives) {
       for (final h in (yamlConfig[key] as YamlList)) {
         final headerGlob = h as String;
-        includeGlobs.add(quiver.Glob(headerGlob));
+        final fixedGlob = _normalizePath(headerGlob, configFilename);
+        includeGlobs.add(quiver.Glob(fixedGlob));
       }
     }
   }
@@ -271,36 +471,6 @@
   }
 }
 
-String libclangDylibExtractor(dynamic value) => getDylibPath(value as String);
-
-bool libclangDylibValidator(List<String> name, dynamic value) {
-  if (!checkType<String>(name, value)) {
-    return false;
-  } else {
-    final dylibPath = getDylibPath(value as String);
-    if (!File(dylibPath).existsSync()) {
-      _logger.severe(
-          'Dynamic library: $dylibPath does not exist or is corrupt, input folder: $value.');
-      return false;
-    } else {
-      return true;
-    }
-  }
-}
-
-String getDylibPath(String dylibParentFoler) {
-  dylibParentFoler = _replaceSeparators(dylibParentFoler);
-  String dylibPath;
-  if (Platform.isMacOS) {
-    dylibPath = p.join(dylibParentFoler, strings.libclang_dylib_macos);
-  } else if (Platform.isWindows) {
-    dylibPath = p.join(dylibParentFoler, strings.libclang_dylib_windows);
-  } else {
-    dylibPath = p.join(dylibParentFoler, strings.libclang_dylib_linux);
-  }
-  return dylibPath;
-}
-
 /// Returns location of dynamic library by searching default locations. Logs
 /// error and throws an Exception if not found.
 String findDylibAtDefaultLocations() {
@@ -310,8 +480,28 @@
       k = findLibclangDylib(l);
       if (k != null) return k;
     }
+    Process.runSync('ldconfig', ['-p']);
+    final ldConfigResult = Process.runSync('ldconfig', ['-p']);
+    if (ldConfigResult.exitCode == 0) {
+      final lines = (ldConfigResult.stdout as String).split('\n');
+      final paths = [
+        for (final line in lines)
+          if (line.contains('libclang')) line.split(' => ')[1],
+      ];
+      for (final location in paths) {
+        if (File(location).existsSync()) {
+          return location;
+        }
+      }
+    }
   } else if (Platform.isWindows) {
-    for (final l in strings.windowsDylibLocations) {
+    final dylibLocations = strings.windowsDylibLocations.toList();
+    final userHome = Platform.environment['USERPROFILE'];
+    if (userHome != null) {
+      dylibLocations
+          .add(p.join(userHome, 'scoop', 'apps', 'llvm', 'current', 'bin'));
+    }
+    for (final l in dylibLocations) {
       k = findLibclangDylib(l);
       if (k != null) return k;
     }
@@ -320,6 +510,23 @@
       k = findLibclangDylib(l);
       if (k != null) return k;
     }
+    final findLibraryResult =
+        Process.runSync('xcodebuild', ['-find-library', 'libclang.dylib']);
+    if (findLibraryResult.exitCode == 0) {
+      final location = (findLibraryResult.stdout as String).split('\n').first;
+      if (File(location).existsSync()) {
+        return location;
+      }
+    }
+    final xcodePathResult = Process.runSync('xcode-select', ['-print-path']);
+    if (xcodePathResult.exitCode == 0) {
+      final xcodePath = (xcodePathResult.stdout as String).split('\n').first;
+      final location =
+          p.join(xcodePath, strings.xcodeDylibLocation, strings.dylibFileName);
+      if (File(location).existsSync()) {
+        return location;
+      }
+    }
   } else {
     throw Exception('Unsupported Platform.');
   }
@@ -378,10 +585,118 @@
   return true;
 }
 
-String outputExtractor(dynamic value) => _replaceSeparators(value as String);
+OutputConfig outputExtractor(
+    dynamic value, String? configFilename, PackageConfig? packageConfig) {
+  if (value is String) {
+    return OutputConfig(_normalizePath(value, configFilename), null);
+  }
+  value = value as YamlMap;
+  return OutputConfig(
+    _normalizePath((value)[strings.bindings] as String, configFilename),
+    value.containsKey(strings.symbolFile)
+        ? symbolFileOutputExtractor(
+            value[strings.symbolFile], configFilename, packageConfig)
+        : null,
+  );
+}
 
-bool outputValidator(List<String> name, dynamic value) =>
-    checkType<String>(name, value);
+bool outputValidator(List<String> name, dynamic value) {
+  if (value is String) {
+    return true;
+  } else if (value is YamlMap) {
+    final keys = value.keys;
+    var result = true;
+    for (final key in keys) {
+      if (key == strings.bindings) {
+        if (!checkType<String>([...name, key as String], value[key])) {
+          result = false;
+        }
+      } else if (key == strings.symbolFile) {
+        result = symbolFileOutputValidator(
+            [...name, strings.symbolFile], value[key]);
+      } else {
+        result = false;
+        _logger.severe("Unknown key '$key' in '$name'.");
+      }
+    }
+    return result;
+  } else {
+    _logger.severe(
+        "Expected value of key '${name.join(' -> ')}' to be a String or Map.");
+    return false;
+  }
+}
+
+SymbolFile symbolFileOutputExtractor(
+    dynamic value, String? configFilename, PackageConfig? packageConfig) {
+  value = value as YamlMap;
+  var output = value[strings.output] as String;
+  if (Uri.parse(output).scheme != "package") {
+    _logger.warning(
+        'Consider using a Package Uri for ${strings.symbolFile} -> ${strings.output}: $output so that external packages can use it.');
+    output = _normalizePath(output, configFilename);
+  } else {
+    output = packageConfig!.resolve(Uri.parse(output))!.toFilePath();
+  }
+  final importPath = value[strings.importPath] as String;
+  if (Uri.parse(importPath).scheme != "package") {
+    _logger.warning(
+        'Consider using a Package Uri for ${strings.symbolFile} -> ${strings.importPath}: $importPath so that external packages can use it.');
+  }
+  return SymbolFile(importPath, output);
+}
+
+bool symbolFileOutputValidator(List<String> name, dynamic value) {
+  if (!checkType<YamlMap>(name, value)) {
+    return false;
+  }
+  if (!(value as YamlMap).containsKey(strings.output)) {
+    _logger.severe("Required '$name -> ${strings.output}'.");
+    return false;
+  }
+  if (!(value).containsKey(strings.importPath)) {
+    _logger.severe("Required '$name -> ${strings.importPath}'.");
+    return false;
+  }
+  for (final key in value.keys) {
+    if (key == strings.output || key == strings.importPath) {
+      if (!checkType<String>([...name, key as String], value[key])) {
+        return false;
+      }
+    } else {
+      _logger.severe("Unknown key '$key' in '$name'.");
+      return false;
+    }
+  }
+  return true;
+}
+
+Language languageExtractor(dynamic value) {
+  if (value == strings.langC) {
+    return Language.c;
+  } else if (value == strings.langObjC) {
+    return Language.objc;
+  }
+  return Language.c;
+}
+
+bool languageValidator(List<String> name, dynamic value) {
+  if (value is String) {
+    if (value == strings.langC) {
+      return true;
+    }
+    if (value == strings.langObjC) {
+      _logger.severe('Objective C support is EXPERIMENTAL. The API may change '
+          'in a breaking way without notice.');
+      return true;
+    }
+    _logger.severe("'$name' must be one of the following - "
+        "{${strings.langC}, ${strings.langObjC}}");
+    return false;
+  }
+  _logger.severe("Expected value of key '$name' to be a String.");
+  return false;
+}
 
 /// Returns true if [str] is not a full name.
 ///
@@ -505,41 +820,42 @@
 }
 
 bool declarationConfigValidator(List<String> name, dynamic value) {
-  var _result = true;
+  var result = true;
   if (value is YamlMap) {
     for (final key in value.keys) {
       if (key == strings.include || key == strings.exclude) {
         if (!checkType<YamlList>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         }
       } else if (key == strings.rename) {
         if (!checkType<YamlMap>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         } else {
-          for (final subkey in value[key].keys) {
+          for (final subkey in (value[key] as YamlMap).keys) {
             if (!checkType<String>(
                 [...name, key, subkey as String], value[key][subkey])) {
-              _result = false;
+              result = false;
             }
           }
         }
       } else if (key == strings.memberRename) {
         if (!checkType<YamlMap>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         } else {
-          for (final declNameKey in value[key].keys) {
+          for (final declNameKey in (value[key] as YamlMap).keys) {
             if (!checkType<YamlMap>([...name, key, declNameKey as String],
                 value[key][declNameKey])) {
-              _result = false;
+              result = false;
             } else {
-              for (final memberNameKey in value[key][declNameKey].keys) {
+              for (final memberNameKey
+                  in ((value[key] as YamlMap)[declNameKey] as YamlMap).keys) {
                 if (!checkType<String>([
                   ...name,
                   key,
                   declNameKey,
                   memberNameKey as String,
                 ], value[key][declNameKey][memberNameKey])) {
-                  _result = false;
+                  result = false;
                 }
               }
             }
@@ -547,17 +863,17 @@
         }
       } else if (key == strings.symbolAddress) {
         if (!checkType<YamlMap>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         } else {
-          for (final subkey in value[key].keys) {
+          for (final subkey in (value[key] as YamlMap).keys) {
             if (subkey == strings.include || subkey == strings.exclude) {
               if (!checkType<YamlList>(
                   [...name, key, subkey as String], value[key][subkey])) {
-                _result = false;
+                result = false;
               }
             } else {
               _logger.severe("Unknown key '$subkey' in '$name -> $key'.");
-              _result = false;
+              result = false;
             }
           }
         }
@@ -565,59 +881,59 @@
     }
   } else {
     _logger.severe("Expected value '$name' to be a Map.");
-    _result = false;
+    result = false;
   }
-  return _result;
+  return result;
 }
 
 Includer exposeFunctionTypeExtractor(dynamic value) =>
     _extractIncluderFromYaml(value);
 
 bool exposeFunctionTypeValidator(List<String> name, dynamic value) {
-  var _result = true;
+  var result = true;
 
   if (!checkType<YamlMap>(name, value)) {
-    _result = false;
+    result = false;
   } else {
     final mp = value as YamlMap;
     for (final key in mp.keys) {
       if (key == strings.include || key == strings.exclude) {
         if (!checkType<YamlList>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         }
       } else {
         _logger.severe("Unknown subkey '$key' in '$name'.");
-        _result = false;
+        result = false;
       }
     }
   }
 
-  return _result;
+  return result;
 }
 
 Includer leafFunctionExtractor(dynamic value) =>
     _extractIncluderFromYaml(value);
 
 bool leafFunctionValidator(List<String> name, dynamic value) {
-  var _result = true;
+  var result = true;
 
   if (!checkType<YamlMap>(name, value)) {
-    _result = false;
+    result = false;
   } else {
     final mp = value as YamlMap;
     for (final key in mp.keys) {
       if (key == strings.include || key == strings.exclude) {
         if (!checkType<YamlList>([...name, key as String], value[key])) {
-          _result = false;
+          result = false;
         }
       } else {
         _logger.severe("Unknown subkey '$key' in '$name'.");
-        _result = false;
+        result = false;
       }
     }
   }
 
-  return _result;
+  return result;
 }
 
 SupportedNativeType nativeSupportedType(int value, {bool signed = true}) {
@@ -741,7 +1057,7 @@
 
 StructPackingOverride structPackingOverrideExtractor(dynamic value) {
   final matcherMap = <RegExp, int?>{};
-  for (final key in value.keys) {
+  for (final key in (value as YamlMap).keys) {
     matcherMap[RegExp(key as String, dotAll: true)] =
         strings.packingValuesMap[value[key]];
   }
@@ -749,19 +1065,48 @@
 }
 
 bool structPackingOverrideValidator(List<String> name, dynamic value) {
-  var _result = true;
+  var result = true;
 
   if (!checkType<YamlMap>([...name], value)) {
-    _result = false;
+    result = false;
   } else {
-    for (final key in value.keys) {
+    for (final key in (value as YamlMap).keys) {
       if (!(strings.packingValuesMap.keys.contains(value[key]))) {
         _logger.severe(
             "'$name -> $key' must be one of the following - ${strings.packingValuesMap.keys.toList()}");
-        _result = false;
+        result = false;
       }
     }
   }
 
-  return _result;
+  return result;
+}
+
+FfiNativeConfig ffiNativeExtractor(dynamic yamlConfig) {
+  final yamlMap = yamlConfig as YamlMap?;
+  return FfiNativeConfig(
+    enabled: true,
+    asset: yamlMap?[strings.ffiNativeAsset] as String?,
+  );
+}
+
+bool ffiNativeValidator(List<String> name, dynamic yamlConfig) {
+  if (!checkType<YamlMap?>(name, yamlConfig)) {
+    return false;
+  }
+  if (yamlConfig == null) {
+    // Empty means no asset name.
+    return true;
+  }
+  for (final key in (yamlConfig as YamlMap).keys) {
+    if (!checkType<String>([...name, key as String], yamlConfig[key])) {
+      return false;
+    }
+    if (key != strings.ffiNativeAsset) {
+      _logger.severe("'$name -> $key' must be one of the following - ${[
+        strings.ffiNativeAsset
+      ]}");
+    }
+  }
+  return true;
 }
diff --git a/lib/src/executables/ffigen.dart b/lib/src/executables/ffigen.dart
index 12dd868..c37cb4f 100644
--- a/lib/src/executables/ffigen.dart
+++ b/lib/src/executables/ffigen.dart
@@ -9,6 +9,7 @@
 import 'package:cli_util/cli_logging.dart' show Ansi;
 import 'package:ffigen/ffigen.dart';
 import 'package:logging/logging.dart';
+import 'package:package_config/package_config.dart';
 import 'package:yaml/yaml.dart' as yaml;
 
 final _logger = Logger('ffigen.ffigen');
@@ -34,7 +35,7 @@
   return '${_ansi.red}$str${_ansi.none}';
 }
 
-void main(List<String> args) {
+void main(List<String> args) async {
   // Parses the cmd args. This will print usage and exit if --help was passed.
   final argResult = getArgResults(args);
 
@@ -44,7 +45,7 @@
   // Create a config object.
   Config config;
   try {
-    config = getConfig(argResult);
+    config = getConfig(argResult, await findPackageConfig(Directory.current));
   } on FormatException {
     _logger.severe('Please fix configuration errors and re-run the tool.');
     exit(1);
@@ -58,17 +59,25 @@
   library.generateFile(gen);
   _logger
       .info(successPen('Finished, Bindings generated in ${gen.absolute.path}'));
+
+  if (config.symbolFile != null) {
+    final symbolFileGen = File(config.symbolFile!.output);
+    library.generateSymbolOutputFile(
+        symbolFileGen, config.symbolFile!.importPath);
+    _logger.info(successPen(
+        'Finished, Symbol Output generated in ${symbolFileGen.absolute.path}'));
+  }
 }
 
-Config getConfig(ArgResults result) {
+Config getConfig(ArgResults result, PackageConfig? packageConfig) {
   _logger.info('Running in ${Directory.current}');
   Config config;
 
   // Parse config from yaml.
   if (result.wasParsed(conf)) {
-    config = getConfigFromCustomYaml(result[conf] as String);
+    config = getConfigFromCustomYaml(result[conf] as String, packageConfig);
   } else {
-    config = getConfigFromPubspec();
+    config = getConfigFromPubspec(packageConfig);
   }
 
   // Add compiler options from command line.
@@ -82,7 +91,7 @@
 }
 
 /// Extracts configuration from pubspec file.
-Config getConfigFromPubspec() {
+Config getConfigFromPubspec(PackageConfig? packageConfig) {
   final pubspecFile = File(pubspecName);
 
   if (!pubspecFile.existsSync()) {
@@ -101,11 +110,12 @@
     _logger.severe("Couldn't find an entry for '$configKey' in $pubspecName.");
     exit(1);
   }
-  return Config.fromYaml(bindingsConfigMap);
+  return Config.fromYaml(bindingsConfigMap,
+      filename: pubspecFile.path, packageConfig: packageConfig);
 }
 
 /// Extracts configuration from a custom yaml file.
-Config getConfigFromCustomYaml(String yamlPath) {
+Config getConfigFromCustomYaml(String yamlPath, PackageConfig? packageConfig) {
   final yamlFile = File(yamlPath);
 
   if (!yamlFile.existsSync()) {
@@ -113,11 +123,7 @@
     exit(1);
   }
 
-  // Throws a [YamlException] if it's unable to parse the Yaml.
-  final bindingsConfigMap =
-      yaml.loadYaml(yamlFile.readAsStringSync()) as yaml.YamlMap;
-
-  return Config.fromYaml(bindingsConfigMap);
+  return Config.fromFile(yamlFile, packageConfig: packageConfig);
 }
 
 /// Parses the cmd line arguments.
diff --git a/lib/src/header_parser/clang_bindings/clang_bindings.dart b/lib/src/header_parser/clang_bindings/clang_bindings.dart
index abfad7f..6b77794 100644
--- a/lib/src/header_parser/clang_bindings/clang_bindings.dart
+++ b/lib/src/header_parser/clang_bindings/clang_bindings.dart
@@ -8,6 +8,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Holds bindings to LibClang.
@@ -26,7 +27,7 @@
       : _lookup = lookup;
 
   /// Retrieve the character data associated with the given string.
-  ffi.Pointer<ffi.Int8> clang_getCString(
+  ffi.Pointer<ffi.Char> clang_getCString(
     CXString string,
   ) {
     return _clang_getCString(
@@ -35,10 +36,10 @@
   }
 
   late final _clang_getCStringPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(CXString)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(CXString)>>(
           'clang_getCString');
   late final _clang_getCString = _clang_getCStringPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(CXString)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(CXString)>();
 
   /// Free the given string.
   void clang_disposeString(
@@ -104,7 +105,7 @@
   }
 
   late final _clang_createIndexPtr =
-      _lookup<ffi.NativeFunction<CXIndex Function(ffi.Int32, ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<CXIndex Function(ffi.Int, ffi.Int)>>(
           'clang_createIndex');
   late final _clang_createIndex =
       _clang_createIndexPtr.asFunction<CXIndex Function(int, int)>();
@@ -142,6 +143,22 @@
   late final _clang_getFileName =
       _clang_getFileNamePtr.asFunction<CXString Function(CXFile)>();
 
+  /// Returns non-zero if the given source location is in a system header.
+  int clang_Location_isInSystemHeader(
+    CXSourceLocation location,
+  ) {
+    return _clang_Location_isInSystemHeader(
+      location,
+    );
+  }
+
+  late final _clang_Location_isInSystemHeaderPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXSourceLocation)>>(
+          'clang_Location_isInSystemHeader');
+  late final _clang_Location_isInSystemHeader =
+      _clang_Location_isInSystemHeaderPtr
+          .asFunction<int Function(CXSourceLocation)>();
+
   /// Determine whether two ranges are equivalent.
   ///
   /// \returns non-zero if the ranges are the same, zero if they differ.
@@ -157,7 +174,7 @@
 
   late final _clang_equalRangesPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXSourceRange, CXSourceRange)>>('clang_equalRanges');
   late final _clang_equalRanges = _clang_equalRangesPtr
       .asFunction<int Function(CXSourceRange, CXSourceRange)>();
@@ -186,9 +203,9 @@
   void clang_getFileLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getFileLocation(
       location,
@@ -204,16 +221,16 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getFileLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getFileLocation');
   late final _clang_getFileLocation = _clang_getFileLocationPtr.asFunction<
       void Function(
           CXSourceLocation,
           ffi.Pointer<CXFile>,
-          ffi.Pointer<ffi.Uint32>,
-          ffi.Pointer<ffi.Uint32>,
-          ffi.Pointer<ffi.Uint32>)>();
+          ffi.Pointer<ffi.UnsignedInt>,
+          ffi.Pointer<ffi.UnsignedInt>,
+          ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Determine the number of diagnostics produced for the given
   /// translation unit.
@@ -226,7 +243,7 @@
   }
 
   late final _clang_getNumDiagnosticsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXTranslationUnit)>>(
           'clang_getNumDiagnostics');
   late final _clang_getNumDiagnostics =
       _clang_getNumDiagnosticsPtr.asFunction<int Function(CXTranslationUnit)>();
@@ -251,7 +268,7 @@
   late final _clang_getDiagnosticPtr = _lookup<
       ffi.NativeFunction<
           CXDiagnostic Function(
-              CXTranslationUnit, ffi.Uint32)>>('clang_getDiagnostic');
+              CXTranslationUnit, ffi.UnsignedInt)>>('clang_getDiagnostic');
   late final _clang_getDiagnostic = _clang_getDiagnosticPtr
       .asFunction<CXDiagnostic Function(CXTranslationUnit, int)>();
 
@@ -293,9 +310,9 @@
     );
   }
 
-  late final _clang_formatDiagnosticPtr =
-      _lookup<ffi.NativeFunction<CXString Function(CXDiagnostic, ffi.Uint32)>>(
-          'clang_formatDiagnostic');
+  late final _clang_formatDiagnosticPtr = _lookup<
+          ffi.NativeFunction<CXString Function(CXDiagnostic, ffi.UnsignedInt)>>(
+      'clang_formatDiagnostic');
   late final _clang_formatDiagnostic = _clang_formatDiagnosticPtr
       .asFunction<CXString Function(CXDiagnostic, int)>();
 
@@ -305,8 +322,8 @@
   /// error codes.
   CXTranslationUnit clang_parseTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -327,18 +344,18 @@
       ffi.NativeFunction<
           CXTranslationUnit Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
-              ffi.Uint32)>>('clang_parseTranslationUnit');
+              ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_parseTranslationUnit');
   late final _clang_parseTranslationUnit =
       _clang_parseTranslationUnitPtr.asFunction<
           CXTranslationUnit Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>,
               int,
@@ -388,7 +405,7 @@
   }
 
   late final _clang_Cursor_isNullPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_isNull');
   late final _clang_Cursor_isNull =
       _clang_Cursor_isNullPtr.asFunction<int Function(CXCursor)>();
@@ -418,7 +435,7 @@
   }
 
   late final _clang_Cursor_hasAttrsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_hasAttrs');
   late final _clang_Cursor_hasAttrs =
       _clang_Cursor_hasAttrsPtr.asFunction<int Function(CXCursor)>();
@@ -512,7 +529,7 @@
   }
 
   late final _clang_getEnumConstantDeclValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXCursor)>>(
           'clang_getEnumConstantDeclValue');
   late final _clang_getEnumConstantDeclValue =
       _clang_getEnumConstantDeclValuePtr.asFunction<int Function(CXCursor)>();
@@ -529,7 +546,7 @@
   }
 
   late final _clang_getFieldDeclBitWidthPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_getFieldDeclBitWidth');
   late final _clang_getFieldDeclBitWidth =
       _clang_getFieldDeclBitWidthPtr.asFunction<int Function(CXCursor)>();
@@ -548,7 +565,7 @@
   }
 
   late final _clang_Cursor_getNumArgumentsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_getNumArguments');
   late final _clang_Cursor_getNumArguments =
       _clang_Cursor_getNumArgumentsPtr.asFunction<int Function(CXCursor)>();
@@ -569,7 +586,7 @@
   }
 
   late final _clang_Cursor_getArgumentPtr =
-      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.UnsignedInt)>>(
           'clang_Cursor_getArgument');
   late final _clang_Cursor_getArgument = _clang_Cursor_getArgumentPtr
       .asFunction<CXCursor Function(CXCursor, int)>();
@@ -605,7 +622,7 @@
   }
 
   late final _clang_Cursor_isMacroFunctionLikePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isMacroFunctionLike');
   late final _clang_Cursor_isMacroFunctionLike =
       _clang_Cursor_isMacroFunctionLikePtr.asFunction<int Function(CXCursor)>();
@@ -621,7 +638,7 @@
   }
 
   late final _clang_Cursor_isMacroBuiltinPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isMacroBuiltin');
   late final _clang_Cursor_isMacroBuiltin =
       _clang_Cursor_isMacroBuiltinPtr.asFunction<int Function(CXCursor)>();
@@ -637,7 +654,7 @@
   }
 
   late final _clang_Cursor_isFunctionInlinedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isFunctionInlined');
   late final _clang_Cursor_isFunctionInlined =
       _clang_Cursor_isFunctionInlinedPtr.asFunction<int Function(CXCursor)>();
@@ -732,7 +749,7 @@
   }
 
   late final _clang_getNumArgTypesPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXType)>>(
           'clang_getNumArgTypes');
   late final _clang_getNumArgTypes =
       _clang_getNumArgTypesPtr.asFunction<int Function(CXType)>();
@@ -752,11 +769,46 @@
   }
 
   late final _clang_getArgTypePtr =
-      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.UnsignedInt)>>(
           'clang_getArgType');
   late final _clang_getArgType =
       _clang_getArgTypePtr.asFunction<CXType Function(CXType, int)>();
 
+  /// Retrieves the base type of the ObjCObjectType.
+  ///
+  /// If the type is not an ObjC object, an invalid type is returned.
+  CXType clang_Type_getObjCObjectBaseType(
+    CXType T,
+  ) {
+    return _clang_Type_getObjCObjectBaseType(
+      T,
+    );
+  }
+
+  late final _clang_Type_getObjCObjectBaseTypePtr =
+      _lookup<ffi.NativeFunction<CXType Function(CXType)>>(
+          'clang_Type_getObjCObjectBaseType');
+  late final _clang_Type_getObjCObjectBaseType =
+      _clang_Type_getObjCObjectBaseTypePtr
+          .asFunction<CXType Function(CXType)>();
+
+  /// Retrieve the return type associated with a given cursor.
+  ///
+  /// This only returns a valid type if the cursor refers to a function or method.
+  CXType clang_getCursorResultType(
+    CXCursor C,
+  ) {
+    return _clang_getCursorResultType(
+      C,
+    );
+  }
+
+  late final _clang_getCursorResultTypePtr =
+      _lookup<ffi.NativeFunction<CXType Function(CXCursor)>>(
+          'clang_getCursorResultType');
+  late final _clang_getCursorResultType =
+      _clang_getCursorResultTypePtr.asFunction<CXType Function(CXCursor)>();
+
   /// Return the number of elements of an array or vector type.
   ///
   /// If a type is passed in that is not an array or vector type,
@@ -770,7 +822,7 @@
   }
 
   late final _clang_getNumElementsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_getNumElements');
   late final _clang_getNumElements =
       _clang_getNumElementsPtr.asFunction<int Function(CXType)>();
@@ -809,6 +861,21 @@
   late final _clang_Type_getNamedType =
       _clang_Type_getNamedTypePtr.asFunction<CXType Function(CXType)>();
 
+  /// Retrieve the nullability kind of a pointer type.
+  int clang_Type_getNullability(
+    CXType T,
+  ) {
+    return _clang_Type_getNullability(
+      T,
+    );
+  }
+
+  late final _clang_Type_getNullabilityPtr =
+      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXType)>>(
+          'clang_Type_getNullability');
+  late final _clang_Type_getNullability =
+      _clang_Type_getNullabilityPtr.asFunction<int Function(CXType)>();
+
   /// Return the alignment of a type in bytes as per C++[expr.alignof]
   /// standard.
   ///
@@ -828,7 +895,7 @@
   }
 
   late final _clang_Type_getAlignOfPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_Type_getAlignOf');
   late final _clang_Type_getAlignOf =
       _clang_Type_getAlignOfPtr.asFunction<int Function(CXType)>();
@@ -844,7 +911,7 @@
   }
 
   late final _clang_Cursor_isAnonymousPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isAnonymous');
   late final _clang_Cursor_isAnonymous =
       _clang_Cursor_isAnonymousPtr.asFunction<int Function(CXCursor)>();
@@ -860,7 +927,7 @@
   }
 
   late final _clang_Cursor_isAnonymousRecordDeclPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isAnonymousRecordDecl');
   late final _clang_Cursor_isAnonymousRecordDecl =
       _clang_Cursor_isAnonymousRecordDeclPtr
@@ -900,7 +967,7 @@
 
   late final _clang_visitChildrenPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXCursor, CXCursorVisitor, CXClientData)>>('clang_visitChildren');
   late final _clang_visitChildren = _clang_visitChildrenPtr
       .asFunction<int Function(CXCursor, CXCursorVisitor, CXClientData)>();
@@ -981,6 +1048,63 @@
   late final _clang_getCursorDefinition =
       _clang_getCursorDefinitionPtr.asFunction<CXCursor Function(CXCursor)>();
 
+  /// Given a cursor that represents a property declaration, return the
+  /// associated property attributes. The bits are formed from
+  /// \c CXObjCPropertyAttrKind.
+  ///
+  /// \param reserved Reserved for future use, pass 0.
+  int clang_Cursor_getObjCPropertyAttributes(
+    CXCursor C,
+    int reserved,
+  ) {
+    return _clang_Cursor_getObjCPropertyAttributes(
+      C,
+      reserved,
+    );
+  }
+
+  late final _clang_Cursor_getObjCPropertyAttributesPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(CXCursor,
+              ffi.UnsignedInt)>>('clang_Cursor_getObjCPropertyAttributes');
+  late final _clang_Cursor_getObjCPropertyAttributes =
+      _clang_Cursor_getObjCPropertyAttributesPtr
+          .asFunction<int Function(CXCursor, int)>();
+
+  /// Given a cursor that represents a property declaration, return the
+  /// name of the method that implements the getter.
+  CXString clang_Cursor_getObjCPropertyGetterName(
+    CXCursor C,
+  ) {
+    return _clang_Cursor_getObjCPropertyGetterName(
+      C,
+    );
+  }
+
+  late final _clang_Cursor_getObjCPropertyGetterNamePtr =
+      _lookup<ffi.NativeFunction<CXString Function(CXCursor)>>(
+          'clang_Cursor_getObjCPropertyGetterName');
+  late final _clang_Cursor_getObjCPropertyGetterName =
+      _clang_Cursor_getObjCPropertyGetterNamePtr
+          .asFunction<CXString Function(CXCursor)>();
+
+  /// Given a cursor that represents a property declaration, return the
+  /// name of the method that implements the setter, if any.
+  CXString clang_Cursor_getObjCPropertySetterName(
+    CXCursor C,
+  ) {
+    return _clang_Cursor_getObjCPropertySetterName(
+      C,
+    );
+  }
+
+  late final _clang_Cursor_getObjCPropertySetterNamePtr =
+      _lookup<ffi.NativeFunction<CXString Function(CXCursor)>>(
+          'clang_Cursor_getObjCPropertySetterName');
+  late final _clang_Cursor_getObjCPropertySetterName =
+      _clang_Cursor_getObjCPropertySetterNamePtr
+          .asFunction<CXString Function(CXCursor)>();
+
   /// Given a cursor that represents a declaration, return the associated
   /// comment's source range.  The range may include multiple consecutive comments
   /// with whitespace in between.
@@ -1053,6 +1177,17 @@
   late final _clang_getCursorKindSpelling =
       _clang_getCursorKindSpellingPtr.asFunction<CXString Function(int)>();
 
+  /// Return a version string, suitable for showing to a user, but not
+  /// intended to be parsed (the format is not guaranteed to be stable).
+  CXString clang_getClangVersion() {
+    return _clang_getClangVersion();
+  }
+
+  late final _clang_getClangVersionPtr =
+      _lookup<ffi.NativeFunction<CXString Function()>>('clang_getClangVersion');
+  late final _clang_getClangVersion =
+      _clang_getClangVersionPtr.asFunction<CXString Function()>();
+
   /// If cursor is a statement declaration tries to evaluate the
   /// statement and if its variable, tries to evaluate its initializer,
   /// into its corresponding type.
@@ -1096,7 +1231,7 @@
   }
 
   late final _clang_EvalResult_getAsIntPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXEvalResult)>>(
           'clang_EvalResult_getAsInt');
   late final _clang_EvalResult_getAsInt =
       _clang_EvalResult_getAsIntPtr.asFunction<int Function(CXEvalResult)>();
@@ -1113,7 +1248,7 @@
   }
 
   late final _clang_EvalResult_getAsLongLongPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXEvalResult)>>(
           'clang_EvalResult_getAsLongLong');
   late final _clang_EvalResult_getAsLongLong =
       _clang_EvalResult_getAsLongLongPtr
@@ -1139,7 +1274,7 @@
   /// kind is other than Int or float. User must not free this pointer,
   /// instead call clang_EvalResult_dispose on the CXEvalResult returned
   /// by clang_Cursor_Evaluate.
-  ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
+  ffi.Pointer<ffi.Char> clang_EvalResult_getAsStr(
     CXEvalResult E,
   ) {
     return _clang_EvalResult_getAsStr(
@@ -1148,10 +1283,10 @@
   }
 
   late final _clang_EvalResult_getAsStrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(CXEvalResult)>>(
           'clang_EvalResult_getAsStr');
   late final _clang_EvalResult_getAsStr = _clang_EvalResult_getAsStrPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(CXEvalResult)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(CXEvalResult)>();
 
   /// Disposes the created Eval memory.
   void clang_EvalResult_dispose(
@@ -1178,7 +1313,7 @@
 class CXString extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int private_flags;
 }
 
@@ -1193,13 +1328,13 @@
   /// The file whose contents have not yet been saved.
   ///
   /// This file must already exist in the file system.
-  external ffi.Pointer<ffi.Int8> Filename;
+  external ffi.Pointer<ffi.Char> Filename;
 
   /// A buffer containing the unsaved contents of this file.
-  external ffi.Pointer<ffi.Int8> Contents;
+  external ffi.Pointer<ffi.Char> Contents;
 
   /// The length of the unsaved contents of this buffer.
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int Length;
 }
 
@@ -1219,7 +1354,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -1231,10 +1366,10 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int begin_int_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int end_int_data;
 }
 
@@ -2225,7 +2360,7 @@
   @ffi.Int32()
   external int kind;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int xdata;
 
   @ffi.Array.multi([3])
@@ -2371,6 +2506,49 @@
   external ffi.Array<ffi.Pointer<ffi.Void>> data;
 }
 
+abstract class CXTypeNullabilityKind {
+  /// Values of this type can never be null.
+  static const int CXTypeNullability_NonNull = 0;
+
+  /// Values of this type can be null.
+  static const int CXTypeNullability_Nullable = 1;
+
+  /// Whether values of this type can be null is (explicitly)
+  /// unspecified. This captures a (fairly rare) case where we
+  /// can't conclude anything about the nullability of the type even
+  /// though it has been considered.
+  static const int CXTypeNullability_Unspecified = 2;
+
+  /// Nullability is not applicable to this type.
+  static const int CXTypeNullability_Invalid = 3;
+}
+
+/// List the possible error codes for \c clang_Type_getSizeOf,
+/// \c clang_Type_getAlignOf, \c clang_Type_getOffsetOf and
+/// \c clang_Cursor_getOffsetOf.
+///
+/// A value of this enumeration type can be returned if the target type is not
+/// a valid argument to sizeof, alignof or offsetof.
+abstract class CXTypeLayoutError {
+  /// Type is of kind CXType_Invalid.
+  static const int CXTypeLayoutError_Invalid = -1;
+
+  /// The type is an incomplete Type.
+  static const int CXTypeLayoutError_Incomplete = -2;
+
+  /// The type is a dependent Type.
+  static const int CXTypeLayoutError_Dependent = -3;
+
+  /// The type is not a constant size type.
+  static const int CXTypeLayoutError_NotConstantSize = -4;
+
+  /// The Field name is not valid for this record.
+  static const int CXTypeLayoutError_InvalidFieldName = -5;
+
+  /// The type is undeduced.
+  static const int CXTypeLayoutError_Undeduced = -6;
+}
+
 /// Describes how the traversal of the children of a particular
 /// cursor should proceed after visiting a particular child cursor.
 ///
@@ -2406,6 +2584,24 @@
 /// to various callbacks and visitors.
 typedef CXClientData = ffi.Pointer<ffi.Void>;
 
+/// Property attributes for a \c CXCursor_ObjCPropertyDecl.
+abstract class CXObjCPropertyAttrKind {
+  static const int CXObjCPropertyAttr_noattr = 0;
+  static const int CXObjCPropertyAttr_readonly = 1;
+  static const int CXObjCPropertyAttr_getter = 2;
+  static const int CXObjCPropertyAttr_assign = 4;
+  static const int CXObjCPropertyAttr_readwrite = 8;
+  static const int CXObjCPropertyAttr_retain = 16;
+  static const int CXObjCPropertyAttr_copy = 32;
+  static const int CXObjCPropertyAttr_nonatomic = 64;
+  static const int CXObjCPropertyAttr_setter = 128;
+  static const int CXObjCPropertyAttr_atomic = 256;
+  static const int CXObjCPropertyAttr_weak = 512;
+  static const int CXObjCPropertyAttr_strong = 1024;
+  static const int CXObjCPropertyAttr_unsafe_unretained = 2048;
+  static const int CXObjCPropertyAttr_class = 4096;
+}
+
 abstract class CXEvalResultKind {
   static const int CXEval_Int = 1;
   static const int CXEval_Float = 2;
diff --git a/lib/src/header_parser/data.dart b/lib/src/header_parser/data.dart
index ac16572..5bd4e90 100644
--- a/lib/src/header_parser/data.dart
+++ b/lib/src/header_parser/data.dart
@@ -4,7 +4,8 @@
 
 import 'dart:ffi';
 
-import 'package:ffigen/src/code_generator.dart' show Constant;
+import 'package:ffigen/src/code_generator.dart'
+    show Constant, ObjCBuiltInFunctions;
 import 'package:ffigen/src/config_provider.dart' show Config;
 import 'clang_bindings/clang_bindings.dart' show Clang;
 
@@ -20,6 +21,10 @@
 Clang get clang => _clang;
 late Clang _clang;
 
+// Cursor index.
+CursorIndex get cursorIndex => _cursorIndex;
+CursorIndex _cursorIndex = CursorIndex();
+
 // Tracks seen status for bindings
 BindingsIndex get bindingsIndex => _bindingsIndex;
 BindingsIndex _bindingsIndex = BindingsIndex();
@@ -36,11 +41,17 @@
 List<Constant> get unnamedEnumConstants => _unnamedEnumConstants;
 List<Constant> _unnamedEnumConstants = [];
 
+/// Built in functions used by the Objective C bindings.
+ObjCBuiltInFunctions get objCBuiltInFunctions => _objCBuiltInFunctions;
+late ObjCBuiltInFunctions _objCBuiltInFunctions;
+
 void initializeGlobals({required Config config}) {
   _config = config;
   _clang = Clang(DynamicLibrary.open(config.libclangDylib));
   _incrementalNamer = IncrementalNamer();
   _savedMacros = {};
   _unnamedEnumConstants = [];
+  _cursorIndex = CursorIndex();
   _bindingsIndex = BindingsIndex();
+  _objCBuiltInFunctions = ObjCBuiltInFunctions();
 }
diff --git a/lib/src/header_parser/includer.dart b/lib/src/header_parser/includer.dart
index 9211d5f..5e55aa2 100644
--- a/lib/src/header_parser/includer.dart
+++ b/lib/src/header_parser/includer.dart
@@ -5,13 +5,20 @@
 /// Utility functions to check whether a binding should be parsed or not
 /// based on filters.
 
+import '../config_provider/config_types.dart';
+import '../strings.dart' as strings;
 import 'data.dart';
 
-bool _shouldIncludeDecl(String usr, String name,
-    bool Function(String) isSeenDecl, bool Function(String) configIncludes) {
+bool _shouldIncludeDecl(
+    String usr,
+    String name,
+    bool Function(String) isSeenDecl,
+    bool Function(String, bool) configIncludes) {
   if (isSeenDecl(usr) || name == '') {
     return false;
-  } else if (configIncludes(name)) {
+  } else if (config.usrTypeMappings.containsKey(usr)) {
+    return false;
+  } else if (configIncludes(name, config.excludeAllByDefault)) {
     return true;
   } else {
     return false;
@@ -20,12 +27,12 @@
 
 bool shouldIncludeStruct(String usr, String name) {
   return _shouldIncludeDecl(
-      usr, name, bindingsIndex.isSeenStruct, config.structDecl.shouldInclude);
+      usr, name, bindingsIndex.isSeenType, config.structDecl.shouldInclude);
 }
 
 bool shouldIncludeUnion(String usr, String name) {
   return _shouldIncludeDecl(
-      usr, name, bindingsIndex.isSeenUnion, config.unionDecl.shouldInclude);
+      usr, name, bindingsIndex.isSeenType, config.unionDecl.shouldInclude);
 }
 
 bool shouldIncludeFunc(String usr, String name) {
@@ -34,8 +41,8 @@
 }
 
 bool shouldIncludeEnumClass(String usr, String name) {
-  return _shouldIncludeDecl(usr, name, bindingsIndex.isSeenEnumClass,
-      config.enumClassDecl.shouldInclude);
+  return _shouldIncludeDecl(
+      usr, name, bindingsIndex.isSeenType, config.enumClassDecl.shouldInclude);
 }
 
 bool shouldIncludeUnnamedEnumConstant(String usr, String name) {
@@ -54,8 +61,17 @@
 }
 
 bool shouldIncludeTypealias(String usr, String name) {
+  // Objective C has some core typedefs that are important to keep.
+  if (config.language == Language.objc && name == strings.objcInstanceType) {
+    return true;
+  }
   return _shouldIncludeDecl(
-      usr, name, bindingsIndex.isSeenTypealias, config.typedefs.shouldInclude);
+      usr, name, bindingsIndex.isSeenType, config.typedefs.shouldInclude);
+}
+
+bool shouldIncludeObjCInterface(String usr, String name) {
+  return _shouldIncludeDecl(
+      usr, name, bindingsIndex.isSeenType, config.objcInterfaces.shouldInclude);
 }
 
 /// True if a cursor should be included based on headers config, used on root
diff --git a/lib/src/header_parser/parser.dart b/lib/src/header_parser/parser.dart
index 93dfaa1..871da44 100644
--- a/lib/src/header_parser/parser.dart
+++ b/lib/src/header_parser/parser.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:ffi';
+import 'dart:io';
 
 import 'package:ffi/ffi.dart';
 import 'package:ffigen/src/code_generator.dart';
@@ -28,9 +29,9 @@
     name: config.wrapperName,
     description: config.wrapperDocComment,
     header: config.preamble,
-    dartBool: config.dartBool,
     sort: config.sort,
     packingOverride: config.structPackingOverride,
+    libraryImports: c.libraryImports.values.toSet(),
   );
 
   return library;
@@ -55,17 +56,25 @@
   final index = clang.clang_createIndex(0, 0);
 
   Pointer<Pointer<Utf8>> clangCmdArgs = nullptr;
-  var cmdLen = 0;
+  final compilerOpts = <String>[
+    // Add compiler opt for comment parsing for clang based on config.
+    if (config.commentType.length != CommentLength.none &&
+        config.commentType.style == CommentStyle.any)
+      strings.fparseAllComments,
 
-  /// Add compiler opt for comment parsing for clang based on config.
-  if (config.commentType.length != CommentLength.none &&
-      config.commentType.style == CommentStyle.any) {
-    config.compilerOpts.add(strings.fparseAllComments);
-  }
+    // If the config targets Objective C, add a compiler opt for it.
+    if (config.language == Language.objc) ...[
+      ...strings.clangLangObjC,
+      ..._findObjectiveCSysroot(),
+    ],
 
-  _logger.fine('CompilerOpts used: ${config.compilerOpts}');
-  clangCmdArgs = createDynamicStringArray(config.compilerOpts);
-  cmdLen = config.compilerOpts.length;
+    // Add the user options last so they can override any other options.
+    ...config.compilerOpts
+  ];
+
+  _logger.fine('CompilerOpts used: $compilerOpts');
+  clangCmdArgs = createDynamicStringArray(compilerOpts);
+  final cmdLen = compilerOpts.length;
 
   // Contains all bindings. A set ensures we never have duplicates.
   final bindings = <Binding>{};
@@ -73,6 +82,9 @@
   // Log all headers for user.
   _logger.info('Input Headers: ${config.headers.entryPoints}');
 
+  final tuList = <Pointer<clang_types.CXTranslationUnitImpl>>[];
+
+  // Parse all translation units from entry points.
   for (final headerLocation in config.headers.entryPoints) {
     _logger.fine('Creating TranslationUnit for header: $headerLocation');
 
@@ -96,11 +108,24 @@
     }
 
     logTuDiagnostics(tu, _logger, headerLocation);
-    final rootCursor = clang.clang_getTranslationUnitCursor(tu);
+    tuList.add(tu);
+  }
 
+  final tuCursors =
+      tuList.map((tu) => clang.clang_getTranslationUnitCursor(tu));
+
+  // Build usr to CXCusror map from translation units.
+  for (final rootCursor in tuCursors) {
+    buildUsrCursorDefinitionMap(rootCursor);
+  }
+
+  // Parse definitions from translation units.
+  for (final rootCursor in tuCursors) {
     bindings.addAll(parseTranslationUnit(rootCursor));
+  }
 
-    // Cleanup.
+  // Dispose translation units.
+  for (final tu in tuList) {
     clang.clang_disposeTranslationUnit(tu);
   }
 
@@ -110,7 +135,19 @@
   // Parse all saved macros.
   bindings.addAll(parseSavedMacros()!);
 
-  clangCmdArgs.dispose(config.compilerOpts.length);
+  clangCmdArgs.dispose(cmdLen);
   clang.clang_disposeIndex(index);
   return bindings.toList();
 }
+
+List<String> _findObjectiveCSysroot() {
+  final result = Process.runSync('xcrun', ['--show-sdk-path']);
+  if (result.exitCode == 0) {
+    for (final line in (result.stdout as String).split('\n')) {
+      if (line.isNotEmpty) {
+        return ['-isysroot', line];
+      }
+    }
+  }
+  return [];
+}
diff --git a/lib/src/header_parser/sub_parsers/compounddecl_parser.dart b/lib/src/header_parser/sub_parsers/compounddecl_parser.dart
index 431334a..93d662d 100644
--- a/lib/src/header_parser/sub_parsers/compounddecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/compounddecl_parser.dart
@@ -16,56 +16,66 @@
 
 final _logger = Logger('ffigen.header_parser.compounddecl_parser');
 
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _compoundMembersVisitorPtr;
+
 /// Holds temporary information regarding [compound] while parsing.
 class _ParsedCompound {
-  Compound? compound;
+  Compound compound;
   bool unimplementedMemberType = false;
   bool flexibleArrayMember = false;
   bool bitFieldMember = false;
   bool dartHandleMember = false;
   bool incompleteCompoundMember = false;
 
-  bool get isInComplete =>
+  _ParsedCompound(this.compound);
+
+  bool get isIncomplete =>
       unimplementedMemberType ||
       flexibleArrayMember ||
       bitFieldMember ||
       (dartHandleMember && config.useDartHandle) ||
-      incompleteCompoundMember;
+      incompleteCompoundMember ||
+      alignment == clang_types.CXTypeLayoutError.CXTypeLayoutError_Incomplete;
 
   // A struct without any attribute is definitely not packed. #pragma pack(...)
   // also adds an attribute, but it's unexposed and cannot be travesed.
   bool hasAttr = false;
+
   // A struct which as a __packed__ attribute is definitely packed.
   bool hasPackedAttr = false;
+
   // Stores the maximum alignment from all the children.
   int maxChildAlignment = 0;
+
   // Alignment of this struct.
-  int allignment = 0;
+  int alignment = 0;
 
   bool get _isPacked {
-    if (!hasAttr || isInComplete) return false;
+    if (!hasAttr || isIncomplete) return false;
     if (hasPackedAttr) return true;
 
-    return maxChildAlignment > allignment;
+    return maxChildAlignment > alignment;
   }
 
   /// Returns pack value of a struct depending on config, returns null for no
   /// packing.
   int? get packValue {
-    if (compound!.isStruct && _isPacked) {
-      if (strings.packingValuesMap.containsKey(allignment)) {
-        return allignment;
+    if (compound.isStruct && _isPacked && !isIncomplete) {
+      if (strings.packingValuesMap.containsKey(alignment)) {
+        return alignment;
       } else {
         _logger.warning(
-            'Unsupported pack value "$allignment" for Struct "${compound!.name}".');
+            'Unsupported pack value "$alignment" for Struct "${compound.name}".');
         return null;
       }
     } else {
       return null;
     }
   }
-
-  _ParsedCompound();
 }
 
 final _stack = Stack<_ParsedCompound>();
@@ -74,7 +84,6 @@
 Compound? parseCompoundDeclaration(
   clang_types.CXCursor cursor,
   CompoundType compoundType, {
-
   /// Option to ignore declaration filter (Useful in case of extracting
   /// declarations when they are passed/returned by an included function.)
   bool ignoreFilter = false,
@@ -83,38 +92,23 @@
   /// generate these as opaque if `dependency-only` was set to opaque).
   bool pointerReference = false,
 }) {
-  _stack.push(_ParsedCompound());
-
   // Set includer functions according to compoundType.
   final bool Function(String, String) shouldIncludeDecl;
-  final bool Function(String) isSeenDecl;
-  final Compound? Function(String) getSeenDecl;
-  final void Function(String, Compound) addDeclToSeen;
   final Declaration configDecl;
-  final String className;
+  final String className = _compoundTypeDebugName(compoundType);
   switch (compoundType) {
     case CompoundType.struct:
       shouldIncludeDecl = shouldIncludeStruct;
-      isSeenDecl = bindingsIndex.isSeenStruct;
-      getSeenDecl = bindingsIndex.getSeenStruct;
-      addDeclToSeen = bindingsIndex.addStructToSeen;
       configDecl = config.structDecl;
-      className = 'Struct';
       break;
     case CompoundType.union:
       shouldIncludeDecl = shouldIncludeUnion;
-      isSeenDecl = bindingsIndex.isSeenUnion;
-      getSeenDecl = bindingsIndex.getSeenUnion;
-      addDeclToSeen = bindingsIndex.addUnionToSeen;
       configDecl = config.unionDecl;
-      className = 'Union';
       break;
   }
 
   // Parse the cursor definition instead, if this is a forward declaration.
-  if (isForwardDeclaration(cursor)) {
-    cursor = clang.clang_getCursorDefinition(cursor);
-  }
+  cursor = cursorIndex.getDefinition(cursor);
   final declUsr = cursor.usr();
   final String declName;
 
@@ -134,110 +128,111 @@
     if (ignoreFilter) {
       // This declaration is defined inside some other declaration and hence
       // must be generated.
-      _stack.top.compound = Compound.fromType(
+      return Compound.fromType(
         type: compoundType,
         name: incrementalNamer.name('Unnamed$className'),
         usr: declUsr,
         dartDoc: getCursorDocComment(cursor),
       );
-      _setMembers(cursor, className);
     } else {
       _logger.finest('unnamed $className declaration');
     }
-  } else if ((ignoreFilter || shouldIncludeDecl(declUsr, declName)) &&
-      (!isSeenDecl(declUsr))) {
+  } else if (ignoreFilter || shouldIncludeDecl(declUsr, declName)) {
     _logger.fine(
         '++++ Adding $className: Name: $declName, ${cursor.completeStringRepr()}');
-    _stack.top.compound = Compound.fromType(
+    return Compound.fromType(
       type: compoundType,
       usr: declUsr,
       originalName: declName,
       name: configDecl.renameUsingConfig(declName),
       dartDoc: getCursorDocComment(cursor),
     );
-    // Adding to seen here to stop recursion if a declaration has itself as a
-    // member, members are updated later.
-    addDeclToSeen(declUsr, _stack.top.compound!);
   }
-
-  if (isSeenDecl(declUsr)) {
-    _stack.top.compound = getSeenDecl(declUsr);
-
-    // Skip dependencies if already seen OR user has specified `dependency-only`
-    // as opaque AND this is a pointer reference AND the declaration was not
-    // included according to config (ignoreFilter).
-    final skipDependencies = _stack.top.compound!.parsedDependencies ||
-        (pointerReference &&
-            ignoreFilter &&
-            ((compoundType == CompoundType.struct &&
-                    config.structDependencies == CompoundDependencies.opaque) ||
-                (compoundType == CompoundType.union &&
-                    config.unionDependencies == CompoundDependencies.opaque)));
-
-    if (!skipDependencies) {
-      // Prevents infinite recursion if struct has a pointer to itself.
-      _stack.top.compound!.parsedDependencies = true;
-      _setMembers(cursor, className);
-    } else if (!_stack.top.compound!.parsedDependencies) {
-      _logger.fine('Skipped dependencies.');
-    }
-  }
-
-  return _stack.pop().compound;
+  return null;
 }
 
-void _setMembers(clang_types.CXCursor cursor, String className) {
-  _stack.top.hasAttr = clang.clang_Cursor_hasAttrs(cursor) != 0;
-  _stack.top.allignment = cursor.type().alignment();
+void fillCompoundMembersIfNeeded(
+  Compound compound,
+  clang_types.CXCursor cursor, {
+  /// Option to ignore declaration filter (Useful in case of extracting
+  /// declarations when they are passed/returned by an included function.)
+  bool ignoreFilter = false,
 
+  /// To track if the declaration was used by reference(i.e T*). (Used to only
+  /// generate these as opaque if `dependency-only` was set to opaque).
+  bool pointerReference = false,
+}) {
+  cursor = cursorIndex.getDefinition(cursor);
+  final compoundType = compound.compoundType;
+
+  // Skip dependencies if already seen OR user has specified `dependency-only`
+  // as opaque AND this is a pointer reference AND the declaration was not
+  // included according to config (ignoreFilter).
+  final skipDependencies = compound.parsedDependencies ||
+      (pointerReference &&
+          ignoreFilter &&
+          ((compoundType == CompoundType.struct &&
+                  config.structDependencies == CompoundDependencies.opaque) ||
+              (compoundType == CompoundType.union &&
+                  config.unionDependencies == CompoundDependencies.opaque)));
+  if (skipDependencies) return;
+
+  final parsed = _ParsedCompound(compound);
+  final String className = _compoundTypeDebugName(compoundType);
+  parsed.hasAttr = clang.clang_Cursor_hasAttrs(cursor) != 0;
+  parsed.alignment = cursor.type().alignment();
+  compound.parsedDependencies = true; // Break cycles.
+
+  _stack.push(parsed);
   final resultCode = clang.clang_visitChildren(
     cursor,
-    Pointer.fromFunction(_compoundMembersVisitor, exceptional_visitor_return),
+    _compoundMembersVisitorPtr ??= Pointer.fromFunction(
+        _compoundMembersVisitor, exceptional_visitor_return),
     nullptr,
   );
+  _stack.pop();
 
   _logger.finest(
-      'Opaque: ${_stack.top.isInComplete}, HasAttr: ${_stack.top.hasAttr}, AlignValue: ${_stack.top.allignment}, MaxChildAlignValue: ${_stack.top.maxChildAlignment}, PackValue: ${_stack.top.packValue}.');
-  _stack.top.compound!.pack = _stack.top.packValue;
+      'Opaque: ${parsed.isIncomplete}, HasAttr: ${parsed.hasAttr}, AlignValue: ${parsed.alignment}, MaxChildAlignValue: ${parsed.maxChildAlignment}, PackValue: ${parsed.packValue}.');
+  compound.pack = parsed.packValue;
 
   visitChildrenResultChecker(resultCode);
 
-  if (_stack.top.unimplementedMemberType) {
+  if (parsed.unimplementedMemberType) {
     _logger.fine(
         '---- Removed $className members, reason: member with unimplementedtype ${cursor.completeStringRepr()}');
     _logger.warning(
-        'Removed All $className Members from ${_stack.top.compound!.name}(${_stack.top.compound!.originalName}), struct member has an unsupported type.');
-  } else if (_stack.top.flexibleArrayMember) {
+        'Removed All $className Members from ${compound.name}(${compound.originalName}), struct member has an unsupported type.');
+  } else if (parsed.flexibleArrayMember) {
     _logger.fine(
         '---- Removed $className members, reason: incomplete array member ${cursor.completeStringRepr()}');
     _logger.warning(
-        'Removed All $className Members from ${_stack.top.compound!.name}(${_stack.top.compound!.originalName}), Flexible array members not supported.');
-  } else if (_stack.top.bitFieldMember) {
+        'Removed All $className Members from ${compound.name}(${compound.originalName}), Flexible array members not supported.');
+  } else if (parsed.bitFieldMember) {
     _logger.fine(
         '---- Removed $className members, reason: bitfield members ${cursor.completeStringRepr()}');
     _logger.warning(
-        'Removed All $className Members from ${_stack.top.compound!.name}(${_stack.top.compound!.originalName}), Bit Field members not supported.');
-  } else if (_stack.top.dartHandleMember && config.useDartHandle) {
+        'Removed All $className Members from ${compound.name}(${compound.originalName}), Bit Field members not supported.');
+  } else if (parsed.dartHandleMember && config.useDartHandle) {
     _logger.fine(
         '---- Removed $className members, reason: Dart_Handle member. ${cursor.completeStringRepr()}');
     _logger.warning(
-        'Removed All $className Members from ${_stack.top.compound!.name}(${_stack.top.compound!.originalName}), Dart_Handle member not supported.');
-  } else if (_stack.top.incompleteCompoundMember) {
+        'Removed All $className Members from ${compound.name}(${compound.originalName}), Dart_Handle member not supported.');
+  } else if (parsed.incompleteCompoundMember) {
     _logger.fine(
         '---- Removed $className members, reason: Incomplete Nested Struct member. ${cursor.completeStringRepr()}');
     _logger.warning(
-        'Removed All $className Members from ${_stack.top.compound!.name}(${_stack.top.compound!.originalName}), Incomplete Nested Struct member not supported.');
+        'Removed All $className Members from ${compound.name}(${compound.originalName}), Incomplete Nested Struct member not supported.');
   }
 
   // Clear all members if declaration is incomplete.
-  if (_stack.top.isInComplete) {
-    _stack.top.compound!.members.clear();
+  if (parsed.isIncomplete) {
+    compound.members.clear();
   }
 
   // C allows empty structs/union, but it's undefined behaviour at runtine.
   // So we need to mark a declaration incomplete if it has no members.
-  _stack.top.compound!.isInComplete =
-      _stack.top.isInComplete || _stack.top.compound!.members.isEmpty;
+  compound.isIncomplete = parsed.isIncomplete || compound.members.isEmpty;
 }
 
 /// Visitor for the struct/union cursor [CXCursorKind.CXCursor_StructDecl]/
@@ -246,51 +241,86 @@
 /// Child visitor invoked on struct/union cursor.
 int _compoundMembersVisitor(clang_types.CXCursor cursor,
     clang_types.CXCursor parent, Pointer<Void> clientData) {
+  final parsed = _stack.top;
   try {
-    if (cursor.kind == clang_types.CXCursorKind.CXCursor_FieldDecl) {
-      _logger.finer('===== member: ${cursor.completeStringRepr()}');
+    switch (cursor.kind) {
+      case clang_types.CXCursorKind.CXCursor_FieldDecl:
+        _logger.finer('===== member: ${cursor.completeStringRepr()}');
 
-      // Set maxChildAlignValue.
-      final align = cursor.type().alignment();
-      if (align > _stack.top.maxChildAlignment) {
-        _stack.top.maxChildAlignment = align;
-      }
+        // Set maxChildAlignValue.
+        final align = cursor.type().alignment();
+        if (align > parsed.maxChildAlignment) {
+          parsed.maxChildAlignment = align;
+        }
 
-      final mt = cursor.type().toCodeGenType();
-      if (mt.broadType == BroadType.IncompleteArray) {
-        // TODO(68): Structs with flexible Array Members are not supported.
-        _stack.top.flexibleArrayMember = true;
-      }
-      if (clang.clang_getFieldDeclBitWidth(cursor) != -1) {
-        // TODO(84): Struct with bitfields are not suppoorted.
-        _stack.top.bitFieldMember = true;
-      }
-      if (mt.broadType == BroadType.Handle) {
-        _stack.top.dartHandleMember = true;
-      }
-      if (mt.isIncompleteCompound) {
-        _stack.top.incompleteCompoundMember = true;
-      }
-      if (mt.getBaseType().broadType == BroadType.Unimplemented) {
-        _stack.top.unimplementedMemberType = true;
-      }
-
-      _stack.top.compound!.members.add(
-        Member(
-          dartDoc: getCursorDocComment(
-            cursor,
-            nesting.length + commentPrefix.length,
+        final mt = cursor.toCodeGenType();
+        if (mt is IncompleteArray) {
+          // TODO(68): Structs with flexible Array Members are not supported.
+          parsed.flexibleArrayMember = true;
+        }
+        if (clang.clang_getFieldDeclBitWidth(cursor) != -1) {
+          // TODO(84): Struct with bitfields are not suppoorted.
+          parsed.bitFieldMember = true;
+        }
+        if (mt is HandleType) {
+          parsed.dartHandleMember = true;
+        }
+        if (mt.isIncompleteCompound) {
+          parsed.incompleteCompoundMember = true;
+        }
+        if (mt.baseType is UnimplementedType) {
+          parsed.unimplementedMemberType = true;
+        }
+        parsed.compound.members.add(
+          Member(
+            dartDoc: getCursorDocComment(
+              cursor,
+              nesting.length + commentPrefix.length,
+            ),
+            originalName: cursor.spelling(),
+            name: config.structDecl.renameMemberUsingConfig(
+              parsed.compound.originalName,
+              cursor.spelling(),
+            ),
+            type: mt,
           ),
-          originalName: cursor.spelling(),
-          name: config.structDecl.renameMemberUsingConfig(
-            _stack.top.compound!.originalName,
-            cursor.spelling(),
+        );
+
+        break;
+
+      case clang_types.CXCursorKind.CXCursor_PackedAttr:
+        parsed.hasPackedAttr = true;
+
+        break;
+      case clang_types.CXCursorKind.CXCursor_UnionDecl:
+      case clang_types.CXCursorKind.CXCursor_StructDecl:
+        final mt = cursor.toCodeGenType();
+
+        // If the union/struct are anonymous, then we need to add them now,
+        // otherwise they will be added in the next iteration.
+        if (!cursor.isAnonymousRecordDecl()) break;
+
+        // Anonymous members are always unnamed. To avoid environment-
+        // dependent naming issues with the generated code, we explicitly
+        // use the empty string as spelling.
+        final spelling = '';
+
+        parsed.compound.members.add(
+          Member(
+            dartDoc: getCursorDocComment(
+              cursor,
+              nesting.length + commentPrefix.length,
+            ),
+            originalName: spelling,
+            name: config.structDecl.renameMemberUsingConfig(
+              parsed.compound.originalName,
+              spelling,
+            ),
+            type: mt,
           ),
-          type: mt,
-        ),
-      );
-    } else if (cursor.kind == clang_types.CXCursorKind.CXCursor_PackedAttr) {
-      _stack.top.hasPackedAttr = true;
+        );
+
+        break;
     }
   } catch (e, s) {
     _logger.severe(e);
@@ -299,3 +329,7 @@
   }
   return clang_types.CXChildVisitResult.CXChildVisit_Continue;
 }
+
+String _compoundTypeDebugName(CompoundType compoundType) {
+  return compoundType == CompoundType.struct ? "Struct" : "Union";
+}
diff --git a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
index c4b2ab8..e66781c 100644
--- a/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/enumdecl_parser.dart
@@ -10,12 +10,17 @@
 import 'package:logging/logging.dart';
 
 import '../clang_bindings/clang_bindings.dart' as clang_types;
-import '../data.dart';
 import '../includer.dart';
 import '../utils.dart';
 
 final _logger = Logger('ffigen.header_parser.enumdecl_parser');
 
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _enumCursorVisitorPtr;
+
 /// Holds temporary information regarding [EnumClass] while parsing.
 class _ParsedEnum {
   EnumClass? enumClass;
@@ -27,7 +32,6 @@
 /// Parses an enum declaration.
 EnumClass? parseEnumDeclaration(
   clang_types.CXCursor cursor, {
-
   /// Option to ignore declaration filter (Useful in case of extracting
   /// declarations when they are passed/returned by an included function.)
   bool ignoreFilter = false,
@@ -35,9 +39,7 @@
   _stack.push(_ParsedEnum());
 
   // Parse the cursor definition instead, if this is a forward declaration.
-  if (isForwardDeclaration(cursor)) {
-    cursor = clang.clang_getCursorDefinition(cursor);
-  }
+  cursor = cursorIndex.getDefinition(cursor);
 
   final enumUsr = cursor.usr();
   final String enumName;
@@ -54,8 +56,7 @@
   if (enumName.isEmpty) {
     _logger.fine('Saving anonymous enum.');
     saveUnNamedEnum(cursor);
-  } else if ((ignoreFilter || shouldIncludeEnumClass(enumUsr, enumName)) &&
-      (!bindingsIndex.isSeenEnumClass(enumUsr))) {
+  } else if (ignoreFilter || shouldIncludeEnumClass(enumUsr, enumName)) {
     _logger.fine('++++ Adding Enum: ${cursor.completeStringRepr()}');
     _stack.top.enumClass = EnumClass(
       usr: enumUsr,
@@ -63,12 +64,8 @@
       originalName: enumName,
       name: config.enumClassDecl.renameUsingConfig(enumName),
     );
-    bindingsIndex.addEnumClassToSeen(enumUsr, _stack.top.enumClass!);
     _addEnumConstant(cursor);
   }
-  if (bindingsIndex.isSeenEnumClass(enumUsr)) {
-    _stack.top.enumClass = bindingsIndex.getSeenEnumClass(enumUsr);
-  }
 
   return _stack.pop().enumClass;
 }
@@ -76,7 +73,8 @@
 void _addEnumConstant(clang_types.CXCursor cursor) {
   final resultCode = clang.clang_visitChildren(
     cursor,
-    Pointer.fromFunction(_enumCursorVisitor, exceptional_visitor_return),
+    _enumCursorVisitorPtr ??=
+        Pointer.fromFunction(_enumCursorVisitor, exceptional_visitor_return),
     nullptr,
   );
 
@@ -95,6 +93,9 @@
       case clang_types.CXCursorKind.CXCursor_EnumConstantDecl:
         _addEnumConstantToEnumClass(cursor);
         break;
+      case clang_types.CXCursorKind.CXCursor_UnexposedAttr:
+        // Ignore.
+        break;
       default:
         _logger.fine('invalid enum constant');
     }
diff --git a/lib/src/header_parser/sub_parsers/function_type_param_parser.dart b/lib/src/header_parser/sub_parsers/function_type_param_parser.dart
new file mode 100644
index 0000000..739b3b1
--- /dev/null
+++ b/lib/src/header_parser/sub_parsers/function_type_param_parser.dart
@@ -0,0 +1,54 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+import '../clang_bindings/clang_bindings.dart';
+import '../data.dart';
+import '../utils.dart';
+
+/// This type holds the list of `ParmDecl` nodes of a function type declaration.
+class FunctionTypeParams {
+  final List<String> paramNames;
+  final Map<String, CXCursor> params;
+  FunctionTypeParams()
+      : paramNames = [],
+        params = {};
+}
+
+FunctionTypeParams? _params;
+
+int _functionPointerFieldVisitor(
+    CXCursor cursor, CXCursor parent, Pointer<Void> clientData) {
+  if (cursor.kind == CXCursorKind.CXCursor_ParmDecl) {
+    final spelling = cursor.spelling();
+    if (spelling.isNotEmpty) {
+      _params!.paramNames.add(spelling);
+      _params!.params[spelling] = cursor;
+      return CXChildVisitResult.CXChildVisit_Continue;
+    } else {
+      // A parameter's spelling is empty, do not continue further traversal.
+      _params!.paramNames.clear();
+      _params!.params.clear();
+      return CXChildVisitResult.CXChildVisit_Break;
+    }
+  }
+  // The cursor itself may be a pointer etc..
+  return CXChildVisitResult.CXChildVisit_Recurse;
+}
+
+/// Returns `ParmDecl` nodes of function pointer declaration
+/// directly or indirectly pointed to by [cursor].
+FunctionTypeParams parseFunctionPointerParamNames(CXCursor cursor) {
+  _params = FunctionTypeParams();
+  clang.clang_visitChildren(
+    cursor,
+    Pointer.fromFunction(
+        _functionPointerFieldVisitor, exceptional_visitor_return),
+    nullptr,
+  );
+  final result = _params;
+  _params = null;
+  return result!;
+}
diff --git a/lib/src/header_parser/sub_parsers/functiondecl_parser.dart b/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
index 3b8cd63..d2d3412 100644
--- a/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/functiondecl_parser.dart
@@ -35,34 +35,34 @@
     final parameters = _getParameters(cursor, funcName);
 
     if (clang.clang_Cursor_isFunctionInlined(cursor) != 0) {
-      _logger.fine(
-          '---- Removed Function, reason: inline function: ${cursor.completeStringRepr()}');
+      _logger.fine('---- Removed Function, reason: inline function: '
+          '${cursor.completeStringRepr()}');
       _logger.warning(
           "Skipped Function '$funcName', inline functions are not supported.");
-      return _stack
-          .pop()
-          .func; // Returning null so that [addToBindings] function excludes this.
+      // Returning null so that [addToBindings] function excludes this.
+      return _stack.pop().func;
     }
 
     if (rt.isIncompleteCompound || _stack.top.incompleteStructParameter) {
       _logger.fine(
-          '---- Removed Function, reason: Incomplete struct pass/return by value: ${cursor.completeStringRepr()}');
+          '---- Removed Function, reason: Incomplete struct pass/return by '
+          'value: ${cursor.completeStringRepr()}');
       _logger.warning(
-          "Skipped Function '$funcName', Incomplete struct pass/return by value not supported.");
-      return _stack
-          .pop()
-          .func; // Returning null so that [addToBindings] function excludes this.
+          "Skipped Function '$funcName', Incomplete struct pass/return by "
+          'value not supported.');
+      // Returning null so that [addToBindings] function excludes this.
+      return _stack.pop().func;
     }
 
-    if (rt.getBaseType().broadType == BroadType.Unimplemented ||
+    if (rt.baseType is UnimplementedType ||
         _stack.top.unimplementedParameterType) {
-      _logger.fine(
-          '---- Removed Function, reason: unsupported return type or parameter type: ${cursor.completeStringRepr()}');
+      _logger.fine('---- Removed Function, reason: unsupported return type or '
+          'parameter type: ${cursor.completeStringRepr()}');
       _logger.warning(
-          "Skipped Function '$funcName', function has unsupported return type or parameter type.");
-      return _stack
-          .pop()
-          .func; // Returning null so that [addToBindings] function excludes this.
+          "Skipped Function '$funcName', function has unsupported return type "
+          'or parameter type.');
+      // Returning null so that [addToBindings] function excludes this.
+      return _stack.pop().func;
     }
 
     _stack.top.func = Func(
@@ -80,6 +80,7 @@
       exposeFunctionTypedefs:
           config.exposeFunctionTypedefs.shouldInclude(funcName),
       isLeaf: config.leafFunctions.shouldInclude(funcName),
+      ffiNativeConfig: config.ffiNativeConfig,
     );
     bindingsIndex.addFuncToSeen(funcUsr, _stack.top.func!);
   } else if (bindingsIndex.isSeenFunc(funcUsr)) {
@@ -105,9 +106,8 @@
     final pt = _getParameterType(paramCursor);
     if (pt.isIncompleteCompound) {
       _stack.top.incompleteStructParameter = true;
-    } else if (pt.getBaseType().broadType == BroadType.Unimplemented) {
-      _logger
-          .finer('Unimplemented type: ${pt.getBaseType().unimplementedReason}');
+    } else if (pt.baseType is UnimplementedType) {
+      _logger.finer('Unimplemented type: ${pt.baseType}');
       _stack.top.unimplementedParameterType = true;
     }
 
@@ -127,5 +127,5 @@
 }
 
 Type _getParameterType(clang_types.CXCursor cursor) {
-  return cursor.type().toCodeGenType();
+  return cursor.toCodeGenType();
 }
diff --git a/lib/src/header_parser/sub_parsers/macro_parser.dart b/lib/src/header_parser/sub_parsers/macro_parser.dart
index 68bc080..535e46d 100644
--- a/lib/src/header_parser/sub_parsers/macro_parser.dart
+++ b/lib/src/header_parser/sub_parsers/macro_parser.dart
@@ -15,11 +15,16 @@
 import 'package:path/path.dart' as p;
 
 import '../clang_bindings/clang_bindings.dart' as clang_types;
-import '../data.dart';
 import '../utils.dart';
 
 final _logger = Logger('ffigen.header_parser.macro_parser');
 
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _macroVariablevisitorPtr;
+
 /// Adds a macro definition to be parsed later.
 void saveMacroDefinition(clang_types.CXCursor cursor) {
   final macroUsr = cursor.usr();
@@ -61,7 +66,10 @@
   final index = clang.clang_createIndex(0, 0);
   Pointer<Pointer<Utf8>> clangCmdArgs = nullptr;
   var cmdLen = 0;
-  clangCmdArgs = createDynamicStringArray(config.compilerOpts);
+
+  final compilerOpts = config.compilerOpts;
+  clangCmdArgs = createDynamicStringArray(compilerOpts);
+
   cmdLen = config.compilerOpts.length;
   final tu = clang.clang_parseTranslationUnit(
     index,
@@ -76,11 +84,13 @@
   if (tu == nullptr) {
     _logger.severe('Unable to parse Macros.');
   } else {
+    logTuDiagnostics(tu, _logger, file.path, logLevel: Level.FINEST);
     final rootCursor = clang.clang_getTranslationUnitCursor(tu);
 
     final resultCode = clang.clang_visitChildren(
       rootCursor,
-      Pointer.fromFunction(_macroVariablevisitor, exceptional_visitor_return),
+      _macroVariablevisitorPtr ??= Pointer.fromFunction(
+          _macroVariablevisitor, exceptional_visitor_return),
       nullptr,
     );
 
@@ -173,7 +183,7 @@
 
 /// Creates a temporary file for parsing macros in current directory.
 File createFileForMacros() {
-  final fileNameBase = 'temp_for_macros';
+  final fileNameBase = p.join(strings.tmpDir, 'temp_for_macros');
   final fileExt = 'hpp';
 
   // Find a filename which doesn't already exist.
@@ -181,18 +191,20 @@
   var i = 0;
   while (file.existsSync()) {
     i++;
-    file = File('${fileNameBase.split('.')[0]}_$i.$fileExt');
+    file = File('${fileNameBase}_$i.$fileExt');
   }
 
   // Create file.
   file.createSync();
-  // Save generted name.
+
+  // Save generated name.
   _generatedFileBaseName = p.basename(file.path);
 
   // Write file contents.
   final sb = StringBuffer();
   for (final h in config.headers.entryPoints) {
-    sb.writeln('#include "$h"');
+    final fullHeaderPath = File(h).absolute.path;
+    sb.writeln('#include "$fullHeaderPath"');
   }
 
   _macroVarNames = {};
@@ -239,7 +251,7 @@
 /// E.g- For a string "Hello\nWorld", The new line character is converted to \n.
 /// Note: The string is considered to be Utf8, but is treated as Extended ASCII,
 /// if the conversion fails.
-String _getWrittenRepresentation(String macroName, Pointer<Int8> strPtr) {
+String _getWrittenRepresentation(String macroName, Pointer<Char> strPtr) {
   final sb = StringBuffer();
   try {
     // Consider string to be Utf8 encoded by default.
diff --git a/lib/src/header_parser/sub_parsers/objc_block_parser.dart b/lib/src/header_parser/sub_parsers/objc_block_parser.dart
new file mode 100644
index 0000000..f7ac662
--- /dev/null
+++ b/lib/src/header_parser/sub_parsers/objc_block_parser.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser/data.dart';
+import 'package:logging/logging.dart';
+
+import '../clang_bindings/clang_bindings.dart' as clang_types;
+import '../utils.dart';
+
+final _logger = Logger('ffigen.header_parser.objc_block_parser');
+
+ObjCBlock parseObjCBlock(clang_types.CXType cxtype) {
+  final blk = clang.clang_getPointeeType(cxtype);
+  final returnType = clang.clang_getResultType(blk).toCodeGenType();
+  final argTypes = <Type>[];
+  final int numArgs = clang.clang_getNumArgTypes(blk);
+  for (int i = 0; i < numArgs; ++i) {
+    argTypes.add(clang.clang_getArgType(blk, i).toCodeGenType());
+  }
+
+  // Create a fake USR code for the block. This code is used to dedupe blocks
+  // with the same signature.
+  var usr = 'objcBlock: ${returnType.cacheKey()}';
+  for (final type in argTypes) {
+    usr += ' ${type.cacheKey()}';
+  }
+
+  _logger.fine('++++ Adding ObjC block: '
+      '${cxtype.completeStringRepr()}, syntheticUsr: $usr');
+
+  return ObjCBlock(
+    usr: usr.toString(),
+    name: 'ObjCBlock',
+    returnType: returnType,
+    argTypes: argTypes,
+    builtInFunctions: objCBuiltInFunctions,
+  );
+}
diff --git a/lib/src/header_parser/sub_parsers/objcinterfacedecl_parser.dart b/lib/src/header_parser/sub_parsers/objcinterfacedecl_parser.dart
new file mode 100644
index 0000000..5721905
--- /dev/null
+++ b/lib/src/header_parser/sub_parsers/objcinterfacedecl_parser.dart
@@ -0,0 +1,355 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser/data.dart';
+import 'package:logging/logging.dart';
+
+import '../clang_bindings/clang_bindings.dart' as clang_types;
+import '../includer.dart';
+import '../utils.dart';
+
+final _logger = Logger('ffigen.header_parser.objcinterfacedecl_parser');
+
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _parseInterfaceVisitorPtr;
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _isClassDeclarationVisitorPtr;
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _parseMethodVisitorPtr;
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _findCategoryInterfaceVisitorPtr;
+
+class _ParsedObjCInterface {
+  ObjCInterface interface;
+  _ParsedObjCInterface(this.interface);
+}
+
+class _ParsedObjCMethod {
+  ObjCMethod method;
+  bool hasError = false;
+  _ParsedObjCMethod(this.method);
+}
+
+final _interfaceStack = Stack<_ParsedObjCInterface>();
+final _methodStack = Stack<_ParsedObjCMethod>();
+
+Type? parseObjCInterfaceDeclaration(
+  clang_types.CXCursor cursor, {
+  /// Option to ignore declaration filter (Useful in case of extracting
+  /// declarations when they are passed/returned by an included function.)
+  bool ignoreFilter = false,
+}) {
+  final itfUsr = cursor.usr();
+  final itfName = cursor.spelling();
+  if (!ignoreFilter && !shouldIncludeObjCInterface(itfUsr, itfName)) {
+    return null;
+  }
+
+  final t = cursor.type();
+  final name = t.spelling();
+
+  _logger.fine('++++ Adding ObjC interface: '
+      'Name: $name, ${cursor.completeStringRepr()}');
+
+  return ObjCInterface(
+    usr: itfUsr,
+    originalName: name,
+    name: config.objcInterfaces.renameUsingConfig(name),
+    lookupName: config.objcModulePrefixer.applyPrefix(name),
+    dartDoc: getCursorDocComment(cursor),
+    builtInFunctions: objCBuiltInFunctions,
+  );
+}
+
+void fillObjCInterfaceMethodsIfNeeded(
+    ObjCInterface itf, clang_types.CXCursor cursor) {
+  if (_isClassDeclaration(cursor)) {
+    // @class declarations are ObjC's way of forward declaring classes. In that
+    // case there's nothing to fill yet.
+    return;
+  }
+
+  if (itf.filled) return;
+  itf.filled = true; // Break cycles.
+
+  _logger.fine('++++ Filling ObjC interface: '
+      'Name: ${itf.originalName}, ${cursor.completeStringRepr()}');
+
+  _interfaceStack.push(_ParsedObjCInterface(itf));
+  clang.clang_visitChildren(
+      cursor,
+      _parseInterfaceVisitorPtr ??= Pointer.fromFunction(
+          _parseInterfaceVisitor, exceptional_visitor_return),
+      nullptr);
+  _interfaceStack.pop();
+
+  _logger.fine('++++ Finished ObjC interface: '
+      'Name: ${itf.originalName}, ${cursor.completeStringRepr()}');
+}
+
+bool _isClassDeclarationResult = false;
+bool _isClassDeclaration(clang_types.CXCursor cursor) {
+  // It's a class declaration if it has no children other than ObjCClassRef.
+  _isClassDeclarationResult = true;
+  clang.clang_visitChildren(
+      cursor,
+      _isClassDeclarationVisitorPtr ??= Pointer.fromFunction(
+          _isClassDeclarationVisitor, exceptional_visitor_return),
+      nullptr);
+  return _isClassDeclarationResult;
+}
+
+int _isClassDeclarationVisitor(clang_types.CXCursor cursor,
+    clang_types.CXCursor parent, Pointer<Void> clientData) {
+  if (cursor.kind == clang_types.CXCursorKind.CXCursor_ObjCClassRef) {
+    return clang_types.CXChildVisitResult.CXChildVisit_Continue;
+  }
+  _isClassDeclarationResult = false;
+  return clang_types.CXChildVisitResult.CXChildVisit_Break;
+}
+
+int _parseInterfaceVisitor(clang_types.CXCursor cursor,
+    clang_types.CXCursor parent, Pointer<Void> clientData) {
+  switch (cursor.kind) {
+    case clang_types.CXCursorKind.CXCursor_ObjCSuperClassRef:
+      _parseSuperType(cursor);
+      break;
+    case clang_types.CXCursorKind.CXCursor_ObjCPropertyDecl:
+      _parseProperty(cursor);
+      break;
+    case clang_types.CXCursorKind.CXCursor_ObjCInstanceMethodDecl:
+    case clang_types.CXCursorKind.CXCursor_ObjCClassMethodDecl:
+      _parseMethod(cursor);
+      break;
+  }
+  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
+}
+
+void _parseSuperType(clang_types.CXCursor cursor) {
+  final superType = cursor.type().toCodeGenType();
+  _logger.fine('       > Super type: '
+      '$superType ${cursor.completeStringRepr()}');
+  final itf = _interfaceStack.top.interface;
+  if (superType is ObjCInterface) {
+    itf.superType = superType;
+  } else {
+    _logger.severe(
+        'Super type of $itf is $superType, which is not a valid interface.');
+  }
+}
+
+void _parseProperty(clang_types.CXCursor cursor) {
+  final itf = _interfaceStack.top.interface;
+  final fieldName = cursor.spelling();
+  final fieldType = cursor.type().toCodeGenType();
+
+  if (fieldType.isIncompleteCompound) {
+    _logger.warning('Property "$fieldName" in instance "${itf.originalName}" '
+        'has incomplete type: $fieldType.');
+    return;
+  }
+
+  final dartDoc = getCursorDocComment(cursor);
+
+  final propertyAttributes =
+      clang.clang_Cursor_getObjCPropertyAttributes(cursor, 0);
+  final isClass = propertyAttributes &
+          clang_types.CXObjCPropertyAttrKind.CXObjCPropertyAttr_class >
+      0;
+  final isReadOnly = propertyAttributes &
+          clang_types.CXObjCPropertyAttrKind.CXObjCPropertyAttr_readonly >
+      0;
+  // TODO(#334): Use the nullable attribute to decide this.
+  final isNullable =
+      cursor.type().kind == clang_types.CXTypeKind.CXType_ObjCObjectPointer;
+
+  final property = ObjCProperty(fieldName);
+
+  _logger.fine('       > Property: '
+      '$fieldType $fieldName ${cursor.completeStringRepr()}');
+
+  final getterName =
+      clang.clang_Cursor_getObjCPropertyGetterName(cursor).toStringAndDispose();
+  final getter = ObjCMethod(
+    originalName: getterName,
+    property: property,
+    dartDoc: dartDoc,
+    kind: ObjCMethodKind.propertyGetter,
+    isClass: isClass,
+    returnType: fieldType,
+    isNullableReturn: isNullable,
+  );
+  itf.addMethod(getter);
+
+  if (!isReadOnly) {
+    final setterName = clang
+        .clang_Cursor_getObjCPropertySetterName(cursor)
+        .toStringAndDispose();
+    final setter = ObjCMethod(
+        originalName: setterName,
+        property: property,
+        dartDoc: dartDoc,
+        kind: ObjCMethodKind.propertySetter,
+        isClass: isClass,
+        returnType: NativeType(SupportedNativeType.Void));
+    setter.params
+        .add(ObjCMethodParam(fieldType, 'value', isNullable: isNullable));
+    itf.addMethod(setter);
+  }
+}
+
+void _parseMethod(clang_types.CXCursor cursor) {
+  final methodName = cursor.spelling();
+  final isClassMethod =
+      cursor.kind == clang_types.CXCursorKind.CXCursor_ObjCClassMethodDecl;
+  final returnType = clang.clang_getCursorResultType(cursor).toCodeGenType();
+  if (returnType.isIncompleteCompound) {
+    _logger.warning('Method "$methodName" in instance '
+        '"${_interfaceStack.top.interface.originalName}" has incomplete '
+        'return type: $returnType.');
+    return;
+  }
+  final method = ObjCMethod(
+    originalName: methodName,
+    dartDoc: getCursorDocComment(cursor),
+    kind: ObjCMethodKind.method,
+    isClass: isClassMethod,
+    returnType: returnType,
+  );
+  final parsed = _ParsedObjCMethod(method);
+  _logger.fine('       > ${isClassMethod ? 'Class' : 'Instance'} method: '
+      '${method.originalName} ${cursor.completeStringRepr()}');
+  _methodStack.push(parsed);
+  clang.clang_visitChildren(
+      cursor,
+      _parseMethodVisitorPtr ??=
+          Pointer.fromFunction(_parseMethodVisitor, exceptional_visitor_return),
+      nullptr);
+  _methodStack.pop();
+  if (parsed.hasError) {
+    // Discard it.
+    return;
+  }
+  _interfaceStack.top.interface.addMethod(method);
+}
+
+int _parseMethodVisitor(clang_types.CXCursor cursor,
+    clang_types.CXCursor parent, Pointer<Void> clientData) {
+  switch (cursor.kind) {
+    case clang_types.CXCursorKind.CXCursor_ParmDecl:
+      _parseMethodParam(cursor);
+      break;
+    case clang_types.CXCursorKind.CXCursor_NSReturnsRetained:
+      _markMethodReturnsRetained(cursor);
+      break;
+    default:
+  }
+  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
+}
+
+void _parseMethodParam(clang_types.CXCursor cursor) {
+  /*
+  TODO(#334): Change this to use:
+  
+  clang.clang_Type_getNullability(cursor.type()) ==
+      clang_types.CXTypeNullabilityKind.CXTypeNullability_Nullable;
+
+  NOTE: This will only work with the
+
+    clang_types
+      .CXTranslationUnit_Flags.CXTranslationUnit_IncludeAttributedTypes
+
+  option set.
+  */
+  final parsed = _methodStack.top;
+  final isNullable =
+      cursor.type().kind == clang_types.CXTypeKind.CXType_ObjCObjectPointer;
+  final name = cursor.spelling();
+  final type = cursor.type().toCodeGenType();
+  if (type.isIncompleteCompound) {
+    parsed.hasError = true;
+    _logger.warning('Method "${parsed.method.originalName}" in instance '
+        '"${_interfaceStack.top.interface.originalName}" has incomplete '
+        'parameter type: $type.');
+    return;
+  }
+  _logger.fine(
+      '           >> Parameter: $type $name ${cursor.completeStringRepr()}');
+  parsed.method.params.add(ObjCMethodParam(type, name, isNullable: isNullable));
+}
+
+void _markMethodReturnsRetained(clang_types.CXCursor cursor) {
+  _methodStack.top.method.returnsRetained = true;
+}
+
+BindingType? parseObjCCategoryDeclaration(clang_types.CXCursor cursor) {
+  // Categories add methods to an existing interface, so first we run a visitor
+  // to find the interface, then we fully parse that interface, then we run the
+  // _parseInterfaceVisitor over the category to add its methods etc. Reusing
+  // the interface visitor relies on the fact that the structure of the category
+  // AST looks exactly the same as the interface AST, and that the category's
+  // interface is a different kind of node to the interface's super type (so is
+  // ignored by _parseInterfaceVisitor).
+  final name = cursor.spelling();
+  _logger.fine('++++ Adding ObjC category: '
+      'Name: $name, ${cursor.completeStringRepr()}');
+
+  _findCategoryInterfaceVisitorResult = null;
+  clang.clang_visitChildren(
+      cursor,
+      _findCategoryInterfaceVisitorPtr ??= Pointer.fromFunction(
+          _findCategoryInterfaceVisitor, exceptional_visitor_return),
+      nullptr);
+  final itfCursor = _findCategoryInterfaceVisitorResult;
+  if (itfCursor == null) {
+    _logger.severe('Category $name has no interface.');
+    return null;
+  }
+
+  // TODO(#347): Currently any interface with a category bypasses the filters.
+  final itf = itfCursor.type().toCodeGenType();
+  if (itf is! ObjCInterface) {
+    _logger.severe(
+        'Interface of category $name is $itf, which is not a valid interface.');
+    return null;
+  }
+
+  _interfaceStack.push(_ParsedObjCInterface(itf));
+  clang.clang_visitChildren(
+      cursor,
+      _parseInterfaceVisitorPtr ??= Pointer.fromFunction(
+          _parseInterfaceVisitor, exceptional_visitor_return),
+      nullptr);
+  _interfaceStack.pop();
+
+  _logger.fine('++++ Finished ObjC category: '
+      'Name: $name, ${cursor.completeStringRepr()}');
+
+  return itf;
+}
+
+clang_types.CXCursor? _findCategoryInterfaceVisitorResult;
+int _findCategoryInterfaceVisitor(clang_types.CXCursor cursor,
+    clang_types.CXCursor parent, Pointer<Void> clientData) {
+  if (cursor.kind == clang_types.CXCursorKind.CXCursor_ObjCClassRef) {
+    _findCategoryInterfaceVisitorResult = cursor;
+    return clang_types.CXChildVisitResult.CXChildVisit_Break;
+  }
+  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
+}
diff --git a/lib/src/header_parser/sub_parsers/typedefdecl_parser.dart b/lib/src/header_parser/sub_parsers/typedefdecl_parser.dart
index 90d5664..85df348 100644
--- a/lib/src/header_parser/sub_parsers/typedefdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/typedefdecl_parser.dart
@@ -13,8 +13,7 @@
 
 final _logger = Logger('ffigen.header_parser.typedefdecl_parser');
 
-/// Holds temporary information regarding a typedef referenced [Binding]
-/// while parsing.
+/// Parses a typedef declaration.
 ///
 /// Notes:
 /// - Pointer to Typedefs structs are skipped if the struct is seen.
@@ -30,16 +29,6 @@
 ///
 /// typedef A D; // Typeref.
 /// ```
-class _ParsedTypealias {
-  Typealias? typealias;
-  String? typedefName;
-  bool typedefToPointer = false;
-  _ParsedTypealias();
-}
-
-final _stack = Stack<_ParsedTypealias>();
-
-/// Parses a typedef declaration.
 ///
 /// Returns `null` if the typedef could not be generated or has been excluded
 /// by the config.
@@ -47,58 +36,50 @@
   clang_types.CXCursor cursor, {
   bool pointerReference = false,
 }) {
-  _stack.push(_ParsedTypealias());
   final typedefName = cursor.spelling();
   final typedefUsr = cursor.usr();
   if (shouldIncludeTypealias(typedefUsr, typedefName)) {
     final ct = clang.clang_getTypedefDeclUnderlyingType(cursor);
-    final s = getCodeGenType(ct, pointerReference: pointerReference);
+    final s = getCodeGenType(ct,
+        pointerReference: pointerReference, originalCursor: cursor);
 
     if (bindingsIndex.isSeenUnsupportedTypealias(typedefUsr)) {
       // Do not process unsupported typealiases again.
-    } else if (s.broadType == BroadType.Unimplemented) {
-      _logger
-          .fine("Skipped Typedef '$typedefName': Unimplemented type referred.");
+    } else if (s is UnimplementedType) {
+      _logger.fine("Skipped Typedef '$typedefName': "
+          'Unimplemented type referred.');
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
-    } else if (s.broadType == BroadType.Compound &&
-        s.compound!.originalName == typedefName) {
+    } else if (s is Compound && s.originalName == typedefName) {
       // Ignore typedef if it refers to a compound with the same original name.
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
-      _logger.fine(
-          "Skipped Typedef '$typedefName': Name matches with referred struct/union.");
-    } else if (s.broadType == BroadType.Enum) {
+      _logger.fine("Skipped Typedef '$typedefName': "
+          'Name matches with referred struct/union.');
+    } else if (s is EnumClass) {
       // Ignore typedefs to Enum.
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
       _logger.fine("Skipped Typedef '$typedefName': typedef to enum.");
-    } else if (s.broadType == BroadType.Handle) {
+    } else if (s is HandleType) {
       // Ignore typedefs to Handle.
       _logger.fine("Skipped Typedef '$typedefName': typedef to Dart Handle.");
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
-    } else if (s.broadType == BroadType.ConstantArray ||
-        s.broadType == BroadType.IncompleteArray) {
+    } else if (s is ConstantArray || s is IncompleteArray) {
       // Ignore typedefs to Constant Array.
       _logger.fine("Skipped Typedef '$typedefName': typedef to array.");
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
-    } else if (s.broadType == BroadType.Boolean) {
+    } else if (s is BooleanType) {
       // Ignore typedefs to Boolean.
       _logger.fine("Skipped Typedef '$typedefName': typedef to bool.");
       bindingsIndex.addUnsupportedTypealiasToSeen(typedefUsr);
     } else {
       // Create typealias.
-      _stack.top.typealias = Typealias(
+      return Typealias(
         usr: typedefUsr,
         originalName: typedefName,
         name: config.typedefs.renameUsingConfig(typedefName),
         type: s,
         dartDoc: getCursorDocComment(cursor),
       );
-      bindingsIndex.addTypealiasToSeen(typedefUsr, _stack.top.typealias!);
     }
   }
-
-  if (bindingsIndex.isSeenTypealias(typedefUsr)) {
-    _stack.top.typealias = bindingsIndex.getSeenTypealias(typedefUsr);
-  }
-
-  return _stack.pop().typealias;
+  return null;
 }
diff --git a/lib/src/header_parser/sub_parsers/unnamed_enumdecl_parser.dart b/lib/src/header_parser/sub_parsers/unnamed_enumdecl_parser.dart
index 940369a..320e084 100644
--- a/lib/src/header_parser/sub_parsers/unnamed_enumdecl_parser.dart
+++ b/lib/src/header_parser/sub_parsers/unnamed_enumdecl_parser.dart
@@ -10,16 +10,22 @@
 import 'package:logging/logging.dart';
 
 import '../clang_bindings/clang_bindings.dart' as clang_types;
-import '../data.dart';
 import '../utils.dart';
 
 final _logger = Logger('ffigen.header_parser.unnamed_enumdecl_parser');
 
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _unnamedenumCursorVisitorPtr;
+
 /// Saves unnamed enums.
 void saveUnNamedEnum(clang_types.CXCursor cursor) {
   final resultCode = clang.clang_visitChildren(
     cursor,
-    Pointer.fromFunction(_unnamedenumCursorVisitor, exceptional_visitor_return),
+    _unnamedenumCursorVisitorPtr ??= Pointer.fromFunction(
+        _unnamedenumCursorVisitor, exceptional_visitor_return),
     nullptr,
   );
 
@@ -41,6 +47,9 @@
           _addUnNamedEnumConstant(cursor);
         }
         break;
+      case clang_types.CXCursorKind.CXCursor_UnexposedAttr:
+        // Ignore.
+        break;
       default:
         _logger.severe('Invalid enum constant.');
     }
diff --git a/lib/src/header_parser/sub_parsers/var_parser.dart b/lib/src/header_parser/sub_parsers/var_parser.dart
index 9114f82..a8d46d3 100644
--- a/lib/src/header_parser/sub_parsers/var_parser.dart
+++ b/lib/src/header_parser/sub_parsers/var_parser.dart
@@ -8,7 +8,6 @@
 import 'package:logging/logging.dart';
 
 import '../clang_bindings/clang_bindings.dart' as clang_types;
-import '../data.dart';
 import '../utils.dart';
 
 final _logger = Logger('ffigen.header_parser.var_parser');
@@ -27,13 +26,19 @@
   _logger.fine('++++ Adding Global: ${cursor.completeStringRepr()}');
 
   final type = cursor.type().toCodeGenType();
-  if (type.getBaseType().broadType == BroadType.Unimplemented) {
-    _logger.fine(
-        '---- Removed Global, reason: unsupported type: ${cursor.completeStringRepr()}');
+  if (type.baseType is UnimplementedType) {
+    _logger.fine('---- Removed Global, reason: unsupported type: '
+        '${cursor.completeStringRepr()}');
     _logger.warning("Skipped global variable '$name', type not supported.");
     return null;
   }
 
+  if (config.ffiNativeConfig.enabled) {
+    _logger.warning(
+        "Skipped global variable '$name', not supported in FfiNatives.");
+    return null;
+  }
+
   final global = Global(
     originalName: name,
     name: config.globals.renameUsingConfig(name),
diff --git a/lib/src/header_parser/translation_unit_parser.dart b/lib/src/header_parser/translation_unit_parser.dart
index 9a576c0..ea9d594 100644
--- a/lib/src/header_parser/translation_unit_parser.dart
+++ b/lib/src/header_parser/translation_unit_parser.dart
@@ -6,27 +6,40 @@
 
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/header_parser/sub_parsers/macro_parser.dart';
+import 'package:ffigen/src/header_parser/sub_parsers/objcinterfacedecl_parser.dart';
 import 'package:ffigen/src/header_parser/sub_parsers/var_parser.dart';
 import 'package:logging/logging.dart';
 
 import 'clang_bindings/clang_bindings.dart' as clang_types;
 import 'data.dart';
 import 'includer.dart';
-import 'sub_parsers/compounddecl_parser.dart';
-import 'sub_parsers/enumdecl_parser.dart';
 import 'sub_parsers/functiondecl_parser.dart';
+import 'type_extractor/extractor.dart';
 import 'utils.dart';
 
 final _logger = Logger('ffigen.header_parser.translation_unit_parser');
 
 late Set<Binding> _bindings;
 
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _rootCursorVisitorPtr;
+
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _cursorDefinitionVisitorPtr;
+
 /// Parses the translation unit and returns the generated bindings.
 Set<Binding> parseTranslationUnit(clang_types.CXCursor translationUnitCursor) {
   _bindings = {};
   final resultCode = clang.clang_visitChildren(
     translationUnitCursor,
-    Pointer.fromFunction(_rootCursorVisitor, exceptional_visitor_return),
+    _rootCursorVisitorPtr ??=
+        Pointer.fromFunction(_rootCursorVisitor, exceptional_visitor_return),
     nullptr,
   );
 
@@ -46,13 +59,13 @@
           addToBindings(parseFunctionDeclaration(cursor));
           break;
         case clang_types.CXCursorKind.CXCursor_StructDecl:
-          addToBindings(parseCompoundDeclaration(cursor, CompoundType.struct));
-          break;
         case clang_types.CXCursorKind.CXCursor_UnionDecl:
-          addToBindings(parseCompoundDeclaration(cursor, CompoundType.union));
-          break;
         case clang_types.CXCursorKind.CXCursor_EnumDecl:
-          addToBindings(parseEnumDeclaration(cursor));
+        case clang_types.CXCursorKind.CXCursor_ObjCInterfaceDecl:
+          addToBindings(_getCodeGenTypeFromCursor(cursor));
+          break;
+        case clang_types.CXCursorKind.CXCursor_ObjCCategoryDecl:
+          addToBindings(parseObjCCategoryDeclaration(cursor));
           break;
         case clang_types.CXCursorKind.CXCursor_MacroDefinition:
           saveMacroDefinition(cursor);
@@ -82,3 +95,34 @@
     _bindings.add(b);
   }
 }
+
+BindingType? _getCodeGenTypeFromCursor(clang_types.CXCursor cursor) {
+  final t = getCodeGenType(cursor.type(), ignoreFilter: false);
+  return t is BindingType ? t : null;
+}
+
+/// Visits all cursors and builds a map of usr and [CXCursor].
+void buildUsrCursorDefinitionMap(clang_types.CXCursor translationUnitCursor) {
+  _bindings = {};
+  final resultCode = clang.clang_visitChildren(
+    translationUnitCursor,
+    _cursorDefinitionVisitorPtr ??= Pointer.fromFunction(
+        _definitionCursorVisitor, exceptional_visitor_return),
+    nullptr,
+  );
+
+  visitChildrenResultChecker(resultCode);
+}
+
+/// Child visitor invoked on translationUnitCursor [CXCursorKind.CXCursor_TranslationUnit].
+int _definitionCursorVisitor(clang_types.CXCursor cursor,
+    clang_types.CXCursor parent, Pointer<Void> clientData) {
+  try {
+    cursorIndex.saveDefinition(cursor);
+  } catch (e, s) {
+    _logger.severe(e);
+    _logger.severe(s);
+    rethrow;
+  }
+  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
+}
diff --git a/lib/src/header_parser/type_extractor/cxtypekindmap.dart b/lib/src/header_parser/type_extractor/cxtypekindmap.dart
index eae99bc..2d25d9f 100644
--- a/lib/src/header_parser/type_extractor/cxtypekindmap.dart
+++ b/lib/src/header_parser/type_extractor/cxtypekindmap.dart
@@ -3,28 +3,23 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart' show SupportedNativeType;
-import 'package:ffigen/src/header_parser/clang_bindings/clang_bindings.dart'
-    as clang;
+import 'package:ffigen/src/code_generator/imports.dart';
 
-/// Utility to convert CXType to [code_generator.Type].
-///
-/// Key: CXTypekindEnum, Value: TypeString for code_generator
-var cxTypeKindToSupportedNativeTypes = <int, SupportedNativeType>{
-  clang.CXTypeKind.CXType_Void: SupportedNativeType.Void,
-  clang.CXTypeKind.CXType_UChar: SupportedNativeType.Uint8,
-  clang.CXTypeKind.CXType_UShort: SupportedNativeType.Uint16,
-  clang.CXTypeKind.CXType_UInt: SupportedNativeType.Uint32,
-  clang.CXTypeKind.CXType_ULong: SupportedNativeType.Uint64,
-  clang.CXTypeKind.CXType_ULongLong: SupportedNativeType.Uint64,
-  clang.CXTypeKind.CXType_SChar: SupportedNativeType.Int8,
-  clang.CXTypeKind.CXType_Short: SupportedNativeType.Int16,
-  clang.CXTypeKind.CXType_Int: SupportedNativeType.Int32,
-  clang.CXTypeKind.CXType_Long: SupportedNativeType.Int64,
-  clang.CXTypeKind.CXType_LongLong: SupportedNativeType.Int64,
-  clang.CXTypeKind.CXType_Float: SupportedNativeType.Float,
-  clang.CXTypeKind.CXType_Double: SupportedNativeType.Double,
-  clang.CXTypeKind.CXType_Char_S: SupportedNativeType.Int8,
-  clang.CXTypeKind.CXType_Char_U: SupportedNativeType.Uint8,
+var cxTypeKindToImportedTypes = <String, ImportedType>{
+  'void': voidType,
+  'unsigned char': unsignedCharType,
+  'signed char': signedCharType,
+  'char': charType,
+  'unsigned short': unsignedShortType,
+  'short': shortType,
+  'unsigned int': unsignedIntType,
+  'int': intType,
+  'unsigned long': unsignedLongType,
+  'long': longType,
+  'unsigned long long': unsignedLongLongType,
+  'long long': longLongType,
+  'float': floatType,
+  'double': doubleType,
 };
 
 var suportedTypedefToSuportedNativeType = <String, SupportedNativeType>{
@@ -37,4 +32,10 @@
   'int32_t': SupportedNativeType.Int32,
   'int64_t': SupportedNativeType.Int64,
   'intptr_t': SupportedNativeType.IntPtr,
+  'uintptr_t': SupportedNativeType.UintPtr,
+};
+
+var supportedTypedefToImportedType = <String, ImportedType>{
+  'size_t': sizeType,
+  'wchar_t': wCharType,
 };
diff --git a/lib/src/header_parser/type_extractor/extractor.dart b/lib/src/header_parser/type_extractor/extractor.dart
index 43d964c..c6a0951 100644
--- a/lib/src/header_parser/type_extractor/extractor.dart
+++ b/lib/src/header_parser/type_extractor/extractor.dart
@@ -4,217 +4,365 @@
 
 /// Extracts code_gen Type from type.
 import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser/sub_parsers/function_type_param_parser.dart';
 import 'package:ffigen/src/header_parser/sub_parsers/typedefdecl_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 
+import '../../config_provider/config_types.dart';
 import '../clang_bindings/clang_bindings.dart' as clang_types;
 import '../data.dart';
 import '../sub_parsers/compounddecl_parser.dart';
 import '../sub_parsers/enumdecl_parser.dart';
+import '../sub_parsers/objc_block_parser.dart';
+import '../sub_parsers/objcinterfacedecl_parser.dart';
 import '../type_extractor/cxtypekindmap.dart';
 import '../utils.dart';
 
 final _logger = Logger('ffigen.header_parser.extractor');
 const _padding = '  ';
 
+const maxRecursionDepth = 5;
+
 /// Converts cxtype to a typestring code_generator can accept.
 Type getCodeGenType(
   clang_types.CXType cxtype, {
+  /// Option to ignore declaration filter (Useful in case of extracting
+  /// declarations when they are passed/returned by an included function.)
+  bool ignoreFilter = true,
 
   /// Passed on if a value was marked as a pointer before this one.
   bool pointerReference = false,
+
+  /// Cursor of the declaration, currently this is useful only to extract
+  /// parameter names in function types.
+  clang_types.CXCursor? originalCursor,
 }) {
   _logger.fine('${_padding}getCodeGenType ${cxtype.completeStringRepr()}');
-  final kind = cxtype.kind;
 
-  switch (kind) {
+  // Special case: Elaborated types just refer to another type.
+  if (cxtype.kind == clang_types.CXTypeKind.CXType_Elaborated) {
+    return getCodeGenType(clang.clang_Type_getNamedType(cxtype),
+        ignoreFilter: ignoreFilter, pointerReference: pointerReference);
+  }
+
+  // These basic Objective C types skip the cache, and are conditional on the
+  // language flag.
+  if (config.language == Language.objc) {
+    switch (cxtype.kind) {
+      case clang_types.CXTypeKind.CXType_ObjCObjectPointer:
+        final pt = clang.clang_getPointeeType(cxtype);
+        final s = getCodeGenType(pt,
+            ignoreFilter: ignoreFilter, pointerReference: true);
+        if (s is ObjCInterface) {
+          return s;
+        }
+        return PointerType(objCObjectType);
+      case clang_types.CXTypeKind.CXType_ObjCId:
+      case clang_types.CXTypeKind.CXType_ObjCTypeParam:
+      case clang_types.CXTypeKind.CXType_ObjCClass:
+        return PointerType(objCObjectType);
+      case clang_types.CXTypeKind.CXType_ObjCSel:
+        return PointerType(objCSelType);
+      case clang_types.CXTypeKind.CXType_BlockPointer:
+        return _getOrCreateBlockType(cxtype);
+    }
+  }
+
+  // If the type has a declaration cursor, then use the BindingsIndex to break
+  // any potential cycles, and dedupe the Type.
+  final cursor = clang.clang_getTypeDeclaration(cxtype);
+  if (cursor.kind != clang_types.CXCursorKind.CXCursor_NoDeclFound) {
+    final usr = cursor.usr();
+    var type = bindingsIndex.getSeenType(usr);
+    if (type == null) {
+      final result =
+          _createTypeFromCursor(cxtype, cursor, ignoreFilter, pointerReference);
+      type = result.type;
+      if (type == null) {
+        return UnimplementedType('${cxtype.kindSpelling()} not implemented');
+      }
+      if (result.addToCache) {
+        bindingsIndex.addTypeToSeen(usr, type);
+      }
+    }
+    _fillFromCursorIfNeeded(type, cursor, ignoreFilter, pointerReference);
+    return type;
+  }
+
+  // If the type doesn't have a declaration cursor, then it's a basic type such
+  // as int, or a simple derived type like a pointer, so doesn't need to be
+  // cached.
+  switch (cxtype.kind) {
     case clang_types.CXTypeKind.CXType_Pointer:
       final pt = clang.clang_getPointeeType(cxtype);
-      final s = getCodeGenType(pt, pointerReference: true);
+      final s = getCodeGenType(
+        pt,
+        pointerReference: true,
+        originalCursor: originalCursor,
+      );
 
       // Replace Pointer<_Dart_Handle> with Handle.
       if (config.useDartHandle &&
-          s.broadType == BroadType.Compound &&
-          s.compound!.compoundType == CompoundType.struct &&
-          s.compound!.usr == strings.dartHandleUsr) {
-        return Type.handle();
+          s is Compound &&
+          s.compoundType == CompoundType.struct &&
+          s.usr == strings.dartHandleUsr) {
+        return HandleType();
       }
-      return Type.pointer(s);
-    case clang_types.CXTypeKind.CXType_Typedef:
-      final spelling = clang.clang_getTypedefName(cxtype).toStringAndDispose();
-      if (config.typedefNativeTypeMappings.containsKey(spelling)) {
-        _logger.fine('  Type Mapped from typedef-map');
-        return Type.nativeType(config.typedefNativeTypeMappings[spelling]!);
-      }
-      // Get name from supported typedef name if config allows.
-      if (config.useSupportedTypedefs) {
-        if (suportedTypedefToSuportedNativeType.containsKey(spelling)) {
-          _logger.fine('  Type Mapped from supported typedef');
-          return Type.nativeType(
-              suportedTypedefToSuportedNativeType[spelling]!);
-        }
-      }
-
-      // This is important or we get stuck in infinite recursion.
-      final cursor = clang.clang_getTypeDeclaration(cxtype);
-      final typedefUsr = cursor.usr();
-
-      if (bindingsIndex.isSeenTypealias(typedefUsr)) {
-        return Type.typealias(bindingsIndex.getSeenTypealias(typedefUsr)!);
-      } else {
-        final typealias =
-            parseTypedefDeclaration(cursor, pointerReference: pointerReference);
-
-        if (typealias != null) {
-          return Type.typealias(typealias);
-        } else {
-          // Use underlying type if typealias couldn't be created or if
-          // the user excluded this typedef.
-          final ct = clang.clang_getTypedefDeclUnderlyingType(cursor);
-          return getCodeGenType(ct, pointerReference: pointerReference);
-        }
-      }
-    case clang_types.CXTypeKind.CXType_Elaborated:
-      final et = clang.clang_Type_getNamedType(cxtype);
-      final s = getCodeGenType(et, pointerReference: pointerReference);
-      return s;
-    case clang_types.CXTypeKind.CXType_Record:
-      return _extractfromRecord(cxtype, pointerReference);
-    case clang_types.CXTypeKind.CXType_Enum:
-      final cursor = clang.clang_getTypeDeclaration(cxtype);
-      final usr = cursor.usr();
-
-      if (bindingsIndex.isSeenEnumClass(usr)) {
-        return Type.enumClass(bindingsIndex.getSeenEnumClass(usr)!);
-      } else {
-        final enumClass = parseEnumDeclaration(
-          cursor,
-          ignoreFilter: true,
-        );
-        if (enumClass == null) {
-          // Handle anonymous enum declarations within another declaration.
-          return Type.nativeType(Type.enumNativeType);
-        } else {
-          return Type.enumClass(enumClass);
-        }
-      }
+      return PointerType(s);
     case clang_types.CXTypeKind.CXType_FunctionProto:
       // Primarily used for function pointers.
-      return _extractFromFunctionProto(cxtype);
+      return _extractFromFunctionProto(cxtype, cursor: originalCursor);
     case clang_types.CXTypeKind.CXType_FunctionNoProto:
       // Primarily used for function types with zero arguments.
-      return _extractFromFunctionProto(cxtype);
+      return _extractFromFunctionProto(cxtype, cursor: originalCursor);
     case clang_types.CXTypeKind
         .CXType_ConstantArray: // Primarily used for constant array in struct members.
-      return Type.constantArray(
+      return ConstantArray(
         clang.clang_getNumElements(cxtype),
         clang.clang_getArrayElementType(cxtype).toCodeGenType(),
       );
     case clang_types.CXTypeKind
         .CXType_IncompleteArray: // Primarily used for incomplete array in function parameters.
-      return Type.incompleteArray(
+      return IncompleteArray(
         clang.clang_getArrayElementType(cxtype).toCodeGenType(),
       );
     case clang_types.CXTypeKind.CXType_Bool:
-      return Type.boolean();
+      return BooleanType();
     default:
-      if (cxTypeKindToSupportedNativeTypes.containsKey(kind)) {
-        return Type.nativeType(
-          cxTypeKindToSupportedNativeTypes[kind]!,
-        );
+      var typeSpellKey =
+          clang.clang_getTypeSpelling(cxtype).toStringAndDispose();
+      if (typeSpellKey.startsWith('const ')) {
+        typeSpellKey = typeSpellKey.replaceFirst('const ', '');
+      }
+      if (config.nativeTypeMappings.containsKey(typeSpellKey)) {
+        _logger.fine('  Type $typeSpellKey mapped from type-map.');
+        return config.nativeTypeMappings[typeSpellKey]!;
+      } else if (cxTypeKindToImportedTypes.containsKey(typeSpellKey)) {
+        return cxTypeKindToImportedTypes[typeSpellKey]!;
       } else {
-        _logger.fine(
-            'typedeclarationCursorVisitor: getCodeGenType: Type Not Implemented, ${cxtype.completeStringRepr()}');
-        return Type.unimplemented(
-            'Type: ${cxtype.kindSpelling()} not implemented');
+        _logger.fine('typedeclarationCursorVisitor: getCodeGenType: Type Not '
+            'Implemented, ${cxtype.completeStringRepr()}');
+        return UnimplementedType('${cxtype.kindSpelling()} not implemented');
       }
   }
 }
 
-Type _extractfromRecord(clang_types.CXType cxtype, bool pointerReference) {
-  Type type;
+Type _getOrCreateBlockType(clang_types.CXType cxtype) {
+  final block = parseObjCBlock(cxtype);
+  final key = block.usr;
+  final oldBlock = bindingsIndex.getSeenObjCBlock(key);
+  if (oldBlock != null) {
+    return oldBlock;
+  }
+  bindingsIndex.addObjCBlockToSeen(key, block);
+  return block;
+}
 
-  final cursor = clang.clang_getTypeDeclaration(cxtype);
+class _CreateTypeFromCursorResult {
+  final Type? type;
+
+  // Flag that controls whether the type is added to the cache. It should not
+  // be added to the cache if it's just a fallback implementation, such as the
+  // int that is returned when an enum is excluded by the config. Later we might
+  // need to build the full enum type (eg if it's part of an included struct),
+  // and if we put the fallback int in the cache then the full enum will never
+  // be created.
+  final bool addToCache;
+
+  _CreateTypeFromCursorResult(this.type, {this.addToCache = true});
+}
+
+_CreateTypeFromCursorResult _createTypeFromCursor(clang_types.CXType cxtype,
+    clang_types.CXCursor cursor, bool ignoreFilter, bool pointerReference) {
+  switch (cxtype.kind) {
+    case clang_types.CXTypeKind.CXType_Typedef:
+      final spelling = clang.clang_getTypedefName(cxtype).toStringAndDispose();
+      if (config.language == Language.objc && spelling == strings.objcBOOL) {
+        // Objective C's BOOL type can be either bool or signed char, depending
+        // on the platform. We want to present a consistent API to the user, and
+        // those two types are ABI compatible, so just return bool regardless.
+        return _CreateTypeFromCursorResult(BooleanType());
+      }
+      final usr = cursor.usr();
+      if (config.typedefTypeMappings.containsKey(spelling)) {
+        _logger.fine('  Type $spelling mapped from type-map');
+        return _CreateTypeFromCursorResult(
+            config.typedefTypeMappings[spelling]!);
+      }
+      if (config.usrTypeMappings.containsKey(usr)) {
+        _logger.fine('  Type $spelling mapped from usr');
+        return _CreateTypeFromCursorResult(config.usrTypeMappings[usr]!);
+      }
+      // Get name from supported typedef name if config allows.
+      if (config.useSupportedTypedefs) {
+        if (suportedTypedefToSuportedNativeType.containsKey(spelling)) {
+          _logger.fine('  Type Mapped from supported typedef');
+          return _CreateTypeFromCursorResult(
+              NativeType(suportedTypedefToSuportedNativeType[spelling]!));
+        } else if (supportedTypedefToImportedType.containsKey(spelling)) {
+          _logger.fine('  Type Mapped from supported typedef');
+          return _CreateTypeFromCursorResult(
+              supportedTypedefToImportedType[spelling]!);
+        }
+      }
+
+      final typealias =
+          parseTypedefDeclaration(cursor, pointerReference: pointerReference);
+
+      if (typealias != null) {
+        return _CreateTypeFromCursorResult(typealias);
+      } else {
+        // Use underlying type if typealias couldn't be created or if the user
+        // excluded this typedef.
+        final ct = clang.clang_getTypedefDeclUnderlyingType(cursor);
+        return _CreateTypeFromCursorResult(
+            getCodeGenType(ct, pointerReference: pointerReference),
+            addToCache: false);
+      }
+    case clang_types.CXTypeKind.CXType_Record:
+      return _CreateTypeFromCursorResult(
+          _extractfromRecord(cxtype, cursor, ignoreFilter, pointerReference));
+    case clang_types.CXTypeKind.CXType_Enum:
+      final enumClass = parseEnumDeclaration(
+        cursor,
+        ignoreFilter: ignoreFilter,
+      );
+      if (enumClass == null) {
+        // Handle anonymous enum declarations within another declaration.
+        return _CreateTypeFromCursorResult(EnumClass.nativeType,
+            addToCache: false);
+      } else {
+        return _CreateTypeFromCursorResult(enumClass);
+      }
+    case clang_types.CXTypeKind.CXType_ObjCInterface:
+      return _CreateTypeFromCursorResult(
+          parseObjCInterfaceDeclaration(cursor, ignoreFilter: ignoreFilter));
+    default:
+      return _CreateTypeFromCursorResult(
+          UnimplementedType('Unknown type: ${cxtype.completeStringRepr()}'),
+          addToCache: false);
+  }
+}
+
+void _fillFromCursorIfNeeded(Type? type, clang_types.CXCursor cursor,
+    bool ignoreFilter, bool pointerReference) {
+  if (type == null) return;
+  if (type is Compound) {
+    fillCompoundMembersIfNeeded(type, cursor,
+        ignoreFilter: ignoreFilter, pointerReference: pointerReference);
+  } else if (type is ObjCInterface) {
+    fillObjCInterfaceMethodsIfNeeded(type, cursor);
+  }
+}
+
+Type? _extractfromRecord(clang_types.CXType cxtype, clang_types.CXCursor cursor,
+    bool ignoreFilter, bool pointerReference) {
   _logger.fine('${_padding}_extractfromRecord: ${cursor.completeStringRepr()}');
 
   final cursorKind = clang.clang_getCursorKind(cursor);
   if (cursorKind == clang_types.CXCursorKind.CXCursor_StructDecl ||
       cursorKind == clang_types.CXCursorKind.CXCursor_UnionDecl) {
+    final declSpelling = cursor.spelling();
     final declUsr = cursor.usr();
 
     // Set includer functions according to compoundType.
-    final bool Function(String) isSeenDecl;
-    final Compound? Function(String) getSeenDecl;
     final CompoundType compoundType;
+    final Map<String, ImportedType> compoundTypeMappings;
 
     switch (cursorKind) {
       case clang_types.CXCursorKind.CXCursor_StructDecl:
-        isSeenDecl = bindingsIndex.isSeenStruct;
-        getSeenDecl = bindingsIndex.getSeenStruct;
         compoundType = CompoundType.struct;
+        compoundTypeMappings = config.structTypeMappings;
         break;
       case clang_types.CXCursorKind.CXCursor_UnionDecl:
-        isSeenDecl = bindingsIndex.isSeenUnion;
-        getSeenDecl = bindingsIndex.getSeenUnion;
         compoundType = CompoundType.union;
+        compoundTypeMappings = config.unionTypeMappings;
         break;
       default:
         throw Exception('Unhandled compound type cursorkind.');
     }
 
     // Also add a struct binding, if its unseen.
-    // TODO(23): Check if we should auto add compound declarations.
-    if (isSeenDecl(declUsr)) {
-      type = Type.compound(getSeenDecl(declUsr)!);
-
-      // This will parse the dependencies if needed.
-      parseCompoundDeclaration(
-        cursor,
-        compoundType,
-        ignoreFilter: true,
-        pointerReference: pointerReference,
-      );
+    if (compoundTypeMappings.containsKey(declSpelling)) {
+      _logger.fine('  Type Mapped from type-map');
+      return compoundTypeMappings[declSpelling]!;
+    } else if (config.usrTypeMappings.containsKey(declUsr)) {
+      _logger.fine('  Type Mapped from usr');
+      return config.usrTypeMappings[declUsr]!;
     } else {
-      final struc = parseCompoundDeclaration(
+      final struct = parseCompoundDeclaration(
         cursor,
         compoundType,
-        ignoreFilter: true,
+        ignoreFilter: ignoreFilter,
         pointerReference: pointerReference,
       );
-      type = Type.compound(struc!);
+      return struct;
     }
-  } else {
-    _logger.fine(
-        'typedeclarationCursorVisitor: _extractfromRecord: Not Implemented, ${cursor.completeStringRepr()}');
-    return Type.unimplemented('Type: ${cxtype.kindSpelling()} not implemented');
   }
-
-  return type;
+  _logger.fine('typedeclarationCursorVisitor: _extractfromRecord: '
+      'Not Implemented, ${cursor.completeStringRepr()}');
+  return UnimplementedType('${cxtype.kindSpelling()} not implemented');
 }
 
 // Used for function pointer arguments.
-Type _extractFromFunctionProto(clang_types.CXType cxtype) {
-  final _parameters = <Parameter>[];
+Type _extractFromFunctionProto(clang_types.CXType cxtype,
+    {clang_types.CXCursor? cursor}) {
+  final parameters = <Parameter>[];
   final totalArgs = clang.clang_getNumArgTypes(cxtype);
   for (var i = 0; i < totalArgs; i++) {
     final t = clang.clang_getArgType(cxtype, i);
     final pt = t.toCodeGenType();
 
     if (pt.isIncompleteCompound) {
-      return Type.unimplemented(
+      return UnimplementedType(
           'Incomplete Struct by value in function parameter.');
-    } else if (pt.getBaseType().broadType == BroadType.Unimplemented) {
-      return Type.unimplemented('Function parameter has an unsupported type.');
+    } else if (pt.baseType is UnimplementedType) {
+      return UnimplementedType('Function parameter has an unsupported type.');
     }
 
-    _parameters.add(
+    parameters.add(
       Parameter(name: '', type: pt),
     );
   }
 
-  return Type.nativeFunc(NativeFunc.fromFunctionType(FunctionType(
-    parameters: _parameters,
+  final functionType = FunctionType(
+    parameters: parameters,
     returnType: clang.clang_getResultType(cxtype).toCodeGenType(),
-  )));
+  );
+  _parseAndMergeParamNames(functionType, cursor, maxRecursionDepth);
+  return NativeFunc(functionType);
+}
+
+void _parseAndMergeParamNames(
+  FunctionType functionType,
+  clang_types.CXCursor? cursor,
+  int recursionDepth,
+) {
+  if (cursor == null) {
+    return;
+  }
+  if (recursionDepth == 0) {
+    final cursorRepr = cursor.completeStringRepr();
+    _logger.warning('Recursion depth exceeded when merging function parameters.'
+        ' Last cursor encountered was $cursorRepr');
+    return;
+  }
+
+  final paramsInfo = parseFunctionPointerParamNames(cursor);
+  functionType.addParameterNames(paramsInfo.paramNames);
+
+  for (final param in functionType.parameters) {
+    final paramRealType = param.type.typealiasType;
+    final paramBaseType = paramRealType.baseType.typealiasType;
+    if (paramBaseType is NativeFunc && param.name.isNotEmpty) {
+      final paramFunctionType = paramBaseType.type;
+      final paramCursor = paramsInfo.params[param.name];
+      _parseAndMergeParamNames(
+        paramFunctionType,
+        paramCursor,
+        recursionDepth - 1,
+      );
+    }
+  }
 }
diff --git a/lib/src/header_parser/utils.dart b/lib/src/header_parser/utils.dart
index 471cc36..a674618 100644
--- a/lib/src/header_parser/utils.dart
+++ b/lib/src/header_parser/utils.dart
@@ -13,12 +13,14 @@
 import 'data.dart';
 import 'type_extractor/extractor.dart';
 
+final _logger = Logger('ffigen.header_parser.utils');
+
 const exceptional_visitor_return =
     clang_types.CXChildVisitResult.CXChildVisit_Break;
 
 /// Check [resultCode] of [clang.clang_visitChildren_wrap].
 ///
-/// Throws exception if resultCode is not 0.
+/// Throws exception if resultCode is not [exceptional_visitor_return].
 void visitChildrenResultChecker(int resultCode) {
   if (resultCode != exceptional_visitor_return) {
     throw Exception(
@@ -28,16 +30,13 @@
 
 /// Logs the warnings/errors returned by clang for a translation unit.
 void logTuDiagnostics(
-  Pointer<clang_types.CXTranslationUnitImpl> tu,
-  Logger logger,
-  String header,
-) {
+    Pointer<clang_types.CXTranslationUnitImpl> tu, Logger logger, String header,
+    {Level logLevel = Level.SEVERE}) {
   final total = clang.clang_getNumDiagnostics(tu);
   if (total == 0) {
     return;
   }
-
-  logger.severe('Header $header: Total errors/warnings: $total.');
+  logger.log(logLevel, 'Header $header: Total errors/warnings: $total.');
   for (var i = 0; i < total; i++) {
     final diag = clang.clang_getDiagnostic(tu, i);
     final cxstring = clang.clang_formatDiagnostic(
@@ -48,7 +47,7 @@
           clang_types
               .CXDiagnosticDisplayOptions.CXDiagnostic_DisplayCategoryName,
     );
-    logger.severe('    ' + cxstring.toStringAndDispose());
+    logger.log(logLevel, '    ${cxstring.toStringAndDispose()}');
     clang.clang_disposeDiagnostic(diag);
   }
 }
@@ -81,6 +80,11 @@
         .toStringAndDispose();
   }
 
+  /// Get code_gen [Type] representation of [clang_types.CXType].
+  Type toCodeGenType() {
+    return getCodeGenType(type(), originalCursor: this);
+  }
+
   /// for debug: returns [spelling] [kind] [kindSpelling] [type] [typeSpelling].
   String completeStringRepr() {
     final cxtype = type();
@@ -89,35 +93,69 @@
     return s;
   }
 
-  /// Dispose type using [type.dispose].
+  /// Type associated with the pointer if any. Type will have kind
+  /// [clang.CXTypeKind.CXType_Invalid] otherwise.
   clang_types.CXType type() {
     return clang.clang_getCursorType(this);
   }
 
-  /// Only valid for [clang.CXCursorKind.CXCursor_FunctionDecl].
-  ///
-  /// Dispose type using [type.dispose].
+  /// Determine whether the given cursor
+  /// represents an anonymous record declaration.
+  bool isAnonymousRecordDecl() {
+    return clang.clang_Cursor_isAnonymousRecordDecl(this) == 1;
+  }
+
+  /// Only valid for [clang.CXCursorKind.CXCursor_FunctionDecl]. Type will have
+  /// kind [clang.CXTypeKind.CXType_Invalid] otherwise.
   clang_types.CXType returnType() {
     return clang.clang_getResultType(type());
   }
 
+  /// Returns the file name of the file that the cursor is inside.
   String sourceFileName() {
     final cxsource = clang.clang_getCursorLocation(this);
     final cxfilePtr = calloc<Pointer<Void>>();
-    final line = calloc<Uint32>();
-    final column = calloc<Uint32>();
-    final offset = calloc<Uint32>();
 
     // Puts the values in these pointers.
-    clang.clang_getFileLocation(cxsource, cxfilePtr, line, column, offset);
+    clang.clang_getFileLocation(cxsource, cxfilePtr, nullptr, nullptr, nullptr);
     final s = clang.clang_getFileName(cxfilePtr.value).toStringAndDispose();
 
     calloc.free(cxfilePtr);
-    calloc.free(line);
-    calloc.free(column);
-    calloc.free(offset);
     return s;
   }
+
+  /// Returns whether the file that the cursor is inside is a system header.
+  bool isInSystemHeader() {
+    final location = clang.clang_getCursorLocation(this);
+    return clang.clang_Location_isInSystemHeader(location) != 0;
+  }
+
+  /// Recursively print the AST, for debugging.
+  void printAst([int maxDepth = 3]) {
+    _printAstVisitorMaxDepth = maxDepth;
+    _printAstVisitor(this, this, Pointer<Void>.fromAddress(0));
+  }
+}
+
+Pointer<
+        NativeFunction<
+            Int32 Function(
+                clang_types.CXCursor, clang_types.CXCursor, Pointer<Void>)>>?
+    _printAstVisitorPtr;
+int _printAstVisitorMaxDepth = 0;
+int _printAstVisitor(clang_types.CXCursor cursor, clang_types.CXCursor parent,
+    Pointer<Void> clientData) {
+  final depth = clientData.address;
+  if (depth > _printAstVisitorMaxDepth) {
+    return clang_types.CXChildVisitResult.CXChildVisit_Break;
+  }
+  print(('  ' * depth) + cursor.completeStringRepr());
+  clang.clang_visitChildren(
+      cursor,
+      _printAstVisitorPtr ??=
+          Pointer.fromFunction(_printAstVisitor, exceptional_visitor_return),
+      Pointer<Void>.fromAddress(depth + 1));
+  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
 }
 
 const commentPrefix = '/// ';
@@ -214,11 +252,6 @@
   return sb.toString().trim();
 }
 
-bool isForwardDeclaration(clang_types.CXCursor cursor) {
-  return clang.clang_Cursor_isNull(clang.clang_getCursorDefinition(cursor)) ==
-      0;
-}
-
 extension CXTypeExt on clang_types.CXType {
   /// Get code_gen [Type] representation of [clang_types.CXType].
   Type toCodeGenType() {
@@ -329,134 +362,85 @@
 /// Tracks if a binding is 'seen' or not.
 class BindingsIndex {
   // Tracks if bindings are already seen, Map key is USR obtained from libclang.
-  final Map<String, Struc> _structs = {};
-  final Map<String, Union> _unions = {};
+  final Map<String, Type> _declaredTypes = {};
   final Map<String, Func> _functions = {};
-  final Map<String, EnumClass> _enumClass = {};
   final Map<String, Constant> _unnamedEnumConstants = {};
   final Map<String, String> _macros = {};
   final Map<String, Global> _globals = {};
+  final Map<String, ObjCBlock> _objcBlocks = {};
 
   /// Contains usr for typedefs which cannot be generated.
   final Set<String> _unsupportedTypealiases = {};
-  final Map<String, Typealias> _typealiases = {};
 
   /// Index for headers.
   final Map<String, bool> _headerCache = {};
 
-  bool isSeenStruct(String usr) {
-    return _structs.containsKey(usr);
+  bool isSeenType(String usr) => _declaredTypes.containsKey(usr);
+  void addTypeToSeen(String usr, Type type) => _declaredTypes[usr] = type;
+  Type? getSeenType(String usr) => _declaredTypes[usr];
+  bool isSeenFunc(String usr) => _functions.containsKey(usr);
+  void addFuncToSeen(String usr, Func func) => _functions[usr] = func;
+  Func? getSeenFunc(String usr) => _functions[usr];
+  bool isSeenUnnamedEnumConstant(String usr) =>
+      _unnamedEnumConstants.containsKey(usr);
+  void addUnnamedEnumConstantToSeen(String usr, Constant enumConstant) =>
+      _unnamedEnumConstants[usr] = enumConstant;
+  Constant? getSeenUnnamedEnumConstant(String usr) =>
+      _unnamedEnumConstants[usr];
+  bool isSeenGlobalVar(String usr) => _globals.containsKey(usr);
+  void addGlobalVarToSeen(String usr, Global global) => _globals[usr] = global;
+  Global? getSeenGlobalVar(String usr) => _globals[usr];
+  bool isSeenMacro(String usr) => _macros.containsKey(usr);
+  void addMacroToSeen(String usr, String macro) => _macros[usr] = macro;
+  String? getSeenMacro(String usr) => _macros[usr];
+  bool isSeenUnsupportedTypealias(String usr) =>
+      _unsupportedTypealiases.contains(usr);
+  void addUnsupportedTypealiasToSeen(String usr) =>
+      _unsupportedTypealiases.add(usr);
+  bool isSeenHeader(String source) => _headerCache.containsKey(source);
+  void addHeaderToSeen(String source, bool includeStatus) =>
+      _headerCache[source] = includeStatus;
+  bool? getSeenHeaderStatus(String source) => _headerCache[source];
+  void addObjCBlockToSeen(String key, ObjCBlock t) => _objcBlocks[key] = t;
+  ObjCBlock? getSeenObjCBlock(String key) => _objcBlocks[key];
+}
+
+class CursorIndex {
+  final _usrCursorDefinition = <String, clang_types.CXCursor>{};
+
+  /// Returns the Cursor definition (if found) or itself.
+  clang_types.CXCursor getDefinition(clang_types.CXCursor cursor) {
+    final cursorDefinition = clang.clang_getCursorDefinition(cursor);
+    if (clang.clang_Cursor_isNull(cursorDefinition) == 0) {
+      return cursorDefinition;
+    } else {
+      final usr = cursor.usr();
+      if (_usrCursorDefinition.containsKey(usr)) {
+        return _usrCursorDefinition[cursor.usr()]!;
+      } else {
+        _logger.warning(
+            "No definition found for declaration - ${cursor.completeStringRepr()}");
+        return cursor;
+      }
+    }
   }
 
-  void addStructToSeen(String usr, Compound struc) {
-    _structs[usr] = struc as Struc;
-  }
-
-  Struc? getSeenStruct(String usr) {
-    return _structs[usr];
-  }
-
-  bool isSeenUnion(String usr) {
-    return _unions.containsKey(usr);
-  }
-
-  void addUnionToSeen(String usr, Compound union) {
-    _unions[usr] = union as Union;
-  }
-
-  Union? getSeenUnion(String usr) {
-    return _unions[usr];
-  }
-
-  bool isSeenFunc(String usr) {
-    return _functions.containsKey(usr);
-  }
-
-  void addFuncToSeen(String usr, Func func) {
-    _functions[usr] = func;
-  }
-
-  Func? getSeenFunc(String usr) {
-    return _functions[usr];
-  }
-
-  bool isSeenEnumClass(String usr) {
-    return _enumClass.containsKey(usr);
-  }
-
-  void addEnumClassToSeen(String usr, EnumClass enumClass) {
-    _enumClass[usr] = enumClass;
-  }
-
-  EnumClass? getSeenEnumClass(String usr) {
-    return _enumClass[usr];
-  }
-
-  bool isSeenUnnamedEnumConstant(String usr) {
-    return _unnamedEnumConstants.containsKey(usr);
-  }
-
-  void addUnnamedEnumConstantToSeen(String usr, Constant enumConstant) {
-    _unnamedEnumConstants[usr] = enumConstant;
-  }
-
-  Constant? getSeenUnnamedEnumConstant(String usr) {
-    return _unnamedEnumConstants[usr];
-  }
-
-  bool isSeenGlobalVar(String usr) {
-    return _globals.containsKey(usr);
-  }
-
-  void addGlobalVarToSeen(String usr, Global global) {
-    _globals[usr] = global;
-  }
-
-  Global? getSeenGlobalVar(String usr) {
-    return _globals[usr];
-  }
-
-  bool isSeenMacro(String usr) {
-    return _macros.containsKey(usr);
-  }
-
-  void addMacroToSeen(String usr, String macro) {
-    _macros[usr] = macro;
-  }
-
-  String? getSeenMacro(String usr) {
-    return _macros[usr];
-  }
-
-  bool isSeenTypealias(String usr) {
-    return _typealiases.containsKey(usr);
-  }
-
-  void addTypealiasToSeen(String usr, Typealias t) {
-    _typealiases[usr] = t;
-  }
-
-  bool isSeenUnsupportedTypealias(String usr) {
-    return _unsupportedTypealiases.contains(usr);
-  }
-
-  void addUnsupportedTypealiasToSeen(String usr) {
-    _unsupportedTypealiases.add(usr);
-  }
-
-  Typealias? getSeenTypealias(String usr) {
-    return _typealiases[usr];
-  }
-
-  bool isSeenHeader(String source) {
-    return _headerCache.containsKey(source);
-  }
-
-  void addHeaderToSeen(String source, bool includeStatus) {
-    _headerCache[source] = includeStatus;
-  }
-
-  bool? getSeenHeaderStatus(String source) {
-    return _headerCache[source];
+  /// Saves cursor definition based on its kind.
+  void saveDefinition(clang_types.CXCursor cursor) {
+    switch (cursor.kind) {
+      case clang_types.CXCursorKind.CXCursor_StructDecl:
+      case clang_types.CXCursorKind.CXCursor_UnionDecl:
+      case clang_types.CXCursorKind.CXCursor_EnumDecl:
+        final usr = cursor.usr();
+        if (!_usrCursorDefinition.containsKey(usr)) {
+          final cursorDefinition = clang.clang_getCursorDefinition(cursor);
+          if (clang.clang_Cursor_isNull(cursorDefinition) == 0) {
+            _usrCursorDefinition[usr] = cursorDefinition;
+          } else {
+            _logger.finest(
+                "Missing cursor definition in current translation unit: ${cursor.completeStringRepr()}");
+          }
+        }
+    }
   }
 }
diff --git a/lib/src/strings.dart b/lib/src/strings.dart
index 5ae3e35..e0f2761 100644
--- a/lib/src/strings.dart
+++ b/lib/src/strings.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 import 'dart:io';
 
-import 'package:ffigen/src/code_generator/type.dart';
+import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/header_parser/clang_bindings/clang_bindings.dart'
     as clang;
 
@@ -29,6 +29,25 @@
 
 const output = 'output';
 
+// Sub-keys of output.
+const bindings = "bindings";
+const symbolFile = 'symbol-file';
+
+const language = 'language';
+
+// String mappings for the Language enum.
+const langC = 'c';
+const langObjC = 'objc';
+
+// Clang command line args for Objective C.
+const clangLangObjC = ['-x', 'objective-c'];
+const clangObjCBoolDefine = '__OBJC_BOOL_IS_BOOL';
+const clangInclude = '-include';
+
+// Special objective C types.
+const objcBOOL = 'BOOL';
+const objcInstanceType = 'instancetype';
+
 const headers = 'headers';
 
 // Sub-fields of headers
@@ -52,6 +71,9 @@
 const globals = 'globals';
 const macros = 'macros';
 const typedefs = 'typedefs';
+const objcInterfaces = 'objc-interfaces';
+
+const excludeAllByDefault = 'exclude-all-by-default';
 
 // Sub-fields of Declarations.
 const include = 'include';
@@ -64,6 +86,9 @@
 const exposeFunctionTypedefs = 'expose-typedefs';
 const leafFunctions = 'leaf';
 
+// Sub-fields of ObjC interfaces.
+const objcModule = 'module';
+
 const dependencyOnly = 'dependency-only';
 // Values for `compoundDependencies`.
 const fullCompoundDependencies = 'full';
@@ -79,9 +104,6 @@
   16: 16,
 };
 
-const sizemap = 'size-map';
-const typedefmap = 'typedef-map';
-
 // Sizemap values.
 const SChar = 'char';
 const UChar = 'unsigned char';
@@ -110,6 +132,50 @@
   Enum: clang.CXTypeKind.CXType_Enum
 };
 
+// Library imports.
+const libraryImports = 'library-imports';
+
+// Sub Keys of symbol file.
+const symbols = 'symbols';
+
+// Symbol file yaml.
+const formatVersion = "format_version";
+
+/// Current symbol file format version.
+///
+/// This is generated when generating any symbol file. When importing any other
+/// symbol file, this version is compared according to `semantic` versioning
+/// to determine compatibility.
+const symbolFileFormatVersion = "1.0.0";
+const files = "files";
+const usedConfig = "used-config";
+
+const import = 'import';
+const defaultSymbolFileImportPrefix = 'imp';
+
+// Sub keys of import.
+const symbolFilesImport = 'symbol-files';
+// Sub-Sub keys of symbolFilesImport.
+const importPath = 'import-path';
+
+final predefinedLibraryImports = {
+  ffiImport.name: ffiImport,
+  ffiPkgImport.name: ffiPkgImport
+};
+
+const typeMap = 'type-map';
+
+// Sub-fields for type-map.
+const typeMapTypedefs = 'typedefs';
+const typeMapStructs = 'structs';
+const typeMapUnions = 'unions';
+const typeMapNativeTypes = 'native-types';
+
+// Sub-sub-keys for fields under typeMap.
+const lib = 'lib';
+const cType = 'c-type';
+const dartType = 'dart-type';
+
 const supportedNativeType_mappings = <String, SupportedNativeType>{
   'Void': SupportedNativeType.Void,
   'Uint8': SupportedNativeType.Uint8,
@@ -128,7 +194,6 @@
 // Boolean flags.
 const sort = 'sort';
 const useSupportedTypedefs = 'use-supported-typedefs';
-const dartBool = 'dart-bool';
 const useDartHandle = 'use-dart-handle';
 
 const comments = 'comments';
@@ -156,19 +221,33 @@
 const libclang_dylib_windows = 'libclang.dll';
 
 // Dynamic library default locations.
-const linuxDylibLocations = [
+const linuxDylibLocations = {
   '/usr/lib/llvm-9/lib/',
   '/usr/lib/llvm-10/lib/',
   '/usr/lib/llvm-11/lib/',
+  '/usr/lib/llvm-12/lib/',
+  '/usr/lib/llvm-13/lib/',
+  '/usr/lib/llvm-14/lib/',
+  '/usr/lib/llvm-15/lib/',
   '/usr/lib/',
   '/usr/lib64/',
-];
-const windowsDylibLocations = [
+};
+const windowsDylibLocations = {
   r'C:\Program Files\LLVM\bin\',
-];
-const macOsDylibLocations = [
+};
+const macOsDylibLocations = {
+  // Default Xcode commandline tools installation.
+  '/Library/Developer/CommandLineTools/usr/',
+  // Default path for LLVM installed with apt-get.
   '/usr/local/opt/llvm/lib/',
-];
+  // Default path for LLVM installed with brew.
+  '/opt/homebrew/opt/llvm/lib/',
+  // Default Xcode installation.
+  // Last because it does not include ObjectiveC headers by default.
+  // See https://github.com/dart-lang/ffigen/pull/402#issuecomment-1154348670.
+  '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/',
+};
+const xcodeDylibLocation = 'Toolchains/XcodeDefault.xctoolchain/usr/lib/';
 
 // Writen doubles.
 const doubleInfinity = 'double.infinity';
@@ -177,3 +256,19 @@
 
 /// USR for struct `_Dart_Handle`.
 const dartHandleUsr = 'c:@S@_Dart_Handle';
+
+const ffiNative = 'ffi-native';
+const ffiNativeAsset = 'asset';
+
+Directory? _tmpDir;
+
+/// A path to a unique temporary directory that should be used for files meant
+/// to be discarded after the current execution is finished.
+String get tmpDir {
+  if (Platform.environment.containsKey('TEST_TMPDIR')) {
+    return Platform.environment['TEST_TMPDIR']!;
+  }
+
+  _tmpDir ??= Directory.systemTemp.createTempSync();
+  return _tmpDir!.path;
+}
diff --git a/pubspec.yaml b/pubspec.yaml
index 34b851e..6c2e147 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,24 +3,26 @@
 # BSD-style license that can be found in the LICENSE file.
 
 name: ffigen
-version: 4.1.3
-homepage: https://github.com/dart-lang/ffigen
+version: 7.2.10
 description: Generator for FFI bindings, using LibClang to parse C header files.
+repository: https://github.com/dart-lang/ffigen
 
 environment:
-  sdk: '>=2.14.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
 dependencies:
-  ffi: ^1.0.0
+  ffi: ^2.0.1
   yaml: ^3.0.0
   path: ^1.8.0
   quiver: ^3.0.0
   args: ^2.0.0
   logging: ^1.0.0
-  cli_util: ^0.3.0
+  cli_util: ^0.4.0
   glob: ^2.0.0
   file: ^6.0.0
+  package_config: ^2.1.0
+  yaml_edit: ^2.0.3
 
 dev_dependencies:
-  lints: ^1.0.1
+  lints: ^2.0.1
   test: ^1.16.2
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 0000000..1a499a4
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,64 @@
+[![Build Status](https://github.com/dart-lang/ffigen/workflows/Dart%20CI/badge.svg)](https://github.com/dart-lang/ffigen/actions?query=workflow%3A"Dart+CI")
+[![Coverage Status](https://coveralls.io/repos/github/dart-lang/ffigen/badge.svg?branch=master)](https://coveralls.io/github/dart-lang/ffigen?branch=master)
+
+# ffigen testing
+
+## Running Tests
+
+1.  Some tests require that dynamic libraries be built before running the tests.
+    You can do so with:
+
+    ```shell
+    dart run test/setup.dart
+    ```
+
+2.  Run the tests with:
+
+    ```shell
+    dart test
+    ```
+
+## Development
+
+Some tests verify that the generated Dart FFI bindings match a golden file.
+
+For example, the test
+[`test/native_test/native_test.dart`](https://github.com/dart-lang/ffigen/blob/master/test/native_test/native_test.dart)
+works by:
+
+1.  Loading the dynamic library for
+    [`test/native_test/native_test.c`](https://github.com/dart-lang/ffigen/blob/master/test/native_test/native_test.c)
+    (which was generated by `dart run test/setup.dart`).
+
+2.  Generating binding files for that dynamic library in the
+    `test/debug_generated` directory.
+
+3.  Comparing the golden file (i.e.
+    [`test/native_test/native_test_bindings.dart`](https://github.com/dart-lang/ffigen/blob/master/test/native_test/native_test_bindings.dart))
+    to the generated file and generating a test failure if they do not match.
+
+4.  Using the *golden* bindings to excercise the dynamic library.
+
+If you modify any source for a dynamic library (e.g. any `.c`, `.h` or `.m`
+files), then you should run:
+
+```shell
+   dart run test/setup.dart  # Rebuild the dynamic libraries.
+   dart run test/regen.dart  # Rebuild the golden FFI bindings.
+```
+
+If you modify any code that changes how FFI bindings are generated, then you
+should run:
+
+  ```shell
+  dart run test/regen.dart  # Rebuild the golden FFI bindings.
+  ```
+
+A conservative way to run tests is with:
+
+  ```shell
+  dart run test/setup.dart && dart run test/regen.dart && dart test
+  ```
+
+> Note: you should verify that the changes to the golden bindings are
+> reasonable with `git diff`.
diff --git a/test/code_generator_tests/code_generator_test.dart b/test/code_generator_tests/code_generator_test.dart
index 34905a4..e16d3d9 100644
--- a/test/code_generator_tests/code_generator_test.dart
+++ b/test/code_generator_tests/code_generator_test.dart
@@ -15,7 +15,7 @@
           Func(
             name: 'noParam',
             dartDoc: 'Just a test function\nheres another line',
-            returnType: Type.nativeType(
+            returnType: NativeType(
               SupportedNativeType.Int32,
             ),
           ),
@@ -24,18 +24,18 @@
             parameters: [
               Parameter(
                 name: 'a',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Int32,
                 ),
               ),
               Parameter(
                 name: 'b',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Uint8,
                 ),
               ),
             ],
-            returnType: Type.nativeType(
+            returnType: NativeType(
               SupportedNativeType.Char,
             ),
           ),
@@ -44,25 +44,25 @@
             parameters: [
               Parameter(
                 name: 'a',
-                type: Type.pointer(
-                  Type.nativeType(
+                type: PointerType(
+                  NativeType(
                     SupportedNativeType.Int32,
                   ),
                 ),
               ),
               Parameter(
                 name: 'b',
-                type: Type.pointer(
-                  Type.pointer(
-                    Type.nativeType(
+                type: PointerType(
+                  PointerType(
+                    NativeType(
                       SupportedNativeType.Uint8,
                     ),
                   ),
                 ),
               ),
             ],
-            returnType: Type.pointer(
-              Type.nativeType(
+            returnType: PointerType(
+              NativeType(
                 SupportedNativeType.Double,
               ),
             ),
@@ -74,12 +74,12 @@
             parameters: [
               Parameter(
                 name: 'a',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Int32,
                 ),
               ),
             ],
-            returnType: Type.nativeType(
+            returnType: NativeType(
               SupportedNativeType.Int32,
             ),
           ),
@@ -93,49 +93,49 @@
       final library = Library(
         name: 'Bindings',
         bindings: [
-          Struc(
+          Struct(
             name: 'NoMember',
             dartDoc: 'Just a test struct\nheres another line',
           ),
-          Struc(
+          Struct(
             name: 'WithPrimitiveMember',
             members: [
               Member(
                 name: 'a',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Int32,
                 ),
               ),
               Member(
                 name: 'b',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Double,
                 ),
               ),
               Member(
                 name: 'c',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Char,
                 ),
               ),
             ],
           ),
-          Struc(
+          Struct(
             name: 'WithPointerMember',
             members: [
               Member(
                 name: 'a',
-                type: Type.pointer(
-                  Type.nativeType(
+                type: PointerType(
+                  NativeType(
                     SupportedNativeType.Int32,
                   ),
                 ),
               ),
               Member(
                 name: 'b',
-                type: Type.pointer(
-                  Type.pointer(
-                    Type.nativeType(
+                type: PointerType(
+                  PointerType(
+                    NativeType(
                       SupportedNativeType.Double,
                     ),
                   ),
@@ -143,12 +143,35 @@
               ),
               Member(
                 name: 'c',
-                type: Type.nativeType(
+                type: NativeType(
                   SupportedNativeType.Char,
                 ),
               ),
             ],
           ),
+          Struct(
+            name: 'WithIntPtrUintPtr',
+            members: [
+              Member(
+                name: 'a',
+                type: PointerType(
+                  NativeType(
+                    SupportedNativeType.UintPtr,
+                  ),
+                ),
+              ),
+              Member(
+                name: 'b',
+                type: PointerType(
+                  PointerType(
+                    NativeType(
+                      SupportedNativeType.IntPtr,
+                    ),
+                  ),
+                ),
+              ),
+            ],
+          ),
         ],
       );
 
@@ -156,24 +179,24 @@
     });
 
     test('Function and Struct Binding (pointer to Struct)', () {
-      final structSome = Struc(
-        name: 'SomeStruc',
+      final structSome = Struct(
+        name: 'SomeStruct',
         members: [
           Member(
             name: 'a',
-            type: Type.nativeType(
+            type: NativeType(
               SupportedNativeType.Int32,
             ),
           ),
           Member(
             name: 'b',
-            type: Type.nativeType(
+            type: NativeType(
               SupportedNativeType.Double,
             ),
           ),
           Member(
             name: 'c',
-            type: Type.nativeType(
+            type: NativeType(
               SupportedNativeType.Char,
             ),
           ),
@@ -188,19 +211,15 @@
             parameters: [
               Parameter(
                 name: 'some',
-                type: Type.pointer(
-                  Type.pointer(
-                    Type.struct(
-                      structSome,
-                    ),
+                type: PointerType(
+                  PointerType(
+                    structSome,
                   ),
                 ),
               ),
             ],
-            returnType: Type.pointer(
-              Type.struct(
-                structSome,
-              ),
+            returnType: PointerType(
+              structSome,
             ),
           ),
         ],
@@ -210,39 +229,37 @@
     });
 
     test('global (primitives, pointers, pointer to struct)', () {
-      final strucSome = Struc(
+      final structSome = Struct(
         name: 'Some',
       );
-      final emptyGlobalStruc = Struc(name: 'EmptyStruct');
+      final emptyGlobalStruct = Struct(name: 'EmptyStruct');
 
       final library = Library(
         name: 'Bindings',
         bindings: [
           Global(
             name: 'test1',
-            type: Type.nativeType(
+            type: NativeType(
               SupportedNativeType.Int32,
             ),
           ),
           Global(
             name: 'test2',
-            type: Type.pointer(
-              Type.nativeType(
+            type: PointerType(
+              NativeType(
                 SupportedNativeType.Float,
               ),
             ),
           ),
-          strucSome,
+          structSome,
           Global(
             name: 'test5',
-            type: Type.pointer(
-              Type.struct(
-                strucSome,
-              ),
+            type: PointerType(
+              structSome,
             ),
           ),
-          emptyGlobalStruc,
-          Global(name: 'globalStruct', type: Type.struct(emptyGlobalStruc)),
+          emptyGlobalStruct,
+          Global(name: 'globalStruct', type: emptyGlobalStruct),
         ],
       );
       _matchLib(library, 'global');
@@ -296,38 +313,38 @@
         bindings: [
           Func(
             name: 'test',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
           ),
           Func(
             name: '_test',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
           ),
           Func(
             name: '_c_test',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
           ),
           Func(
             name: '_dart_test',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
           ),
-          Struc(
+          Struct(
             name: '_Test',
             members: [
               Member(
                 name: 'array',
-                type: Type.constantArray(
+                type: ConstantArray(
                   2,
-                  Type.nativeType(
+                  NativeType(
                     SupportedNativeType.Int8,
                   ),
                 ),
               ),
             ],
           ),
-          Struc(name: 'ArrayHelperPrefixCollisionTest'),
+          Struct(name: 'ArrayHelperPrefixCollisionTest'),
           Func(
             name: 'Test',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
           ),
           EnumClass(name: '_c_Test'),
           EnumClass(name: 'init_dylib'),
@@ -339,58 +356,34 @@
   test('boolean_dartBool', () {
     final library = Library(
       name: 'Bindings',
-      dartBool: true,
       bindings: [
         Func(
           name: 'test1',
-          returnType: Type.boolean(),
+          returnType: BooleanType(),
           parameters: [
-            Parameter(name: 'a', type: Type.boolean()),
-            Parameter(name: 'b', type: Type.pointer(Type.boolean())),
+            Parameter(name: 'a', type: BooleanType()),
+            Parameter(name: 'b', type: PointerType(BooleanType())),
           ],
         ),
-        Struc(
+        Struct(
           name: 'Test2',
           members: [
-            Member(name: 'a', type: Type.boolean()),
+            Member(name: 'a', type: BooleanType()),
           ],
         ),
       ],
     );
     _matchLib(library, 'boolean_dartbool');
   });
-  test('boolean_no_dartBool', () {
-    final library = Library(
-      name: 'Bindings',
-      dartBool: false,
-      bindings: [
-        Func(
-          name: 'test1',
-          returnType: Type.boolean(),
-          parameters: [
-            Parameter(name: 'a', type: Type.boolean()),
-            Parameter(name: 'b', type: Type.pointer(Type.boolean())),
-          ],
-        ),
-        Struc(
-          name: 'Test2',
-          members: [
-            Member(name: 'a', type: Type.boolean()),
-          ],
-        ),
-      ],
-    );
-    _matchLib(library, 'boolean_no_dartbool');
-  });
   test('sort bindings', () {
     final library = Library(
       name: 'Bindings',
       sort: true,
       bindings: [
-        Func(name: 'b', returnType: Type.nativeType(SupportedNativeType.Void)),
-        Func(name: 'a', returnType: Type.nativeType(SupportedNativeType.Void)),
-        Struc(name: 'D'),
-        Struc(name: 'C'),
+        Func(name: 'b', returnType: NativeType(SupportedNativeType.Void)),
+        Func(name: 'a', returnType: NativeType(SupportedNativeType.Void)),
+        Struct(name: 'D'),
+        Struct(name: 'C'),
       ],
     );
     _matchLib(library, 'sort_bindings');
@@ -399,35 +392,33 @@
     final library = Library(
       name: 'Bindings',
       bindings: [
-        Struc(name: 'NoPacking', pack: null, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'NoPacking', pack: null, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
-        Struc(name: 'Pack1', pack: 1, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'Pack1', pack: 1, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
-        Struc(name: 'Pack2', pack: 2, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'Pack2', pack: 2, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
-        Struc(name: 'Pack2', pack: 4, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'Pack2', pack: 4, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
-        Struc(name: 'Pack2', pack: 8, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'Pack2', pack: 8, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
-        Struc(name: 'Pack16', pack: 16, members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Char)),
+        Struct(name: 'Pack16', pack: 16, members: [
+          Member(name: 'a', type: NativeType(SupportedNativeType.Char)),
         ]),
       ],
     );
     _matchLib(library, 'packed_structs');
   });
   test('Union Bindings', () {
-    final struct1 = Struc(name: 'Struct1', members: [
-      Member(name: 'a', type: Type.nativeType(SupportedNativeType.Int8))
-    ]);
-    final union1 = Union(name: 'Union1', members: [
-      Member(name: 'a', type: Type.nativeType(SupportedNativeType.Int8))
-    ]);
+    final struct1 =
+        Struct(name: 'Struct1', members: [Member(name: 'a', type: charType)]);
+    final union1 =
+        Union(name: 'Union1', members: [Member(name: 'a', type: charType)]);
     final library = Library(
       name: 'Bindings',
       bindings: [
@@ -435,30 +426,23 @@
         union1,
         Union(name: 'EmptyUnion'),
         Union(name: 'Primitives', members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Int8)),
-          Member(name: 'b', type: Type.nativeType(SupportedNativeType.Int32)),
-          Member(name: 'c', type: Type.nativeType(SupportedNativeType.Float)),
-          Member(name: 'd', type: Type.nativeType(SupportedNativeType.Double)),
+          Member(name: 'a', type: charType),
+          Member(name: 'b', type: intType),
+          Member(name: 'c', type: floatType),
+          Member(name: 'd', type: doubleType),
         ]),
         Union(name: 'PrimitivesWithPointers', members: [
-          Member(name: 'a', type: Type.nativeType(SupportedNativeType.Int8)),
-          Member(name: 'b', type: Type.nativeType(SupportedNativeType.Float)),
-          Member(
-              name: 'c',
-              type: Type.pointer(Type.nativeType(SupportedNativeType.Double))),
-          Member(name: 'd', type: Type.pointer(Type.union(union1))),
-          Member(name: 'd', type: Type.pointer(Type.struct(struct1))),
+          Member(name: 'a', type: charType),
+          Member(name: 'b', type: floatType),
+          Member(name: 'c', type: PointerType(doubleType)),
+          Member(name: 'd', type: PointerType(union1)),
+          Member(name: 'd', type: PointerType(struct1)),
         ]),
         Union(name: 'WithArray', members: [
-          Member(
-              name: 'a',
-              type: Type.constantArray(
-                  10, Type.nativeType(SupportedNativeType.Int8))),
-          Member(name: 'b', type: Type.constantArray(10, Type.union(union1))),
-          Member(name: 'b', type: Type.constantArray(10, Type.struct(struct1))),
-          Member(
-              name: 'c',
-              type: Type.constantArray(10, Type.pointer(Type.union(union1)))),
+          Member(name: 'a', type: ConstantArray(10, charType)),
+          Member(name: 'b', type: ConstantArray(10, union1)),
+          Member(name: 'b', type: ConstantArray(10, struct1)),
+          Member(name: 'c', type: ConstantArray(10, PointerType(union1))),
         ]),
       ],
     );
@@ -469,31 +453,26 @@
       name: 'Bindings',
       header: '// ignore_for_file: non_constant_identifier_names\n',
       bindings: [
-        Typealias(
-            name: 'RawUnused', type: Type.compound(Struc(name: 'Struct1'))),
-        Struc(name: 'WithTypealiasStruc', members: [
+        Typealias(name: 'RawUnused', type: Struct(name: 'Struct1')),
+        Struct(name: 'WithTypealiasStruct', members: [
           Member(
               name: 't',
-              type: Type.typealias(Typealias(
+              type: Typealias(
                   name: 'Struct2Typealias',
-                  type: Type.struct(Struc(name: 'Struct2', members: [
-                    Member(
-                        name: 'a',
-                        type: Type.nativeType(SupportedNativeType.Double))
-                  ])))))
+                  type: Struct(
+                      name: 'Struct2',
+                      members: [Member(name: 'a', type: doubleType)])))
         ]),
         Func(
-            name: 'WithTypealiasStruc',
-            returnType: Type.pointer(Type.nativeFunc(
-                NativeFunc.fromFunctionType(FunctionType(
-                    returnType: Type.nativeType(SupportedNativeType.Void),
-                    parameters: [])))),
+            name: 'WithTypealiasStruct',
+            returnType: PointerType(NativeFunc(FunctionType(
+                returnType: NativeType(SupportedNativeType.Void),
+                parameters: []))),
             parameters: [
               Parameter(
                   name: 't',
-                  type: Type.typealias(Typealias(
-                      name: 'Struct3Typealias',
-                      type: Type.struct(Struc(name: 'Struct3')))))
+                  type: Typealias(
+                      name: 'Struct3Typealias', type: Struct(name: 'Struct3')))
             ]),
       ],
     );
@@ -503,11 +482,7 @@
 
 /// Utility to match expected bindings to the generated bindings.
 void _matchLib(Library lib, String testName) {
-  matchLibraryWithExpected(lib, [
-    'test',
-    'debug_generated',
-    'code_generator_test_${testName}_output.dart'
-  ], [
+  matchLibraryWithExpected(lib, 'code_generator_test_${testName}_output.dart', [
     'test',
     'code_generator_tests',
     'expected_bindings',
diff --git a/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
index 2e94121..0bc046c 100644
--- a/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_boolean_dartbool_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
@@ -19,23 +20,22 @@
 
   bool test1(
     bool a,
-    ffi.Pointer<ffi.Uint8> b,
+    ffi.Pointer<ffi.Bool> b,
   ) {
     return _test1(
-          a ? 1 : 0,
-          b,
-        ) !=
-        0;
+      a,
+      b,
+    );
   }
 
   late final _test1Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint8 Function(ffi.Uint8, ffi.Pointer<ffi.Uint8>)>>('test1');
+          ffi.Bool Function(ffi.Bool, ffi.Pointer<ffi.Bool>)>>('test1');
   late final _test1 =
-      _test1Ptr.asFunction<int Function(int, ffi.Pointer<ffi.Uint8>)>();
+      _test1Ptr.asFunction<bool Function(bool, ffi.Pointer<ffi.Bool>)>();
 }
 
 class Test2 extends ffi.Struct {
-  @ffi.Uint8()
-  external int a;
+  @ffi.Bool()
+  external bool a;
 }
diff --git a/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart
deleted file mode 100644
index c44dddd..0000000
--- a/test/code_generator_tests/expected_bindings/_expected_boolean_no_dartbool_bindings.dart
+++ /dev/null
@@ -1,40 +0,0 @@
-// AUTO GENERATED FILE, DO NOT EDIT.
-//
-// Generated by `package:ffigen`.
-import 'dart:ffi' as ffi;
-
-class Bindings {
-  /// Holds the symbol lookup function.
-  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
-      _lookup;
-
-  /// The symbols are looked up in [dynamicLibrary].
-  Bindings(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup;
-
-  /// The symbols are looked up with [lookup].
-  Bindings.fromLookup(
-      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
-          lookup)
-      : _lookup = lookup;
-
-  int test1(
-    int a,
-    ffi.Pointer<ffi.Uint8> b,
-  ) {
-    return _test1(
-      a,
-      b,
-    );
-  }
-
-  late final _test1Ptr = _lookup<
-      ffi.NativeFunction<
-          ffi.Uint8 Function(ffi.Uint8, ffi.Pointer<ffi.Uint8>)>>('test1');
-  late final _test1 =
-      _test1Ptr.asFunction<int Function(int, ffi.Pointer<ffi.Uint8>)>();
-}
-
-class Test2 extends ffi.Struct {
-  @ffi.Uint8()
-  external int a;
-}
diff --git a/test/code_generator_tests/expected_bindings/_expected_constant_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_constant_bindings.dart
index d01f2b1..a425c42 100644
--- a/test/code_generator_tests/expected_bindings/_expected_constant_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_constant_bindings.dart
@@ -3,7 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
-import 'dart:ffi' as ffi;
+// ignore_for_file: type=lint
 
 const int test1 = 20;
 
diff --git a/test/code_generator_tests/expected_bindings/_expected_enumclass_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_enumclass_bindings.dart
index 0aa2dbb..1f759d5 100644
--- a/test/code_generator_tests/expected_bindings/_expected_enumclass_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_enumclass_bindings.dart
@@ -3,8 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
-import 'dart:ffi' as ffi;
-
+// ignore_for_file: type=lint
 /// test line 1
 /// test line 2
 abstract class Constants {
diff --git a/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
index ada968c..ae9fc13 100644
--- a/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_function_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
diff --git a/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
index 6ccce4e..cad1980 100644
--- a/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_function_n_struct_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
@@ -17,8 +18,8 @@
           lookup)
       : _lookup = lookup;
 
-  ffi.Pointer<SomeStruc> someFunc(
-    ffi.Pointer<ffi.Pointer<SomeStruc>> some,
+  ffi.Pointer<SomeStruct> someFunc(
+    ffi.Pointer<ffi.Pointer<SomeStruct>> some,
   ) {
     return _someFunc(
       some,
@@ -27,13 +28,13 @@
 
   late final _someFuncPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<SomeStruc> Function(
-              ffi.Pointer<ffi.Pointer<SomeStruc>>)>>('someFunc');
+          ffi.Pointer<SomeStruct> Function(
+              ffi.Pointer<ffi.Pointer<SomeStruct>>)>>('someFunc');
   late final _someFunc = _someFuncPtr.asFunction<
-      ffi.Pointer<SomeStruc> Function(ffi.Pointer<ffi.Pointer<SomeStruc>>)>();
+      ffi.Pointer<SomeStruct> Function(ffi.Pointer<ffi.Pointer<SomeStruct>>)>();
 }
 
-class SomeStruc extends ffi.Struct {
+class SomeStruct extends ffi.Struct {
   @ffi.Int32()
   external int a;
 
diff --git a/test/code_generator_tests/expected_bindings/_expected_global_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_global_bindings.dart
index 0a531fa..f3f3f12 100644
--- a/test/code_generator_tests/expected_bindings/_expected_global_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_global_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
diff --git a/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
index b6e1378..edc3935 100644
--- a/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_internal_conflict_resolution_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class init_dylib1 {
diff --git a/test/code_generator_tests/expected_bindings/_expected_packed_structs_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_packed_structs_bindings.dart
index 4aea89a..e703e28 100644
--- a/test/code_generator_tests/expected_bindings/_expected_packed_structs_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_packed_structs_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class NoPacking extends ffi.Struct {
diff --git a/test/code_generator_tests/expected_bindings/_expected_sort_bindings_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_sort_bindings_bindings.dart
index cbae1f8..3a9aa67 100644
--- a/test/code_generator_tests/expected_bindings/_expected_sort_bindings_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_sort_bindings_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
diff --git a/test/code_generator_tests/expected_bindings/_expected_struct_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_struct_bindings.dart
index f84642b..f8482e7 100644
--- a/test/code_generator_tests/expected_bindings/_expected_struct_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_struct_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Just a test struct
@@ -26,3 +27,9 @@
   @ffi.Uint8()
   external int c;
 }
+
+class WithIntPtrUintPtr extends ffi.Struct {
+  external ffi.Pointer<ffi.UintPtr> a;
+
+  external ffi.Pointer<ffi.Pointer<ffi.IntPtr>> b;
+}
diff --git a/test/code_generator_tests/expected_bindings/_expected_typealias_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_typealias_bindings.dart
index e605db2..00306c6 100644
--- a/test/code_generator_tests/expected_bindings/_expected_typealias_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_typealias_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
@@ -19,19 +20,19 @@
           lookup)
       : _lookup = lookup;
 
-  ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> WithTypealiasStruc1(
+  ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> WithTypealiasStruct1(
     Struct3Typealias t,
   ) {
-    return _WithTypealiasStruc1(
+    return _WithTypealiasStruct1(
       t,
     );
   }
 
-  late final _WithTypealiasStruc1Ptr = _lookup<
+  late final _WithTypealiasStruct1Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> Function(
-              Struct3Typealias)>>('WithTypealiasStruc');
-  late final _WithTypealiasStruc1 = _WithTypealiasStruc1Ptr.asFunction<
+              Struct3Typealias)>>('WithTypealiasStruct');
+  late final _WithTypealiasStruct1 = _WithTypealiasStruct1Ptr.asFunction<
       ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> Function(
           Struct3Typealias)>();
 }
@@ -40,7 +41,7 @@
 
 class Struct1 extends ffi.Opaque {}
 
-class WithTypealiasStruc extends ffi.Struct {
+class WithTypealiasStruct extends ffi.Struct {
   external Struct2Typealias t;
 }
 
diff --git a/test/code_generator_tests/expected_bindings/_expected_unions_bindings.dart b/test/code_generator_tests/expected_bindings/_expected_unions_bindings.dart
index c7e7680..1865919 100644
--- a/test/code_generator_tests/expected_bindings/_expected_unions_bindings.dart
+++ b/test/code_generator_tests/expected_bindings/_expected_unions_bindings.dart
@@ -1,25 +1,26 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Struct1 extends ffi.Struct {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 }
 
 class Union1 extends ffi.Union {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 }
 
 class EmptyUnion extends ffi.Opaque {}
 
 class Primitives extends ffi.Union {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int b;
 
   @ffi.Float()
@@ -30,7 +31,7 @@
 }
 
 class PrimitivesWithPointers extends ffi.Union {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 
   @ffi.Float()
@@ -45,7 +46,7 @@
 
 class WithArray extends ffi.Union {
   @ffi.Array.multi([10])
-  external ffi.Array<ffi.Int8> a;
+  external ffi.Array<ffi.Char> a;
 
   @ffi.Array.multi([10])
   external ffi.Array<Union1> b;
diff --git a/test/collision_tests/decl_decl_collision_test.dart b/test/collision_tests/decl_decl_collision_test.dart
index 914563b..4529f29 100644
--- a/test/collision_tests/decl_decl_collision_test.dart
+++ b/test/collision_tests/decl_decl_collision_test.dart
@@ -14,16 +14,14 @@
     });
     test('declaration conflict', () {
       final l1 = Library(name: 'Bindings', bindings: [
-        Struc(name: 'TestStruc'),
-        Struc(name: 'TestStruc'),
+        Struct(name: 'TestStruct'),
+        Struct(name: 'TestStruct'),
         EnumClass(name: 'TestEnum'),
         EnumClass(name: 'TestEnum'),
         Func(
-            name: 'testFunc',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testFunc', returnType: NativeType(SupportedNativeType.Void)),
         Func(
-            name: 'testFunc',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testFunc', returnType: NativeType(SupportedNativeType.Void)),
         Constant(
           originalName: 'Test_Macro',
           name: 'Test_Macro',
@@ -37,40 +35,37 @@
           rawValue: '0',
         ),
         Typealias(
-            name: 'testAlias', type: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testAlias', type: NativeType(SupportedNativeType.Void)),
         Typealias(
-            name: 'testAlias', type: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testAlias', type: NativeType(SupportedNativeType.Void)),
 
         /// Conflicts across declarations.
-        Struc(name: 'testCrossDecl'),
+        Struct(name: 'testCrossDecl'),
         Func(
             name: 'testCrossDecl',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Constant(name: 'testCrossDecl', rawValue: '0', rawType: 'int'),
         EnumClass(name: 'testCrossDecl'),
         Typealias(
-            name: 'testCrossDecl',
-            type: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testCrossDecl', type: NativeType(SupportedNativeType.Void)),
 
         /// Conflicts with ffi library prefix, name of prefix is changed.
-        Struc(name: 'ffi'),
-        Func(
-            name: 'ffi1',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+        Struct(name: 'ffi'),
+        Func(name: 'ffi1', returnType: NativeType(SupportedNativeType.Void)),
       ]);
       final l2 = Library(name: 'Bindings', bindings: [
-        Struc(name: 'TestStruc'),
-        Struc(name: 'TestStruc1'),
+        Struct(name: 'TestStruct'),
+        Struct(name: 'TestStruct1'),
         EnumClass(name: 'TestEnum'),
         EnumClass(name: 'TestEnum1'),
         Func(
             name: 'testFunc',
             originalName: 'testFunc',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Func(
             name: 'testFunc1',
             originalName: 'testFunc',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Constant(
           originalName: 'Test_Macro',
           name: 'Test_Macro',
@@ -84,24 +79,20 @@
           rawValue: '0',
         ),
         Typealias(
-            name: 'testAlias', type: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testAlias', type: NativeType(SupportedNativeType.Void)),
         Typealias(
-            name: 'testAlias1',
-            type: Type.nativeType(SupportedNativeType.Void)),
-        Struc(name: 'testCrossDecl', originalName: 'testCrossDecl'),
+            name: 'testAlias1', type: NativeType(SupportedNativeType.Void)),
+        Struct(name: 'testCrossDecl', originalName: 'testCrossDecl'),
         Func(
             name: 'testCrossDecl1',
             originalName: 'testCrossDecl',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Constant(name: 'testCrossDecl2', rawValue: '0', rawType: 'int'),
         EnumClass(name: 'testCrossDecl3'),
         Typealias(
-            name: 'testCrossDecl4',
-            type: Type.nativeType(SupportedNativeType.Void)),
-        Struc(name: 'ffi'),
-        Func(
-            name: 'ffi1',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            name: 'testCrossDecl4', type: NativeType(SupportedNativeType.Void)),
+        Struct(name: 'ffi'),
+        Func(name: 'ffi1', returnType: NativeType(SupportedNativeType.Void)),
       ]);
 
       expect(l1.generate(), l2.generate());
diff --git a/test/collision_tests/decl_symbol_address_collision_test.dart b/test/collision_tests/decl_symbol_address_collision_test.dart
index 9520139..0280732 100644
--- a/test/collision_tests/decl_symbol_address_collision_test.dart
+++ b/test/collision_tests/decl_symbol_address_collision_test.dart
@@ -17,29 +17,26 @@
         header:
             '// ignore_for_file: unused_element, camel_case_types, non_constant_identifier_names\n',
         bindings: [
-          Struc(name: 'addresses'),
-          Struc(name: '_SymbolAddresses'),
+          Struct(name: 'addresses'),
+          Struct(name: '_SymbolAddresses'),
           EnumClass(name: 'Bindings'),
           Func(
             name: '_library',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
             exposeSymbolAddress: true,
             exposeFunctionTypedefs: true,
           ),
           Func(
             name: '_SymbolAddresses_1',
-            returnType: Type.nativeType(SupportedNativeType.Void),
+            returnType: NativeType(SupportedNativeType.Void),
             exposeSymbolAddress: true,
           ),
         ],
       );
     });
     test('declaration and symbol address conflict', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'collision_test_decl_symbol_address_collision_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'collision_test_decl_symbol_address_collision_output.dart', [
         'test',
         'collision_tests',
         'expected_bindings',
diff --git a/test/collision_tests/decl_type_name_collision_test.dart b/test/collision_tests/decl_type_name_collision_test.dart
index 5bb8f82..19e9497 100644
--- a/test/collision_tests/decl_type_name_collision_test.dart
+++ b/test/collision_tests/decl_type_name_collision_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,7 +16,7 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Decl type name collision test'
 ${strings.output}: 'unused'
@@ -27,16 +25,13 @@
     - 'test/collision_tests/decl_type_name_collision.h'
 ${strings.preamble}: |
     // ignore_for_file: non_constant_identifier_names, 
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'decl_type_name_collision_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'decl_type_name_collision_test_output.dart', [
         'test',
         'collision_tests',
         'expected_bindings',
diff --git a/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart b/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
index b45cdcd..3b3e791 100644
--- a/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
+++ b/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings1 {
diff --git a/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart b/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart
index 5dab4a2..f7207cf 100644
--- a/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart
+++ b/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart
@@ -3,18 +3,19 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class A extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
 class B extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int B1;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int A;
 }
 
diff --git a/test/collision_tests/reserved_keyword_collision_test.dart b/test/collision_tests/reserved_keyword_collision_test.dart
index e38894d..c6873f2 100644
--- a/test/collision_tests/reserved_keyword_collision_test.dart
+++ b/test/collision_tests/reserved_keyword_collision_test.dart
@@ -15,73 +15,70 @@
     });
     test('reserved keyword collision', () {
       final l1 = Library(name: 'Bindings', bindings: [
-        Struc(name: 'abstract'),
-        Struc(name: 'abstract'),
-        Struc(name: 'if'),
+        Struct(name: 'abstract'),
+        Struct(name: 'abstract'),
+        Struct(name: 'if'),
         EnumClass(name: 'return'),
         EnumClass(name: 'export'),
-        Func(
-            name: 'show',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+        Func(name: 'show', returnType: NativeType(SupportedNativeType.Void)),
         Func(
             name: 'implements',
             parameters: [
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'if',
               ),
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'abstract',
               ),
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'in',
               ),
             ],
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Constant(
           name: 'else',
           rawType: 'int',
           rawValue: '0',
         ),
-        Typealias(name: 'var', type: Type.nativeType(SupportedNativeType.Void)),
+        Typealias(name: 'var', type: NativeType(SupportedNativeType.Void)),
       ]);
       final l2 = Library(name: 'Bindings', bindings: [
-        Struc(name: 'abstract1'),
-        Struc(name: 'abstract2'),
-        Struc(name: 'if1'),
+        Struct(name: 'abstract1'),
+        Struct(name: 'abstract2'),
+        Struct(name: 'if1'),
         EnumClass(name: 'return1'),
         EnumClass(name: 'export1'),
         Func(
             name: 'show1',
             originalName: 'show',
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Func(
             name: 'implements1',
             originalName: 'implements',
             parameters: [
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'if1',
               ),
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'abstract1',
               ),
               Parameter(
-                type: Type.nativeType(SupportedNativeType.Int32),
+                type: intType,
                 name: 'in1',
               ),
             ],
-            returnType: Type.nativeType(SupportedNativeType.Void)),
+            returnType: NativeType(SupportedNativeType.Void)),
         Constant(
           name: 'else1',
           rawType: 'int',
           rawValue: '0',
         ),
-        Typealias(
-            name: 'var1', type: Type.nativeType(SupportedNativeType.Void)),
+        Typealias(name: 'var1', type: NativeType(SupportedNativeType.Void)),
       ]);
       expect(l1.generate(), l2.generate());
     });
diff --git a/test/config_tests/compiler_opts_test.dart b/test/config_tests/compiler_opts_test.dart
index 5193d4d..0b711ac 100644
--- a/test/config_tests/compiler_opts_test.dart
+++ b/test/config_tests/compiler_opts_test.dart
@@ -6,7 +6,8 @@
 import 'package:ffigen/src/config_provider/spec_utils.dart';
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
+
+import '../test_utils.dart';
 
 late Library actual, expected;
 
@@ -28,7 +29,7 @@
       );
     });
     test('Compiler Opts Automatic', () {
-      final config = Config.fromYaml(yaml.loadYaml('''
+      final config = testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Compiler Opts Test'
 ${strings.output}: 'unused'
@@ -38,7 +39,7 @@
 ${strings.compilerOptsAuto}:
   ${strings.macos}:
     ${strings.includeCStdLib}: false
-        ''') as yaml.YamlMap);
+        ''');
       expect(config.compilerOpts.isEmpty, true);
     });
   });
diff --git a/test/config_tests/exclude_all_by_default.h b/test/config_tests/exclude_all_by_default.h
new file mode 100644
index 0000000..e45634a
--- /dev/null
+++ b/test/config_tests/exclude_all_by_default.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+void func();
+
+struct Struct {
+  int a;
+};
+
+union Union {
+  int a;
+};
+
+int global;
+
+#define MACRO 123
+
+enum Enum {
+  zero = 0,
+};
+
+enum {
+  unnamedEnum = 123,
+};
diff --git a/test/config_tests/exclude_all_by_default_test.dart b/test/config_tests/exclude_all_by_default_test.dart
new file mode 100644
index 0000000..361e4b2
--- /dev/null
+++ b/test/config_tests/exclude_all_by_default_test.dart
@@ -0,0 +1,56 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/ffigen.dart';
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('exclude_all_by_default', () {
+    test('exclude_all_by_default test flag false', () {
+      final config = testConfig('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'exclude_all_by_default test'
+${strings.output}: 'unused'
+${strings.excludeAllByDefault}: false
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/config_tests/exclude_all_by_default.h'
+''');
+
+      final library = parse(config);
+      expect(library.getBinding('func'), isA<Func>());
+      expect(library.getBinding('Struct'), isA<Struct>());
+      expect(library.getBinding('Union'), isA<Union>());
+      expect(library.getBinding('global'), isA<Global>());
+      expect(library.getBinding('MACRO'), isA<Constant>());
+      expect(library.getBinding('Enum'), isA<EnumClass>());
+      expect(library.getBinding('unnamedEnum'), isA<Constant>());
+    });
+
+    test('exclude_all_by_default test flag true', () {
+      final config = testConfig('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'exclude_all_by_default test'
+${strings.output}: 'unused'
+${strings.excludeAllByDefault}: true
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/config_tests/exclude_all_by_default.h'
+''');
+
+      final library = parse(config);
+      expect(() => library.getBinding('func'), throwsException);
+      expect(() => library.getBinding('Struct'), throwsException);
+      expect(() => library.getBinding('Union'), throwsException);
+      expect(() => library.getBinding('global'), throwsException);
+      expect(() => library.getBinding('MACRO'), throwsException);
+      expect(() => library.getBinding('Enum'), throwsException);
+      expect(() => library.getBinding('unnamedEnum'), throwsException);
+    });
+  });
+}
diff --git a/test/config_tests/include_exclude.h b/test/config_tests/include_exclude.h
new file mode 100644
index 0000000..b62e8f3
--- /dev/null
+++ b/test/config_tests/include_exclude.h
@@ -0,0 +1,28 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+typedef int Typedef;
+
+void func(Typedef s);
+
+struct Struct {
+  int a;
+};
+
+union Union {
+  int a;
+};
+
+int global;
+
+#define MACRO 123
+
+enum Enum {
+  zero = 0,
+};
+
+enum {
+  unnamedEnum = 123,
+};
+
diff --git a/test/config_tests/include_exclude_test.dart b/test/config_tests/include_exclude_test.dart
new file mode 100644
index 0000000..1f27885
--- /dev/null
+++ b/test/config_tests/include_exclude_test.dart
@@ -0,0 +1,73 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/ffigen.dart';
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('include_exclude', () {
+    const fieldsAndNameMap = {
+      strings.functions: 'func',
+      strings.structs: 'Struct',
+      strings.unions: 'Union',
+      strings.enums: 'Enum',
+      strings.unnamedEnums: 'unnamedEnum',
+      strings.macros: 'MACRO',
+      strings.globals: 'global',
+      strings.typedefs: 'Typedef',
+    };
+    for (final f in fieldsAndNameMap.keys) {
+      test('include $f', () {
+        final config = _makeFieldIncludeExcludeConfig(
+            field: f, include: fieldsAndNameMap[f]);
+        final library = parse(config);
+        expect(library.getBinding(fieldsAndNameMap[f]!), isNotNull);
+      });
+      test('exclude $f', () {
+        final config = _makeFieldIncludeExcludeConfig(
+            field: f, exclude: fieldsAndNameMap[f]);
+        final library = parse(config);
+        expect(() => library.getBinding(fieldsAndNameMap[f]!), throwsException);
+      });
+    }
+  });
+}
+
+Config _makeFieldIncludeExcludeConfig({
+  required String field,
+  String? include,
+  String? exclude,
+}) {
+  var templateString = '''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'include_exclude test'
+${strings.output}: 'unused'
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/config_tests/include_exclude.h'
+''';
+  if (include != null || exclude != null) {
+    templateString += '''
+$field:
+''';
+    if (include != null) {
+      templateString += '''
+  ${strings.include}:
+    - $include
+''';
+    }
+    if (exclude != null) {
+      templateString += '''
+  ${strings.exclude}:
+    - $exclude
+''';
+    }
+  }
+
+  final config = testConfig(templateString);
+  return config;
+}
diff --git a/test/config_tests/packed_struct_override_test.dart b/test/config_tests/packed_struct_override_test.dart
index ca371d8..68f8954 100644
--- a/test/config_tests/packed_struct_override_test.dart
+++ b/test/config_tests/packed_struct_override_test.dart
@@ -6,7 +6,6 @@
 import 'package:ffigen/src/code_generator.dart';
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -24,21 +23,15 @@
 ${strings.structs}:
   ${strings.structPack}:
     ''';
-      expect(
-          () => Config.fromYaml(
-              yaml.loadYaml(baseYaml + "'.*': null") as yaml.YamlMap),
+      expect(() => testConfig("$baseYaml'.*': null"),
           throwsA(TypeMatcher<FormatException>()));
-      expect(
-          () => Config.fromYaml(
-              yaml.loadYaml(baseYaml + "'.*': 3") as yaml.YamlMap),
+      expect(() => testConfig("$baseYaml'.*': 3"),
           throwsA(TypeMatcher<FormatException>()));
-      expect(
-          () => Config.fromYaml(
-              yaml.loadYaml(baseYaml + "'.*': 32") as yaml.YamlMap),
+      expect(() => testConfig("$baseYaml'.*': 32"),
           throwsA(TypeMatcher<FormatException>()));
     });
     test('Override values', () {
-      final config = Config.fromYaml(yaml.loadYaml('''
+      final config = testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Packed Struct Override Test'
 ${strings.output}: 'unused'
@@ -50,13 +43,13 @@
     'Normal.*': 1
     'StructWithAttr': 2
     'PackedAttr': none
-        ''') as yaml.YamlMap);
+        ''');
 
       final library = parse(config);
 
-      expect((library.getBinding('NormalStruct1') as Struc).pack, 1);
-      expect((library.getBinding('StructWithAttr') as Struc).pack, 2);
-      expect((library.getBinding('PackedAttr') as Struc).pack, null);
+      expect((library.getBinding('NormalStruct1') as Struct).pack, 1);
+      expect((library.getBinding('StructWithAttr') as Struct).pack, 2);
+      expect((library.getBinding('PackedAttr') as Struct).pack, null);
     });
   });
 }
diff --git a/test/config_tests/unknown_keys_warn_test.dart b/test/config_tests/unknown_keys_warn_test.dart
new file mode 100644
index 0000000..3dd0451
--- /dev/null
+++ b/test/config_tests/unknown_keys_warn_test.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/ffigen.dart';
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+late Library actual, expected;
+
+void main() {
+  var logString = '';
+  group('unknown_keys_warn_test', () {
+    setUpAll(() {
+      final logArr = <String>[];
+      logWarningsToArray(logArr, Level.WARNING);
+      testConfig('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Warn for unknown keys.'
+${strings.output}: 'unused'
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/header_parser_tests/packed_structs.h'
+'warn-1': 'warn'
+${strings.typeMap}:
+  'warn-2': 'warn'
+  'warn-3': 'warn'
+${strings.functions}:
+  'warn-4': 'skip'
+${strings.structs}:
+  'warn-5': 'skip'
+${strings.unions}:
+  'warn-6': 'skip'
+        ''');
+      logString = logArr.join("\n");
+    });
+    test('Warn for unknown keys.', () {
+      expect(logString.contains('warn-1'), true);
+      expect(logString.contains('warn-2'), true);
+      expect(logString.contains('warn-3'), true);
+    });
+    test('Do not warn for unknown keys in declarations.', () {
+      expect(logString.contains('warn-4'), false);
+      expect(logString.contains('warn-5'), false);
+      expect(logString.contains('warn-6'), false);
+    });
+  });
+}
diff --git a/test/example_tests/cjson_example_test.dart b/test/example_tests/cjson_example_test.dart
index c95bcf2..714cb70 100644
--- a/test/example_tests/cjson_example_test.dart
+++ b/test/example_tests/cjson_example_test.dart
@@ -2,12 +2,10 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:ffigen/src/config_provider/config.dart';
 import 'package:ffigen/src/header_parser.dart';
-import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
@@ -17,47 +15,14 @@
       logWarnings(Level.SEVERE);
     });
     test('c_json', () {
-      final config = Config.fromYaml(loadYaml('''
-${strings.output}: 'cjson_generated_bindings.dart'
-${strings.name}: 'CJson'
-${strings.description}: 'Holds bindings to cJSON.'
-${strings.headers}:
-  ${strings.entryPoints}:
-    - 'third_party/cjson_library/cJSON.h'
-  ${strings.includeDirectives}:
-    - '**cJSON.h'
-${strings.comments}: false
-${strings.typedefmap}:
-  'size_t': 'IntPtr'
-${strings.preamble}: |
-  // Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
-  //
-  // Permission is hereby granted, free of charge, to any person obtaining a copy
-  // of this software and associated documentation files (the "Software"), to deal
-  // in the Software without restriction, including without limitation the rights
-  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  // copies of the Software, and to permit persons to whom the Software is
-  // furnished to do so, subject to the following conditions:
-  //
-  // The above copyright notice and this permission notice shall be included in
-  // all copies or substantial portions of the Software.
-  //
-  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-  // THE SOFTWARE.
-
-  // ignore_for_file: camel_case_types, non_constant_identifier_names
-''') as YamlMap);
+      final config =
+          testConfigFromPath(path.join('example', 'c_json', 'config.yaml'));
       final library = parse(config);
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_c_json.dart'],
-        ['example', 'c_json', config.output],
+        'example_c_json.dart',
+        [config.output],
       );
     });
   });
diff --git a/test/example_tests/ffinative_example_test.dart b/test/example_tests/ffinative_example_test.dart
new file mode 100644
index 0000000..28588b1
--- /dev/null
+++ b/test/example_tests/ffinative_example_test.dart
@@ -0,0 +1,30 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/header_parser.dart';
+import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('ffinative_example_test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+    });
+
+    test('ffinative', () {
+      final config =
+          testConfigFromPath(path.join('example', 'ffinative', 'config.yaml'));
+      final library = parse(config);
+
+      matchLibraryWithExpected(
+        library,
+        'example_ffinative.dart',
+        [config.output],
+      );
+    });
+  });
+}
diff --git a/test/example_tests/libclang_example_test.dart b/test/example_tests/libclang_example_test.dart
index 1ca9600..8414e49 100644
--- a/test/example_tests/libclang_example_test.dart
+++ b/test/example_tests/libclang_example_test.dart
@@ -2,12 +2,14 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'dart:io';
+
+import 'package:ffigen/src/code_generator/library.dart';
 import 'package:ffigen/src/config_provider/config.dart';
 import 'package:ffigen/src/header_parser.dart';
-import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
@@ -17,55 +19,20 @@
       logWarnings(Level.SEVERE);
     });
     test('libclang-example', () {
-      final config = Config.fromYaml(loadYaml('''
-${strings.output}: 'generated_bindings.dart'
-${strings.headers}:
-  ${strings.entryPoints}:
-    - third_party/libclang/include/clang-c/Index.h
-  ${strings.includeDirectives}:
-    - '**CXString.h'
-    - '**Index.h'
-
-${strings.compilerOpts}: '-Ithird_party/libclang/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ -Wno-nullability-completeness'
-${strings.functions}:
-  ${strings.include}:
-    - 'clang_.*'
-  ${strings.symbolAddress}:
-      ${strings.include}:
-        - 'clang_.*'
-  ${strings.exposeFunctionTypedefs}:
-      ${strings.include}:
-        - 'clang_.*'
-${strings.structs}:
-  ${strings.include}:
-      - 'CX.*'
-${strings.enums}:
-  ${strings.include}:
-    - 'CXTypeKind'
-    - 'CXGlobalOptFlags'
-${strings.typedefmap}:
-    'size_t': 'IntPtr'
-    'time_t': 'Int64'
-${strings.name}: 'LibClang'
-${strings.description}: 'Holds bindings to LibClang.'
-${strings.comments}:
-  ${strings.style}: ${strings.doxygen}
-  ${strings.length}: ${strings.full}
-
-${strings.preamble}: |
-  // Part of the LLVM Project, under the Apache License v2.0 with LLVM
-  // Exceptions.
-  // See https://llvm.org/LICENSE.txt for license information.
-  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-  // ignore_for_file: camel_case_types, non_constant_identifier_names
-''') as YamlMap);
-      final library = parse(config);
+      final configYaml =
+          File(path.join('example', 'libclang-example', 'config.yaml'))
+              .absolute;
+      late Config config;
+      late Library library;
+      withChDir(configYaml.path, () {
+        config = testConfigFromPath(configYaml.path);
+        library = parse(config);
+      });
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_libclang.dart'],
-        ['example', 'libclang-example', config.output],
+        'example_libclang.dart',
+        [config.output],
       );
     });
   });
diff --git a/test/example_tests/objective_c_example_test.dart b/test/example_tests/objective_c_example_test.dart
new file mode 100644
index 0000000..b291edb
--- /dev/null
+++ b/test/example_tests/objective_c_example_test.dart
@@ -0,0 +1,44 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'package:ffigen/src/header_parser.dart';
+import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('objective_c_example_test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+    });
+
+    test('objective_c', () {
+      final config = testConfigFromPath(
+          path.join('example', 'objective_c', 'config.yaml'));
+      final output = parse(config).generate();
+
+      // Verify that the output contains all the methods and classes that the
+      // example app uses.
+      expect(output, contains('class AVFAudio{'));
+      expect(output, contains('class NSString extends NSObject {'));
+      expect(output, contains('class NSURL extends NSObject {'));
+      expect(
+          output,
+          contains(
+              'static NSURL fileURLWithPath_(AVFAudio _lib, NSString? path) {'));
+      expect(output, contains('class AVAudioPlayer extends NSObject {'));
+      expect(
+          output,
+          contains('AVAudioPlayer initWithContentsOfURL_error_('
+              'NSURL? url, ffi.Pointer<ffi.Pointer<ObjCObject>> outError) {'));
+      expect(output, contains('double get duration {'));
+      expect(output, contains('bool play() {'));
+    });
+  });
+}
diff --git a/test/example_tests/shared_bindings_example_test.dart b/test/example_tests/shared_bindings_example_test.dart
new file mode 100644
index 0000000..0d4e39b
--- /dev/null
+++ b/test/example_tests/shared_bindings_example_test.dart
@@ -0,0 +1,50 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/header_parser.dart';
+import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('shared_bindings_example', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+    });
+
+    test('a_shared_base bindings', () {
+      final config = testConfigFromPath(path.join(
+        'example',
+        'shared_bindings',
+        'ffigen_configs',
+        'a_shared_base.yaml',
+      ));
+      final library = parse(config);
+
+      matchLibraryWithExpected(
+        library,
+        'example_shared_bindings.dart',
+        [config.output],
+      );
+    });
+
+    test('base symbol file output', () {
+      final config = testConfigFromPath(path.join(
+        'example',
+        'shared_bindings',
+        'ffigen_configs',
+        'base.yaml',
+      ));
+      final library = parse(config);
+      matchLibrarySymbolFileWithExpected(
+        library,
+        'example_shared_bindings.yaml',
+        [config.symbolFile!.output],
+        config.symbolFile!.importPath,
+      );
+    });
+  });
+}
diff --git a/test/example_tests/simple_example_test.dart b/test/example_tests/simple_example_test.dart
index 190e65e..343bf1c 100644
--- a/test/example_tests/simple_example_test.dart
+++ b/test/example_tests/simple_example_test.dart
@@ -2,12 +2,10 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:ffigen/src/config_provider/config.dart';
 import 'package:ffigen/src/header_parser.dart';
-import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
@@ -18,20 +16,17 @@
     });
 
     test('simple', () {
-      final config = Config.fromYaml(loadYaml('''
-${strings.name}: NativeLibrary
-${strings.description}: Bindings to `headers/example.h`.
-${strings.output}: 'generated_bindings.dart'
-${strings.headers}:
-  ${strings.entryPoints}:
-    - 'example/simple/headers/example.h'
-''') as YamlMap);
+      final config = testConfigFromPath(path.join(
+        'example',
+        'simple',
+        'config.yaml',
+      ));
       final library = parse(config);
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_simple.dart'],
-        ['example', 'simple', config.output],
+        'example_simple.dart',
+        [config.output],
       );
     });
   });
diff --git a/test/example_tests/swift_example_test.dart b/test/example_tests/swift_example_test.dart
new file mode 100644
index 0000000..02ed00a
--- /dev/null
+++ b/test/example_tests/swift_example_test.dart
@@ -0,0 +1,69 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Swift support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:ffigen/src/header_parser.dart';
+import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void main() {
+  group('swift_example_test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+    });
+
+    test('swift', () async {
+      // Run the swiftc command from the example README, to generate the header.
+      final process = await Process.start(
+          'swiftc',
+          [
+            '-c',
+            'swift_api.swift',
+            '-module-name',
+            'swift_module',
+            '-emit-objc-header-path',
+            'swift_api.h',
+            '-emit-library',
+            '-o',
+            'libswiftapi.dylib',
+          ],
+          workingDirectory: path.join(Directory.current.path, 'example/swift'));
+      unawaited(stdout.addStream(process.stdout));
+      unawaited(stderr.addStream(process.stderr));
+      final result = await process.exitCode;
+      expect(result, 0);
+
+      final config = testConfigFromPath(path.join(
+        'example',
+        'swift',
+        'config.yaml',
+      ));
+      final output = parse(config).generate();
+
+      // Verify that the output contains all the methods and classes that the
+      // example app uses.
+      expect(output, contains('class SwiftLibrary{'));
+      expect(output, contains('class NSString extends NSObject {'));
+      expect(output, contains('class SwiftClass extends NSObject {'));
+      expect(output, contains('static SwiftClass new1(SwiftLibrary _lib) {'));
+      expect(output, contains('NSString sayHello() {'));
+      expect(output, contains('int get someField {'));
+      expect(output, contains('set someField(int value) {'));
+
+      // Verify that SwiftClass is loaded using the swift_module prefix.
+      expect(
+          output,
+          contains(RegExp(r'late final _class_SwiftClass.* = '
+              r'_getClass.*\("swift_module\.SwiftClass"\)')));
+    });
+  });
+}
diff --git a/test/header_parser_tests/comment_markup_test.dart b/test/header_parser_tests/comment_markup_test.dart
index 3fadaea..e31098a 100644
--- a/test/header_parser_tests/comment_markup_test.dart
+++ b/test/header_parser_tests/comment_markup_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,7 +16,7 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Comment Markup Test'
 ${strings.output}: 'unused'
@@ -28,16 +26,13 @@
 ${strings.comments}:
   ${strings.style}: ${strings.any}
   ${strings.length}: ${strings.full}
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_comment_markup_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_comment_markup_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/dart_handle.h b/test/header_parser_tests/dart_handle.h
index 8a2d802..26d73fa 100644
--- a/test/header_parser_tests/dart_handle.h
+++ b/test/header_parser_tests/dart_handle.h
@@ -12,14 +12,14 @@
 void func4(Typedef1);
 
 // Dart_Handle isn't supported directly, so all members are removed.
-struct Struc1
+struct Struct1
 {
     Dart_Handle h;
     int a;
 };
 
 // Pointer<Handle> works.
-struct Struc2
+struct Struct2
 {
     Dart_Handle *h;
 };
diff --git a/test/header_parser_tests/dart_handle_test.dart b/test/header_parser_tests/dart_handle_test.dart
index 9089302..484d8b0 100644
--- a/test/header_parser_tests/dart_handle_test.dart
+++ b/test/header_parser_tests/dart_handle_test.dart
@@ -4,12 +4,10 @@
 
 import 'package:cli_util/cli_util.dart';
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -20,7 +18,7 @@
     setUpAll(() {
       logWarnings();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Dart_Handle Test'
 ${strings.output}: 'unused'
@@ -31,15 +29,12 @@
     - 'test/header_parser_tests/dart_handle.h'
   ${strings.includeDirectives}:
     - '**dart_handle.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_dart_handle_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_dart_handle_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart
index 6a95e52..ea88b5b 100644
--- a/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Comment Markup Test
@@ -54,7 +55,7 @@
 class Com4 extends ffi.Struct {
   /// Muli-line test comment for struct field
   /// With multiple line and both // and ///.
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 
   /// Single line field comment.
diff --git a/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart
index b00eaf9..f51bf57 100644
--- a/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Dart_Handle Test
@@ -70,8 +71,8 @@
 typedef Typedef1
     = ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Handle)>>;
 
-class Struc1 extends ffi.Opaque {}
+class Struct1 extends ffi.Opaque {}
 
-class Struc2 extends ffi.Struct {
+class Struct2 extends ffi.Struct {
   external ffi.Pointer<ffi.Handle> h;
 }
diff --git a/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
index 01fe05c..81cb2e3 100644
--- a/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Forward Declaration Test
@@ -36,10 +37,10 @@
 }
 
 class A extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int b;
 }
 
diff --git a/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart
index d42ec32..c4a01b3 100644
--- a/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Functions Test
@@ -102,6 +103,21 @@
       void Function(ffi.Pointer<shortHand>,
           ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>();
 
+  int diffChars(
+    int a,
+    int b,
+  ) {
+    return _diffChars(
+      a,
+      b,
+    );
+  }
+
+  late final _diffCharsPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Char Function(ffi.UnsignedChar, ffi.SignedChar)>>('diffChars');
+  late final _diffChars = _diffCharsPtr.asFunction<int Function(int, int)>();
+
   late final addresses = _SymbolAddresses(this);
 }
 
@@ -122,4 +138,4 @@
 }
 
 typedef shortHand = ffi.NativeFunction<
-    ffi.Void Function(ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>;
+    ffi.Void Function(ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> b)>;
diff --git a/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart
new file mode 100644
index 0000000..ab0fc5a
--- /dev/null
+++ b/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart
@@ -0,0 +1,82 @@
+// ignore_for_file: camel_case_types
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Imported types test
+class NativeLibrary {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  NativeLibrary(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  NativeLibrary.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void default_imported_types(
+    int arg0,
+    int arg1,
+    int arg2,
+    int arg3,
+    int arg4,
+    int arg5,
+    int arg6,
+    int arg7,
+    int arg8,
+    int arg9,
+    int arg10,
+    double arg11,
+    double arg12,
+    int arg13,
+    int arg14,
+  ) {
+    return _default_imported_types(
+      arg0,
+      arg1,
+      arg2,
+      arg3,
+      arg4,
+      arg5,
+      arg6,
+      arg7,
+      arg8,
+      arg9,
+      arg10,
+      arg11,
+      arg12,
+      arg13,
+      arg14,
+    );
+  }
+
+  late final _default_imported_typesPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.UnsignedChar,
+              ffi.SignedChar,
+              ffi.Char,
+              ffi.UnsignedShort,
+              ffi.Short,
+              ffi.UnsignedInt,
+              ffi.Int,
+              ffi.UnsignedLong,
+              ffi.Long,
+              ffi.UnsignedLongLong,
+              ffi.LongLong,
+              ffi.Float,
+              ffi.Double,
+              ffi.Size,
+              ffi.WChar)>>('default_imported_types');
+  late final _default_imported_types = _default_imported_typesPtr.asFunction<
+      void Function(int, int, int, int, int, int, int, int, int, int, int,
+          double, double, int, int)>();
+}
diff --git a/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
index 802d838..6ef30ff 100644
--- a/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Native Func Typedef Test.
@@ -23,7 +24,8 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(
-                    ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>>
+                    ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>
+                        unnamed2)>>
         unnamed1,
   ) {
     return _func(
@@ -37,16 +39,15 @@
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
-                          ffi.Pointer<
-                              ffi.NativeFunction<
-                                  ffi.Void Function()>>)>>)>>('func');
+                          ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>
+                              unnamed2)>>)>>('func');
   late final _func = _funcPtr.asFunction<
       void Function(
           ffi.Pointer<
               ffi.NativeFunction<
                   ffi.Void Function(
-                      ffi.Pointer<
-                          ffi.NativeFunction<ffi.Void Function()>>)>>)>();
+                      ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>
+                          unnamed2)>>)>();
 
   void funcWithNativeFunc(
     WithTypedefReturnType named,
@@ -63,18 +64,19 @@
       _funcWithNativeFuncPtr.asFunction<void Function(WithTypedefReturnType)>();
 }
 
-class Struc extends ffi.Struct {
+class Struct extends ffi.Struct {
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Void Function(
-              ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>> unnamed1;
+              ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>
+                  unnamed2)>> unnamed1;
 }
 
 typedef WithTypedefReturnType
     = ffi.Pointer<ffi.NativeFunction<InsideReturnType Function()>>;
 typedef InsideReturnType = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>;
 
-class Struc2 extends ffi.Struct {
+class Struct2 extends ffi.Struct {
   external VoidFuncPointer constFuncPointer;
 }
 
diff --git a/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart
index b891dd9..c53f04f 100644
--- a/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Opaque Dependencies Test
@@ -63,7 +64,7 @@
 class C extends ffi.Opaque {}
 
 class D extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
@@ -80,6 +81,6 @@
 class UC extends ffi.Opaque {}
 
 class UD extends ffi.Union {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
diff --git a/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart
index d27adc4..9dfabd2 100644
--- a/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart
@@ -1,49 +1,50 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class NormalStruct1 extends ffi.Struct {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 }
 
 /// Should not be packed.
 class StructWithAttr extends ffi.Struct {
-  external ffi.Pointer<ffi.Int32> a;
+  external ffi.Pointer<ffi.Int> a;
 
-  external ffi.Pointer<ffi.Int32> b;
+  external ffi.Pointer<ffi.Int> b;
 }
 
 /// Should be packed with 1.
 @ffi.Packed(1)
 class PackedAttr extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
 /// Should be packed with 8.
 @ffi.Packed(8)
 class PackedAttrAlign8 extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
 /// Should be packed with 2.
 @ffi.Packed(2)
 class Pack2WithPragma extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
 /// Should be packed with 4.
 @ffi.Packed(4)
 class Pack4WithPragma extends ffi.Struct {
-  @ffi.Int64()
+  @ffi.LongLong()
   external int a;
 }
 
 class NormalStruct2 extends ffi.Struct {
-  @ffi.Int8()
+  @ffi.Char()
   external int a;
 }
diff --git a/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart
new file mode 100644
index 0000000..ab9ec8f
--- /dev/null
+++ b/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart
@@ -0,0 +1,29 @@
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Regression test for #384
+class NativeLibrary {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  NativeLibrary(ffi.DynamicLibrary dynamicLibrary)
+      : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  NativeLibrary.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  void foo() {
+    return _foo();
+  }
+
+  late final _fooPtr = _lookup<ffi.NativeFunction<ffi.Void Function()>>('foo');
+  late final _foo = _fooPtr.asFunction<void Function()>();
+}
diff --git a/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart
new file mode 100644
index 0000000..b0490b2
--- /dev/null
+++ b/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart
@@ -0,0 +1,72 @@
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+class S extends ffi.Struct {
+  external ffi.Pointer<ffi.NativeFunction<ffi.Int Function()>> func1;
+
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int a, ffi.Int b)>>
+      comparator;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Int Function(ffi.Double a, ffi.Float b, ffi.Pointer<ffi.Char> c,
+              ffi.Int d, ffi.LongLong e)>> veryManyArguments;
+
+  external ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Int Function(
+                  ffi.Int, ffi.Int, ffi.Int, ffi.Float, ffi.Pointer<ffi.Char>)>>
+      argsDontHaveNames;
+
+  external ArithmeticOperation operation;
+
+  external ffi.Pointer<
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  ffi.Void Function(ffi.Pointer<ffi.Int> array, ffi.Int len)>>>
+      sortPtr;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ffi.Int> array,
+              ffi.Int len,
+              ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int x)>>
+                  evaluator)>> sortBy;
+
+  external ffi.Pointer<
+          ffi.NativeFunction<ffi.Void Function(ffi.Int, ffi.Int, ffi.Char)>>
+      improperlyDeclaredParams;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ffi.Int> array,
+              ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int x)>>
+                  primaryEvaluator,
+              ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int x)>>
+                  fallbackEvaluator)>> sortByWithFallback;
+
+  @ffi.Array.multi([2])
+  external ffi.Array<
+          ffi.Pointer<
+              ffi.NativeFunction<ffi.Void Function(ffi.Char, ffi.Char)>>>
+      manyFunctions;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>
+              Function(ffi.Int, ffi.Int)>> functionReturningFunction;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>
+              Function(ffi.Int, ffi.Int)>> functionReturningFunctionImproper;
+}
+
+typedef ArithmeticOperation
+    = ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int a, ffi.Int b)>>;
diff --git a/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart
index ec8eb3f..412acb2 100644
--- a/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 class Bindings {
@@ -21,7 +22,7 @@
 
   NamedFunctionProto func1(
     NamedFunctionProto named,
-    ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Int32)>> unnamed,
+    ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Int)>> unnamed,
   ) {
     return _func1(
       named,
@@ -34,10 +35,10 @@
           NamedFunctionProto Function(
               NamedFunctionProto,
               ffi.Pointer<
-                  ffi.NativeFunction<ffi.Void Function(ffi.Int32)>>)>>('func1');
+                  ffi.NativeFunction<ffi.Void Function(ffi.Int)>>)>>('func1');
   late final _func1 = _func1Ptr.asFunction<
       NamedFunctionProto Function(NamedFunctionProto,
-          ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Int32)>>)>();
+          ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Int)>>)>();
 
   void func2(
     ffi.Pointer<NTyperef1> arg0,
@@ -69,19 +70,18 @@
   late final _func3 = _func3Ptr.asFunction<void Function(int, int)>();
 
   bool func4(
-    ffi.Pointer<ffi.Uint8> a,
+    ffi.Pointer<ffi.Bool> a,
   ) {
     return _func4(
-          a,
-        ) !=
-        0;
+      a,
+    );
   }
 
   late final _func4Ptr =
-      _lookup<ffi.NativeFunction<ffi.Uint8 Function(ffi.Pointer<ffi.Uint8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Bool Function(ffi.Pointer<ffi.Bool>)>>(
           'func4');
   late final _func4 =
-      _func4Ptr.asFunction<int Function(ffi.Pointer<ffi.Uint8>)>();
+      _func4Ptr.asFunction<bool Function(ffi.Pointer<ffi.Bool>)>();
 }
 
 class Struct1 extends ffi.Struct {
@@ -115,6 +115,6 @@
 class Struct2 extends ffi.Opaque {}
 
 class WithBoolAlias extends ffi.Struct {
-  @ffi.Uint8()
-  external int b;
+  @ffi.Bool()
+  external bool b;
 }
diff --git a/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart b/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart
index 1f62444..585ab9a 100644
--- a/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart
+++ b/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart
@@ -1,6 +1,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Unions Test
@@ -49,7 +50,7 @@
 }
 
 class Union1 extends ffi.Union {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 }
 
diff --git a/test/header_parser_tests/forward_decl_test.dart b/test/header_parser_tests/forward_decl_test.dart
index ca16de4..73b9f32 100644
--- a/test/header_parser_tests/forward_decl_test.dart
+++ b/test/header_parser_tests/forward_decl_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,23 +16,20 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Forward Declaration Test'
 ${strings.output}: 'unused'
 ${strings.headers}:
   ${strings.entryPoints}:
     - 'test/header_parser_tests/forward_decl.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_forward_decl_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_forward_decl_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/function_n_struct_test.dart b/test/header_parser_tests/function_n_struct_test.dart
index 3b34013..b61070c 100644
--- a/test/header_parser_tests/function_n_struct_test.dart
+++ b/test/header_parser_tests/function_n_struct_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -20,7 +18,7 @@
       logWarnings(Level.SEVERE);
       expected = expectedLibrary();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Function And Struct Test'
 ${strings.output}: 'unused'
@@ -28,7 +26,7 @@
 ${strings.headers}:
   ${strings.entryPoints}:
     - 'test/header_parser_tests/function_n_struct.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
@@ -48,13 +46,13 @@
           expected.getBindingAsString('Struct2'));
     });
     test('Struct3 flexible array member', () {
-      expect((actual.getBinding('Struct3') as Struc).members.isEmpty, true);
+      expect((actual.getBinding('Struct3') as Struct).members.isEmpty, true);
     });
     test('Struct4 bit field member', () {
-      expect((actual.getBinding('Struct4') as Struc).members.isEmpty, true);
+      expect((actual.getBinding('Struct4') as Struct).members.isEmpty, true);
     });
     test('Struct5 incompleted struct member', () {
-      expect((actual.getBinding('Struct5') as Struc).members.isEmpty, true);
+      expect((actual.getBinding('Struct5') as Struct).members.isEmpty, true);
     });
     test('Struct6 typedef constant array', () {
       expect(actual.getBindingAsString('Struct6'),
@@ -68,63 +66,56 @@
 }
 
 Library expectedLibrary() {
-  final struc1 = Struc(name: 'Struct1', members: [
+  final struct1 = Struct(name: 'Struct1', members: [
     Member(
       name: 'a',
-      type: Type.nativeType(SupportedNativeType.Int32),
+      type: intType,
     ),
   ]);
-  final struc2 = Struc(name: 'Struct2', members: [
+  final struct2 = Struct(name: 'Struct2', members: [
     Member(
       name: 'a',
-      type: Type.struct(struc1),
+      type: struct1,
     ),
   ]);
-  final struc3 = Struc(name: 'Struct3');
+  final struct3 = Struct(name: 'Struct3');
   return Library(
     name: 'Bindings',
     bindings: [
-      struc1,
-      struc2,
-      struc3,
+      struct1,
+      struct2,
+      struct3,
       Func(
         name: 'func1',
         parameters: [
-          Parameter(name: 's', type: Type.pointer(Type.struct(struc2))),
+          Parameter(name: 's', type: PointerType(struct2)),
         ],
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
       ),
       Func(
         name: 'func2',
         parameters: [
-          Parameter(name: 's', type: Type.pointer(Type.struct(struc3))),
+          Parameter(name: 's', type: PointerType(struct3)),
         ],
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
       ),
       Func(
         name: 'func3',
         parameters: [
-          Parameter(
-              name: 'a',
-              type: Type.pointer(Type.nativeType(SupportedNativeType.Int32))),
+          Parameter(name: 'a', type: PointerType(intType)),
         ],
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
       ),
-      Struc(name: 'Struct4'),
-      Struc(name: 'Struct5'),
-      Struc(name: 'Struct6', members: [
-        Member(
-            name: 'a',
-            type: Type.constantArray(
-                2,
-                Type.constantArray(
-                    10, Type.nativeType(SupportedNativeType.Int32))))
+      Struct(name: 'Struct4'),
+      Struct(name: 'Struct5'),
+      Struct(name: 'Struct6', members: [
+        Member(name: 'a', type: ConstantArray(2, ConstantArray(10, intType)))
       ]),
     ],
   );
diff --git a/test/header_parser_tests/functions.h b/test/header_parser_tests/functions.h
index 56ec2be..28b8546 100644
--- a/test/header_parser_tests/functions.h
+++ b/test/header_parser_tests/functions.h
@@ -19,3 +19,5 @@
 
 // Should be skipped as inline functions are not supported.
 static inline void inlineFunc();
+
+char diffChars(unsigned char a, signed char b);
diff --git a/test/header_parser_tests/functions_test.dart b/test/header_parser_tests/functions_test.dart
index 7b07562..97685b0 100644
--- a/test/header_parser_tests/functions_test.dart
+++ b/test/header_parser_tests/functions_test.dart
@@ -3,11 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,7 +16,7 @@
     setUpAll(() {
       logWarnings();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Functions Test'
 ${strings.output}: 'unused'
@@ -40,15 +38,12 @@
 
 ${strings.preamble}: |
   // ignore_for_file: camel_case_types
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_functions_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_functions_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/globals_test.dart b/test/header_parser_tests/globals_test.dart
index be10f3c..55184a8 100644
--- a/test/header_parser_tests/globals_test.dart
+++ b/test/header_parser_tests/globals_test.dart
@@ -3,11 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -19,7 +17,7 @@
       logWarnings();
       expected = expectedLibrary();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Globals Test'
 ${strings.output}: 'unused'
@@ -37,7 +35,7 @@
       - pointerToLongDouble
       - globalStruct
 ${strings.compilerOpts}: '-Wno-nullability-completeness'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
@@ -66,34 +64,32 @@
 }
 
 Library expectedLibrary() {
-  final globalStruc = Struc(name: 'EmptyStruct');
+  final globalStruct = Struct(name: 'EmptyStruct');
   return Library(
     name: 'Bindings',
     bindings: [
-      Global(type: Type.boolean(), name: 'coolGlobal'),
+      Global(type: BooleanType(), name: 'coolGlobal'),
       Global(
-        type: Type.nativeType(SupportedNativeType.Int32),
+        type: NativeType(SupportedNativeType.Int32),
         name: 'myInt',
         exposeSymbolAddress: true,
       ),
       Global(
-        type: Type.pointer(Type.nativeType(SupportedNativeType.Int32)),
+        type: PointerType(NativeType(SupportedNativeType.Int32)),
         name: 'aGlobalPointer',
         exposeSymbolAddress: true,
       ),
-      globalStruc,
+      globalStruct,
       Global(
         name: 'globalStruct',
-        type: Type.struct(globalStruc),
+        type: globalStruct,
         exposeSymbolAddress: true,
       ),
       Global(
         name: 'globalStruct_from_alias',
-        type: Type.typealias(
-          Typealias(
-            name: 'EmptyStruct_Alias',
-            type: Type.struct(globalStruc),
-          ),
+        type: Typealias(
+          name: 'EmptyStruct_Alias',
+          type: globalStruct,
         ),
         exposeSymbolAddress: true,
       )
diff --git a/test/header_parser_tests/imported_types.h b/test/header_parser_tests/imported_types.h
new file mode 100644
index 0000000..685e47c
--- /dev/null
+++ b/test/header_parser_tests/imported_types.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include <stddef.h>
+
+void default_imported_types(
+  unsigned char,
+  signed char,
+  char,
+  unsigned short,
+  short,
+  unsigned int,
+  int,
+  unsigned long,
+  long,
+  unsigned long long,
+  long long,
+  float,
+  double,
+  size_t,
+  wchar_t
+);
diff --git a/test/header_parser_tests/imported_types_test.dart b/test/header_parser_tests/imported_types_test.dart
new file mode 100644
index 0000000..fc02cff
--- /dev/null
+++ b/test/header_parser_tests/imported_types_test.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+late Library actual, expected;
+
+void main() {
+  group('imported_types_test', () {
+    setUpAll(() {
+      logWarnings();
+      actual = parser.parse(
+        testConfig('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Imported types test'
+${strings.output}: 'unused'
+
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/header_parser_tests/imported_types.h'
+  ${strings.includeDirectives}:
+    - '**imported_types.h'
+
+${strings.preamble}: |
+  // ignore_for_file: camel_case_types
+        '''),
+      );
+    });
+    test('Expected Bindings', () {
+      matchLibraryWithExpected(
+          actual, 'header_parser_imported_types_test_output.dart', [
+        'test',
+        'header_parser_tests',
+        'expected_bindings',
+        '_expected_imported_types_bindings.dart'
+      ]);
+    });
+  });
+}
diff --git a/test/header_parser_tests/macros.h b/test/header_parser_tests/macros.h
index 90bbd45..5cae837 100644
--- a/test/header_parser_tests/macros.h
+++ b/test/header_parser_tests/macros.h
@@ -30,3 +30,16 @@
 #define TEST14 INFINITY
 #define TEST15 -INFINITY
 #define TEST16 NAN
+
+
+// Inside include guard.
+#ifndef __TEST_INCLUDE_GUARD_1__
+#define __TEST_INCLUDE_GUARD_1__
+
+#define TEST17 TEST_FUNCTION_MACRO(0)
+#define TEST18 TEST_FUNCTION_MACRO(1)
+#define TEST19 TEST_FUNCTION_MACRO(2)
+
+#define TEST_FUNCTION_MACRO(x) ((unsigned long)((x) << (2)))
+
+#endif /* __TEST_INCLUDE_GUARD_1__ */
diff --git a/test/header_parser_tests/macros_test.dart b/test/header_parser_tests/macros_test.dart
index d615b26..70439ef 100644
--- a/test/header_parser_tests/macros_test.dart
+++ b/test/header_parser_tests/macros_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -20,7 +18,7 @@
       logWarnings(Level.WARNING);
       expected = expectedLibrary();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Macros Test'
 ${strings.output}: 'unused'
@@ -29,7 +27,7 @@
     - 'test/header_parser_tests/macros.h'
   ${strings.includeDirectives}:
     - '**macros.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
     test('Total bindings count', () {
@@ -98,6 +96,18 @@
       expect(actual.getBindingAsString('TEST16'),
           expected.getBindingAsString('TEST16'));
     });
+    test('TEST17', () {
+      expect(actual.getBindingAsString('TEST17'),
+          expected.getBindingAsString('TEST17'));
+    });
+    test('TEST18', () {
+      expect(actual.getBindingAsString('TEST18'),
+          expected.getBindingAsString('TEST18'));
+    });
+    test('TEST19', () {
+      expect(actual.getBindingAsString('TEST19'),
+          expected.getBindingAsString('TEST19'));
+    });
   });
 }
 
@@ -125,6 +135,9 @@
           rawType: 'double',
           rawValue: strings.doubleNegativeInfinity),
       Constant(name: 'TEST16', rawType: 'double', rawValue: strings.doubleNaN),
+      Constant(name: 'TEST17', rawType: 'int', rawValue: "0"),
+      Constant(name: 'TEST18', rawType: 'int', rawValue: "4"),
+      Constant(name: 'TEST19', rawType: 'int', rawValue: "8"),
     ],
   );
 }
diff --git a/test/header_parser_tests/native_func_typedef.h b/test/header_parser_tests/native_func_typedef.h
index 8b942d0..0c6f7a0 100644
--- a/test/header_parser_tests/native_func_typedef.h
+++ b/test/header_parser_tests/native_func_typedef.h
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-struct Struc
+struct Struct
 {
     void (*unnamed1)(void (*unnamed2)());
 };
@@ -17,6 +17,6 @@
 void funcWithNativeFunc(WithTypedefReturnType named);
 
 typedef void (*VoidFuncPointer)();
-struct Struc2{
+struct Struct2{
     const VoidFuncPointer constFuncPointer;
 };
diff --git a/test/header_parser_tests/native_func_typedef_test.dart b/test/header_parser_tests/native_func_typedef_test.dart
index 4f9187c..180ff4d 100644
--- a/test/header_parser_tests/native_func_typedef_test.dart
+++ b/test/header_parser_tests/native_func_typedef_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,14 +16,14 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Native Func Typedef Test.'
 ${strings.output}: 'unused'
 ${strings.headers}:
   ${strings.entryPoints}:
     - 'test/header_parser_tests/native_func_typedef.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
@@ -35,11 +33,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_native_func_typedef_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_native_func_typedef_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/nested_parsing.h b/test/header_parser_tests/nested_parsing.h
index cb21825..8557b64 100644
--- a/test/header_parser_tests/nested_parsing.h
+++ b/test/header_parser_tests/nested_parsing.h
@@ -40,3 +40,23 @@
     // Incomplete struct array.
     struct EmptyStruct b[3];
 };
+
+struct Struct6
+{
+    // An anonymous, unnamed union.
+    union
+    {
+        float a;
+    };
+
+    // An unnamed union.
+    union
+    {
+        float b;
+    } c;
+
+    union
+    {
+        float d;
+    } e;
+};
diff --git a/test/header_parser_tests/nested_parsing_test.dart b/test/header_parser_tests/nested_parsing_test.dart
index d09d972..75803a0 100644
--- a/test/header_parser_tests/nested_parsing_test.dart
+++ b/test/header_parser_tests/nested_parsing_test.dart
@@ -3,11 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -19,7 +17,7 @@
       logWarnings();
       expected = expectedLibrary();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Nested Parsing Test'
 ${strings.output}: 'unused'
@@ -29,7 +27,7 @@
 ${strings.structs}:
   ${strings.exclude}:
     - Struct2
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
@@ -57,59 +55,104 @@
       expect(actual.getBindingAsString('Struct5'),
           expected.getBindingAsString('Struct5'));
     });
+    test('Struct6', () {
+      expect(actual.getBindingAsString('Struct6'),
+          expected.getBindingAsString('Struct6'));
+    });
   });
 }
 
 Library expectedLibrary() {
-  final struc2 = Struc(name: 'Struct2', members: [
+  final struct2 = Struct(name: 'Struct2', members: [
     Member(
       name: 'e',
-      type: Type.nativeType(SupportedNativeType.Int32),
+      type: intType,
     ),
     Member(
       name: 'f',
-      type: Type.nativeType(SupportedNativeType.Int32),
+      type: intType,
     ),
   ]);
-  final unnamedInternalStruc = Struc(name: 'UnnamedStruct1', members: [
+  final unnamedInternalStruct = Struct(name: 'UnnamedStruct1', members: [
     Member(
       name: 'a',
-      type: Type.nativeType(SupportedNativeType.Int32),
+      type: intType,
     ),
     Member(
       name: 'b',
-      type: Type.nativeType(SupportedNativeType.Int32),
+      type: intType,
     ),
   ]);
   return Library(
     name: 'Bindings',
     bindings: [
-      unnamedInternalStruc,
-      struc2,
-      Struc(name: 'Struct1', members: [
+      unnamedInternalStruct,
+      struct2,
+      Struct(name: 'Struct1', members: [
         Member(
           name: 'a',
-          type: Type.nativeType(SupportedNativeType.Int32),
+          type: intType,
         ),
         Member(
           name: 'b',
-          type: Type.nativeType(SupportedNativeType.Int32),
+          type: intType,
         ),
-        Member(name: 'struct2', type: Type.pointer(Type.struct(struc2))),
+        Member(name: 'struct2', type: PointerType(struct2)),
       ]),
-      Struc(name: 'Struct3', members: [
+      Struct(name: 'Struct3', members: [
         Member(
           name: 'a',
-          type: Type.nativeType(SupportedNativeType.Int32),
+          type: intType,
         ),
         Member(
           name: 'b',
-          type: Type.struct(unnamedInternalStruc),
+          type: unnamedInternalStruct,
         ),
       ]),
-      Struc(name: 'EmptyStruct'),
-      Struc(name: 'Struct4'),
-      Struc(name: 'Struct5'),
+      Struct(name: 'EmptyStruct'),
+      Struct(name: 'Struct4'),
+      Struct(name: 'Struct5'),
+      Struct(
+        name: 'Struct6',
+        members: [
+          Member(
+            name: '',
+            type: Union(
+              name: 'UnnamedUnion1',
+              members: [
+                Member(
+                  name: 'a',
+                  type: floatType,
+                ),
+              ],
+            ),
+          ),
+          Member(
+            name: 'c',
+            type: Union(
+              name: 'UnnamedUnion2',
+              members: [
+                Member(
+                  name: 'b',
+                  type: floatType,
+                ),
+              ],
+            ),
+          ),
+          Member(
+            name: 'e',
+            type: Union(
+              name: 'UnnamedUnion3',
+              members: [
+                Member(
+                  name: 'd',
+                  type: floatType,
+                ),
+              ],
+            ),
+          ),
+        ],
+      ),
     ],
   );
 }
diff --git a/test/header_parser_tests/opaque_dependencies_test.dart b/test/header_parser_tests/opaque_dependencies_test.dart
index 782f761..fc73cfe 100644
--- a/test/header_parser_tests/opaque_dependencies_test.dart
+++ b/test/header_parser_tests/opaque_dependencies_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,7 +16,7 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Opaque Dependencies Test'
 ${strings.output}: 'unused'
@@ -33,15 +31,12 @@
   ${strings.include}:
     - 'UE'
   ${strings.dependencyOnly}: ${strings.opaqueCompoundDependencies}
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_opaque_dependencies_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_opaque_dependencies_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/packed_structs_test.dart b/test/header_parser_tests/packed_structs_test.dart
index 357412e..62b7075 100644
--- a/test/header_parser_tests/packed_structs_test.dart
+++ b/test/header_parser_tests/packed_structs_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -18,23 +16,20 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Packed Structs Test'
 ${strings.output}: 'unused'
 ${strings.headers}:
   ${strings.entryPoints}:
     - 'test/header_parser_tests/packed_structs.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_packed_structs_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_packed_structs_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/regress_384_header_1.h b/test/header_parser_tests/regress_384_header_1.h
new file mode 100644
index 0000000..3129b2d
--- /dev/null
+++ b/test/header_parser_tests/regress_384_header_1.h
@@ -0,0 +1,5 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "regress_384_shared.h"
diff --git a/test/header_parser_tests/regress_384_header_2.h b/test/header_parser_tests/regress_384_header_2.h
new file mode 100644
index 0000000..3129b2d
--- /dev/null
+++ b/test/header_parser_tests/regress_384_header_2.h
@@ -0,0 +1,5 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "regress_384_shared.h"
diff --git a/test/header_parser_tests/regress_384_shared.h b/test/header_parser_tests/regress_384_shared.h
new file mode 100644
index 0000000..265a786
--- /dev/null
+++ b/test/header_parser_tests/regress_384_shared.h
@@ -0,0 +1,10 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#ifndef __REGRESS_384_SHARED__
+#define __REGRESS_384_SHARED__
+
+void foo();
+
+#endif
diff --git a/test/header_parser_tests/regress_384_test.dart b/test/header_parser_tests/regress_384_test.dart
new file mode 100644
index 0000000..b5751d1
--- /dev/null
+++ b/test/header_parser_tests/regress_384_test.dart
@@ -0,0 +1,41 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+late Library actual;
+void main() {
+  group('regress_384_test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+      actual = parser.parse(
+        testConfig('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Regression test for #384'
+${strings.output}: 'unused'
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/header_parser_tests/regress_384_header_1.h'
+    - 'test/header_parser_tests/regress_384_header_2.h'
+        '''),
+      );
+    });
+
+    test('Expected bindings', () {
+      matchLibraryWithExpected(
+          actual, 'header_parser_regress_384_test_output.dart', [
+        'test',
+        'header_parser_tests',
+        'expected_bindings',
+        '_expected_regress_384_bindings.dart'
+      ]);
+    });
+  });
+}
diff --git a/test/header_parser_tests/separate_definition.h b/test/header_parser_tests/separate_definition.h
new file mode 100644
index 0000000..4c8584b
--- /dev/null
+++ b/test/header_parser_tests/separate_definition.h
@@ -0,0 +1,11 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Forward declaration to SeparatelyDefinedStruct, with definition in
+// separate_definition_base.h
+struct SeparatelyDefinedStruct;
+
+void func(struct SeparatelyDefinedStruct s);
+
+void func2(struct SeparatelyDefinedStruct *s);
diff --git a/test/header_parser_tests/separate_definition_base.h b/test/header_parser_tests/separate_definition_base.h
new file mode 100644
index 0000000..2342bdf
--- /dev/null
+++ b/test/header_parser_tests/separate_definition_base.h
@@ -0,0 +1,8 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+struct SeparatelyDefinedStruct{
+    int a;
+    int b;
+};
diff --git a/test/header_parser_tests/separate_definition_test.dart b/test/header_parser_tests/separate_definition_test.dart
new file mode 100644
index 0000000..663bebf
--- /dev/null
+++ b/test/header_parser_tests/separate_definition_test.dart
@@ -0,0 +1,49 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+late Library actual, expected;
+
+void main() {
+  group('separate_definition', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+    });
+    test('different header order', () {
+      final entryPoints = [
+        "test/header_parser_tests/separate_definition_base.h",
+        "test/header_parser_tests/separate_definition.h"
+      ];
+      final library1String = parser.parse(_makeConfig(entryPoints)).generate();
+      final library2String =
+          parser.parse(_makeConfig(entryPoints.reversed.toList())).generate();
+
+      expect(library1String, library2String);
+    });
+  });
+}
+
+Config _makeConfig(List<String> entryPoints) {
+  final entryPointBuilder = StringBuffer();
+  for (final ep in entryPoints) {
+    entryPointBuilder.writeln("    - $ep");
+  }
+  final config = testConfig('''
+${strings.name}: 'Bindings'
+${strings.output}: 'unused'
+
+${strings.headers}:
+  ${strings.entryPoints}:
+${entryPointBuilder.toString()}
+''');
+  return config;
+}
diff --git a/test/header_parser_tests/struct_fptr_fields.h b/test/header_parser_tests/struct_fptr_fields.h
new file mode 100644
index 0000000..e95d1ca
--- /dev/null
+++ b/test/header_parser_tests/struct_fptr_fields.h
@@ -0,0 +1,41 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+typedef int (*ArithmeticOperation)(int a, int b);
+
+struct S
+{
+    // Function pointer field, but no parameters.
+    int (*func1)(void);
+    // Function pointer field with parameters.
+    int (*comparator)(int a, int b);
+    // Function pointer field with lot of parameters
+    int (*veryManyArguments)(double a, float b, char *c, int d, long long e);
+    // Function pointer field with parameters, but no names
+    int (*argsDontHaveNames)(int, int, int, float, char *);
+    // Function pointer through typedef
+    ArithmeticOperation operation;
+    // Pointer to function pointer
+    void (**sortPtr)(int *array, int len);
+    // Function pointer with a function pointer parameter
+    void (*sortBy)(int *array, int len, int (*evaluator)(int x));
+    // Function where few parameters are named. This should not
+    // produce parameters in output.
+    void (*improperlyDeclaredParams)(int a, int, char);
+    // Function pointer with 2 function pointer parameters
+    void (*sortByWithFallback)(int *array,
+                               int (*primaryEvaluator)(int x),
+                               int (*fallbackEvaluator)(int x));
+
+    // TODO(#545): Handle remaining cases of parsing param names
+    // ---
+    // Array of function pointers. Does not produce proper output right now.
+    void (*manyFunctions[2])(char a, char b);
+    // Function pointer returning function pointer. Does not produce valid output.
+    int (*(*functionReturningFunction)(int a, int b))(int c, int d);
+    // Function pointer returning function pointer. The return type has param
+    // names, but the function itself doesn't. This also shouldn't produce
+    // any parameters in output.
+    int (*(*functionReturningFunctionImproper)(int a, int b))(int, int);
+};
diff --git a/test/header_parser_tests/struct_fptr_fields_test.dart b/test/header_parser_tests/struct_fptr_fields_test.dart
new file mode 100644
index 0000000..765b8b0
--- /dev/null
+++ b/test/header_parser_tests/struct_fptr_fields_test.dart
@@ -0,0 +1,42 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/config_provider.dart';
+import 'package:ffigen/src/header_parser.dart' as parser;
+import 'package:ffigen/src/strings.dart' as strings;
+import 'package:logging/logging.dart';
+import 'package:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
+
+import '../test_utils.dart';
+
+late Library actual;
+void main() {
+  group('Function pointer parameters parsing test', () {
+    setUpAll(() {
+      logWarnings(Level.SEVERE);
+      actual = parser.parse(
+        Config.fromYaml(yaml.loadYaml('''
+${strings.name}: 'NativeLibrary'
+${strings.description}: 'Function pointer fields in structs Test'
+${strings.output}: 'unused'
+${strings.headers}:
+  ${strings.entryPoints}:
+    - 'test/header_parser_tests/struct_fptr_fields.h'
+        ''') as yaml.YamlMap),
+      );
+    });
+
+    test('Expected bindings', () {
+      matchLibraryWithExpected(
+          actual, 'header_parser_struct_fptr_fields_output.dart', [
+        'test',
+        'header_parser_tests',
+        'expected_bindings',
+        '_expected_struct_fptr_fields_bindings.dart',
+      ]);
+    });
+  });
+}
diff --git a/test/header_parser_tests/typedef_test.dart b/test/header_parser_tests/typedef_test.dart
index 6759603..51b90e6 100644
--- a/test/header_parser_tests/typedef_test.dart
+++ b/test/header_parser_tests/typedef_test.dart
@@ -3,12 +3,10 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -19,7 +17,7 @@
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'Bindings'
 ${strings.output}: 'unused'
 
@@ -32,21 +30,21 @@
   ${strings.exclude}:
     - ExcludedStruct
     - _ExcludedStruct
-${strings.typedefmap}:
-  'SpecifiedTypeAsIntPtr': 'IntPtr'
-
+${strings.typeMap}:
+  ${strings.typeMapTypedefs}:
+    'SpecifiedTypeAsIntPtr':
+        lib: 'ffi'
+        c-type: 'IntPtr'
+        dart-type: 'int'
 ${strings.preamble}: |
   // ignore_for_file: unused_element, unused_field
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_typedef_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_typedef_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/unions_test.dart b/test/header_parser_tests/unions_test.dart
index 5146d62..e248dfb 100644
--- a/test/header_parser_tests/unions_test.dart
+++ b/test/header_parser_tests/unions_test.dart
@@ -3,38 +3,33 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
 late Library actual;
 void main() {
-  group('packed_structs_test', () {
+  group('unions_test', () {
     setUpAll(() {
       logWarnings(Level.SEVERE);
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Unions Test'
 ${strings.output}: 'unused'
 ${strings.headers}:
   ${strings.entryPoints}:
     - 'test/header_parser_tests/unions.h'
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_unions_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_unions_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/unnamed_enums_test.dart b/test/header_parser_tests/unnamed_enums_test.dart
index ea9f32d..eae9cf3 100644
--- a/test/header_parser_tests/unnamed_enums_test.dart
+++ b/test/header_parser_tests/unnamed_enums_test.dart
@@ -3,11 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -19,7 +17,7 @@
       logWarnings();
       expected = expectedLibrary();
       actual = parser.parse(
-        Config.fromYaml(yaml.loadYaml('''
+        testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Unnamed Enums Test'
 ${strings.output}: 'unused'
@@ -32,7 +30,7 @@
 ${strings.unnamedEnums}:
   ${strings.exclude}:
     - B
-        ''') as yaml.YamlMap),
+        '''),
       );
     });
 
diff --git a/test/large_integration_tests/_expected_cjson_bindings.dart b/test/large_integration_tests/_expected_cjson_bindings.dart
index f16ca6e..fe6b008 100644
--- a/test/large_integration_tests/_expected_cjson_bindings.dart
+++ b/test/large_integration_tests/_expected_cjson_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Bindings to Cjson.
@@ -20,15 +21,15 @@
           lookup)
       : _lookup = lookup;
 
-  ffi.Pointer<ffi.Int8> cJSON_Version() {
+  ffi.Pointer<ffi.Char> cJSON_Version() {
     return _cJSON_Version();
   }
 
   late final _cJSON_VersionPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_Version');
   late final _cJSON_Version =
-      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
   void cJSON_InitHooks(
     ffi.Pointer<cJSON_Hooks> hooks,
@@ -45,7 +46,7 @@
       _cJSON_InitHooksPtr.asFunction<void Function(ffi.Pointer<cJSON_Hooks>)>();
 
   ffi.Pointer<cJSON> cJSON_Parse(
-    ffi.Pointer<ffi.Int8> value,
+    ffi.Pointer<ffi.Char> value,
   ) {
     return _cJSON_Parse(
       value,
@@ -54,13 +55,13 @@
 
   late final _cJSON_ParsePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>>('cJSON_Parse');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>>('cJSON_Parse');
   late final _cJSON_Parse = _cJSON_ParsePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_ParseWithOpts(
-    ffi.Pointer<ffi.Int8> value,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> return_parse_end,
+    ffi.Pointer<ffi.Char> value,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> return_parse_end,
     int require_null_terminated,
   ) {
     return _cJSON_ParseWithOpts(
@@ -73,14 +74,14 @@
   late final _cJSON_ParseWithOptsPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               cJSON_bool)>>('cJSON_ParseWithOpts');
   late final _cJSON_ParseWithOpts = _cJSON_ParseWithOptsPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_Print(
+  ffi.Pointer<ffi.Char> cJSON_Print(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_Print(
@@ -90,11 +91,11 @@
 
   late final _cJSON_PrintPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
   late final _cJSON_Print = _cJSON_PrintPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintUnformatted(
+  ffi.Pointer<ffi.Char> cJSON_PrintUnformatted(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_PrintUnformatted(
@@ -104,12 +105,12 @@
 
   late final _cJSON_PrintUnformattedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_PrintUnformatted');
   late final _cJSON_PrintUnformatted = _cJSON_PrintUnformattedPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintBuffered(
+  ffi.Pointer<ffi.Char> cJSON_PrintBuffered(
     ffi.Pointer<cJSON> item,
     int prebuffer,
     int fmt,
@@ -123,14 +124,14 @@
 
   late final _cJSON_PrintBufferedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, ffi.Int32,
-              cJSON_bool)>>('cJSON_PrintBuffered');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<cJSON>, ffi.Int, cJSON_bool)>>('cJSON_PrintBuffered');
   late final _cJSON_PrintBuffered = _cJSON_PrintBufferedPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, int, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>, int, int)>();
 
   int cJSON_PrintPreallocated(
     ffi.Pointer<cJSON> item,
-    ffi.Pointer<ffi.Int8> buffer,
+    ffi.Pointer<ffi.Char> buffer,
     int length,
     int format,
   ) {
@@ -144,10 +145,10 @@
 
   late final _cJSON_PrintPreallocatedPtr = _lookup<
       ffi.NativeFunction<
-          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, cJSON_bool)>>('cJSON_PrintPreallocated');
+          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Int, cJSON_bool)>>('cJSON_PrintPreallocated');
   late final _cJSON_PrintPreallocated = _cJSON_PrintPreallocatedPtr.asFunction<
-      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int, int)>();
+      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int, int)>();
 
   void cJSON_Delete(
     ffi.Pointer<cJSON> item,
@@ -172,7 +173,7 @@
   }
 
   late final _cJSON_GetArraySizePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<cJSON>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<cJSON>)>>(
           'cJSON_GetArraySize');
   late final _cJSON_GetArraySize =
       _cJSON_GetArraySizePtr.asFunction<int Function(ffi.Pointer<cJSON>)>();
@@ -190,13 +191,13 @@
   late final _cJSON_GetArrayItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_GetArrayItem');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_GetArrayItem');
   late final _cJSON_GetArrayItem = _cJSON_GetArrayItemPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItem(
       object,
@@ -207,13 +208,13 @@
   late final _cJSON_GetObjectItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItem');
   late final _cJSON_GetObjectItem = _cJSON_GetObjectItemPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItemCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItemCaseSensitive(
       object,
@@ -224,15 +225,15 @@
   late final _cJSON_GetObjectItemCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItemCaseSensitive');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItemCaseSensitive');
   late final _cJSON_GetObjectItemCaseSensitive =
       _cJSON_GetObjectItemCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   int cJSON_HasObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_HasObjectItem(
       object,
@@ -243,21 +244,21 @@
   late final _cJSON_HasObjectItemPtr = _lookup<
       ffi.NativeFunction<
           cJSON_bool Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_HasObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_HasObjectItem');
   late final _cJSON_HasObjectItem = _cJSON_HasObjectItemPtr
-      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetErrorPtr() {
+  ffi.Pointer<ffi.Char> cJSON_GetErrorPtr() {
     return _cJSON_GetErrorPtr();
   }
 
   late final _cJSON_GetErrorPtrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_GetErrorPtr');
   late final _cJSON_GetErrorPtr =
-      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetStringValue(
+  ffi.Pointer<ffi.Char> cJSON_GetStringValue(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_GetStringValue(
@@ -267,10 +268,10 @@
 
   late final _cJSON_GetStringValuePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_GetStringValue');
   late final _cJSON_GetStringValue = _cJSON_GetStringValuePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
   int cJSON_IsInvalid(
     ffi.Pointer<cJSON> item,
@@ -471,7 +472,7 @@
       _cJSON_CreateNumberPtr.asFunction<ffi.Pointer<cJSON> Function(double)>();
 
   ffi.Pointer<cJSON> cJSON_CreateString(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateString(
       string,
@@ -481,12 +482,12 @@
   late final _cJSON_CreateStringPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateString');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateString');
   late final _cJSON_CreateString = _cJSON_CreateStringPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateRaw(
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_CreateRaw(
       raw,
@@ -496,9 +497,9 @@
   late final _cJSON_CreateRawPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateRaw');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateRaw');
   late final _cJSON_CreateRaw = _cJSON_CreateRawPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateArray() {
     return _cJSON_CreateArray();
@@ -521,7 +522,7 @@
       _cJSON_CreateObjectPtr.asFunction<ffi.Pointer<cJSON> Function()>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringReference(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateStringReference(
       string,
@@ -531,9 +532,9 @@
   late final _cJSON_CreateStringReferencePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateStringReference');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateStringReference');
   late final _cJSON_CreateStringReference = _cJSON_CreateStringReferencePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateObjectReference(
     ffi.Pointer<cJSON> child,
@@ -564,7 +565,7 @@
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateIntArray(
-    ffi.Pointer<ffi.Int32> numbers,
+    ffi.Pointer<ffi.Int> numbers,
     int count,
   ) {
     return _cJSON_CreateIntArray(
@@ -576,9 +577,9 @@
   late final _cJSON_CreateIntArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int32>, ffi.Int32)>>('cJSON_CreateIntArray');
+              ffi.Pointer<ffi.Int>, ffi.Int)>>('cJSON_CreateIntArray');
   late final _cJSON_CreateIntArray = _cJSON_CreateIntArrayPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int32>, int)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateFloatArray(
     ffi.Pointer<ffi.Float> numbers,
@@ -593,7 +594,7 @@
   late final _cJSON_CreateFloatArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Float>, ffi.Int32)>>('cJSON_CreateFloatArray');
+              ffi.Pointer<ffi.Float>, ffi.Int)>>('cJSON_CreateFloatArray');
   late final _cJSON_CreateFloatArray = _cJSON_CreateFloatArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Float>, int)>();
 
@@ -610,12 +611,12 @@
   late final _cJSON_CreateDoubleArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Double>, ffi.Int32)>>('cJSON_CreateDoubleArray');
+              ffi.Pointer<ffi.Double>, ffi.Int)>>('cJSON_CreateDoubleArray');
   late final _cJSON_CreateDoubleArray = _cJSON_CreateDoubleArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Double>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringArray(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> strings,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> strings,
     int count,
   ) {
     return _cJSON_CreateStringArray(
@@ -626,10 +627,10 @@
 
   late final _cJSON_CreateStringArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32)>>('cJSON_CreateStringArray');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int)>>('cJSON_CreateStringArray');
   late final _cJSON_CreateStringArray = _cJSON_CreateStringArrayPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
   void cJSON_AddItemToArray(
     ffi.Pointer<cJSON> array,
@@ -650,7 +651,7 @@
 
   void cJSON_AddItemToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObject(
@@ -662,15 +663,15 @@
 
   late final _cJSON_AddItemToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObject');
   late final _cJSON_AddItemToObject = _cJSON_AddItemToObjectPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemToObjectCS(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObjectCS(
@@ -682,11 +683,11 @@
 
   late final _cJSON_AddItemToObjectCSPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObjectCS');
   late final _cJSON_AddItemToObjectCS = _cJSON_AddItemToObjectCSPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemReferenceToArray(
     ffi.Pointer<cJSON> array,
@@ -707,7 +708,7 @@
 
   void cJSON_AddItemReferenceToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemReferenceToObject(
@@ -719,12 +720,12 @@
 
   late final _cJSON_AddItemReferenceToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemReferenceToObject');
   late final _cJSON_AddItemReferenceToObject =
       _cJSON_AddItemReferenceToObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemViaPointer(
     ffi.Pointer<cJSON> parent,
@@ -758,7 +759,7 @@
   late final _cJSON_DetachItemFromArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_DetachItemFromArray');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_DetachItemFromArray');
   late final _cJSON_DetachItemFromArray = _cJSON_DetachItemFromArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
@@ -773,14 +774,14 @@
   }
 
   late final _cJSON_DeleteItemFromArrayPtr = _lookup<
-          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32)>>(
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int)>>(
       'cJSON_DeleteItemFromArray');
   late final _cJSON_DeleteItemFromArray = _cJSON_DeleteItemFromArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObject(
       object,
@@ -791,15 +792,15 @@
   late final _cJSON_DetachItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DetachItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DetachItemFromObject');
   late final _cJSON_DetachItemFromObject =
       _cJSON_DetachItemFromObjectPtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObjectCaseSensitive(
       object,
@@ -810,16 +811,16 @@
   late final _cJSON_DetachItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
               ffi.Pointer<cJSON> Function(
-                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DetachItemFromObjectCaseSensitive');
   late final _cJSON_DetachItemFromObjectCaseSensitive =
       _cJSON_DetachItemFromObjectCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObject(
       object,
@@ -830,13 +831,13 @@
   late final _cJSON_DeleteItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DeleteItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DeleteItemFromObject');
   late final _cJSON_DeleteItemFromObject = _cJSON_DeleteItemFromObjectPtr
-      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObjectCaseSensitive(
       object,
@@ -846,11 +847,11 @@
 
   late final _cJSON_DeleteItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DeleteItemFromObjectCaseSensitive');
   late final _cJSON_DeleteItemFromObjectCaseSensitive =
       _cJSON_DeleteItemFromObjectCaseSensitivePtr.asFunction<
-          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_InsertItemInArray(
     ffi.Pointer<cJSON> array,
@@ -866,7 +867,7 @@
 
   late final _cJSON_InsertItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_InsertItemInArray');
   late final _cJSON_InsertItemInArray = _cJSON_InsertItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
@@ -906,14 +907,14 @@
 
   late final _cJSON_ReplaceItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInArray');
   late final _cJSON_ReplaceItemInArray = _cJSON_ReplaceItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObject(
@@ -925,16 +926,16 @@
 
   late final _cJSON_ReplaceItemInObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObject');
   late final _cJSON_ReplaceItemInObject =
       _cJSON_ReplaceItemInObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObjectCaseSensitive(
@@ -946,12 +947,12 @@
 
   late final _cJSON_ReplaceItemInObjectCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObjectCaseSensitive');
   late final _cJSON_ReplaceItemInObjectCaseSensitive =
       _cJSON_ReplaceItemInObjectCaseSensitivePtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_Duplicate(
     ffi.Pointer<cJSON> item,
@@ -990,7 +991,7 @@
       .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<cJSON>, int)>();
 
   void cJSON_Minify(
-    ffi.Pointer<ffi.Int8> json,
+    ffi.Pointer<ffi.Char> json,
   ) {
     return _cJSON_Minify(
       json,
@@ -998,14 +999,14 @@
   }
 
   late final _cJSON_MinifyPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Char>)>>(
           'cJSON_Minify');
   late final _cJSON_Minify =
-      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Int8>)>();
+      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddNullToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddNullToObject(
       object,
@@ -1016,13 +1017,13 @@
   late final _cJSON_AddNullToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddNullToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddNullToObject');
   late final _cJSON_AddNullToObject = _cJSON_AddNullToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddTrueToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddTrueToObject(
       object,
@@ -1033,13 +1034,13 @@
   late final _cJSON_AddTrueToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddTrueToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddTrueToObject');
   late final _cJSON_AddTrueToObject = _cJSON_AddTrueToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddFalseToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddFalseToObject(
       object,
@@ -1050,13 +1051,13 @@
   late final _cJSON_AddFalseToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddFalseToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddFalseToObject');
   late final _cJSON_AddFalseToObject = _cJSON_AddFalseToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddBoolToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int boolean,
   ) {
     return _cJSON_AddBoolToObject(
@@ -1068,15 +1069,15 @@
 
   late final _cJSON_AddBoolToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               cJSON_bool)>>('cJSON_AddBoolToObject');
   late final _cJSON_AddBoolToObject = _cJSON_AddBoolToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int)>();
 
   ffi.Pointer<cJSON> cJSON_AddNumberToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     double number,
   ) {
     return _cJSON_AddNumberToObject(
@@ -1088,16 +1089,16 @@
 
   late final _cJSON_AddNumberToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Double)>>('cJSON_AddNumberToObject');
   late final _cJSON_AddNumberToObject = _cJSON_AddNumberToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, double)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, double)>();
 
   ffi.Pointer<cJSON> cJSON_AddStringToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_AddStringToObject(
       object,
@@ -1108,16 +1109,16 @@
 
   late final _cJSON_AddStringToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddStringToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddStringToObject');
   late final _cJSON_AddStringToObject = _cJSON_AddStringToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddRawToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_AddRawToObject(
       object,
@@ -1128,15 +1129,15 @@
 
   late final _cJSON_AddRawToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddRawToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddRawToObject');
   late final _cJSON_AddRawToObject = _cJSON_AddRawToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddObjectToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddObjectToObject(
       object,
@@ -1147,13 +1148,13 @@
   late final _cJSON_AddObjectToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddObjectToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddObjectToObject');
   late final _cJSON_AddObjectToObject = _cJSON_AddObjectToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddArrayToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddArrayToObject(
       object,
@@ -1164,9 +1165,9 @@
   late final _cJSON_AddArrayToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddArrayToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddArrayToObject');
   late final _cJSON_AddArrayToObject = _cJSON_AddArrayToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   double cJSON_SetNumberHelper(
     ffi.Pointer<cJSON> object,
@@ -1194,7 +1195,7 @@
   }
 
   late final _cJSON_mallocPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size)>>(
           'cJSON_malloc');
   late final _cJSON_malloc =
       _cJSON_mallocPtr.asFunction<ffi.Pointer<ffi.Void> Function(int)>();
@@ -1221,30 +1222,30 @@
 
   external ffi.Pointer<cJSON> child;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int type;
 
-  external ffi.Pointer<ffi.Int8> valuestring;
+  external ffi.Pointer<ffi.Char> valuestring;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int valueint;
 
   @ffi.Double()
   external double valuedouble;
 
-  external ffi.Pointer<ffi.Int8> string;
+  external ffi.Pointer<ffi.Char> string;
 }
 
 class cJSON_Hooks extends ffi.Struct {
   external ffi.Pointer<
-      ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>> malloc_fn;
+          ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size sz)>>
+      malloc_fn;
 
-  external ffi
-          .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
-      free_fn;
+  external ffi.Pointer<
+      ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void> ptr)>> free_fn;
 }
 
-typedef cJSON_bool = ffi.Int32;
+typedef cJSON_bool = ffi.Int;
 
 const int CJSON_VERSION_MAJOR = 1;
 
diff --git a/test/large_integration_tests/_expected_libclang_bindings.dart b/test/large_integration_tests/_expected_libclang_bindings.dart
index 78cc9c6..510e0b0 100644
--- a/test/large_integration_tests/_expected_libclang_bindings.dart
+++ b/test/large_integration_tests/_expected_libclang_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Bindings to LibClang.
@@ -21,7 +22,7 @@
       : _lookup = lookup;
 
   /// Retrieve the character data associated with the given string.
-  ffi.Pointer<ffi.Int8> clang_getCString(
+  ffi.Pointer<ffi.Char> clang_getCString(
     CXString string,
   ) {
     return _clang_getCString(
@@ -30,10 +31,10 @@
   }
 
   late final _clang_getCStringPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(CXString)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(CXString)>>(
           'clang_getCString');
   late final _clang_getCString = _clang_getCStringPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(CXString)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(CXString)>();
 
   /// Free the given string.
   void clang_disposeString(
@@ -72,7 +73,7 @@
   }
 
   late final _clang_getBuildSessionTimestampPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint64 Function()>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedLongLong Function()>>(
           'clang_getBuildSessionTimestamp');
   late final _clang_getBuildSessionTimestamp =
       _clang_getBuildSessionTimestampPtr.asFunction<int Function()>();
@@ -87,9 +88,9 @@
     );
   }
 
-  late final _clang_VirtualFileOverlay_createPtr =
-      _lookup<ffi.NativeFunction<CXVirtualFileOverlay Function(ffi.Uint32)>>(
-          'clang_VirtualFileOverlay_create');
+  late final _clang_VirtualFileOverlay_createPtr = _lookup<
+          ffi.NativeFunction<CXVirtualFileOverlay Function(ffi.UnsignedInt)>>(
+      'clang_VirtualFileOverlay_create');
   late final _clang_VirtualFileOverlay_create =
       _clang_VirtualFileOverlay_createPtr
           .asFunction<CXVirtualFileOverlay Function(int)>();
@@ -98,8 +99,8 @@
   /// path must be canonicalized (not contain "."/"..").
   int clang_VirtualFileOverlay_addFileMapping(
     CXVirtualFileOverlay arg0,
-    ffi.Pointer<ffi.Int8> virtualPath,
-    ffi.Pointer<ffi.Int8> realPath,
+    ffi.Pointer<ffi.Char> virtualPath,
+    ffi.Pointer<ffi.Char> realPath,
   ) {
     return _clang_VirtualFileOverlay_addFileMapping(
       arg0,
@@ -110,13 +111,13 @@
 
   late final _clang_VirtualFileOverlay_addFileMappingPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(CXVirtualFileOverlay, ffi.Pointer<ffi.Int8>,
-                  ffi.Pointer<ffi.Int8>)>>(
+              ffi.Int32 Function(CXVirtualFileOverlay, ffi.Pointer<ffi.Char>,
+                  ffi.Pointer<ffi.Char>)>>(
       'clang_VirtualFileOverlay_addFileMapping');
   late final _clang_VirtualFileOverlay_addFileMapping =
       _clang_VirtualFileOverlay_addFileMappingPtr.asFunction<
-          int Function(CXVirtualFileOverlay, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>();
+          int Function(CXVirtualFileOverlay, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>();
 
   /// Set the case sensitivity for the CXVirtualFileOverlay object. The
   /// CXVirtualFileOverlay object is case-sensitive by default, this option can
@@ -134,7 +135,7 @@
   late final _clang_VirtualFileOverlay_setCaseSensitivityPtr = _lookup<
       ffi.NativeFunction<
           ffi.Int32 Function(CXVirtualFileOverlay,
-              ffi.Int32)>>('clang_VirtualFileOverlay_setCaseSensitivity');
+              ffi.Int)>>('clang_VirtualFileOverlay_setCaseSensitivity');
   late final _clang_VirtualFileOverlay_setCaseSensitivity =
       _clang_VirtualFileOverlay_setCaseSensitivityPtr
           .asFunction<int Function(CXVirtualFileOverlay, int)>();
@@ -143,8 +144,8 @@
   int clang_VirtualFileOverlay_writeToBuffer(
     CXVirtualFileOverlay arg0,
     int options,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> out_buffer_ptr,
-    ffi.Pointer<ffi.Uint32> out_buffer_size,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> out_buffer_ptr,
+    ffi.Pointer<ffi.UnsignedInt> out_buffer_size,
   ) {
     return _clang_VirtualFileOverlay_writeToBuffer(
       arg0,
@@ -158,14 +159,17 @@
           ffi.NativeFunction<
               ffi.Int32 Function(
                   CXVirtualFileOverlay,
-                  ffi.Uint32,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Pointer<ffi.Uint32>)>>(
+                  ffi.UnsignedInt,
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.Pointer<ffi.UnsignedInt>)>>(
       'clang_VirtualFileOverlay_writeToBuffer');
   late final _clang_VirtualFileOverlay_writeToBuffer =
       _clang_VirtualFileOverlay_writeToBufferPtr.asFunction<
-          int Function(CXVirtualFileOverlay, int,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>, ffi.Pointer<ffi.Uint32>)>();
+          int Function(
+              CXVirtualFileOverlay,
+              int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// free memory allocated by libclang, such as the buffer returned by
   /// CXVirtualFileOverlay() or clang_ModuleMapDescriptor_writeToBuffer().
@@ -209,9 +213,9 @@
     );
   }
 
-  late final _clang_ModuleMapDescriptor_createPtr =
-      _lookup<ffi.NativeFunction<CXModuleMapDescriptor Function(ffi.Uint32)>>(
-          'clang_ModuleMapDescriptor_create');
+  late final _clang_ModuleMapDescriptor_createPtr = _lookup<
+          ffi.NativeFunction<CXModuleMapDescriptor Function(ffi.UnsignedInt)>>(
+      'clang_ModuleMapDescriptor_create');
   late final _clang_ModuleMapDescriptor_create =
       _clang_ModuleMapDescriptor_createPtr
           .asFunction<CXModuleMapDescriptor Function(int)>();
@@ -219,7 +223,7 @@
   /// Sets the framework module name that the module.map describes.
   int clang_ModuleMapDescriptor_setFrameworkModuleName(
     CXModuleMapDescriptor arg0,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _clang_ModuleMapDescriptor_setFrameworkModuleName(
       arg0,
@@ -230,16 +234,16 @@
   late final _clang_ModuleMapDescriptor_setFrameworkModuleNamePtr = _lookup<
           ffi.NativeFunction<
               ffi.Int32 Function(
-                  CXModuleMapDescriptor, ffi.Pointer<ffi.Int8>)>>(
+                  CXModuleMapDescriptor, ffi.Pointer<ffi.Char>)>>(
       'clang_ModuleMapDescriptor_setFrameworkModuleName');
   late final _clang_ModuleMapDescriptor_setFrameworkModuleName =
       _clang_ModuleMapDescriptor_setFrameworkModuleNamePtr.asFunction<
-          int Function(CXModuleMapDescriptor, ffi.Pointer<ffi.Int8>)>();
+          int Function(CXModuleMapDescriptor, ffi.Pointer<ffi.Char>)>();
 
   /// Sets the umbrealla header name that the module.map describes.
   int clang_ModuleMapDescriptor_setUmbrellaHeader(
     CXModuleMapDescriptor arg0,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _clang_ModuleMapDescriptor_setUmbrellaHeader(
       arg0,
@@ -250,18 +254,18 @@
   late final _clang_ModuleMapDescriptor_setUmbrellaHeaderPtr = _lookup<
           ffi.NativeFunction<
               ffi.Int32 Function(
-                  CXModuleMapDescriptor, ffi.Pointer<ffi.Int8>)>>(
+                  CXModuleMapDescriptor, ffi.Pointer<ffi.Char>)>>(
       'clang_ModuleMapDescriptor_setUmbrellaHeader');
   late final _clang_ModuleMapDescriptor_setUmbrellaHeader =
       _clang_ModuleMapDescriptor_setUmbrellaHeaderPtr.asFunction<
-          int Function(CXModuleMapDescriptor, ffi.Pointer<ffi.Int8>)>();
+          int Function(CXModuleMapDescriptor, ffi.Pointer<ffi.Char>)>();
 
   /// Write out the CXModuleMapDescriptor object to a char buffer.
   int clang_ModuleMapDescriptor_writeToBuffer(
     CXModuleMapDescriptor arg0,
     int options,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> out_buffer_ptr,
-    ffi.Pointer<ffi.Uint32> out_buffer_size,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> out_buffer_ptr,
+    ffi.Pointer<ffi.UnsignedInt> out_buffer_size,
   ) {
     return _clang_ModuleMapDescriptor_writeToBuffer(
       arg0,
@@ -275,14 +279,17 @@
           ffi.NativeFunction<
               ffi.Int32 Function(
                   CXModuleMapDescriptor,
-                  ffi.Uint32,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Pointer<ffi.Uint32>)>>(
+                  ffi.UnsignedInt,
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.Pointer<ffi.UnsignedInt>)>>(
       'clang_ModuleMapDescriptor_writeToBuffer');
   late final _clang_ModuleMapDescriptor_writeToBuffer =
       _clang_ModuleMapDescriptor_writeToBufferPtr.asFunction<
-          int Function(CXModuleMapDescriptor, int,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>, ffi.Pointer<ffi.Uint32>)>();
+          int Function(
+              CXModuleMapDescriptor,
+              int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Dispose a CXModuleMapDescriptor object.
   void clang_ModuleMapDescriptor_dispose(
@@ -312,7 +319,7 @@
   }
 
   late final _clang_createIndexPtr =
-      _lookup<ffi.NativeFunction<CXIndex Function(ffi.Int32, ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<CXIndex Function(ffi.Int, ffi.Int)>>(
           'clang_createIndex');
   late final _clang_createIndex =
       _clang_createIndexPtr.asFunction<CXIndex Function(int, int)>();
@@ -344,7 +351,7 @@
   }
 
   late final _clang_CXIndex_setGlobalOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(CXIndex, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(CXIndex, ffi.UnsignedInt)>>(
           'clang_CXIndex_setGlobalOptions');
   late final _clang_CXIndex_setGlobalOptions =
       _clang_CXIndex_setGlobalOptionsPtr
@@ -360,7 +367,7 @@
   }
 
   late final _clang_CXIndex_getGlobalOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXIndex)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXIndex)>>(
           'clang_CXIndex_getGlobalOptions');
   late final _clang_CXIndex_getGlobalOptions =
       _clang_CXIndex_getGlobalOptionsPtr.asFunction<int Function(CXIndex)>();
@@ -368,7 +375,7 @@
   /// Sets the invocation emission path option in a CXIndex.
   void clang_CXIndex_setInvocationEmissionPathOption(
     CXIndex arg0,
-    ffi.Pointer<ffi.Int8> Path,
+    ffi.Pointer<ffi.Char> Path,
   ) {
     return _clang_CXIndex_setInvocationEmissionPathOption(
       arg0,
@@ -378,11 +385,11 @@
 
   late final _clang_CXIndex_setInvocationEmissionPathOptionPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Void Function(CXIndex, ffi.Pointer<ffi.Int8>)>>(
+              ffi.Void Function(CXIndex, ffi.Pointer<ffi.Char>)>>(
       'clang_CXIndex_setInvocationEmissionPathOption');
   late final _clang_CXIndex_setInvocationEmissionPathOption =
       _clang_CXIndex_setInvocationEmissionPathOptionPtr
-          .asFunction<void Function(CXIndex, ffi.Pointer<ffi.Int8>)>();
+          .asFunction<void Function(CXIndex, ffi.Pointer<ffi.Char>)>();
 
   /// Retrieve the complete file and path name of the given file.
   CXString clang_getFileName(
@@ -427,7 +434,7 @@
 
   late final _clang_getFileUniqueIDPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXFile, ffi.Pointer<CXFileUniqueID>)>>('clang_getFileUniqueID');
   late final _clang_getFileUniqueID = _clang_getFileUniqueIDPtr
       .asFunction<int Function(CXFile, ffi.Pointer<CXFileUniqueID>)>();
@@ -446,8 +453,9 @@
   }
 
   late final _clang_isFileMultipleIncludeGuardedPtr = _lookup<
-          ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit, CXFile)>>(
-      'clang_isFileMultipleIncludeGuarded');
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(CXTranslationUnit,
+              CXFile)>>('clang_isFileMultipleIncludeGuarded');
   late final _clang_isFileMultipleIncludeGuarded =
       _clang_isFileMultipleIncludeGuardedPtr
           .asFunction<int Function(CXTranslationUnit, CXFile)>();
@@ -455,7 +463,7 @@
   /// Retrieve a file handle within the given translation unit.
   CXFile clang_getFile(
     CXTranslationUnit tu,
-    ffi.Pointer<ffi.Int8> file_name,
+    ffi.Pointer<ffi.Char> file_name,
   ) {
     return _clang_getFile(
       tu,
@@ -466,15 +474,15 @@
   late final _clang_getFilePtr = _lookup<
       ffi.NativeFunction<
           CXFile Function(
-              CXTranslationUnit, ffi.Pointer<ffi.Int8>)>>('clang_getFile');
+              CXTranslationUnit, ffi.Pointer<ffi.Char>)>>('clang_getFile');
   late final _clang_getFile = _clang_getFilePtr
-      .asFunction<CXFile Function(CXTranslationUnit, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<CXFile Function(CXTranslationUnit, ffi.Pointer<ffi.Char>)>();
 
   /// Retrieve the buffer associated with the given file.
-  ffi.Pointer<ffi.Int8> clang_getFileContents(
+  ffi.Pointer<ffi.Char> clang_getFileContents(
     CXTranslationUnit tu,
     CXFile file,
-    ffi.Pointer<ffi.IntPtr> size,
+    ffi.Pointer<ffi.Size> size,
   ) {
     return _clang_getFileContents(
       tu,
@@ -485,11 +493,11 @@
 
   late final _clang_getFileContentsPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(CXTranslationUnit, CXFile,
-              ffi.Pointer<ffi.IntPtr>)>>('clang_getFileContents');
+          ffi.Pointer<ffi.Char> Function(CXTranslationUnit, CXFile,
+              ffi.Pointer<ffi.Size>)>>('clang_getFileContents');
   late final _clang_getFileContents = _clang_getFileContentsPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(
-          CXTranslationUnit, CXFile, ffi.Pointer<ffi.IntPtr>)>();
+      ffi.Pointer<ffi.Char> Function(
+          CXTranslationUnit, CXFile, ffi.Pointer<ffi.Size>)>();
 
   /// Returns non-zero if the file1 and file2 point to the same file, or they
   /// are both NULL.
@@ -504,7 +512,7 @@
   }
 
   late final _clang_File_isEqualPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXFile, CXFile)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXFile, CXFile)>>(
           'clang_File_isEqual');
   late final _clang_File_isEqual =
       _clang_File_isEqualPtr.asFunction<int Function(CXFile, CXFile)>();
@@ -549,7 +557,7 @@
 
   late final _clang_equalLocationsPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXSourceLocation, CXSourceLocation)>>('clang_equalLocations');
   late final _clang_equalLocations = _clang_equalLocationsPtr
       .asFunction<int Function(CXSourceLocation, CXSourceLocation)>();
@@ -572,8 +580,8 @@
 
   late final _clang_getLocationPtr = _lookup<
       ffi.NativeFunction<
-          CXSourceLocation Function(CXTranslationUnit, CXFile, ffi.Uint32,
-              ffi.Uint32)>>('clang_getLocation');
+          CXSourceLocation Function(CXTranslationUnit, CXFile, ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_getLocation');
   late final _clang_getLocation = _clang_getLocationPtr.asFunction<
       CXSourceLocation Function(CXTranslationUnit, CXFile, int, int)>();
 
@@ -594,7 +602,7 @@
   late final _clang_getLocationForOffsetPtr = _lookup<
       ffi.NativeFunction<
           CXSourceLocation Function(CXTranslationUnit, CXFile,
-              ffi.Uint32)>>('clang_getLocationForOffset');
+              ffi.UnsignedInt)>>('clang_getLocationForOffset');
   late final _clang_getLocationForOffset = _clang_getLocationForOffsetPtr
       .asFunction<CXSourceLocation Function(CXTranslationUnit, CXFile, int)>();
 
@@ -608,7 +616,7 @@
   }
 
   late final _clang_Location_isInSystemHeaderPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXSourceLocation)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXSourceLocation)>>(
           'clang_Location_isInSystemHeader');
   late final _clang_Location_isInSystemHeader =
       _clang_Location_isInSystemHeaderPtr
@@ -625,7 +633,7 @@
   }
 
   late final _clang_Location_isFromMainFilePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXSourceLocation)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXSourceLocation)>>(
           'clang_Location_isFromMainFile');
   late final _clang_Location_isFromMainFile = _clang_Location_isFromMainFilePtr
       .asFunction<int Function(CXSourceLocation)>();
@@ -672,7 +680,7 @@
 
   late final _clang_equalRangesPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXSourceRange, CXSourceRange)>>('clang_equalRanges');
   late final _clang_equalRanges = _clang_equalRangesPtr
       .asFunction<int Function(CXSourceRange, CXSourceRange)>();
@@ -687,7 +695,7 @@
   }
 
   late final _clang_Range_isNullPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXSourceRange)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXSourceRange)>>(
           'clang_Range_isNull');
   late final _clang_Range_isNull =
       _clang_Range_isNullPtr.asFunction<int Function(CXSourceRange)>();
@@ -697,9 +705,9 @@
   void clang_getExpansionLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getExpansionLocation(
       location,
@@ -715,25 +723,25 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getExpansionLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getExpansionLocation');
   late final _clang_getExpansionLocation =
       _clang_getExpansionLocationPtr.asFunction<
           void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Retrieve the file, line and column represented by the given source
   /// location, as specified in a # line directive.
   void clang_getPresumedLocation(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
   ) {
     return _clang_getPresumedLocation(
       location,
@@ -748,21 +756,21 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getPresumedLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getPresumedLocation');
   late final _clang_getPresumedLocation =
       _clang_getPresumedLocationPtr.asFunction<
           void Function(CXSourceLocation, ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Uint32>, ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>, ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Legacy API to retrieve the file, line, column, and offset represented by
   /// the given source location.
   void clang_getInstantiationLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getInstantiationLocation(
       location,
@@ -778,26 +786,26 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getInstantiationLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getInstantiationLocation');
   late final _clang_getInstantiationLocation =
       _clang_getInstantiationLocationPtr.asFunction<
           void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Retrieve the file, line, column, and offset represented by the given
   /// source location.
   void clang_getSpellingLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getSpellingLocation(
       location,
@@ -813,26 +821,26 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getSpellingLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getSpellingLocation');
   late final _clang_getSpellingLocation =
       _clang_getSpellingLocationPtr.asFunction<
           void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Retrieve the file, line, column, and offset represented by the given
   /// source location.
   void clang_getFileLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getFileLocation(
       location,
@@ -848,16 +856,16 @@
           ffi.Void Function(
               CXSourceLocation,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getFileLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getFileLocation');
   late final _clang_getFileLocation = _clang_getFileLocationPtr.asFunction<
       void Function(
           CXSourceLocation,
           ffi.Pointer<CXFile>,
-          ffi.Pointer<ffi.Uint32>,
-          ffi.Pointer<ffi.Uint32>,
-          ffi.Pointer<ffi.Uint32>)>();
+          ffi.Pointer<ffi.UnsignedInt>,
+          ffi.Pointer<ffi.UnsignedInt>,
+          ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Retrieve a source location representing the first character within a
   /// source range.
@@ -951,7 +959,7 @@
   }
 
   late final _clang_getNumDiagnosticsInSetPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXDiagnosticSet)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXDiagnosticSet)>>(
           'clang_getNumDiagnosticsInSet');
   late final _clang_getNumDiagnosticsInSet = _clang_getNumDiagnosticsInSetPtr
       .asFunction<int Function(CXDiagnosticSet)>();
@@ -970,13 +978,13 @@
   late final _clang_getDiagnosticInSetPtr = _lookup<
       ffi.NativeFunction<
           CXDiagnostic Function(
-              CXDiagnosticSet, ffi.Uint32)>>('clang_getDiagnosticInSet');
+              CXDiagnosticSet, ffi.UnsignedInt)>>('clang_getDiagnosticInSet');
   late final _clang_getDiagnosticInSet = _clang_getDiagnosticInSetPtr
       .asFunction<CXDiagnostic Function(CXDiagnosticSet, int)>();
 
   /// Deserialize a set of diagnostics from a Clang diagnostics bitcode file.
   CXDiagnosticSet clang_loadDiagnostics(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString,
   ) {
@@ -990,11 +998,11 @@
   late final _clang_loadDiagnosticsPtr = _lookup<
       ffi.NativeFunction<
           CXDiagnosticSet Function(
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<ffi.Int32>,
               ffi.Pointer<CXString>)>>('clang_loadDiagnostics');
   late final _clang_loadDiagnostics = _clang_loadDiagnosticsPtr.asFunction<
-      CXDiagnosticSet Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int32>,
+      CXDiagnosticSet Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Int32>,
           ffi.Pointer<CXString>)>();
 
   /// Release a CXDiagnosticSet and all of its contained diagnostics.
@@ -1038,7 +1046,7 @@
   }
 
   late final _clang_getNumDiagnosticsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXTranslationUnit)>>(
           'clang_getNumDiagnostics');
   late final _clang_getNumDiagnostics =
       _clang_getNumDiagnosticsPtr.asFunction<int Function(CXTranslationUnit)>();
@@ -1057,7 +1065,7 @@
   late final _clang_getDiagnosticPtr = _lookup<
       ffi.NativeFunction<
           CXDiagnostic Function(
-              CXTranslationUnit, ffi.Uint32)>>('clang_getDiagnostic');
+              CXTranslationUnit, ffi.UnsignedInt)>>('clang_getDiagnostic');
   late final _clang_getDiagnostic = _clang_getDiagnosticPtr
       .asFunction<CXDiagnostic Function(CXTranslationUnit, int)>();
 
@@ -1103,9 +1111,9 @@
     );
   }
 
-  late final _clang_formatDiagnosticPtr =
-      _lookup<ffi.NativeFunction<CXString Function(CXDiagnostic, ffi.Uint32)>>(
-          'clang_formatDiagnostic');
+  late final _clang_formatDiagnosticPtr = _lookup<
+          ffi.NativeFunction<CXString Function(CXDiagnostic, ffi.UnsignedInt)>>(
+      'clang_formatDiagnostic');
   late final _clang_formatDiagnostic = _clang_formatDiagnosticPtr
       .asFunction<CXString Function(CXDiagnostic, int)>();
 
@@ -1116,7 +1124,7 @@
   }
 
   late final _clang_defaultDiagnosticDisplayOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function()>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function()>>(
           'clang_defaultDiagnosticDisplayOptions');
   late final _clang_defaultDiagnosticDisplayOptions =
       _clang_defaultDiagnosticDisplayOptionsPtr.asFunction<int Function()>();
@@ -1194,7 +1202,7 @@
   }
 
   late final _clang_getDiagnosticCategoryPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXDiagnostic)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXDiagnostic)>>(
           'clang_getDiagnosticCategory');
   late final _clang_getDiagnosticCategory =
       _clang_getDiagnosticCategoryPtr.asFunction<int Function(CXDiagnostic)>();
@@ -1210,7 +1218,7 @@
   }
 
   late final _clang_getDiagnosticCategoryNamePtr =
-      _lookup<ffi.NativeFunction<CXString Function(ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXString Function(ffi.UnsignedInt)>>(
           'clang_getDiagnosticCategoryName');
   late final _clang_getDiagnosticCategoryName =
       _clang_getDiagnosticCategoryNamePtr.asFunction<CXString Function(int)>();
@@ -1242,7 +1250,7 @@
   }
 
   late final _clang_getDiagnosticNumRangesPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXDiagnostic)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXDiagnostic)>>(
           'clang_getDiagnosticNumRanges');
   late final _clang_getDiagnosticNumRanges =
       _clang_getDiagnosticNumRangesPtr.asFunction<int Function(CXDiagnostic)>();
@@ -1259,8 +1267,9 @@
   }
 
   late final _clang_getDiagnosticRangePtr = _lookup<
-          ffi.NativeFunction<CXSourceRange Function(CXDiagnostic, ffi.Uint32)>>(
-      'clang_getDiagnosticRange');
+      ffi.NativeFunction<
+          CXSourceRange Function(
+              CXDiagnostic, ffi.UnsignedInt)>>('clang_getDiagnosticRange');
   late final _clang_getDiagnosticRange = _clang_getDiagnosticRangePtr
       .asFunction<CXSourceRange Function(CXDiagnostic, int)>();
 
@@ -1274,7 +1283,7 @@
   }
 
   late final _clang_getDiagnosticNumFixItsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXDiagnostic)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXDiagnostic)>>(
           'clang_getDiagnosticNumFixIts');
   late final _clang_getDiagnosticNumFixIts =
       _clang_getDiagnosticNumFixItsPtr.asFunction<int Function(CXDiagnostic)>();
@@ -1294,7 +1303,7 @@
 
   late final _clang_getDiagnosticFixItPtr = _lookup<
       ffi.NativeFunction<
-          CXString Function(CXDiagnostic, ffi.Uint32,
+          CXString Function(CXDiagnostic, ffi.UnsignedInt,
               ffi.Pointer<CXSourceRange>)>>('clang_getDiagnosticFixIt');
   late final _clang_getDiagnosticFixIt =
       _clang_getDiagnosticFixItPtr.asFunction<
@@ -1320,9 +1329,9 @@
   /// command line arguments one would pass to the compiler.
   CXTranslationUnit clang_createTranslationUnitFromSourceFile(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
+    ffi.Pointer<ffi.Char> source_filename,
     int num_clang_command_line_args,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
     int num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
   ) {
@@ -1340,19 +1349,19 @@
           ffi.NativeFunction<
               CXTranslationUnit Function(
                   CXIndex,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Int32,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Uint32,
+                  ffi.Pointer<ffi.Char>,
+                  ffi.Int,
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.UnsignedInt,
                   ffi.Pointer<CXUnsavedFile>)>>(
       'clang_createTranslationUnitFromSourceFile');
   late final _clang_createTranslationUnitFromSourceFile =
       _clang_createTranslationUnitFromSourceFilePtr.asFunction<
           CXTranslationUnit Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               int,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>)>();
 
@@ -1361,7 +1370,7 @@
   /// CXTranslationUnit, without further detailed error codes.
   CXTranslationUnit clang_createTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
   ) {
     return _clang_createTranslationUnit(
       CIdx,
@@ -1372,14 +1381,14 @@
   late final _clang_createTranslationUnitPtr = _lookup<
       ffi.NativeFunction<
           CXTranslationUnit Function(
-              CXIndex, ffi.Pointer<ffi.Int8>)>>('clang_createTranslationUnit');
+              CXIndex, ffi.Pointer<ffi.Char>)>>('clang_createTranslationUnit');
   late final _clang_createTranslationUnit = _clang_createTranslationUnitPtr
-      .asFunction<CXTranslationUnit Function(CXIndex, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<CXTranslationUnit Function(CXIndex, ffi.Pointer<ffi.Char>)>();
 
   /// Create a translation unit from an AST file ( -emit-ast).
   int clang_createTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
     ffi.Pointer<CXTranslationUnit> out_TU,
   ) {
     return _clang_createTranslationUnit2(
@@ -1391,11 +1400,11 @@
 
   late final _clang_createTranslationUnit2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(CXIndex, ffi.Pointer<ffi.Int8>,
+          ffi.Int32 Function(CXIndex, ffi.Pointer<ffi.Char>,
               ffi.Pointer<CXTranslationUnit>)>>('clang_createTranslationUnit2');
   late final _clang_createTranslationUnit2 =
       _clang_createTranslationUnit2Ptr.asFunction<
-          int Function(CXIndex, ffi.Pointer<ffi.Int8>,
+          int Function(CXIndex, ffi.Pointer<ffi.Char>,
               ffi.Pointer<CXTranslationUnit>)>();
 
   /// Returns the set of flags that is suitable for parsing a translation unit
@@ -1405,7 +1414,7 @@
   }
 
   late final _clang_defaultEditingTranslationUnitOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function()>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function()>>(
           'clang_defaultEditingTranslationUnitOptions');
   late final _clang_defaultEditingTranslationUnitOptions =
       _clang_defaultEditingTranslationUnitOptionsPtr
@@ -1416,8 +1425,8 @@
   /// CXTranslationUnit, without further detailed error codes.
   CXTranslationUnit clang_parseTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1438,18 +1447,18 @@
       ffi.NativeFunction<
           CXTranslationUnit Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
-              ffi.Uint32)>>('clang_parseTranslationUnit');
+              ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_parseTranslationUnit');
   late final _clang_parseTranslationUnit =
       _clang_parseTranslationUnitPtr.asFunction<
           CXTranslationUnit Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>,
               int,
@@ -1459,8 +1468,8 @@
   /// file.
   int clang_parseTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1483,19 +1492,19 @@
       ffi.NativeFunction<
           ffi.Int32 Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
-              ffi.Uint32,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
               ffi.Pointer<CXTranslationUnit>)>>('clang_parseTranslationUnit2');
   late final _clang_parseTranslationUnit2 =
       _clang_parseTranslationUnit2Ptr.asFunction<
           int Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>,
               int,
@@ -1507,8 +1516,8 @@
   /// library paths are relative to the binary.
   int clang_parseTranslationUnit2FullArgv(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1531,20 +1540,20 @@
           ffi.NativeFunction<
               ffi.Int32 Function(
                   CXIndex,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Int32,
+                  ffi.Pointer<ffi.Char>,
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.Int,
                   ffi.Pointer<CXUnsavedFile>,
-                  ffi.Uint32,
-                  ffi.Uint32,
+                  ffi.UnsignedInt,
+                  ffi.UnsignedInt,
                   ffi.Pointer<CXTranslationUnit>)>>(
       'clang_parseTranslationUnit2FullArgv');
   late final _clang_parseTranslationUnit2FullArgv =
       _clang_parseTranslationUnit2FullArgvPtr.asFunction<
           int Function(
               CXIndex,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>,
               int,
@@ -1561,7 +1570,7 @@
   }
 
   late final _clang_defaultSaveOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXTranslationUnit)>>(
           'clang_defaultSaveOptions');
   late final _clang_defaultSaveOptions = _clang_defaultSaveOptionsPtr
       .asFunction<int Function(CXTranslationUnit)>();
@@ -1570,7 +1579,7 @@
   /// translation unit on disk.
   int clang_saveTranslationUnit(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> FileName,
+    ffi.Pointer<ffi.Char> FileName,
     int options,
   ) {
     return _clang_saveTranslationUnit(
@@ -1582,11 +1591,11 @@
 
   late final _clang_saveTranslationUnitPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(CXTranslationUnit, ffi.Pointer<ffi.Int8>,
-              ffi.Uint32)>>('clang_saveTranslationUnit');
+          ffi.Int Function(CXTranslationUnit, ffi.Pointer<ffi.Char>,
+              ffi.UnsignedInt)>>('clang_saveTranslationUnit');
   late final _clang_saveTranslationUnit =
       _clang_saveTranslationUnitPtr.asFunction<
-          int Function(CXTranslationUnit, ffi.Pointer<ffi.Int8>, int)>();
+          int Function(CXTranslationUnit, ffi.Pointer<ffi.Char>, int)>();
 
   /// Suspend a translation unit in order to free memory associated with it.
   int clang_suspendTranslationUnit(
@@ -1598,7 +1607,7 @@
   }
 
   late final _clang_suspendTranslationUnitPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXTranslationUnit)>>(
           'clang_suspendTranslationUnit');
   late final _clang_suspendTranslationUnit = _clang_suspendTranslationUnitPtr
       .asFunction<int Function(CXTranslationUnit)>();
@@ -1629,7 +1638,7 @@
   }
 
   late final _clang_defaultReparseOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXTranslationUnit)>>(
           'clang_defaultReparseOptions');
   late final _clang_defaultReparseOptions = _clang_defaultReparseOptionsPtr
       .asFunction<int Function(CXTranslationUnit)>();
@@ -1651,11 +1660,11 @@
 
   late final _clang_reparseTranslationUnitPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXTranslationUnit,
-              ffi.Uint32,
+              ffi.UnsignedInt,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32)>>('clang_reparseTranslationUnit');
+              ffi.UnsignedInt)>>('clang_reparseTranslationUnit');
   late final _clang_reparseTranslationUnit =
       _clang_reparseTranslationUnitPtr.asFunction<
           int Function(
@@ -1663,7 +1672,7 @@
 
   /// Returns the human-readable null-terminated C string that represents the
   /// name of the memory category. This string should never be freed.
-  ffi.Pointer<ffi.Int8> clang_getTUResourceUsageName(
+  ffi.Pointer<ffi.Char> clang_getTUResourceUsageName(
     int kind,
   ) {
     return _clang_getTUResourceUsageName(
@@ -1672,10 +1681,10 @@
   }
 
   late final _clang_getTUResourceUsageNamePtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(ffi.Int32)>>(
           'clang_getTUResourceUsageName');
   late final _clang_getTUResourceUsageName = _clang_getTUResourceUsageNamePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(int)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(int)>();
 
   /// Return the memory usage of a translation unit. This object should be
   /// released with clang_disposeCXTUResourceUsage().
@@ -1764,7 +1773,7 @@
   }
 
   late final _clang_TargetInfo_getPointerWidthPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXTargetInfo)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXTargetInfo)>>(
           'clang_TargetInfo_getPointerWidth');
   late final _clang_TargetInfo_getPointerWidth =
       _clang_TargetInfo_getPointerWidthPtr
@@ -1808,7 +1817,7 @@
   }
 
   late final _clang_equalCursorsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor, CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor, CXCursor)>>(
           'clang_equalCursors');
   late final _clang_equalCursors =
       _clang_equalCursorsPtr.asFunction<int Function(CXCursor, CXCursor)>();
@@ -1823,7 +1832,7 @@
   }
 
   late final _clang_Cursor_isNullPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_isNull');
   late final _clang_Cursor_isNull =
       _clang_Cursor_isNullPtr.asFunction<int Function(CXCursor)>();
@@ -1838,7 +1847,7 @@
   }
 
   late final _clang_hashCursorPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_hashCursor');
   late final _clang_hashCursor =
       _clang_hashCursorPtr.asFunction<int Function(CXCursor)>();
@@ -1868,7 +1877,7 @@
   }
 
   late final _clang_isDeclarationPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isDeclaration');
   late final _clang_isDeclaration =
       _clang_isDeclarationPtr.asFunction<int Function(int)>();
@@ -1883,7 +1892,7 @@
   }
 
   late final _clang_isInvalidDeclarationPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_isInvalidDeclaration');
   late final _clang_isInvalidDeclaration =
       _clang_isInvalidDeclarationPtr.asFunction<int Function(CXCursor)>();
@@ -1898,7 +1907,7 @@
   }
 
   late final _clang_isReferencePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isReference');
   late final _clang_isReference =
       _clang_isReferencePtr.asFunction<int Function(int)>();
@@ -1913,7 +1922,7 @@
   }
 
   late final _clang_isExpressionPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isExpression');
   late final _clang_isExpression =
       _clang_isExpressionPtr.asFunction<int Function(int)>();
@@ -1928,7 +1937,7 @@
   }
 
   late final _clang_isStatementPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isStatement');
   late final _clang_isStatement =
       _clang_isStatementPtr.asFunction<int Function(int)>();
@@ -1943,7 +1952,7 @@
   }
 
   late final _clang_isAttributePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isAttribute');
   late final _clang_isAttribute =
       _clang_isAttributePtr.asFunction<int Function(int)>();
@@ -1958,7 +1967,7 @@
   }
 
   late final _clang_Cursor_hasAttrsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_hasAttrs');
   late final _clang_Cursor_hasAttrs =
       _clang_Cursor_hasAttrsPtr.asFunction<int Function(CXCursor)>();
@@ -1973,7 +1982,7 @@
   }
 
   late final _clang_isInvalidPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isInvalid');
   late final _clang_isInvalid =
       _clang_isInvalidPtr.asFunction<int Function(int)>();
@@ -1988,7 +1997,7 @@
   }
 
   late final _clang_isTranslationUnitPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isTranslationUnit');
   late final _clang_isTranslationUnit =
       _clang_isTranslationUnitPtr.asFunction<int Function(int)>();
@@ -2004,7 +2013,7 @@
   }
 
   late final _clang_isPreprocessingPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isPreprocessing');
   late final _clang_isPreprocessing =
       _clang_isPreprocessingPtr.asFunction<int Function(int)>();
@@ -2020,7 +2029,7 @@
   }
 
   late final _clang_isUnexposedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(ffi.Int32)>>(
           'clang_isUnexposed');
   late final _clang_isUnexposed =
       _clang_isUnexposedPtr.asFunction<int Function(int)>();
@@ -2075,9 +2084,9 @@
   /// platforms for which availability information is known.
   int clang_getCursorPlatformAvailability(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size,
@@ -2095,21 +2104,21 @@
 
   late final _clang_getCursorPlatformAvailabilityPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXCursor,
-              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ffi.Int>,
               ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ffi.Int>,
               ffi.Pointer<CXString>,
               ffi.Pointer<CXPlatformAvailability>,
-              ffi.Int32)>>('clang_getCursorPlatformAvailability');
+              ffi.Int)>>('clang_getCursorPlatformAvailability');
   late final _clang_getCursorPlatformAvailability =
       _clang_getCursorPlatformAvailabilityPtr.asFunction<
           int Function(
               CXCursor,
-              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ffi.Int>,
               ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Int32>,
+              ffi.Pointer<ffi.Int>,
               ffi.Pointer<CXString>,
               ffi.Pointer<CXPlatformAvailability>,
               int)>();
@@ -2215,9 +2224,9 @@
     );
   }
 
-  late final _clang_CXCursorSet_containsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursorSet, CXCursor)>>(
-          'clang_CXCursorSet_contains');
+  late final _clang_CXCursorSet_containsPtr = _lookup<
+          ffi.NativeFunction<ffi.UnsignedInt Function(CXCursorSet, CXCursor)>>(
+      'clang_CXCursorSet_contains');
   late final _clang_CXCursorSet_contains = _clang_CXCursorSet_containsPtr
       .asFunction<int Function(CXCursorSet, CXCursor)>();
 
@@ -2232,9 +2241,9 @@
     );
   }
 
-  late final _clang_CXCursorSet_insertPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursorSet, CXCursor)>>(
-          'clang_CXCursorSet_insert');
+  late final _clang_CXCursorSet_insertPtr = _lookup<
+          ffi.NativeFunction<ffi.UnsignedInt Function(CXCursorSet, CXCursor)>>(
+      'clang_CXCursorSet_insert');
   late final _clang_CXCursorSet_insert = _clang_CXCursorSet_insertPtr
       .asFunction<int Function(CXCursorSet, CXCursor)>();
 
@@ -2272,7 +2281,7 @@
   void clang_getOverriddenCursors(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden,
+    ffi.Pointer<ffi.UnsignedInt> num_overridden,
   ) {
     return _clang_getOverriddenCursors(
       cursor,
@@ -2284,11 +2293,11 @@
   late final _clang_getOverriddenCursorsPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(CXCursor, ffi.Pointer<ffi.Pointer<CXCursor>>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_getOverriddenCursors');
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_getOverriddenCursors');
   late final _clang_getOverriddenCursors =
       _clang_getOverriddenCursorsPtr.asFunction<
           void Function(CXCursor, ffi.Pointer<ffi.Pointer<CXCursor>>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Free the set of overridden cursors returned by
   /// clang_getOverriddenCursors().
@@ -2447,7 +2456,7 @@
   }
 
   late final _clang_getEnumConstantDeclValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXCursor)>>(
           'clang_getEnumConstantDeclValue');
   late final _clang_getEnumConstantDeclValue =
       _clang_getEnumConstantDeclValuePtr.asFunction<int Function(CXCursor)>();
@@ -2463,7 +2472,7 @@
   }
 
   late final _clang_getEnumConstantDeclUnsignedValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint64 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedLongLong Function(CXCursor)>>(
           'clang_getEnumConstantDeclUnsignedValue');
   late final _clang_getEnumConstantDeclUnsignedValue =
       _clang_getEnumConstantDeclUnsignedValuePtr
@@ -2479,7 +2488,7 @@
   }
 
   late final _clang_getFieldDeclBitWidthPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_getFieldDeclBitWidth');
   late final _clang_getFieldDeclBitWidth =
       _clang_getFieldDeclBitWidthPtr.asFunction<int Function(CXCursor)>();
@@ -2495,7 +2504,7 @@
   }
 
   late final _clang_Cursor_getNumArgumentsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_getNumArguments');
   late final _clang_Cursor_getNumArguments =
       _clang_Cursor_getNumArgumentsPtr.asFunction<int Function(CXCursor)>();
@@ -2512,7 +2521,7 @@
   }
 
   late final _clang_Cursor_getArgumentPtr =
-      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.UnsignedInt)>>(
           'clang_Cursor_getArgument');
   late final _clang_Cursor_getArgument = _clang_Cursor_getArgumentPtr
       .asFunction<CXCursor Function(CXCursor, int)>();
@@ -2528,7 +2537,7 @@
   }
 
   late final _clang_Cursor_getNumTemplateArgumentsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_getNumTemplateArguments');
   late final _clang_Cursor_getNumTemplateArguments =
       _clang_Cursor_getNumTemplateArgumentsPtr
@@ -2545,9 +2554,9 @@
     );
   }
 
-  late final _clang_Cursor_getTemplateArgumentKindPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor, ffi.Uint32)>>(
-          'clang_Cursor_getTemplateArgumentKind');
+  late final _clang_Cursor_getTemplateArgumentKindPtr = _lookup<
+          ffi.NativeFunction<ffi.Int32 Function(CXCursor, ffi.UnsignedInt)>>(
+      'clang_Cursor_getTemplateArgumentKind');
   late final _clang_Cursor_getTemplateArgumentKind =
       _clang_Cursor_getTemplateArgumentKindPtr
           .asFunction<int Function(CXCursor, int)>();
@@ -2565,7 +2574,7 @@
   }
 
   late final _clang_Cursor_getTemplateArgumentTypePtr =
-      _lookup<ffi.NativeFunction<CXType Function(CXCursor, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXType Function(CXCursor, ffi.UnsignedInt)>>(
           'clang_Cursor_getTemplateArgumentType');
   late final _clang_Cursor_getTemplateArgumentType =
       _clang_Cursor_getTemplateArgumentTypePtr
@@ -2583,9 +2592,9 @@
     );
   }
 
-  late final _clang_Cursor_getTemplateArgumentValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXCursor, ffi.Uint32)>>(
-          'clang_Cursor_getTemplateArgumentValue');
+  late final _clang_Cursor_getTemplateArgumentValuePtr = _lookup<
+          ffi.NativeFunction<ffi.LongLong Function(CXCursor, ffi.UnsignedInt)>>(
+      'clang_Cursor_getTemplateArgumentValue');
   late final _clang_Cursor_getTemplateArgumentValue =
       _clang_Cursor_getTemplateArgumentValuePtr
           .asFunction<int Function(CXCursor, int)>();
@@ -2602,9 +2611,10 @@
     );
   }
 
-  late final _clang_Cursor_getTemplateArgumentUnsignedValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint64 Function(CXCursor, ffi.Uint32)>>(
-          'clang_Cursor_getTemplateArgumentUnsignedValue');
+  late final _clang_Cursor_getTemplateArgumentUnsignedValuePtr = _lookup<
+          ffi.NativeFunction<
+              ffi.UnsignedLongLong Function(CXCursor, ffi.UnsignedInt)>>(
+      'clang_Cursor_getTemplateArgumentUnsignedValue');
   late final _clang_Cursor_getTemplateArgumentUnsignedValue =
       _clang_Cursor_getTemplateArgumentUnsignedValuePtr
           .asFunction<int Function(CXCursor, int)>();
@@ -2621,7 +2631,7 @@
   }
 
   late final _clang_equalTypesPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType, CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType, CXType)>>(
           'clang_equalTypes');
   late final _clang_equalTypes =
       _clang_equalTypesPtr.asFunction<int Function(CXType, CXType)>();
@@ -2652,7 +2662,7 @@
   }
 
   late final _clang_isConstQualifiedTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_isConstQualifiedType');
   late final _clang_isConstQualifiedType =
       _clang_isConstQualifiedTypePtr.asFunction<int Function(CXType)>();
@@ -2667,7 +2677,7 @@
   }
 
   late final _clang_Cursor_isMacroFunctionLikePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isMacroFunctionLike');
   late final _clang_Cursor_isMacroFunctionLike =
       _clang_Cursor_isMacroFunctionLikePtr.asFunction<int Function(CXCursor)>();
@@ -2682,7 +2692,7 @@
   }
 
   late final _clang_Cursor_isMacroBuiltinPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isMacroBuiltin');
   late final _clang_Cursor_isMacroBuiltin =
       _clang_Cursor_isMacroBuiltinPtr.asFunction<int Function(CXCursor)>();
@@ -2698,7 +2708,7 @@
   }
 
   late final _clang_Cursor_isFunctionInlinedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isFunctionInlined');
   late final _clang_Cursor_isFunctionInlined =
       _clang_Cursor_isFunctionInlinedPtr.asFunction<int Function(CXCursor)>();
@@ -2715,7 +2725,7 @@
   }
 
   late final _clang_isVolatileQualifiedTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_isVolatileQualifiedType');
   late final _clang_isVolatileQualifiedType =
       _clang_isVolatileQualifiedTypePtr.asFunction<int Function(CXType)>();
@@ -2732,7 +2742,7 @@
   }
 
   late final _clang_isRestrictQualifiedTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_isRestrictQualifiedType');
   late final _clang_isRestrictQualifiedType =
       _clang_isRestrictQualifiedTypePtr.asFunction<int Function(CXType)>();
@@ -2747,7 +2757,7 @@
   }
 
   late final _clang_getAddressSpacePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_getAddressSpace');
   late final _clang_getAddressSpace =
       _clang_getAddressSpacePtr.asFunction<int Function(CXType)>();
@@ -2883,7 +2893,7 @@
   }
 
   late final _clang_getExceptionSpecificationTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXType)>>(
           'clang_getExceptionSpecificationType');
   late final _clang_getExceptionSpecificationType =
       _clang_getExceptionSpecificationTypePtr
@@ -2900,7 +2910,7 @@
   }
 
   late final _clang_getNumArgTypesPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXType)>>(
           'clang_getNumArgTypes');
   late final _clang_getNumArgTypes =
       _clang_getNumArgTypesPtr.asFunction<int Function(CXType)>();
@@ -2917,7 +2927,7 @@
   }
 
   late final _clang_getArgTypePtr =
-      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.UnsignedInt)>>(
           'clang_getArgType');
   late final _clang_getArgType =
       _clang_getArgTypePtr.asFunction<CXType Function(CXType, int)>();
@@ -2949,7 +2959,7 @@
   }
 
   late final _clang_Type_getNumObjCProtocolRefsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_Type_getNumObjCProtocolRefs');
   late final _clang_Type_getNumObjCProtocolRefs =
       _clang_Type_getNumObjCProtocolRefsPtr.asFunction<int Function(CXType)>();
@@ -2966,7 +2976,7 @@
   }
 
   late final _clang_Type_getObjCProtocolDeclPtr =
-      _lookup<ffi.NativeFunction<CXCursor Function(CXType, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXCursor Function(CXType, ffi.UnsignedInt)>>(
           'clang_Type_getObjCProtocolDecl');
   late final _clang_Type_getObjCProtocolDecl =
       _clang_Type_getObjCProtocolDeclPtr
@@ -2982,7 +2992,7 @@
   }
 
   late final _clang_Type_getNumObjCTypeArgsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_Type_getNumObjCTypeArgs');
   late final _clang_Type_getNumObjCTypeArgs =
       _clang_Type_getNumObjCTypeArgsPtr.asFunction<int Function(CXType)>();
@@ -2999,7 +3009,7 @@
   }
 
   late final _clang_Type_getObjCTypeArgPtr =
-      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.UnsignedInt)>>(
           'clang_Type_getObjCTypeArg');
   late final _clang_Type_getObjCTypeArg =
       _clang_Type_getObjCTypeArgPtr.asFunction<CXType Function(CXType, int)>();
@@ -3014,7 +3024,7 @@
   }
 
   late final _clang_isFunctionTypeVariadicPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_isFunctionTypeVariadic');
   late final _clang_isFunctionTypeVariadic =
       _clang_isFunctionTypeVariadicPtr.asFunction<int Function(CXType)>();
@@ -3045,7 +3055,7 @@
   }
 
   late final _clang_getCursorExceptionSpecificationTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_getCursorExceptionSpecificationType');
   late final _clang_getCursorExceptionSpecificationType =
       _clang_getCursorExceptionSpecificationTypePtr
@@ -3061,7 +3071,7 @@
   }
 
   late final _clang_isPODTypePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_isPODType');
   late final _clang_isPODType =
       _clang_isPODTypePtr.asFunction<int Function(CXType)>();
@@ -3091,7 +3101,7 @@
   }
 
   late final _clang_getNumElementsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_getNumElements');
   late final _clang_getNumElements =
       _clang_getNumElementsPtr.asFunction<int Function(CXType)>();
@@ -3121,7 +3131,7 @@
   }
 
   late final _clang_getArraySizePtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_getArraySize');
   late final _clang_getArraySize =
       _clang_getArraySizePtr.asFunction<int Function(CXType)>();
@@ -3151,7 +3161,7 @@
   }
 
   late final _clang_Type_isTransparentTagTypedefPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXType)>>(
           'clang_Type_isTransparentTagTypedef');
   late final _clang_Type_isTransparentTagTypedef =
       _clang_Type_isTransparentTagTypedefPtr.asFunction<int Function(CXType)>();
@@ -3181,7 +3191,7 @@
   }
 
   late final _clang_Type_getAlignOfPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_Type_getAlignOf');
   late final _clang_Type_getAlignOf =
       _clang_Type_getAlignOfPtr.asFunction<int Function(CXType)>();
@@ -3211,7 +3221,7 @@
   }
 
   late final _clang_Type_getSizeOfPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXType)>>(
           'clang_Type_getSizeOf');
   late final _clang_Type_getSizeOf =
       _clang_Type_getSizeOfPtr.asFunction<int Function(CXType)>();
@@ -3220,7 +3230,7 @@
   /// would be returned by __offsetof__ as per C++11[18.2p4]
   int clang_Type_getOffsetOf(
     CXType T,
-    ffi.Pointer<ffi.Int8> S,
+    ffi.Pointer<ffi.Char> S,
   ) {
     return _clang_Type_getOffsetOf(
       T,
@@ -3230,10 +3240,10 @@
 
   late final _clang_Type_getOffsetOfPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int64 Function(
-              CXType, ffi.Pointer<ffi.Int8>)>>('clang_Type_getOffsetOf');
+          ffi.LongLong Function(
+              CXType, ffi.Pointer<ffi.Char>)>>('clang_Type_getOffsetOf');
   late final _clang_Type_getOffsetOf = _clang_Type_getOffsetOfPtr
-      .asFunction<int Function(CXType, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(CXType, ffi.Pointer<ffi.Char>)>();
 
   /// Return the type that was modified by this attributed type.
   CXType clang_Type_getModifiedType(
@@ -3260,7 +3270,7 @@
   }
 
   late final _clang_Cursor_getOffsetOfFieldPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXCursor)>>(
           'clang_Cursor_getOffsetOfField');
   late final _clang_Cursor_getOffsetOfField =
       _clang_Cursor_getOffsetOfFieldPtr.asFunction<int Function(CXCursor)>();
@@ -3276,7 +3286,7 @@
   }
 
   late final _clang_Cursor_isAnonymousPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isAnonymous');
   late final _clang_Cursor_isAnonymous =
       _clang_Cursor_isAnonymousPtr.asFunction<int Function(CXCursor)>();
@@ -3292,7 +3302,7 @@
   }
 
   late final _clang_Cursor_isAnonymousRecordDeclPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isAnonymousRecordDecl');
   late final _clang_Cursor_isAnonymousRecordDecl =
       _clang_Cursor_isAnonymousRecordDeclPtr
@@ -3309,7 +3319,7 @@
   }
 
   late final _clang_Cursor_isInlineNamespacePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isInlineNamespace');
   late final _clang_Cursor_isInlineNamespace =
       _clang_Cursor_isInlineNamespacePtr.asFunction<int Function(CXCursor)>();
@@ -3325,7 +3335,7 @@
   }
 
   late final _clang_Type_getNumTemplateArgumentsPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXType)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXType)>>(
           'clang_Type_getNumTemplateArguments');
   late final _clang_Type_getNumTemplateArguments =
       _clang_Type_getNumTemplateArgumentsPtr.asFunction<int Function(CXType)>();
@@ -3343,7 +3353,7 @@
   }
 
   late final _clang_Type_getTemplateArgumentAsTypePtr =
-      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXType Function(CXType, ffi.UnsignedInt)>>(
           'clang_Type_getTemplateArgumentAsType');
   late final _clang_Type_getTemplateArgumentAsType =
       _clang_Type_getTemplateArgumentAsTypePtr
@@ -3375,7 +3385,7 @@
   }
 
   late final _clang_Cursor_isBitFieldPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isBitField');
   late final _clang_Cursor_isBitField =
       _clang_Cursor_isBitFieldPtr.asFunction<int Function(CXCursor)>();
@@ -3391,7 +3401,7 @@
   }
 
   late final _clang_isVirtualBasePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_isVirtualBase');
   late final _clang_isVirtualBase =
       _clang_isVirtualBasePtr.asFunction<int Function(CXCursor)>();
@@ -3437,7 +3447,7 @@
   }
 
   late final _clang_getNumOverloadedDeclsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_getNumOverloadedDecls');
   late final _clang_getNumOverloadedDecls =
       _clang_getNumOverloadedDeclsPtr.asFunction<int Function(CXCursor)>();
@@ -3455,7 +3465,7 @@
   }
 
   late final _clang_getOverloadedDeclPtr =
-      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<CXCursor Function(CXCursor, ffi.UnsignedInt)>>(
           'clang_getOverloadedDecl');
   late final _clang_getOverloadedDecl = _clang_getOverloadedDeclPtr
       .asFunction<CXCursor Function(CXCursor, int)>();
@@ -3492,7 +3502,7 @@
 
   late final _clang_visitChildrenPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXCursor, CXCursorVisitor, CXClientData)>>('clang_visitChildren');
   late final _clang_visitChildren = _clang_visitChildrenPtr
       .asFunction<int Function(CXCursor, CXCursorVisitor, CXClientData)>();
@@ -3515,7 +3525,7 @@
 
   /// Construct a USR for a specified Objective-C class.
   CXString clang_constructUSR_ObjCClass(
-    ffi.Pointer<ffi.Int8> class_name,
+    ffi.Pointer<ffi.Char> class_name,
   ) {
     return _clang_constructUSR_ObjCClass(
       class_name,
@@ -3523,15 +3533,15 @@
   }
 
   late final _clang_constructUSR_ObjCClassPtr =
-      _lookup<ffi.NativeFunction<CXString Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<CXString Function(ffi.Pointer<ffi.Char>)>>(
           'clang_constructUSR_ObjCClass');
   late final _clang_constructUSR_ObjCClass = _clang_constructUSR_ObjCClassPtr
-      .asFunction<CXString Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<CXString Function(ffi.Pointer<ffi.Char>)>();
 
   /// Construct a USR for a specified Objective-C category.
   CXString clang_constructUSR_ObjCCategory(
-    ffi.Pointer<ffi.Int8> class_name,
-    ffi.Pointer<ffi.Int8> category_name,
+    ffi.Pointer<ffi.Char> class_name,
+    ffi.Pointer<ffi.Char> category_name,
   ) {
     return _clang_constructUSR_ObjCCategory(
       class_name,
@@ -3541,15 +3551,15 @@
 
   late final _clang_constructUSR_ObjCCategoryPtr = _lookup<
       ffi.NativeFunction<
-          CXString Function(ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('clang_constructUSR_ObjCCategory');
+          CXString Function(ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('clang_constructUSR_ObjCCategory');
   late final _clang_constructUSR_ObjCCategory =
       _clang_constructUSR_ObjCCategoryPtr.asFunction<
-          CXString Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          CXString Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   /// Construct a USR for a specified Objective-C protocol.
   CXString clang_constructUSR_ObjCProtocol(
-    ffi.Pointer<ffi.Int8> protocol_name,
+    ffi.Pointer<ffi.Char> protocol_name,
   ) {
     return _clang_constructUSR_ObjCProtocol(
       protocol_name,
@@ -3557,16 +3567,16 @@
   }
 
   late final _clang_constructUSR_ObjCProtocolPtr =
-      _lookup<ffi.NativeFunction<CXString Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<CXString Function(ffi.Pointer<ffi.Char>)>>(
           'clang_constructUSR_ObjCProtocol');
   late final _clang_constructUSR_ObjCProtocol =
       _clang_constructUSR_ObjCProtocolPtr
-          .asFunction<CXString Function(ffi.Pointer<ffi.Int8>)>();
+          .asFunction<CXString Function(ffi.Pointer<ffi.Char>)>();
 
   /// Construct a USR for a specified Objective-C instance variable and the USR
   /// for its containing class.
   CXString clang_constructUSR_ObjCIvar(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCIvar(
@@ -3578,14 +3588,14 @@
   late final _clang_constructUSR_ObjCIvarPtr = _lookup<
       ffi.NativeFunction<
           CXString Function(
-              ffi.Pointer<ffi.Int8>, CXString)>>('clang_constructUSR_ObjCIvar');
+              ffi.Pointer<ffi.Char>, CXString)>>('clang_constructUSR_ObjCIvar');
   late final _clang_constructUSR_ObjCIvar = _clang_constructUSR_ObjCIvarPtr
-      .asFunction<CXString Function(ffi.Pointer<ffi.Int8>, CXString)>();
+      .asFunction<CXString Function(ffi.Pointer<ffi.Char>, CXString)>();
 
   /// Construct a USR for a specified Objective-C method and the USR for its
   /// containing class.
   CXString clang_constructUSR_ObjCMethod(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int isInstanceMethod,
     CXString classUSR,
   ) {
@@ -3598,15 +3608,15 @@
 
   late final _clang_constructUSR_ObjCMethodPtr = _lookup<
       ffi.NativeFunction<
-          CXString Function(ffi.Pointer<ffi.Int8>, ffi.Uint32,
+          CXString Function(ffi.Pointer<ffi.Char>, ffi.UnsignedInt,
               CXString)>>('clang_constructUSR_ObjCMethod');
   late final _clang_constructUSR_ObjCMethod = _clang_constructUSR_ObjCMethodPtr
-      .asFunction<CXString Function(ffi.Pointer<ffi.Int8>, int, CXString)>();
+      .asFunction<CXString Function(ffi.Pointer<ffi.Char>, int, CXString)>();
 
   /// Construct a USR for a specified Objective-C property and the USR for its
   /// containing class.
   CXString clang_constructUSR_ObjCProperty(
-    ffi.Pointer<ffi.Int8> property,
+    ffi.Pointer<ffi.Char> property,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCProperty(
@@ -3617,11 +3627,11 @@
 
   late final _clang_constructUSR_ObjCPropertyPtr = _lookup<
       ffi.NativeFunction<
-          CXString Function(ffi.Pointer<ffi.Int8>,
+          CXString Function(ffi.Pointer<ffi.Char>,
               CXString)>>('clang_constructUSR_ObjCProperty');
   late final _clang_constructUSR_ObjCProperty =
       _clang_constructUSR_ObjCPropertyPtr
-          .asFunction<CXString Function(ffi.Pointer<ffi.Int8>, CXString)>();
+          .asFunction<CXString Function(ffi.Pointer<ffi.Char>, CXString)>();
 
   /// Retrieve a name for the entity referenced by this cursor.
   CXString clang_getCursorSpelling(
@@ -3656,8 +3666,8 @@
 
   late final _clang_Cursor_getSpellingNameRangePtr = _lookup<
       ffi.NativeFunction<
-          CXSourceRange Function(CXCursor, ffi.Uint32,
-              ffi.Uint32)>>('clang_Cursor_getSpellingNameRange');
+          CXSourceRange Function(CXCursor, ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_Cursor_getSpellingNameRange');
   late final _clang_Cursor_getSpellingNameRange =
       _clang_Cursor_getSpellingNameRangePtr
           .asFunction<CXSourceRange Function(CXCursor, int, int)>();
@@ -3674,8 +3684,9 @@
   }
 
   late final _clang_PrintingPolicy_getPropertyPtr = _lookup<
-          ffi.NativeFunction<ffi.Uint32 Function(CXPrintingPolicy, ffi.Int32)>>(
-      'clang_PrintingPolicy_getProperty');
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(CXPrintingPolicy,
+              ffi.Int32)>>('clang_PrintingPolicy_getProperty');
   late final _clang_PrintingPolicy_getProperty =
       _clang_PrintingPolicy_getPropertyPtr
           .asFunction<int Function(CXPrintingPolicy, int)>();
@@ -3696,7 +3707,7 @@
   late final _clang_PrintingPolicy_setPropertyPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(CXPrintingPolicy, ffi.Int32,
-              ffi.Uint32)>>('clang_PrintingPolicy_setProperty');
+              ffi.UnsignedInt)>>('clang_PrintingPolicy_setProperty');
   late final _clang_PrintingPolicy_setProperty =
       _clang_PrintingPolicy_setPropertyPtr
           .asFunction<void Function(CXPrintingPolicy, int, int)>();
@@ -3806,7 +3817,7 @@
   }
 
   late final _clang_isCursorDefinitionPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_isCursorDefinition');
   late final _clang_isCursorDefinition =
       _clang_isCursorDefinitionPtr.asFunction<int Function(CXCursor)>();
@@ -3837,7 +3848,7 @@
   }
 
   late final _clang_Cursor_getObjCSelectorIndexPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_getObjCSelectorIndex');
   late final _clang_Cursor_getObjCSelectorIndex =
       _clang_Cursor_getObjCSelectorIndexPtr
@@ -3854,7 +3865,7 @@
   }
 
   late final _clang_Cursor_isDynamicCallPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXCursor)>>(
           'clang_Cursor_isDynamicCall');
   late final _clang_Cursor_isDynamicCall =
       _clang_Cursor_isDynamicCallPtr.asFunction<int Function(CXCursor)>();
@@ -3888,9 +3899,10 @@
     );
   }
 
-  late final _clang_Cursor_getObjCPropertyAttributesPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor, ffi.Uint32)>>(
-          'clang_Cursor_getObjCPropertyAttributes');
+  late final _clang_Cursor_getObjCPropertyAttributesPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(CXCursor,
+              ffi.UnsignedInt)>>('clang_Cursor_getObjCPropertyAttributes');
   late final _clang_Cursor_getObjCPropertyAttributes =
       _clang_Cursor_getObjCPropertyAttributesPtr
           .asFunction<int Function(CXCursor, int)>();
@@ -3942,7 +3954,7 @@
   }
 
   late final _clang_Cursor_getObjCDeclQualifiersPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_getObjCDeclQualifiers');
   late final _clang_Cursor_getObjCDeclQualifiers =
       _clang_Cursor_getObjCDeclQualifiersPtr
@@ -3950,8 +3962,8 @@
 
   /// Given a cursor that represents an Objective-C method or property
   /// declaration, return non-zero if the declaration was affected by
-  /// "@optional". Returns zero if the cursor is not such a declaration or it is
-  /// "@required".
+  /// "\@optional". Returns zero if the cursor is not such a declaration or it
+  /// is "\@required".
   int clang_Cursor_isObjCOptional(
     CXCursor C,
   ) {
@@ -3961,7 +3973,7 @@
   }
 
   late final _clang_Cursor_isObjCOptionalPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isObjCOptional');
   late final _clang_Cursor_isObjCOptional =
       _clang_Cursor_isObjCOptionalPtr.asFunction<int Function(CXCursor)>();
@@ -3976,7 +3988,7 @@
   }
 
   late final _clang_Cursor_isVariadicPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_Cursor_isVariadic');
   late final _clang_Cursor_isVariadic =
       _clang_Cursor_isVariadicPtr.asFunction<int Function(CXCursor)>();
@@ -3987,7 +3999,7 @@
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated,
+    ffi.Pointer<ffi.UnsignedInt> isGenerated,
   ) {
     return _clang_Cursor_isExternalSymbol(
       C,
@@ -3999,15 +4011,15 @@
 
   late final _clang_Cursor_isExternalSymbolPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXCursor,
               ffi.Pointer<CXString>,
               ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_Cursor_isExternalSymbol');
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_Cursor_isExternalSymbol');
   late final _clang_Cursor_isExternalSymbol =
       _clang_Cursor_isExternalSymbolPtr.asFunction<
           int Function(CXCursor, ffi.Pointer<CXString>, ffi.Pointer<CXString>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Given a cursor that represents a declaration, return the associated
   /// comment's source range. The range may include multiple consecutive
@@ -4212,7 +4224,7 @@
   }
 
   late final _clang_Module_isSystemPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXModule)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXModule)>>(
           'clang_Module_isSystem');
   late final _clang_Module_isSystem =
       _clang_Module_isSystemPtr.asFunction<int Function(CXModule)>();
@@ -4229,8 +4241,9 @@
   }
 
   late final _clang_Module_getNumTopLevelHeadersPtr = _lookup<
-          ffi.NativeFunction<ffi.Uint32 Function(CXTranslationUnit, CXModule)>>(
-      'clang_Module_getNumTopLevelHeaders');
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(CXTranslationUnit,
+              CXModule)>>('clang_Module_getNumTopLevelHeaders');
   late final _clang_Module_getNumTopLevelHeaders =
       _clang_Module_getNumTopLevelHeadersPtr
           .asFunction<int Function(CXTranslationUnit, CXModule)>();
@@ -4251,7 +4264,7 @@
   late final _clang_Module_getTopLevelHeaderPtr = _lookup<
       ffi.NativeFunction<
           CXFile Function(CXTranslationUnit, CXModule,
-              ffi.Uint32)>>('clang_Module_getTopLevelHeader');
+              ffi.UnsignedInt)>>('clang_Module_getTopLevelHeader');
   late final _clang_Module_getTopLevelHeader =
       _clang_Module_getTopLevelHeaderPtr
           .asFunction<CXFile Function(CXTranslationUnit, CXModule, int)>();
@@ -4266,7 +4279,7 @@
   }
 
   late final _clang_CXXConstructor_isConvertingConstructorPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXConstructor_isConvertingConstructor');
   late final _clang_CXXConstructor_isConvertingConstructor =
       _clang_CXXConstructor_isConvertingConstructorPtr
@@ -4282,7 +4295,7 @@
   }
 
   late final _clang_CXXConstructor_isCopyConstructorPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXConstructor_isCopyConstructor');
   late final _clang_CXXConstructor_isCopyConstructor =
       _clang_CXXConstructor_isCopyConstructorPtr
@@ -4298,7 +4311,7 @@
   }
 
   late final _clang_CXXConstructor_isDefaultConstructorPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXConstructor_isDefaultConstructor');
   late final _clang_CXXConstructor_isDefaultConstructor =
       _clang_CXXConstructor_isDefaultConstructorPtr
@@ -4314,7 +4327,7 @@
   }
 
   late final _clang_CXXConstructor_isMoveConstructorPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXConstructor_isMoveConstructor');
   late final _clang_CXXConstructor_isMoveConstructor =
       _clang_CXXConstructor_isMoveConstructorPtr
@@ -4330,7 +4343,7 @@
   }
 
   late final _clang_CXXField_isMutablePtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXField_isMutable');
   late final _clang_CXXField_isMutable =
       _clang_CXXField_isMutablePtr.asFunction<int Function(CXCursor)>();
@@ -4345,7 +4358,7 @@
   }
 
   late final _clang_CXXMethod_isDefaultedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXMethod_isDefaulted');
   late final _clang_CXXMethod_isDefaulted =
       _clang_CXXMethod_isDefaultedPtr.asFunction<int Function(CXCursor)>();
@@ -4361,7 +4374,7 @@
   }
 
   late final _clang_CXXMethod_isPureVirtualPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXMethod_isPureVirtual');
   late final _clang_CXXMethod_isPureVirtual =
       _clang_CXXMethod_isPureVirtualPtr.asFunction<int Function(CXCursor)>();
@@ -4377,7 +4390,7 @@
   }
 
   late final _clang_CXXMethod_isStaticPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXMethod_isStatic');
   late final _clang_CXXMethod_isStatic =
       _clang_CXXMethod_isStaticPtr.asFunction<int Function(CXCursor)>();
@@ -4394,7 +4407,7 @@
   }
 
   late final _clang_CXXMethod_isVirtualPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXMethod_isVirtual');
   late final _clang_CXXMethod_isVirtual =
       _clang_CXXMethod_isVirtualPtr.asFunction<int Function(CXCursor)>();
@@ -4410,7 +4423,7 @@
   }
 
   late final _clang_CXXRecord_isAbstractPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXRecord_isAbstract');
   late final _clang_CXXRecord_isAbstract =
       _clang_CXXRecord_isAbstractPtr.asFunction<int Function(CXCursor)>();
@@ -4425,7 +4438,7 @@
   }
 
   late final _clang_EnumDecl_isScopedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_EnumDecl_isScoped');
   late final _clang_EnumDecl_isScoped =
       _clang_EnumDecl_isScopedPtr.asFunction<int Function(CXCursor)>();
@@ -4441,7 +4454,7 @@
   }
 
   late final _clang_CXXMethod_isConstPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCursor)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCursor)>>(
           'clang_CXXMethod_isConst');
   late final _clang_CXXMethod_isConst =
       _clang_CXXMethod_isConstPtr.asFunction<int Function(CXCursor)>();
@@ -4496,8 +4509,8 @@
 
   late final _clang_getCursorReferenceNameRangePtr = _lookup<
       ffi.NativeFunction<
-          CXSourceRange Function(CXCursor, ffi.Uint32,
-              ffi.Uint32)>>('clang_getCursorReferenceNameRange');
+          CXSourceRange Function(CXCursor, ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_getCursorReferenceNameRange');
   late final _clang_getCursorReferenceNameRange =
       _clang_getCursorReferenceNameRangePtr
           .asFunction<CXSourceRange Function(CXCursor, int, int)>();
@@ -4594,7 +4607,7 @@
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens,
+    ffi.Pointer<ffi.UnsignedInt> NumTokens,
   ) {
     return _clang_tokenize(
       TU,
@@ -4610,10 +4623,10 @@
               CXTranslationUnit,
               CXSourceRange,
               ffi.Pointer<ffi.Pointer<CXToken>>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_tokenize');
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_tokenize');
   late final _clang_tokenize = _clang_tokenizePtr.asFunction<
       void Function(CXTranslationUnit, CXSourceRange,
-          ffi.Pointer<ffi.Pointer<CXToken>>, ffi.Pointer<ffi.Uint32>)>();
+          ffi.Pointer<ffi.Pointer<CXToken>>, ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Annotate the given set of tokens by providing cursors for each token that
   /// can be mapped to a specific entity within the abstract syntax tree.
@@ -4633,8 +4646,8 @@
 
   late final _clang_annotateTokensPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(CXTranslationUnit, ffi.Pointer<CXToken>, ffi.Uint32,
-              ffi.Pointer<CXCursor>)>>('clang_annotateTokens');
+          ffi.Void Function(CXTranslationUnit, ffi.Pointer<CXToken>,
+              ffi.UnsignedInt, ffi.Pointer<CXCursor>)>>('clang_annotateTokens');
   late final _clang_annotateTokens = _clang_annotateTokensPtr.asFunction<
       void Function(CXTranslationUnit, ffi.Pointer<CXToken>, int,
           ffi.Pointer<CXCursor>)>();
@@ -4655,7 +4668,7 @@
   late final _clang_disposeTokensPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(CXTranslationUnit, ffi.Pointer<CXToken>,
-              ffi.Uint32)>>('clang_disposeTokens');
+              ffi.UnsignedInt)>>('clang_disposeTokens');
   late final _clang_disposeTokens = _clang_disposeTokensPtr.asFunction<
       void Function(CXTranslationUnit, ffi.Pointer<CXToken>, int)>();
 
@@ -4677,12 +4690,12 @@
 
   void clang_getDefinitionSpellingAndExtent(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn,
   ) {
     return _clang_getDefinitionSpellingAndExtent(
       arg0,
@@ -4699,23 +4712,23 @@
           ffi.NativeFunction<
               ffi.Void Function(
                   CXCursor,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                  ffi.Pointer<ffi.Uint32>,
-                  ffi.Pointer<ffi.Uint32>,
-                  ffi.Pointer<ffi.Uint32>,
-                  ffi.Pointer<ffi.Uint32>)>>(
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                  ffi.Pointer<ffi.UnsignedInt>,
+                  ffi.Pointer<ffi.UnsignedInt>,
+                  ffi.Pointer<ffi.UnsignedInt>,
+                  ffi.Pointer<ffi.UnsignedInt>)>>(
       'clang_getDefinitionSpellingAndExtent');
   late final _clang_getDefinitionSpellingAndExtent =
       _clang_getDefinitionSpellingAndExtentPtr.asFunction<
           void Function(
               CXCursor,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   void clang_enableStackTraces() {
     return _clang_enableStackTraces();
@@ -4746,7 +4759,7 @@
               ffi.Pointer<
                   ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<ffi.Void>,
-              ffi.Uint32)>>('clang_executeOnThread');
+              ffi.UnsignedInt)>>('clang_executeOnThread');
   late final _clang_executeOnThread = _clang_executeOnThreadPtr.asFunction<
       void Function(
           ffi.Pointer<
@@ -4767,8 +4780,8 @@
 
   late final _clang_getCompletionChunkKindPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              CXCompletionString, ffi.Uint32)>>('clang_getCompletionChunkKind');
+          ffi.Int32 Function(CXCompletionString,
+              ffi.UnsignedInt)>>('clang_getCompletionChunkKind');
   late final _clang_getCompletionChunkKind = _clang_getCompletionChunkKindPtr
       .asFunction<int Function(CXCompletionString, int)>();
 
@@ -4786,8 +4799,8 @@
 
   late final _clang_getCompletionChunkTextPtr = _lookup<
       ffi.NativeFunction<
-          CXString Function(
-              CXCompletionString, ffi.Uint32)>>('clang_getCompletionChunkText');
+          CXString Function(CXCompletionString,
+              ffi.UnsignedInt)>>('clang_getCompletionChunkText');
   late final _clang_getCompletionChunkText = _clang_getCompletionChunkTextPtr
       .asFunction<CXString Function(CXCompletionString, int)>();
 
@@ -4806,7 +4819,7 @@
   late final _clang_getCompletionChunkCompletionStringPtr = _lookup<
       ffi.NativeFunction<
           CXCompletionString Function(CXCompletionString,
-              ffi.Uint32)>>('clang_getCompletionChunkCompletionString');
+              ffi.UnsignedInt)>>('clang_getCompletionChunkCompletionString');
   late final _clang_getCompletionChunkCompletionString =
       _clang_getCompletionChunkCompletionStringPtr
           .asFunction<CXCompletionString Function(CXCompletionString, int)>();
@@ -4821,7 +4834,7 @@
   }
 
   late final _clang_getNumCompletionChunksPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCompletionString)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCompletionString)>>(
           'clang_getNumCompletionChunks');
   late final _clang_getNumCompletionChunks = _clang_getNumCompletionChunksPtr
       .asFunction<int Function(CXCompletionString)>();
@@ -4836,7 +4849,7 @@
   }
 
   late final _clang_getCompletionPriorityPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCompletionString)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCompletionString)>>(
           'clang_getCompletionPriority');
   late final _clang_getCompletionPriority = _clang_getCompletionPriorityPtr
       .asFunction<int Function(CXCompletionString)>();
@@ -4869,7 +4882,7 @@
   }
 
   late final _clang_getCompletionNumAnnotationsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXCompletionString)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXCompletionString)>>(
           'clang_getCompletionNumAnnotations');
   late final _clang_getCompletionNumAnnotations =
       _clang_getCompletionNumAnnotationsPtr
@@ -4889,7 +4902,7 @@
   late final _clang_getCompletionAnnotationPtr = _lookup<
       ffi.NativeFunction<
           CXString Function(CXCompletionString,
-              ffi.Uint32)>>('clang_getCompletionAnnotation');
+              ffi.UnsignedInt)>>('clang_getCompletionAnnotation');
   late final _clang_getCompletionAnnotation = _clang_getCompletionAnnotationPtr
       .asFunction<CXString Function(CXCompletionString, int)>();
 
@@ -4959,8 +4972,8 @@
 
   late final _clang_getCompletionNumFixItsPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(ffi.Pointer<CXCodeCompleteResults>,
-              ffi.Uint32)>>('clang_getCompletionNumFixIts');
+          ffi.UnsignedInt Function(ffi.Pointer<CXCodeCompleteResults>,
+              ffi.UnsignedInt)>>('clang_getCompletionNumFixIts');
   late final _clang_getCompletionNumFixIts = _clang_getCompletionNumFixItsPtr
       .asFunction<int Function(ffi.Pointer<CXCodeCompleteResults>, int)>();
 
@@ -4984,8 +4997,8 @@
       ffi.NativeFunction<
           CXString Function(
               ffi.Pointer<CXCodeCompleteResults>,
-              ffi.Uint32,
-              ffi.Uint32,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
               ffi.Pointer<CXSourceRange>)>>('clang_getCompletionFixIt');
   late final _clang_getCompletionFixIt =
       _clang_getCompletionFixItPtr.asFunction<
@@ -4999,7 +5012,7 @@
   }
 
   late final _clang_defaultCodeCompleteOptionsPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function()>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function()>>(
           'clang_defaultCodeCompleteOptions');
   late final _clang_defaultCodeCompleteOptions =
       _clang_defaultCodeCompleteOptionsPtr.asFunction<int Function()>();
@@ -5007,7 +5020,7 @@
   /// Perform code completion at a given location in a translation unit.
   ffi.Pointer<CXCodeCompleteResults> clang_codeCompleteAt(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> complete_filename,
+    ffi.Pointer<ffi.Char> complete_filename,
     int complete_line,
     int complete_column,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
@@ -5029,16 +5042,16 @@
       ffi.NativeFunction<
           ffi.Pointer<CXCodeCompleteResults> Function(
               CXTranslationUnit,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Uint32,
-              ffi.Uint32,
+              ffi.Pointer<ffi.Char>,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
-              ffi.Uint32)>>('clang_codeCompleteAt');
+              ffi.UnsignedInt,
+              ffi.UnsignedInt)>>('clang_codeCompleteAt');
   late final _clang_codeCompleteAt = _clang_codeCompleteAtPtr.asFunction<
       ffi.Pointer<CXCodeCompleteResults> Function(
           CXTranslationUnit,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           int,
           ffi.Pointer<CXUnsavedFile>,
@@ -5059,7 +5072,7 @@
   late final _clang_sortCodeCompletionResultsPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<CXCompletionResult>,
-              ffi.Uint32)>>('clang_sortCodeCompletionResults');
+              ffi.UnsignedInt)>>('clang_sortCodeCompletionResults');
   late final _clang_sortCodeCompletionResults =
       _clang_sortCodeCompletionResultsPtr
           .asFunction<void Function(ffi.Pointer<CXCompletionResult>, int)>();
@@ -5093,7 +5106,7 @@
 
   late final _clang_codeCompleteGetNumDiagnosticsPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Uint32 Function(ffi.Pointer<CXCodeCompleteResults>)>>(
+              ffi.UnsignedInt Function(ffi.Pointer<CXCodeCompleteResults>)>>(
       'clang_codeCompleteGetNumDiagnostics');
   late final _clang_codeCompleteGetNumDiagnostics =
       _clang_codeCompleteGetNumDiagnosticsPtr
@@ -5113,7 +5126,7 @@
   late final _clang_codeCompleteGetDiagnosticPtr = _lookup<
       ffi.NativeFunction<
           CXDiagnostic Function(ffi.Pointer<CXCodeCompleteResults>,
-              ffi.Uint32)>>('clang_codeCompleteGetDiagnostic');
+              ffi.UnsignedInt)>>('clang_codeCompleteGetDiagnostic');
   late final _clang_codeCompleteGetDiagnostic =
       _clang_codeCompleteGetDiagnosticPtr.asFunction<
           CXDiagnostic Function(ffi.Pointer<CXCodeCompleteResults>, int)>();
@@ -5130,7 +5143,8 @@
 
   late final _clang_codeCompleteGetContextsPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Uint64 Function(ffi.Pointer<CXCodeCompleteResults>)>>(
+              ffi.UnsignedLongLong Function(
+                  ffi.Pointer<CXCodeCompleteResults>)>>(
       'clang_codeCompleteGetContexts');
   late final _clang_codeCompleteGetContexts = _clang_codeCompleteGetContextsPtr
       .asFunction<int Function(ffi.Pointer<CXCodeCompleteResults>)>();
@@ -5141,7 +5155,7 @@
   /// there is not a container, this function will return CXCursor_InvalidCode.
   int clang_codeCompleteGetContainerKind(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete,
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete,
   ) {
     return _clang_codeCompleteGetContainerKind(
       Results,
@@ -5150,13 +5164,14 @@
   }
 
   late final _clang_codeCompleteGetContainerKindPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<CXCodeCompleteResults>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_codeCompleteGetContainerKind');
+          ffi.NativeFunction<
+              ffi.Int32 Function(ffi.Pointer<CXCodeCompleteResults>,
+                  ffi.Pointer<ffi.UnsignedInt>)>>(
+      'clang_codeCompleteGetContainerKind');
   late final _clang_codeCompleteGetContainerKind =
       _clang_codeCompleteGetContainerKindPtr.asFunction<
-          int Function(
-              ffi.Pointer<CXCodeCompleteResults>, ffi.Pointer<ffi.Uint32>)>();
+          int Function(ffi.Pointer<CXCodeCompleteResults>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Returns the USR for the container for the current code completion context.
   /// If there is not a container for the current context, this function will
@@ -5218,7 +5233,7 @@
   }
 
   late final _clang_toggleCrashRecoveryPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Uint32)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.UnsignedInt)>>(
           'clang_toggleCrashRecovery');
   late final _clang_toggleCrashRecovery =
       _clang_toggleCrashRecoveryPtr.asFunction<void Function(int)>();
@@ -5288,7 +5303,7 @@
   }
 
   late final _clang_EvalResult_getAsIntPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(CXEvalResult)>>(
           'clang_EvalResult_getAsInt');
   late final _clang_EvalResult_getAsInt =
       _clang_EvalResult_getAsIntPtr.asFunction<int Function(CXEvalResult)>();
@@ -5305,7 +5320,7 @@
   }
 
   late final _clang_EvalResult_getAsLongLongPtr =
-      _lookup<ffi.NativeFunction<ffi.Int64 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.LongLong Function(CXEvalResult)>>(
           'clang_EvalResult_getAsLongLong');
   late final _clang_EvalResult_getAsLongLong =
       _clang_EvalResult_getAsLongLongPtr
@@ -5322,7 +5337,7 @@
   }
 
   late final _clang_EvalResult_isUnsignedIntPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXEvalResult)>>(
           'clang_EvalResult_isUnsignedInt');
   late final _clang_EvalResult_isUnsignedInt =
       _clang_EvalResult_isUnsignedIntPtr
@@ -5339,7 +5354,7 @@
   }
 
   late final _clang_EvalResult_getAsUnsignedPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint64 Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedLongLong Function(CXEvalResult)>>(
           'clang_EvalResult_getAsUnsigned');
   late final _clang_EvalResult_getAsUnsigned =
       _clang_EvalResult_getAsUnsignedPtr
@@ -5364,7 +5379,7 @@
   /// than Int or float. User must not free this pointer, instead call
   /// clang_EvalResult_dispose on the CXEvalResult returned by
   /// clang_Cursor_Evaluate.
-  ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
+  ffi.Pointer<ffi.Char> clang_EvalResult_getAsStr(
     CXEvalResult E,
   ) {
     return _clang_EvalResult_getAsStr(
@@ -5373,10 +5388,10 @@
   }
 
   late final _clang_EvalResult_getAsStrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(CXEvalResult)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(CXEvalResult)>>(
           'clang_EvalResult_getAsStr');
   late final _clang_EvalResult_getAsStr = _clang_EvalResult_getAsStrPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(CXEvalResult)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(CXEvalResult)>();
 
   /// Disposes the created Eval memory.
   void clang_EvalResult_dispose(
@@ -5395,7 +5410,7 @@
 
   /// Retrieve a remapping.
   CXRemapping clang_getRemappings(
-    ffi.Pointer<ffi.Int8> path,
+    ffi.Pointer<ffi.Char> path,
   ) {
     return _clang_getRemappings(
       path,
@@ -5403,14 +5418,14 @@
   }
 
   late final _clang_getRemappingsPtr =
-      _lookup<ffi.NativeFunction<CXRemapping Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<CXRemapping Function(ffi.Pointer<ffi.Char>)>>(
           'clang_getRemappings');
   late final _clang_getRemappings = _clang_getRemappingsPtr
-      .asFunction<CXRemapping Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<CXRemapping Function(ffi.Pointer<ffi.Char>)>();
 
   /// Retrieve a remapping.
   CXRemapping clang_getRemappingsFromFileList(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths,
     int numFiles,
   ) {
     return _clang_getRemappingsFromFileList(
@@ -5421,11 +5436,11 @@
 
   late final _clang_getRemappingsFromFileListPtr = _lookup<
       ffi.NativeFunction<
-          CXRemapping Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Uint32)>>('clang_getRemappingsFromFileList');
+          CXRemapping Function(ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.UnsignedInt)>>('clang_getRemappingsFromFileList');
   late final _clang_getRemappingsFromFileList =
       _clang_getRemappingsFromFileListPtr.asFunction<
-          CXRemapping Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+          CXRemapping Function(ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
   /// Determine the number of remappings.
   int clang_remap_getNumFiles(
@@ -5437,7 +5452,7 @@
   }
 
   late final _clang_remap_getNumFilesPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint32 Function(CXRemapping)>>(
+      _lookup<ffi.NativeFunction<ffi.UnsignedInt Function(CXRemapping)>>(
           'clang_remap_getNumFiles');
   late final _clang_remap_getNumFiles =
       _clang_remap_getNumFilesPtr.asFunction<int Function(CXRemapping)>();
@@ -5459,7 +5474,7 @@
 
   late final _clang_remap_getFilenamesPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(CXRemapping, ffi.Uint32, ffi.Pointer<CXString>,
+          ffi.Void Function(CXRemapping, ffi.UnsignedInt, ffi.Pointer<CXString>,
               ffi.Pointer<CXString>)>>('clang_remap_getFilenames');
   late final _clang_remap_getFilenames =
       _clang_remap_getFilenamesPtr.asFunction<
@@ -5531,7 +5546,7 @@
   }
 
   late final _clang_index_isEntityObjCContainerKindPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int32)>>(
           'clang_index_isEntityObjCContainerKind');
   late final _clang_index_isEntityObjCContainerKind =
       _clang_index_isEntityObjCContainerKindPtr.asFunction<int Function(int)>();
@@ -5774,8 +5789,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -5800,19 +5815,19 @@
 
   late final _clang_indexSourceFilePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXIndexAction,
               CXClientData,
               ffi.Pointer<IndexerCallbacks>,
-              ffi.Uint32,
-              ffi.Uint32,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
+              ffi.UnsignedInt,
               ffi.Pointer<CXTranslationUnit>,
-              ffi.Uint32)>>('clang_indexSourceFile');
+              ffi.UnsignedInt)>>('clang_indexSourceFile');
   late final _clang_indexSourceFile = _clang_indexSourceFilePtr.asFunction<
       int Function(
           CXIndexAction,
@@ -5820,8 +5835,8 @@
           ffi.Pointer<IndexerCallbacks>,
           int,
           int,
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Pointer<ffi.Char>>,
           int,
           ffi.Pointer<CXUnsavedFile>,
           int,
@@ -5837,8 +5852,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -5863,19 +5878,19 @@
 
   late final _clang_indexSourceFileFullArgvPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXIndexAction,
               CXClientData,
               ffi.Pointer<IndexerCallbacks>,
-              ffi.Uint32,
-              ffi.Uint32,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<CXUnsavedFile>,
-              ffi.Uint32,
+              ffi.UnsignedInt,
               ffi.Pointer<CXTranslationUnit>,
-              ffi.Uint32)>>('clang_indexSourceFileFullArgv');
+              ffi.UnsignedInt)>>('clang_indexSourceFileFullArgv');
   late final _clang_indexSourceFileFullArgv =
       _clang_indexSourceFileFullArgvPtr.asFunction<
           int Function(
@@ -5884,8 +5899,8 @@
               ffi.Pointer<IndexerCallbacks>,
               int,
               int,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               int,
               ffi.Pointer<CXUnsavedFile>,
               int,
@@ -5914,12 +5929,12 @@
 
   late final _clang_indexTranslationUnitPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               CXIndexAction,
               CXClientData,
               ffi.Pointer<IndexerCallbacks>,
-              ffi.Uint32,
-              ffi.Uint32,
+              ffi.UnsignedInt,
+              ffi.UnsignedInt,
               CXTranslationUnit)>>('clang_indexTranslationUnit');
   late final _clang_indexTranslationUnit =
       _clang_indexTranslationUnitPtr.asFunction<
@@ -5932,9 +5947,9 @@
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_indexLoc_getFileLocation(
       loc,
@@ -5952,18 +5967,18 @@
               CXIdxLoc,
               ffi.Pointer<CXIdxClientFile>,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>>('clang_indexLoc_getFileLocation');
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>>('clang_indexLoc_getFileLocation');
   late final _clang_indexLoc_getFileLocation =
       _clang_indexLoc_getFileLocationPtr.asFunction<
           void Function(
               CXIdxLoc,
               ffi.Pointer<CXIdxClientFile>,
               ffi.Pointer<CXFile>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>,
-              ffi.Pointer<ffi.Uint32>)>();
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>,
+              ffi.Pointer<ffi.UnsignedInt>)>();
 
   /// Retrieve the CXSourceLocation represented by the given CXIdxLoc.
   CXSourceLocation clang_indexLoc_getCXSourceLocation(
@@ -5996,7 +6011,7 @@
 
   late final _clang_Type_visitFieldsPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Uint32 Function(
+          ffi.UnsignedInt Function(
               CXType, CXFieldVisitor, CXClientData)>>('clang_Type_visitFields');
   late final _clang_Type_visitFields = _clang_Type_visitFieldsPtr
       .asFunction<int Function(CXType, CXFieldVisitor, CXClientData)>();
@@ -6024,14 +6039,14 @@
 class CXString extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int private_flags;
 }
 
 class CXStringSet extends ffi.Struct {
   external ffi.Pointer<CXString> Strings;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int Count;
 }
 
@@ -6053,13 +6068,13 @@
 /// Provides the contents of a file that has not yet been saved to disk.
 class CXUnsavedFile extends ffi.Struct {
   /// The file whose contents have not yet been saved.
-  external ffi.Pointer<ffi.Int8> Filename;
+  external ffi.Pointer<ffi.Char> Filename;
 
   /// A buffer containing the unsaved contents of this file.
-  external ffi.Pointer<ffi.Int8> Contents;
+  external ffi.Pointer<ffi.Char> Contents;
 
   /// The length of the unsaved contents of this buffer.
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int Length;
 }
 
@@ -6086,18 +6101,18 @@
 class CXVersion extends ffi.Struct {
   /// The major version number, e.g., the '10' in '10.7.3'. A negative value
   /// indicates that there is no version number at all.
-  @ffi.Int32()
+  @ffi.Int()
   external int Major;
 
   /// The minor version number, e.g., the '7' in '10.7.3'. This value will be
   /// negative if no minor version number was provided, e.g., for version '10'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Minor;
 
   /// The subminor version number, e.g., the '3' in '10.7.3'. This value will be
   /// negative if no minor or subminor version number was provided, e.g., in
   /// version '10' or '10.7'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Subminor;
 }
 
@@ -6162,7 +6177,7 @@
 /// across an indexing session.
 class CXFileUniqueID extends ffi.Struct {
   @ffi.Array.multi([3])
-  external ffi.Array<ffi.Uint64> data;
+  external ffi.Array<ffi.UnsignedLongLong> data;
 }
 
 /// A single translation unit, which resides in an index.
@@ -6173,7 +6188,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -6182,17 +6197,17 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int begin_int_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int end_int_data;
 }
 
 /// Identifies an array of ranges.
 class CXSourceRangeList extends ffi.Struct {
   /// The number of ranges in the ranges array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int count;
 
   /// An array of CXSourceRanges.
@@ -6388,7 +6403,7 @@
   @ffi.Int32()
   external int kind;
 
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int amount;
 }
 
@@ -6396,7 +6411,7 @@
 class CXTUResourceUsage extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numEntries;
 
   external ffi.Pointer<CXTUResourceUsageEntry> entries;
@@ -7063,7 +7078,7 @@
   @ffi.Int32()
   external int kind;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int xdata;
 
   @ffi.Array.multi([3])
@@ -7125,7 +7140,7 @@
   external CXVersion Obsoleted;
 
   /// Whether the entity is unconditionally unavailable on this platform.
-  @ffi.Int32()
+  @ffi.Int()
   external int Unavailable;
 
   /// An optional message to provide to a user of this API, e.g., to suggest
@@ -7416,7 +7431,9 @@
 
 /// Visitor invoked for each cursor found by a traversal.
 typedef CXCursorVisitor = ffi.Pointer<
-    ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXCursor, CXClientData)>>;
+    ffi.NativeFunction<
+        ffi.Int32 Function(
+            CXCursor cursor, CXCursor parent, CXClientData client_data)>>;
 
 /// Opaque pointer representing client data that will be passed through to
 /// various callbacks and visitors.
@@ -7523,7 +7540,7 @@
 /// Describes a single preprocessing token.
 class CXToken extends ffi.Struct {
   @ffi.Array.multi([4])
-  external ffi.Array<ffi.Uint32> int_data;
+  external ffi.Array<ffi.UnsignedInt> int_data;
 
   external ffi.Pointer<ffi.Void> ptr_data;
 }
@@ -7621,7 +7638,7 @@
   external ffi.Pointer<CXCompletionResult> Results;
 
   /// The number of code-completion results stored in the Results array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int NumResults;
 }
 
@@ -7747,7 +7764,10 @@
 typedef CXInclusionVisitor = ffi.Pointer<
     ffi.NativeFunction<
         ffi.Void Function(
-            CXFile, ffi.Pointer<CXSourceLocation>, ffi.Uint32, CXClientData)>>;
+            CXFile included_file,
+            ffi.Pointer<CXSourceLocation> inclusion_stack,
+            ffi.UnsignedInt include_len,
+            CXClientData client_data)>>;
 
 abstract class CXEvalResultKind {
   static const int CXEval_Int = 1;
@@ -7796,7 +7816,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -7806,19 +7826,19 @@
   external CXIdxLoc hashLoc;
 
   /// Filename as written in the #include/#import directive.
-  external ffi.Pointer<ffi.Int8> filename;
+  external ffi.Pointer<ffi.Char> filename;
 
   /// The actual file that the #include/#import directive resolved to.
   external CXFile file;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isImport;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isAngled;
 
   /// Non-zero if the directive was automatically turned into a module import.
-  @ffi.Int32()
+  @ffi.Int()
   external int isModuleImport;
 }
 
@@ -7835,7 +7855,7 @@
 
   /// Non-zero if an inclusion directive was automatically turned into a module
   /// import. Applicable only for modules.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 }
 
@@ -7914,15 +7934,15 @@
   @ffi.Int32()
   external int lang;
 
-  external ffi.Pointer<ffi.Int8> name;
+  external ffi.Pointer<ffi.Char> name;
 
-  external ffi.Pointer<ffi.Int8> USR;
+  external ffi.Pointer<ffi.Char> USR;
 
   external CXCursor cursor;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 }
 
@@ -7957,28 +7977,28 @@
   /// out-of-line C++ member functions.
   external ffi.Pointer<CXIdxContainerInfo> lexicalContainer;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isRedeclaration;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isDefinition;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isContainer;
 
   external ffi.Pointer<CXIdxContainerInfo> declAsContainer;
 
   /// Whether the declaration exists in code or was created implicitly by the
   /// compiler, e.g. implicit Objective-C methods for properties.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int flags;
 }
 
@@ -8014,7 +8034,7 @@
 class CXIdxObjCProtocolRefListInfo extends ffi.Struct {
   external ffi.Pointer<ffi.Pointer<CXIdxObjCProtocolRefInfo>> protocols;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numProtocols;
 }
 
@@ -8051,7 +8071,7 @@
 
   external ffi.Pointer<ffi.Pointer<CXIdxBaseClassInfo>> bases;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numBases;
 }
 
@@ -8109,8 +8129,10 @@
   /// Called periodically to check whether indexing should be aborted. Should
   /// return 0 to continue, and non-zero to abort.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(CXClientData, ffi.Pointer<ffi.Void>)>> abortQuery;
+          ffi.NativeFunction<
+              ffi.Int Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      abortQuery;
 
   /// Called at the end of indexing; passes the complete diagnostic set.
   external ffi.Pointer<
@@ -8121,8 +8143,8 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          CXIdxClientFile Function(
-              CXClientData, CXFile, ffi.Pointer<ffi.Void>)>> enteredMainFile;
+          CXIdxClientFile Function(CXClientData client_data, CXFile mainFile,
+              ffi.Pointer<ffi.Void> reserved)>> enteredMainFile;
 
   /// Called when a file gets #included/#imported.
   external ffi.Pointer<
@@ -8140,9 +8162,10 @@
 
   /// Called at the beginning of indexing a translation unit.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          CXIdxClientContainer Function(
-              CXClientData, ffi.Pointer<ffi.Void>)>> startedTranslationUnit;
+          ffi.NativeFunction<
+              CXIdxClientContainer Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      startedTranslationUnit;
 
   external ffi.Pointer<
           ffi.NativeFunction<
@@ -8201,8 +8224,9 @@
 }
 
 /// Visitor invoked for each field found by a traversal.
-typedef CXFieldVisitor = ffi
-    .Pointer<ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXClientData)>>;
+typedef CXFieldVisitor = ffi.Pointer<
+    ffi.NativeFunction<
+        ffi.Int32 Function(CXCursor C, CXClientData client_data)>>;
 
 const int CINDEX_VERSION_MAJOR = 0;
 
diff --git a/test/large_integration_tests/_expected_sqlite_bindings.dart b/test/large_integration_tests/_expected_sqlite_bindings.dart
index 2980faa..d3b48db 100644
--- a/test/large_integration_tests/_expected_sqlite_bindings.dart
+++ b/test/large_integration_tests/_expected_sqlite_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Bindings to SQLite.
@@ -50,46 +51,46 @@
   /// of the hash might be different from [SQLITE_SOURCE_ID].)^
   ///
   /// See also: [sqlite_version()] and [sqlite_source_id()].
-  late final ffi.Pointer<ffi.Pointer<ffi.Int8>> _sqlite3_version =
-      _lookup<ffi.Pointer<ffi.Int8>>('sqlite3_version');
+  late final ffi.Pointer<ffi.Pointer<ffi.Char>> _sqlite3_version =
+      _lookup<ffi.Pointer<ffi.Char>>('sqlite3_version');
 
-  ffi.Pointer<ffi.Int8> get sqlite3_version => _sqlite3_version.value;
+  ffi.Pointer<ffi.Char> get sqlite3_version => _sqlite3_version.value;
 
-  set sqlite3_version(ffi.Pointer<ffi.Int8> value) =>
+  set sqlite3_version(ffi.Pointer<ffi.Char> value) =>
       _sqlite3_version.value = value;
 
-  ffi.Pointer<ffi.Int8> sqlite3_libversion() {
+  ffi.Pointer<ffi.Char> sqlite3_libversion() {
     return _sqlite3_libversion();
   }
 
   late final _sqlite3_libversionPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'sqlite3_libversion');
   late final _sqlite3_libversion =
-      _sqlite3_libversionPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _sqlite3_libversionPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_sourceid() {
+  ffi.Pointer<ffi.Char> sqlite3_sourceid() {
     return _sqlite3_sourceid();
   }
 
   late final _sqlite3_sourceidPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'sqlite3_sourceid');
   late final _sqlite3_sourceid =
-      _sqlite3_sourceidPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _sqlite3_sourceidPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
   int sqlite3_libversion_number() {
     return _sqlite3_libversion_number();
   }
 
   late final _sqlite3_libversion_numberPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>(
           'sqlite3_libversion_number');
   late final _sqlite3_libversion_number =
       _sqlite3_libversion_numberPtr.asFunction<int Function()>();
 
   int sqlite3_compileoption_used(
-    ffi.Pointer<ffi.Int8> zOptName,
+    ffi.Pointer<ffi.Char> zOptName,
   ) {
     return _sqlite3_compileoption_used(
       zOptName,
@@ -97,12 +98,12 @@
   }
 
   late final _sqlite3_compileoption_usedPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Char>)>>(
           'sqlite3_compileoption_used');
   late final _sqlite3_compileoption_used = _sqlite3_compileoption_usedPtr
-      .asFunction<int Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_compileoption_get(
+  ffi.Pointer<ffi.Char> sqlite3_compileoption_get(
     int N,
   ) {
     return _sqlite3_compileoption_get(
@@ -111,10 +112,10 @@
   }
 
   late final _sqlite3_compileoption_getPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(ffi.Int)>>(
           'sqlite3_compileoption_get');
   late final _sqlite3_compileoption_get = _sqlite3_compileoption_getPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(int)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(int)>();
 
   /// CAPI3REF: Test To See If The Library Is Threadsafe
   ///
@@ -155,7 +156,7 @@
   }
 
   late final _sqlite3_threadsafePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>('sqlite3_threadsafe');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_threadsafe');
   late final _sqlite3_threadsafe =
       _sqlite3_threadsafePtr.asFunction<int Function()>();
 
@@ -204,7 +205,7 @@
   }
 
   late final _sqlite3_closePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_close');
   late final _sqlite3_close =
       _sqlite3_closePtr.asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -218,7 +219,7 @@
   }
 
   late final _sqlite3_close_v2Ptr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_close_v2');
   late final _sqlite3_close_v2 =
       _sqlite3_close_v2Ptr.asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -285,17 +286,17 @@
   /// </ul>
   int sqlite3_exec(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> sql,
+    ffi.Pointer<ffi.Char> sql,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(
+                ffi.Int Function(
                     ffi.Pointer<ffi.Void>,
-                    ffi.Int32,
-                    ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                    ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>
+                    ffi.Int,
+                    ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                    ffi.Pointer<ffi.Pointer<ffi.Char>>)>>
         callback,
     ffi.Pointer<ffi.Void> arg3,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> errmsg,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> errmsg,
   ) {
     return _sqlite3_exec(
       arg0,
@@ -308,31 +309,31 @@
 
   late final _sqlite3_execPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>,
+                          ffi.Int,
+                          ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                          ffi.Pointer<ffi.Pointer<ffi.Char>>)>>,
               ffi.Pointer<ffi.Void>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_exec');
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_exec');
   late final _sqlite3_exec = _sqlite3_execPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<ffi.Void>,
-                      ffi.Int32,
-                      ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-                      ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>,
+                      ffi.Int,
+                      ffi.Pointer<ffi.Pointer<ffi.Char>>,
+                      ffi.Pointer<ffi.Pointer<ffi.Char>>)>>,
           ffi.Pointer<ffi.Void>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   /// CAPI3REF: Initialize The SQLite Library
   ///
@@ -412,7 +413,7 @@
   }
 
   late final _sqlite3_initializePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>('sqlite3_initialize');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_initialize');
   late final _sqlite3_initialize =
       _sqlite3_initializePtr.asFunction<int Function()>();
 
@@ -421,7 +422,7 @@
   }
 
   late final _sqlite3_shutdownPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>('sqlite3_shutdown');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_shutdown');
   late final _sqlite3_shutdown =
       _sqlite3_shutdownPtr.asFunction<int Function()>();
 
@@ -430,7 +431,7 @@
   }
 
   late final _sqlite3_os_initPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>('sqlite3_os_init');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_os_init');
   late final _sqlite3_os_init =
       _sqlite3_os_initPtr.asFunction<int Function()>();
 
@@ -439,7 +440,7 @@
   }
 
   late final _sqlite3_os_endPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>('sqlite3_os_end');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_os_end');
   late final _sqlite3_os_end = _sqlite3_os_endPtr.asFunction<int Function()>();
 
   /// CAPI3REF: Configuring The SQLite Library
@@ -480,8 +481,7 @@
   }
 
   late final _sqlite3_configPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
-          'sqlite3_config');
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int)>>('sqlite3_config');
   late final _sqlite3_config =
       _sqlite3_configPtr.asFunction<int Function(int)>();
 
@@ -511,9 +511,8 @@
   }
 
   late final _sqlite3_db_configPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>, ffi.Int32)>>('sqlite3_db_config');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_db_config');
   late final _sqlite3_db_config = _sqlite3_db_configPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -534,9 +533,8 @@
   }
 
   late final _sqlite3_extended_result_codesPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Int32)>>('sqlite3_extended_result_codes');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_extended_result_codes');
   late final _sqlite3_extended_result_codes = _sqlite3_extended_result_codesPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -698,7 +696,7 @@
   }
 
   late final _sqlite3_changesPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_changes');
   late final _sqlite3_changes =
       _sqlite3_changesPtr.asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -745,7 +743,7 @@
   }
 
   late final _sqlite3_total_changesPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_total_changes');
   late final _sqlite3_total_changes = _sqlite3_total_changesPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -829,7 +827,7 @@
   /// The input to [sqlite3_complete16()] must be a zero-terminated
   /// UTF-16 string in native byte order.
   int sqlite3_complete(
-    ffi.Pointer<ffi.Int8> sql,
+    ffi.Pointer<ffi.Char> sql,
   ) {
     return _sqlite3_complete(
       sql,
@@ -837,10 +835,10 @@
   }
 
   late final _sqlite3_completePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Char>)>>(
           'sqlite3_complete');
   late final _sqlite3_complete =
-      _sqlite3_completePtr.asFunction<int Function(ffi.Pointer<ffi.Int8>)>();
+      _sqlite3_completePtr.asFunction<int Function(ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_complete16(
     ffi.Pointer<ffi.Void> sql,
@@ -851,7 +849,7 @@
   }
 
   late final _sqlite3_complete16Ptr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>(
           'sqlite3_complete16');
   late final _sqlite3_complete16 =
       _sqlite3_complete16Ptr.asFunction<int Function(ffi.Pointer<ffi.Void>)>();
@@ -917,7 +915,7 @@
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32)>>
+                ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int)>>
         arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
@@ -930,18 +928,18 @@
 
   late final _sqlite3_busy_handlerPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32)>>,
+                      ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_busy_handler');
   late final _sqlite3_busy_handler = _sqlite3_busy_handlerPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32)>>,
+                  ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int)>>,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: Set A Busy Timeout
@@ -974,9 +972,8 @@
   }
 
   late final _sqlite3_busy_timeoutPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>, ffi.Int32)>>('sqlite3_busy_timeout');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_busy_timeout');
   late final _sqlite3_busy_timeout = _sqlite3_busy_timeoutPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -1053,11 +1050,11 @@
   /// [sqlite3_errmsg()].
   int sqlite3_get_table(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSql,
-    ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Int8>>> pazResult,
-    ffi.Pointer<ffi.Int32> pnRow,
-    ffi.Pointer<ffi.Int32> pnColumn,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzErrmsg,
+    ffi.Pointer<ffi.Char> zSql,
+    ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Char>>> pazResult,
+    ffi.Pointer<ffi.Int> pnRow,
+    ffi.Pointer<ffi.Int> pnColumn,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzErrmsg,
   ) {
     return _sqlite3_get_table(
       db,
@@ -1071,24 +1068,24 @@
 
   late final _sqlite3_get_tablePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Int8>>>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_get_table');
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Char>>>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_get_table');
   late final _sqlite3_get_table = _sqlite3_get_tablePtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Int8>>>,
-          ffi.Pointer<ffi.Int32>,
-          ffi.Pointer<ffi.Int32>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Char>>>,
+          ffi.Pointer<ffi.Int>,
+          ffi.Pointer<ffi.Int>,
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   void sqlite3_free_table(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> result,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> result,
   ) {
     return _sqlite3_free_table(
       result,
@@ -1098,9 +1095,9 @@
   late final _sqlite3_free_tablePtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_free_table');
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_free_table');
   late final _sqlite3_free_table = _sqlite3_free_tablePtr
-      .asFunction<void Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+      .asFunction<void Function(ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   /// CAPI3REF: Formatted String Printing Functions
   ///
@@ -1140,8 +1137,8 @@
   /// ^The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf().
   ///
   /// See also:  [built-in printf()], [printf() SQL function]
-  ffi.Pointer<ffi.Int8> sqlite3_mprintf(
-    ffi.Pointer<ffi.Int8> arg0,
+  ffi.Pointer<ffi.Char> sqlite3_mprintf(
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_mprintf(
       arg0,
@@ -1150,15 +1147,15 @@
 
   late final _sqlite3_mprintfPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_mprintf');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>)>>('sqlite3_mprintf');
   late final _sqlite3_mprintf = _sqlite3_mprintfPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_snprintf(
+  ffi.Pointer<ffi.Char> sqlite3_snprintf(
     int arg0,
-    ffi.Pointer<ffi.Int8> arg1,
-    ffi.Pointer<ffi.Int8> arg2,
+    ffi.Pointer<ffi.Char> arg1,
+    ffi.Pointer<ffi.Char> arg2,
   ) {
     return _sqlite3_snprintf(
       arg0,
@@ -1169,11 +1166,11 @@
 
   late final _sqlite3_snprintfPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Int32, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_snprintf');
+          ffi.Pointer<ffi.Char> Function(ffi.Int, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_snprintf');
   late final _sqlite3_snprintf = _sqlite3_snprintfPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(
-          int, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<ffi.Char> Function(
+          int, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Memory Allocation Subsystem
   ///
@@ -1257,7 +1254,7 @@
   }
 
   late final _sqlite3_mallocPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Int)>>(
           'sqlite3_malloc');
   late final _sqlite3_malloc =
       _sqlite3_mallocPtr.asFunction<ffi.Pointer<ffi.Void> Function(int)>();
@@ -1289,7 +1286,7 @@
   late final _sqlite3_reallocPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<ffi.Void>, ffi.Int32)>>('sqlite3_realloc');
+              ffi.Pointer<ffi.Void>, ffi.Int)>>('sqlite3_realloc');
   late final _sqlite3_realloc = _sqlite3_reallocPtr
       .asFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, int)>();
 
@@ -1378,7 +1375,7 @@
   }
 
   late final _sqlite3_memory_highwaterPtr =
-      _lookup<ffi.NativeFunction<sqlite3_int64 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<sqlite3_int64 Function(ffi.Int)>>(
           'sqlite3_memory_highwater');
   late final _sqlite3_memory_highwater =
       _sqlite3_memory_highwaterPtr.asFunction<int Function(int)>();
@@ -1415,7 +1412,7 @@
   late final _sqlite3_randomnessPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(
-              ffi.Int32, ffi.Pointer<ffi.Void>)>>('sqlite3_randomness');
+              ffi.Int, ffi.Pointer<ffi.Void>)>>('sqlite3_randomness');
   late final _sqlite3_randomness = _sqlite3_randomnessPtr
       .asFunction<void Function(int, ffi.Pointer<ffi.Void>)>();
 
@@ -1510,13 +1507,13 @@
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(
+                ffi.Int Function(
                     ffi.Pointer<ffi.Void>,
-                    ffi.Int32,
-                    ffi.Pointer<ffi.Int8>,
-                    ffi.Pointer<ffi.Int8>,
-                    ffi.Pointer<ffi.Int8>,
-                    ffi.Pointer<ffi.Int8>)>>
+                    ffi.Int,
+                    ffi.Pointer<ffi.Char>,
+                    ffi.Pointer<ffi.Char>,
+                    ffi.Pointer<ffi.Char>,
+                    ffi.Pointer<ffi.Char>)>>
         xAuth,
     ffi.Pointer<ffi.Void> pUserData,
   ) {
@@ -1529,30 +1526,30 @@
 
   late final _sqlite3_set_authorizerPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Pointer<ffi.Int8>)>>,
+                          ffi.Int,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Pointer<ffi.Char>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_set_authorizer');
   late final _sqlite3_set_authorizer = _sqlite3_set_authorizerPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<ffi.Void>,
-                      ffi.Int32,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Pointer<ffi.Int8>)>>,
+                      ffi.Int,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Pointer<ffi.Char>)>>,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: Tracing And Profiling Functions
@@ -1590,7 +1587,7 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(
-                    ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Int8>)>>
+                    ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>
         xTrace,
     ffi.Pointer<ffi.Void> arg2,
   ) {
@@ -1608,7 +1605,7 @@
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
-                          ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Int8>)>>,
+                          ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_trace');
   late final _sqlite3_trace = _sqlite3_tracePtr.asFunction<
       ffi.Pointer<ffi.Void> Function(
@@ -1616,14 +1613,14 @@
           ffi.Pointer<
               ffi.NativeFunction<
                   ffi.Void Function(
-                      ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Int8>)>>,
+                      ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>,
           ffi.Pointer<ffi.Void>)>();
 
   ffi.Pointer<ffi.Void> sqlite3_profile(
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Int8>,
+                ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>,
                     sqlite3_uint64)>>
         xProfile,
     ffi.Pointer<ffi.Void> arg2,
@@ -1642,7 +1639,7 @@
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(ffi.Pointer<ffi.Void>,
-                          ffi.Pointer<ffi.Int8>, sqlite3_uint64)>>,
+                          ffi.Pointer<ffi.Char>, sqlite3_uint64)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_profile');
   late final _sqlite3_profile = _sqlite3_profilePtr.asFunction<
       ffi.Pointer<ffi.Void> Function(
@@ -1650,7 +1647,7 @@
           ffi.Pointer<
               ffi.NativeFunction<
                   ffi.Void Function(ffi.Pointer<ffi.Void>,
-                      ffi.Pointer<ffi.Int8>, sqlite3_uint64)>>,
+                      ffi.Pointer<ffi.Char>, sqlite3_uint64)>>,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: SQL Trace Hook
@@ -1685,7 +1682,7 @@
     int uMask,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Uint32, ffi.Pointer<ffi.Void>,
+                ffi.Int Function(ffi.UnsignedInt, ffi.Pointer<ffi.Void>,
                     ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>
         xCallback,
     ffi.Pointer<ffi.Void> pCtx,
@@ -1700,12 +1697,12 @@
 
   late final _sqlite3_trace_v2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Uint32,
+              ffi.UnsignedInt,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(ffi.Uint32, ffi.Pointer<ffi.Void>,
+                      ffi.Int Function(ffi.UnsignedInt, ffi.Pointer<ffi.Void>,
                           ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_trace_v2');
   late final _sqlite3_trace_v2 = _sqlite3_trace_v2Ptr.asFunction<
@@ -1714,7 +1711,7 @@
           int,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Int32 Function(ffi.Uint32, ffi.Pointer<ffi.Void>,
+                  ffi.Int Function(ffi.UnsignedInt, ffi.Pointer<ffi.Void>,
                       ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Void>)>>,
           ffi.Pointer<ffi.Void>)>();
 
@@ -1750,7 +1747,7 @@
   void sqlite3_progress_handler(
     ffi.Pointer<sqlite3> arg0,
     int arg1,
-    ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>
+    ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
         arg2,
     ffi.Pointer<ffi.Void> arg3,
   ) {
@@ -1766,10 +1763,9 @@
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<sqlite3>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<
-                  ffi.NativeFunction<
-                      ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>,
+                  ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_progress_handler');
   late final _sqlite3_progress_handler =
       _sqlite3_progress_handlerPtr.asFunction<
@@ -1777,8 +1773,7 @@
               ffi.Pointer<sqlite3>,
               int,
               ffi.Pointer<
-                  ffi.NativeFunction<
-                      ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>,
+                  ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: Opening A New Database Connection
@@ -2033,7 +2028,7 @@
   ///
   /// See also: [sqlite3_temp_directory]
   int sqlite3_open(
-    ffi.Pointer<ffi.Int8> filename,
+    ffi.Pointer<ffi.Char> filename,
     ffi.Pointer<ffi.Pointer<sqlite3>> ppDb,
   ) {
     return _sqlite3_open(
@@ -2044,10 +2039,10 @@
 
   late final _sqlite3_openPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>,
+          ffi.Int Function(ffi.Pointer<ffi.Char>,
               ffi.Pointer<ffi.Pointer<sqlite3>>)>>('sqlite3_open');
   late final _sqlite3_open = _sqlite3_openPtr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<sqlite3>>)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<sqlite3>>)>();
 
   int sqlite3_open16(
     ffi.Pointer<ffi.Void> filename,
@@ -2061,16 +2056,16 @@
 
   late final _sqlite3_open16Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Void>,
+          ffi.Int Function(ffi.Pointer<ffi.Void>,
               ffi.Pointer<ffi.Pointer<sqlite3>>)>>('sqlite3_open16');
   late final _sqlite3_open16 = _sqlite3_open16Ptr.asFunction<
       int Function(ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Pointer<sqlite3>>)>();
 
   int sqlite3_open_v2(
-    ffi.Pointer<ffi.Int8> filename,
+    ffi.Pointer<ffi.Char> filename,
     ffi.Pointer<ffi.Pointer<sqlite3>> ppDb,
     int flags,
-    ffi.Pointer<ffi.Int8> zVfs,
+    ffi.Pointer<ffi.Char> zVfs,
   ) {
     return _sqlite3_open_v2(
       filename,
@@ -2082,14 +2077,14 @@
 
   late final _sqlite3_open_v2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<ffi.Int8>,
+          ffi.Int Function(
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<ffi.Pointer<sqlite3>>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_open_v2');
+              ffi.Int,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_open_v2');
   late final _sqlite3_open_v2 = _sqlite3_open_v2Ptr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<sqlite3>>,
-          int, ffi.Pointer<ffi.Int8>)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<sqlite3>>,
+          int, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Obtain Values For URI Parameters
   ///
@@ -2155,9 +2150,9 @@
   /// main database file.
   ///
   /// See the [URI filename] documentation for additional information.
-  ffi.Pointer<ffi.Int8> sqlite3_uri_parameter(
-    ffi.Pointer<ffi.Int8> zFilename,
-    ffi.Pointer<ffi.Int8> zParam,
+  ffi.Pointer<ffi.Char> sqlite3_uri_parameter(
+    ffi.Pointer<ffi.Char> zFilename,
+    ffi.Pointer<ffi.Char> zParam,
   ) {
     return _sqlite3_uri_parameter(
       zFilename,
@@ -2167,15 +2162,15 @@
 
   late final _sqlite3_uri_parameterPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_uri_parameter');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_uri_parameter');
   late final _sqlite3_uri_parameter = _sqlite3_uri_parameterPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_uri_boolean(
-    ffi.Pointer<ffi.Int8> zFile,
-    ffi.Pointer<ffi.Int8> zParam,
+    ffi.Pointer<ffi.Char> zFile,
+    ffi.Pointer<ffi.Char> zParam,
     int bDefault,
   ) {
     return _sqlite3_uri_boolean(
@@ -2187,14 +2182,14 @@
 
   late final _sqlite3_uri_booleanPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32)>>('sqlite3_uri_boolean');
+          ffi.Int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>,
+              ffi.Int)>>('sqlite3_uri_boolean');
   late final _sqlite3_uri_boolean = _sqlite3_uri_booleanPtr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>, int)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>, int)>();
 
   int sqlite3_uri_int64(
-    ffi.Pointer<ffi.Int8> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg0,
+    ffi.Pointer<ffi.Char> arg1,
     int arg2,
   ) {
     return _sqlite3_uri_int64(
@@ -2206,13 +2201,13 @@
 
   late final _sqlite3_uri_int64Ptr = _lookup<
       ffi.NativeFunction<
-          sqlite3_int64 Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>,
+          sqlite3_int64 Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>,
               sqlite3_int64)>>('sqlite3_uri_int64');
   late final _sqlite3_uri_int64 = _sqlite3_uri_int64Ptr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>, int)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>, int)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_uri_key(
-    ffi.Pointer<ffi.Int8> zFilename,
+  ffi.Pointer<ffi.Char> sqlite3_uri_key(
+    ffi.Pointer<ffi.Char> zFilename,
     int N,
   ) {
     return _sqlite3_uri_key(
@@ -2223,10 +2218,10 @@
 
   late final _sqlite3_uri_keyPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>, ffi.Int32)>>('sqlite3_uri_key');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>, ffi.Int)>>('sqlite3_uri_key');
   late final _sqlite3_uri_key = _sqlite3_uri_keyPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>, int)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>, int)>();
 
   /// CAPI3REF:  Translate filenames
   ///
@@ -2253,8 +2248,8 @@
   /// filename passed into the VFS from the SQLite core and F is not the
   /// return value from [sqlite3_db_filename()], then the result is
   /// undefined and is likely a memory access violation.
-  ffi.Pointer<ffi.Int8> sqlite3_filename_database(
-    ffi.Pointer<ffi.Int8> arg0,
+  ffi.Pointer<ffi.Char> sqlite3_filename_database(
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_filename_database(
       arg0,
@@ -2263,13 +2258,13 @@
 
   late final _sqlite3_filename_databasePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_filename_database');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>)>>('sqlite3_filename_database');
   late final _sqlite3_filename_database = _sqlite3_filename_databasePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_filename_journal(
-    ffi.Pointer<ffi.Int8> arg0,
+  ffi.Pointer<ffi.Char> sqlite3_filename_journal(
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_filename_journal(
       arg0,
@@ -2278,13 +2273,13 @@
 
   late final _sqlite3_filename_journalPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_filename_journal');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>)>>('sqlite3_filename_journal');
   late final _sqlite3_filename_journal = _sqlite3_filename_journalPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_filename_wal(
-    ffi.Pointer<ffi.Int8> arg0,
+  ffi.Pointer<ffi.Char> sqlite3_filename_wal(
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_filename_wal(
       arg0,
@@ -2293,10 +2288,10 @@
 
   late final _sqlite3_filename_walPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_filename_wal');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>)>>('sqlite3_filename_wal');
   late final _sqlite3_filename_wal = _sqlite3_filename_walPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF:  Database File Corresponding To A Journal
   ///
@@ -2314,7 +2309,7 @@
   /// of this routine results in undefined and probably undesirable
   /// behavior.
   ffi.Pointer<sqlite3_file> sqlite3_database_file_object(
-    ffi.Pointer<ffi.Int8> arg0,
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_database_file_object(
       arg0,
@@ -2324,9 +2319,9 @@
   late final _sqlite3_database_file_objectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_file> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_database_file_object');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_database_file_object');
   late final _sqlite3_database_file_object = _sqlite3_database_file_objectPtr
-      .asFunction<ffi.Pointer<sqlite3_file> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<sqlite3_file> Function(ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Create and Destroy VFS Filenames
   ///
@@ -2371,12 +2366,12 @@
   /// that if the [sqlite3_vfs.xOpen()] method of a VFS has been called using Y,
   /// then the corresponding [sqlite3_module.xClose() method should also be
   /// invoked prior to calling sqlite3_free_filename(Y).
-  ffi.Pointer<ffi.Int8> sqlite3_create_filename(
-    ffi.Pointer<ffi.Int8> zDatabase,
-    ffi.Pointer<ffi.Int8> zJournal,
-    ffi.Pointer<ffi.Int8> zWal,
+  ffi.Pointer<ffi.Char> sqlite3_create_filename(
+    ffi.Pointer<ffi.Char> zDatabase,
+    ffi.Pointer<ffi.Char> zJournal,
+    ffi.Pointer<ffi.Char> zWal,
     int nParam,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> azParam,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> azParam,
   ) {
     return _sqlite3_create_filename(
       zDatabase,
@@ -2389,22 +2384,22 @@
 
   late final _sqlite3_create_filenamePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_create_filename');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_create_filename');
   late final _sqlite3_create_filename = _sqlite3_create_filenamePtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Int8>,
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Char>,
           int,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   void sqlite3_free_filename(
-    ffi.Pointer<ffi.Int8> arg0,
+    ffi.Pointer<ffi.Char> arg0,
   ) {
     return _sqlite3_free_filename(
       arg0,
@@ -2412,10 +2407,10 @@
   }
 
   late final _sqlite3_free_filenamePtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Char>)>>(
           'sqlite3_free_filename');
   late final _sqlite3_free_filename = _sqlite3_free_filenamePtr
-      .asFunction<void Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<void Function(ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Error Codes And Messages
   /// METHOD: sqlite3
@@ -2476,7 +2471,7 @@
   }
 
   late final _sqlite3_errcodePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_errcode');
   late final _sqlite3_errcode =
       _sqlite3_errcodePtr.asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -2490,12 +2485,12 @@
   }
 
   late final _sqlite3_extended_errcodePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_extended_errcode');
   late final _sqlite3_extended_errcode = _sqlite3_extended_errcodePtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_errmsg(
+  ffi.Pointer<ffi.Char> sqlite3_errmsg(
     ffi.Pointer<sqlite3> arg0,
   ) {
     return _sqlite3_errmsg(
@@ -2505,10 +2500,10 @@
 
   late final _sqlite3_errmsgPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3>)>>('sqlite3_errmsg');
   late final _sqlite3_errmsg = _sqlite3_errmsgPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3>)>();
 
   ffi.Pointer<ffi.Void> sqlite3_errmsg16(
     ffi.Pointer<sqlite3> arg0,
@@ -2525,7 +2520,7 @@
   late final _sqlite3_errmsg16 = _sqlite3_errmsg16Ptr
       .asFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_errstr(
+  ffi.Pointer<ffi.Char> sqlite3_errstr(
     int arg0,
   ) {
     return _sqlite3_errstr(
@@ -2534,10 +2529,10 @@
   }
 
   late final _sqlite3_errstrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function(ffi.Int)>>(
           'sqlite3_errstr');
   late final _sqlite3_errstr =
-      _sqlite3_errstrPtr.asFunction<ffi.Pointer<ffi.Int8> Function(int)>();
+      _sqlite3_errstrPtr.asFunction<ffi.Pointer<ffi.Char> Function(int)>();
 
   /// CAPI3REF: Run-time Limits
   /// METHOD: sqlite3
@@ -2591,8 +2586,8 @@
 
   late final _sqlite3_limitPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>, ffi.Int32, ffi.Int32)>>('sqlite3_limit');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3>, ffi.Int, ffi.Int)>>('sqlite3_limit');
   late final _sqlite3_limit = _sqlite3_limitPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int, int)>();
 
@@ -2696,10 +2691,10 @@
   /// sqlite3_prepare_v3() with a zero prepFlags parameter.
   int sqlite3_prepare(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSql,
+    ffi.Pointer<ffi.Char> zSql,
     int nByte,
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzTail,
   ) {
     return _sqlite3_prepare(
       db,
@@ -2712,26 +2707,26 @@
 
   late final _sqlite3_preparePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_prepare');
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_prepare');
   late final _sqlite3_prepare = _sqlite3_preparePtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   int sqlite3_prepare_v2(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSql,
+    ffi.Pointer<ffi.Char> zSql,
     int nByte,
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzTail,
   ) {
     return _sqlite3_prepare_v2(
       db,
@@ -2744,27 +2739,27 @@
 
   late final _sqlite3_prepare_v2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_prepare_v2');
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_prepare_v2');
   late final _sqlite3_prepare_v2 = _sqlite3_prepare_v2Ptr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   int sqlite3_prepare_v3(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSql,
+    ffi.Pointer<ffi.Char> zSql,
     int nByte,
     int prepFlags,
     ffi.Pointer<ffi.Pointer<sqlite3_stmt>> ppStmt,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzTail,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzTail,
   ) {
     return _sqlite3_prepare_v3(
       db,
@@ -2778,21 +2773,21 @@
 
   late final _sqlite3_prepare_v3Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
-              ffi.Uint32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
+              ffi.UnsignedInt,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_prepare_v3');
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_prepare_v3');
   late final _sqlite3_prepare_v3 = _sqlite3_prepare_v3Ptr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           int,
           ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
-          ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+          ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   int sqlite3_prepare16(
     ffi.Pointer<sqlite3> db,
@@ -2812,10 +2807,10 @@
 
   late final _sqlite3_prepare16Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
               ffi.Pointer<ffi.Pointer<ffi.Void>>)>>('sqlite3_prepare16');
   late final _sqlite3_prepare16 = _sqlite3_prepare16Ptr.asFunction<
@@ -2844,10 +2839,10 @@
 
   late final _sqlite3_prepare16_v2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
               ffi.Pointer<ffi.Pointer<ffi.Void>>)>>('sqlite3_prepare16_v2');
   late final _sqlite3_prepare16_v2 = _sqlite3_prepare16_v2Ptr.asFunction<
@@ -2878,11 +2873,11 @@
 
   late final _sqlite3_prepare16_v3Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
-              ffi.Uint32,
+              ffi.Int,
+              ffi.UnsignedInt,
               ffi.Pointer<ffi.Pointer<sqlite3_stmt>>,
               ffi.Pointer<ffi.Pointer<ffi.Void>>)>>('sqlite3_prepare16_v3');
   late final _sqlite3_prepare16_v3 = _sqlite3_prepare16_v3Ptr.asFunction<
@@ -2930,7 +2925,7 @@
   /// ^The string returned by sqlite3_expanded_sql(P), on the other hand,
   /// is obtained from [sqlite3_malloc()] and must be free by the application
   /// by passing it to [sqlite3_free()].
-  ffi.Pointer<ffi.Int8> sqlite3_sql(
+  ffi.Pointer<ffi.Char> sqlite3_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
     return _sqlite3_sql(
@@ -2940,12 +2935,12 @@
 
   late final _sqlite3_sqlPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3_stmt>)>>('sqlite3_sql');
   late final _sqlite3_sql = _sqlite3_sqlPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_expanded_sql(
+  ffi.Pointer<ffi.Char> sqlite3_expanded_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
     return _sqlite3_expanded_sql(
@@ -2955,12 +2950,12 @@
 
   late final _sqlite3_expanded_sqlPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3_stmt>)>>('sqlite3_expanded_sql');
   late final _sqlite3_expanded_sql = _sqlite3_expanded_sqlPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_normalized_sql(
+  ffi.Pointer<ffi.Char> sqlite3_normalized_sql(
     ffi.Pointer<sqlite3_stmt> pStmt,
   ) {
     return _sqlite3_normalized_sql(
@@ -2970,10 +2965,10 @@
 
   late final _sqlite3_normalized_sqlPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3_stmt>)>>('sqlite3_normalized_sql');
   late final _sqlite3_normalized_sql = _sqlite3_normalized_sqlPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>)>();
 
   /// CAPI3REF: Determine If An SQL Statement Writes The Database
   /// METHOD: sqlite3_stmt
@@ -3015,9 +3010,9 @@
     );
   }
 
-  late final _sqlite3_stmt_readonlyPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_stmt_readonly');
+  late final _sqlite3_stmt_readonlyPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_stmt_readonly');
   late final _sqlite3_stmt_readonly = _sqlite3_stmt_readonlyPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3037,9 +3032,9 @@
     );
   }
 
-  late final _sqlite3_stmt_isexplainPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_stmt_isexplain');
+  late final _sqlite3_stmt_isexplainPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_stmt_isexplain');
   late final _sqlite3_stmt_isexplain = _sqlite3_stmt_isexplainPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3068,9 +3063,9 @@
     );
   }
 
-  late final _sqlite3_stmt_busyPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_stmt_busy');
+  late final _sqlite3_stmt_busyPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_stmt_busy');
   late final _sqlite3_stmt_busy = _sqlite3_stmt_busyPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3227,11 +3222,11 @@
 
   late final _sqlite3_bind_blobPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -3264,9 +3259,9 @@
 
   late final _sqlite3_bind_blob64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
               sqlite3_uint64,
               ffi.Pointer<
@@ -3296,7 +3291,7 @@
 
   late final _sqlite3_bind_doublePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
               ffi.Double)>>('sqlite3_bind_double');
   late final _sqlite3_bind_double = _sqlite3_bind_doublePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, double)>();
@@ -3315,8 +3310,8 @@
 
   late final _sqlite3_bind_intPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
-              ffi.Int32)>>('sqlite3_bind_int');
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
+              ffi.Int)>>('sqlite3_bind_int');
   late final _sqlite3_bind_int = _sqlite3_bind_intPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, int)>();
 
@@ -3334,7 +3329,7 @@
 
   late final _sqlite3_bind_int64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
               sqlite3_int64)>>('sqlite3_bind_int64');
   late final _sqlite3_bind_int64 = _sqlite3_bind_int64Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, int)>();
@@ -3351,15 +3346,15 @@
 
   late final _sqlite3_bind_nullPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_bind_null');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_bind_null');
   late final _sqlite3_bind_null = _sqlite3_bind_nullPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   int sqlite3_bind_text(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
-    ffi.Pointer<ffi.Int8> arg2,
+    ffi.Pointer<ffi.Char> arg2,
     int arg3,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg4,
@@ -3375,11 +3370,11 @@
 
   late final _sqlite3_bind_textPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Int,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -3388,7 +3383,7 @@
       int Function(
           ffi.Pointer<sqlite3_stmt>,
           int,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>();
@@ -3412,11 +3407,11 @@
 
   late final _sqlite3_bind_text16Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -3433,7 +3428,7 @@
   int sqlite3_bind_text64(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
-    ffi.Pointer<ffi.Int8> arg2,
+    ffi.Pointer<ffi.Char> arg2,
     int arg3,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg4,
@@ -3451,19 +3446,19 @@
 
   late final _sqlite3_bind_text64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Int,
+              ffi.Pointer<ffi.Char>,
               sqlite3_uint64,
               ffi.Pointer<
                   ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>,
-              ffi.Uint8)>>('sqlite3_bind_text64');
+              ffi.UnsignedChar)>>('sqlite3_bind_text64');
   late final _sqlite3_bind_text64 = _sqlite3_bind_text64Ptr.asFunction<
       int Function(
           ffi.Pointer<sqlite3_stmt>,
           int,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>,
@@ -3483,7 +3478,7 @@
 
   late final _sqlite3_bind_valuePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
               ffi.Pointer<sqlite3_value>)>>('sqlite3_bind_value');
   late final _sqlite3_bind_value = _sqlite3_bind_valuePtr.asFunction<
       int Function(
@@ -3493,7 +3488,7 @@
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
     ffi.Pointer<ffi.Void> arg2,
-    ffi.Pointer<ffi.Int8> arg3,
+    ffi.Pointer<ffi.Char> arg3,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg4,
   ) {
@@ -3508,11 +3503,11 @@
 
   late final _sqlite3_bind_pointerPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -3522,7 +3517,7 @@
           ffi.Pointer<sqlite3_stmt>,
           int,
           ffi.Pointer<ffi.Void>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>();
 
@@ -3540,8 +3535,8 @@
 
   late final _sqlite3_bind_zeroblobPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
-              ffi.Int32)>>('sqlite3_bind_zeroblob');
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
+              ffi.Int)>>('sqlite3_bind_zeroblob');
   late final _sqlite3_bind_zeroblob = _sqlite3_bind_zeroblobPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, int)>();
 
@@ -3559,7 +3554,7 @@
 
   late final _sqlite3_bind_zeroblob64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
               sqlite3_uint64)>>('sqlite3_bind_zeroblob64');
   late final _sqlite3_bind_zeroblob64 = _sqlite3_bind_zeroblob64Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, int)>();
@@ -3589,9 +3584,9 @@
     );
   }
 
-  late final _sqlite3_bind_parameter_countPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_bind_parameter_count');
+  late final _sqlite3_bind_parameter_countPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_bind_parameter_count');
   late final _sqlite3_bind_parameter_count = _sqlite3_bind_parameter_countPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3619,7 +3614,7 @@
   /// See also: [sqlite3_bind_blob|sqlite3_bind()],
   /// [sqlite3_bind_parameter_count()], and
   /// [sqlite3_bind_parameter_index()].
-  ffi.Pointer<ffi.Int8> sqlite3_bind_parameter_name(
+  ffi.Pointer<ffi.Char> sqlite3_bind_parameter_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
@@ -3631,11 +3626,11 @@
 
   late final _sqlite3_bind_parameter_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_bind_parameter_name');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>,
+              ffi.Int)>>('sqlite3_bind_parameter_name');
   late final _sqlite3_bind_parameter_name =
       _sqlite3_bind_parameter_namePtr.asFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   /// CAPI3REF: Index Of A Parameter With A Given Name
   /// METHOD: sqlite3_stmt
@@ -3653,7 +3648,7 @@
   /// [sqlite3_bind_parameter_name()].
   int sqlite3_bind_parameter_index(
     ffi.Pointer<sqlite3_stmt> arg0,
-    ffi.Pointer<ffi.Int8> zName,
+    ffi.Pointer<ffi.Char> zName,
   ) {
     return _sqlite3_bind_parameter_index(
       arg0,
@@ -3663,11 +3658,11 @@
 
   late final _sqlite3_bind_parameter_indexPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_bind_parameter_index');
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_bind_parameter_index');
   late final _sqlite3_bind_parameter_index =
       _sqlite3_bind_parameter_indexPtr.asFunction<
-          int Function(ffi.Pointer<sqlite3_stmt>, ffi.Pointer<ffi.Int8>)>();
+          int Function(ffi.Pointer<sqlite3_stmt>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Reset All Bindings On A Prepared Statement
   /// METHOD: sqlite3_stmt
@@ -3683,9 +3678,9 @@
     );
   }
 
-  late final _sqlite3_clear_bindingsPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_clear_bindings');
+  late final _sqlite3_clear_bindingsPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_clear_bindings');
   late final _sqlite3_clear_bindings = _sqlite3_clear_bindingsPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3709,9 +3704,9 @@
     );
   }
 
-  late final _sqlite3_column_countPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_column_count');
+  late final _sqlite3_column_countPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_column_count');
   late final _sqlite3_column_count = _sqlite3_column_countPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -3740,7 +3735,7 @@
   /// that column, if there is an AS clause.  If there is no AS clause
   /// then the name of the column is unspecified and may change from
   /// one release of SQLite to the next.
-  ffi.Pointer<ffi.Int8> sqlite3_column_name(
+  ffi.Pointer<ffi.Char> sqlite3_column_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int N,
   ) {
@@ -3752,10 +3747,10 @@
 
   late final _sqlite3_column_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_name');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_name');
   late final _sqlite3_column_name = _sqlite3_column_namePtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3770,7 +3765,7 @@
   late final _sqlite3_column_name16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_name16');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_name16');
   late final _sqlite3_column_name16 = _sqlite3_column_name16Ptr.asFunction<
       ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -3814,7 +3809,7 @@
   /// [sqlite3_column_database_name | column metadata interfaces]
   /// for the same [prepared statement] and result column
   /// at the same time then the results are undefined.
-  ffi.Pointer<ffi.Int8> sqlite3_column_database_name(
+  ffi.Pointer<ffi.Char> sqlite3_column_database_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
@@ -3826,11 +3821,11 @@
 
   late final _sqlite3_column_database_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_database_name');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>,
+              ffi.Int)>>('sqlite3_column_database_name');
   late final _sqlite3_column_database_name =
       _sqlite3_column_database_namePtr.asFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_database_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3845,12 +3840,12 @@
   late final _sqlite3_column_database_name16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_database_name16');
+              ffi.Int)>>('sqlite3_column_database_name16');
   late final _sqlite3_column_database_name16 =
       _sqlite3_column_database_name16Ptr.asFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_column_table_name(
+  ffi.Pointer<ffi.Char> sqlite3_column_table_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
@@ -3862,11 +3857,11 @@
 
   late final _sqlite3_column_table_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_table_name');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>,
+              ffi.Int)>>('sqlite3_column_table_name');
   late final _sqlite3_column_table_name =
       _sqlite3_column_table_namePtr.asFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_table_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3881,12 +3876,12 @@
   late final _sqlite3_column_table_name16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_table_name16');
+              ffi.Int)>>('sqlite3_column_table_name16');
   late final _sqlite3_column_table_name16 =
       _sqlite3_column_table_name16Ptr.asFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_column_origin_name(
+  ffi.Pointer<ffi.Char> sqlite3_column_origin_name(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
@@ -3898,11 +3893,11 @@
 
   late final _sqlite3_column_origin_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_origin_name');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>,
+              ffi.Int)>>('sqlite3_column_origin_name');
   late final _sqlite3_column_origin_name =
       _sqlite3_column_origin_namePtr.asFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_origin_name16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3917,7 +3912,7 @@
   late final _sqlite3_column_origin_name16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_origin_name16');
+              ffi.Int)>>('sqlite3_column_origin_name16');
   late final _sqlite3_column_origin_name16 =
       _sqlite3_column_origin_name16Ptr.asFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
@@ -3950,7 +3945,7 @@
   /// strongly typed, but the typing is dynamic not static.  ^Type
   /// is associated with individual values, not with the containers
   /// used to hold those values.
-  ffi.Pointer<ffi.Int8> sqlite3_column_decltype(
+  ffi.Pointer<ffi.Char> sqlite3_column_decltype(
     ffi.Pointer<sqlite3_stmt> arg0,
     int arg1,
   ) {
@@ -3962,10 +3957,10 @@
 
   late final _sqlite3_column_decltypePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_decltype');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_decltype');
   late final _sqlite3_column_decltype = _sqlite3_column_decltypePtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_decltype16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -3980,7 +3975,7 @@
   late final _sqlite3_column_decltype16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>,
-              ffi.Int32)>>('sqlite3_column_decltype16');
+              ffi.Int)>>('sqlite3_column_decltype16');
   late final _sqlite3_column_decltype16 =
       _sqlite3_column_decltype16Ptr.asFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
@@ -4073,9 +4068,9 @@
     );
   }
 
-  late final _sqlite3_stepPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_step');
+  late final _sqlite3_stepPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_step');
   late final _sqlite3_step =
       _sqlite3_stepPtr.asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -4104,9 +4099,9 @@
     );
   }
 
-  late final _sqlite3_data_countPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_data_count');
+  late final _sqlite3_data_countPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_data_count');
   late final _sqlite3_data_count = _sqlite3_data_countPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -4330,7 +4325,7 @@
   late final _sqlite3_column_blobPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_blob');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_blob');
   late final _sqlite3_column_blob = _sqlite3_column_blobPtr.asFunction<
       ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4347,7 +4342,7 @@
   late final _sqlite3_column_doublePtr = _lookup<
       ffi.NativeFunction<
           ffi.Double Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_double');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_double');
   late final _sqlite3_column_double = _sqlite3_column_doublePtr
       .asFunction<double Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4363,8 +4358,8 @@
 
   late final _sqlite3_column_intPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_int');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_int');
   late final _sqlite3_column_int = _sqlite3_column_intPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4381,11 +4376,11 @@
   late final _sqlite3_column_int64Ptr = _lookup<
       ffi.NativeFunction<
           sqlite3_int64 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_int64');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_int64');
   late final _sqlite3_column_int64 = _sqlite3_column_int64Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
-  ffi.Pointer<ffi.Uint8> sqlite3_column_text(
+  ffi.Pointer<ffi.UnsignedChar> sqlite3_column_text(
     ffi.Pointer<sqlite3_stmt> arg0,
     int iCol,
   ) {
@@ -4397,10 +4392,10 @@
 
   late final _sqlite3_column_textPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Uint8> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_text');
+          ffi.Pointer<ffi.UnsignedChar> Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_text');
   late final _sqlite3_column_text = _sqlite3_column_textPtr.asFunction<
-      ffi.Pointer<ffi.Uint8> Function(ffi.Pointer<sqlite3_stmt>, int)>();
+      ffi.Pointer<ffi.UnsignedChar> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
   ffi.Pointer<ffi.Void> sqlite3_column_text16(
     ffi.Pointer<sqlite3_stmt> arg0,
@@ -4415,7 +4410,7 @@
   late final _sqlite3_column_text16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_text16');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_text16');
   late final _sqlite3_column_text16 = _sqlite3_column_text16Ptr.asFunction<
       ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4432,7 +4427,7 @@
   late final _sqlite3_column_valuePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_value> Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_value');
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_value');
   late final _sqlite3_column_value = _sqlite3_column_valuePtr.asFunction<
       ffi.Pointer<sqlite3_value> Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4448,8 +4443,8 @@
 
   late final _sqlite3_column_bytesPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_bytes');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_bytes');
   late final _sqlite3_column_bytes = _sqlite3_column_bytesPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4465,8 +4460,8 @@
 
   late final _sqlite3_column_bytes16Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_bytes16');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_bytes16');
   late final _sqlite3_column_bytes16 = _sqlite3_column_bytes16Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4482,8 +4477,8 @@
 
   late final _sqlite3_column_typePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_stmt>, ffi.Int32)>>('sqlite3_column_type');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_stmt>, ffi.Int)>>('sqlite3_column_type');
   late final _sqlite3_column_type = _sqlite3_column_typePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int)>();
 
@@ -4519,9 +4514,9 @@
     );
   }
 
-  late final _sqlite3_finalizePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_finalize');
+  late final _sqlite3_finalizePtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_finalize');
   late final _sqlite3_finalize = _sqlite3_finalizePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -4556,9 +4551,9 @@
     );
   }
 
-  late final _sqlite3_resetPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_reset');
+  late final _sqlite3_resetPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_reset');
   late final _sqlite3_reset =
       _sqlite3_resetPtr.asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -4687,18 +4682,18 @@
   /// statement in which the function is running.
   int sqlite3_create_function(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zFunctionName,
+    ffi.Pointer<ffi.Char> zFunctionName,
     int nArg,
     int eTextRep,
     ffi.Pointer<ffi.Void> pApp,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xFunc,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xStep,
     ffi.Pointer<
@@ -4720,23 +4715,23 @@
   late final _sqlite3_create_functionPtr =
       _lookup<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<sqlite3>,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Int32,
-                      ffi.Int32,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Int,
+                      ffi.Int,
                       ffi.Pointer<ffi.Void>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
@@ -4746,17 +4741,17 @@
   late final _sqlite3_create_function = _sqlite3_create_functionPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           int,
           ffi.Pointer<ffi.Void>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                  ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                       ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                  ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                       ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
           ffi.Pointer<
               ffi.NativeFunction<
@@ -4770,12 +4765,12 @@
     ffi.Pointer<ffi.Void> pApp,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xFunc,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xStep,
     ffi.Pointer<
@@ -4797,23 +4792,23 @@
   late final _sqlite3_create_function16Ptr =
       _lookup<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<sqlite3>,
                       ffi.Pointer<ffi.Void>,
-                      ffi.Int32,
-                      ffi.Int32,
+                      ffi.Int,
+                      ffi.Int,
                       ffi.Pointer<ffi.Void>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
@@ -4830,11 +4825,11 @@
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -4842,18 +4837,18 @@
 
   int sqlite3_create_function_v2(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zFunctionName,
+    ffi.Pointer<ffi.Char> zFunctionName,
     int nArg,
     int eTextRep,
     ffi.Pointer<ffi.Void> pApp,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xFunc,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xStep,
     ffi.Pointer<
@@ -4878,23 +4873,23 @@
   late final _sqlite3_create_function_v2Ptr =
       _lookup<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<sqlite3>,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Int32,
-                      ffi.Int32,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Int,
+                      ffi.Int,
                       ffi.Pointer<ffi.Void>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
@@ -4907,17 +4902,17 @@
       _sqlite3_create_function_v2Ptr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               int,
               int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -4928,13 +4923,13 @@
 
   int sqlite3_create_window_function(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zFunctionName,
+    ffi.Pointer<ffi.Char> zFunctionName,
     int nArg,
     int eTextRep,
     ffi.Pointer<ffi.Void> pApp,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xStep,
     ffi.Pointer<
@@ -4945,7 +4940,7 @@
         xValue,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                     ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>
         xInverse,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
@@ -4968,17 +4963,17 @@
   late final _sqlite3_create_window_functionPtr =
       _lookup<
               ffi.NativeFunction<
-                  ffi.Int32 Function(
+                  ffi.Int Function(
                       ffi.Pointer<sqlite3>,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Int32,
-                      ffi.Int32,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Int,
+                      ffi.Int,
                       ffi.Pointer<ffi.Void>,
                       ffi.Pointer<
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
@@ -4990,7 +4985,7 @@
                           ffi.NativeFunction<
                               ffi.Void Function(
                                   ffi.Pointer<sqlite3_context>,
-                                  ffi.Int32,
+                                  ffi.Int,
                                   ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
                       ffi.Pointer<
                           ffi.NativeFunction<
@@ -5000,13 +4995,13 @@
       _sqlite3_create_window_functionPtr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               int,
               int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -5016,7 +5011,7 @@
                       ffi.Void Function(ffi.Pointer<sqlite3_context>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int32,
+                      ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Int,
                           ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -5031,7 +5026,7 @@
   }
 
   late final _sqlite3_aggregate_countPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_context>)>>(
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_context>)>>(
       'sqlite3_aggregate_count');
   late final _sqlite3_aggregate_count = _sqlite3_aggregate_countPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_context>)>();
@@ -5044,9 +5039,9 @@
     );
   }
 
-  late final _sqlite3_expiredPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>)>>(
-      'sqlite3_expired');
+  late final _sqlite3_expiredPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_stmt>)>>(
+          'sqlite3_expired');
   late final _sqlite3_expired =
       _sqlite3_expiredPtr.asFunction<int Function(ffi.Pointer<sqlite3_stmt>)>();
 
@@ -5062,7 +5057,7 @@
 
   late final _sqlite3_transfer_bindingsPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>,
               ffi.Pointer<sqlite3_stmt>)>>('sqlite3_transfer_bindings');
   late final _sqlite3_transfer_bindings =
       _sqlite3_transfer_bindingsPtr.asFunction<
@@ -5073,8 +5068,7 @@
   }
 
   late final _sqlite3_global_recoverPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>(
-          'sqlite3_global_recover');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_global_recover');
   late final _sqlite3_global_recover =
       _sqlite3_global_recoverPtr.asFunction<int Function()>();
 
@@ -5092,7 +5086,7 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(
-                    ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int32)>>
+                    ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int)>>
         arg0,
     ffi.Pointer<ffi.Void> arg1,
     int arg2,
@@ -5106,11 +5100,11 @@
 
   late final _sqlite3_memory_alarmPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
-                          ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int32)>>,
+                          ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int)>>,
               ffi.Pointer<ffi.Void>,
               sqlite3_int64)>>('sqlite3_memory_alarm');
   late final _sqlite3_memory_alarm = _sqlite3_memory_alarmPtr.asFunction<
@@ -5118,7 +5112,7 @@
           ffi.Pointer<
               ffi.NativeFunction<
                   ffi.Void Function(
-                      ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int32)>>,
+                      ffi.Pointer<ffi.Void>, sqlite3_int64, ffi.Int)>>,
           ffi.Pointer<ffi.Void>,
           int)>();
 
@@ -5285,9 +5279,9 @@
     );
   }
 
-  late final _sqlite3_value_intPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_int');
+  late final _sqlite3_value_intPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_int');
   late final _sqlite3_value_int = _sqlite3_value_intPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5308,7 +5302,7 @@
 
   ffi.Pointer<ffi.Void> sqlite3_value_pointer(
     ffi.Pointer<sqlite3_value> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg1,
   ) {
     return _sqlite3_value_pointer(
       arg0,
@@ -5319,12 +5313,12 @@
   late final _sqlite3_value_pointerPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_value>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_value_pointer');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_value_pointer');
   late final _sqlite3_value_pointer = _sqlite3_value_pointerPtr.asFunction<
       ffi.Pointer<ffi.Void> Function(
-          ffi.Pointer<sqlite3_value>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<sqlite3_value>, ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Uint8> sqlite3_value_text(
+  ffi.Pointer<ffi.UnsignedChar> sqlite3_value_text(
     ffi.Pointer<sqlite3_value> arg0,
   ) {
     return _sqlite3_value_text(
@@ -5334,10 +5328,10 @@
 
   late final _sqlite3_value_textPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Uint8> Function(
+          ffi.Pointer<ffi.UnsignedChar> Function(
               ffi.Pointer<sqlite3_value>)>>('sqlite3_value_text');
   late final _sqlite3_value_text = _sqlite3_value_textPtr.asFunction<
-      ffi.Pointer<ffi.Uint8> Function(ffi.Pointer<sqlite3_value>)>();
+      ffi.Pointer<ffi.UnsignedChar> Function(ffi.Pointer<sqlite3_value>)>();
 
   ffi.Pointer<ffi.Void> sqlite3_value_text16(
     ffi.Pointer<sqlite3_value> arg0,
@@ -5392,9 +5386,9 @@
     );
   }
 
-  late final _sqlite3_value_bytesPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_bytes');
+  late final _sqlite3_value_bytesPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_bytes');
   late final _sqlite3_value_bytes = _sqlite3_value_bytesPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5406,9 +5400,9 @@
     );
   }
 
-  late final _sqlite3_value_bytes16Ptr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_bytes16');
+  late final _sqlite3_value_bytes16Ptr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_bytes16');
   late final _sqlite3_value_bytes16 = _sqlite3_value_bytes16Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5420,9 +5414,9 @@
     );
   }
 
-  late final _sqlite3_value_typePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_type');
+  late final _sqlite3_value_typePtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_type');
   late final _sqlite3_value_type = _sqlite3_value_typePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5434,9 +5428,9 @@
     );
   }
 
-  late final _sqlite3_value_numeric_typePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_numeric_type');
+  late final _sqlite3_value_numeric_typePtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_numeric_type');
   late final _sqlite3_value_numeric_type = _sqlite3_value_numeric_typePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5448,9 +5442,9 @@
     );
   }
 
-  late final _sqlite3_value_nochangePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_nochange');
+  late final _sqlite3_value_nochangePtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_nochange');
   late final _sqlite3_value_nochange = _sqlite3_value_nochangePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5462,9 +5456,9 @@
     );
   }
 
-  late final _sqlite3_value_frombindPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_frombind');
+  late final _sqlite3_value_frombindPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_value>)>>(
+          'sqlite3_value_frombind');
   late final _sqlite3_value_frombind = _sqlite3_value_frombindPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5485,8 +5479,9 @@
   }
 
   late final _sqlite3_value_subtypePtr = _lookup<
-          ffi.NativeFunction<ffi.Uint32 Function(ffi.Pointer<sqlite3_value>)>>(
-      'sqlite3_value_subtype');
+      ffi.NativeFunction<
+          ffi.UnsignedInt Function(
+              ffi.Pointer<sqlite3_value>)>>('sqlite3_value_subtype');
   late final _sqlite3_value_subtype = _sqlite3_value_subtypePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_value>)>();
 
@@ -5585,7 +5580,7 @@
   late final _sqlite3_aggregate_contextPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_context>,
-              ffi.Int32)>>('sqlite3_aggregate_context');
+              ffi.Int)>>('sqlite3_aggregate_context');
   late final _sqlite3_aggregate_context =
       _sqlite3_aggregate_contextPtr.asFunction<
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_context>, int)>();
@@ -5708,7 +5703,7 @@
   late final _sqlite3_get_auxdataPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_context>, ffi.Int32)>>('sqlite3_get_auxdata');
+              ffi.Pointer<sqlite3_context>, ffi.Int)>>('sqlite3_get_auxdata');
   late final _sqlite3_get_auxdata = _sqlite3_get_auxdataPtr.asFunction<
       ffi.Pointer<ffi.Void> Function(ffi.Pointer<sqlite3_context>, int)>();
 
@@ -5731,7 +5726,7 @@
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -5909,7 +5904,7 @@
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -5974,7 +5969,7 @@
 
   void sqlite3_result_error(
     ffi.Pointer<sqlite3_context> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg1,
     int arg2,
   ) {
     return _sqlite3_result_error(
@@ -5986,11 +5981,11 @@
 
   late final _sqlite3_result_errorPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32)>>('sqlite3_result_error');
+          ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Char>,
+              ffi.Int)>>('sqlite3_result_error');
   late final _sqlite3_result_error = _sqlite3_result_errorPtr.asFunction<
       void Function(
-          ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Int8>, int)>();
+          ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Char>, int)>();
 
   void sqlite3_result_error16(
     ffi.Pointer<sqlite3_context> arg0,
@@ -6007,7 +6002,7 @@
   late final _sqlite3_result_error16Ptr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Void>,
-              ffi.Int32)>>('sqlite3_result_error16');
+              ffi.Int)>>('sqlite3_result_error16');
   late final _sqlite3_result_error16 = _sqlite3_result_error16Ptr.asFunction<
       void Function(
           ffi.Pointer<sqlite3_context>, ffi.Pointer<ffi.Void>, int)>();
@@ -6053,7 +6048,7 @@
   late final _sqlite3_result_error_codePtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_context>,
-              ffi.Int32)>>('sqlite3_result_error_code');
+              ffi.Int)>>('sqlite3_result_error_code');
   late final _sqlite3_result_error_code = _sqlite3_result_error_codePtr
       .asFunction<void Function(ffi.Pointer<sqlite3_context>, int)>();
 
@@ -6070,7 +6065,7 @@
   late final _sqlite3_result_intPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(
-              ffi.Pointer<sqlite3_context>, ffi.Int32)>>('sqlite3_result_int');
+              ffi.Pointer<sqlite3_context>, ffi.Int)>>('sqlite3_result_int');
   late final _sqlite3_result_int = _sqlite3_result_intPtr
       .asFunction<void Function(ffi.Pointer<sqlite3_context>, int)>();
 
@@ -6107,7 +6102,7 @@
 
   void sqlite3_result_text(
     ffi.Pointer<sqlite3_context> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg1,
     int arg2,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg3,
@@ -6124,8 +6119,8 @@
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -6133,14 +6128,14 @@
   late final _sqlite3_result_text = _sqlite3_result_textPtr.asFunction<
       void Function(
           ffi.Pointer<sqlite3_context>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>();
 
   void sqlite3_result_text64(
     ffi.Pointer<sqlite3_context> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg1,
     int arg2,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg3,
@@ -6159,15 +6154,15 @@
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               sqlite3_uint64,
               ffi.Pointer<
                   ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>,
-              ffi.Uint8)>>('sqlite3_result_text64');
+              ffi.UnsignedChar)>>('sqlite3_result_text64');
   late final _sqlite3_result_text64 = _sqlite3_result_text64Ptr.asFunction<
       void Function(
           ffi.Pointer<sqlite3_context>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           int,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>,
@@ -6193,7 +6188,7 @@
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -6226,7 +6221,7 @@
               ffi.Void Function(
                   ffi.Pointer<sqlite3_context>,
                   ffi.Pointer<ffi.Void>,
-                  ffi.Int32,
+                  ffi.Int,
                   ffi.Pointer<
                       ffi.NativeFunction<
                           ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>(
@@ -6259,7 +6254,7 @@
               ffi.Void Function(
                   ffi.Pointer<sqlite3_context>,
                   ffi.Pointer<ffi.Void>,
-                  ffi.Int32,
+                  ffi.Int,
                   ffi.Pointer<
                       ffi.NativeFunction<
                           ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>(
@@ -6293,7 +6288,7 @@
   void sqlite3_result_pointer(
     ffi.Pointer<sqlite3_context> arg0,
     ffi.Pointer<ffi.Void> arg1,
-    ffi.Pointer<ffi.Int8> arg2,
+    ffi.Pointer<ffi.Char> arg2,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         arg3,
   ) {
@@ -6310,7 +6305,7 @@
           ffi.Void Function(
               ffi.Pointer<sqlite3_context>,
               ffi.Pointer<ffi.Void>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
@@ -6319,7 +6314,7 @@
       void Function(
           ffi.Pointer<sqlite3_context>,
           ffi.Pointer<ffi.Void>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           ffi.Pointer<
               ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>();
 
@@ -6336,7 +6331,7 @@
   late final _sqlite3_result_zeroblobPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_context>,
-              ffi.Int32)>>('sqlite3_result_zeroblob');
+              ffi.Int)>>('sqlite3_result_zeroblob');
   late final _sqlite3_result_zeroblob = _sqlite3_result_zeroblobPtr
       .asFunction<void Function(ffi.Pointer<sqlite3_context>, int)>();
 
@@ -6352,7 +6347,7 @@
 
   late final _sqlite3_result_zeroblob64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_context>,
+          ffi.Int Function(ffi.Pointer<sqlite3_context>,
               sqlite3_uint64)>>('sqlite3_result_zeroblob64');
   late final _sqlite3_result_zeroblob64 = _sqlite3_result_zeroblob64Ptr
       .asFunction<int Function(ffi.Pointer<sqlite3_context>, int)>();
@@ -6380,7 +6375,7 @@
   late final _sqlite3_result_subtypePtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_context>,
-              ffi.Uint32)>>('sqlite3_result_subtype');
+              ffi.UnsignedInt)>>('sqlite3_result_subtype');
   late final _sqlite3_result_subtype = _sqlite3_result_subtypePtr
       .asFunction<void Function(ffi.Pointer<sqlite3_context>, int)>();
 
@@ -6465,13 +6460,13 @@
   /// See also:  [sqlite3_collation_needed()] and [sqlite3_collation_needed16()].
   int sqlite3_create_collation(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zName,
+    ffi.Pointer<ffi.Char> zName,
     int eTextRep,
     ffi.Pointer<ffi.Void> pArg,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32,
-                    ffi.Pointer<ffi.Void>, ffi.Int32, ffi.Pointer<ffi.Void>)>>
+                ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int,
+                    ffi.Pointer<ffi.Void>, ffi.Int, ffi.Pointer<ffi.Void>)>>
         xCompare,
   ) {
     return _sqlite3_create_collation(
@@ -6485,45 +6480,45 @@
 
   late final _sqlite3_create_collationPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Int32,
+                  ffi.Pointer<ffi.Char>,
+                  ffi.Int,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
                       ffi.NativeFunction<
-                          ffi.Int32 Function(
+                          ffi.Int Function(
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>)>>)>>(
       'sqlite3_create_collation');
   late final _sqlite3_create_collation =
       _sqlite3_create_collationPtr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>)>>)>();
 
   int sqlite3_create_collation_v2(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zName,
+    ffi.Pointer<ffi.Char> zName,
     int eTextRep,
     ffi.Pointer<ffi.Void> pArg,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32,
-                    ffi.Pointer<ffi.Void>, ffi.Int32, ffi.Pointer<ffi.Void>)>>
+                ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int,
+                    ffi.Pointer<ffi.Void>, ffi.Int, ffi.Pointer<ffi.Void>)>>
         xCompare,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         xDestroy,
@@ -6540,18 +6535,18 @@
 
   late final _sqlite3_create_collation_v2Ptr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Int32,
+                  ffi.Pointer<ffi.Char>,
+                  ffi.Int,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
                       ffi.NativeFunction<
-                          ffi.Int32 Function(
+                          ffi.Int Function(
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>)>>,
                   ffi.Pointer<
                       ffi.NativeFunction<
@@ -6561,16 +6556,16 @@
       _sqlite3_create_collation_v2Ptr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -6583,8 +6578,8 @@
     ffi.Pointer<ffi.Void> pArg,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Int32,
-                    ffi.Pointer<ffi.Void>, ffi.Int32, ffi.Pointer<ffi.Void>)>>
+                ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Int,
+                    ffi.Pointer<ffi.Void>, ffi.Int, ffi.Pointer<ffi.Void>)>>
         xCompare,
   ) {
     return _sqlite3_create_collation16(
@@ -6598,18 +6593,18 @@
 
   late final _sqlite3_create_collation16Ptr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
                   ffi.Pointer<ffi.Void>,
-                  ffi.Int32,
+                  ffi.Int,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
                       ffi.NativeFunction<
-                          ffi.Int32 Function(
+                          ffi.Int Function(
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>)>>)>>(
       'sqlite3_create_collation16');
   late final _sqlite3_create_collation16 =
@@ -6621,11 +6616,11 @@
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>)>>)>();
 
   /// CAPI3REF: Collation Needed Callbacks
@@ -6659,7 +6654,7 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<sqlite3>,
-                    ffi.Int32, ffi.Pointer<ffi.Int8>)>>
+                    ffi.Int, ffi.Pointer<ffi.Char>)>>
         arg2,
   ) {
     return _sqlite3_collation_needed(
@@ -6671,7 +6666,7 @@
 
   late final _sqlite3_collation_neededPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
@@ -6679,8 +6674,8 @@
                           ffi.Void Function(
                               ffi.Pointer<ffi.Void>,
                               ffi.Pointer<sqlite3>,
-                              ffi.Int32,
-                              ffi.Pointer<ffi.Int8>)>>)>>(
+                              ffi.Int,
+                              ffi.Pointer<ffi.Char>)>>)>>(
       'sqlite3_collation_needed');
   late final _sqlite3_collation_needed =
       _sqlite3_collation_neededPtr.asFunction<
@@ -6692,8 +6687,8 @@
                       ffi.Void Function(
                           ffi.Pointer<ffi.Void>,
                           ffi.Pointer<sqlite3>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Int8>)>>)>();
+                          ffi.Int,
+                          ffi.Pointer<ffi.Char>)>>)>();
 
   int sqlite3_collation_needed16(
     ffi.Pointer<sqlite3> arg0,
@@ -6701,7 +6696,7 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(ffi.Pointer<ffi.Void>, ffi.Pointer<sqlite3>,
-                    ffi.Int32, ffi.Pointer<ffi.Void>)>>
+                    ffi.Int, ffi.Pointer<ffi.Void>)>>
         arg2,
   ) {
     return _sqlite3_collation_needed16(
@@ -6713,7 +6708,7 @@
 
   late final _sqlite3_collation_needed16Ptr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
@@ -6721,7 +6716,7 @@
                           ffi.Void Function(
                               ffi.Pointer<ffi.Void>,
                               ffi.Pointer<sqlite3>,
-                              ffi.Int32,
+                              ffi.Int,
                               ffi.Pointer<ffi.Void>)>>)>>(
       'sqlite3_collation_needed16');
   late final _sqlite3_collation_needed16 =
@@ -6734,7 +6729,7 @@
                       ffi.Void Function(
                           ffi.Pointer<ffi.Void>,
                           ffi.Pointer<sqlite3>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<ffi.Void>)>>)>();
 
   /// CAPI3REF: Suspend Execution For A Short Time
@@ -6761,8 +6756,7 @@
   }
 
   late final _sqlite3_sleepPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
-          'sqlite3_sleep');
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int)>>('sqlite3_sleep');
   late final _sqlite3_sleep = _sqlite3_sleepPtr.asFunction<int Function(int)>();
 
   /// CAPI3REF: Name Of The Folder Holding Temporary Files
@@ -6819,13 +6813,13 @@
   /// &nbsp;     NULL, NULL);
   /// sqlite3_temp_directory = sqlite3_mprintf("%s", zPathBuf);
   /// </pre></blockquote>
-  late final ffi.Pointer<ffi.Pointer<ffi.Int8>> _sqlite3_temp_directory =
-      _lookup<ffi.Pointer<ffi.Int8>>('sqlite3_temp_directory');
+  late final ffi.Pointer<ffi.Pointer<ffi.Char>> _sqlite3_temp_directory =
+      _lookup<ffi.Pointer<ffi.Char>>('sqlite3_temp_directory');
 
-  ffi.Pointer<ffi.Int8> get sqlite3_temp_directory =>
+  ffi.Pointer<ffi.Char> get sqlite3_temp_directory =>
       _sqlite3_temp_directory.value;
 
-  set sqlite3_temp_directory(ffi.Pointer<ffi.Int8> value) =>
+  set sqlite3_temp_directory(ffi.Pointer<ffi.Char> value) =>
       _sqlite3_temp_directory.value = value;
 
   /// CAPI3REF: Name Of The Folder Holding Database Files
@@ -6861,13 +6855,13 @@
   /// Hence, if this variable is modified directly, either it should be
   /// made NULL or made to point to memory obtained from [sqlite3_malloc]
   /// or else the use of the [data_store_directory pragma] should be avoided.
-  late final ffi.Pointer<ffi.Pointer<ffi.Int8>> _sqlite3_data_directory =
-      _lookup<ffi.Pointer<ffi.Int8>>('sqlite3_data_directory');
+  late final ffi.Pointer<ffi.Pointer<ffi.Char>> _sqlite3_data_directory =
+      _lookup<ffi.Pointer<ffi.Char>>('sqlite3_data_directory');
 
-  ffi.Pointer<ffi.Int8> get sqlite3_data_directory =>
+  ffi.Pointer<ffi.Char> get sqlite3_data_directory =>
       _sqlite3_data_directory.value;
 
-  set sqlite3_data_directory(ffi.Pointer<ffi.Int8> value) =>
+  set sqlite3_data_directory(ffi.Pointer<ffi.Char> value) =>
       _sqlite3_data_directory.value = value;
 
   /// CAPI3REF: Win32 Specific Interface
@@ -6899,14 +6893,14 @@
 
   late final _sqlite3_win32_set_directoryPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Uint64,
+          ffi.Int Function(ffi.UnsignedLong,
               ffi.Pointer<ffi.Void>)>>('sqlite3_win32_set_directory');
   late final _sqlite3_win32_set_directory = _sqlite3_win32_set_directoryPtr
       .asFunction<int Function(int, ffi.Pointer<ffi.Void>)>();
 
   int sqlite3_win32_set_directory8(
     int type,
-    ffi.Pointer<ffi.Int8> zValue,
+    ffi.Pointer<ffi.Char> zValue,
   ) {
     return _sqlite3_win32_set_directory8(
       type,
@@ -6916,10 +6910,10 @@
 
   late final _sqlite3_win32_set_directory8Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Uint64,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_win32_set_directory8');
+          ffi.Int Function(ffi.UnsignedLong,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_win32_set_directory8');
   late final _sqlite3_win32_set_directory8 = _sqlite3_win32_set_directory8Ptr
-      .asFunction<int Function(int, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(int, ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_win32_set_directory16(
     int type,
@@ -6933,7 +6927,7 @@
 
   late final _sqlite3_win32_set_directory16Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Uint64,
+          ffi.Int Function(ffi.UnsignedLong,
               ffi.Pointer<ffi.Void>)>>('sqlite3_win32_set_directory16');
   late final _sqlite3_win32_set_directory16 = _sqlite3_win32_set_directory16Ptr
       .asFunction<int Function(int, ffi.Pointer<ffi.Void>)>();
@@ -6967,7 +6961,7 @@
   }
 
   late final _sqlite3_get_autocommitPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_get_autocommit');
   late final _sqlite3_get_autocommit = _sqlite3_get_autocommitPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -7024,9 +7018,9 @@
   /// <li> [sqlite3_filename_journal()]
   /// <li> [sqlite3_filename_wal()]
   /// </ul>
-  ffi.Pointer<ffi.Int8> sqlite3_db_filename(
+  ffi.Pointer<ffi.Char> sqlite3_db_filename(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDbName,
+    ffi.Pointer<ffi.Char> zDbName,
   ) {
     return _sqlite3_db_filename(
       db,
@@ -7036,11 +7030,11 @@
 
   late final _sqlite3_db_filenamePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_db_filename');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_db_filename');
   late final _sqlite3_db_filename = _sqlite3_db_filenamePtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(
-          ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Determine if a database is read-only
   /// METHOD: sqlite3
@@ -7050,7 +7044,7 @@
   /// the name of a database on connection D.
   int sqlite3_db_readonly(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDbName,
+    ffi.Pointer<ffi.Char> zDbName,
   ) {
     return _sqlite3_db_readonly(
       db,
@@ -7060,10 +7054,10 @@
 
   late final _sqlite3_db_readonlyPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_db_readonly');
+          ffi.Int Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_db_readonly');
   late final _sqlite3_db_readonly = _sqlite3_db_readonlyPtr
-      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Find the next prepared statement
   /// METHOD: sqlite3
@@ -7142,7 +7136,7 @@
   /// See also the [sqlite3_update_hook()] interface.
   ffi.Pointer<ffi.Void> sqlite3_commit_hook(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>
+    ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
         arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
@@ -7158,14 +7152,13 @@
           ffi.Pointer<ffi.Void> Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<
-                  ffi.NativeFunction<
-                      ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>,
+                  ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_commit_hook');
   late final _sqlite3_commit_hook = _sqlite3_commit_hookPtr.asFunction<
       ffi.Pointer<ffi.Void> Function(
           ffi.Pointer<sqlite3>,
           ffi.Pointer<
-              ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>>,
+              ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>,
           ffi.Pointer<ffi.Void>)>();
 
   ffi.Pointer<ffi.Void> sqlite3_rollback_hook(
@@ -7248,9 +7241,9 @@
             ffi.NativeFunction<
                 ffi.Void Function(
                     ffi.Pointer<ffi.Void>,
-                    ffi.Int32,
-                    ffi.Pointer<ffi.Int8>,
-                    ffi.Pointer<ffi.Int8>,
+                    ffi.Int,
+                    ffi.Pointer<ffi.Char>,
+                    ffi.Pointer<ffi.Char>,
                     sqlite3_int64)>>
         arg1,
     ffi.Pointer<ffi.Void> arg2,
@@ -7270,9 +7263,9 @@
                   ffi.NativeFunction<
                       ffi.Void Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Pointer<ffi.Int8>,
+                          ffi.Int,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Pointer<ffi.Char>,
                           sqlite3_int64)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_update_hook');
   late final _sqlite3_update_hook = _sqlite3_update_hookPtr.asFunction<
@@ -7282,9 +7275,9 @@
               ffi.NativeFunction<
                   ffi.Void Function(
                       ffi.Pointer<ffi.Void>,
-                      ffi.Int32,
-                      ffi.Pointer<ffi.Int8>,
-                      ffi.Pointer<ffi.Int8>,
+                      ffi.Int,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Pointer<ffi.Char>,
                       sqlite3_int64)>>,
           ffi.Pointer<ffi.Void>)>();
 
@@ -7334,7 +7327,7 @@
   }
 
   late final _sqlite3_enable_shared_cachePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int)>>(
           'sqlite3_enable_shared_cache');
   late final _sqlite3_enable_shared_cache =
       _sqlite3_enable_shared_cachePtr.asFunction<int Function(int)>();
@@ -7360,7 +7353,7 @@
   }
 
   late final _sqlite3_release_memoryPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int)>>(
           'sqlite3_release_memory');
   late final _sqlite3_release_memory =
       _sqlite3_release_memoryPtr.asFunction<int Function(int)>();
@@ -7384,7 +7377,7 @@
   }
 
   late final _sqlite3_db_release_memoryPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_db_release_memory');
   late final _sqlite3_db_release_memory = _sqlite3_db_release_memoryPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -7495,7 +7488,7 @@
   }
 
   late final _sqlite3_soft_heap_limitPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int)>>(
           'sqlite3_soft_heap_limit');
   late final _sqlite3_soft_heap_limit =
       _sqlite3_soft_heap_limitPtr.asFunction<void Function(int)>();
@@ -7569,14 +7562,14 @@
   /// any errors are encountered while loading the schema.
   int sqlite3_table_column_metadata(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDbName,
-    ffi.Pointer<ffi.Int8> zTableName,
-    ffi.Pointer<ffi.Int8> zColumnName,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzDataType,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzCollSeq,
-    ffi.Pointer<ffi.Int32> pNotNull,
-    ffi.Pointer<ffi.Int32> pPrimaryKey,
-    ffi.Pointer<ffi.Int32> pAutoinc,
+    ffi.Pointer<ffi.Char> zDbName,
+    ffi.Pointer<ffi.Char> zTableName,
+    ffi.Pointer<ffi.Char> zColumnName,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzDataType,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzCollSeq,
+    ffi.Pointer<ffi.Int> pNotNull,
+    ffi.Pointer<ffi.Int> pPrimaryKey,
+    ffi.Pointer<ffi.Int> pAutoinc,
   ) {
     return _sqlite3_table_column_metadata(
       db,
@@ -7593,28 +7586,28 @@
 
   late final _sqlite3_table_column_metadataPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>>('sqlite3_table_column_metadata');
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>>('sqlite3_table_column_metadata');
   late final _sqlite3_table_column_metadata =
       _sqlite3_table_column_metadataPtr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>();
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>();
 
   /// CAPI3REF: Load An Extension
   /// METHOD: sqlite3
@@ -7660,9 +7653,9 @@
   /// See also the [load_extension() SQL function].
   int sqlite3_load_extension(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zFile,
-    ffi.Pointer<ffi.Int8> zProc,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> pzErrMsg,
+    ffi.Pointer<ffi.Char> zFile,
+    ffi.Pointer<ffi.Char> zProc,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> pzErrMsg,
   ) {
     return _sqlite3_load_extension(
       db,
@@ -7674,14 +7667,14 @@
 
   late final _sqlite3_load_extensionPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_load_extension');
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_load_extension');
   late final _sqlite3_load_extension = _sqlite3_load_extensionPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   /// CAPI3REF: Enable Or Disable Extension Loading
   /// METHOD: sqlite3
@@ -7717,9 +7710,8 @@
   }
 
   late final _sqlite3_enable_load_extensionPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Int32)>>('sqlite3_enable_load_extension');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_enable_load_extension');
   late final _sqlite3_enable_load_extension = _sqlite3_enable_load_extensionPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -7767,7 +7759,7 @@
 
   late final _sqlite3_auto_extensionPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>>(
       'sqlite3_auto_extension');
   late final _sqlite3_auto_extension = _sqlite3_auto_extensionPtr.asFunction<
@@ -7791,7 +7783,7 @@
 
   late final _sqlite3_cancel_auto_extensionPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>>(
       'sqlite3_cancel_auto_extension');
   late final _sqlite3_cancel_auto_extension =
@@ -7844,7 +7836,7 @@
   /// See also: [sqlite3_drop_modules()]
   int sqlite3_create_module(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zName,
+    ffi.Pointer<ffi.Char> zName,
     ffi.Pointer<sqlite3_module> p,
     ffi.Pointer<ffi.Void> pClientData,
   ) {
@@ -7858,18 +7850,18 @@
 
   late final _sqlite3_create_modulePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<sqlite3_module>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_create_module');
   late final _sqlite3_create_module = _sqlite3_create_modulePtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
           ffi.Pointer<sqlite3_module>, ffi.Pointer<ffi.Void>)>();
 
   int sqlite3_create_module_v2(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zName,
+    ffi.Pointer<ffi.Char> zName,
     ffi.Pointer<sqlite3_module> p,
     ffi.Pointer<ffi.Void> pClientData,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
@@ -7886,9 +7878,9 @@
 
   late final _sqlite3_create_module_v2Ptr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3>,
-                  ffi.Pointer<ffi.Int8>,
+                  ffi.Pointer<ffi.Char>,
                   ffi.Pointer<sqlite3_module>,
                   ffi.Pointer<ffi.Void>,
                   ffi.Pointer<
@@ -7899,7 +7891,7 @@
       _sqlite3_create_module_v2Ptr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<sqlite3_module>,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
@@ -7918,7 +7910,7 @@
   /// See also: [sqlite3_create_module()]
   int sqlite3_drop_modules(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> azKeep,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> azKeep,
   ) {
     return _sqlite3_drop_modules(
       db,
@@ -7928,10 +7920,10 @@
 
   late final _sqlite3_drop_modulesPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>>('sqlite3_drop_modules');
+          ffi.Int Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>>('sqlite3_drop_modules');
   late final _sqlite3_drop_modules = _sqlite3_drop_modulesPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Pointer<ffi.Int8>>)>();
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Pointer<ffi.Char>>)>();
 
   /// CAPI3REF: Declare The Schema Of A Virtual Table
   ///
@@ -7941,7 +7933,7 @@
   /// the virtual tables they implement.
   int sqlite3_declare_vtab(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zSQL,
+    ffi.Pointer<ffi.Char> zSQL,
   ) {
     return _sqlite3_declare_vtab(
       arg0,
@@ -7951,10 +7943,10 @@
 
   late final _sqlite3_declare_vtabPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_declare_vtab');
+          ffi.Int Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_declare_vtab');
   late final _sqlite3_declare_vtab = _sqlite3_declare_vtabPtr
-      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Overload A Function For A Virtual Table
   /// METHOD: sqlite3
@@ -7973,7 +7965,7 @@
   /// by a [virtual table].
   int sqlite3_overload_function(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zFuncName,
+    ffi.Pointer<ffi.Char> zFuncName,
     int nArg,
   ) {
     return _sqlite3_overload_function(
@@ -7985,11 +7977,11 @@
 
   late final _sqlite3_overload_functionPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32)>>('sqlite3_overload_function');
+          ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
+              ffi.Int)>>('sqlite3_overload_function');
   late final _sqlite3_overload_function =
       _sqlite3_overload_functionPtr.asFunction<
-          int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>, int)>();
+          int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>, int)>();
 
   /// CAPI3REF: Open A BLOB For Incremental I/O
   /// METHOD: sqlite3
@@ -8074,9 +8066,9 @@
   /// [sqlite3_blob_bytes()], [sqlite3_blob_write()].
   int sqlite3_blob_open(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zDb,
-    ffi.Pointer<ffi.Int8> zTable,
-    ffi.Pointer<ffi.Int8> zColumn,
+    ffi.Pointer<ffi.Char> zDb,
+    ffi.Pointer<ffi.Char> zTable,
+    ffi.Pointer<ffi.Char> zColumn,
     int iRow,
     int flags,
     ffi.Pointer<ffi.Pointer<sqlite3_blob>> ppBlob,
@@ -8094,20 +8086,20 @@
 
   late final _sqlite3_blob_openPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>,
               sqlite3_int64,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_blob>>)>>('sqlite3_blob_open');
   late final _sqlite3_blob_open = _sqlite3_blob_openPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.Char>,
           int,
           int,
           ffi.Pointer<ffi.Pointer<sqlite3_blob>>)>();
@@ -8145,7 +8137,7 @@
 
   late final _sqlite3_blob_reopenPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_blob>,
+          ffi.Int Function(ffi.Pointer<sqlite3_blob>,
               sqlite3_int64)>>('sqlite3_blob_reopen');
   late final _sqlite3_blob_reopen = _sqlite3_blob_reopenPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_blob>, int)>();
@@ -8177,9 +8169,9 @@
     );
   }
 
-  late final _sqlite3_blob_closePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_blob>)>>(
-      'sqlite3_blob_close');
+  late final _sqlite3_blob_closePtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_blob>)>>(
+          'sqlite3_blob_close');
   late final _sqlite3_blob_close = _sqlite3_blob_closePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_blob>)>();
 
@@ -8203,9 +8195,9 @@
     );
   }
 
-  late final _sqlite3_blob_bytesPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_blob>)>>(
-      'sqlite3_blob_bytes');
+  late final _sqlite3_blob_bytesPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_blob>)>>(
+          'sqlite3_blob_bytes');
   late final _sqlite3_blob_bytes = _sqlite3_blob_bytesPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_blob>)>();
 
@@ -8250,8 +8242,8 @@
 
   late final _sqlite3_blob_readPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>,
-              ffi.Int32, ffi.Int32)>>('sqlite3_blob_read');
+          ffi.Int Function(ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>,
+              ffi.Int, ffi.Int)>>('sqlite3_blob_read');
   late final _sqlite3_blob_read = _sqlite3_blob_readPtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>, int, int)>();
@@ -8310,8 +8302,8 @@
 
   late final _sqlite3_blob_writePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>,
-              ffi.Int32, ffi.Int32)>>('sqlite3_blob_write');
+          ffi.Int Function(ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>,
+              ffi.Int, ffi.Int)>>('sqlite3_blob_write');
   late final _sqlite3_blob_write = _sqlite3_blob_writePtr.asFunction<
       int Function(
           ffi.Pointer<sqlite3_blob>, ffi.Pointer<ffi.Void>, int, int)>();
@@ -8344,7 +8336,7 @@
   /// ^(If the default VFS is unregistered, another VFS is chosen as
   /// the default.  The choice for the new VFS is arbitrary.)^
   ffi.Pointer<sqlite3_vfs> sqlite3_vfs_find(
-    ffi.Pointer<ffi.Int8> zVfsName,
+    ffi.Pointer<ffi.Char> zVfsName,
   ) {
     return _sqlite3_vfs_find(
       zVfsName,
@@ -8354,9 +8346,9 @@
   late final _sqlite3_vfs_findPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_vfs> Function(
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_vfs_find');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_vfs_find');
   late final _sqlite3_vfs_find = _sqlite3_vfs_findPtr
-      .asFunction<ffi.Pointer<sqlite3_vfs> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<sqlite3_vfs> Function(ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_vfs_register(
     ffi.Pointer<sqlite3_vfs> arg0,
@@ -8370,8 +8362,8 @@
 
   late final _sqlite3_vfs_registerPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_vfs>, ffi.Int32)>>('sqlite3_vfs_register');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_vfs>, ffi.Int)>>('sqlite3_vfs_register');
   late final _sqlite3_vfs_register = _sqlite3_vfs_registerPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_vfs>, int)>();
 
@@ -8384,7 +8376,7 @@
   }
 
   late final _sqlite3_vfs_unregisterPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vfs>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vfs>)>>(
           'sqlite3_vfs_unregister');
   late final _sqlite3_vfs_unregister = _sqlite3_vfs_unregisterPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_vfs>)>();
@@ -8509,9 +8501,9 @@
     );
   }
 
-  late final _sqlite3_mutex_allocPtr = _lookup<
-          ffi.NativeFunction<ffi.Pointer<sqlite3_mutex> Function(ffi.Int32)>>(
-      'sqlite3_mutex_alloc');
+  late final _sqlite3_mutex_allocPtr =
+      _lookup<ffi.NativeFunction<ffi.Pointer<sqlite3_mutex> Function(ffi.Int)>>(
+          'sqlite3_mutex_alloc');
   late final _sqlite3_mutex_alloc = _sqlite3_mutex_allocPtr
       .asFunction<ffi.Pointer<sqlite3_mutex> Function(int)>();
 
@@ -8551,9 +8543,9 @@
     );
   }
 
-  late final _sqlite3_mutex_tryPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>(
-      'sqlite3_mutex_try');
+  late final _sqlite3_mutex_tryPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>(
+          'sqlite3_mutex_try');
   late final _sqlite3_mutex_try = _sqlite3_mutex_tryPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_mutex>)>();
 
@@ -8579,9 +8571,9 @@
     );
   }
 
-  late final _sqlite3_mutex_heldPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>(
-      'sqlite3_mutex_held');
+  late final _sqlite3_mutex_heldPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>(
+          'sqlite3_mutex_held');
   late final _sqlite3_mutex_held = _sqlite3_mutex_heldPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_mutex>)>();
 
@@ -8593,9 +8585,9 @@
     );
   }
 
-  late final _sqlite3_mutex_notheldPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>(
-      'sqlite3_mutex_notheld');
+  late final _sqlite3_mutex_notheldPtr =
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>(
+          'sqlite3_mutex_notheld');
   late final _sqlite3_mutex_notheld = _sqlite3_mutex_notheldPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_mutex>)>();
 
@@ -8663,7 +8655,7 @@
   /// See also: [file control opcodes]
   int sqlite3_file_control(
     ffi.Pointer<sqlite3> arg0,
-    ffi.Pointer<ffi.Int8> zDbName,
+    ffi.Pointer<ffi.Char> zDbName,
     int op,
     ffi.Pointer<ffi.Void> arg3,
   ) {
@@ -8677,10 +8669,10 @@
 
   late final _sqlite3_file_controlPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, ffi.Pointer<ffi.Void>)>>('sqlite3_file_control');
+          ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>, ffi.Int,
+              ffi.Pointer<ffi.Void>)>>('sqlite3_file_control');
   late final _sqlite3_file_control = _sqlite3_file_controlPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>, int,
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>, int,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: Testing Interface
@@ -8707,7 +8699,7 @@
   }
 
   late final _sqlite3_test_controlPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int)>>(
           'sqlite3_test_control');
   late final _sqlite3_test_control =
       _sqlite3_test_controlPtr.asFunction<int Function(int)>();
@@ -8762,15 +8754,14 @@
   }
 
   late final _sqlite3_keyword_countPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function()>>(
-          'sqlite3_keyword_count');
+      _lookup<ffi.NativeFunction<ffi.Int Function()>>('sqlite3_keyword_count');
   late final _sqlite3_keyword_count =
       _sqlite3_keyword_countPtr.asFunction<int Function()>();
 
   int sqlite3_keyword_name(
     int arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> arg1,
-    ffi.Pointer<ffi.Int32> arg2,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> arg1,
+    ffi.Pointer<ffi.Int> arg2,
   ) {
     return _sqlite3_keyword_name(
       arg0,
@@ -8781,14 +8772,14 @@
 
   late final _sqlite3_keyword_namePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Int32, ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Int32>)>>('sqlite3_keyword_name');
+          ffi.Int Function(ffi.Int, ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Int>)>>('sqlite3_keyword_name');
   late final _sqlite3_keyword_name = _sqlite3_keyword_namePtr.asFunction<
       int Function(
-          int, ffi.Pointer<ffi.Pointer<ffi.Int8>>, ffi.Pointer<ffi.Int32>)>();
+          int, ffi.Pointer<ffi.Pointer<ffi.Char>>, ffi.Pointer<ffi.Int>)>();
 
   int sqlite3_keyword_check(
-    ffi.Pointer<ffi.Int8> arg0,
+    ffi.Pointer<ffi.Char> arg0,
     int arg1,
   ) {
     return _sqlite3_keyword_check(
@@ -8798,11 +8789,10 @@
   }
 
   late final _sqlite3_keyword_checkPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<ffi.Int8>, ffi.Int32)>>('sqlite3_keyword_check');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Char>, ffi.Int)>>(
+      'sqlite3_keyword_check');
   late final _sqlite3_keyword_check = _sqlite3_keyword_checkPtr
-      .asFunction<int Function(ffi.Pointer<ffi.Int8>, int)>();
+      .asFunction<int Function(ffi.Pointer<ffi.Char>, int)>();
 
   /// CAPI3REF: Create A New Dynamic String Object
   /// CONSTRUCTOR: sqlite3_str
@@ -8853,7 +8843,7 @@
   /// errors were encountered during construction of the string.  ^The
   /// [sqlite3_str_finish(X)] interface will also return a NULL pointer if the
   /// string in [sqlite3_str] object X is zero bytes long.
-  ffi.Pointer<ffi.Int8> sqlite3_str_finish(
+  ffi.Pointer<ffi.Char> sqlite3_str_finish(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
     return _sqlite3_str_finish(
@@ -8863,10 +8853,10 @@
 
   late final _sqlite3_str_finishPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3_str>)>>('sqlite3_str_finish');
   late final _sqlite3_str_finish = _sqlite3_str_finishPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_str>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_str>)>();
 
   /// CAPI3REF: Add Content To A Dynamic String
   /// METHOD: sqlite3_str
@@ -8900,7 +8890,7 @@
   /// subsequent call to [sqlite3_str_errcode(X)].
   void sqlite3_str_appendf(
     ffi.Pointer<sqlite3_str> arg0,
-    ffi.Pointer<ffi.Int8> zFormat,
+    ffi.Pointer<ffi.Char> zFormat,
   ) {
     return _sqlite3_str_appendf(
       arg0,
@@ -8911,13 +8901,13 @@
   late final _sqlite3_str_appendfPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_str>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_str_appendf');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_str_appendf');
   late final _sqlite3_str_appendf = _sqlite3_str_appendfPtr.asFunction<
-      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Int8>)>();
+      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Char>)>();
 
   void sqlite3_str_append(
     ffi.Pointer<sqlite3_str> arg0,
-    ffi.Pointer<ffi.Int8> zIn,
+    ffi.Pointer<ffi.Char> zIn,
     int N,
   ) {
     return _sqlite3_str_append(
@@ -8929,14 +8919,14 @@
 
   late final _sqlite3_str_appendPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32)>>('sqlite3_str_append');
+          ffi.Void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Char>,
+              ffi.Int)>>('sqlite3_str_append');
   late final _sqlite3_str_append = _sqlite3_str_appendPtr.asFunction<
-      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Int8>, int)>();
+      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Char>, int)>();
 
   void sqlite3_str_appendall(
     ffi.Pointer<sqlite3_str> arg0,
-    ffi.Pointer<ffi.Int8> zIn,
+    ffi.Pointer<ffi.Char> zIn,
   ) {
     return _sqlite3_str_appendall(
       arg0,
@@ -8947,9 +8937,9 @@
   late final _sqlite3_str_appendallPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_str>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_str_appendall');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_str_appendall');
   late final _sqlite3_str_appendall = _sqlite3_str_appendallPtr.asFunction<
-      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Int8>)>();
+      void Function(ffi.Pointer<sqlite3_str>, ffi.Pointer<ffi.Char>)>();
 
   void sqlite3_str_appendchar(
     ffi.Pointer<sqlite3_str> arg0,
@@ -8965,8 +8955,8 @@
 
   late final _sqlite3_str_appendcharPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<sqlite3_str>, ffi.Int32,
-              ffi.Int8)>>('sqlite3_str_appendchar');
+          ffi.Void Function(ffi.Pointer<sqlite3_str>, ffi.Int,
+              ffi.Char)>>('sqlite3_str_appendchar');
   late final _sqlite3_str_appendchar = _sqlite3_str_appendcharPtr
       .asFunction<void Function(ffi.Pointer<sqlite3_str>, int, int)>();
 
@@ -9020,7 +9010,7 @@
   }
 
   late final _sqlite3_str_errcodePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_str>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_str>)>>(
           'sqlite3_str_errcode');
   late final _sqlite3_str_errcode = _sqlite3_str_errcodePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_str>)>();
@@ -9034,12 +9024,12 @@
   }
 
   late final _sqlite3_str_lengthPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_str>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_str>)>>(
           'sqlite3_str_length');
   late final _sqlite3_str_length = _sqlite3_str_lengthPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_str>)>();
 
-  ffi.Pointer<ffi.Int8> sqlite3_str_value(
+  ffi.Pointer<ffi.Char> sqlite3_str_value(
     ffi.Pointer<sqlite3_str> arg0,
   ) {
     return _sqlite3_str_value(
@@ -9049,10 +9039,10 @@
 
   late final _sqlite3_str_valuePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<sqlite3_str>)>>('sqlite3_str_value');
   late final _sqlite3_str_value = _sqlite3_str_valuePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_str>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_str>)>();
 
   /// CAPI3REF: SQLite Runtime Status
   ///
@@ -9080,8 +9070,8 @@
   /// See also: [sqlite3_db_status()]
   int sqlite3_status(
     int op,
-    ffi.Pointer<ffi.Int32> pCurrent,
-    ffi.Pointer<ffi.Int32> pHighwater,
+    ffi.Pointer<ffi.Int> pCurrent,
+    ffi.Pointer<ffi.Int> pHighwater,
     int resetFlag,
   ) {
     return _sqlite3_status(
@@ -9094,10 +9084,10 @@
 
   late final _sqlite3_statusPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Int32, ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>, ffi.Int32)>>('sqlite3_status');
+          ffi.Int Function(ffi.Int, ffi.Pointer<ffi.Int>, ffi.Pointer<ffi.Int>,
+              ffi.Int)>>('sqlite3_status');
   late final _sqlite3_status = _sqlite3_statusPtr.asFunction<
-      int Function(int, ffi.Pointer<ffi.Int32>, ffi.Pointer<ffi.Int32>, int)>();
+      int Function(int, ffi.Pointer<ffi.Int>, ffi.Pointer<ffi.Int>, int)>();
 
   int sqlite3_status64(
     int op,
@@ -9115,8 +9105,8 @@
 
   late final _sqlite3_status64Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Int32, ffi.Pointer<sqlite3_int64>,
-              ffi.Pointer<sqlite3_int64>, ffi.Int32)>>('sqlite3_status64');
+          ffi.Int Function(ffi.Int, ffi.Pointer<sqlite3_int64>,
+              ffi.Pointer<sqlite3_int64>, ffi.Int)>>('sqlite3_status64');
   late final _sqlite3_status64 = _sqlite3_status64Ptr.asFunction<
       int Function(
           int, ffi.Pointer<sqlite3_int64>, ffi.Pointer<sqlite3_int64>, int)>();
@@ -9145,8 +9135,8 @@
   int sqlite3_db_status(
     ffi.Pointer<sqlite3> arg0,
     int op,
-    ffi.Pointer<ffi.Int32> pCur,
-    ffi.Pointer<ffi.Int32> pHiwtr,
+    ffi.Pointer<ffi.Int> pCur,
+    ffi.Pointer<ffi.Int> pHiwtr,
     int resetFlg,
   ) {
     return _sqlite3_db_status(
@@ -9160,15 +9150,11 @@
 
   late final _sqlite3_db_statusPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Int32)>>('sqlite3_db_status');
+          ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int, ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>, ffi.Int)>>('sqlite3_db_status');
   late final _sqlite3_db_status = _sqlite3_db_statusPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, int, ffi.Pointer<ffi.Int32>,
-          ffi.Pointer<ffi.Int32>, int)>();
+      int Function(ffi.Pointer<sqlite3>, int, ffi.Pointer<ffi.Int>,
+          ffi.Pointer<ffi.Int>, int)>();
 
   /// CAPI3REF: Prepared Statement Status
   /// METHOD: sqlite3_stmt
@@ -9206,8 +9192,8 @@
 
   late final _sqlite3_stmt_statusPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32,
-              ffi.Int32)>>('sqlite3_stmt_status');
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int,
+              ffi.Int)>>('sqlite3_stmt_status');
   late final _sqlite3_stmt_status = _sqlite3_stmt_statusPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_stmt>, int, int)>();
 
@@ -9397,9 +9383,9 @@
   /// possible that they return invalid values.
   ffi.Pointer<sqlite3_backup> sqlite3_backup_init(
     ffi.Pointer<sqlite3> pDest,
-    ffi.Pointer<ffi.Int8> zDestName,
+    ffi.Pointer<ffi.Char> zDestName,
     ffi.Pointer<sqlite3> pSource,
-    ffi.Pointer<ffi.Int8> zSourceName,
+    ffi.Pointer<ffi.Char> zSourceName,
   ) {
     return _sqlite3_backup_init(
       pDest,
@@ -9413,15 +9399,15 @@
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_backup> Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_backup_init');
+              ffi.Pointer<ffi.Char>)>>('sqlite3_backup_init');
   late final _sqlite3_backup_init = _sqlite3_backup_initPtr.asFunction<
       ffi.Pointer<sqlite3_backup> Function(
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<ffi.Char>,
           ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_backup_step(
     ffi.Pointer<sqlite3_backup> p,
@@ -9435,8 +9421,8 @@
 
   late final _sqlite3_backup_stepPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_backup>, ffi.Int32)>>('sqlite3_backup_step');
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_backup>, ffi.Int)>>('sqlite3_backup_step');
   late final _sqlite3_backup_step = _sqlite3_backup_stepPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_backup>, int)>();
 
@@ -9449,7 +9435,7 @@
   }
 
   late final _sqlite3_backup_finishPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_backup>)>>(
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_backup>)>>(
       'sqlite3_backup_finish');
   late final _sqlite3_backup_finish = _sqlite3_backup_finishPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_backup>)>();
@@ -9463,7 +9449,7 @@
   }
 
   late final _sqlite3_backup_remainingPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_backup>)>>(
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_backup>)>>(
       'sqlite3_backup_remaining');
   late final _sqlite3_backup_remaining = _sqlite3_backup_remainingPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_backup>)>();
@@ -9477,7 +9463,7 @@
   }
 
   late final _sqlite3_backup_pagecountPtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_backup>)>>(
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_backup>)>>(
       'sqlite3_backup_pagecount');
   late final _sqlite3_backup_pagecount = _sqlite3_backup_pagecountPtr
       .asFunction<int Function(ffi.Pointer<sqlite3_backup>)>();
@@ -9600,7 +9586,7 @@
     ffi.Pointer<
             ffi.NativeFunction<
                 ffi.Void Function(
-                    ffi.Pointer<ffi.Pointer<ffi.Void>>, ffi.Int32)>>
+                    ffi.Pointer<ffi.Pointer<ffi.Void>> apArg, ffi.Int nArg)>>
         xNotify,
     ffi.Pointer<ffi.Void> pNotifyArg,
   ) {
@@ -9613,12 +9599,13 @@
 
   late final _sqlite3_unlock_notifyPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<
                   ffi.NativeFunction<
                       ffi.Void Function(
-                          ffi.Pointer<ffi.Pointer<ffi.Void>>, ffi.Int32)>>,
+                          ffi.Pointer<ffi.Pointer<ffi.Void>> apArg,
+                          ffi.Int nArg)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_unlock_notify');
   late final _sqlite3_unlock_notify = _sqlite3_unlock_notifyPtr.asFunction<
       int Function(
@@ -9626,7 +9613,7 @@
           ffi.Pointer<
               ffi.NativeFunction<
                   ffi.Void Function(
-                      ffi.Pointer<ffi.Pointer<ffi.Void>>, ffi.Int32)>>,
+                      ffi.Pointer<ffi.Pointer<ffi.Void>> apArg, ffi.Int nArg)>>,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: String Comparison
@@ -9636,8 +9623,8 @@
   /// strings in a case-independent fashion, using the same definition of "case
   /// independence" that SQLite uses internally when comparing identifiers.
   int sqlite3_stricmp(
-    ffi.Pointer<ffi.Int8> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg0,
+    ffi.Pointer<ffi.Char> arg1,
   ) {
     return _sqlite3_stricmp(
       arg0,
@@ -9647,14 +9634,14 @@
 
   late final _sqlite3_stricmpPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_stricmp');
+          ffi.Int Function(ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_stricmp');
   late final _sqlite3_stricmp = _sqlite3_stricmpPtr
-      .asFunction<int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   int sqlite3_strnicmp(
-    ffi.Pointer<ffi.Int8> arg0,
-    ffi.Pointer<ffi.Int8> arg1,
+    ffi.Pointer<ffi.Char> arg0,
+    ffi.Pointer<ffi.Char> arg1,
     int arg2,
   ) {
     return _sqlite3_strnicmp(
@@ -9666,10 +9653,10 @@
 
   late final _sqlite3_strnicmpPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32)>>('sqlite3_strnicmp');
+          ffi.Int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>,
+              ffi.Int)>>('sqlite3_strnicmp');
   late final _sqlite3_strnicmp = _sqlite3_strnicmpPtr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>, int)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>, int)>();
 
   /// CAPI3REF: String Globbing
   ///
@@ -9685,8 +9672,8 @@
   ///
   /// See also: [sqlite3_strlike()].
   int sqlite3_strglob(
-    ffi.Pointer<ffi.Int8> zGlob,
-    ffi.Pointer<ffi.Int8> zStr,
+    ffi.Pointer<ffi.Char> zGlob,
+    ffi.Pointer<ffi.Char> zStr,
   ) {
     return _sqlite3_strglob(
       zGlob,
@@ -9696,10 +9683,10 @@
 
   late final _sqlite3_strglobPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_strglob');
+          ffi.Int Function(ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_strglob');
   late final _sqlite3_strglob = _sqlite3_strglobPtr
-      .asFunction<int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: String LIKE Matching
   ///
@@ -9721,8 +9708,8 @@
   ///
   /// See also: [sqlite3_strglob()].
   int sqlite3_strlike(
-    ffi.Pointer<ffi.Int8> zGlob,
-    ffi.Pointer<ffi.Int8> zStr,
+    ffi.Pointer<ffi.Char> zGlob,
+    ffi.Pointer<ffi.Char> zStr,
     int cEsc,
   ) {
     return _sqlite3_strlike(
@@ -9734,10 +9721,10 @@
 
   late final _sqlite3_strlikePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>,
-              ffi.Uint32)>>('sqlite3_strlike');
+          ffi.Int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>,
+              ffi.UnsignedInt)>>('sqlite3_strlike');
   late final _sqlite3_strlike = _sqlite3_strlikePtr.asFunction<
-      int Function(ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>, int)>();
+      int Function(ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>, int)>();
 
   /// CAPI3REF: Error Logging Interface
   ///
@@ -9760,7 +9747,7 @@
   /// buffer.
   void sqlite3_log(
     int iErrCode,
-    ffi.Pointer<ffi.Int8> zFormat,
+    ffi.Pointer<ffi.Char> zFormat,
   ) {
     return _sqlite3_log(
       iErrCode,
@@ -9770,9 +9757,9 @@
 
   late final _sqlite3_logPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Int32, ffi.Pointer<ffi.Int8>)>>('sqlite3_log');
+          ffi.Void Function(ffi.Int, ffi.Pointer<ffi.Char>)>>('sqlite3_log');
   late final _sqlite3_log =
-      _sqlite3_logPtr.asFunction<void Function(int, ffi.Pointer<ffi.Int8>)>();
+      _sqlite3_logPtr.asFunction<void Function(int, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Write-Ahead Log Commit Hook
   /// METHOD: sqlite3
@@ -9810,8 +9797,8 @@
     ffi.Pointer<sqlite3> arg0,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<ffi.Void>, ffi.Pointer<sqlite3>,
-                    ffi.Pointer<ffi.Int8>, ffi.Int32)>>
+                ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Pointer<sqlite3>,
+                    ffi.Pointer<ffi.Char>, ffi.Int)>>
         arg1,
     ffi.Pointer<ffi.Void> arg2,
   ) {
@@ -9828,19 +9815,19 @@
               ffi.Pointer<sqlite3>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
                           ffi.Pointer<sqlite3>,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Int32)>>,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Int)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_wal_hook');
   late final _sqlite3_wal_hook = _sqlite3_wal_hookPtr.asFunction<
       ffi.Pointer<ffi.Void> Function(
           ffi.Pointer<sqlite3>,
           ffi.Pointer<
               ffi.NativeFunction<
-                  ffi.Int32 Function(ffi.Pointer<ffi.Void>,
-                      ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>, ffi.Int32)>>,
+                  ffi.Int Function(ffi.Pointer<ffi.Void>, ffi.Pointer<sqlite3>,
+                      ffi.Pointer<ffi.Char>, ffi.Int)>>,
           ffi.Pointer<ffi.Void>)>();
 
   /// CAPI3REF: Configure an auto-checkpoint
@@ -9881,9 +9868,8 @@
   }
 
   late final _sqlite3_wal_autocheckpointPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>, ffi.Int32)>>('sqlite3_wal_autocheckpoint');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_wal_autocheckpoint');
   late final _sqlite3_wal_autocheckpoint = _sqlite3_wal_autocheckpointPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -9907,7 +9893,7 @@
   /// complication) of [sqlite3_wal_checkpoint_v2()].
   int sqlite3_wal_checkpoint(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDb,
+    ffi.Pointer<ffi.Char> zDb,
   ) {
     return _sqlite3_wal_checkpoint(
       db,
@@ -9917,10 +9903,10 @@
 
   late final _sqlite3_wal_checkpointPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_wal_checkpoint');
+          ffi.Int Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_wal_checkpoint');
   late final _sqlite3_wal_checkpoint = _sqlite3_wal_checkpointPtr
-      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Checkpoint a database
   /// METHOD: sqlite3
@@ -10014,10 +10000,10 @@
   /// from SQL.
   int sqlite3_wal_checkpoint_v2(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDb,
+    ffi.Pointer<ffi.Char> zDb,
     int eMode,
-    ffi.Pointer<ffi.Int32> pnLog,
-    ffi.Pointer<ffi.Int32> pnCkpt,
+    ffi.Pointer<ffi.Int> pnLog,
+    ffi.Pointer<ffi.Int> pnCkpt,
   ) {
     return _sqlite3_wal_checkpoint_v2(
       db,
@@ -10030,16 +10016,16 @@
 
   late final _sqlite3_wal_checkpoint_v2Ptr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>>('sqlite3_wal_checkpoint_v2');
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>>('sqlite3_wal_checkpoint_v2');
   late final _sqlite3_wal_checkpoint_v2 =
       _sqlite3_wal_checkpoint_v2Ptr.asFunction<
-          int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>, int,
-              ffi.Pointer<ffi.Int32>, ffi.Pointer<ffi.Int32>)>();
+          int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>, int,
+              ffi.Pointer<ffi.Int>, ffi.Pointer<ffi.Int>)>();
 
   /// CAPI3REF: Virtual Table Interface Configuration
   ///
@@ -10068,9 +10054,8 @@
   }
 
   late final _sqlite3_vtab_configPtr = _lookup<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3>, ffi.Int32)>>('sqlite3_vtab_config');
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Int)>>(
+      'sqlite3_vtab_config');
   late final _sqlite3_vtab_config = _sqlite3_vtab_configPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>, int)>();
 
@@ -10091,7 +10076,7 @@
   }
 
   late final _sqlite3_vtab_on_conflictPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_vtab_on_conflict');
   late final _sqlite3_vtab_on_conflict = _sqlite3_vtab_on_conflictPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -10120,7 +10105,7 @@
   }
 
   late final _sqlite3_vtab_nochangePtr = _lookup<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_context>)>>(
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_context>)>>(
       'sqlite3_vtab_nochange');
   late final _sqlite3_vtab_nochange = _sqlite3_vtab_nochangePtr
       .asFunction<int Function(ffi.Pointer<sqlite3_context>)>();
@@ -10136,7 +10121,7 @@
   /// structure passed to xBestIndex. This function returns a pointer to a buffer
   /// containing the name of the collation sequence for the corresponding
   /// constraint.
-  ffi.Pointer<ffi.Int8> sqlite3_vtab_collation(
+  ffi.Pointer<ffi.Char> sqlite3_vtab_collation(
     ffi.Pointer<sqlite3_index_info> arg0,
     int arg1,
   ) {
@@ -10148,10 +10133,10 @@
 
   late final _sqlite3_vtab_collationPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_index_info>,
-              ffi.Int32)>>('sqlite3_vtab_collation');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_index_info>,
+              ffi.Int)>>('sqlite3_vtab_collation');
   late final _sqlite3_vtab_collation = _sqlite3_vtab_collationPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<sqlite3_index_info>, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<sqlite3_index_info>, int)>();
 
   /// CAPI3REF: Prepared Statement Scan Status
   /// METHOD: sqlite3_stmt
@@ -10198,7 +10183,7 @@
 
   late final _sqlite3_stmt_scanstatusPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_stmt>, ffi.Int32, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<sqlite3_stmt>, ffi.Int, ffi.Int,
               ffi.Pointer<ffi.Void>)>>('sqlite3_stmt_scanstatus');
   late final _sqlite3_stmt_scanstatus = _sqlite3_stmt_scanstatusPtr.asFunction<
       int Function(
@@ -10262,7 +10247,7 @@
   }
 
   late final _sqlite3_db_cacheflushPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_db_cacheflush');
   late final _sqlite3_db_cacheflush = _sqlite3_db_cacheflushPtr
       .asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -10284,7 +10269,7 @@
   }
 
   late final _sqlite3_system_errnoPtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3>)>>(
           'sqlite3_system_errno');
   late final _sqlite3_system_errno =
       _sqlite3_system_errnoPtr.asFunction<int Function(ffi.Pointer<sqlite3>)>();
@@ -10332,7 +10317,7 @@
   /// [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
   int sqlite3_snapshot_get(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSchema,
+    ffi.Pointer<ffi.Char> zSchema,
     ffi.Pointer<ffi.Pointer<sqlite3_snapshot>> ppSnapshot,
   ) {
     return _sqlite3_snapshot_get(
@@ -10344,11 +10329,11 @@
 
   late final _sqlite3_snapshot_getPtr = _lookup<
           ffi.NativeFunction<
-              ffi.Int32 Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
+              ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
                   ffi.Pointer<ffi.Pointer<sqlite3_snapshot>>)>>(
       'sqlite3_snapshot_get');
   late final _sqlite3_snapshot_get = _sqlite3_snapshot_getPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
           ffi.Pointer<ffi.Pointer<sqlite3_snapshot>>)>();
 
   /// CAPI3REF: Start a read transaction on an historical snapshot
@@ -10394,7 +10379,7 @@
   /// [SQLITE_ENABLE_SNAPSHOT] compile-time option is used.
   int sqlite3_snapshot_open(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSchema,
+    ffi.Pointer<ffi.Char> zSchema,
     ffi.Pointer<sqlite3_snapshot> pSnapshot,
   ) {
     return _sqlite3_snapshot_open(
@@ -10406,10 +10391,10 @@
 
   late final _sqlite3_snapshot_openPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
+          ffi.Int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<sqlite3_snapshot>)>>('sqlite3_snapshot_open');
   late final _sqlite3_snapshot_open = _sqlite3_snapshot_openPtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
           ffi.Pointer<sqlite3_snapshot>)>();
 
   /// CAPI3REF: Destroy a snapshot
@@ -10470,7 +10455,7 @@
 
   late final _sqlite3_snapshot_cmpPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_snapshot>,
+          ffi.Int Function(ffi.Pointer<sqlite3_snapshot>,
               ffi.Pointer<sqlite3_snapshot>)>>('sqlite3_snapshot_cmp');
   late final _sqlite3_snapshot_cmp = _sqlite3_snapshot_cmpPtr.asFunction<
       int Function(
@@ -10499,7 +10484,7 @@
   /// [SQLITE_ENABLE_SNAPSHOT] option.
   int sqlite3_snapshot_recover(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zDb,
+    ffi.Pointer<ffi.Char> zDb,
   ) {
     return _sqlite3_snapshot_recover(
       db,
@@ -10509,10 +10494,10 @@
 
   late final _sqlite3_snapshot_recoverPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>)>>('sqlite3_snapshot_recover');
+          ffi.Int Function(ffi.Pointer<sqlite3>,
+              ffi.Pointer<ffi.Char>)>>('sqlite3_snapshot_recover');
   late final _sqlite3_snapshot_recover = _sqlite3_snapshot_recoverPtr
-      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>)>();
 
   /// CAPI3REF: Serialize a database
   ///
@@ -10548,9 +10533,9 @@
   ///
   /// This interface is only available if SQLite is compiled with the
   /// [SQLITE_ENABLE_DESERIALIZE] option.
-  ffi.Pointer<ffi.Uint8> sqlite3_serialize(
+  ffi.Pointer<ffi.UnsignedChar> sqlite3_serialize(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSchema,
+    ffi.Pointer<ffi.Char> zSchema,
     ffi.Pointer<sqlite3_int64> piSize,
     int mFlags,
   ) {
@@ -10564,14 +10549,14 @@
 
   late final _sqlite3_serializePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Uint8> Function(
+          ffi.Pointer<ffi.UnsignedChar> Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<sqlite3_int64>,
-              ffi.Uint32)>>('sqlite3_serialize');
+              ffi.UnsignedInt)>>('sqlite3_serialize');
   late final _sqlite3_serialize = _sqlite3_serializePtr.asFunction<
-      ffi.Pointer<ffi.Uint8> Function(ffi.Pointer<sqlite3>,
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<sqlite3_int64>, int)>();
+      ffi.Pointer<ffi.UnsignedChar> Function(ffi.Pointer<sqlite3>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<sqlite3_int64>, int)>();
 
   /// CAPI3REF: Deserialize a database
   ///
@@ -10602,8 +10587,8 @@
   /// [SQLITE_ENABLE_DESERIALIZE] option.
   int sqlite3_deserialize(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zSchema,
-    ffi.Pointer<ffi.Uint8> pData,
+    ffi.Pointer<ffi.Char> zSchema,
+    ffi.Pointer<ffi.UnsignedChar> pData,
     int szDb,
     int szBuf,
     int mFlags,
@@ -10620,16 +10605,16 @@
 
   late final _sqlite3_deserializePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Uint8>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.UnsignedChar>,
               sqlite3_int64,
               sqlite3_int64,
-              ffi.Uint32)>>('sqlite3_deserialize');
+              ffi.UnsignedInt)>>('sqlite3_deserialize');
   late final _sqlite3_deserialize = _sqlite3_deserializePtr.asFunction<
-      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Int8>,
-          ffi.Pointer<ffi.Uint8>, int, int, int)>();
+      int Function(ffi.Pointer<sqlite3>, ffi.Pointer<ffi.Char>,
+          ffi.Pointer<ffi.UnsignedChar>, int, int, int)>();
 
   /// Register a geometry callback named zGeom that can be used as part of an
   /// R-Tree geometry query as follows:
@@ -10637,14 +10622,11 @@
   /// SELECT ... FROM <rtree> WHERE <rtree col> MATCH $zGeom(... params ...)
   int sqlite3_rtree_geometry_callback(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zGeom,
+    ffi.Pointer<ffi.Char> zGeom,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(
-                    ffi.Pointer<sqlite3_rtree_geometry>,
-                    ffi.Int32,
-                    ffi.Pointer<sqlite3_rtree_dbl>,
-                    ffi.Pointer<ffi.Int32>)>>
+                ffi.Int Function(ffi.Pointer<sqlite3_rtree_geometry>, ffi.Int,
+                    ffi.Pointer<sqlite3_rtree_dbl>, ffi.Pointer<ffi.Int>)>>
         xGeom,
     ffi.Pointer<ffi.Void> pContext,
   ) {
@@ -10658,29 +10640,29 @@
 
   late final _sqlite3_rtree_geometry_callbackPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<sqlite3_rtree_geometry>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<sqlite3_rtree_dbl>,
-                          ffi.Pointer<ffi.Int32>)>>,
+                          ffi.Pointer<ffi.Int>)>>,
               ffi.Pointer<ffi.Void>)>>('sqlite3_rtree_geometry_callback');
   late final _sqlite3_rtree_geometry_callback =
       _sqlite3_rtree_geometry_callbackPtr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<sqlite3_rtree_geometry>,
-                          ffi.Int32,
+                          ffi.Int,
                           ffi.Pointer<sqlite3_rtree_dbl>,
-                          ffi.Pointer<ffi.Int32>)>>,
+                          ffi.Pointer<ffi.Int>)>>,
               ffi.Pointer<ffi.Void>)>();
 
   /// Register a 2nd-generation geometry callback named zScore that can be
@@ -10689,10 +10671,10 @@
   /// SELECT ... FROM <rtree> WHERE <rtree col> MATCH $zQueryFunc(... params ...)
   int sqlite3_rtree_query_callback(
     ffi.Pointer<sqlite3> db,
-    ffi.Pointer<ffi.Int8> zQueryFunc,
+    ffi.Pointer<ffi.Char> zQueryFunc,
     ffi.Pointer<
             ffi.NativeFunction<
-                ffi.Int32 Function(ffi.Pointer<sqlite3_rtree_query_info>)>>
+                ffi.Int Function(ffi.Pointer<sqlite3_rtree_query_info>)>>
         xQueryFunc,
     ffi.Pointer<ffi.Void> pContext,
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
@@ -10707,29 +10689,29 @@
     );
   }
 
-  late final _sqlite3_rtree_query_callbackPtr = _lookup<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3>,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Pointer<
-                      ffi.NativeFunction<
-                          ffi.Int32 Function(
-                              ffi.Pointer<sqlite3_rtree_query_info>)>>,
-                  ffi.Pointer<ffi.Void>,
-                  ffi.Pointer<
-                      ffi.NativeFunction<
-                          ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>(
-      'sqlite3_rtree_query_callback');
+  late final _sqlite3_rtree_query_callbackPtr =
+      _lookup<
+              ffi.NativeFunction<
+                  ffi.Int Function(
+                      ffi.Pointer<sqlite3>,
+                      ffi.Pointer<ffi.Char>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Int Function(
+                                  ffi.Pointer<sqlite3_rtree_query_info>)>>,
+                      ffi.Pointer<ffi.Void>,
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>(
+          'sqlite3_rtree_query_callback');
   late final _sqlite3_rtree_query_callback =
       _sqlite3_rtree_query_callbackPtr.asFunction<
           int Function(
               ffi.Pointer<sqlite3>,
-              ffi.Pointer<ffi.Int8>,
+              ffi.Pointer<ffi.Char>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
-                          ffi.Pointer<sqlite3_rtree_query_info>)>>,
+                      ffi.Int Function(ffi.Pointer<sqlite3_rtree_query_info>)>>,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
@@ -10743,100 +10725,7 @@
   external ffi.Pointer<sqlite3_io_methods> pMethods;
 }
 
-class sqlite3_io_methods extends ffi.Struct {
-  @ffi.Int32()
-  external int iVersion;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_file>)>> xClose;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Pointer<ffi.Void>,
-              ffi.Int32, sqlite3_int64)>> xRead;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Pointer<ffi.Void>,
-              ffi.Int32, sqlite3_int64)>> xWrite;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(ffi.Pointer<sqlite3_file>, sqlite3_int64)>>
-      xTruncate;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Int32)>> xSync;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_file>, ffi.Pointer<sqlite3_int64>)>>
-      xFileSize;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Int32)>> xLock;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Int32)>> xUnlock;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_file>, ffi.Pointer<ffi.Int32>)>>
-      xCheckReservedLock;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_file>, ffi.Int32, ffi.Pointer<ffi.Void>)>>
-      xFileControl;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_file>)>>
-      xSectorSize;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_file>)>>
-      xDeviceCharacteristics;
-
-  /// Methods above are valid for version 1
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Int32, ffi.Int32,
-              ffi.Int32, ffi.Pointer<ffi.Pointer<ffi.Void>>)>> xShmMap;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_file>, ffi.Int32, ffi.Int32, ffi.Int32)>>
-      xShmLock;
-
-  external ffi.Pointer<
-          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<sqlite3_file>)>>
-      xShmBarrier;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, ffi.Int32)>> xShmUnmap;
-
-  /// Methods above are valid for version 2
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, sqlite3_int64,
-              ffi.Int32, ffi.Pointer<ffi.Pointer<ffi.Void>>)>> xFetch;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_file>, sqlite3_int64,
-              ffi.Pointer<ffi.Void>)>> xUnfetch;
-}
-
-typedef sqlite3_int64 = sqlite_int64;
-typedef sqlite_int64 = ffi.Int64;
+class sqlite3_io_methods extends ffi.Opaque {}
 
 class sqlite3_mutex extends ffi.Opaque {}
 
@@ -10844,60 +10733,56 @@
 
 class sqlite3_vfs extends ffi.Struct {
   /// Structure version number (currently 3)
-  @ffi.Int32()
+  @ffi.Int()
   external int iVersion;
 
   /// Size of subclassed sqlite3_file
-  @ffi.Int32()
+  @ffi.Int()
   external int szOsFile;
 
   /// Maximum file pathname length
-  @ffi.Int32()
+  @ffi.Int()
   external int mxPathname;
 
   /// Next registered VFS
   external ffi.Pointer<sqlite3_vfs> pNext;
 
   /// Name of this virtual file system
-  external ffi.Pointer<ffi.Int8> zName;
+  external ffi.Pointer<ffi.Char> zName;
 
   /// Pointer to application-specific data
   external ffi.Pointer<ffi.Void> pAppData;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_vfs>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<sqlite3_file>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int32>)>> xOpen;
+          ffi.Int Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<sqlite3_file>, ffi.Int, ffi.Pointer<ffi.Int>)>> xOpen;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>, ffi.Int32)>>
+              ffi.Int Function(
+                  ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>, ffi.Int)>>
       xDelete;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, ffi.Pointer<ffi.Int32>)>> xAccess;
+          ffi.Int Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>,
+              ffi.Int, ffi.Pointer<ffi.Int>)>> xAccess;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, ffi.Pointer<ffi.Int8>)>> xFullPathname;
+          ffi.Int Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>,
+              ffi.Int, ffi.Pointer<ffi.Char>)>> xFullPathname;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>)>> xDlOpen;
+              ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>)>> xDlOpen;
 
   external ffi.Pointer<
           ffi.NativeFunction<
               ffi.Void Function(
-                  ffi.Pointer<sqlite3_vfs>, ffi.Int32, ffi.Pointer<ffi.Int8>)>>
+                  ffi.Pointer<sqlite3_vfs>, ffi.Int, ffi.Pointer<ffi.Char>)>>
       xDlError;
 
   external ffi.Pointer<
@@ -10905,7 +10790,7 @@
           ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> Function(
               ffi.Pointer<sqlite3_vfs>,
               ffi.Pointer<ffi.Void>,
-              ffi.Pointer<ffi.Int8>)>> xDlSym;
+              ffi.Pointer<ffi.Char>)>> xDlSym;
 
   external ffi.Pointer<
       ffi.NativeFunction<
@@ -10914,30 +10799,30 @@
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_vfs>, ffi.Int32, ffi.Pointer<ffi.Int8>)>>
+              ffi.Int Function(
+                  ffi.Pointer<sqlite3_vfs>, ffi.Int, ffi.Pointer<ffi.Char>)>>
       xRandomness;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vfs>, ffi.Int32)>> xSleep;
+          ffi.Int Function(ffi.Pointer<sqlite3_vfs>, ffi.Int)>> xSleep;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Double>)>> xCurrentTime;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<sqlite3_vfs>, ffi.Int32, ffi.Pointer<ffi.Int8>)>>
+              ffi.Int Function(
+                  ffi.Pointer<sqlite3_vfs>, ffi.Int, ffi.Pointer<ffi.Char>)>>
       xGetLastError;
 
   /// The methods above are in version 1 of the sqlite_vfs object
   /// definition.  Those that follow are added in version 2 or later
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3_vfs>, ffi.Pointer<sqlite3_int64>)>>
       xCurrentTimeInt64;
 
@@ -10945,28 +10830,31 @@
   /// Those below are for version 3 and greater.
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>,
+          ffi.Int Function(ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>,
               sqlite3_syscall_ptr)>> xSetSystemCall;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           sqlite3_syscall_ptr Function(
-              ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>)>> xGetSystemCall;
+              ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>)>> xGetSystemCall;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Pointer<ffi.Int8> Function(
-                  ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Int8>)>>
+              ffi.Pointer<ffi.Char> Function(
+                  ffi.Pointer<sqlite3_vfs>, ffi.Pointer<ffi.Char>)>>
       xNextSystemCall;
 }
 
+typedef sqlite3_int64 = sqlite_int64;
+typedef sqlite_int64 = ffi.LongLong;
 typedef sqlite3_syscall_ptr
     = ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>;
 
 class sqlite3_mem_methods extends ffi.Struct {
   /// Memory allocation function
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Int32)>> xMalloc;
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Int)>>
+      xMalloc;
 
   /// Free a prior allocation
   external ffi
@@ -10976,20 +10864,21 @@
   /// Resize an allocation
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, ffi.Int32)>>
+              ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>, ffi.Int)>>
       xRealloc;
 
   /// Return the size of an allocation
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>> xSize;
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
+      xSize;
 
   /// Round up request size to allocation size
-  external ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32)>>
-      xRoundup;
+  external ffi.Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Int)>> xRoundup;
 
   /// Initialize the memory allocator
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>> xInit;
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
+      xInit;
 
   /// Deinitialize the memory allocator
   external ffi
@@ -11001,7 +10890,7 @@
 }
 
 typedef sqlite3_uint64 = sqlite_uint64;
-typedef sqlite_uint64 = ffi.Uint64;
+typedef sqlite_uint64 = ffi.UnsignedLongLong;
 
 class sqlite3_stmt extends ffi.Opaque {}
 
@@ -11030,11 +10919,11 @@
   external ffi.Pointer<sqlite3_module> pModule;
 
   /// Number of open cursors
-  @ffi.Int32()
+  @ffi.Int()
   external int nRef;
 
   /// Error message from sqlite3_mprintf()
-  external ffi.Pointer<ffi.Int8> zErrMsg;
+  external ffi.Pointer<ffi.Char> zErrMsg;
 }
 
 /// CAPI3REF: Virtual Table Object
@@ -11052,140 +10941,143 @@
 /// of this structure must not change while it is registered with
 /// any database connection.
 class sqlite3_module extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int iVersion;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               ffi.Pointer<ffi.Pointer<sqlite3_vtab>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>> xCreate;
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>> xCreate;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               ffi.Pointer<ffi.Pointer<sqlite3_vtab>>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>)>> xConnect;
+              ffi.Pointer<ffi.Pointer<ffi.Char>>)>> xConnect;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
+              ffi.Int Function(
                   ffi.Pointer<sqlite3_vtab>, ffi.Pointer<sqlite3_index_info>)>>
       xBestIndex;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
       xDisconnect;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
       xDestroy;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>,
-              ffi.Pointer<ffi.Pointer<sqlite3_vtab_cursor>>)>> xOpen;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab,
+              ffi.Pointer<ffi.Pointer<sqlite3_vtab_cursor>> ppCursor)>> xOpen;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xClose;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xClose;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_vtab_cursor>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Int,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_value>>)>> xFilter;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xNext;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xNext;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xEof;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab_cursor>)>> xEof;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab_cursor>,
-              ffi.Pointer<sqlite3_context>, ffi.Int32)>> xColumn;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab_cursor>,
+              ffi.Pointer<sqlite3_context>, ffi.Int)>> xColumn;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab_cursor>,
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab_cursor>,
               ffi.Pointer<sqlite3_int64>)>> xRowid;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<sqlite3_vtab>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<sqlite3_value>>,
               ffi.Pointer<sqlite3_int64>)>> xUpdate;
 
   external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>> xBegin;
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
+      xBegin;
 
   external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>> xSync;
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
+      xSync;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
       xCommit;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_vtab> pVTab)>>
       xRollback;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_vtab>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>,
+          ffi.Int Function(
+              ffi.Pointer<sqlite3_vtab> pVtab,
+              ffi.Int nArg,
+              ffi.Pointer<ffi.Char> zName,
               ffi.Pointer<
-                  ffi.Pointer<
-                      ffi.NativeFunction<
-                          ffi.Void Function(
-                              ffi.Pointer<sqlite3_context>,
-                              ffi.Int32,
-                              ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>>,
-              ffi.Pointer<ffi.Pointer<ffi.Void>>)>> xFindFunction;
+                      ffi.Pointer<
+                          ffi.NativeFunction<
+                              ffi.Void Function(
+                                  ffi.Pointer<sqlite3_context>,
+                                  ffi.Int,
+                                  ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>>
+                  pxFunc,
+              ffi.Pointer<ffi.Pointer<ffi.Void>> ppArg)>> xFindFunction;
 
   external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<sqlite3_vtab>, ffi.Pointer<ffi.Int8>)>> xRename;
+          ffi.NativeFunction<
+              ffi.Int Function(
+                  ffi.Pointer<sqlite3_vtab> pVtab, ffi.Pointer<ffi.Char> zNew)>>
+      xRename;
 
   /// The methods above are in version 1 of the sqlite_module object. Those
   /// below are for version 2 and greater.
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>, ffi.Int32)>> xSavepoint;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab>, ffi.Int)>> xSavepoint;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>, ffi.Int32)>> xRelease;
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab>, ffi.Int)>> xRelease;
 
   external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(ffi.Pointer<sqlite3_vtab>, ffi.Int32)>>
-      xRollbackTo;
+      ffi.NativeFunction<
+          ffi.Int Function(ffi.Pointer<sqlite3_vtab>, ffi.Int)>> xRollbackTo;
 
   /// The methods above are in versions 1 and 2 of the sqlite_module object.
   /// Those below are for version 3 and greater.
-  external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Int8>)>>
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Char>)>>
       xShadowName;
 }
 
@@ -11291,14 +11183,14 @@
 /// 3009000.
 class sqlite3_index_info extends ffi.Struct {
   /// Number of entries in aConstraint
-  @ffi.Int32()
+  @ffi.Int()
   external int nConstraint;
 
   /// Table of WHERE clause constraints
   external ffi.Pointer<sqlite3_index_constraint> aConstraint;
 
   /// Number of terms in the ORDER BY clause
-  @ffi.Int32()
+  @ffi.Int()
   external int nOrderBy;
 
   /// The ORDER BY clause
@@ -11307,18 +11199,18 @@
   external ffi.Pointer<sqlite3_index_constraint_usage> aConstraintUsage;
 
   /// Number used to identify the index
-  @ffi.Int32()
+  @ffi.Int()
   external int idxNum;
 
   /// String, possibly obtained from sqlite3_malloc
-  external ffi.Pointer<ffi.Int8> idxStr;
+  external ffi.Pointer<ffi.Char> idxStr;
 
   /// Free idxStr using sqlite3_free() if true
-  @ffi.Int32()
+  @ffi.Int()
   external int needToFreeIdxStr;
 
   /// True if output is already ordered
-  @ffi.Int32()
+  @ffi.Int()
   external int orderByConsumed;
 
   /// Estimated cost of using this index
@@ -11330,7 +11222,7 @@
   external int estimatedRows;
 
   /// Mask of SQLITE_INDEX_SCAN_* flags
-  @ffi.Int32()
+  @ffi.Int()
   external int idxFlags;
 
   /// Input: Mask of columns used by statement
@@ -11340,40 +11232,40 @@
 
 class sqlite3_index_constraint extends ffi.Struct {
   /// Column constrained.  -1 for ROWID
-  @ffi.Int32()
+  @ffi.Int()
   external int iColumn;
 
   /// Constraint operator
-  @ffi.Uint8()
+  @ffi.UnsignedChar()
   external int op;
 
   /// True if this constraint is usable
-  @ffi.Uint8()
+  @ffi.UnsignedChar()
   external int usable;
 
   /// Used internally - xBestIndex should ignore
-  @ffi.Int32()
+  @ffi.Int()
   external int iTermOffset;
 }
 
 class sqlite3_index_orderby extends ffi.Struct {
   /// Column number
-  @ffi.Int32()
+  @ffi.Int()
   external int iColumn;
 
   /// True for DESC.  False for ASC.
-  @ffi.Uint8()
+  @ffi.UnsignedChar()
   external int desc;
 }
 
 /// Outputs
 class sqlite3_index_constraint_usage extends ffi.Struct {
   /// if >0, constraint is part of argv to xFilter
-  @ffi.Int32()
+  @ffi.Int()
   external int argvIndex;
 
   /// Do not code a test for this constraint
-  @ffi.Uint8()
+  @ffi.UnsignedChar()
   external int omit;
 }
 
@@ -11400,12 +11292,12 @@
 class sqlite3_blob extends ffi.Opaque {}
 
 class sqlite3_mutex_methods extends ffi.Struct {
-  external ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function()>> xMutexInit;
+  external ffi.Pointer<ffi.NativeFunction<ffi.Int Function()>> xMutexInit;
 
-  external ffi.Pointer<ffi.NativeFunction<ffi.Int32 Function()>> xMutexEnd;
+  external ffi.Pointer<ffi.NativeFunction<ffi.Int Function()>> xMutexEnd;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Pointer<sqlite3_mutex> Function(ffi.Int32)>>
+          ffi.NativeFunction<ffi.Pointer<sqlite3_mutex> Function(ffi.Int)>>
       xMutexAlloc;
 
   external ffi.Pointer<
@@ -11417,7 +11309,7 @@
       xMutexEnter;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>
       xMutexTry;
 
   external ffi.Pointer<
@@ -11425,11 +11317,11 @@
       xMutexLeave;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>
       xMutexHeld;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_mutex>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_mutex>)>>
       xMutexNotheld;
 }
 
@@ -11446,13 +11338,14 @@
 }
 
 class sqlite3_pcache_methods2 extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int iVersion;
 
   external ffi.Pointer<ffi.Void> pArg;
 
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>> xInit;
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
+      xInit;
 
   external ffi
           .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
@@ -11461,38 +11354,37 @@
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_pcache> Function(
-              ffi.Int32, ffi.Int32, ffi.Int32)>> xCreate;
+              ffi.Int szPage, ffi.Int szExtra, ffi.Int bPurgeable)>> xCreate;
 
   external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Int32)>>
-      xCachesize;
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Int)>> xCachesize;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_pcache>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_pcache>)>>
       xPagecount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Pointer<sqlite3_pcache_page> Function(
-              ffi.Pointer<sqlite3_pcache>, ffi.Uint32, ffi.Int32)>> xFetch;
+              ffi.Pointer<sqlite3_pcache>, ffi.UnsignedInt, ffi.Int)>> xFetch;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<sqlite3_pcache>,
-              ffi.Pointer<sqlite3_pcache_page>, ffi.Int32)>> xUnpin;
+              ffi.Pointer<sqlite3_pcache_page>, ffi.Int)>> xUnpin;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<sqlite3_pcache>,
               ffi.Pointer<sqlite3_pcache_page>,
-              ffi.Uint32,
-              ffi.Uint32)>> xRekey;
+              ffi.UnsignedInt,
+              ffi.UnsignedInt)>> xRekey;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Uint32)>>
+              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.UnsignedInt)>>
       xTruncate;
 
   external ffi.Pointer<
@@ -11507,8 +11399,9 @@
 class sqlite3_pcache_methods extends ffi.Struct {
   external ffi.Pointer<ffi.Void> pArg;
 
-  external ffi.Pointer<
-      ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<ffi.Void>)>> xInit;
+  external ffi
+          .Pointer<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<ffi.Void>)>>
+      xInit;
 
   external ffi
           .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
@@ -11516,35 +11409,36 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Pointer<sqlite3_pcache> Function(ffi.Int32, ffi.Int32)>> xCreate;
+          ffi.Pointer<sqlite3_pcache> Function(
+              ffi.Int szPage, ffi.Int bPurgeable)>> xCreate;
 
   external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Int32)>>
-      xCachesize;
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Int)>> xCachesize;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<sqlite3_pcache>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<sqlite3_pcache>)>>
       xPagecount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<sqlite3_pcache>, ffi.Uint32, ffi.Int32)>> xFetch;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Pointer<ffi.Void>,
-              ffi.Int32)>> xUnpin;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Pointer<ffi.Void>,
-              ffi.Uint32, ffi.Uint32)>> xRekey;
+              ffi.Pointer<sqlite3_pcache>, ffi.UnsignedInt, ffi.Int)>> xFetch;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Uint32)>>
+              ffi.Void Function(
+                  ffi.Pointer<sqlite3_pcache>, ffi.Pointer<ffi.Void>, ffi.Int)>>
+      xUnpin;
+
+  external ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.Pointer<ffi.Void>,
+              ffi.UnsignedInt, ffi.UnsignedInt)>> xRekey;
+
+  external ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Void Function(ffi.Pointer<sqlite3_pcache>, ffi.UnsignedInt)>>
       xTruncate;
 
   external ffi.Pointer<
@@ -11574,7 +11468,7 @@
 /// the most recent version.
 class sqlite3_snapshot extends ffi.Struct {
   @ffi.Array.multi([48])
-  external ffi.Array<ffi.Uint8> hidden;
+  external ffi.Array<ffi.UnsignedChar> hidden;
 }
 
 /// A pointer to a structure of the following type is passed as the first
@@ -11584,7 +11478,7 @@
   external ffi.Pointer<ffi.Void> pContext;
 
   /// Size of array aParam[]
-  @ffi.Int32()
+  @ffi.Int()
   external int nParam;
 
   /// Parameters passed to SQL geom function
@@ -11613,7 +11507,7 @@
   external ffi.Pointer<ffi.Void> pContext;
 
   /// Number of function parameters
-  @ffi.Int32()
+  @ffi.Int()
   external int nParam;
 
   /// value of function parameters
@@ -11631,18 +11525,18 @@
   external ffi.Pointer<sqlite3_rtree_dbl> aCoord;
 
   /// Number of pending entries in the queue
-  external ffi.Pointer<ffi.Uint32> anQueue;
+  external ffi.Pointer<ffi.UnsignedInt> anQueue;
 
   /// Number of coordinates
-  @ffi.Int32()
+  @ffi.Int()
   external int nCoord;
 
   /// Level of current node or entry
-  @ffi.Int32()
+  @ffi.Int()
   external int iLevel;
 
   /// The largest iLevel value in the tree
-  @ffi.Int32()
+  @ffi.Int()
   external int mxLevel;
 
   /// Rowid for current entry
@@ -11654,11 +11548,11 @@
   external double rParentScore;
 
   /// Visibility of parent node
-  @ffi.Int32()
+  @ffi.Int()
   external int eParentWithin;
 
   /// OUT: Visibility
-  @ffi.Int32()
+  @ffi.Int()
   external int eWithin;
 
   /// OUT: Write the score here
@@ -11880,7 +11774,7 @@
 /// See xPhraseFirstColumn above.
 class Fts5ExtensionApi extends ffi.Struct {
   /// Currently always set to 3
-  @ffi.Int32()
+  @ffi.Int()
   external int iVersion;
 
   external ffi.Pointer<
@@ -11888,57 +11782,57 @@
           ffi.Pointer<ffi.Void> Function(ffi.Pointer<Fts5Context>)>> xUserData;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<Fts5Context>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<Fts5Context>)>>
       xColumnCount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>, ffi.Pointer<sqlite3_int64>)>> xRowCount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<Fts5Context>, ffi.Int32,
+          ffi.Int Function(ffi.Pointer<Fts5Context>, ffi.Int,
               ffi.Pointer<sqlite3_int64>)>> xColumnTotalSize;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Int32,
-                          ffi.Int32,
-                          ffi.Int32)>>)>> xTokenize;
+                          ffi.Int,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Int,
+                          ffi.Int,
+                          ffi.Int)>>)>> xTokenize;
 
   external ffi.Pointer<
-          ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<Fts5Context>)>>
+          ffi.NativeFunction<ffi.Int Function(ffi.Pointer<Fts5Context>)>>
       xPhraseCount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(ffi.Pointer<Fts5Context>, ffi.Int32)>> xPhraseSize;
+          ffi.Int Function(ffi.Pointer<Fts5Context>, ffi.Int)>> xPhraseSize;
+
+  external ffi.Pointer<
+          ffi.NativeFunction<
+              ffi.Int Function(ffi.Pointer<Fts5Context>, ffi.Pointer<ffi.Int>)>>
+      xInstCount;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<Fts5Context>, ffi.Pointer<ffi.Int32>)>> xInstCount;
-
-  external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>> xInst;
+              ffi.Int,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>> xInst;
 
   external ffi.Pointer<
           ffi.NativeFunction<sqlite3_int64 Function(ffi.Pointer<Fts5Context>)>>
@@ -11946,34 +11840,34 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Pointer<ffi.Int32>)>> xColumnText;
+              ffi.Int,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Pointer<ffi.Int>)>> xColumnText;
 
   external ffi.Pointer<
           ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<Fts5Context>, ffi.Int32, ffi.Pointer<ffi.Int32>)>>
+              ffi.Int Function(
+                  ffi.Pointer<Fts5Context>, ffi.Int, ffi.Pointer<ffi.Int>)>>
       xColumnSize;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<Fts5ExtensionApi>,
                           ffi.Pointer<Fts5Context>,
                           ffi.Pointer<ffi.Void>)>>)>> xQueryPhrase;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
               ffi.Pointer<ffi.Void>,
               ffi.Pointer<
@@ -11983,47 +11877,47 @@
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Pointer<ffi.Void> Function(
-              ffi.Pointer<Fts5Context>, ffi.Int32)>> xGetAuxdata;
+              ffi.Pointer<Fts5Context>, ffi.Int)>> xGetAuxdata;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<Fts5PhraseIter>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>> xPhraseFirst;
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>> xPhraseFirst;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<Fts5Context>,
               ffi.Pointer<Fts5PhraseIter>,
-              ffi.Pointer<ffi.Int32>,
-              ffi.Pointer<ffi.Int32>)>> xPhraseNext;
+              ffi.Pointer<ffi.Int>,
+              ffi.Pointer<ffi.Int>)>> xPhraseNext;
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Context>,
-              ffi.Int32,
+              ffi.Int,
               ffi.Pointer<Fts5PhraseIter>,
-              ffi.Pointer<ffi.Int32>)>> xPhraseFirstColumn;
+              ffi.Pointer<ffi.Int>)>> xPhraseFirstColumn;
 
   external ffi.Pointer<
       ffi.NativeFunction<
           ffi.Void Function(
               ffi.Pointer<Fts5Context>,
               ffi.Pointer<Fts5PhraseIter>,
-              ffi.Pointer<ffi.Int32>)>> xPhraseNextColumn;
+              ffi.Pointer<ffi.Int>)>> xPhraseNextColumn;
 }
 
 class Fts5Context extends ffi.Opaque {}
 
 class Fts5PhraseIter extends ffi.Struct {
-  external ffi.Pointer<ffi.Uint8> a;
+  external ffi.Pointer<ffi.UnsignedChar> a;
 
-  external ffi.Pointer<ffi.Uint8> b;
+  external ffi.Pointer<ffi.UnsignedChar> b;
 }
 
 class Fts5Tokenizer extends ffi.Opaque {}
@@ -12031,10 +11925,10 @@
 class fts5_tokenizer extends ffi.Struct {
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<ffi.Void>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int,
               ffi.Pointer<ffi.Pointer<Fts5Tokenizer>>)>> xCreate;
 
   external ffi.Pointer<
@@ -12043,72 +11937,72 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
+          ffi.Int Function(
               ffi.Pointer<Fts5Tokenizer>,
               ffi.Pointer<ffi.Void>,
-              ffi.Int32,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Int32,
+              ffi.Int,
+              ffi.Pointer<ffi.Char>,
+              ffi.Int,
               ffi.Pointer<
                   ffi.NativeFunction<
-                      ffi.Int32 Function(
+                      ffi.Int Function(
                           ffi.Pointer<ffi.Void>,
-                          ffi.Int32,
-                          ffi.Pointer<ffi.Int8>,
-                          ffi.Int32,
-                          ffi.Int32,
-                          ffi.Int32)>>)>> xTokenize;
+                          ffi.Int,
+                          ffi.Pointer<ffi.Char>,
+                          ffi.Int,
+                          ffi.Int,
+                          ffi.Int)>>)>> xTokenize;
 }
 
 class fts5_api extends ffi.Struct {
   /// Currently always set to 2
-  @ffi.Int32()
+  @ffi.Int()
   external int iVersion;
 
   /// Create a new tokenizer
   external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<fts5_api>,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Pointer<ffi.Void>,
-                  ffi.Pointer<fts5_tokenizer>,
-                  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Int Function(
+              ffi.Pointer<fts5_api> pApi,
+              ffi.Pointer<ffi.Char> zName,
+              ffi.Pointer<ffi.Void> pContext,
+              ffi.Pointer<fts5_tokenizer> pTokenizer,
+              ffi.Pointer<
                       ffi.NativeFunction<
-                          ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>
-      xCreateTokenizer;
+                          ffi.Void Function(ffi.Pointer<ffi.Void>)>>
+                  xDestroy)>> xCreateTokenizer;
 
   /// Find an existing tokenizer
   external ffi.Pointer<
       ffi.NativeFunction<
-          ffi.Int32 Function(
-              ffi.Pointer<fts5_api>,
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Void>>,
-              ffi.Pointer<fts5_tokenizer>)>> xFindTokenizer;
+          ffi.Int Function(
+              ffi.Pointer<fts5_api> pApi,
+              ffi.Pointer<ffi.Char> zName,
+              ffi.Pointer<ffi.Pointer<ffi.Void>> ppContext,
+              ffi.Pointer<fts5_tokenizer> pTokenizer)>> xFindTokenizer;
 
   /// Create a new auxiliary function
   external ffi.Pointer<
-          ffi.NativeFunction<
-              ffi.Int32 Function(
-                  ffi.Pointer<fts5_api>,
-                  ffi.Pointer<ffi.Int8>,
-                  ffi.Pointer<ffi.Void>,
-                  fts5_extension_function,
-                  ffi.Pointer<
+      ffi.NativeFunction<
+          ffi.Int Function(
+              ffi.Pointer<fts5_api> pApi,
+              ffi.Pointer<ffi.Char> zName,
+              ffi.Pointer<ffi.Void> pContext,
+              fts5_extension_function xFunction,
+              ffi.Pointer<
                       ffi.NativeFunction<
-                          ffi.Void Function(ffi.Pointer<ffi.Void>)>>)>>
-      xCreateFunction;
+                          ffi.Void Function(ffi.Pointer<ffi.Void>)>>
+                  xDestroy)>> xCreateFunction;
 }
 
 typedef fts5_extension_function = ffi.Pointer<
     ffi.NativeFunction<
         ffi.Void Function(
-            ffi.Pointer<Fts5ExtensionApi>,
-            ffi.Pointer<Fts5Context>,
-            ffi.Pointer<sqlite3_context>,
-            ffi.Int32,
-            ffi.Pointer<ffi.Pointer<sqlite3_value>>)>>;
+            ffi.Pointer<Fts5ExtensionApi> pApi,
+            ffi.Pointer<Fts5Context> pFts,
+            ffi.Pointer<sqlite3_context> pCtx,
+            ffi.Int nVal,
+            ffi.Pointer<ffi.Pointer<sqlite3_value>> apVal)>>;
 
 const String SQLITE_VERSION = '3.32.3';
 
diff --git a/test/large_integration_tests/large_test.dart b/test/large_integration_tests/large_test.dart
index a3fadae..257ff26 100644
--- a/test/large_integration_tests/large_test.dart
+++ b/test/large_integration_tests/large_test.dart
@@ -2,13 +2,11 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:ffigen/src/config_provider/config.dart';
 import 'package:ffigen/src/header_parser.dart';
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
 
 import '../test_utils.dart';
 
@@ -18,7 +16,7 @@
       logWarnings(Level.SEVERE);
     });
     test('Libclang test', () {
-      final config = Config.fromYaml(loadYaml('''
+      final config = testConfig('''
 ${strings.name}: LibClang
 ${strings.description}: Bindings to LibClang.
 ${strings.output}: unused
@@ -37,23 +35,30 @@
     - '**Documentation.h'
     - '**FataErrorHandler.h'
     - '**Index.h'
-${strings.typedefmap}:
-  'size_t': 'IntPtr'
-  'time_t': 'Int64'
+${strings.typeMap}:
+  ${strings.typeMapTypedefs}:
+    'time_t':
+      lib: 'ffi'
+      c-type: 'Int64'
+      dart-type: 'int'
 ${strings.preamble}: |
   // ignore_for_file: camel_case_types, non_constant_identifier_names
-      ''') as YamlMap);
+      ''');
       final library = parse(config);
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_libclang.dart'],
+        'large_test_libclang.dart',
         ['test', 'large_integration_tests', '_expected_libclang_bindings.dart'],
+        // Remove comments containing @ to hack around a mismatch in the
+        // documentation generated by different clang versions.
+        codeNormalizer: (code) =>
+            code.replaceAll(RegExp('[^\n]*///[^\n]*@[^\n]*\n'), ''),
       );
     });
 
     test('CJSON test', () {
-      final config = Config.fromYaml(loadYaml('''
+      final config = testConfig('''
 ${strings.name}: CJson
 ${strings.description}: Bindings to Cjson.
 ${strings.output}: unused
@@ -64,16 +69,14 @@
     - third_party/cjson_library/cJSON.h
   ${strings.includeDirectives}:
     - '**cJSON.h'
-${strings.typedefmap}:
-  'size_t': 'IntPtr'
 ${strings.preamble}: |
   // ignore_for_file: camel_case_types, non_constant_identifier_names
-      ''') as YamlMap);
+      ''');
       final library = parse(config);
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_cjson.dart'],
+        'large_test_cjson.dart',
         ['test', 'large_integration_tests', '_expected_cjson_bindings.dart'],
       );
     });
@@ -81,7 +84,7 @@
     test('SQLite test', () {
       // Excluding functions that use 'va_list' because it can either be a
       // Pointer<__va_list_tag> or int depending on the OS.
-      final config = Config.fromYaml(loadYaml('''
+      final config = testConfig('''
 ${strings.name}: SQLite
 ${strings.description}: Bindings to SQLite.
 ${strings.output}: unused
@@ -100,12 +103,12 @@
     - sqlite3_str_vappendf
 ${strings.preamble}: |
   // ignore_for_file: camel_case_types, non_constant_identifier_names
-      ''') as YamlMap);
+      ''');
       final library = parse(config);
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_sqlite.dart'],
+        'large_test_sqlite.dart',
         ['test', 'large_integration_tests', '_expected_sqlite_bindings.dart'],
       );
     });
diff --git a/test/native_objc_test/.gitignore b/test/native_objc_test/.gitignore
new file mode 100644
index 0000000..ad4daf6
--- /dev/null
+++ b/test/native_objc_test/.gitignore
@@ -0,0 +1,2 @@
+*_bindings.dart
+*-Swift.h
diff --git a/test/native_objc_test/automated_ref_count_config.yaml b/test/native_objc_test/automated_ref_count_config.yaml
new file mode 100644
index 0000000..600d33d
--- /dev/null
+++ b/test/native_objc_test/automated_ref_count_config.yaml
@@ -0,0 +1,18 @@
+name: AutomatedRefCountTestObjCLibrary
+description: 'Tests automatic reference counting of Objective-C objects'
+language: objc
+output: 'automated_ref_count_bindings.dart'
+exclude-all-by-default: true
+functions:
+  include:
+    - createAutoreleasePool
+    - destroyAutoreleasePool
+objc-interfaces:
+  include:
+    - ArcTestObject
+    - RefCounted
+headers:
+  entry-points:
+    - 'automated_ref_count_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/automated_ref_count_test.dart b/test/native_objc_test/automated_ref_count_test.dart
new file mode 100644
index 0000000..63ed706
--- /dev/null
+++ b/test/native_objc_test/automated_ref_count_test.dart
@@ -0,0 +1,317 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import 'package:ffi/ffi.dart';
+import '../test_utils.dart';
+import 'automated_ref_count_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late AutomatedRefCountTestObjCLibrary lib;
+  late void Function(Pointer<Char>, Pointer<Void>) executeInternalCommand;
+
+  group('Automatic reference counting', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib =
+          File('test/native_objc_test/automated_ref_count_test.dylib');
+      verifySetupFile(dylib);
+      lib = AutomatedRefCountTestObjCLibrary(
+          DynamicLibrary.open(dylib.absolute.path));
+
+      executeInternalCommand = DynamicLibrary.process().lookupFunction<
+          Void Function(Pointer<Char>, Pointer<Void>),
+          void Function(
+              Pointer<Char>, Pointer<Void>)>('Dart_ExecuteInternalCommand');
+
+      generateBindingsForCoverage('automated_ref_count');
+    });
+
+    doGC() {
+      final gcNow = "gc-now".toNativeUtf8();
+      executeInternalCommand(gcNow.cast(), nullptr);
+      calloc.free(gcNow);
+    }
+
+    newMethodsInner(Pointer<Int32> counter) {
+      final obj1 = ArcTestObject.new1(lib);
+      obj1.setCounter_(counter);
+      expect(counter.value, 1);
+      final obj2 = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 2);
+    }
+
+    test('new methods ref count correctly', () {
+      // To get the GC to work correctly, the references to the objects all have
+      // to be in a separate function.
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      newMethodsInner(counter);
+      doGC();
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    allocMethodsInner(Pointer<Int32> counter) {
+      final obj1 = ArcTestObject.alloc(lib).initWithCounter_(counter);
+      expect(counter.value, 1);
+      final obj2 = ArcTestObject.castFrom(ArcTestObject.alloc(lib).init());
+      obj2.setCounter_(counter);
+      expect(counter.value, 2);
+      final obj3 = ArcTestObject.allocTheThing(lib).initWithCounter_(counter);
+      expect(counter.value, 3);
+    }
+
+    test('alloc and init methods ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      allocMethodsInner(counter);
+      doGC();
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    copyMethodsInner(Pointer<Int32> counter) {
+      final obj1 = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 1);
+      final obj2 = obj1.copyMe();
+      expect(counter.value, 2);
+      final obj3 = obj1.makeACopy();
+      expect(counter.value, 3);
+      final obj4 = obj1.copyWithZone_(nullptr);
+      expect(counter.value, 4);
+      final obj5 = obj1.copy();
+      expect(counter.value, 5);
+    }
+
+    test('copy methods ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      copyMethodsInner(counter);
+      doGC();
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    autoreleaseMethodsInner(Pointer<Int32> counter) {
+      final obj = ArcTestObject.makeAndAutorelease_(lib, counter);
+      expect(counter.value, 1);
+    }
+
+    test('autorelease methods ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+
+      final pool1 = lib.createAutoreleasePool();
+      autoreleaseMethodsInner(counter);
+      doGC();
+      // The autorelease pool is still holding a reference to the object.
+      expect(counter.value, 1);
+      lib.destroyAutoreleasePool(pool1);
+      expect(counter.value, 0);
+
+      final pool2 = lib.createAutoreleasePool();
+      final obj = ArcTestObject.makeAndAutorelease_(lib, counter);
+      expect(counter.value, 1);
+      doGC();
+      expect(counter.value, 1);
+      lib.destroyAutoreleasePool(pool2);
+      // The obj variable still holds a reference to the object.
+      expect(counter.value, 1);
+      obj.release();
+      expect(counter.value, 0);
+
+      calloc.free(counter);
+    });
+
+    assignPropertiesInnerInner(Pointer<Int32> counter, ArcTestObject outerObj) {
+      final assignObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 2);
+      outerObj.assignedProperty = assignObj;
+      expect(counter.value, 2);
+      expect(assignObj, outerObj.assignedProperty);
+      // To test that outerObj isn't holding a reference to assignObj, we let
+      // assignObj go out of scope, but keep outerObj in scope. This is
+      // dangerous because outerObj now has a dangling reference, so don't
+      // access that reference.
+    }
+
+    assignPropertiesInner(Pointer<Int32> counter) {
+      final outerObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 1);
+      assignPropertiesInnerInner(counter, outerObj);
+      doGC();
+      // assignObj has been cleaned up.
+      expect(counter.value, 1);
+    }
+
+    test('assign properties ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      assignPropertiesInner(counter);
+      doGC();
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    retainPropertiesInnerInner(Pointer<Int32> counter, ArcTestObject outerObj) {
+      final retainObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 2);
+      outerObj.retainedProperty = retainObj;
+      expect(counter.value, 2);
+      expect(retainObj, outerObj.retainedProperty);
+    }
+
+    retainPropertiesInner(Pointer<Int32> counter) {
+      final outerObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 1);
+      retainPropertiesInnerInner(counter, outerObj);
+      doGC();
+      // retainObj is still around, because outerObj retains a reference to it.
+      expect(counter.value, 2);
+    }
+
+    test('retain properties ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      // The getters of retain properties retain+autorelease the value. So we
+      // need an autorelease pool.
+      final pool = lib.createAutoreleasePool();
+      retainPropertiesInner(counter);
+      doGC();
+      expect(counter.value, 1);
+      lib.destroyAutoreleasePool(pool);
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    copyPropertiesInner(Pointer<Int32> counter) {
+      final outerObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 1);
+
+      final copyObj = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 2);
+      outerObj.copiedProperty = copyObj;
+      // Copy properties make a copy of the object, so now we have 3 objects.
+      expect(counter.value, 3);
+      expect(copyObj, isNot(outerObj.copiedProperty));
+
+      final anotherCopy = outerObj.copiedProperty;
+      // The getter doesn't copy the object.
+      expect(counter.value, 3);
+      expect(anotherCopy, outerObj.copiedProperty);
+    }
+
+    test('copy properties ref count correctly', () {
+      final counter = calloc<Int32>();
+      counter.value = 0;
+      // The getters of copy properties retain+autorelease the value. So we need
+      // an autorelease pool.
+      final pool = lib.createAutoreleasePool();
+      copyPropertiesInner(counter);
+      doGC();
+      expect(counter.value, 1);
+      lib.destroyAutoreleasePool(pool);
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+
+    castFromPointerInnerReleaseAndRetain(int address) {
+      final fromCast = RefCounted.castFromPointer(
+          lib, Pointer<ObjCObject>.fromAddress(address),
+          release: true, retain: true);
+      expect(fromCast.refCount, 2);
+    }
+
+    test('castFromPointer - release and retain', () {
+      final obj1 = RefCounted.new1(lib);
+      expect(obj1.refCount, 1);
+
+      castFromPointerInnerReleaseAndRetain(obj1.meAsInt());
+      doGC();
+      expect(obj1.refCount, 1);
+    });
+
+    castFromPointerInnerNoReleaseAndRetain(int address) {
+      final fromCast = RefCounted.castFromPointer(
+          lib, Pointer<ObjCObject>.fromAddress(address),
+          release: false, retain: false);
+      expect(fromCast.refCount, 1);
+    }
+
+    test('castFromPointer - no release and retain', () {
+      final obj1 = RefCounted.new1(lib);
+      expect(obj1.refCount, 1);
+
+      castFromPointerInnerNoReleaseAndRetain(obj1.meAsInt());
+      doGC();
+      expect(obj1.refCount, 1);
+    });
+
+    test('Manual release', () {
+      final counter = calloc<Int32>();
+      final obj1 = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 1);
+      final obj2 = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 2);
+      final obj3 = ArcTestObject.newWithCounter_(lib, counter);
+      expect(counter.value, 3);
+
+      obj1.release();
+      expect(counter.value, 2);
+      obj2.release();
+      expect(counter.value, 1);
+      obj3.release();
+      expect(counter.value, 0);
+
+      expect(() => obj1.release(), throwsStateError);
+      calloc.free(counter);
+    });
+
+    ArcTestObject unownedReferenceInner2(Pointer<Int32> counter) {
+      final obj1 = ArcTestObject.new1(lib);
+      obj1.setCounter_(counter);
+      expect(counter.value, 1);
+      final obj1b = obj1.unownedReference();
+      expect(counter.value, 1);
+
+      // Make a second object so that the counter check in unownedReferenceInner
+      // sees some sort of change. Otherwise this test could pass just by the GC
+      // not working correctly.
+      final obj2 = ArcTestObject.new1(lib);
+      obj2.setCounter_(counter);
+      expect(counter.value, 2);
+
+      return obj1b;
+    }
+
+    unownedReferenceInner(Pointer<Int32> counter) {
+      final obj1b = unownedReferenceInner2(counter);
+      doGC(); // Collect obj1 and obj2.
+      // The underlying object obj1 and obj1b points to still exists, because
+      // obj1b took a reference to it. So we still have 1 object.
+      expect(counter.value, 1);
+    }
+
+    test("Method that returns a reference we don't own", () {
+      // Most ObjC API methods return us a reference without incrementing the
+      // ref count (ie, returns us a reference we don't own). So the wrapper
+      // object has to take ownership by calling retain. This test verifies that
+      // is working correctly by holding a reference to an object returned by a
+      // method, after the original wrapper object is gone.
+      final counter = calloc<Int32>();
+      unownedReferenceInner(counter);
+      doGC();
+      expect(counter.value, 0);
+      calloc.free(counter);
+    });
+  });
+}
diff --git a/test/native_objc_test/automated_ref_count_test.m b/test/native_objc_test/automated_ref_count_test.m
new file mode 100644
index 0000000..d249389
--- /dev/null
+++ b/test/native_objc_test/automated_ref_count_test.m
@@ -0,0 +1,125 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+#import <Foundation/NSAutoreleasePool.h>
+
+@interface ArcTestObject : NSObject {
+  int32_t* counter;
+}
+
++ (instancetype)allocTheThing;
++ (instancetype)newWithCounter:(int32_t*) _counter;
+- (instancetype)initWithCounter:(int32_t*) _counter;
++ (ArcTestObject*)makeAndAutorelease:(int32_t*) _counter;
+- (void)setCounter:(int32_t*) _counter;
+- (void)dealloc;
+- (ArcTestObject*)unownedReference;
+- (ArcTestObject*)copyMe;
+- (ArcTestObject*)makeACopy;
+- (id)copyWithZone:(NSZone*) zone;
+- (ArcTestObject*)returnsRetained NS_RETURNS_RETAINED;
+
+@property (assign) ArcTestObject* assignedProperty;
+@property (retain) ArcTestObject* retainedProperty;
+@property (copy) ArcTestObject* copiedProperty;
+
+@end
+
+@interface RefCounted : NSObject
+
+@property(readonly) uint64_t refCount;
+
+- (int64_t) meAsInt;
+
+@end
+
+@implementation ArcTestObject
+
++ (instancetype)allocTheThing {
+  return [ArcTestObject alloc];
+}
+
++ (instancetype)newWithCounter:(int32_t*) _counter {
+  return [[ArcTestObject alloc] initWithCounter: _counter];
+}
+
+- (instancetype)initWithCounter:(int32_t*) _counter {
+  counter = _counter;
+  ++*counter;
+  return [super init];
+}
+
++ (instancetype)makeAndAutorelease:(int32_t*) _counter {
+  return [[[ArcTestObject alloc] initWithCounter: _counter] autorelease];
+}
+
+- (void)setCounter:(int32_t*) _counter {
+  counter = _counter;
+  ++*counter;
+}
+
+- (void)dealloc {
+  --*counter;
+  [_retainedProperty release];
+  [_copiedProperty release];
+  [super dealloc];
+}
+
+- (ArcTestObject*)unownedReference {
+  return self;
+}
+
+- (ArcTestObject*)copyMe {
+  return [[ArcTestObject alloc] initWithCounter: counter];
+}
+
+- (ArcTestObject*)makeACopy {
+  return [[ArcTestObject alloc] initWithCounter: counter];
+}
+
+- (id)copyWithZone:(NSZone*) zone {
+  return [[ArcTestObject alloc] initWithCounter: counter];
+}
+
+- (ArcTestObject*)returnsRetained NS_RETURNS_RETAINED {
+  return [self retain];
+}
+
+@end
+
+id createAutoreleasePool() {
+  return [NSAutoreleasePool new];
+}
+
+void destroyAutoreleasePool(id pool) {
+  [pool release];
+}
+
+@implementation RefCounted
+
+- (instancetype)init {
+    if (self = [super init]) {
+      self->_refCount = 1;
+    }
+    return self;
+}
+
+- (instancetype)retain {
+  ++self->_refCount;
+  return self;
+}
+
+- (oneway void)release {
+  --self->_refCount;
+  if (self->_refCount == 0) {
+    [self dealloc];
+  }
+}
+
+- (int64_t) meAsInt {
+  return (int64_t) self;
+}
+
+@end
diff --git a/test/native_objc_test/bad_method_config.yaml b/test/native_objc_test/bad_method_config.yaml
new file mode 100644
index 0000000..5ad9c1b
--- /dev/null
+++ b/test/native_objc_test/bad_method_config.yaml
@@ -0,0 +1,21 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# =================== GENERATING TEST BINDINGS ==================
+#    dart run ffigen --config test/bad_method_test/config.yaml
+# ===============================================================
+
+name: NativeObjCLibrary
+description: 'Native Objective C test'
+language: objc
+output: 'bad_method_test_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - 'BadMethodTestObject'
+headers:
+  entry-points:
+    - 'bad_method_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/bad_method_test.dart b/test/native_objc_test/bad_method_test.dart
new file mode 100644
index 0000000..3b87c5b
--- /dev/null
+++ b/test/native_objc_test/bad_method_test.dart
@@ -0,0 +1,41 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'bad_method_test_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late NativeObjCLibrary lib;
+  group('bad_method_test', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/bad_method_test.dylib');
+      verifySetupFile(dylib);
+      lib = NativeObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('bad_method');
+    });
+
+    test("Test incomplete struct methods that weren't skipped", () {
+      final obj = BadMethodTestObject.new1(lib);
+      final structPtr = obj.incompletePointerReturn();
+      expect(structPtr.address, 1234);
+      expect(obj.incompletePointerParam_(structPtr), 1234);
+    });
+
+    test("Test bit field methods that weren't skipped", () {
+      final obj = BadMethodTestObject.new1(lib);
+      final bitFieldPtr = obj.bitFieldPointerReturn();
+      expect(bitFieldPtr.address, 5678);
+      expect(obj.bitFieldPointerParam_(bitFieldPtr), 5678);
+    });
+  });
+}
diff --git a/test/native_objc_test/bad_method_test.m b/test/native_objc_test/bad_method_test.m
new file mode 100644
index 0000000..bef4ede
--- /dev/null
+++ b/test/native_objc_test/bad_method_test.m
@@ -0,0 +1,49 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+struct IncompleteStruct;
+
+struct BitField {
+  int x:3;
+  int y:12;
+};
+
+@interface BadMethodTestObject : NSObject {
+}
+
+- (struct IncompleteStruct)incompleteReturn;  // Skipped.
+- (struct IncompleteStruct*)incompletePointerReturn;  // Not skipped.
+- (int64_t)incompleteParam:(struct IncompleteStruct)x;  // Skipped.
+- (int64_t)incompletePointerParam:(struct IncompleteStruct*)x;  // Not skipped.
+
+- (struct BitField)bitFieldReturn;  // Skipped.
+- (struct BitField*)bitFieldPointerReturn;  // Not skipped.
+- (int64_t)bitFieldParam:(struct BitField)x;  // Skipped.
+- (int64_t)bitFieldPointerParam:(struct BitField*)x;  // Not skipped.
+
+@property struct BitField bitFieldProperty;  // Skipped.
+
+@end
+
+@implementation BadMethodTestObject
+
+- (struct IncompleteStruct*)incompletePointerReturn {
+  return (struct IncompleteStruct*)1234;
+}
+
+- (int64_t)incompletePointerParam:(struct IncompleteStruct*)x {
+  return (int64_t)x;
+}
+
+- (struct BitField*)bitFieldPointerReturn {
+  return (struct BitField*)5678;
+}
+
+- (int64_t)bitFieldPointerParam:(struct BitField*)x {
+  return (int64_t)x;
+}
+
+@end
diff --git a/test/native_objc_test/block_config.yaml b/test/native_objc_test/block_config.yaml
new file mode 100644
index 0000000..e83c6b7
--- /dev/null
+++ b/test/native_objc_test/block_config.yaml
@@ -0,0 +1,13 @@
+name: BlockTestObjCLibrary
+description: 'Tests calling Objective-C blocks'
+language: objc
+output: 'block_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - BlockTester
+headers:
+  entry-points:
+    - 'block_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/block_test.dart b/test/native_objc_test/block_test.dart
new file mode 100644
index 0000000..76f7a93
--- /dev/null
+++ b/test/native_objc_test/block_test.dart
@@ -0,0 +1,119 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import 'package:ffi/ffi.dart';
+import '../test_utils.dart';
+import 'block_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late BlockTestObjCLibrary lib;
+  late void Function(Pointer<Char>, Pointer<Void>) executeInternalCommand;
+
+  group('Blocks', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/block_test.dylib');
+      verifySetupFile(dylib);
+      lib = BlockTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+
+      executeInternalCommand = DynamicLibrary.process().lookupFunction<
+          Void Function(Pointer<Char>, Pointer<Void>),
+          void Function(
+              Pointer<Char>, Pointer<Void>)>('Dart_ExecuteInternalCommand');
+
+      generateBindingsForCoverage('block');
+    });
+
+    doGC() {
+      final gcNow = "gc-now".toNativeUtf8();
+      executeInternalCommand(gcNow.cast(), nullptr);
+      calloc.free(gcNow);
+    }
+
+    test('BlockTester is working', () {
+      // This doesn't test any Block functionality, just that the BlockTester
+      // itself is working correctly.
+      final blockTester = BlockTester.makeFromMultiplier_(lib, 10);
+      expect(blockTester.call_(123), 1230);
+      final intBlock = blockTester.getBlock();
+      final blockTester2 = BlockTester.makeFromBlock_(lib, intBlock);
+      blockTester2.pokeBlock();
+      expect(blockTester2.call_(456), 4560);
+    });
+
+    test('Block from function pointer', () {
+      final block = ObjCBlock.fromFunctionPointer(
+          lib, Pointer.fromFunction(_add100, 999));
+      final blockTester = BlockTester.makeFromBlock_(lib, block);
+      blockTester.pokeBlock();
+      expect(blockTester.call_(123), 223);
+      expect(block(123), 223);
+    });
+
+    int Function(int) makeAdder(int addTo) {
+      return (int x) => addTo + x;
+    }
+
+    test('Block from function', () {
+      final block = ObjCBlock.fromFunction(lib, makeAdder(4000));
+      final blockTester = BlockTester.makeFromBlock_(lib, block);
+      blockTester.pokeBlock();
+      expect(blockTester.call_(123), 4123);
+      expect(block(123), 4123);
+    });
+
+    Pointer<Void> funcPointerBlockRefCountTest() {
+      final block = ObjCBlock.fromFunctionPointer(
+          lib, Pointer.fromFunction(_add100, 999));
+      expect(BlockTester.getBlockRetainCount_(lib, block.pointer.cast()), 1);
+      return block.pointer.cast();
+    }
+
+    test('Function pointer block ref counting', () {
+      final rawBlock = funcPointerBlockRefCountTest();
+      doGC();
+      expect(BlockTester.getBlockRetainCount_(lib, rawBlock.cast()), 0);
+    });
+
+    Pointer<Void> funcBlockRefCountTest() {
+      final block = ObjCBlock.fromFunction(lib, makeAdder(4000));
+      expect(BlockTester.getBlockRetainCount_(lib, block.pointer.cast()), 1);
+      return block.pointer.cast();
+    }
+
+    test('Function pointer block ref counting', () {
+      final rawBlock = funcBlockRefCountTest();
+      doGC();
+      expect(BlockTester.getBlockRetainCount_(lib, rawBlock.cast()), 0);
+    });
+
+    test('Block fields have sensible values', () {
+      final block = ObjCBlock.fromFunction(lib, makeAdder(4000));
+      final blockPtr = block.pointer;
+      expect(blockPtr.ref.isa, isNot(0));
+      expect(blockPtr.ref.flags, isNot(0)); // Set by Block_copy.
+      expect(blockPtr.ref.reserved, 0);
+      expect(blockPtr.ref.invoke, isNot(0));
+      expect(blockPtr.ref.target, isNot(0));
+      final descPtr = blockPtr.ref.descriptor;
+      expect(descPtr.ref.reserved, 0);
+      expect(descPtr.ref.size, isNot(0));
+      expect(descPtr.ref.copy_helper, nullptr);
+      expect(descPtr.ref.dispose_helper, nullptr);
+      expect(descPtr.ref.signature, nullptr);
+    });
+  });
+}
+
+int _add100(int x) {
+  return x + 100;
+}
diff --git a/test/native_objc_test/block_test.m b/test/native_objc_test/block_test.m
new file mode 100644
index 0000000..bdd37a7
--- /dev/null
+++ b/test/native_objc_test/block_test.m
@@ -0,0 +1,76 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+typedef int32_t (^IntBlock)(int32_t);
+
+// Wrapper around a block, so that our Dart code can test creating and invoking
+// blocks in Objective C code.
+@interface BlockTester : NSObject {
+  IntBlock myBlock;
+}
++ (BlockTester*)makeFromBlock:(IntBlock)block;
++ (BlockTester*)makeFromMultiplier:(int32_t)mult;
++ (uint64_t)getBlockRetainCount:(void*)block;
+- (int32_t)call:(int32_t)x;
+- (IntBlock)getBlock;
+- (void)pokeBlock;
+@end
+
+@implementation BlockTester
++ (BlockTester*)makeFromBlock:(IntBlock)block {
+  BlockTester* bt = [BlockTester new];
+  bt->myBlock = block;
+  return bt;
+}
+
++ (BlockTester*)makeFromMultiplier:(int32_t)mult {
+  BlockTester* bt = [BlockTester new];
+  bt->myBlock = [^int32_t(int32_t x) {
+    return x * mult;
+  } copy];
+  return bt;
+}
+
+typedef struct {
+  void* isa;
+  int flags;
+  // There are other fields, but we just need the flags and isa.
+} BlockRefCountExtractor;
+
+void* valid_block_isa = NULL;
++ (uint64_t)getBlockRetainCount:(void*)block {
+  BlockRefCountExtractor* b = (BlockRefCountExtractor*)block;
+  // HACK: The only way I can find to reliably figure out that a block has been
+  // deleted is to check the isa field (the lower bits of the flags field seem
+  // to be randomized, not just set to 0). But we also don't know the value this
+  // field has when it's constructed (copying the block changes it from
+  // _NSConcreteGlobalBlock to an internal value). So we assume that the first
+  // time this function is called, we have a valid block, and on subsequent
+  // calls we check to see if the isa field changed.
+  if (valid_block_isa == NULL) {
+    valid_block_isa = b->isa;
+  }
+  if (b->isa != valid_block_isa) {
+    return 0;
+  }
+  // The ref count is stored in the lower bits of the flags field, but skips the
+  // 0x1 bit.
+  return (b->flags & 0xFFFF) >> 1;
+}
+
+- (int32_t)call:(int32_t)x {
+  return myBlock(x);
+}
+
+- (IntBlock)getBlock {
+  return myBlock;
+}
+
+- (void)pokeBlock {
+  // Used to repro https://github.com/dart-lang/ffigen/issues/376
+  [[myBlock retain] release];
+}
+@end
diff --git a/test/native_objc_test/cast_config.yaml b/test/native_objc_test/cast_config.yaml
new file mode 100644
index 0000000..af33941
--- /dev/null
+++ b/test/native_objc_test/cast_config.yaml
@@ -0,0 +1,13 @@
+name: CastTestObjCLibrary
+description: 'Tests casting objects'
+language: objc
+output: 'cast_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - Castaway
+headers:
+  entry-points:
+    - 'cast_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/cast_test.dart b/test/native_objc_test/cast_test.dart
new file mode 100644
index 0000000..55b787b
--- /dev/null
+++ b/test/native_objc_test/cast_test.dart
@@ -0,0 +1,57 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'cast_bindings.dart';
+import 'util.dart';
+
+void main() {
+  Castaway? testInstance;
+  late CastTestObjCLibrary lib;
+
+  group('cast', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/cast_test.dylib');
+      verifySetupFile(dylib);
+      lib = CastTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      testInstance = Castaway.new1(lib);
+      generateBindingsForCoverage('cast');
+    });
+
+    test('castFrom', () {
+      final fromCast = Castaway.castFrom(testInstance!.meAsNSObject());
+      expect(fromCast, testInstance!);
+    });
+
+    test('castFromPointer', () {
+      final meAsInt = testInstance!.meAsInt();
+      final fromCast = Castaway.castFromPointer(
+          lib, Pointer<ObjCObject>.fromAddress(meAsInt));
+      expect(fromCast, testInstance!);
+    });
+
+    test('equality equals', () {
+      final meAsInt = testInstance!.meAsInt();
+      final fromCast = Castaway.castFromPointer(
+          lib, Pointer<ObjCObject>.fromAddress(meAsInt));
+      expect(fromCast, testInstance!);
+    });
+
+    test('equality not equals', () {
+      final meAsInt = testInstance!.meAsInt();
+      final fromCast = Castaway.castFromPointer(
+          lib, Pointer<ObjCObject>.fromAddress(meAsInt));
+      expect(fromCast, isNot(equals(NSObject.new1(lib))));
+    });
+  });
+}
diff --git a/test/native_objc_test/cast_test.m b/test/native_objc_test/cast_test.m
new file mode 100644
index 0000000..363b3ad
--- /dev/null
+++ b/test/native_objc_test/cast_test.m
@@ -0,0 +1,25 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@interface Castaway : NSObject {
+}
+
+- (NSObject *) meAsNSObject;
+- (int64_t) meAsInt;
+
+@end
+
+@implementation Castaway
+
+- (NSObject *) meAsNSObject {
+  return self;
+}
+
+- (int64_t) meAsInt {
+  return (int64_t) self;
+}
+
+@end
diff --git a/test/native_objc_test/category_config.yaml b/test/native_objc_test/category_config.yaml
new file mode 100644
index 0000000..5c74e1a
--- /dev/null
+++ b/test/native_objc_test/category_config.yaml
@@ -0,0 +1,15 @@
+name: CategoryTestObjCLibrary
+description: 'Tests handling Objective-C categories'
+language: objc
+output: 'category_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - Thing
+headers:
+  entry-points:
+    - 'category_test.m'
+    # Include it twice, as a regression test for #353
+    - 'category_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/category_test.dart b/test/native_objc_test/category_test.dart
new file mode 100644
index 0000000..a424c46
--- /dev/null
+++ b/test/native_objc_test/category_test.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'category_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late Thing testInstance;
+  late CategoryTestObjCLibrary lib;
+
+  group('categories', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/category_test.dylib');
+      verifySetupFile(dylib);
+      lib = CategoryTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      testInstance = Thing.new1(lib);
+      generateBindingsForCoverage('category');
+    });
+
+    test('Category method', () {
+      expect(testInstance.add_Y_(1000, 234), 1234);
+      expect(testInstance.sub_Y_(1234, 1000), 234);
+      expect(testInstance.mul_Y_(1234, 1000), 1234000);
+      expect(testInstance.someProperty, 456);
+    });
+  });
+}
diff --git a/test/native_objc_test/category_test.m b/test/native_objc_test/category_test.m
new file mode 100644
index 0000000..63cd873
--- /dev/null
+++ b/test/native_objc_test/category_test.m
@@ -0,0 +1,37 @@
+#import <Foundation/NSObject.h>
+
+@interface Thing : NSObject {}
+-(int32_t)add:(int32_t)x Y:(int32_t) y;
+@end
+
+@implementation Thing
+-(int32_t)add:(int32_t)x Y:(int32_t) y {
+  return x + y;
+}
+@end
+
+@interface Thing (Sub)
+-(int32_t)sub:(int32_t)x Y:(int32_t) y;
+@end
+
+@implementation Thing (Sub)
+-(int32_t)sub:(int32_t)x Y:(int32_t) y {
+  return x - y;
+}
+@end
+
+@interface Thing (Mul)
+-(int32_t)mul:(int32_t)x Y:(int32_t) y;
+
+@property (readonly) int32_t someProperty;
+@end
+
+@implementation Thing (Mul)
+-(int32_t)mul:(int32_t)x Y:(int32_t) y {
+  return x * y;
+}
+
+-(int32_t)someProperty {
+  return 456;
+}
+@end
diff --git a/test/native_objc_test/failed_to_load_config.yaml b/test/native_objc_test/failed_to_load_config.yaml
new file mode 100644
index 0000000..c96702d
--- /dev/null
+++ b/test/native_objc_test/failed_to_load_config.yaml
@@ -0,0 +1,13 @@
+name: FailedToLoadTestObjCLibrary
+description: 'Tests failing to load an Objective-C library'
+language: objc
+output: 'failed_to_load_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - ClassThatWillFailToLoad
+headers:
+  entry-points:
+    - 'failed_to_load_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/failed_to_load_test.dart b/test/native_objc_test/failed_to_load_test.dart
new file mode 100644
index 0000000..8d1bb70
--- /dev/null
+++ b/test/native_objc_test/failed_to_load_test.dart
@@ -0,0 +1,36 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'failed_to_load_bindings.dart';
+import 'util.dart';
+
+void main() {
+  group('Failed to load', () {
+    setUpAll(() {
+      logWarnings();
+      generateBindingsForCoverage('failed_to_load');
+    });
+
+    test('Failed to load Objective-C class', () {
+      // Load from the host executable, which is missing all the classes for
+      // this test, but has the core ObjC functions, such as objc_getClass. The
+      // library should load ok, because the classes are lazy loaded.
+      final lib = FailedToLoadTestObjCLibrary(DynamicLibrary.executable());
+
+      // But when we try to instantiate one of the classes, we get an error.
+      expect(
+          () => ClassThatWillFailToLoad.new1(lib),
+          throwsA(predicate(
+              (e) => e.toString().contains('ClassThatWillFailToLoad'))));
+    });
+  });
+}
diff --git a/test/native_objc_test/failed_to_load_test.m b/test/native_objc_test/failed_to_load_test.m
new file mode 100644
index 0000000..b4d5e68
--- /dev/null
+++ b/test/native_objc_test/failed_to_load_test.m
@@ -0,0 +1,15 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@interface ClassThatWillFailToLoad : NSObject {}
+-(int32_t)get123;
+@end
+
+@implementation ClassThatWillFailToLoad
+-(int32_t)get123 {
+  return 123;
+}
+@end
diff --git a/test/native_objc_test/forward_decl_config.yaml b/test/native_objc_test/forward_decl_config.yaml
new file mode 100644
index 0000000..7a5c815
--- /dev/null
+++ b/test/native_objc_test/forward_decl_config.yaml
@@ -0,0 +1,14 @@
+name: ForwardDeclTestObjCLibrary
+description: 'Test that forward declared ObjC classes are correctly filled'
+language: objc
+output: 'forward_decl_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - ForwardDeclaredClass
+headers:
+  entry-points:
+    - 'forward_decl_test.h'
+    - 'forward_decl_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/forward_decl_test.dart b/test/native_objc_test/forward_decl_test.dart
new file mode 100644
index 0000000..4a06516
--- /dev/null
+++ b/test/native_objc_test/forward_decl_test.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'forward_decl_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late ForwardDeclTestObjCLibrary lib;
+
+  group('forward decl', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/forward_decl_test.dylib');
+      verifySetupFile(dylib);
+      lib =
+          ForwardDeclTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('forward_decl');
+    });
+
+    test('Forward declared class', () {
+      expect(ForwardDeclaredClass.get123(lib), 123);
+    });
+  });
+}
diff --git a/test/native_objc_test/forward_decl_test.h b/test/native_objc_test/forward_decl_test.h
new file mode 100644
index 0000000..4336b35
--- /dev/null
+++ b/test/native_objc_test/forward_decl_test.h
@@ -0,0 +1,11 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@class ForwardDeclaredClass;
+
+@interface OtherClass : NSObject
++ (ForwardDeclaredClass*) getTheThing;
+@end
diff --git a/test/native_objc_test/forward_decl_test.m b/test/native_objc_test/forward_decl_test.m
new file mode 100644
index 0000000..69c8f66
--- /dev/null
+++ b/test/native_objc_test/forward_decl_test.m
@@ -0,0 +1,15 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@interface ForwardDeclaredClass : NSObject
++ (int32_t)get123;
+@end
+
+@implementation ForwardDeclaredClass
++ (int32_t)get123 {
+  return 123;
+}
+@end
diff --git a/test/native_objc_test/is_instance_config.yaml b/test/native_objc_test/is_instance_config.yaml
new file mode 100644
index 0000000..2673c0b
--- /dev/null
+++ b/test/native_objc_test/is_instance_config.yaml
@@ -0,0 +1,14 @@
+name: IsInstanceTestObjCLibrary
+description: 'Tests isInstance'
+language: objc
+output: 'is_instance_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - ChildClass
+    - UnrelatedClass
+headers:
+  entry-points:
+    - 'is_instance_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/is_instance_test.dart b/test/native_objc_test/is_instance_test.dart
new file mode 100644
index 0000000..bbbfee9
--- /dev/null
+++ b/test/native_objc_test/is_instance_test.dart
@@ -0,0 +1,47 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'is_instance_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late IsInstanceTestObjCLibrary lib;
+
+  group('isInstance', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/is_instance_test.dylib');
+      verifySetupFile(dylib);
+      lib = IsInstanceTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('is_instance');
+    });
+
+    test('Unrelated classes', () {
+      final base = NSObject.castFrom(BaseClass.new1(lib));
+      final unrelated = NSObject.castFrom(UnrelatedClass.new1(lib));
+      expect(BaseClass.isInstance(base), isTrue);
+      expect(BaseClass.isInstance(unrelated), isFalse);
+      expect(UnrelatedClass.isInstance(base), isFalse);
+      expect(UnrelatedClass.isInstance(unrelated), isTrue);
+    });
+
+    test('Base class vs child class', () {
+      final base = NSObject.castFrom(BaseClass.new1(lib));
+      final child = NSObject.castFrom(ChildClass.new1(lib));
+      expect(BaseClass.isInstance(base), isTrue);
+      expect(BaseClass.isInstance(child), isTrue);
+      expect(ChildClass.isInstance(base), isFalse);
+      expect(ChildClass.isInstance(child), isTrue);
+    });
+  });
+}
diff --git a/test/native_objc_test/is_instance_test.m b/test/native_objc_test/is_instance_test.m
new file mode 100644
index 0000000..96b2314
--- /dev/null
+++ b/test/native_objc_test/is_instance_test.m
@@ -0,0 +1,23 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@interface BaseClass : NSObject {}
+@end
+
+@interface ChildClass : BaseClass {}
+@end
+
+@interface UnrelatedClass : NSObject {}
+@end
+
+@implementation BaseClass
+@end
+
+@implementation ChildClass
+@end
+
+@implementation UnrelatedClass
+@end
diff --git a/test/native_objc_test/method_config.yaml b/test/native_objc_test/method_config.yaml
new file mode 100644
index 0000000..969ab7c
--- /dev/null
+++ b/test/native_objc_test/method_config.yaml
@@ -0,0 +1,13 @@
+name: MethodTestObjCLibrary
+description: 'Tests calling Objective-C methods'
+language: objc
+output: 'method_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - MethodInterface
+headers:
+  entry-points:
+    - 'method_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/method_test.dart b/test/native_objc_test/method_test.dart
new file mode 100644
index 0000000..ebb1fba
--- /dev/null
+++ b/test/native_objc_test/method_test.dart
@@ -0,0 +1,66 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'method_bindings.dart';
+import 'util.dart';
+
+void main() {
+  MethodInterface? testInstance;
+  late MethodTestObjCLibrary lib;
+
+  group('method calls', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/method_test.dylib');
+      verifySetupFile(dylib);
+      lib = MethodTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      testInstance = MethodInterface.new1(lib);
+      generateBindingsForCoverage('method');
+    });
+
+    group('Instance methods', () {
+      test('No arguments', () {
+        expect(testInstance!.add(), 5);
+      });
+
+      test('One argument', () {
+        expect(testInstance!.add_(23), 23);
+      });
+
+      test('Two arguments', () {
+        expect(testInstance!.add_Y_(23, 17), 40);
+      });
+
+      test('Three arguments', () {
+        expect(testInstance!.add_Y_Z_(23, 17, 60), 100);
+      });
+    });
+
+    group('Class methods', () {
+      test('No arguments', () {
+        expect(MethodInterface.sub(lib), -5);
+      });
+
+      test('One argument', () {
+        expect(MethodInterface.sub_(lib, 7), -7);
+      });
+
+      test('Two arguments', () {
+        expect(MethodInterface.sub_Y_(lib, 7, 3), -10);
+      });
+
+      test('Three arguments', () {
+        expect(MethodInterface.sub_Y_Z_(lib, 10, 7, 3), -20);
+      });
+    });
+  });
+}
diff --git a/test/native_objc_test/method_test.m b/test/native_objc_test/method_test.m
new file mode 100644
index 0000000..86ea090
--- /dev/null
+++ b/test/native_objc_test/method_test.m
@@ -0,0 +1,53 @@
+#import <Foundation/NSObject.h>
+
+@interface MethodInterface : NSObject {
+}
+
+
+-(int32_t)add;
+-(int32_t)add:(int32_t)x;
+-(int32_t)add:(int32_t)x Y:(int32_t) y;
+-(int32_t)add:(int32_t)x Y:(int32_t) y Z:(int32_t) z;
+
++(int32_t)sub;
++(int32_t)sub:(int32_t)x;
++(int32_t)sub:(int32_t)x Y:(int32_t) y;
++(int32_t)sub:(int32_t)x Y:(int32_t) y Z:(int32_t) z;
+
+@end
+
+@implementation MethodInterface
+
+-(int32_t)add {
+  return 5;
+}
+
+-(int32_t)add:(int32_t)x {
+    return x;
+}
+
+-(int32_t)add:(int32_t)x Y:(int32_t) y {
+    return x + y;
+}
+
+-(int32_t)add:(int32_t)x Y:(int32_t) y Z:(int32_t) z {
+    return x + y + z;
+}
+
++(int32_t)sub {
+  return -5;
+}
+
++(int32_t)sub:(int32_t)x {
+    return -x;
+}
+
++(int32_t)sub:(int32_t)x Y:(int32_t) y {
+    return -x - y;
+}
+
++(int32_t)sub:(int32_t)x Y:(int32_t) y Z:(int32_t) z {
+    return - x - y - z;
+}
+
+@end
diff --git a/test/native_objc_test/native_objc_config.yaml b/test/native_objc_test/native_objc_config.yaml
new file mode 100644
index 0000000..58bcf50
--- /dev/null
+++ b/test/native_objc_test/native_objc_config.yaml
@@ -0,0 +1,21 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# =================== GENERATING TEST BINDINGS ==================
+#    dart run ffigen --config test/native_objc_test/config.yaml
+# ===============================================================
+
+name: NativeObjCLibrary
+description: 'Native Objective C test'
+language: objc
+output: 'native_objc_test_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - Foo
+headers:
+  entry-points:
+    - 'native_objc_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/native_objc_test.dart b/test/native_objc_test/native_objc_test.dart
new file mode 100644
index 0000000..28c006a
--- /dev/null
+++ b/test/native_objc_test/native_objc_test.dart
@@ -0,0 +1,66 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'native_objc_test_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late NativeObjCLibrary lib;
+  group('native_objc_test', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/native_objc_test.dylib');
+      verifySetupFile(dylib);
+      lib = NativeObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('native_objc');
+    });
+
+    test('Basic types', () {
+      final foo = Foo.new1(lib);
+      final obj = NSObject.new1(lib);
+
+      foo.intVal = 123;
+      expect(foo.intVal, 123);
+
+      foo.boolVal = true;
+      expect(foo.boolVal, true);
+
+      foo.idVal = obj;
+      expect(foo.idVal, obj);
+
+      foo.selVal = Pointer<ObjCSel>.fromAddress(456);
+      expect(foo.selVal.address, 456);
+
+      foo.classVal = obj;
+      expect(foo.classVal, obj);
+    });
+
+    test('Interface basics, with Foo', () {
+      final foo1 = Foo.makeFoo_(lib, 3.14159);
+      final foo2 = Foo.makeFoo_(lib, 2.71828);
+
+      expect(foo1.intVal, 3);
+      expect(foo2.intVal, 2);
+
+      expect(foo1.multiply_withOtherFoo_(false, foo2), 8);
+      expect(foo1.multiply_withOtherFoo_(true, foo2), 6);
+
+      foo1.intVal = 100;
+      expect(foo1.multiply_withOtherFoo_(false, foo2), 8);
+      expect(foo1.multiply_withOtherFoo_(true, foo2), 200);
+
+      foo2.setDoubleVal_(1.61803);
+      expect(foo1.multiply_withOtherFoo_(false, foo2), 5);
+      expect(foo1.multiply_withOtherFoo_(true, foo2), 200);
+    });
+  });
+}
diff --git a/test/native_objc_test/native_objc_test.m b/test/native_objc_test/native_objc_test.m
new file mode 100644
index 0000000..e510df8
--- /dev/null
+++ b/test/native_objc_test/native_objc_test.m
@@ -0,0 +1,48 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+#import <Foundation/NSString.h>
+
+@interface Foo : NSObject {
+  double doubleVal;
+}
+
+@property int32_t intVal;
+@property BOOL boolVal;
+@property id idVal;
+@property SEL selVal;
+@property NSObject* objVal;
+@property Class classVal;
+
++ (Foo*)makeFoo:(double)x;
+
+- (int32_t)multiply:(BOOL)useIntVals withOtherFoo:(Foo*)other;
+
+- (void)setDoubleVal:(double)x;
+
+@end
+
+@implementation Foo
+
++ (Foo*)makeFoo:(double)x {
+  Foo* foo = [Foo new];
+  foo->doubleVal = x;
+  [foo setIntVal:((int32_t)x)];
+  return foo;
+}
+
+- (int32_t)multiply:(BOOL)useIntVals withOtherFoo:(Foo*)other {
+  if (useIntVals) {
+    return [self intVal] * [other intVal];
+  } else {
+    return (int32_t)(self->doubleVal * other->doubleVal);
+  }
+}
+
+- (void)setDoubleVal:(double)x {
+  self->doubleVal = x;
+}
+
+@end
diff --git a/test/native_objc_test/nullable_config.yaml b/test/native_objc_test/nullable_config.yaml
new file mode 100644
index 0000000..e46cf06
--- /dev/null
+++ b/test/native_objc_test/nullable_config.yaml
@@ -0,0 +1,13 @@
+name: NullableTestObjCLibrary
+description: 'Tests calling Objective-C methods'
+language: objc
+output: 'nullable_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - NullableInterface
+headers:
+  entry-points:
+    - 'nullable_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/nullable_test.dart b/test/native_objc_test/nullable_test.dart
new file mode 100644
index 0000000..8814dc5
--- /dev/null
+++ b/test/native_objc_test/nullable_test.dart
@@ -0,0 +1,70 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'nullable_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late NullableTestObjCLibrary lib;
+  NullableInterface? nullableInterface;
+  NSObject? obj;
+  group('method calls', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/nullable_test.dylib');
+      verifySetupFile(dylib);
+      lib = NullableTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      nullableInterface = NullableInterface.new1(lib);
+      obj = NSObject.new1(lib);
+      generateBindingsForCoverage('nullable');
+    });
+
+    group('Nullable property', () {
+      test('Not null', () {
+        nullableInterface!.nullableObjectProperty = obj!;
+        expect(nullableInterface!.nullableObjectProperty, obj!);
+      });
+      test('Null', () {
+        nullableInterface!.nullableObjectProperty = null;
+        expect(nullableInterface!.nullableObjectProperty, null);
+      });
+    });
+
+    group('Nullable return', () {
+      test('Not null', () {
+        expect(NullableInterface.returnNil_(lib, false), isA<NSObject>());
+      });
+      test('Null', () {
+        expect(NullableInterface.returnNil_(lib, true), null);
+      });
+    }, skip: "TODO(#334): enable this test");
+
+    group('Nullable arguments', () {
+      test('Not null', () {
+        expect(
+            NullableInterface.isNullWithNullableNSObjectArg_(lib, obj!), false);
+      });
+      test('Null', () {
+        expect(
+            NullableInterface.isNullWithNullableNSObjectArg_(lib, null), true);
+      });
+    });
+
+    group('Not-nullable arguments', () {
+      test('Not null', () {
+        expect(
+            NullableInterface.isNullWithNotNullableNSObjectPtrArg_(lib, obj!),
+            false);
+      });
+    });
+  });
+}
diff --git a/test/native_objc_test/nullable_test.m b/test/native_objc_test/nullable_test.m
new file mode 100644
index 0000000..abf1b02
--- /dev/null
+++ b/test/native_objc_test/nullable_test.m
@@ -0,0 +1,32 @@
+#import <Foundation/NSObject.h>
+
+@interface NullableInterface  : NSObject {
+}
+
++(BOOL) isNullWithNullableNSObjectArg:(nullable NSObject *)x;
++(BOOL) isNullWithNotNullableNSObjectPtrArg:(NSObject *)x;
++(nullable NSObject *) returnNil:(BOOL)r;
+
+@property (nullable, retain) NSObject *nullableObjectProperty;
+
+@end
+
+@implementation NullableInterface
+
++(BOOL) isNullWithNullableNSObjectArg:(nullable NSObject *)x {
+  return x == NULL;
+}
+
++(BOOL) isNullWithNotNullableNSObjectPtrArg:(NSObject *)x {
+  return x == NULL;
+}
+
++(nullable NSObject *) returnNil:(BOOL)r {
+  if (r) {
+    return nil;
+  } else {
+    return [NSObject new];
+  }
+}
+
+@end
diff --git a/test/native_objc_test/property_config.yaml b/test/native_objc_test/property_config.yaml
new file mode 100644
index 0000000..220a83a
--- /dev/null
+++ b/test/native_objc_test/property_config.yaml
@@ -0,0 +1,13 @@
+name: PropertyTestObjCLibrary
+description: 'Tests calling Objective-C properties i.e. getters and setters'
+language: objc
+output: 'property_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - PropertyInterface
+headers:
+  entry-points:
+    - 'property_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/property_test.dart b/test/native_objc_test/property_test.dart
new file mode 100644
index 0000000..72c11e0
--- /dev/null
+++ b/test/native_objc_test/property_test.dart
@@ -0,0 +1,52 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'property_bindings.dart';
+import 'util.dart';
+
+void main() {
+  PropertyInterface? testInstance;
+  late PropertyTestObjCLibrary lib;
+
+  group('properties', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/property_test.dylib');
+      verifySetupFile(dylib);
+      lib = PropertyTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      testInstance = PropertyInterface.new1(lib);
+      generateBindingsForCoverage('property');
+    });
+
+    group('instance properties', () {
+      test('read-only property', () {
+        expect(testInstance!.readOnlyProperty, 7);
+      });
+
+      test('read-write property', () {
+        testInstance!.readWriteProperty = 23;
+        expect(testInstance!.readWriteProperty, 23);
+      });
+    });
+
+    group('class properties', () {
+      test('read-only property', () {
+        expect(PropertyInterface.getClassReadOnlyProperty(lib), 42);
+      });
+
+      test('read-write property', () {
+        PropertyInterface.setClassReadWriteProperty(lib, 101);
+        expect(PropertyInterface.getClassReadWriteProperty(lib), 101);
+      });
+    });
+  });
+}
diff --git a/test/native_objc_test/property_test.m b/test/native_objc_test/property_test.m
new file mode 100644
index 0000000..117c6d5
--- /dev/null
+++ b/test/native_objc_test/property_test.m
@@ -0,0 +1,36 @@
+#import <Foundation/NSObject.h>
+
+@class UndefinedTemplate<ObjectType>;
+
+@interface PropertyInterface : NSObject {
+}
+
+@property (readonly) int32_t readOnlyProperty;
+@property int32_t readWriteProperty;
+@property (class, readonly, copy) UndefinedTemplate<NSString *> *regressGH436;
+@property (class, readonly) int32_t classReadOnlyProperty;
+@property (class) int32_t classReadWriteProperty;
+
+@end
+
+@implementation PropertyInterface
+
+static int32_t _classReadWriteProperty = 0;
+
+- (int32_t)readOnlyProperty {
+  return 7;
+}
+
++ (int32_t)classReadOnlyProperty {
+  return 42;
+}
+
++ (int32_t)classReadWriteProperty {
+  return _classReadWriteProperty;
+}
+
++ (void)setClassReadWriteProperty:(int32_t)x {
+  _classReadWriteProperty = x;
+}
+
+@end
\ No newline at end of file
diff --git a/test/native_objc_test/rename_config.yaml b/test/native_objc_test/rename_config.yaml
new file mode 100644
index 0000000..8dbae03
--- /dev/null
+++ b/test/native_objc_test/rename_config.yaml
@@ -0,0 +1,23 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+# =================== GENERATING TEST BINDINGS ==================
+#    dart run ffigen --config test/rename_test/config.yaml
+# ===============================================================
+
+name: RenameLibrary
+description: 'Rename test'
+language: objc
+output: 'rename_test_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - _Renamed
+  rename:
+    '_(.*)': '$1'
+headers:
+  entry-points:
+    - 'rename_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/rename_test.dart b/test/native_objc_test/rename_test.dart
new file mode 100644
index 0000000..aa8a23f
--- /dev/null
+++ b/test/native_objc_test/rename_test.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'rename_test_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late RenameLibrary lib;
+  group('rename_test', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/rename_test.dylib');
+      verifySetupFile(dylib);
+      lib = RenameLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('rename');
+    });
+
+    test('Renamed class', () {
+      final renamed = Renamed.new1(lib);
+      renamed.property = 123;
+      expect(renamed.property, 123);
+    });
+  });
+}
diff --git a/test/native_objc_test/rename_test.m b/test/native_objc_test/rename_test.m
new file mode 100644
index 0000000..6187bd8
--- /dev/null
+++ b/test/native_objc_test/rename_test.m
@@ -0,0 +1,12 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#import <Foundation/NSObject.h>
+
+@interface _Renamed : NSObject
+@property int32_t property;
+@end
+
+@implementation _Renamed
+@end
diff --git a/test/native_objc_test/setup.dart b/test/native_objc_test/setup.dart
new file mode 100644
index 0000000..5eff12c
--- /dev/null
+++ b/test/native_objc_test/setup.dart
@@ -0,0 +1,131 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:io';
+
+Future<void> _buildLib(String input, String output) async {
+  final args = [
+    '-shared',
+    '-fpic',
+    '-x',
+    'objective-c',
+    input,
+    '-framework',
+    'Foundation',
+    '-o',
+    output,
+  ];
+  final process = await Process.start('clang', args);
+  unawaited(stdout.addStream(process.stdout));
+  unawaited(stderr.addStream(process.stderr));
+  final result = await process.exitCode;
+  if (result != 0) {
+    throw ProcessException('clang', args, 'Build failed', result);
+  }
+  print('Generated file: $output');
+}
+
+Future<void> _buildSwift(
+    String input, String outputHeader, String outputLib) async {
+  final args = [
+    '-c',
+    input,
+    '-emit-objc-header-path',
+    outputHeader,
+    '-emit-library',
+    '-o',
+    outputLib,
+  ];
+  final process = await Process.start('swiftc', args);
+  unawaited(stdout.addStream(process.stdout));
+  unawaited(stderr.addStream(process.stderr));
+  final result = await process.exitCode;
+  if (result != 0) {
+    throw ProcessException('swiftc', args, 'Build failed', result);
+  }
+  print('Generated files: $outputHeader and $outputLib');
+}
+
+Future<void> _generateBindings(String config) async {
+  final args = [
+    'run',
+    'ffigen',
+    '--config',
+    'test/native_objc_test/$config',
+  ];
+  final process =
+      await Process.start(Platform.executable, args, workingDirectory: '../..');
+  unawaited(stdout.addStream(process.stdout));
+  unawaited(stderr.addStream(process.stderr));
+  final result = await process.exitCode;
+  if (result != 0) {
+    throw ProcessException('dart', args, 'Generating bindings', result);
+  }
+  print('Generated bindings for: $config');
+}
+
+List<String> _getTestNames() {
+  const configSuffix = '_config.yaml';
+  final names = <String>[];
+  for (final entity in Directory.current.listSync()) {
+    final filename = entity.uri.pathSegments.last;
+    if (filename.endsWith(configSuffix)) {
+      names.add(filename.substring(0, filename.length - configSuffix.length));
+    }
+  }
+  return names;
+}
+
+Future<void> build(List<String> testNames) async {
+  print('Building Dynamic Library for Objective C Native Tests...');
+  for (final name in testNames) {
+    final mFile = '${name}_test.m';
+    if (await File(mFile).exists()) {
+      await _buildLib(mFile, '${name}_test.dylib');
+    }
+  }
+
+  print('Building Dynamic Library and Header for Swift Tests...');
+  for (final name in testNames) {
+    final swiftFile = '${name}_test.swift';
+    if (await File(swiftFile).exists()) {
+      await _buildSwift(
+          swiftFile, '${name}_test-Swift.h', '${name}_test.dylib');
+    }
+  }
+
+  print('Generating Bindings for Objective C Native Tests...');
+  for (final name in testNames) {
+    await _generateBindings('${name}_config.yaml');
+  }
+}
+
+Future<void> clean(List<String> testNames) async {
+  print('Deleting generated and built files...');
+  final filenames = [
+    for (final name in testNames) ...[
+      '${name}_bindings.dart',
+      '${name}_test_bindings.dart',
+      '${name}_test.dylib'
+    ],
+  ];
+  Future.wait(filenames.map((fileName) async {
+    final file = File(fileName);
+    final exists = await file.exists();
+    if (exists) await file.delete();
+  }));
+}
+
+Future<void> main(List<String> arguments) async {
+  if (!Platform.isMacOS) {
+    throw OSError('Objective C tests are only supported on MacOS');
+  }
+
+  if (arguments.isNotEmpty && arguments[0] == 'clean') {
+    return await clean(_getTestNames());
+  }
+
+  return await build(arguments.isNotEmpty ? arguments : _getTestNames());
+}
diff --git a/test/native_objc_test/string_config.yaml b/test/native_objc_test/string_config.yaml
new file mode 100644
index 0000000..016b2bd
--- /dev/null
+++ b/test/native_objc_test/string_config.yaml
@@ -0,0 +1,13 @@
+name: StringTestObjCLibrary
+description: 'Tests calling Objective-C string methods'
+language: objc
+output: 'string_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - StringUtil
+headers:
+  entry-points:
+    - 'string_test.m'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/string_test.dart b/test/native_objc_test/string_test.dart
new file mode 100644
index 0000000..068e5ed
--- /dev/null
+++ b/test/native_objc_test/string_test.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'string_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late StringTestObjCLibrary lib;
+
+  group('string', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/string_test.dylib');
+      verifySetupFile(dylib);
+      lib = StringTestObjCLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('string');
+    });
+
+    for (final s in ['Hello', '🇵🇬', 'Embedded\u0000Null']) {
+      test('NSString to/from Dart string [$s]', () {
+        final ns1 = NSString(lib, s);
+        expect(ns1.length, s.length);
+        expect(ns1.toString().length, s.length);
+        expect(ns1.toString(), s);
+
+        final ns2 = s.toNSString(lib);
+        expect(ns2.length, s.length);
+        expect(ns2.toString().length, s.length);
+        expect(ns2.toString(), s);
+      });
+    }
+
+    test('strings usable', () {
+      final str1 = 'Hello'.toNSString(lib);
+      final str2 = 'World!'.toNSString(lib);
+
+      final str3 = StringUtil.strConcat_with_(lib, str1, str2);
+      expect(str3.length, 11);
+      expect(str3.toString(), "HelloWorld!");
+    });
+  });
+}
diff --git a/test/native_objc_test/string_test.m b/test/native_objc_test/string_test.m
new file mode 100644
index 0000000..5add18c
--- /dev/null
+++ b/test/native_objc_test/string_test.m
@@ -0,0 +1,13 @@
+#import <Foundation/NSObject.h>
+#import <Foundation/NSString.h>
+
+// TODO(#309): strConcat should just be a static function.
+@interface StringUtil : NSObject {}
++ (NSString*)strConcat:(NSString*)a with:(NSString*)b;
+@end
+
+@implementation StringUtil
++ (NSString*)strConcat:(NSString*)a with:(NSString*)b {
+  return [a stringByAppendingString:b];
+}
+@end
diff --git a/test/native_objc_test/swift_class_config.yaml b/test/native_objc_test/swift_class_config.yaml
new file mode 100644
index 0000000..20bd288
--- /dev/null
+++ b/test/native_objc_test/swift_class_config.yaml
@@ -0,0 +1,15 @@
+name: SwiftClassTestLibrary
+description: 'Tests Swift classes'
+language: objc
+output: 'swift_class_bindings.dart'
+exclude-all-by-default: true
+objc-interfaces:
+  include:
+    - MySwiftClass
+  module:
+    'MySwiftClass': 'swift_class_test'
+headers:
+  entry-points:
+    - 'swift_class_test-Swift.h'
+preamble: |
+  // ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field
diff --git a/test/native_objc_test/swift_class_test.dart b/test/native_objc_test/swift_class_test.dart
new file mode 100644
index 0000000..09a2714
--- /dev/null
+++ b/test/native_objc_test/swift_class_test.dart
@@ -0,0 +1,34 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Objective C support is only available on mac.
+@TestOn('mac-os')
+
+import 'dart:ffi';
+import 'dart:io';
+
+import 'package:test/test.dart';
+import '../test_utils.dart';
+import 'swift_class_bindings.dart';
+import 'util.dart';
+
+void main() {
+  late SwiftClassTestLibrary lib;
+  group('swift_class_test', () {
+    setUpAll(() {
+      logWarnings();
+      final dylib = File('test/native_objc_test/swift_class_test.dylib');
+      verifySetupFile(dylib);
+      lib = SwiftClassTestLibrary(DynamicLibrary.open(dylib.absolute.path));
+      generateBindingsForCoverage('swift_class');
+    });
+
+    test('Renamed class', () {
+      final swiftObject = MySwiftClass.new1(lib);
+      expect(swiftObject.getValue(), 123);
+      swiftObject.setValueWithX_(456);
+      expect(swiftObject.getValue(), 456);
+    });
+  });
+}
diff --git a/test/native_objc_test/swift_class_test.swift b/test/native_objc_test/swift_class_test.swift
new file mode 100644
index 0000000..26ae016
--- /dev/null
+++ b/test/native_objc_test/swift_class_test.swift
@@ -0,0 +1,11 @@
+import Foundation
+
+@objc public class MySwiftClass: NSObject {
+  var val = 123;
+  @objc public func getValue() -> Int {
+    return val;
+  }
+  @objc public func setValue(x: Int) {
+    val = x;
+  }
+}
diff --git a/test/native_objc_test/util.dart b/test/native_objc_test/util.dart
new file mode 100644
index 0000000..7ef14bf
--- /dev/null
+++ b/test/native_objc_test/util.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:ffigen/ffigen.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../test_utils.dart';
+
+void generateBindingsForCoverage(String testName) {
+  // The ObjC test bindings are generated in setup.dart (see #362), which means
+  // that the ObjC related bits of ffigen are missed by test coverage. So this
+  // function just regenerates those bindings. It doesn't test anything except
+  // that the generation succeeded, by asserting the file exists.
+  final config = testConfig(
+      File(path.join('test', 'native_objc_test', '${testName}_config.yaml'))
+          .readAsStringSync());
+  final library = parse(config);
+  final file = File(
+    path.join('test', 'debug_generated', '${testName}_test.dart'),
+  );
+  library.generateFile(file);
+  assert(file.existsSync());
+  file.delete();
+}
diff --git a/test/native_test/config.yaml b/test/native_test/config.yaml
index 6d8e475..901e559 100644
--- a/test/native_test/config.yaml
+++ b/test/native_test/config.yaml
@@ -8,10 +8,10 @@
 
 name: NativeLibrary
 description: 'Native tests.'
-output: 'test/native_test/native_test_bindings.dart'
+output: 'native_test_bindings.dart'
 headers:
   entry-points:
-    - 'test/native_test/native_test.c'
+    - 'native_test.c'
   include-directives:
     - '**native_test.c'
 
diff --git a/test/native_test/native_test.c b/test/native_test/native_test.c
index 037a73b..f971ac6 100644
--- a/test/native_test/native_test.c
+++ b/test/native_test/native_test.c
@@ -27,6 +27,8 @@
 
 intptr_t Function1IntPtr(intptr_t x) { return x + 42; }
 
+uintptr_t Function1UintPtr(uintptr_t x) { return x + 42; }
+
 float Function1Float(float x) { return x + 42.0f; }
 
 double Function1Double(double x) { return x + 42.0; }
diff --git a/test/native_test/native_test.dart b/test/native_test/native_test.dart
index 08e1475..7a19c2a 100644
--- a/test/native_test/native_test.dart
+++ b/test/native_test/native_test.dart
@@ -9,7 +9,6 @@
 import 'package:ffigen/ffigen.dart';
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart';
 import '../test_utils.dart';
 import 'native_test_bindings.dart';
 
@@ -24,29 +23,37 @@
       } else if (Platform.isWindows) {
         dylibName = r'test\native_test\native_test.dll';
       }
-      bindings =
-          NativeLibrary(DynamicLibrary.open(File(dylibName).absolute.path));
+      final dylib = File(dylibName);
+      verifySetupFile(dylib);
+      bindings = NativeLibrary(DynamicLibrary.open(dylib.absolute.path));
     });
 
     test('generate_bindings', () {
-      final config = Config.fromYaml(loadYaml(
-          File(path.join('test', 'native_test', 'config.yaml'))
-              .readAsStringSync()) as YamlMap);
-      final library = parse(config);
-      final file = File(
+      final configFile =
+          File(path.join('test', 'native_test', 'config.yaml')).absolute;
+      final outFile = File(
         path.join('test', 'debug_generated', 'native_test_bindings.dart'),
-      );
-      library.generateFile(file);
+      ).absolute;
+
+      late Config config;
+      withChDir(configFile.path, () {
+        config = testConfigFromPath(configFile.path);
+      });
+      final library = parse(config);
+
+      library.generateFile(outFile);
 
       try {
-        final actual = file.readAsStringSync();
-        final expected = File(path.join(config.output)).readAsStringSync();
+        final actual = outFile.readAsStringSync().replaceAll('\r', '');
+        final expected = File(path.join(config.output))
+            .readAsStringSync()
+            .replaceAll('\r', '');
         expect(actual, expected);
-        if (file.existsSync()) {
-          file.delete();
+        if (outFile.existsSync()) {
+          outFile.delete();
         }
       } catch (e) {
-        print('Failed test: Debug generated file: ${file.absolute.path}');
+        print('Failed test: Debug generated file: ${outFile.absolute.path}');
         rethrow;
       }
     });
diff --git a/test/native_test/native_test_bindings.dart b/test/native_test/native_test_bindings.dart
index 8c4d0ea..d4a25d6 100644
--- a/test/native_test/native_test_bindings.dart
+++ b/test/native_test/native_test_bindings.dart
@@ -3,6 +3,7 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Native tests.
@@ -25,15 +26,14 @@
     bool x,
   ) {
     return _Function1Bool(
-          x ? 1 : 0,
-        ) !=
-        0;
+      x,
+    );
   }
 
   late final _Function1BoolPtr =
-      _lookup<ffi.NativeFunction<ffi.Uint8 Function(ffi.Uint8)>>(
-          'Function1Bool');
-  late final _Function1Bool = _Function1BoolPtr.asFunction<int Function(int)>();
+      _lookup<ffi.NativeFunction<ffi.Bool Function(ffi.Bool)>>('Function1Bool');
+  late final _Function1Bool =
+      _Function1BoolPtr.asFunction<bool Function(bool)>();
 
   int Function1Uint8(
     int x,
@@ -159,6 +159,20 @@
   late final _Function1IntPtr =
       _Function1IntPtrPtr.asFunction<int Function(int)>();
 
+  int Function1UintPtr(
+    int x,
+  ) {
+    return _Function1UintPtr(
+      x,
+    );
+  }
+
+  late final _Function1UintPtrPtr =
+      _lookup<ffi.NativeFunction<ffi.UintPtr Function(ffi.UintPtr)>>(
+          'Function1UintPtr');
+  late final _Function1UintPtr =
+      _Function1UintPtrPtr.asFunction<int Function(int)>();
+
   double Function1Float(
     double x,
   ) {
@@ -209,10 +223,9 @@
     );
   }
 
-  late final _Function1StructReturnByValuePtr = _lookup<
-      ffi.NativeFunction<
-          Struct3 Function(ffi.Int32, ffi.Int32,
-              ffi.Int32)>>('Function1StructReturnByValue');
+  late final _Function1StructReturnByValuePtr =
+      _lookup<ffi.NativeFunction<Struct3 Function(ffi.Int, ffi.Int, ffi.Int)>>(
+          'Function1StructReturnByValue');
   late final _Function1StructReturnByValue = _Function1StructReturnByValuePtr
       .asFunction<Struct3 Function(int, int, int)>();
 
@@ -225,7 +238,7 @@
   }
 
   late final _Function1StructPassByValuePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(Struct3)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(Struct3)>>(
           'Function1StructPassByValue');
   late final _Function1StructPassByValue =
       _Function1StructPassByValuePtr.asFunction<int Function(Struct3)>();
@@ -240,12 +253,12 @@
 }
 
 class Struct3 extends ffi.Struct {
-  @ffi.Int32()
+  @ffi.Int()
   external int a;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int b;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int c;
 }
diff --git a/test/regen.dart b/test/regen.dart
new file mode 100644
index 0000000..1ee0df3
--- /dev/null
+++ b/test/regen.dart
@@ -0,0 +1,74 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:args/args.dart';
+import 'package:ffigen/ffigen.dart';
+import 'package:logging/logging.dart';
+import './test_utils.dart';
+
+const usage = r'''Regenerates the Dart FFI bindings used in tests and examples.
+
+Use this command when developing features that change the generated bindings
+e.g. with this command:
+
+$ dart run test/setup.dart && dart run test/regen.dart && dart test
+''';
+
+Future<void> _regenConfig(File yamlConfig, File bindingOutput) async {
+  yamlConfig = yamlConfig.absolute;
+  bindingOutput = bindingOutput.absolute;
+  final config = testConfigFromPath(yamlConfig.path);
+  final library = parse(config);
+  library.generateFile(bindingOutput);
+}
+
+Future<void> main(List<String> args) async {
+  final parser = ArgParser();
+  parser.addSeparator(usage);
+  parser.addFlag(
+    'help',
+    abbr: 'h',
+    help: 'Prints this usage',
+    negatable: false,
+  );
+
+  final parseArgs = parser.parse(args);
+  if (parseArgs.wasParsed('help')) {
+    print(parser.usage);
+    exit(0);
+  } else if (parseArgs.rest.isNotEmpty) {
+    print(parser.usage);
+    exit(1);
+  }
+
+  Logger.root.level = Level.WARNING;
+  Logger.root.onRecord.listen((record) {
+    print('${record.level.name}: ${record.time}: ${record.message}');
+  });
+
+  final nativeTestConfig = File('test/native_test/config.yaml').absolute;
+  final nativeTestOut =
+      File('test/native_test/native_test_bindings.dart').absolute;
+  await withChDir(nativeTestConfig.path,
+      () => _regenConfig(nativeTestConfig, nativeTestOut));
+
+  final libclangConfig = File('example/libclang-example/config.yaml').absolute;
+  final libclangOut =
+      File('example/libclang-example/generated_bindings.dart').absolute;
+  await withChDir(
+      libclangConfig.path, () => _regenConfig(libclangConfig, libclangOut));
+
+  final simpleConfig = File('example/simple/config.yaml').absolute;
+  final simpleOut = File('example/simple/generated_bindings.dart').absolute;
+  await withChDir(
+      simpleConfig.path, () => _regenConfig(simpleConfig, simpleOut));
+
+  final cJsonConfig = File('example/c_json/config.yaml').absolute;
+  final cJsonOut =
+      File('example/c_json/cjson_generated_bindings.dart').absolute;
+  await withChDir(cJsonConfig.path, () => _regenConfig(cJsonConfig, cJsonOut));
+}
diff --git a/test/rename_tests/rename_test.dart b/test/rename_tests/rename_test.dart
index f362a11..24a136a 100644
--- a/test/rename_tests/rename_test.dart
+++ b/test/rename_tests/rename_test.dart
@@ -3,11 +3,9 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:ffigen/src/code_generator.dart';
-import 'package:ffigen/src/config_provider.dart';
 import 'package:ffigen/src/header_parser.dart' as parser;
 import 'package:ffigen/src/strings.dart' as strings;
 import 'package:test/test.dart';
-import 'package:yaml/yaml.dart' as yaml;
 
 import '../test_utils.dart';
 
@@ -22,7 +20,7 @@
     setUpAll(() {
       logWarnings();
       expected = expectedLibrary();
-      actual = parser.parse(Config.fromYaml(yaml.loadYaml('''
+      actual = parser.parse(testConfig('''
 ${strings.name}: 'NativeLibrary'
 ${strings.description}: 'Rename Test'
 ${strings.output}: 'unused'
@@ -78,7 +76,7 @@
 ${strings.typedefs}:
   ${strings.rename}:
     'Struct5_Alias': 'Struct5_Alias_Renamed'
-    ''') as yaml.YamlMap));
+    '''));
     });
 
     test('Function addPrefix', () {
@@ -161,109 +159,109 @@
 }
 
 Library expectedLibrary() {
-  final struc1 = Struc(name: '${structPrefix}Struct1');
-  final struc2 = Struc(name: 'Struct2');
-  final struc3 = Struc(name: 'Struct3');
+  final struct1 = Struct(name: '${structPrefix}Struct1');
+  final struct2 = Struct(name: 'Struct2');
+  final struct3 = Struct(name: 'Struct3');
   return Library(
     name: 'Bindings',
     bindings: [
       Func(
         name: '${functionPrefix}func1',
         originalName: 'func1',
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
         parameters: [
           Parameter(
             name: 's',
-            type: Type.pointer(Type.struct(struc1)),
+            type: PointerType(struct1),
           ),
         ],
       ),
       Func(
         name: 'func2',
         originalName: 'test_func2',
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
         parameters: [
           Parameter(
             name: 's',
-            type: Type.pointer(Type.struct(struc2)),
+            type: PointerType(struct2),
           ),
         ],
       ),
       Func(
         name: 'func3',
         originalName: 'fullMatch_func3',
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
         parameters: [
           Parameter(
             name: 's',
-            type: Type.pointer(Type.struct(struc3)),
+            type: PointerType(struct3),
           ),
         ],
       ),
       Func(
         name: '${functionPrefix}memberRename_func4',
         originalName: 'memberRename_func4',
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
         parameters: [
           Parameter(
             name: 'underscore',
-            type: Type.nativeType(SupportedNativeType.Int32),
+            type: intType,
           ),
           Parameter(
             name: 'fullMatchSuccess',
-            type: Type.nativeType(SupportedNativeType.Float),
+            type: floatType,
           ),
           Parameter(
             name: 'unnamed',
-            type: Type.nativeType(SupportedNativeType.Int32),
+            type: intType,
           ),
         ],
       ),
       Func(
         name: '${functionPrefix}typedefRenameFunc',
         originalName: 'typedefRenameFunc',
-        returnType: Type.nativeType(
+        returnType: NativeType(
           SupportedNativeType.Void,
         ),
         parameters: [
           Parameter(
             name: 's',
-            type: Type.typealias(Typealias(
+            type: Typealias(
                 name: 'Struct5_Alias_Renamed',
-                type: Type.struct(Struc(name: '${structPrefix}Struct5')))),
+                type: Struct(name: '${structPrefix}Struct5')),
           ),
         ],
       ),
-      struc1,
-      struc2,
-      struc3,
-      Struc(
+      struct1,
+      struct2,
+      struct3,
+      Struct(
         name: '${structPrefix}MemberRenameStruct4',
         members: [
           Member(
             name: 'underscore',
-            type: Type.nativeType(SupportedNativeType.Int32),
+            type: intType,
           ),
           Member(
             name: 'fullMatchSuccess',
-            type: Type.nativeType(SupportedNativeType.Float),
+            type: floatType,
           ),
         ],
       ),
-      Struc(
+      Struct(
         name: '${structPrefix}AnyMatchStruct5',
         members: [
           Member(
             name: 'underscore',
-            type: Type.nativeType(SupportedNativeType.Int32),
+            type: intType,
           ),
         ],
       ),
diff --git a/test/setup.dart b/test/setup.dart
new file mode 100644
index 0000000..3439901
--- /dev/null
+++ b/test/setup.dart
@@ -0,0 +1,34 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Runs all the test setup scripts. Usage:
+// dart run test/setup.dart
+
+import 'dart:async';
+import 'dart:io';
+
+Future<void> _run(String subdir, String script) async {
+  final dir = Platform.script.resolve('$subdir/');
+  print('\nRunning $script in ${dir.toFilePath()}');
+  final args = ['run', dir.resolve(script).toFilePath()];
+  final process = await Process.start(
+    Platform.executable,
+    args,
+    workingDirectory: dir.toFilePath(),
+  );
+  unawaited(stdout.addStream(process.stdout));
+  unawaited(stderr.addStream(process.stderr));
+  final result = await process.exitCode;
+  if (result != 0) {
+    throw ProcessException(Platform.executable, args, '$script failed', result);
+  }
+}
+
+Future<void> main() async {
+  await _run('native_test', 'build_test_dylib.dart');
+  if (Platform.isMacOS) {
+    await _run('native_objc_test', 'setup.dart');
+  }
+  print('\nSuccess :)\n');
+}
diff --git a/test/test_coverage.dart b/test/test_coverage.dart
deleted file mode 100644
index 88623ba..0000000
--- a/test/test_coverage.dart
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'code_generator_tests/code_generator_test.dart' as code_generator_test;
-import 'collision_tests/decl_decl_collision_test.dart'
-    as collision_tests_decl_decl_collision_test;
-import 'collision_tests/reserved_keyword_collision_test.dart'
-    as collision_tests_reserved_keyword_collision_test;
-import 'config_tests/compiler_opts_test.dart'
-    as config_tests_compiler_opts_test;
-import 'example_tests/cjson_example_test.dart'
-    as example_tests_cjson_example_test;
-import 'example_tests/libclang_example_test.dart'
-    as example_tests_libclang_example_test;
-import 'example_tests/simple_example_test.dart'
-    as example_tests_simple_example_test;
-import 'header_parser_tests/comment_markup_test.dart'
-    as header_parser_tests_comment_markup_test;
-import 'header_parser_tests/dart_handle_test.dart'
-    as header_parser_tests_dart_handle_test;
-import 'header_parser_tests/forward_decl_test.dart'
-    as header_parser_tests_forward_decl_test;
-import 'header_parser_tests/function_n_struct_test.dart'
-    as header_parser_tests_function_n_struct_test;
-import 'header_parser_tests/functions_test.dart'
-    as header_parser_tests_functions_test;
-import 'header_parser_tests/globals_test.dart'
-    as header_parser_tests_globals_test;
-import 'header_parser_tests/macros_test.dart'
-    as header_parser_tests_macros_test;
-import 'header_parser_tests/native_func_typedef_test.dart'
-    as header_parser_tests_native_func_typedef_test;
-import 'header_parser_tests/nested_parsing_test.dart'
-    as header_parser_tests_nested_parsing_test;
-import 'header_parser_tests/opaque_dependencies_test.dart'
-    as header_parser_tests_opaque_dependencies_test;
-import 'header_parser_tests/typedef_test.dart'
-    as header_parser_tests_typedef_test;
-import 'header_parser_tests/unnamed_enums_test.dart'
-    as header_parser_tests_unnamed_enums_test;
-import 'large_integration_tests/large_test.dart'
-    as large_integration_tests_large_test;
-import 'native_test/native_test.dart' as native_test_native_test;
-import 'rename_tests/rename_test.dart' as rename_tests_rename_test;
-
-void main() {
-  large_integration_tests_large_test.main();
-  example_tests_cjson_example_test.main();
-  example_tests_simple_example_test.main();
-  example_tests_libclang_example_test.main();
-  collision_tests_decl_decl_collision_test.main();
-  collision_tests_reserved_keyword_collision_test.main();
-  config_tests_compiler_opts_test.main();
-  header_parser_tests_comment_markup_test.main();
-  header_parser_tests_dart_handle_test.main();
-  header_parser_tests_forward_decl_test.main();
-  header_parser_tests_functions_test.main();
-  header_parser_tests_globals_test.main();
-  header_parser_tests_macros_test.main();
-  header_parser_tests_function_n_struct_test.main();
-  header_parser_tests_native_func_typedef_test.main();
-  header_parser_tests_nested_parsing_test.main();
-  header_parser_tests_opaque_dependencies_test.main();
-  header_parser_tests_typedef_test.main();
-  header_parser_tests_unnamed_enums_test.main();
-  native_test_native_test.main();
-  rename_tests_rename_test.main();
-  code_generator_test.main();
-}
diff --git a/test/test_utils.dart b/test/test_utils.dart
index a967f66..50cb30e 100644
--- a/test/test_utils.dart
+++ b/test/test_utils.dart
@@ -5,9 +5,13 @@
 import 'dart:io';
 
 import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/config_provider/config.dart';
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
+import 'package:package_config/package_config_types.dart';
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
+import 'package:yaml/yaml.dart' as yaml;
 
 extension LibraryTestExt on Library {
   /// Get a [Binding]'s generated string with a given name.
@@ -31,19 +35,74 @@
   }
 }
 
-/// Generates actual file using library and tests using [expect] with expected
+/// Check whether a file generated by test/setup.dart exists and throw a helpful
+/// exception if it does not.
+void verifySetupFile(File file) {
+  if (!file.existsSync()) {
+    throw NotFoundException("The file ${file.path} does not exist.\n\n"
+        "You may need to run: dart run test/setup.dart\n");
+  }
+}
+
+// Remove '\r' for Windows compatibility, then apply user's normalizer.
+String _normalizeGeneratedCode(
+    String generated, String Function(String)? codeNormalizer) {
+  final noCR = generated.replaceAll('\r', '').replaceAll(RegExp(r'\n+'), '\n');
+  if (codeNormalizer == null) return noCR;
+  return codeNormalizer(noCR);
+}
+
+/// Generates actual file using library and tests using [expect] with expected.
 ///
 /// This will not delete the actual debug file incase [expect] throws an error.
 void matchLibraryWithExpected(
-    Library library, List<String> pathForActual, List<String> pathToExpected) {
-  final file = File(
-    path.joinAll(pathForActual),
+    Library library, String pathForActual, List<String> pathToExpected,
+    {String Function(String)? codeNormalizer}) {
+  _matchFileWithExpected(
+    library: library,
+    pathForActual: pathForActual,
+    pathToExpected: pathToExpected,
+    fileWriter: ({required Library library, required File file}) =>
+        library.generateFile(file),
+    codeNormalizer: codeNormalizer,
   );
-  library.generateFile(file);
+}
 
+/// Generates actual file using library and tests using [expect] with expected.
+///
+/// This will not delete the actual debug file incase [expect] throws an error.
+void matchLibrarySymbolFileWithExpected(Library library, String pathForActual,
+    List<String> pathToExpected, String importPath) {
+  _matchFileWithExpected(
+      library: library,
+      pathForActual: pathForActual,
+      pathToExpected: pathToExpected,
+      fileWriter: ({required Library library, required File file}) {
+        if (!library.writer.canGenerateSymbolOutput) library.generate();
+        library.generateSymbolOutputFile(file, importPath);
+      });
+}
+
+/// Generates actual file using library and tests using [expect] with expected.
+///
+/// This will not delete the actual debug file incase [expect] throws an error.
+void _matchFileWithExpected({
+  required Library library,
+  required String pathForActual,
+  required List<String> pathToExpected,
+  required void Function({required Library library, required File file})
+      fileWriter,
+  String Function(String)? codeNormalizer,
+}) {
+  final file = File(
+    path.join(strings.tmpDir, pathForActual),
+  );
+  fileWriter(library: library, file: file);
   try {
-    final actual = file.readAsStringSync();
-    final expected = File(path.joinAll(pathToExpected)).readAsStringSync();
+    final actual =
+        _normalizeGeneratedCode(file.readAsStringSync(), codeNormalizer);
+    final expected = _normalizeGeneratedCode(
+        File(path.joinAll(pathToExpected)).readAsStringSync(), codeNormalizer);
     expect(actual, expected);
     if (file.existsSync()) {
       file.delete();
@@ -70,3 +129,44 @@
     print('${record.level.name.padRight(8)}: ${record.message}');
   });
 }
+
+void logWarningsToArray(List<String> logArr, [Level level = Level.WARNING]) {
+  Logger.root.level = level;
+  Logger.root.onRecord.listen((record) {
+    logArr.add('${record.level.name.padRight(8)}: ${record.message}');
+  });
+}
+
+Config testConfig(String yamlBody, {String? filename}) {
+  return Config.fromYaml(
+    yaml.loadYaml(yamlBody) as yaml.YamlMap,
+    filename: filename,
+    packageConfig: PackageConfig([
+      Package(
+        'shared_bindings',
+        Uri.file(path.join(path.current, 'example', 'shared_bindings', 'lib/')),
+      ),
+    ]),
+  );
+}
+
+Config testConfigFromPath(String path) {
+  final file = File(path);
+  final yamlBody = file.readAsStringSync();
+  return testConfig(yamlBody, filename: path);
+}
+
+T withChDir<T>(String path, T Function() inner) {
+  final oldDir = Directory.current;
+  Directory.current = File(path).parent;
+
+  late T result;
+
+  try {
+    result = inner();
+  } finally {
+    Directory.current = oldDir;
+  }
+
+  return result;
+}
diff --git a/test_flutter/flutter_template_tests/flutter_plugin_ffi_test.dart b/test_flutter/flutter_template_tests/flutter_plugin_ffi_test.dart
new file mode 100644
index 0000000..06b9df7
--- /dev/null
+++ b/test_flutter/flutter_template_tests/flutter_plugin_ffi_test.dart
@@ -0,0 +1,166 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+@Timeout(Duration(seconds: 120))
+
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:test/test.dart';
+
+void main() {
+  Uri? tempDirUri;
+  final projectName = 'test_project';
+
+  setUp(() async {
+    tempDirUri = (await Directory.current.createTemp('.temp_test_')).uri;
+  });
+
+  tearDown(() async {
+    final dir = Directory(tempDirUri!.toFilePath());
+    if (await dir.exists()) {
+      await dir.delete(recursive: true);
+    }
+  });
+
+  test('Run Flutter', () async {
+    final projectDirUri = tempDirUri!.resolve('$projectName/');
+    final libDirUri = projectDirUri.resolve('lib/');
+    final bindingsGeneratedUri =
+        libDirUri.resolve('${projectName}_bindings_generated.dart');
+    final bindingsGeneratedCopyUri =
+        libDirUri.resolve('${projectName}_bindings_generated_copy.dart');
+
+    await Task.serial([
+      RunProcess(
+        executable: 'flutter',
+        arguments: [
+          'create',
+          '--template=plugin_ffi',
+          projectName,
+        ],
+        workingDirectory: tempDirUri,
+      ),
+      Copy(
+        source: bindingsGeneratedUri,
+        target: bindingsGeneratedCopyUri,
+      ),
+      RunProcess(
+        executable: 'flutter',
+        arguments: [
+          'pub',
+          'run',
+          'ffigen',
+          '--config',
+          'ffigen.yaml',
+        ],
+        workingDirectory: projectDirUri,
+      ),
+    ]).run();
+
+    final originalBindings = await readFileAsString(bindingsGeneratedCopyUri);
+    final regeneratedBindings = await readFileAsString(bindingsGeneratedUri);
+
+    expect(originalBindings, regeneratedBindings);
+  });
+}
+
+Future<String> readFileAsString(Uri uri) async {
+  final contents = await File(uri.toFilePath()).readAsString();
+  return contents.replaceAll('\r', '');
+}
+
+abstract class Task {
+  Future<void> run();
+
+  factory Task.serial(Iterable<Task> tasks) => _SerialTask(tasks);
+}
+
+class _SerialTask implements Task {
+  final Iterable<Task> tasks;
+
+  _SerialTask(this.tasks);
+
+  @override
+  Future<void> run() async {
+    for (final task in tasks) {
+      await task.run();
+    }
+  }
+}
+
+class RunProcess implements Task {
+  final List<String> arguments;
+  final String executable;
+  final Uri? workingDirectory;
+  Map<String, String>? environment;
+  final bool throwOnFailure;
+
+  RunProcess({
+    required this.arguments,
+    required this.executable,
+    this.workingDirectory,
+    this.environment,
+    this.throwOnFailure = true,
+  });
+
+  /// Excluding [workingDirectory].
+  String get commandString => [
+        if (workingDirectory != null) '(cd ${workingDirectory!.path};',
+        ...?environment?.entries.map((entry) => '${entry.key}=${entry.value}'),
+        executable,
+        ...arguments.map((a) => a.contains(' ') ? "'$a'" : a),
+        if (workingDirectory != null) ')',
+      ].join(' ');
+
+  @override
+  Future<void> run() async {
+    final workingDirectoryString = workingDirectory?.toFilePath();
+
+    print('Running `$commandString`.');
+    final process = await Process.start(executable, arguments,
+            runInShell: true,
+            includeParentEnvironment: true,
+            workingDirectory: workingDirectoryString,
+            environment: environment)
+        .then((process) {
+      process.stdout.transform(utf8.decoder).forEach((s) => print('  $s'));
+      process.stderr.transform(utf8.decoder).forEach((s) => print('  $s'));
+      return process;
+    });
+    final exitCode = await process.exitCode;
+    if (exitCode != 0) {
+      final message =
+          'Command `$commandString` failed with exit code $exitCode.';
+      print(message);
+      if (throwOnFailure) {
+        throw Exception(message);
+      }
+    }
+    print('Command `$commandString` done.');
+  }
+}
+
+class Copy implements Task {
+  final Uri source;
+  final Uri target;
+
+  Copy({
+    required this.source,
+    required this.target,
+  });
+
+  @override
+  Future<void> run() async {
+    final file = File.fromUri(source);
+    if (!await file.exists()) {
+      final message =
+          "File not in expected location: '${source.toFilePath()}'.";
+      print(message);
+      throw Exception(message);
+    }
+    print('Copying ${source.toFilePath()} to ${target.toFilePath()}.');
+    await file.copy(target.toFilePath());
+  }
+}
diff --git a/tool/coverage.sh b/tool/coverage.sh
index 7cecbfe..02c8e2f 100755
--- a/tool/coverage.sh
+++ b/tool/coverage.sh
@@ -8,12 +8,8 @@
 set -e
 
 # Gather coverage.
-dart pub global activate remove_from_coverage
 dart pub global activate coverage
 # Generate coverage report.
-dart --pause-isolates-on-exit --disable-service-auth-codes --enable-vm-service=3000 test/test_coverage.dart &
-dart pub global run coverage:collect_coverage --wait-paused --uri=http://127.0.0.1:3000/ -o coverage.json --resume-isolates
-dart pub global run coverage:format_coverage --lcov -i coverage.json -o lcov.info
-
-# Remove extra files from coverage report.
-dart pub global run remove_from_coverage -f lcov.info -r ".pub-cache"
+dart run --pause-isolates-on-exit --disable-service-auth-codes --enable-vm-service=3000 test &
+dart pub global run coverage:collect_coverage --wait-paused --uri=http://127.0.0.1:3000/ -o coverage.json --resume-isolates --scope-output=ffigen
+dart pub global run coverage:format_coverage --packages=.dart_tool/package_config.json --lcov -i coverage.json -o lcov.info
diff --git a/tool/libclang_config.yaml b/tool/libclang_config.yaml
index c6940ac..339c52c 100644
--- a/tool/libclang_config.yaml
+++ b/tool/libclang_config.yaml
@@ -11,13 +11,13 @@
 
 name: Clang
 description: Holds bindings to LibClang.
-output: 'lib/src/header_parser/clang_bindings/clang_bindings.dart'
+output: '../lib/src/header_parser/clang_bindings/clang_bindings.dart'
 compiler-opts:
   - '-Ithird_party/libclang/include'
   - '-Wno-nullability-completeness'
 headers:
   entry-points:
-    - 'third_party/libclang/include/clang-c/Index.h'
+    - '../third_party/libclang/include/clang-c/Index.h'
   include-directives:
     - '**wrapper.c'
     - '**Index.h'
@@ -39,6 +39,9 @@
     - CXDiagnosticDisplayOptions
     - CXTranslationUnit_Flags
     - CXEvalResultKind
+    - CXObjCPropertyAttrKind
+    - CXTypeNullabilityKind
+    - CXTypeLayoutError
 
 structs:
   include:
@@ -88,6 +91,7 @@
     - clang_Cursor_getArgument
     - clang_getNumArgTypes
     - clang_getArgType
+    - clang_getCursorResultType
     - clang_getEnumConstantDeclValue
     - clang_equalRanges
     - clang_Cursor_getCommentRange
@@ -109,3 +113,10 @@
     - clang_getCursorDefinition
     - clang_Cursor_isNull
     - clang_Cursor_hasAttrs
+    - clang_Type_getObjCObjectBaseType
+    - clang_Cursor_getObjCPropertyAttributes
+    - clang_Cursor_getObjCPropertyGetterName
+    - clang_Cursor_getObjCPropertySetterName
+    - clang_Type_getNullability
+    - clang_Location_isInSystemHeader
+    - clang_getClangVersion